diff --git a/docs/.generated/plugin-sdk-api-baseline.jsonl b/docs/.generated/plugin-sdk-api-baseline.jsonl index 3351d78eb4ab..153bdaf55572 100644 --- a/docs/.generated/plugin-sdk-api-baseline.jsonl +++ b/docs/.generated/plugin-sdk-api-baseline.jsonl @@ -53,15 +53,15 @@ {"closureHash":"ff3c4616cd6212a6d698831a8b287ad87e3968c8663f4090d095bb30ec40fc1c","declaration":"export function abortAndDrainAgentHarnessRun(params: { sessionId: string; sessionKey?: string; settleMs?: number; forceClear?: boolean; reason?: string; }): Promise;","entrypoint":"agent-harness","exportName":"abortAndDrainAgentHarnessRun","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"function","recordType":"export"} {"closureHash":"58989e3fa91eecf2e05202e36548e6e64a3b9219e83154bd99866c851604e34e","declaration":"export function createAgentToolResultMiddlewareRunner(ctx: AgentToolResultMiddlewareContext, handlers?: AgentToolResultMiddleware[]): { applyToolResultMiddleware(event: AgentToolResultMiddlewareEvent): Promise; };","entrypoint":"agent-harness","exportName":"createAgentToolResultMiddlewareRunner","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"function","recordType":"export"} {"closureHash":"b8f6355d7ad1700aceecddaa6e9ccf43091a792d5b481a1ee3f55294a881a67d","declaration":"export function createCodexAppServerToolResultExtensionRunner(ctx: CodexAppServerExtensionContext, factories?: CodexAppServerExtensionFactory[]): { applyToolResultExtensions(event: CodexAppServerToolResultEvent): Promise>; };","entrypoint":"agent-harness","exportName":"createCodexAppServerToolResultExtensionRunner","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"function","recordType":"export"} -{"closureHash":"1fa429ab2638afe78f542cd7b34b73afe633a69063c42cb5da1123273726489f","declaration":"export function createOpenClawCodingTools(options?: OpenClawCodingToolsOptions): AnyAgentTool[];","entrypoint":"agent-harness","exportName":"createOpenClawCodingTools","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"function","recordType":"export"} +{"closureHash":"6062f10ec859c2a6d91666c0f1ee2fc3a5e4591ca758fcd7c1df7ad1cc6b857f","declaration":"export function createOpenClawCodingTools(options?: OpenClawCodingToolsOptions): AnyAgentTool[];","entrypoint":"agent-harness","exportName":"createOpenClawCodingTools","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"function","recordType":"export"} {"closureHash":"13649ee853485319e7449fda25c106b3f3f53d3090e53cdbb28e220a8529eb80","declaration":"export function disposeRegisteredAgentHarnesses(): Promise;","entrypoint":"agent-harness","exportName":"disposeRegisteredAgentHarnesses","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"function","recordType":"export"} {"closureHash":"f255a91162ece4c239bb8fa745efa14a1054bc024a291e9954f75f239b2b87c3","declaration":"export function resolveActiveEmbeddedRunSessionId(sessionKey: string): string | undefined;","entrypoint":"agent-harness","exportName":"resolveActiveEmbeddedRunSessionId","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"function","recordType":"export"} {"closureHash":"27d9f61df9ccf68615cb2002a6da891e36ab0c07623bc37c4d07aa980b446881","declaration":"export function resolveWebSearchToolPolicy(params: WebSearchToolPolicyParams): WebSearchToolPolicyResolution;","entrypoint":"agent-harness","exportName":"resolveWebSearchToolPolicy","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"function","recordType":"export"} -{"closureHash":"069afe164b45b50b6a4df310f4b257eff482dcd6ca93b1f9a5dcf08724eb44c2","declaration":"export type AgentHarness = AgentHarness;","entrypoint":"agent-harness","exportName":"AgentHarness","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"type","recordType":"export"} +{"closureHash":"d3f58785b718226c2b2b6ed6b27f196eebbc7fee2a8366a1b95aa0961dfb5a87","declaration":"export type AgentHarness = AgentHarness;","entrypoint":"agent-harness","exportName":"AgentHarness","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"type","recordType":"export"} {"closureHash":"4ad0f830bf11a2db48faefb1439b7fbb08d9f22d22083f5e301327e1696f2310","declaration":"export type AgentToolResultMiddleware = AgentToolResultMiddleware;","entrypoint":"agent-harness","exportName":"AgentToolResultMiddleware","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"type","recordType":"export"} {"closureHash":"008b6c78d5e44a9d1df1d7e32e6015382ee9ba1cb9b10bd4c2b467619d1c89d4","declaration":"export type AgentToolResultMiddlewareEvent = AgentToolResultMiddlewareEvent;","entrypoint":"agent-harness","exportName":"AgentToolResultMiddlewareEvent","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"type","recordType":"export"} {"closureHash":"7414a2a79c2d78c1d52538250c827305bba1a2bb25010448837c8524a9f95b3c","declaration":"export type AnyAgentTool = AnyAgentTool;","entrypoint":"agent-harness","exportName":"AnyAgentTool","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"type","recordType":"export"} -{"closureHash":"39aca9d1bc332fd3192cf133df5d5d383e18c0584c1680b2ce2a13a2d3fe17e2","declaration":"export type EmbeddedRunAttemptParams = EmbeddedRunAttemptParams;","entrypoint":"agent-harness","exportName":"EmbeddedRunAttemptParams","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"type","recordType":"export"} +{"closureHash":"b58ad0c54a29c986eace05d14e7bc4925274ff2d61db000698c8963027bcdba3","declaration":"export type EmbeddedRunAttemptParams = EmbeddedRunAttemptParams;","entrypoint":"agent-harness","exportName":"EmbeddedRunAttemptParams","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"type","recordType":"export"} {"closureHash":"25c6985c3bef2c6efc6a96e70af6d66fe073be0b0d311681cfc0dfc186528d9a","declaration":"export type OpenClawAgentToolResult = OpenClawAgentToolResult;","entrypoint":"agent-harness","exportName":"OpenClawAgentToolResult","importSpecifier":"openclaw/plugin-sdk/agent-harness","kind":"type","recordType":"export"} {"category":"runtime","entrypoint":"agent-harness-runtime","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","recordType":"module"} {"closureHash":"fab99dfcb01d475a1bfdbe7a8fac9be10a93dac5f12ac78c2dea673c8ab86abf","declaration":"export function abortAgentHarnessRun(sessionId: string): boolean;\nexport function abortAgentHarnessRun(sessionId: undefined, opts: { mode: \"all\" | \"compacting\"; reason?: \"restart\"; }): boolean;","entrypoint":"agent-harness-runtime","exportName":"abortAgentHarnessRun","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} @@ -72,16 +72,16 @@ {"closureHash":"155d94754b1411dd9b9fdae11ca094cbce25610ffb1dd9a617f293596b3a78f7","declaration":"export function assertContextEngineHostSupport(params: { contextEngine: ContextEngine; operation: ContextEngineOperation; host: ContextEngineHostSupport; }): void;","entrypoint":"agent-harness-runtime","exportName":"assertContextEngineHostSupport","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"3209ee56dbd86be4de23a2de59903a4d310fc99ed912d220ebe57efd308ff14f","declaration":"export function assignMcpCatalogSafeServerNames(serverNames: Iterable): Map;","entrypoint":"agent-harness-runtime","exportName":"assignMcpCatalogSafeServerNames","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"911838521fabe5f74acfeadabfa855fd9857fa21671b3f0cad08779f3402825a","declaration":"export function attachModelProviderRequestTransport(model: TModel, request: ModelProviderRequestTransportOverrides | undefined): TModel;","entrypoint":"agent-harness-runtime","exportName":"attachModelProviderRequestTransport","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} -{"closureHash":"180c1f7bdcf37282e711d2bbdeb73b600b6f18b6785eb73dbee1f0c530d62e6f","declaration":"export function awaitAgentEndSideEffects(params: AgentEndSideEffectsParams): Promise;","entrypoint":"agent-harness-runtime","exportName":"awaitAgentEndSideEffects","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} -{"closureHash":"542d877b64fb60bbe3ad5d62417328c5f3b041010aeec88cb1a1d81955e77246","declaration":"export function awaitAgentHarnessAgentEndHook(params: { event: PluginHookAgentEndEvent; ctx: AgentHarnessHookContext; hookRunner?: AgentHarnessHookRunner; }): Promise;","entrypoint":"agent-harness-runtime","exportName":"awaitAgentHarnessAgentEndHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} +{"closureHash":"5a1f9481bcbe41730c3259db1c42eb4562289a46d7f82f7a22e5c5f77469b746","declaration":"export function awaitAgentEndSideEffects(params: AgentEndSideEffectsParams): Promise;","entrypoint":"agent-harness-runtime","exportName":"awaitAgentEndSideEffects","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} +{"closureHash":"9c31e4020485bc1867573ebdce41610a19c119c6072589c7f82c4c8c9d7d5986","declaration":"export function awaitAgentHarnessAgentEndHook(params: { event: PluginHookAgentEndEvent; ctx: AgentHarnessHookContext; hookRunner?: AgentHarnessHookRunner; }): Promise;","entrypoint":"agent-harness-runtime","exportName":"awaitAgentHarnessAgentEndHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"73d8efb2d4171745da0c8f433ec80363cd9ce26b0d76be0cdddaa077489a5134","declaration":"export function bootstrapHarnessContextEngine(params: { hadSessionFile: boolean; contextEngine?: HarnessContextEngine; sessionId: string; sessionKey?: string; sessionTarget?: ContextEngineSessionTarget; sessionFile: string; sessionManager?: unknown; runtimeContext?: ContextEngineRuntimeContext; transcriptReadFence?: UserTurnTranscriptAdmissionReceipt; runtimeSettings?: ContextEngineRuntimeSettings; contextEngineHostSupport?: ContextEngineHostSupport; harnessId?: string | null; runtimeId?: string | null; providerId?: string | null; requestedModelId?: string | null; modelId?: string | null; maxOutputTokens?: number | null; fallbackReason?: string | null; degradedReason?: string | null; runMaintenance?: typeof runHarnessContextEngineMaintenance; config?: OpenClawConfig; warn: (message: string) => void; }): Promise;","entrypoint":"agent-harness-runtime","exportName":"bootstrapHarnessContextEngine","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"fdd485fc00b19e46356354d24cc924c694fbb8c01a01e16048183880a3fbf50d","declaration":"export function buildAgentHarnessUserInputAnswers(questions: readonly AgentHarnessUserInputQuestion[], inputText: string): AgentHarnessUserInputAnswers;","entrypoint":"agent-harness-runtime","exportName":"buildAgentHarnessUserInputAnswers","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"bcc8554c0316257b42e7ca95e16c6b1f3bfb9794e5db7f41cf2bcdd2464bb218","declaration":"export function buildAgentHookContextChannelFields(params: { sessionKey?: string | null; messageChannel?: string | null; messageProvider?: string | null; currentChannelId?: string | null; messageTo?: string | null; senderId?: string | null; agentAccountId?: string | null; }): Pick;","entrypoint":"agent-harness-runtime","exportName":"buildAgentHookContextChannelFields","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"593bc2b598c7715ab011aa6ab5659f02262f134b15f218b02921e1c7e33198ba","declaration":"export function buildAgentRuntimePlan(params: BuildAgentRuntimePlanParams): AgentRuntimePlan;","entrypoint":"agent-harness-runtime","exportName":"buildAgentRuntimePlan","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"528d11abf061b0b303722737de5a6406e7e55bffa38c45144c77d896ae1b3b0a","declaration":"export function buildBootstrapContextForFiles(bootstrapFiles: WorkspaceBootstrapFile[], params: { config?: OpenClawConfig; agentId?: string | null; warn?: (message: string) => void; }): EmbeddedContextFile[];","entrypoint":"agent-harness-runtime","exportName":"buildBootstrapContextForFiles","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"44d5a4667d2f3dc3a28e5c9d7b46765b1fb3c62820288e40251f5174911c8a6a","declaration":"export function buildEmbeddedAttemptToolRunContext(params: { trigger?: EmbeddedRunTrigger; jobId?: string; memoryFlushWritePath?: string; toolsAllow?: string[]; conversationToolPolicy?: GroupToolPolicyConfig; trace?: DiagnosticTraceContext; }): { trigger?: EmbeddedRunTrigger; jobId?: string; memoryFlushWritePath?: string; runtimeToolAllowlist?: string[]; conversationToolPolicy?: GroupToolPolicyConfig; trace?: DiagnosticTraceContext; };","entrypoint":"agent-harness-runtime","exportName":"buildEmbeddedAttemptToolRunContext","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} -{"closureHash":"921c0ec02577e9d99d8654084198e20feefa5e35992cdeb229fd0e2b65a24846","declaration":"export function buildHarnessContextEngineRuntimeContext(params: Parameters[0]): ContextEngineRuntimeContext;","entrypoint":"agent-harness-runtime","exportName":"buildHarnessContextEngineRuntimeContext","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} -{"closureHash":"853772512f7bf800ebc40ad00d1c5fd1c45a6727e22a7cac48d10ed7f623d413","declaration":"export function buildHarnessContextEngineRuntimeContextFromUsage(params: Parameters[0]): ContextEngineRuntimeContext;","entrypoint":"agent-harness-runtime","exportName":"buildHarnessContextEngineRuntimeContextFromUsage","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} +{"closureHash":"c01326f73f47eb63565cb218d11b79aaeb1c80f97725198091f5dc64c94ab511","declaration":"export function buildHarnessContextEngineRuntimeContext(params: Parameters[0]): ContextEngineRuntimeContext;","entrypoint":"agent-harness-runtime","exportName":"buildHarnessContextEngineRuntimeContext","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} +{"closureHash":"67329faf1e830f5dc8a08e5a88e2617166c10f914713c9651557c8b111bc0088","declaration":"export function buildHarnessContextEngineRuntimeContextFromUsage(params: Parameters[0]): ContextEngineRuntimeContext;","entrypoint":"agent-harness-runtime","exportName":"buildHarnessContextEngineRuntimeContextFromUsage","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"33a7cd8d63d4ef045ee3a42f806026a8b621e7dd32d8d6fbf4e7b44452d5e0ce","declaration":"export function buildNativeHookRelayCommand(params: { provider: NativeHookRelayProvider; relayId: string; generation?: string; event: NativeHookRelayEvent; preToolUseUnavailable?: \"noop\"; timeoutMs?: number; executable?: string; nice?: number | false; nodeExecutable?: string; }): string;","entrypoint":"agent-harness-runtime","exportName":"buildNativeHookRelayCommand","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"3846647c3c2fb0242f70591cf95c2e02f2a5a3c44447efb4cf7a31b2dc2122fd","declaration":"export function buildSkillWorkshopPromptSection(): string[];","entrypoint":"agent-harness-runtime","exportName":"buildSkillWorkshopPromptSection","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"32e977ece65144a83ae1b0a3c8d1b9b00a2a2506ad9ef1db3b2b9770ce762dbe","declaration":"export function buildWatchedSessionsHarnessContext(params: { config?: OpenClawConfig; sessionKey?: string; sandboxed?: boolean; toolNames: Iterable; capabilityToolNames?: Iterable; }): string | undefined;","entrypoint":"agent-harness-runtime","exportName":"buildWatchedSessionsHarnessContext","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} @@ -98,7 +98,7 @@ {"closureHash":"51f76e9e37b65b358f0313e10152d950b003bc3e50f4bb26fe29a988237772e2","declaration":"export function consumePreExecutionBlockedToolCall(toolCallId: string, runId?: string): boolean;","entrypoint":"agent-harness-runtime","exportName":"consumePreExecutionBlockedToolCall","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"58989e3fa91eecf2e05202e36548e6e64a3b9219e83154bd99866c851604e34e","declaration":"export function createAgentToolResultMiddlewareRunner(ctx: AgentToolResultMiddlewareContext, handlers?: AgentToolResultMiddleware[]): { applyToolResultMiddleware(event: AgentToolResultMiddlewareEvent): Promise; };","entrypoint":"agent-harness-runtime","exportName":"createAgentToolResultMiddlewareRunner","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"b8f6355d7ad1700aceecddaa6e9ccf43091a792d5b481a1ee3f55294a881a67d","declaration":"export function createCodexAppServerToolResultExtensionRunner(ctx: CodexAppServerExtensionContext, factories?: CodexAppServerExtensionFactory[]): { applyToolResultExtensions(event: CodexAppServerToolResultEvent): Promise>; };","entrypoint":"agent-harness-runtime","exportName":"createCodexAppServerToolResultExtensionRunner","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} -{"closureHash":"8cdac0ac3597b3c88d5a81676c6d05410bc86ec245a20d3790eb9199873ab8f6","declaration":"export function deliverAgentHarnessUserInputPrompt(params: PromptDeliveryParams, questions: readonly AgentHarnessUserInputQuestion[], options?: AgentHarnessUserInputPromptOptions): Promise;","entrypoint":"agent-harness-runtime","exportName":"deliverAgentHarnessUserInputPrompt","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} +{"closureHash":"59d485af36457d1bda20196e90de4a619b1722bd72cfc96648ce30d4d0e2b437","declaration":"export function deliverAgentHarnessUserInputPrompt(params: PromptDeliveryParams, questions: readonly AgentHarnessUserInputQuestion[], options?: AgentHarnessUserInputPromptOptions): Promise;","entrypoint":"agent-harness-runtime","exportName":"deliverAgentHarnessUserInputPrompt","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"6f436485257f69fa07a18203b91d4341690522f12aff4f25805c7a1e21326ee3","declaration":"export function detectAndLoadAgentHarnessPromptImages(params: { prompt: string; workspaceDir: string; model: { input?: string[]; }; existingImages?: ImageContent[]; imageOrder?: PromptImageOrderEntry[]; media?: MediaFact[]; config?: OpenClawConfig; workspaceOnly?: boolean; localRoots?: readonly string[]; sandbox?: { root: string; bridge: SandboxFsBridge; }; }): Promise<{ images: ImageContent[]; detectedRefs: Array<{ raw: string; resolved: string; type: \"path\" | \"media-uri\"; }>; loadedCount: number; skippedCount: number; }>;","entrypoint":"agent-harness-runtime","exportName":"detectAndLoadAgentHarnessPromptImages","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"13649ee853485319e7449fda25c106b3f3f53d3090e53cdbb28e220a8529eb80","declaration":"export function disposeRegisteredAgentHarnesses(): Promise;","entrypoint":"agent-harness-runtime","exportName":"disposeRegisteredAgentHarnesses","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"c38cd390190bb07ddcd247420d6e0b489a0229bd402ddca0440417217a57251a","declaration":"export function emitAgentEvent(event: Omit): void;","entrypoint":"agent-harness-runtime","exportName":"emitAgentEvent","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} @@ -121,7 +121,7 @@ {"closureHash":"5fa61424d7471cf6f3b142964294cca4723eefc5b673eff97b2b1a8b3f139172","declaration":"export function formatToolAggregate(toolName?: string, metas?: string[], options?: ToolAggregateOptions): string;","entrypoint":"agent-harness-runtime","exportName":"formatToolAggregate","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"cb9c705d6862116c7c61a3cc3941f8fea1c834ad14a628441cff1d1a697eb00b","declaration":"export function formatToolExecutionErrorMessage(error: unknown, fallback: string): string;","entrypoint":"agent-harness-runtime","exportName":"formatToolExecutionErrorMessage","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"16ca31a0ec0bec339d1a9ac63252eec5665d00d763c20075a93be176dc098239","declaration":"export function formatToolProgressOutput(output: string, options?: { maxChars?: number; }): string | undefined;","entrypoint":"agent-harness-runtime","exportName":"formatToolProgressOutput","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} -{"closureHash":"d07ce9d731f8f387a085dad0a4c608a281f65613c318d206a88c231c1c6bf59b","declaration":"export function getAgentHarnessHookRunner(): AgentHarnessHookRunner;","entrypoint":"agent-harness-runtime","exportName":"getAgentHarnessHookRunner","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} +{"closureHash":"43d14ee5a05c9d84c9d1b8b966882a48c1e8b68d6b7455d041a1d2d61156f4b8","declaration":"export function getAgentHarnessHookRunner(): AgentHarnessHookRunner;","entrypoint":"agent-harness-runtime","exportName":"getAgentHarnessHookRunner","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"37c1f0f87fd002e7de9ddb6ec0e4389e7add214dd3ceb6001077038f395d8451","declaration":"export function getBeforeToolCallFailureDisposition(error: unknown): BeforeToolCallFailureDisposition | undefined;","entrypoint":"agent-harness-runtime","exportName":"getBeforeToolCallFailureDisposition","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"2f995f2a9777cac11240f0dd375d2041fdc11ca0ad57c65e102db3d0be6b6f62","declaration":"export function getBeforeToolCallPolicyDiagnosticState(): BeforeToolCallPolicyDiagnosticState;","entrypoint":"agent-harness-runtime","exportName":"getBeforeToolCallPolicyDiagnosticState","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"45828b5ebf771446b493a1af9dee71e58aa8b96a28957a633e5fd5f3d6bfcaa4","declaration":"export function getChannelAgentToolMeta(tool: ChannelAgentTool): ChannelAgentToolMeta | undefined;","entrypoint":"agent-harness-runtime","exportName":"getChannelAgentToolMeta","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} @@ -188,16 +188,16 @@ {"closureHash":"f2fb5a4e5546086c8a69600795e5b6cde1817b2ba5a4680600c41297005b3ee2","declaration":"export function resolveUserPath(input: string, env?: NodeJS.ProcessEnv, homedir?: () => string): string;","entrypoint":"agent-harness-runtime","exportName":"resolveUserPath","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"4204798ce3bf40e0b488d6642a9617f361e53931f634042fcd09dde69f3924c4","declaration":"export function resolveWritableSandboxBindHostRoots(binds: readonly string[] | undefined): string[];","entrypoint":"agent-harness-runtime","exportName":"resolveWritableSandboxBindHostRoots","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"10e5de5d2202452344eca9023fccecd19bcede51b031fe7926bd6335e7767158","declaration":"export function runAgentCleanupStep(params: { runId: string; sessionId: string; step: string; cleanup: () => Promise; getTimeoutDetails?: () => string | undefined; log: AgentCleanupLogger; env?: NodeJS.ProcessEnv; timeoutMs?: number; }): Promise;","entrypoint":"agent-harness-runtime","exportName":"runAgentCleanupStep","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} -{"closureHash":"ff445b96f37d299f5aa41b8f3a383542eb13177bc75eef1cb44897ef8a224e0c","declaration":"export function runAgentEndSideEffects(params: AgentEndSideEffectsParams): void;","entrypoint":"agent-harness-runtime","exportName":"runAgentEndSideEffects","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} +{"closureHash":"816bf59dedc19b85f9da621b41b7a73ac2c0b4c4729c044322948f57aa9bda4b","declaration":"export function runAgentEndSideEffects(params: AgentEndSideEffectsParams): void;","entrypoint":"agent-harness-runtime","exportName":"runAgentEndSideEffects","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"a88818cc62232eeb75281bb6ccfbaf7928a4bb1390313c73c08b14c73e4e92bb","declaration":"export function runAgentHarnessAfterCompactionHook(params: { sessionFile: string; messages?: AgentMessage[]; ctx: AgentHarnessHookContext; compactedCount: number; }): Promise;","entrypoint":"agent-harness-runtime","exportName":"runAgentHarnessAfterCompactionHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"d6517f30fc90c4fa8ef89ac0fe3d6499adcfad71fd3ab46cc66d3e4a2472a844","declaration":"export function runAgentHarnessAfterToolCallHook(params: { toolName: string; toolCallId: string; runId?: string; agentId?: string; sessionId?: string; sessionKey?: string; channelId?: string; startArgs: Record; result?: unknown; error?: string; startedAt?: number; }): Promise;","entrypoint":"agent-harness-runtime","exportName":"runAgentHarnessAfterToolCallHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} -{"closureHash":"8495ec0ad47e8e54d34d3ccdac91a36f9033387938ebd15b67d77cf42704f19f","declaration":"export function runAgentHarnessAgentEndHook(params: { event: PluginHookAgentEndEvent; ctx: AgentHarnessHookContext; hookRunner?: AgentHarnessHookRunner; }): void;","entrypoint":"agent-harness-runtime","exportName":"runAgentHarnessAgentEndHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} -{"closureHash":"1e739840596195415c92326059e6d7fb42f94823752e9623cceebc5806a34171","declaration":"export function runAgentHarnessBeforeAgentFinalizeHook(params: { event: PluginHookBeforeAgentFinalizeEvent; ctx: AgentHarnessHookContext; hookRunner?: AgentHarnessHookRunner; }): Promise;","entrypoint":"agent-harness-runtime","exportName":"runAgentHarnessBeforeAgentFinalizeHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} +{"closureHash":"58ae81c43c770b2b7586014081120e123c4c4223b89cdd7b9649eb2f98a1d9a0","declaration":"export function runAgentHarnessAgentEndHook(params: { event: PluginHookAgentEndEvent; ctx: AgentHarnessHookContext; hookRunner?: AgentHarnessHookRunner; }): void;","entrypoint":"agent-harness-runtime","exportName":"runAgentHarnessAgentEndHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} +{"closureHash":"e4784aeda4c24b60cd49b7f5983e70a380a4759d5176c74d30f2900952ba848f","declaration":"export function runAgentHarnessBeforeAgentFinalizeHook(params: { event: PluginHookBeforeAgentFinalizeEvent; ctx: AgentHarnessHookContext; hookRunner?: AgentHarnessHookRunner; }): Promise;","entrypoint":"agent-harness-runtime","exportName":"runAgentHarnessBeforeAgentFinalizeHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"8fec73ee8c7c9be3335bd6dc1bac9278f0be5beef22a5975eb06e56f504f4bd6","declaration":"export function runAgentHarnessBeforeCompactionHook(params: { sessionFile: string; messages?: AgentMessage[]; ctx: AgentHarnessHookContext; }): Promise;","entrypoint":"agent-harness-runtime","exportName":"runAgentHarnessBeforeCompactionHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"021b81820bef2e8d54c50a5fc159d6665b23b50a1f5c40dae76a4833839d89c9","declaration":"export function runAgentHarnessBeforeMessageWriteHook(params: { message: AgentMessage; agentId?: string; sessionKey?: string; }): AgentMessage | null;","entrypoint":"agent-harness-runtime","exportName":"runAgentHarnessBeforeMessageWriteHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} -{"closureHash":"f629dbc1d655df5f8559b637878c5604a2368a927f21593d77a5be96aa20ddd1","declaration":"export function runAgentHarnessGatewayQuestion(params: RunAgentHarnessGatewayQuestionParams): Promise;","entrypoint":"agent-harness-runtime","exportName":"runAgentHarnessGatewayQuestion","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} -{"closureHash":"879806716664c6159307778fd01879e526f293b65468df9577500bcacb8c65ba","declaration":"export function runAgentHarnessLlmInputHook(params: { event: PluginHookLlmInputEvent; ctx: AgentHarnessHookContext; hookRunner?: AgentHarnessHookRunner; }): void;","entrypoint":"agent-harness-runtime","exportName":"runAgentHarnessLlmInputHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} -{"closureHash":"f8cbde26fe171d89ffd3d36a731277f5e1020f79d51f11b7877ea7b286c01d27","declaration":"export function runAgentHarnessLlmOutputHook(params: { event: PluginHookLlmOutputEvent; ctx: AgentHarnessHookContext; hookRunner?: AgentHarnessHookRunner; }): void;","entrypoint":"agent-harness-runtime","exportName":"runAgentHarnessLlmOutputHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} +{"closureHash":"32861994c9752f55ebdfcb074908f1d08f35a93ed1532bcd220ce1ae3a0f8469","declaration":"export function runAgentHarnessGatewayQuestion(params: RunAgentHarnessGatewayQuestionParams): Promise;","entrypoint":"agent-harness-runtime","exportName":"runAgentHarnessGatewayQuestion","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} +{"closureHash":"50a4d7cb20dd8f884abbcb62d77b5b2df183fbfcd058cc7aa76edacd1f7b90d8","declaration":"export function runAgentHarnessLlmInputHook(params: { event: PluginHookLlmInputEvent; ctx: AgentHarnessHookContext; hookRunner?: AgentHarnessHookRunner; }): void;","entrypoint":"agent-harness-runtime","exportName":"runAgentHarnessLlmInputHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} +{"closureHash":"1bd55c141c249b1c04470cafe0cd4d41dce334ea2883ce83235af56d24a15cca","declaration":"export function runAgentHarnessLlmOutputHook(params: { event: PluginHookLlmOutputEvent; ctx: AgentHarnessHookContext; hookRunner?: AgentHarnessHookRunner; }): void;","entrypoint":"agent-harness-runtime","exportName":"runAgentHarnessLlmOutputHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"c4c5131ab7065decd8d8e935ac3779e3baa2c52fbbbd95a6ccb624377db09ca1","declaration":"export function runBeforeToolCallHook(args: { toolName: string; params: unknown; toolKind?: PluginHookToolKind; toolInputKind?: PluginHookToolInputKind; toolCallId?: string; ctx?: HookContext; signal?: AbortSignal; approvalMode?: \"request\" | \"report\" | \"deny\" | \"defer\"; }): Promise;","entrypoint":"agent-harness-runtime","exportName":"runBeforeToolCallHook","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"35268edd668bcf1981dff5f000b8bbb5847a1a9bb7e8923769edc378e21108aa","declaration":"export function runHarnessContextEngineMaintenance(params: { contextEngine?: HarnessContextEngine; sessionId: string; sessionKey?: string; sessionTarget?: ContextEngineSessionTarget; sessionFile: string; reason: \"bootstrap\" | \"compaction\" | \"turn\"; sessionManager?: unknown; runtimeContext?: ContextEngineRuntimeContext; runtimeSettings?: ContextEngineRuntimeSettings; contextEngineHostSupport?: ContextEngineHostSupport; harnessId?: string | null; runtimeId?: string | null; providerId?: string | null; requestedModelId?: string | null; modelId?: string | null; tokenBudget?: number | null; maxOutputTokens?: number | null; fallbackReason?: string | null; degradedReason?: string | null; executionMode?: \"foreground\" | \"background\"; onDeferredMaintenance?: (promise: Promise) => void; withSessionManagerRewriteLock?: (operation: () => Promise | T) => Promise; config?: OpenClawConfig; }): Promise;","entrypoint":"agent-harness-runtime","exportName":"runHarnessContextEngineMaintenance","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} {"closureHash":"ac1ea146e8b2031b307790d708076df67f0120365804edffacbf9841edd86185","declaration":"export function sanitizeToolResult(result: unknown): unknown;","entrypoint":"agent-harness-runtime","exportName":"sanitizeToolResult","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"function","recordType":"export"} @@ -221,8 +221,8 @@ {"closureHash":"f237bbc11e1d389679cd4e2ad7aa9055951b3029348e3374b81f769786a51d55","declaration":"export type AbortAndDrainAgentHarnessRunResult = AbortAndDrainEmbeddedAgentRunResult;","entrypoint":"agent-harness-runtime","exportName":"AbortAndDrainAgentHarnessRunResult","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"6f802f46717d28d260bbcb2cf4790dfed4e9ab28c4fe822d259228189cca4665","declaration":"export type AgentApprovalEventData = AgentApprovalEventData;","entrypoint":"agent-harness-runtime","exportName":"AgentApprovalEventData","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"12aac3a57ce200b0f082002be237625729f84ed7c337f1bac90bcd0688a53319","declaration":"export type AgentEventPayload = AgentEventPayload;","entrypoint":"agent-harness-runtime","exportName":"AgentEventPayload","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} -{"closureHash":"069afe164b45b50b6a4df310f4b257eff482dcd6ca93b1f9a5dcf08724eb44c2","declaration":"export type AgentHarness = AgentHarness;","entrypoint":"agent-harness-runtime","exportName":"AgentHarness","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} -{"closureHash":"069afe164b45b50b6a4df310f4b257eff482dcd6ca93b1f9a5dcf08724eb44c2","declaration":"export type AgentHarnessAttemptParams = AgentHarnessAttemptParams;","entrypoint":"agent-harness-runtime","exportName":"AgentHarnessAttemptParams","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} +{"closureHash":"d3f58785b718226c2b2b6ed6b27f196eebbc7fee2a8366a1b95aa0961dfb5a87","declaration":"export type AgentHarness = AgentHarness;","entrypoint":"agent-harness-runtime","exportName":"AgentHarness","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} +{"closureHash":"d3f58785b718226c2b2b6ed6b27f196eebbc7fee2a8366a1b95aa0961dfb5a87","declaration":"export type AgentHarnessAttemptParams = AgentHarnessAttemptParams;","entrypoint":"agent-harness-runtime","exportName":"AgentHarnessAttemptParams","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"2dc2a62deea63b316142cc28d40afb88fb0d1e5ce3e048f141420726cda38248","declaration":"export type AgentHarnessAttemptResult = AgentHarnessAttemptResult;","entrypoint":"agent-harness-runtime","exportName":"AgentHarnessAttemptResult","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"c7e642234081160830fd9e18a301900f8ee1ea8c88382e5a286f0102de65b714","declaration":"export type AgentHarnessAuthBindingFingerprintParams = AgentHarnessAuthBindingFingerprintParams;","entrypoint":"agent-harness-runtime","exportName":"AgentHarnessAuthBindingFingerprintParams","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"601d68a3c668b18a4009d33b516d577bade06c3f89fafaa19685681c44d801b2","declaration":"export type AgentHarnessCompactParams = CompactEmbeddedAgentSessionParams;","entrypoint":"agent-harness-runtime","exportName":"AgentHarnessCompactParams","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} @@ -236,7 +236,7 @@ {"closureHash":"95741b872a194687696eba4a96d6e887ec6e81922695fa0282cb2f0a46ff9f97","declaration":"export type AgentHarnessSessionForkParams = AgentHarnessSessionForkParams;","entrypoint":"agent-harness-runtime","exportName":"AgentHarnessSessionForkParams","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"f3c46fef2a6c3393b0b6ad09915abcd6f57bb58ddddde1d60ebd113c7a1c5fa6","declaration":"export type AgentHarnessSessionForkResult = AgentHarnessSessionForkResult;","entrypoint":"agent-harness-runtime","exportName":"AgentHarnessSessionForkResult","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"4b5a59730309e446f59a8ec1c554c3193aca1959916594cc657347098bd67a35","declaration":"export type AgentHarnessSettledTurnFinalizationResult = AgentHarnessSettledTurnFinalizationResult;","entrypoint":"agent-harness-runtime","exportName":"AgentHarnessSettledTurnFinalizationResult","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} -{"closureHash":"44637f2058047675f040a811322e775e3439bbdc4e163e0fa507408979538ba9","declaration":"export type AgentHarnessSideQuestionParams = AgentHarnessSideQuestionParams;","entrypoint":"agent-harness-runtime","exportName":"AgentHarnessSideQuestionParams","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} +{"closureHash":"36a47a23a22ada500a2439f80c89ec114f20c3fe3c3e0e40dde73a64679734a6","declaration":"export type AgentHarnessSideQuestionParams = AgentHarnessSideQuestionParams;","entrypoint":"agent-harness-runtime","exportName":"AgentHarnessSideQuestionParams","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"e84173055503c40dd0ef1cb67c6d333e9257fcf995252b27c1d58f5c904e8de9","declaration":"export type AgentHarnessSideQuestionResult = AgentHarnessSideQuestionResult;","entrypoint":"agent-harness-runtime","exportName":"AgentHarnessSideQuestionResult","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"50214d08dac98e3c1031ac7bc733b85cb2247d2eef3b6b2045758ae403af7647","declaration":"export type AgentHarnessSupport = AgentHarnessSupport;","entrypoint":"agent-harness-runtime","exportName":"AgentHarnessSupport","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"50ce26ea22bc225e6064d2e5f37356b6f4ce4a57f8b9fa42baa4c421da48aad5","declaration":"export type AgentHarnessSupportContext = AgentHarnessSupportContext;","entrypoint":"agent-harness-runtime","exportName":"AgentHarnessSupportContext","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} @@ -271,7 +271,7 @@ {"closureHash":"f30b66fd82f4cd61c60880c42a3b8f152ca64a2216036c99ab4129648ed329e7","declaration":"export type EmbeddedAgentCompactResult = EmbeddedAgentCompactResult;","entrypoint":"agent-harness-runtime","exportName":"EmbeddedAgentCompactResult","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"1bbefad0193436f7340f9d0dec50be5d482973325c3c65170b1053dd05566f0a","declaration":"export type EmbeddedContextFile = EmbeddedContextFile;","entrypoint":"agent-harness-runtime","exportName":"EmbeddedContextFile","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"f30b66fd82f4cd61c60880c42a3b8f152ca64a2216036c99ab4129648ed329e7","declaration":"export type EmbeddedPiCompactResult = EmbeddedAgentCompactResult;","entrypoint":"agent-harness-runtime","exportName":"EmbeddedPiCompactResult","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} -{"closureHash":"39aca9d1bc332fd3192cf133df5d5d383e18c0584c1680b2ce2a13a2d3fe17e2","declaration":"export type EmbeddedRunAttemptParams = EmbeddedRunAttemptParams;","entrypoint":"agent-harness-runtime","exportName":"EmbeddedRunAttemptParams","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} +{"closureHash":"b58ad0c54a29c986eace05d14e7bc4925274ff2d61db000698c8963027bcdba3","declaration":"export type EmbeddedRunAttemptParams = EmbeddedRunAttemptParams;","entrypoint":"agent-harness-runtime","exportName":"EmbeddedRunAttemptParams","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"a6cd2eebe0d06e6578ec8438a207c5acda10ddf01041102d84e4c576a0b6a42f","declaration":"export type EmbeddedRunAttemptResult = EmbeddedRunAttemptResult;","entrypoint":"agent-harness-runtime","exportName":"EmbeddedRunAttemptResult","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"f6cb2d6411db22cb04220777720d97bcca977351de1cb344ce2ff6ab126a3a08","declaration":"export type ExecApprovalDecision = ExecApprovalDecision;","entrypoint":"agent-harness-runtime","exportName":"ExecApprovalDecision","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} {"closureHash":"7acb0dffc7bcda6c727e4afc49c955fa8e14f4f8b7b45d197ed794dfa0d73b8e","declaration":"export type ExecAutoReviewDecision = ExecAutoReviewDecision;","entrypoint":"agent-harness-runtime","exportName":"ExecAutoReviewDecision","importSpecifier":"openclaw/plugin-sdk/agent-harness-runtime","kind":"type","recordType":"export"} @@ -309,7 +309,7 @@ {"closureHash":"666634000ee5bf317dabcbd70524833961fad58edc2b3cd66fe5fa0172e89602","declaration":"export function getAgentScopedMediaLocalRoots(cfg: OpenClawConfig, agentId?: string): readonly string[];","entrypoint":"agent-media-payload","exportName":"getAgentScopedMediaLocalRoots","importSpecifier":"openclaw/plugin-sdk/agent-media-payload","kind":"function","recordType":"export"} {"closureHash":"160c685c3f4e7ed80fb24d3d76655a182116efe6a7b985bb3bc57b89fe436d2a","declaration":"export type AgentMediaPayload = AgentMediaPayload;","entrypoint":"agent-media-payload","exportName":"AgentMediaPayload","importSpecifier":"openclaw/plugin-sdk/agent-media-payload","kind":"type","recordType":"export"} {"category":"runtime","entrypoint":"agent-runtime","importSpecifier":"openclaw/plugin-sdk/agent-runtime","recordType":"module"} -{"closureHash":"5b9395838f9417a8e82296ae9b5badf9317ffbc046353102307933a68cec2b7a","declaration":"export function agentCommandFromIngress(opts: AgentCommandIngressOpts, runtime?: RuntimeEnv, deps?: CliDeps): Promise<{ payloads: ReturnType; meta: EmbeddedAgentRunMeta; didSendViaMessagingTool?: boolean; messagingToolSentTexts?: string[]; messagingToolSentMediaUrls?: string[]; messagingToolSentTargets?: MessagingToolSend[]; deliverySucceeded?: boolean; deliveryStatus?: { requested: true; attempted: boolean; status: \"sent\" | \"suppressed\" | \"partial_failed\" | \"failed\"; succeeded: true | false | \"partial\"; error?: true; errorMessage?: string; reason?: string; resultCount?: number; sentBeforeError?: true; payloadOutcomes?: SerializedDurableMessagePayloadOutcome[]; }; }>;","entrypoint":"agent-runtime","exportName":"agentCommandFromIngress","importSpecifier":"openclaw/plugin-sdk/agent-runtime","kind":"function","recordType":"export"} +{"closureHash":"9cbc2cf811486a2e5e0408aa28579772da0e8058566ed6cd4782a5c28e287a06","declaration":"export function agentCommandFromIngress(opts: AgentCommandIngressOpts, runtime?: RuntimeEnv, deps?: CliDeps): Promise<{ payloads: ReturnType; meta: EmbeddedAgentRunMeta; didSendViaMessagingTool?: boolean; messagingToolSentTexts?: string[]; messagingToolSentMediaUrls?: string[]; messagingToolSentTargets?: MessagingToolSend[]; deliverySucceeded?: boolean; deliveryStatus?: { requested: true; attempted: boolean; status: \"sent\" | \"suppressed\" | \"partial_failed\" | \"failed\"; succeeded: true | false | \"partial\"; error?: true; errorMessage?: string; reason?: string; resultCount?: number; sentBeforeError?: true; payloadOutcomes?: SerializedDurableMessagePayloadOutcome[]; }; }>;","entrypoint":"agent-runtime","exportName":"agentCommandFromIngress","importSpecifier":"openclaw/plugin-sdk/agent-runtime","kind":"function","recordType":"export"} {"closureHash":"cb95256473d5489ef80ec3e1d93c6a612b2cc733c26ab535f945f8797995b5cb","declaration":"export function buildConfiguredModelCatalog(params: { cfg: OpenClawConfig; workspaceDir?: string; manifestPlugins?: ModelManifestPlugins; }): ModelCatalogEntry[];","entrypoint":"agent-runtime","exportName":"buildConfiguredModelCatalog","importSpecifier":"openclaw/plugin-sdk/agent-runtime","kind":"function","recordType":"export"} {"closureHash":"4a71b73b60d846e9d99fa3881cb72eb7eaaebe7b3386b6bcbaa6cfa46eb3a073","declaration":"export function buildModelAliasIndex(params: BuildModelAliasIndexParams): ModelAliasIndex;","entrypoint":"agent-runtime","exportName":"buildModelAliasIndex","importSpecifier":"openclaw/plugin-sdk/agent-runtime","kind":"function","recordType":"export"} {"closureHash":"ae0f930ec291a0345c4e99e247711465a5d29a8bbdd63968900fa69f382b3a78","declaration":"export function clearExpiredCooldowns(store: AuthProfileStore, now?: number): boolean;","entrypoint":"agent-runtime","exportName":"clearExpiredCooldowns","importSpecifier":"openclaw/plugin-sdk/agent-runtime","kind":"function","recordType":"export"} @@ -755,7 +755,7 @@ {"closureHash":"9fc7e45343d7bfbc6ed56d05c9f824e2f9cf6dafc3ca4b25437d1f65c2200727","declaration":"export function clearAccountEntryFields(params: { accounts?: Record; accountId: string; fields: string[]; isValueSet?: (value: unknown) => boolean; markClearedOnFieldPresence?: boolean; }): { nextAccounts?: Record; changed: boolean; cleared: boolean; };","entrypoint":"channel-core","exportName":"clearAccountEntryFields","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"function","recordType":"export"} {"closureHash":"f4e084b64b5376268885a73fe507aa5d72bee17a88ec2d7ae1d19b36ea5f1ccb","declaration":"export function createChannelConfigUiHints(params: { channelLabel: string; dmPolicy?: { channelKey: string; includeLegacyNestedPolicy?: boolean; legacyNestedPolicyOrder?: \"before\" | \"after\"; }; configWrites?: boolean; mentionPatterns?: { targetDescription: string; policyTargetDescription?: string; policyNote?: string; denyNote?: string; }; nativeCommands?: boolean; implicitMentions?: boolean; progress?: { includeCommentary?: boolean; commentaryOrder?: \"before-command\" | \"after-command\"; labels?: \"openclaw\"; titleWording?: boolean; }; streaming?: Partial>; retry?: boolean; }): HintMap;","entrypoint":"channel-core","exportName":"createChannelConfigUiHints","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"function","recordType":"export"} {"closureHash":"c26bfcd8451627b0eb75f7837e281b58dc127d19591d7c030691ca9bbe0edbf4","declaration":"export function createChatChannelPlugin(params: { base: ChatChannelPluginBase; security?: ChannelSecurityAdapter | ChatChannelSecurityOptions; pairing?: ChannelPairingAdapter | ChatChannelPairingOptions; threading?: ChannelThreadingAdapter | ChatChannelThreadingOptions; outbound?: ChannelOutboundAdapter | ChatChannelAttachedOutboundOptions; }): ChannelPlugin;","entrypoint":"channel-core","exportName":"createChatChannelPlugin","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"function","recordType":"export"} -{"closureHash":"b71327e7ce28ebadd8059c6ace39bff225972322d0991f5c5d26d3d5b22e53ea","declaration":"export function defineChannelPluginEntry({ id, name, description, plugin, configSchema, setRuntime, registerCliMetadata, registerFull, registerCapabilities, }: DefineChannelPluginEntryOptions): DefinedChannelPluginEntry;","entrypoint":"channel-core","exportName":"defineChannelPluginEntry","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"function","recordType":"export"} +{"closureHash":"a569ea024508826e0ec5d7d9222b23e2a522a4ed51d46833181838a2ee079f06","declaration":"export function defineChannelPluginEntry({ id, name, description, plugin, configSchema, setRuntime, registerCliMetadata, registerFull, registerCapabilities, }: DefineChannelPluginEntryOptions): DefinedChannelPluginEntry;","entrypoint":"channel-core","exportName":"defineChannelPluginEntry","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"function","recordType":"export"} {"closureHash":"0e0a9f6b22c433bdb1165e7707b1f9a1ddac1a544a8add00b503048cf157921f","declaration":"export function defineSetupPluginEntry(plugin: TPlugin): { plugin: TPlugin; };","entrypoint":"channel-core","exportName":"defineSetupPluginEntry","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"function","recordType":"export"} {"closureHash":"8895f7af11b994dcd383ebc45d8cfb3c3b1e6d88a64a001b04f604a83f77e517","declaration":"export function parseOptionalDelimitedEntries(value?: string): string[] | undefined;","entrypoint":"channel-core","exportName":"parseOptionalDelimitedEntries","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"function","recordType":"export"} {"closureHash":"3f97534b10d08eda6a556044eaba623b3744b200a2033877e48d2f2ca924d298","declaration":"export function recoverCurrentThreadSessionId(params: { route: ChannelOutboundSessionRoute; currentSessionKey?: string | null; canRecover?: (context: ThreadAwareOutboundSessionRouteRecoveryContext) => boolean; }): string | undefined;","entrypoint":"channel-core","exportName":"recoverCurrentThreadSessionId","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"function","recordType":"export"} @@ -767,24 +767,24 @@ {"closureHash":"8126b651a679d5435eaa5d346916792c3600e5f0f75d8492b077dd361854f7dd","declaration":"export type ChannelOutboundSessionRouteParams = { cfg: OpenClawConfig; agentId: string; accountId?: string | null; target: string; currentSessionKey?: string; resolvedTarget?: { to: string; kind: ChannelDirectoryEntryKind | \"channel\"; display?: string; source: \"normalized\" | \"directory\"; }; replyToId?: string | null; threadId?: string | number | null;};","entrypoint":"channel-core","exportName":"ChannelOutboundSessionRouteParams","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"type","recordType":"export"} {"closureHash":"4dd12b961fc300d388143ed5d8dc990e759c382b949c337c8f28ac83ca65aae7","declaration":"export type ChannelPlugin = ChannelPlugin;","entrypoint":"channel-core","exportName":"ChannelPlugin","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"type","recordType":"export"} {"closureHash":"8054ffbe71b91afced900ef8a06f5e368ac10c4f99ffc1c6f538a802856f61c6","declaration":"export type OpenClawConfig = OpenClawConfig;","entrypoint":"channel-core","exportName":"OpenClawConfig","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"type","recordType":"export"} -{"closureHash":"baddda61cd7c006909d5364a531fc1d362afca4d789674b0af5f5175f339af9c","declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"channel-core","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"type","recordType":"export"} +{"closureHash":"adad7f6d6c8f37f73c803f8decd56bc9db755e3449b59059de4cbef52f90f116","declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"channel-core","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"type","recordType":"export"} {"closureHash":"d2fd2ab0a5bcfbefb315f61a58e1ec1ea3ecd4bc009b67c6cd52c83a716b8021","declaration":"export type PluginCommandContext = PluginCommandContext;","entrypoint":"channel-core","exportName":"PluginCommandContext","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"type","recordType":"export"} -{"closureHash":"2cea6ec6d79e6fd4291233833057d122a7e96e2838c06409312f57d55734d4ad","declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"channel-core","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"type","recordType":"export"} +{"closureHash":"ee07774fb1d0711bbe9a5d9f49bde457bfb0169000423e58c5a4da432d68f888","declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"channel-core","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/channel-core","kind":"type","recordType":"export"} {"category":"channel","entrypoint":"channel-dm-policy","importSpecifier":"openclaw/plugin-sdk/channel-dm-policy","recordType":"module"} {"closureHash":"821fe6ccd0d9323322bf70c4d1ca5697071a0e32032f44c1e14157162c2c729d","declaration":"export function createChannelDmPolicy(params: CreateChannelDmPolicyParams): ChannelSetupDmPolicy & { promptAllowFrom: NonNullable; };","entrypoint":"channel-dm-policy","exportName":"createChannelDmPolicy","importSpecifier":"openclaw/plugin-sdk/channel-dm-policy","kind":"function","recordType":"export"} {"category":null,"entrypoint":"channel-entry-contract","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","recordType":"module"} -{"closureHash":"10442746e1f19b9cf94fe6767a79831b0c447fb3ff0aac9e57c283db39baa855","declaration":"export function defineBundledChannelEntry({ id, name, description, importMetaUrl, plugin, outbound, secrets, configSchema, runtime, accountInspect, features, registerCliMetadata, registerFull, registerCapabilities, }: DefineBundledChannelEntryOptions): BundledChannelEntryContract;","entrypoint":"channel-entry-contract","exportName":"defineBundledChannelEntry","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"function","recordType":"export"} -{"closureHash":"c19b7a9ff6770096a269051f7a4fd42ddd3b0a815302d709a9540d09320d6c02","declaration":"export function defineBundledChannelSetupEntry({ importMetaUrl, plugin, secrets, runtime, legacyStateMigrations, legacySessionSurface, registerSetupRuntime, features, }: DefineBundledChannelSetupEntryOptions): BundledChannelSetupEntryContract;","entrypoint":"channel-entry-contract","exportName":"defineBundledChannelSetupEntry","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"function","recordType":"export"} +{"closureHash":"324022006bbd575cf17dc8b50ab4d7e8c534702c61c41581f8b5c6ae50a19b32","declaration":"export function defineBundledChannelEntry({ id, name, description, importMetaUrl, plugin, outbound, secrets, configSchema, runtime, accountInspect, features, registerCliMetadata, registerFull, registerCapabilities, }: DefineBundledChannelEntryOptions): BundledChannelEntryContract;","entrypoint":"channel-entry-contract","exportName":"defineBundledChannelEntry","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"function","recordType":"export"} +{"closureHash":"9e570d8dd297bfe66f3e0c4b93574cd367a4fbcad0d7208e0910caf191e3446a","declaration":"export function defineBundledChannelSetupEntry({ importMetaUrl, plugin, secrets, runtime, legacyStateMigrations, legacySessionSurface, registerSetupRuntime, features, }: DefineBundledChannelSetupEntryOptions): BundledChannelSetupEntryContract;","entrypoint":"channel-entry-contract","exportName":"defineBundledChannelSetupEntry","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"function","recordType":"export"} {"closureHash":"cd150287d7e286e7a0d7d6caeb05d0a1efa63b5f351f75f69ba932510a108afd","declaration":"export function loadBundledEntryExportSync(importMetaUrl: string, reference: BundledEntryModuleRef, options?: BundledEntryModuleLoadOptions): T;","entrypoint":"channel-entry-contract","exportName":"loadBundledEntryExportSync","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"function","recordType":"export"} {"closureHash":"7781a3d570d08929af5b3b6cffbb9ef4b9c8e8f1bed55234e0015a681868c812","declaration":"export type AnyAgentTool = AnyAgentTool;","entrypoint":"channel-entry-contract","exportName":"AnyAgentTool","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"type","recordType":"export"} -{"closureHash":"b948f57b4b79788dbdcb8f8ceb1fea954bc00f43ca55144afaf572ea4211aad1","declaration":"export type BundledChannelEntryContract = BundledChannelEntryContract;","entrypoint":"channel-entry-contract","exportName":"BundledChannelEntryContract","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"type","recordType":"export"} +{"closureHash":"83892b448b551c3afb5904a14ec581927b01913d043b2f073d6c62556330a3e7","declaration":"export type BundledChannelEntryContract = BundledChannelEntryContract;","entrypoint":"channel-entry-contract","exportName":"BundledChannelEntryContract","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"type","recordType":"export"} {"closureHash":"f4b82dfd995bd6f08b232984743389d1c854866cb845a8dbb3605acb28818688","declaration":"export type BundledChannelEntryFeatures = BundledChannelEntryFeatures;","entrypoint":"channel-entry-contract","exportName":"BundledChannelEntryFeatures","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"type","recordType":"export"} {"closureHash":"960693591b9bdc974bf3f0097076d90490078db3dceb35349a4f851736cde4fc","declaration":"export type BundledChannelLegacySessionSurface = BundledChannelLegacySessionSurface;","entrypoint":"channel-entry-contract","exportName":"BundledChannelLegacySessionSurface","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"type","recordType":"export"} {"closureHash":"edf79e6a736e5c4977e3b86ef21e7fdf0c0b2bc7deacd8edbee2ca76cb8cef43","declaration":"export type BundledChannelLegacyStateMigrationDetector = BundledChannelLegacyStateMigrationDetector;","entrypoint":"channel-entry-contract","exportName":"BundledChannelLegacyStateMigrationDetector","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"type","recordType":"export"} -{"closureHash":"8ebb37563b907141bfbc401063ea376da2f7f989c21a427cca0b52b4754b7c60","declaration":"export type BundledChannelSetupEntryContract = BundledChannelSetupEntryContract;","entrypoint":"channel-entry-contract","exportName":"BundledChannelSetupEntryContract","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"type","recordType":"export"} +{"closureHash":"0ab0c2988e242205be0a69fd99af52bff747a7066815e54400bcdf11805b1199","declaration":"export type BundledChannelSetupEntryContract = BundledChannelSetupEntryContract;","entrypoint":"channel-entry-contract","exportName":"BundledChannelSetupEntryContract","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"type","recordType":"export"} {"closureHash":"24679ecdf2ff34157b6345a37b58ec1363ec8cb1969b522599d0d92bb7a113b7","declaration":"export type BundledChannelSetupEntryFeatures = BundledChannelSetupEntryFeatures;","entrypoint":"channel-entry-contract","exportName":"BundledChannelSetupEntryFeatures","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"type","recordType":"export"} {"closureHash":"367219c821915e5be4d1ba3a86754475a5f8a4194512f0401de3be11cc649c60","declaration":"export type BundledEntryModuleLoadOptions = BundledEntryModuleLoadOptions;","entrypoint":"channel-entry-contract","exportName":"BundledEntryModuleLoadOptions","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"type","recordType":"export"} -{"closureHash":"5aebbae6e4dcf0e7698eb092f906eb1be8c570dc126029c43da3f07ff5de860c","declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"channel-entry-contract","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"type","recordType":"export"} +{"closureHash":"8b2fd029fd7852fb0ee5f84990afe7a8e277ec38ba357e594c5b47fd9f1f908c","declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"channel-entry-contract","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"type","recordType":"export"} {"closureHash":"91a09e6dcc03ab8fdb2ca6efc5fba8dd38e52c964c990307b7b6993a3fd3ab9a","declaration":"export type OpenClawPluginCommandDefinition = OpenClawPluginCommandDefinition;","entrypoint":"channel-entry-contract","exportName":"OpenClawPluginCommandDefinition","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"type","recordType":"export"} {"closureHash":"de47782d94eab6ffeb6f3b2f170cf852b4320fecf59613f5d228ba2df4d3a824","declaration":"export type PluginCommandContext = PluginCommandContext;","entrypoint":"channel-entry-contract","exportName":"PluginCommandContext","importSpecifier":"openclaw/plugin-sdk/channel-entry-contract","kind":"type","recordType":"export"} {"category":null,"entrypoint":"channel-feedback","importSpecifier":"openclaw/plugin-sdk/channel-feedback","recordType":"module"} @@ -827,10 +827,10 @@ {"closureHash":"dd949b517f4b679f06ad1b7bf97b3ab71c3ef22ffdaaee6616c786dcc925785c","declaration":"export function createDirectDmPreCryptoGuardPolicy(overrides?: DirectDmPreCryptoGuardPolicyOverrides): DirectDmPreCryptoGuardPolicy;","entrypoint":"channel-inbound","exportName":"createDirectDmPreCryptoGuardPolicy","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"d2a3f9dd1ffc16941bb39360012138d3a3cbcf5e8beb08106182831b1c269054","declaration":"export function createInboundDebouncer(params: InboundDebounceCreateParams): { enqueue: (item: T) => Promise; flushKey: (key: string) => Promise; cancelKey: (key: string) => boolean; drain: () => Promise; };","entrypoint":"channel-inbound","exportName":"createInboundDebouncer","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"0589d27aa139324b1ed177b814368d633ef11a77d07697d63ff9b7a6c11f4500","declaration":"export function createPreCryptoDirectDmAuthorizer(params: { resolveAccess: (senderId: string) => Promise | ResolvedInboundDirectDmAccess>; issuePairingChallenge?: (params: { senderId: string; reply: (text: string) => Promise; }) => Promise; onBlocked?: (params: { senderId: string; reason: string; reasonCode: DmGroupAccessReasonCode; }) => void; }): (input: { senderId: string; reply: (text: string) => Promise; }) => Promise<\"allow\" | \"block\" | \"pairing\">;","entrypoint":"channel-inbound","exportName":"createPreCryptoDirectDmAuthorizer","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} -{"closureHash":"9e88cbd2dceec5532df844f561b1950553b16867ef124ab1264cb4060a4637b1","declaration":"export function dispatchChannelInboundReply(params: AssembledInboundReply): Promise;","entrypoint":"channel-inbound","exportName":"dispatchChannelInboundReply","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} -{"closureHash":"64418b5343dd123c7173a7a43a57c49c8c5a17a94a5257c9799a29b6a00d7f52","declaration":"export function dispatchChannelInboundTurn(params: ChannelInboundTurnPlan<\"provider_message_sending\">): Promise;\nexport function dispatchChannelInboundTurn(params: ChannelInboundTurnPlan): Promise;","entrypoint":"channel-inbound","exportName":"dispatchChannelInboundTurn","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} +{"closureHash":"223b7cf0db02a8db31985c199faa1168e84fd3d6e45727254545ecf2684608ed","declaration":"export function dispatchChannelInboundReply(params: AssembledInboundReply): Promise;","entrypoint":"channel-inbound","exportName":"dispatchChannelInboundReply","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} +{"closureHash":"90d9dde3622571da20733d6f4be9c10fcf3856fa48f638656caf69622462a195","declaration":"export function dispatchChannelInboundTurn(params: ChannelInboundTurnPlan<\"provider_message_sending\">): Promise;\nexport function dispatchChannelInboundTurn(params: ChannelInboundTurnPlan): Promise;","entrypoint":"channel-inbound","exportName":"dispatchChannelInboundTurn","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"2f997d08980c2c3f531382428c58204ca04e423a64ca201798f7667da15e774e","declaration":"export function dispatchInboundDirectDm(params: DispatchInboundDirectDmParams): Promise<{ route: DirectDmRoute; ctxPayload: FinalizedMsgContext; }>;","entrypoint":"channel-inbound","exportName":"dispatchInboundDirectDm","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} -{"closureHash":"03d0fe1868cd04a3e5f0a72402c759d1139011498ec79254b266f492faa532c8","declaration":"export function dispatchInboundDirectDmWithRuntime(params: DispatchInboundDirectDmParams & { runtime: PluginRuntime; }): Promise<{ route: DirectDmRoute; storePath: string; ctxPayload: FinalizedMsgContext; }>;","entrypoint":"channel-inbound","exportName":"dispatchInboundDirectDmWithRuntime","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} +{"closureHash":"0325df283b4dcc7149b6e7537c197e46782622adac4ee74edc877a359b91d4e7","declaration":"export function dispatchInboundDirectDmWithRuntime(params: DispatchInboundDirectDmParams & { runtime: PluginRuntime; }): Promise<{ route: DirectDmRoute; storePath: string; ctxPayload: FinalizedMsgContext; }>;","entrypoint":"channel-inbound","exportName":"dispatchInboundDirectDmWithRuntime","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"33cb9d760233f3d322599f7745a42e0b9fe2c653ffb9310d8b579f2d70f7638c","declaration":"export function filterChannelInboundQuoteContext(contextVisibility: ContextVisibilityMode | undefined, quote: SupplementalContextFacts[\"quote\"] | undefined): SupplementalContextFacts[\"quote\"] | undefined;","entrypoint":"channel-inbound","exportName":"filterChannelInboundQuoteContext","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"793b9b84aacb8f5b12daf857de82efc579fa018ba6b2357b0acd044be3dcec5f","declaration":"export function filterChannelInboundSupplementalContext(params: { supplemental?: SupplementalContextFacts; contextVisibility?: ContextVisibilityMode; }): SupplementalContextFacts | undefined;","entrypoint":"channel-inbound","exportName":"filterChannelInboundSupplementalContext","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"ff1797f8e6adf2331d98af9947dcefef02d743c2c7619fc8b5a2462980cb7126","declaration":"export function finalizeChannelInboundContext>(params: FinalizeChannelInboundContextAsyncParams): Promise>;\nexport function finalizeChannelInboundContext>(params: FinalizeChannelInboundContextParams): FinalizeChannelInboundContextResult;","entrypoint":"channel-inbound","exportName":"finalizeChannelInboundContext","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} @@ -855,7 +855,7 @@ {"closureHash":"6b537112d5d84ed07c0b9fd24787eabc2f893f7bfdce1ed5915f88574a7e101c","declaration":"export function normalizeMentionText(text: string): string;","entrypoint":"channel-inbound","exportName":"normalizeMentionText","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"92900098c3cc5b73fba7622a3aa5a1a8c48462ff7ec0cfae8ee0a3aa6f8277f0","declaration":"export function normalizeOutboundLocation(value: unknown, label?: string): OutboundLocation | undefined;","entrypoint":"channel-inbound","exportName":"normalizeOutboundLocation","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"65f5f2725c1124096e437bcf5894983eee1023f7033be886f1a506044b77c58e","declaration":"export function recordChannelBotPairLoopAndCheckSuppression(params: ChannelBotLoopProtectionFacts): PairLoopGuardResult;","entrypoint":"channel-inbound","exportName":"recordChannelBotPairLoopAndCheckSuppression","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} -{"closureHash":"ed88425d5a4ff2de6306689bf2645eaa4e143b08eb1748213e9d6cdd85020758","declaration":"export function recordChannelFeedbackEvent(params: { cfg: OpenClawConfig; agentId: string; sessionKey: string; event: Parameters[1]; }): Promise;","entrypoint":"channel-inbound","exportName":"recordChannelFeedbackEvent","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} +{"closureHash":"b9a9d004fab62d0c96698827022993574677b99d776dabc824e1e7cedaf6a878","declaration":"export function recordChannelFeedbackEvent(params: { cfg: OpenClawConfig; agentId: string; sessionKey: string; event: Parameters[1]; }): Promise;","entrypoint":"channel-inbound","exportName":"recordChannelFeedbackEvent","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"33b4280a69de6a4a87acf915c6d694b9ee41fc4f0262a1bb9836c46d53fe337c","declaration":"export function recordDroppedChannelInboundHistory(params: { input: NormalizedTurnInput; preflight: PreflightFacts; admission?: ChannelTurnAdmission; }): Promise;","entrypoint":"channel-inbound","exportName":"recordDroppedChannelInboundHistory","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"33b4280a69de6a4a87acf915c6d694b9ee41fc4f0262a1bb9836c46d53fe337c","declaration":"export function recordDroppedChannelTurnHistory(params: { input: NormalizedTurnInput; preflight: PreflightFacts; admission?: ChannelTurnAdmission; }): Promise;","entrypoint":"channel-inbound","exportName":"recordDroppedChannelTurnHistory","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"54b920fd80ac659a03000356b64e34d4a44ec22ae39a77accdd2ac97dc5a094e","declaration":"export function resolveChannelInboundRouteEnvelope(params: ResolveAgentRouteInput): { route: ResolvedAgentRoute; buildEnvelope: (input: ChannelInboundEnvelopeInput) => string; };","entrypoint":"channel-inbound","exportName":"resolveChannelInboundRouteEnvelope","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} @@ -869,7 +869,7 @@ {"closureHash":"5af56d49219f28e2d3a8104b771d2e758f14b4cd784e8ffc892b5a94634a3e73","declaration":"export function resolveMentionPatternPolicy(params: ResolveMentionPatternPolicyParams): ResolvedMentionPatternPolicy;","entrypoint":"channel-inbound","exportName":"resolveMentionPatternPolicy","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"1fb79e56b0b0e11f768f2075c9cdc060c3af281c79bbcd5334e5d887b99e5946","declaration":"export function resolveUnmentionedGroupInboundPolicy(params: { cfg: OpenClawConfig; agentId?: string; }): InboundEventKind;","entrypoint":"channel-inbound","exportName":"resolveUnmentionedGroupInboundPolicy","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"b06b5999074830bb40a3d6348a582fc5e1795997442acef561fca6a541d2b015","declaration":"export function runChannelFeedbackReflection(params: { cfg: OpenClawConfig; channel: string; channelLabel: string; accountId?: string; agentId: string; sessionKey: string; conversationId: string; conversationKind: \"direct\" | \"group\" | \"channel\"; thumbedDownResponse?: string; userComment?: string; cooldownMs?: number; onRecordError?: (error: unknown) => void; onDispatchError?: (error: unknown) => void; }): Promise;","entrypoint":"channel-inbound","exportName":"runChannelFeedbackReflection","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} -{"closureHash":"8924950cb2ab1f70ab55bb8d44587dc2d246e06c10684e81c7776c74ed87a2d8","declaration":"export function runChannelInboundEvent(params: RunChannelTurnParams): Promise>;\nexport function runChannelInboundEvent(params: ChannelInboundEventRunnerParams): Promise>;","entrypoint":"channel-inbound","exportName":"runChannelInboundEvent","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} +{"closureHash":"6162750b963f3e70be551f4eb4515932b6d108d9dd9d4dc1d18ee7096ecab3f1","declaration":"export function runChannelInboundEvent(params: RunChannelTurnParams): Promise>;\nexport function runChannelInboundEvent(params: ChannelInboundEventRunnerParams): Promise>;","entrypoint":"channel-inbound","exportName":"runChannelInboundEvent","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"2c68496a174872b31aaf1ac8fad2789deb79d490c5ffbcb157325f1c95d1b51f","declaration":"export function runPreparedInboundReply(params: PreparedChannelTurn): Promise>;","entrypoint":"channel-inbound","exportName":"runPreparedInboundReply","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"7cd0e032be61b330962c9cee9ba6a4e67c31a90e22fd79850e28c97ea3200bd1","declaration":"export function shouldDebounceTextInbound(params: { text: string | null | undefined; cfg: OpenClawConfig; hasMedia?: boolean; commandOptions?: CommandNormalizeOptions; allowDebounce?: boolean; }): boolean;","entrypoint":"channel-inbound","exportName":"shouldDebounceTextInbound","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} {"closureHash":"8289a274f0ea2c1c7f0daaae77c4e9e0c5588f6a17148240e83720a59ec23604","declaration":"export function toHistoryMediaEntries(media: readonly ChannelInboundMediaInput[] | null | undefined, defaults?: { kind?: InboundMediaFacts[\"kind\"]; messageId?: string; }): HistoryMediaEntry[];","entrypoint":"channel-inbound","exportName":"toHistoryMediaEntries","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"function","recordType":"export"} @@ -879,7 +879,7 @@ {"closureHash":"c700a03f4222eb20560db6abb3c775940b35cfbdfb3d122b2644cdc521809fb4","declaration":"export const DEFAULT_CHANNEL_FEEDBACK_REFLECTION_COOLDOWN_MS: 300000;","entrypoint":"channel-inbound","exportName":"DEFAULT_CHANNEL_FEEDBACK_REFLECTION_COOLDOWN_MS","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"const","recordType":"export"} {"closureHash":"03bfa4a5365916c2d9f59e4e3c5c6ae3ee7952b2aec209c232bf73a5ccd2ae94","declaration":"export const filterChannelTurnSupplementalContext: (params: { supplemental?: SupplementalContextFacts; contextVisibility?: ContextVisibilityMode;}) => SupplementalContextFacts | undefined;","entrypoint":"channel-inbound","exportName":"filterChannelTurnSupplementalContext","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"const","recordType":"export"} {"closureHash":"b028978582295be29c22e06673b8f1b48819511b6b8c26cfff9e322ddc2834e3","declaration":"export type AccessGroupMembershipResolver = AccessGroupMembershipResolver;","entrypoint":"channel-inbound","exportName":"AccessGroupMembershipResolver","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} -{"closureHash":"e1642fb62352886de78856a9c6d9fdefcbf53a8dd54702f7de402c60fcaab4bb","declaration":"export type AssembledInboundReply = AssembledChannelTurn;","entrypoint":"channel-inbound","exportName":"AssembledInboundReply","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} +{"closureHash":"5de6d107d40b06837a6b1d69d87411950714ad38aa80270120c2bf72f9f933b2","declaration":"export type AssembledInboundReply = AssembledChannelTurn;","entrypoint":"channel-inbound","exportName":"AssembledInboundReply","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} {"closureHash":"16e04f044a9af3553fa26fec210bf6d2e6e101c4fe4db18b8914fce21dce573f","declaration":"export type BuildChannelInboundEventContextAsyncParams = BuildChannelInboundEventContextAsyncParams;","entrypoint":"channel-inbound","exportName":"BuildChannelInboundEventContextAsyncParams","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} {"closureHash":"bfda516454e1d03a16f685f9470c8ce4329328d5658b5ca26bc703c70c5d17c8","declaration":"export type BuildChannelInboundEventContextParams = BuildChannelInboundEventContextParams;","entrypoint":"channel-inbound","exportName":"BuildChannelInboundEventContextParams","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} {"closureHash":"b6ce3464585a1f042b94574c385dd57ca9be83740ef0fc929db769710dc78061","declaration":"export type BuildChannelTurnContextParams = BuildChannelTurnContextParams;","entrypoint":"channel-inbound","exportName":"BuildChannelTurnContextParams","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} @@ -890,11 +890,11 @@ {"closureHash":"bf7e13e0308a3f54e1686373d312f9883b1de82bf771ea1763379a5bf8f6e716","declaration":"export type ChannelFeedbackReflectionResult = ChannelFeedbackReflectionResult;","entrypoint":"channel-inbound","exportName":"ChannelFeedbackReflectionResult","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} {"closureHash":"f0da845bbdf49b30f6718a4b7ff012a0536deb98f65418583555dc90825797ca","declaration":"export type ChannelInboundDroppedHistoryOptions = ChannelTurnDroppedHistoryOptions;","entrypoint":"channel-inbound","exportName":"ChannelInboundDroppedHistoryOptions","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} {"closureHash":"359ec07a928d613ac5a9f96ded5561f4e3087fd1bf741e1f8e5e8a3b0fb30d29","declaration":"export type ChannelInboundEnvelopeInput = ChannelInboundEnvelopeInput;","entrypoint":"channel-inbound","exportName":"ChannelInboundEnvelopeInput","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} -{"closureHash":"b909039017728e976e5ce869d4d153562a184b792ff6d208ee5eab13eee40c6c","declaration":"export type ChannelInboundEventRunnerParams = ChannelInboundEventRunnerParams;","entrypoint":"channel-inbound","exportName":"ChannelInboundEventRunnerParams","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} +{"closureHash":"413bb9a5c066b3eee5e30d22d8d047d9c0fe05576551f1f992f07b95f6690b56","declaration":"export type ChannelInboundEventRunnerParams = ChannelInboundEventRunnerParams;","entrypoint":"channel-inbound","exportName":"ChannelInboundEventRunnerParams","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} {"closureHash":"fce252e3d1ade4690deb2b6368c79ebee42243d49dffca65670e2ee7a9883e89","declaration":"export type ChannelInboundMediaInput = ChannelInboundMediaInput;","entrypoint":"channel-inbound","exportName":"ChannelInboundMediaInput","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} {"closureHash":"1a0f5a78203bfe24fd1e02389bd2535fbb1937daad45a11058f6fe27641bc792","declaration":"export type ChannelInboundMediaPayload = ChannelInboundMediaPayload;","entrypoint":"channel-inbound","exportName":"ChannelInboundMediaPayload","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} {"closureHash":"5725f1ae1cf4ac225068feb9ba49057cc24fb99862d768a9cfffe5485d6f410c","declaration":"export type ChannelInboundSupplementalResolutionOptions = ChannelInboundSupplementalResolutionOptions;","entrypoint":"channel-inbound","exportName":"ChannelInboundSupplementalResolutionOptions","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} -{"closureHash":"2d47a1f70361b132c10938e4129836e3a3659edb8710a530371708a39ab105b8","declaration":"export type ChannelInboundTurnPlan = ChannelInboundTurnPlan;","entrypoint":"channel-inbound","exportName":"ChannelInboundTurnPlan","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} +{"closureHash":"631adbdd141b50bb43f7147eaaf249fb00ecbfd83e9fff5aaf15cfb15821a1ff","declaration":"export type ChannelInboundTurnPlan = ChannelInboundTurnPlan;","entrypoint":"channel-inbound","exportName":"ChannelInboundTurnPlan","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} {"closureHash":"a5d806d7e29220e98d1fa3ce08ce3ffb12f07d70d6b24b22a3ee4907ed3b1677","declaration":"export type ChannelPartialDeliveryError = ChannelPartialDeliveryError;","entrypoint":"channel-inbound","exportName":"ChannelPartialDeliveryError","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} {"closureHash":"f0da845bbdf49b30f6718a4b7ff012a0536deb98f65418583555dc90825797ca","declaration":"export type ChannelTurnDroppedHistoryOptions = ChannelTurnDroppedHistoryOptions;","entrypoint":"channel-inbound","exportName":"ChannelTurnDroppedHistoryOptions","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} {"closureHash":"fce252e3d1ade4690deb2b6368c79ebee42243d49dffca65670e2ee7a9883e89","declaration":"export type ChannelTurnMediaInput = ChannelInboundMediaInput;","entrypoint":"channel-inbound","exportName":"ChannelTurnMediaInput","importSpecifier":"openclaw/plugin-sdk/channel-inbound","kind":"type","recordType":"export"} @@ -1008,16 +1008,16 @@ {"closureHash":"8b3e6ac673ead45e03d536a4e365b8acfe2184ebde7907244e98af33b36cc99b","declaration":"export type LogFn = LogFn;","entrypoint":"channel-logging","exportName":"LogFn","importSpecifier":"openclaw/plugin-sdk/channel-logging","kind":"type","recordType":"export"} {"category":null,"entrypoint":"channel-message","importSpecifier":"openclaw/plugin-sdk/channel-message","recordType":"module"} {"closureHash":"cbc698a638ef9da9664ea97c5d772472e5a00c4b70f8bad7410248650ad15c0b","declaration":"export function bindIngressLifecycleToReplyOptions(lifecycle: ChannelIngressDispatchLifecycle): { turnAdoptionLifecycle: { admission: \"exclusive\"; onAdopted: () => void | Promise; onDeferred: () => void; onAbandoned: () => void | Promise; abortSignal: AbortSignal; }; };","entrypoint":"channel-message","exportName":"bindIngressLifecycleToReplyOptions","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} -{"closureHash":"a5114e7a8616a7c7fb200dcfdac6514bf35d8588697105a91d87d2214bbc43f4","declaration":"export function buildChannelProgressDraftLine(input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): ChannelProgressDraftLine | undefined;","entrypoint":"channel-message","exportName":"buildChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} -{"closureHash":"aeef6b8d581ff1e87780ad2a88c60ce458cbaa14ff36bf40ffde1459b37ef104","declaration":"export function buildChannelProgressDraftLineForEntry(entry: StreamingCompatEntry | null | undefined, input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): ChannelProgressDraftLine | undefined;","entrypoint":"channel-message","exportName":"buildChannelProgressDraftLineForEntry","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} +{"closureHash":"1529cd8c4498338811b4d3bc1d52f2e89a4d8eeae35db526f79ff7914d889fe2","declaration":"export function buildChannelProgressDraftLine(input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): ChannelProgressDraftLine | undefined;","entrypoint":"channel-message","exportName":"buildChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} +{"closureHash":"3f938b19f99e8206c1c9be21620614d99dc5b642ac129de3b04999333ebd62bb","declaration":"export function buildChannelProgressDraftLineForEntry(entry: StreamingCompatEntry | null | undefined, input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): ChannelProgressDraftLine | undefined;","entrypoint":"channel-message","exportName":"buildChannelProgressDraftLineForEntry","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"3ad861e20afa48e092e1600aea27e46e2d2f7de743a39743c4204239ee3975b8","declaration":"export function buildOutboundSessionContext(params: { cfg: OpenClawConfig; sessionKey?: string | null; policySessionKey?: string | null; conversationType?: string | null; isGroup?: boolean | null; agentId?: string | null; requesterAccountId?: string | null; requesterSenderId?: string | null; requesterSenderName?: string | null; requesterSenderUsername?: string | null; requesterSenderE164?: string | null; }): OutboundSessionContext | undefined;","entrypoint":"channel-message","exportName":"buildOutboundSessionContext","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"45470d4d0feced17992e9c4bb2b9fd198736a3a7bfc7a38229111e0f54fd2f6e","declaration":"export function createAccountStatusSink(params: { accountId: string; setStatus: (next: ChannelAccountSnapshot) => void; }): (patch: Omit) => void;","entrypoint":"channel-message","exportName":"createAccountStatusSink","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"ed08ae6487be62f47b1b24aabf7b02006f0ef954dc92dd1f589353128eee95ba","declaration":"export function createChannelIngressDrain(options: CreateChannelIngressDrainOptions): ChannelIngressDrain;","entrypoint":"channel-message","exportName":"createChannelIngressDrain","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"2ee885cd4f5bd43dc0edc0bd8866bc2655e135dc229dcd08390ce24205a79e6a","declaration":"export function createChannelIngressError(name: string): ChannelIngressErrorClass;\nexport function createChannelIngressError(name: string, options: { withReason: true; }): ChannelIngressErrorClass;","entrypoint":"channel-message","exportName":"createChannelIngressError","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"1148ff7d1272453be5061ccbb1e4213c21701a4d034f7a09dc6539ac28c6122e","declaration":"export function createChannelIngressMonitor(options: CreateChannelIngressMonitorOptions): { admit: (raw: TRaw, admitOptions?: { receivedAt?: number; facts?: ChannelIngressMonitorFacts; }) => Promise<{ readonly kind: \"ignored\"; readonly queueResult?: undefined; } | { readonly kind: \"durable\"; readonly queueResult: { kind: \"failed\"; duplicate: true; record: { id: string; channelId: string; accountId: string; queueName: string; failedAt: number; reason: string; message?: string; }; } | { kind: \"accepted\"; duplicate: false; record: ChannelIngressQueueRecord; } | { kind: \"pending\"; duplicate: true; record: ChannelIngressQueueRecord; } | { kind: \"claimed\"; duplicate: true; record: ChannelIngressQueueClaim; } | { kind: \"completed\"; duplicate: true; record: { id: string; channelId: string; accountId: string; queueName: string; completedAt: number; metadata?: unknown; }; }; }>; admitBatch: (rawEvents: readonly TRaw[], admitOptions?: { receivedAt?: number; }) => Promise<({ readonly kind: \"ignored\"; readonly queueResult?: undefined; } | { readonly kind: \"durable\"; readonly queueResult: { kind: \"failed\"; duplicate: true; record: { id: string; channelId: string; accountId: string; queueName: string; failedAt: number; reason: string; message?: string; }; } | { kind: \"accepted\"; duplicate: false; record: ChannelIngressQueueRecord; } | { kind: \"pending\"; duplicate: true; record: ChannelIngressQueueRecord; } | { kind: \"claimed\"; duplicate: true; record: ChannelIngressQueueClaim; } | { kind: \"completed\"; duplicate: true; record: { id: string; channelId: string; accountId: string; queueName: string; completedAt: number; metadata?: unknown; }; }; })[]>; start: () => void; ensureQueueAvailable: () => void; requestDrain: () => void; pause: () => Promise; stop: () => Promise; waitForIdle: () => Promise; waitForDeferredClaims: () => Promise; waitForPumpIdle: () => Promise; isRunning: () => boolean; isStopped: () => boolean; };","entrypoint":"channel-message","exportName":"createChannelIngressMonitor","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"c2da77bb4d055b4058a10dc5125a8ddbeec764cd700a47280599cfbe000bc7b2","declaration":"export function createChannelMessageAdapterFromOutbound(params: CreateChannelMessageAdapterFromOutboundParams): ChannelMessageAdapterShape;","entrypoint":"channel-message","exportName":"createChannelMessageAdapterFromOutbound","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} -{"closureHash":"a66afb6e59691c75f1e5a773fc33bf13859385f6a984743dd0e1f18ad0ab4b05","declaration":"export function createChannelMessageReplyPipeline(params: CreateChannelReplyPipelineParams): ChannelReplyPipeline;","entrypoint":"channel-message","exportName":"createChannelMessageReplyPipeline","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} -{"closureHash":"3bbbf08a1e6aa4371dcfdc26ef035b32d03eb46ad1204285ca43d40e348695e4","declaration":"export function createChannelProgressDraftCompositor(params: { entry: StreamingCompatEntry | null | undefined; mode: ChannelProgressDraftMode; active: boolean; seed: string; update: (text: string, options?: ChannelProgressDraftUpdateOptions) => Promise | boolean | void; deleteCurrent?: () => Promise | void; tryNativeUpdate?: (text: string) => Promise | boolean; updateOnLineChange?: boolean; rendersRollingLinesNatively?: boolean; formatLine?: (line: string) => string; isEmptyLine?: (line: ChannelProgressDraftCompositorLine | undefined) => boolean; shouldStartNow?: (line: ChannelProgressDraftCompositorLine | undefined) => boolean; reasoningLinePrefix?: string; commentaryLinePrefix?: string; reasoningGate?: boolean; commentaryItalics?: boolean; now?: () => number; setTimeoutFn?: typeof setTimeout; clearTimeoutFn?: typeof clearTimeout; buildProgressEventLine?: ChannelProgressDraftEventLineBuilder; }): { pushPlanProgress(steps?: AgentPlanStep[], options?: { explanation?: string; }): Promise; pushPreambleHeadline(text?: string, options?: { itemId?: string; }): Promise; pushNarrationProgress(text?: string): Promise; pushReasoningProgress(text?: string, options?: { snapshot?: boolean; }): Promise; pushCommentaryProgress(text?: string, options?: { itemId?: string; }): Promise; pushToolEvent: (payload: { name?: string | undefined; args?: Record | undefined; phase?: string | undefined; toolCallId?: string | undefined; itemId?: string | undefined; } & { detailMode?: \"explain\" | \"raw\"; }) => Promise; pushItemEvent: (payload: Omit<{ title?: string | undefined; meta?: string | undefined; status?: string | undefined; name?: string | undefined; phase?: string | undefined; summary?: string | undefined; toolCallId?: string | undefined; itemId?: string | undefined; progressText?: string | undefined; itemKind?: string | undefined; }, \"itemKind\"> & { kind?: string; }) => Promise; pushApprovalEvent: (payload: { message?: string | undefined; title?: string | undefined; command?: string | undefined; reason?: string | undefined; phase?: string | undefined; }) => Promise; pushCommandOutputEvent: (payload: { title?: string | undefined; status?: string | undefined; name?: string | undefined; phase?: string | undefined; exitCode?: number | null | undefined; toolCallId?: string | undefined; itemId?: string | undefined; }) => Promise; pushPatchEvent: (payload: { title?: string | undefined; name?: string | undefined; phase?: string | undefined; deleted?: string[] | undefined; added?: string[] | undefined; summary?: string | undefined; modified?: string[] | undefined; toolCallId?: string | undefined; itemId?: string | undefined; }) => Promise; previewToolProgressEnabled: boolean; commentaryProgressEnabled: boolean; suppressDefaultToolProgressMessages: boolean; hasStarted: boolean; isVisible: boolean; hasStatusHeadline: boolean; hasPlanProgress: boolean; getSnapshot: () => ChannelProgressDraftCompositorSnapshot; markFinalReplyStarted(): void; markFinalReplyDelivered(): void; beginNewTurn(options?: { force?: boolean; }): boolean; reset(): void; resetReasoningProgress(): void; mergeReasoningProgress: (text?: string, options?: { snapshot?: boolean; }) => string; suppress(): void; cancel(): void; start(): Promise; noteActivity(options?: { startImmediately?: boolean; }): Promise; pushToolProgress: (line?: ChannelProgressDraftCompositorLine, options?: { toolName?: string; startImmediately?: boolean; }) => Promise; };","entrypoint":"channel-message","exportName":"createChannelProgressDraftCompositor","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} +{"closureHash":"aee1b9be43b42ac3b4c398fd9819d5ccc01b365e127d97535c07355557566d20","declaration":"export function createChannelMessageReplyPipeline(params: CreateChannelReplyPipelineParams): ChannelReplyPipeline;","entrypoint":"channel-message","exportName":"createChannelMessageReplyPipeline","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} +{"closureHash":"6de2ed474a548200548efc2c385a462fc045eabafc6280a69cc6b91e30718f77","declaration":"export function createChannelProgressDraftCompositor(params: { entry: StreamingCompatEntry | null | undefined; mode: ChannelProgressDraftMode; active: boolean; seed: string; update: (text: string, options?: ChannelProgressDraftUpdateOptions) => Promise | boolean | void; deleteCurrent?: () => Promise | void; tryNativeUpdate?: (text: string) => Promise | boolean; updateOnLineChange?: boolean; rendersRollingLinesNatively?: boolean; formatLine?: (line: string) => string; isEmptyLine?: (line: ChannelProgressDraftCompositorLine | undefined) => boolean; shouldStartNow?: (line: ChannelProgressDraftCompositorLine | undefined) => boolean; reasoningLinePrefix?: string; commentaryLinePrefix?: string; reasoningGate?: boolean; commentaryItalics?: boolean; now?: () => number; setTimeoutFn?: typeof setTimeout; clearTimeoutFn?: typeof clearTimeout; buildProgressEventLine?: ChannelProgressDraftEventLineBuilder; }): { pushPlanProgress(steps?: AgentPlanStep[], options?: { explanation?: string; }): Promise; pushPreambleHeadline(text?: string, options?: { itemId?: string; }): Promise; pushNarrationProgress(text?: string): Promise; pushReasoningProgress(text?: string, options?: { snapshot?: boolean; }): Promise; pushCommentaryProgress(text?: string, options?: { itemId?: string; }): Promise; pushToolEvent: (payload: { name?: string | undefined; args?: Record | undefined; phase?: string | undefined; toolCallId?: string | undefined; itemId?: string | undefined; } & { detailMode?: \"explain\" | \"raw\"; }) => Promise; pushItemEvent: (payload: Omit<{ title?: string | undefined; meta?: string | undefined; status?: string | undefined; name?: string | undefined; phase?: string | undefined; summary?: string | undefined; toolCallId?: string | undefined; itemId?: string | undefined; progressText?: string | undefined; itemKind?: string | undefined; commandBearing?: boolean | undefined; }, \"itemKind\"> & { kind?: string; }) => Promise; pushApprovalEvent: (payload: { message?: string | undefined; title?: string | undefined; command?: string | undefined; reason?: string | undefined; phase?: string | undefined; }) => Promise; pushCommandOutputEvent: (payload: { title?: string | undefined; status?: string | undefined; name?: string | undefined; phase?: string | undefined; exitCode?: number | null | undefined; toolCallId?: string | undefined; itemId?: string | undefined; }) => Promise; pushPatchEvent: (payload: { title?: string | undefined; name?: string | undefined; phase?: string | undefined; deleted?: string[] | undefined; added?: string[] | undefined; summary?: string | undefined; modified?: string[] | undefined; toolCallId?: string | undefined; itemId?: string | undefined; }) => Promise; previewToolProgressEnabled: boolean; commentaryProgressEnabled: boolean; suppressDefaultToolProgressMessages: boolean; hasStarted: boolean; isVisible: boolean; hasStatusHeadline: boolean; hasPlanProgress: boolean; getSnapshot: () => ChannelProgressDraftCompositorSnapshot; markFinalReplyStarted(): void; markFinalReplyDelivered(): void; beginNewTurn(options?: { force?: boolean; }): boolean; reset(): void; resetReasoningProgress(): void; mergeReasoningProgress: (text?: string, options?: { snapshot?: boolean; }) => string; suppress(): void; cancel(): void; start(): Promise; noteActivity(options?: { startImmediately?: boolean; }): Promise; pushToolProgress: (line?: ChannelProgressDraftCompositorLine, options?: { toolName?: string; startImmediately?: boolean; }) => Promise; };","entrypoint":"channel-message","exportName":"createChannelProgressDraftCompositor","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"44c199920938c7a282e44d36eea187f1f8ce1d09bfb845180e1844124f497a3c","declaration":"export function createChannelProgressDraftGate(params: { onStart: () => void | Promise; initialDelayMs?: number; onStartError?: (error: unknown) => void; setTimeoutFn?: typeof setTimeout; clearTimeoutFn?: typeof clearTimeout; }): { readonly hasStarted: boolean; readonly workEvents: number; noteWork(): Promise; startNow(): Promise; cancel(): void; reset(): void; };","entrypoint":"channel-message","exportName":"createChannelProgressDraftGate","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"2204efb262a5e8af61346bce23492dd759c15037ce3b8500148c5cc8dce1c421","declaration":"export function createChannelProgressReceiptTracker(params?: { now?: () => number; }): { noteReasoning(): void; closeReasoning: () => void; noteToolCall(toolName?: string): void; noteCommentary(itemId?: string, text?: string): void; reset: () => void; buildSummaryLine(): string; };","entrypoint":"channel-message","exportName":"createChannelProgressReceiptTracker","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"2209fd876893dd56da7cffda42967e79b6437d5230f70efd42b8171c2ba32611","declaration":"export function createChannelRunQueue(params: ChannelRunQueueParams): ChannelRunQueue;","entrypoint":"channel-message","exportName":"createChannelRunQueue","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} @@ -1027,10 +1027,10 @@ {"closureHash":"acd64a0d6ce6dbd9db22f9e4a4497cef2110a9e962f240c6f5e90cef31505459","declaration":"export function createFinalizableDraftStreamControlsForState(params: { throttleMs: number; state: FinalizableDraftStreamState; sendOrEditStreamMessage: (value: T) => Promise; emptyValue?: T; isEmpty?: (value: T) => boolean; }): { loop: DraftStreamLoop & { takePending: () => T; }; update: (value: T) => void; stop: () => Promise; seal: () => Promise; discardPending: () => Promise; stopForClear: () => Promise; };","entrypoint":"channel-message","exportName":"createFinalizableDraftStreamControlsForState","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"f2bb1868ec1cf7d97e6b8eb0a9a8a37122ec53c9cd4e2bbfc8448c1555f3d382","declaration":"export function createMessageReceiptFromOutboundResults(params: { results: readonly MessageReceiptInputResult[]; kind?: MessageReceiptPartKind; threadId?: string; replyToId?: string; sentAt?: number; }): MessageReceipt;","entrypoint":"channel-message","exportName":"createMessageReceiptFromOutboundResults","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"3c150fb027a4e4a1685b572d26aa1f70b3838641bd7629434c4265bfda549d0a","declaration":"export function createMessageReceiveContext(params: { id: string; channel: string; accountId?: string; message: TMessage; ackPolicy?: MessageAckPolicy; receivedAt?: number; signal?: AbortSignal; onAck?: () => Promise | void; onNack?: (error: unknown) => Promise | void; }): MessageReceiveContext;","entrypoint":"channel-message","exportName":"createMessageReceiveContext","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} -{"closureHash":"0077f2695f161c9c879b3f676ac6598e8add0af66bdc36ee33ee69a09fab70ba","declaration":"export function createOutboundPayloadPlan(payloads: readonly ReplyPayload[], context?: OutboundPayloadPlanContext): OutboundPayloadPlan[];","entrypoint":"channel-message","exportName":"createOutboundPayloadPlan","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} +{"closureHash":"5130c4460ed27cc1137c888e58c09dec0be06241bce0dbc230284efac7d08284","declaration":"export function createOutboundPayloadPlan(payloads: readonly ReplyPayload[], context?: OutboundPayloadPlanContext): OutboundPayloadPlan[];","entrypoint":"channel-message","exportName":"createOutboundPayloadPlan","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"7abc004852a9162c3f4241d6c80b9962c9732dd03d2d38a56e4080a4e92758a1","declaration":"export function createPreviewMessageReceipt(params: { id: unknown; threadId?: string; replyToId?: string; sentAt?: number; raw?: unknown; }): MessageReceipt;","entrypoint":"channel-message","exportName":"createPreviewMessageReceipt","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} -{"closureHash":"5bc1d0180c6325ad014aa58a9810aaab97994ead19dcff59df1d1cefe1444ed8","declaration":"export function createReplyPrefixContext(params: { cfg: OpenClawConfig; agentId: string; channel?: string; accountId?: string; }): ReplyPrefixContextBundle;","entrypoint":"channel-message","exportName":"createReplyPrefixContext","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} -{"closureHash":"e264e9ecf7fe1bab36ba506d03b4654a099a0b3db7b706b5ddcf953427516707","declaration":"export function createReplyPrefixOptions(params: { cfg: OpenClawConfig; agentId: string; channel?: string; accountId?: string; }): ReplyPrefixOptions;","entrypoint":"channel-message","exportName":"createReplyPrefixOptions","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} +{"closureHash":"f5e0146088171cb3d54ff40d309ad33782c545405db40ddf4415ef080cc18033","declaration":"export function createReplyPrefixContext(params: { cfg: OpenClawConfig; agentId: string; channel?: string; accountId?: string; }): ReplyPrefixContextBundle;","entrypoint":"channel-message","exportName":"createReplyPrefixContext","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} +{"closureHash":"5ce1bcf4ed49156404455d981ad4ed663423b1ce1c747936ba53325b84943d72","declaration":"export function createReplyPrefixOptions(params: { cfg: OpenClawConfig; agentId: string; channel?: string; accountId?: string; }): ReplyPrefixOptions;","entrypoint":"channel-message","exportName":"createReplyPrefixOptions","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"74fc19137203a84902b6a7cdaa10db8db714e6aed701e61d398d9edc1bbf2592","declaration":"export function createReplyToFanout(params: { replyToId?: string | null; replyToMode?: ReplyToMode; replyToIdSource?: ReplyToResolution[\"source\"]; }): () => string | undefined;","entrypoint":"channel-message","exportName":"createReplyToFanout","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"d934828dfca3782d302de428edb678320bafaaf43732a885df3a78c9775e49c6","declaration":"export function createRuntimeOutboundDelegates(params: { getRuntime: () => MaybePromise; renderPresentation?: { resolve: (runtime: Runtime) => ChannelOutboundAdapter[\"renderPresentation\"] | null | undefined; unavailableMessage?: string; }; sendPayload?: { resolve: (runtime: Runtime) => ChannelOutboundAdapter[\"sendPayload\"] | null | undefined; unavailableMessage?: string; }; sendText?: { resolve: (runtime: Runtime) => ChannelOutboundAdapter[\"sendText\"] | null | undefined; unavailableMessage?: string; }; sendMedia?: { resolve: (runtime: Runtime) => ChannelOutboundAdapter[\"sendMedia\"] | null | undefined; unavailableMessage?: string; }; sendPoll?: { resolve: (runtime: Runtime) => ChannelOutboundAdapter[\"sendPoll\"] | null | undefined; unavailableMessage?: string; }; }): Pick;","entrypoint":"channel-message","exportName":"createRuntimeOutboundDelegates","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"1c08a759db76abcefee8ee1bab6313a396d321f42a105176b5705bef8ffa94ad","declaration":"export function createTypingCallbacks(params: CreateTypingCallbacksParams): TypingCallbacks;","entrypoint":"channel-message","exportName":"createTypingCallbacks","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} @@ -1039,9 +1039,9 @@ {"closureHash":"7e63fe1abf08995573bb768b68c670ec952a1782e00c3721a625fac283e980cb","declaration":"export function defineFinalizableLivePreviewAdapter(adapter: FinalizableLivePreviewAdapter): FinalizableLivePreviewAdapter;","entrypoint":"channel-message","exportName":"defineFinalizableLivePreviewAdapter","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"f74a47c1667d189ed96c702b3c5307f64306a232b65b9807f43bbd756e819322","declaration":"export function deliverWithFinalizableLivePreviewAdapter(params: { kind: \"tool\" | \"block\" | \"final\"; payload: TPayload; liveState?: LiveMessageState; adapter?: FinalizableLivePreviewAdapter; deliverNormally: (payload: TPayload) => Promise; onNormalDelivered?: () => Promise | void; }): Promise>;","entrypoint":"channel-message","exportName":"deliverWithFinalizableLivePreviewAdapter","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"d1e255cca4dee40f6f6536738809b7616b492da325a439111e0b832546f4734d","declaration":"export function deriveDurableFinalDeliveryRequirements(params: DeriveDurableFinalDeliveryRequirementsParams): DurableFinalDeliveryRequirementMap;","entrypoint":"channel-message","exportName":"deriveDurableFinalDeliveryRequirements","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} -{"closureHash":"4181ce4435cd74d55cde1a2f81498084856202c1c6fddee8148654a1c86fa6ff","declaration":"export function formatChannelProgressDraftLine(input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): string | undefined;","entrypoint":"channel-message","exportName":"formatChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} -{"closureHash":"b567c796ddd84b4a95788291ffd3673ffd4762932a6186529c304cb084b34f42","declaration":"export function formatChannelProgressDraftLineForEntry(entry: StreamingCompatEntry | null | undefined, input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): string | undefined;","entrypoint":"channel-message","exportName":"formatChannelProgressDraftLineForEntry","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} -{"closureHash":"ee056fe27cb960789fbf068f28b71def2a6d16ca495803733457755eecdb994d","declaration":"export function formatChannelProgressDraftText(params: { entry?: StreamingCompatEntry | null; lines: Array; seed?: string; random?: () => number; formatLine?: (line: string) => string; bullet?: string; narration?: string; plan?: readonly AgentPlanStep[]; }): string;","entrypoint":"channel-message","exportName":"formatChannelProgressDraftText","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} +{"closureHash":"fe3b2cc123400a9b7dfb51f69aa0ddc88675b983e772852cb7d902a528dcd055","declaration":"export function formatChannelProgressDraftLine(input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): string | undefined;","entrypoint":"channel-message","exportName":"formatChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} +{"closureHash":"df25d6ffb817eb32f8b4b670057c2c5e4d42512f416f99351e2345a09371226d","declaration":"export function formatChannelProgressDraftLineForEntry(entry: StreamingCompatEntry | null | undefined, input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): string | undefined;","entrypoint":"channel-message","exportName":"formatChannelProgressDraftLineForEntry","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} +{"closureHash":"ad582c3d988c6ba71760e6ccf10f896c98034a70ed5bed6924087b898de61d3e","declaration":"export function formatChannelProgressDraftText(params: { entry?: StreamingCompatEntry | null; lines: Array; seed?: string; random?: () => number; formatLine?: (line: string) => string; bullet?: string; narration?: string; plan?: readonly AgentPlanStep[]; }): string;","entrypoint":"channel-message","exportName":"formatChannelProgressDraftText","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"d54d2cfdcb9d85947f0ce5380faa272a982ab558b483cd2cd67a4cd4ced16fbb","declaration":"export function formatPlanChecklistLines(steps: readonly AgentPlanStep[], options: { maxLines: number; maxLineChars: number; }): string[];","entrypoint":"channel-message","exportName":"formatPlanChecklistLines","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"72ef52a7a184703e0ac9fec319b40f650c6ffc488153ebc1ff2d4c5ef0d2fe63","declaration":"export function getChannelStreamingConfigObject(entry: StreamingCompatEntry | null | undefined): ChannelStreamingConfig | undefined;","entrypoint":"channel-message","exportName":"getChannelStreamingConfigObject","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"8a142089acc4d9428ed552977f90f17b2283c109cd1c66b91b51b3653d455eea","declaration":"export function hasFinalChannelTurnDispatch(result: ChannelTurnDispatchResultLike, signals?: Pick): boolean;","entrypoint":"channel-message","exportName":"hasFinalChannelTurnDispatch","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} @@ -1052,11 +1052,11 @@ {"closureHash":"76834dcabb16e8bf079074313b0883d7fccd003117cb630f5c1ea8eef0bd7b62","declaration":"export function keepHttpServerTaskAlive(params: { server: CloseAwareServer; abortSignal?: AbortSignal; onAbort?: () => void | Promise; }): Promise;","entrypoint":"channel-message","exportName":"keepHttpServerTaskAlive","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"5b3cd54bde62dfe24a8f940c26459db2f10b2569f638224ca73d41c79c9315bf","declaration":"export function listMessageReceiptPlatformIds(receipt: MessageReceipt): string[];","entrypoint":"channel-message","exportName":"listMessageReceiptPlatformIds","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"447bed40e4b999ca05c2a5e517c9f3081c127ed9e5f16db058135fecacbdff7d","declaration":"export function logTypingFailure(params: { log: LogFn; channel: string; target?: string; action?: \"start\" | \"stop\"; error: unknown; }): void;","entrypoint":"channel-message","exportName":"logTypingFailure","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} -{"closureHash":"6afbf0355ecf5eb0ba8f89322eb73b19cce9dd021bfff3ca1ab1d018154e7680","declaration":"export function mergeChannelProgressDraftLine(lines: TLine[], line: TLine, params: { maxLines: number; }): TLine[];","entrypoint":"channel-message","exportName":"mergeChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} +{"closureHash":"63de02df0263b3534b1c84a1e45aad5201c859d04c49dcbe9cbe64131f9704be","declaration":"export function mergeChannelProgressDraftLine(lines: TLine[], line: TLine, params: { maxLines: number; }): TLine[];","entrypoint":"channel-message","exportName":"mergeChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"844a3251dcba84a9735c855d7b6c930570cc486f3a1c5fc49b541572d52bb7d7","declaration":"export function normalizeAgentPlanSteps(value: unknown): AgentPlanStep[] | undefined;","entrypoint":"channel-message","exportName":"normalizeAgentPlanSteps","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} -{"closureHash":"2458fcb3c1632a3d75c6ed4225937a65323729dc25fc000c643ecf8dbea743bf","declaration":"export function normalizeChannelProgressDraftLineIdentity(line: string | ChannelProgressDraftLine | undefined): string;","entrypoint":"channel-message","exportName":"normalizeChannelProgressDraftLineIdentity","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} +{"closureHash":"b19d38e15e2054e826fd132198c606165fc369fb5a96f4e6bbbf7b89bee35ac2","declaration":"export function normalizeChannelProgressDraftLineIdentity(line: string | ChannelProgressDraftLine | undefined): string;","entrypoint":"channel-message","exportName":"normalizeChannelProgressDraftLineIdentity","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"ba2389600eeea10867e3891e411bd84e8fd07dcd410249c29ca92ba59ef27bad","declaration":"export function processPidFromOwnerId(ownerId: string): number;","entrypoint":"channel-message","exportName":"processPidFromOwnerId","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} -{"closureHash":"03552b213fb7043a408c7a78722ad9786022e19ffea1c70e0166a59b2c3dead4","declaration":"export function projectOutboundPayloadPlanForDelivery(plan: readonly OutboundPayloadPlan[]): ReplyPayload[];","entrypoint":"channel-message","exportName":"projectOutboundPayloadPlanForDelivery","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} +{"closureHash":"5c3fd4b52f1e8d9c676ae83e438156943823fb03a5d0ebf4692c58df8d8fcfc3","declaration":"export function projectOutboundPayloadPlanForDelivery(plan: readonly OutboundPayloadPlan[]): ReplyPayload[];","entrypoint":"channel-message","exportName":"projectOutboundPayloadPlanForDelivery","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"bc16377d8f9c3467da5115ff2d6b3ef0423980794a0f5af287b1f1e8ee9533ef","declaration":"export function recordOutboundMessageIdentity(identity: OutboundMessageIdentity): void;","entrypoint":"channel-message","exportName":"recordOutboundMessageIdentity","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"3090faaaca1e2c970a0eadbb7792c531a053746df6df83a082d8564a8313b401","declaration":"export function resolveAgentOutboundIdentity(cfg: OpenClawConfig, agentId: string): OutboundIdentity | undefined;","entrypoint":"channel-message","exportName":"resolveAgentOutboundIdentity","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} {"closureHash":"ba763bf7ff1dee852fb9b58f5995f9df744028d47ca29f687b215ba316c66723","declaration":"export function resolveChannelDraftStreamingChunking(cfg: OpenClawConfig | undefined, channelId: ChannelId, accountId: string | null | undefined, opts: { fallbackLimit: number; }): ChannelDraftStreamingChunking;","entrypoint":"channel-message","exportName":"resolveChannelDraftStreamingChunking","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"function","recordType":"export"} @@ -1096,7 +1096,7 @@ {"closureHash":"9555a73ba2717bba0bf94888017be4cecef2c51cc3887ed34f8d8ef3c79d6abf","declaration":"export const DEFAULT_INGRESS_RETRY_DEAD_LETTER_MIN_AGE_MS: number;","entrypoint":"channel-message","exportName":"DEFAULT_INGRESS_RETRY_DEAD_LETTER_MIN_AGE_MS","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"const","recordType":"export"} {"closureHash":"3a2df3ab656149630c004d2d9f71b8ceda99aa81eb6b72b0cc7b3982ed0ce044","declaration":"export const DEFAULT_INGRESS_RETRY_MAX_ATTEMPTS: 8;","entrypoint":"channel-message","exportName":"DEFAULT_INGRESS_RETRY_MAX_ATTEMPTS","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"const","recordType":"export"} {"closureHash":"38c735a14c65067aa7825390d1c5c8876c651d0603e84980dfaf947f5235747a","declaration":"export const INGRESS_CLAIM_PROCESS_ID: string;","entrypoint":"channel-message","exportName":"INGRESS_CLAIM_PROCESS_ID","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"const","recordType":"export"} -{"closureHash":"2887dec3a9c4ee96e2d46f8dd7a18894b8e3179f45c2bf634343df93012a55b4","declaration":"export const deliverInboundReplyWithMessageSendContext: (params: DurableInboundReplyDeliveryParams) => Promise<{ status: \"not_applicable\"; reason: \"non_final\";} | { status: \"unsupported\"; reason: \"missing_channel\" | \"missing_target\" | \"missing_outbound_handler\" | \"capability_mismatch\"; capability?: DurableFinalDeliveryRequirement;} | { status: \"handled_visible\"; delivery: ChannelDeliveryResult;} | { status: \"handled_no_send\"; reason: \"no_visible_result\"; delivery: ChannelDeliveryResult;} | { status: \"failed\"; error: unknown; sentBeforeError?: true;}>;","entrypoint":"channel-message","exportName":"deliverInboundReplyWithMessageSendContext","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"const","recordType":"export"} +{"closureHash":"879bf9f1b156e597b1138ee3576f48860b0cb572294aaed088ea2cf0bacfe021","declaration":"export const deliverInboundReplyWithMessageSendContext: (params: DurableInboundReplyDeliveryParams) => Promise<{ status: \"not_applicable\"; reason: \"non_final\";} | { status: \"unsupported\"; reason: \"missing_channel\" | \"missing_target\" | \"missing_outbound_handler\" | \"capability_mismatch\"; capability?: DurableFinalDeliveryRequirement;} | { status: \"handled_visible\"; delivery: ChannelDeliveryResult;} | { status: \"handled_no_send\"; reason: \"no_visible_result\"; delivery: ChannelDeliveryResult;} | { status: \"failed\"; error: unknown; sentBeforeError?: true;}>;","entrypoint":"channel-message","exportName":"deliverInboundReplyWithMessageSendContext","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"const","recordType":"export"} {"closureHash":"2c52eff200a5b9bd2d93ee72209c2626bbe165f59b538591db661b94773023b0","declaration":"export type AgentPlanStep = AgentPlanStep;","entrypoint":"channel-message","exportName":"AgentPlanStep","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} {"closureHash":"1e8bcb2c8d8f5327f5b81b8c217f722f090dccba21ba3943324010f4f80a5a50","declaration":"export type AgentPlanStepStatus = AgentPlanStepStatus;","entrypoint":"channel-message","exportName":"AgentPlanStepStatus","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} {"closureHash":"b036fc26e5330dfd7da1af8839bb3c23e85283b9e16e252a659dd4bb0c35cd5e","declaration":"export type ChannelDeliveryStreamingConfig = ChannelDeliveryStreamingConfig;","entrypoint":"channel-message","exportName":"ChannelDeliveryStreamingConfig","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} @@ -1118,9 +1118,9 @@ {"closureHash":"f55e61d3efa488a6ddf6dcceebef7259df98883ecfc5fda904b09754f199ee1a","declaration":"export type ChannelMessageUnknownSendContext = ChannelMessageUnknownSendContext;","entrypoint":"channel-message","exportName":"ChannelMessageUnknownSendContext","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} {"closureHash":"e3bde4b77d2c764a8d8236b5739523240f594f484825ac9ea4205cacdb100960","declaration":"export type ChannelMessageUnknownSendReconciliationResult = ChannelMessageUnknownSendReconciliationResult;","entrypoint":"channel-message","exportName":"ChannelMessageUnknownSendReconciliationResult","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} {"closureHash":"67f3a704195e12f66ff1b8633639dc4de4af9769891b13e7ba7a575ca1efcdc6","declaration":"export type ChannelPreviewStreamingConfig = ChannelPreviewStreamingConfig;","entrypoint":"channel-message","exportName":"ChannelPreviewStreamingConfig","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} -{"closureHash":"70fac0ae1a73d61c1cc6ed001c7cae94ccafcf7547e6c53f833c87566a6f8d88","declaration":"export type ChannelProgressDraftCompositorLine = ChannelProgressDraftCompositorLine;","entrypoint":"channel-message","exportName":"ChannelProgressDraftCompositorLine","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} -{"closureHash":"39e6a4ced74b0ecb12a41e703947469ba72d0dbcc4686dce968ccb541d0e71a5","declaration":"export type ChannelProgressDraftCompositorSnapshot = Readonly<{ lines: readonly ChannelProgressDraftCompositorLine[]; statusHeadline?: string; plan?: readonly AgentPlanStep[]; planExplanation?: string;}>;","entrypoint":"channel-message","exportName":"ChannelProgressDraftCompositorSnapshot","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} -{"closureHash":"7a6eeb19346d69b173c5206d5f07414d44d551f38a285d06660a418f3905abd1","declaration":"export type ChannelProgressDraftLine = ChannelProgressDraftLine;","entrypoint":"channel-message","exportName":"ChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} +{"closureHash":"0e770e84db0236d956e70398054333f16395d5522bebbb7122d65ade2f64e44a","declaration":"export type ChannelProgressDraftCompositorLine = ChannelProgressDraftCompositorLine;","entrypoint":"channel-message","exportName":"ChannelProgressDraftCompositorLine","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} +{"closureHash":"b7c76761bd56e44d2ae0e3c54f8880a1ae4897c2c1b28bc5704367f841c18b06","declaration":"export type ChannelProgressDraftCompositorSnapshot = Readonly<{ lines: readonly ChannelProgressDraftCompositorLine[]; statusHeadline?: string; plan?: readonly AgentPlanStep[]; planExplanation?: string;}>;","entrypoint":"channel-message","exportName":"ChannelProgressDraftCompositorSnapshot","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} +{"closureHash":"a9ec1f82184ba85d82bfdb8b4ebb8b8280e6dd0c63f08a61e55e92c6df005fcc","declaration":"export type ChannelProgressDraftLine = ChannelProgressDraftLine;","entrypoint":"channel-message","exportName":"ChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} {"closureHash":"de6224d5ef3d05e9e25fadc96c00f75c3df158ef94345e7c9f102b7234926fb7","declaration":"export type ChannelStreamingBlockConfig = ChannelStreamingBlockConfig;","entrypoint":"channel-message","exportName":"ChannelStreamingBlockConfig","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} {"closureHash":"c3269be226828d9e407cadb848af626a7a01949ce921c44494542eb676217d67","declaration":"export type ChannelStreamingProgressConfig = ChannelStreamingProgressConfig;","entrypoint":"channel-message","exportName":"ChannelStreamingProgressConfig","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} {"closureHash":"fc7e4c04e9bb74b8ab367534651361c243c839d563677621540793eed89c61bf","declaration":"export type DurableMessageBatchSendResult = DurableMessageBatchSendResult;","entrypoint":"channel-message","exportName":"DurableMessageBatchSendResult","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} @@ -1140,16 +1140,16 @@ {"closureHash":"424d0b4b21b078d07a49a7bc52c3b63250be032a3e17f47c0cc824178b828ded","declaration":"export type TextChunkMode = TextChunkMode;","entrypoint":"channel-message","exportName":"TextChunkMode","importSpecifier":"openclaw/plugin-sdk/channel-message","kind":"type","recordType":"export"} {"category":null,"entrypoint":"channel-outbound","importSpecifier":"openclaw/plugin-sdk/channel-outbound","recordType":"module"} {"closureHash":"cbc698a638ef9da9664ea97c5d772472e5a00c4b70f8bad7410248650ad15c0b","declaration":"export function bindIngressLifecycleToReplyOptions(lifecycle: ChannelIngressDispatchLifecycle): { turnAdoptionLifecycle: { admission: \"exclusive\"; onAdopted: () => void | Promise; onDeferred: () => void; onAbandoned: () => void | Promise; abortSignal: AbortSignal; }; };","entrypoint":"channel-outbound","exportName":"bindIngressLifecycleToReplyOptions","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} -{"closureHash":"a5114e7a8616a7c7fb200dcfdac6514bf35d8588697105a91d87d2214bbc43f4","declaration":"export function buildChannelProgressDraftLine(input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): ChannelProgressDraftLine | undefined;","entrypoint":"channel-outbound","exportName":"buildChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} -{"closureHash":"aeef6b8d581ff1e87780ad2a88c60ce458cbaa14ff36bf40ffde1459b37ef104","declaration":"export function buildChannelProgressDraftLineForEntry(entry: StreamingCompatEntry | null | undefined, input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): ChannelProgressDraftLine | undefined;","entrypoint":"channel-outbound","exportName":"buildChannelProgressDraftLineForEntry","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} +{"closureHash":"1529cd8c4498338811b4d3bc1d52f2e89a4d8eeae35db526f79ff7914d889fe2","declaration":"export function buildChannelProgressDraftLine(input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): ChannelProgressDraftLine | undefined;","entrypoint":"channel-outbound","exportName":"buildChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} +{"closureHash":"3f938b19f99e8206c1c9be21620614d99dc5b642ac129de3b04999333ebd62bb","declaration":"export function buildChannelProgressDraftLineForEntry(entry: StreamingCompatEntry | null | undefined, input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): ChannelProgressDraftLine | undefined;","entrypoint":"channel-outbound","exportName":"buildChannelProgressDraftLineForEntry","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"3ad861e20afa48e092e1600aea27e46e2d2f7de743a39743c4204239ee3975b8","declaration":"export function buildOutboundSessionContext(params: { cfg: OpenClawConfig; sessionKey?: string | null; policySessionKey?: string | null; conversationType?: string | null; isGroup?: boolean | null; agentId?: string | null; requesterAccountId?: string | null; requesterSenderId?: string | null; requesterSenderName?: string | null; requesterSenderUsername?: string | null; requesterSenderE164?: string | null; }): OutboundSessionContext | undefined;","entrypoint":"channel-outbound","exportName":"buildOutboundSessionContext","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"45470d4d0feced17992e9c4bb2b9fd198736a3a7bfc7a38229111e0f54fd2f6e","declaration":"export function createAccountStatusSink(params: { accountId: string; setStatus: (next: ChannelAccountSnapshot) => void; }): (patch: Omit) => void;","entrypoint":"channel-outbound","exportName":"createAccountStatusSink","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"ed08ae6487be62f47b1b24aabf7b02006f0ef954dc92dd1f589353128eee95ba","declaration":"export function createChannelIngressDrain(options: CreateChannelIngressDrainOptions): ChannelIngressDrain;","entrypoint":"channel-outbound","exportName":"createChannelIngressDrain","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"2ee885cd4f5bd43dc0edc0bd8866bc2655e135dc229dcd08390ce24205a79e6a","declaration":"export function createChannelIngressError(name: string): ChannelIngressErrorClass;\nexport function createChannelIngressError(name: string, options: { withReason: true; }): ChannelIngressErrorClass;","entrypoint":"channel-outbound","exportName":"createChannelIngressError","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"1148ff7d1272453be5061ccbb1e4213c21701a4d034f7a09dc6539ac28c6122e","declaration":"export function createChannelIngressMonitor(options: CreateChannelIngressMonitorOptions): { admit: (raw: TRaw, admitOptions?: { receivedAt?: number; facts?: ChannelIngressMonitorFacts; }) => Promise<{ readonly kind: \"ignored\"; readonly queueResult?: undefined; } | { readonly kind: \"durable\"; readonly queueResult: { kind: \"failed\"; duplicate: true; record: { id: string; channelId: string; accountId: string; queueName: string; failedAt: number; reason: string; message?: string; }; } | { kind: \"accepted\"; duplicate: false; record: ChannelIngressQueueRecord; } | { kind: \"pending\"; duplicate: true; record: ChannelIngressQueueRecord; } | { kind: \"claimed\"; duplicate: true; record: ChannelIngressQueueClaim; } | { kind: \"completed\"; duplicate: true; record: { id: string; channelId: string; accountId: string; queueName: string; completedAt: number; metadata?: unknown; }; }; }>; admitBatch: (rawEvents: readonly TRaw[], admitOptions?: { receivedAt?: number; }) => Promise<({ readonly kind: \"ignored\"; readonly queueResult?: undefined; } | { readonly kind: \"durable\"; readonly queueResult: { kind: \"failed\"; duplicate: true; record: { id: string; channelId: string; accountId: string; queueName: string; failedAt: number; reason: string; message?: string; }; } | { kind: \"accepted\"; duplicate: false; record: ChannelIngressQueueRecord; } | { kind: \"pending\"; duplicate: true; record: ChannelIngressQueueRecord; } | { kind: \"claimed\"; duplicate: true; record: ChannelIngressQueueClaim; } | { kind: \"completed\"; duplicate: true; record: { id: string; channelId: string; accountId: string; queueName: string; completedAt: number; metadata?: unknown; }; }; })[]>; start: () => void; ensureQueueAvailable: () => void; requestDrain: () => void; pause: () => Promise; stop: () => Promise; waitForIdle: () => Promise; waitForDeferredClaims: () => Promise; waitForPumpIdle: () => Promise; isRunning: () => boolean; isStopped: () => boolean; };","entrypoint":"channel-outbound","exportName":"createChannelIngressMonitor","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"c2da77bb4d055b4058a10dc5125a8ddbeec764cd700a47280599cfbe000bc7b2","declaration":"export function createChannelMessageAdapterFromOutbound(params: CreateChannelMessageAdapterFromOutboundParams): ChannelMessageAdapterShape;","entrypoint":"channel-outbound","exportName":"createChannelMessageAdapterFromOutbound","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} -{"closureHash":"a66afb6e59691c75f1e5a773fc33bf13859385f6a984743dd0e1f18ad0ab4b05","declaration":"export function createChannelMessageReplyPipeline(params: CreateChannelReplyPipelineParams): ChannelReplyPipeline;","entrypoint":"channel-outbound","exportName":"createChannelMessageReplyPipeline","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} -{"closureHash":"3bbbf08a1e6aa4371dcfdc26ef035b32d03eb46ad1204285ca43d40e348695e4","declaration":"export function createChannelProgressDraftCompositor(params: { entry: StreamingCompatEntry | null | undefined; mode: ChannelProgressDraftMode; active: boolean; seed: string; update: (text: string, options?: ChannelProgressDraftUpdateOptions) => Promise | boolean | void; deleteCurrent?: () => Promise | void; tryNativeUpdate?: (text: string) => Promise | boolean; updateOnLineChange?: boolean; rendersRollingLinesNatively?: boolean; formatLine?: (line: string) => string; isEmptyLine?: (line: ChannelProgressDraftCompositorLine | undefined) => boolean; shouldStartNow?: (line: ChannelProgressDraftCompositorLine | undefined) => boolean; reasoningLinePrefix?: string; commentaryLinePrefix?: string; reasoningGate?: boolean; commentaryItalics?: boolean; now?: () => number; setTimeoutFn?: typeof setTimeout; clearTimeoutFn?: typeof clearTimeout; buildProgressEventLine?: ChannelProgressDraftEventLineBuilder; }): { pushPlanProgress(steps?: AgentPlanStep[], options?: { explanation?: string; }): Promise; pushPreambleHeadline(text?: string, options?: { itemId?: string; }): Promise; pushNarrationProgress(text?: string): Promise; pushReasoningProgress(text?: string, options?: { snapshot?: boolean; }): Promise; pushCommentaryProgress(text?: string, options?: { itemId?: string; }): Promise; pushToolEvent: (payload: { name?: string | undefined; args?: Record | undefined; phase?: string | undefined; toolCallId?: string | undefined; itemId?: string | undefined; } & { detailMode?: \"explain\" | \"raw\"; }) => Promise; pushItemEvent: (payload: Omit<{ title?: string | undefined; meta?: string | undefined; status?: string | undefined; name?: string | undefined; phase?: string | undefined; summary?: string | undefined; toolCallId?: string | undefined; itemId?: string | undefined; progressText?: string | undefined; itemKind?: string | undefined; }, \"itemKind\"> & { kind?: string; }) => Promise; pushApprovalEvent: (payload: { message?: string | undefined; title?: string | undefined; command?: string | undefined; reason?: string | undefined; phase?: string | undefined; }) => Promise; pushCommandOutputEvent: (payload: { title?: string | undefined; status?: string | undefined; name?: string | undefined; phase?: string | undefined; exitCode?: number | null | undefined; toolCallId?: string | undefined; itemId?: string | undefined; }) => Promise; pushPatchEvent: (payload: { title?: string | undefined; name?: string | undefined; phase?: string | undefined; deleted?: string[] | undefined; added?: string[] | undefined; summary?: string | undefined; modified?: string[] | undefined; toolCallId?: string | undefined; itemId?: string | undefined; }) => Promise; previewToolProgressEnabled: boolean; commentaryProgressEnabled: boolean; suppressDefaultToolProgressMessages: boolean; hasStarted: boolean; isVisible: boolean; hasStatusHeadline: boolean; hasPlanProgress: boolean; getSnapshot: () => ChannelProgressDraftCompositorSnapshot; markFinalReplyStarted(): void; markFinalReplyDelivered(): void; beginNewTurn(options?: { force?: boolean; }): boolean; reset(): void; resetReasoningProgress(): void; mergeReasoningProgress: (text?: string, options?: { snapshot?: boolean; }) => string; suppress(): void; cancel(): void; start(): Promise; noteActivity(options?: { startImmediately?: boolean; }): Promise; pushToolProgress: (line?: ChannelProgressDraftCompositorLine, options?: { toolName?: string; startImmediately?: boolean; }) => Promise; };","entrypoint":"channel-outbound","exportName":"createChannelProgressDraftCompositor","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} +{"closureHash":"aee1b9be43b42ac3b4c398fd9819d5ccc01b365e127d97535c07355557566d20","declaration":"export function createChannelMessageReplyPipeline(params: CreateChannelReplyPipelineParams): ChannelReplyPipeline;","entrypoint":"channel-outbound","exportName":"createChannelMessageReplyPipeline","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} +{"closureHash":"6de2ed474a548200548efc2c385a462fc045eabafc6280a69cc6b91e30718f77","declaration":"export function createChannelProgressDraftCompositor(params: { entry: StreamingCompatEntry | null | undefined; mode: ChannelProgressDraftMode; active: boolean; seed: string; update: (text: string, options?: ChannelProgressDraftUpdateOptions) => Promise | boolean | void; deleteCurrent?: () => Promise | void; tryNativeUpdate?: (text: string) => Promise | boolean; updateOnLineChange?: boolean; rendersRollingLinesNatively?: boolean; formatLine?: (line: string) => string; isEmptyLine?: (line: ChannelProgressDraftCompositorLine | undefined) => boolean; shouldStartNow?: (line: ChannelProgressDraftCompositorLine | undefined) => boolean; reasoningLinePrefix?: string; commentaryLinePrefix?: string; reasoningGate?: boolean; commentaryItalics?: boolean; now?: () => number; setTimeoutFn?: typeof setTimeout; clearTimeoutFn?: typeof clearTimeout; buildProgressEventLine?: ChannelProgressDraftEventLineBuilder; }): { pushPlanProgress(steps?: AgentPlanStep[], options?: { explanation?: string; }): Promise; pushPreambleHeadline(text?: string, options?: { itemId?: string; }): Promise; pushNarrationProgress(text?: string): Promise; pushReasoningProgress(text?: string, options?: { snapshot?: boolean; }): Promise; pushCommentaryProgress(text?: string, options?: { itemId?: string; }): Promise; pushToolEvent: (payload: { name?: string | undefined; args?: Record | undefined; phase?: string | undefined; toolCallId?: string | undefined; itemId?: string | undefined; } & { detailMode?: \"explain\" | \"raw\"; }) => Promise; pushItemEvent: (payload: Omit<{ title?: string | undefined; meta?: string | undefined; status?: string | undefined; name?: string | undefined; phase?: string | undefined; summary?: string | undefined; toolCallId?: string | undefined; itemId?: string | undefined; progressText?: string | undefined; itemKind?: string | undefined; commandBearing?: boolean | undefined; }, \"itemKind\"> & { kind?: string; }) => Promise; pushApprovalEvent: (payload: { message?: string | undefined; title?: string | undefined; command?: string | undefined; reason?: string | undefined; phase?: string | undefined; }) => Promise; pushCommandOutputEvent: (payload: { title?: string | undefined; status?: string | undefined; name?: string | undefined; phase?: string | undefined; exitCode?: number | null | undefined; toolCallId?: string | undefined; itemId?: string | undefined; }) => Promise; pushPatchEvent: (payload: { title?: string | undefined; name?: string | undefined; phase?: string | undefined; deleted?: string[] | undefined; added?: string[] | undefined; summary?: string | undefined; modified?: string[] | undefined; toolCallId?: string | undefined; itemId?: string | undefined; }) => Promise; previewToolProgressEnabled: boolean; commentaryProgressEnabled: boolean; suppressDefaultToolProgressMessages: boolean; hasStarted: boolean; isVisible: boolean; hasStatusHeadline: boolean; hasPlanProgress: boolean; getSnapshot: () => ChannelProgressDraftCompositorSnapshot; markFinalReplyStarted(): void; markFinalReplyDelivered(): void; beginNewTurn(options?: { force?: boolean; }): boolean; reset(): void; resetReasoningProgress(): void; mergeReasoningProgress: (text?: string, options?: { snapshot?: boolean; }) => string; suppress(): void; cancel(): void; start(): Promise; noteActivity(options?: { startImmediately?: boolean; }): Promise; pushToolProgress: (line?: ChannelProgressDraftCompositorLine, options?: { toolName?: string; startImmediately?: boolean; }) => Promise; };","entrypoint":"channel-outbound","exportName":"createChannelProgressDraftCompositor","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"44c199920938c7a282e44d36eea187f1f8ce1d09bfb845180e1844124f497a3c","declaration":"export function createChannelProgressDraftGate(params: { onStart: () => void | Promise; initialDelayMs?: number; onStartError?: (error: unknown) => void; setTimeoutFn?: typeof setTimeout; clearTimeoutFn?: typeof clearTimeout; }): { readonly hasStarted: boolean; readonly workEvents: number; noteWork(): Promise; startNow(): Promise; cancel(): void; reset(): void; };","entrypoint":"channel-outbound","exportName":"createChannelProgressDraftGate","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"2204efb262a5e8af61346bce23492dd759c15037ce3b8500148c5cc8dce1c421","declaration":"export function createChannelProgressReceiptTracker(params?: { now?: () => number; }): { noteReasoning(): void; closeReasoning: () => void; noteToolCall(toolName?: string): void; noteCommentary(itemId?: string, text?: string): void; reset: () => void; buildSummaryLine(): string; };","entrypoint":"channel-outbound","exportName":"createChannelProgressReceiptTracker","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"2209fd876893dd56da7cffda42967e79b6437d5230f70efd42b8171c2ba32611","declaration":"export function createChannelRunQueue(params: ChannelRunQueueParams): ChannelRunQueue;","entrypoint":"channel-outbound","exportName":"createChannelRunQueue","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} @@ -1159,10 +1159,10 @@ {"closureHash":"acd64a0d6ce6dbd9db22f9e4a4497cef2110a9e962f240c6f5e90cef31505459","declaration":"export function createFinalizableDraftStreamControlsForState(params: { throttleMs: number; state: FinalizableDraftStreamState; sendOrEditStreamMessage: (value: T) => Promise; emptyValue?: T; isEmpty?: (value: T) => boolean; }): { loop: DraftStreamLoop & { takePending: () => T; }; update: (value: T) => void; stop: () => Promise; seal: () => Promise; discardPending: () => Promise; stopForClear: () => Promise; };","entrypoint":"channel-outbound","exportName":"createFinalizableDraftStreamControlsForState","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"f2bb1868ec1cf7d97e6b8eb0a9a8a37122ec53c9cd4e2bbfc8448c1555f3d382","declaration":"export function createMessageReceiptFromOutboundResults(params: { results: readonly MessageReceiptInputResult[]; kind?: MessageReceiptPartKind; threadId?: string; replyToId?: string; sentAt?: number; }): MessageReceipt;","entrypoint":"channel-outbound","exportName":"createMessageReceiptFromOutboundResults","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"3c150fb027a4e4a1685b572d26aa1f70b3838641bd7629434c4265bfda549d0a","declaration":"export function createMessageReceiveContext(params: { id: string; channel: string; accountId?: string; message: TMessage; ackPolicy?: MessageAckPolicy; receivedAt?: number; signal?: AbortSignal; onAck?: () => Promise | void; onNack?: (error: unknown) => Promise | void; }): MessageReceiveContext;","entrypoint":"channel-outbound","exportName":"createMessageReceiveContext","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} -{"closureHash":"0077f2695f161c9c879b3f676ac6598e8add0af66bdc36ee33ee69a09fab70ba","declaration":"export function createOutboundPayloadPlan(payloads: readonly ReplyPayload[], context?: OutboundPayloadPlanContext): OutboundPayloadPlan[];","entrypoint":"channel-outbound","exportName":"createOutboundPayloadPlan","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} +{"closureHash":"5130c4460ed27cc1137c888e58c09dec0be06241bce0dbc230284efac7d08284","declaration":"export function createOutboundPayloadPlan(payloads: readonly ReplyPayload[], context?: OutboundPayloadPlanContext): OutboundPayloadPlan[];","entrypoint":"channel-outbound","exportName":"createOutboundPayloadPlan","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"7abc004852a9162c3f4241d6c80b9962c9732dd03d2d38a56e4080a4e92758a1","declaration":"export function createPreviewMessageReceipt(params: { id: unknown; threadId?: string; replyToId?: string; sentAt?: number; raw?: unknown; }): MessageReceipt;","entrypoint":"channel-outbound","exportName":"createPreviewMessageReceipt","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} -{"closureHash":"5bc1d0180c6325ad014aa58a9810aaab97994ead19dcff59df1d1cefe1444ed8","declaration":"export function createReplyPrefixContext(params: { cfg: OpenClawConfig; agentId: string; channel?: string; accountId?: string; }): ReplyPrefixContextBundle;","entrypoint":"channel-outbound","exportName":"createReplyPrefixContext","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} -{"closureHash":"e264e9ecf7fe1bab36ba506d03b4654a099a0b3db7b706b5ddcf953427516707","declaration":"export function createReplyPrefixOptions(params: { cfg: OpenClawConfig; agentId: string; channel?: string; accountId?: string; }): ReplyPrefixOptions;","entrypoint":"channel-outbound","exportName":"createReplyPrefixOptions","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} +{"closureHash":"f5e0146088171cb3d54ff40d309ad33782c545405db40ddf4415ef080cc18033","declaration":"export function createReplyPrefixContext(params: { cfg: OpenClawConfig; agentId: string; channel?: string; accountId?: string; }): ReplyPrefixContextBundle;","entrypoint":"channel-outbound","exportName":"createReplyPrefixContext","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} +{"closureHash":"5ce1bcf4ed49156404455d981ad4ed663423b1ce1c747936ba53325b84943d72","declaration":"export function createReplyPrefixOptions(params: { cfg: OpenClawConfig; agentId: string; channel?: string; accountId?: string; }): ReplyPrefixOptions;","entrypoint":"channel-outbound","exportName":"createReplyPrefixOptions","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"74fc19137203a84902b6a7cdaa10db8db714e6aed701e61d398d9edc1bbf2592","declaration":"export function createReplyToFanout(params: { replyToId?: string | null; replyToMode?: ReplyToMode; replyToIdSource?: ReplyToResolution[\"source\"]; }): () => string | undefined;","entrypoint":"channel-outbound","exportName":"createReplyToFanout","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"d934828dfca3782d302de428edb678320bafaaf43732a885df3a78c9775e49c6","declaration":"export function createRuntimeOutboundDelegates(params: { getRuntime: () => MaybePromise; renderPresentation?: { resolve: (runtime: Runtime) => ChannelOutboundAdapter[\"renderPresentation\"] | null | undefined; unavailableMessage?: string; }; sendPayload?: { resolve: (runtime: Runtime) => ChannelOutboundAdapter[\"sendPayload\"] | null | undefined; unavailableMessage?: string; }; sendText?: { resolve: (runtime: Runtime) => ChannelOutboundAdapter[\"sendText\"] | null | undefined; unavailableMessage?: string; }; sendMedia?: { resolve: (runtime: Runtime) => ChannelOutboundAdapter[\"sendMedia\"] | null | undefined; unavailableMessage?: string; }; sendPoll?: { resolve: (runtime: Runtime) => ChannelOutboundAdapter[\"sendPoll\"] | null | undefined; unavailableMessage?: string; }; }): Pick;","entrypoint":"channel-outbound","exportName":"createRuntimeOutboundDelegates","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"1c08a759db76abcefee8ee1bab6313a396d321f42a105176b5705bef8ffa94ad","declaration":"export function createTypingCallbacks(params: CreateTypingCallbacksParams): TypingCallbacks;","entrypoint":"channel-outbound","exportName":"createTypingCallbacks","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} @@ -1171,9 +1171,9 @@ {"closureHash":"7e63fe1abf08995573bb768b68c670ec952a1782e00c3721a625fac283e980cb","declaration":"export function defineFinalizableLivePreviewAdapter(adapter: FinalizableLivePreviewAdapter): FinalizableLivePreviewAdapter;","entrypoint":"channel-outbound","exportName":"defineFinalizableLivePreviewAdapter","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"f74a47c1667d189ed96c702b3c5307f64306a232b65b9807f43bbd756e819322","declaration":"export function deliverWithFinalizableLivePreviewAdapter(params: { kind: \"tool\" | \"block\" | \"final\"; payload: TPayload; liveState?: LiveMessageState; adapter?: FinalizableLivePreviewAdapter; deliverNormally: (payload: TPayload) => Promise; onNormalDelivered?: () => Promise | void; }): Promise>;","entrypoint":"channel-outbound","exportName":"deliverWithFinalizableLivePreviewAdapter","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"d1e255cca4dee40f6f6536738809b7616b492da325a439111e0b832546f4734d","declaration":"export function deriveDurableFinalDeliveryRequirements(params: DeriveDurableFinalDeliveryRequirementsParams): DurableFinalDeliveryRequirementMap;","entrypoint":"channel-outbound","exportName":"deriveDurableFinalDeliveryRequirements","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} -{"closureHash":"4181ce4435cd74d55cde1a2f81498084856202c1c6fddee8148654a1c86fa6ff","declaration":"export function formatChannelProgressDraftLine(input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): string | undefined;","entrypoint":"channel-outbound","exportName":"formatChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} -{"closureHash":"b567c796ddd84b4a95788291ffd3673ffd4762932a6186529c304cb084b34f42","declaration":"export function formatChannelProgressDraftLineForEntry(entry: StreamingCompatEntry | null | undefined, input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): string | undefined;","entrypoint":"channel-outbound","exportName":"formatChannelProgressDraftLineForEntry","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} -{"closureHash":"ee056fe27cb960789fbf068f28b71def2a6d16ca495803733457755eecdb994d","declaration":"export function formatChannelProgressDraftText(params: { entry?: StreamingCompatEntry | null; lines: Array; seed?: string; random?: () => number; formatLine?: (line: string) => string; bullet?: string; narration?: string; plan?: readonly AgentPlanStep[]; }): string;","entrypoint":"channel-outbound","exportName":"formatChannelProgressDraftText","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} +{"closureHash":"fe3b2cc123400a9b7dfb51f69aa0ddc88675b983e772852cb7d902a528dcd055","declaration":"export function formatChannelProgressDraftLine(input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): string | undefined;","entrypoint":"channel-outbound","exportName":"formatChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} +{"closureHash":"df25d6ffb817eb32f8b4b670057c2c5e4d42512f416f99351e2345a09371226d","declaration":"export function formatChannelProgressDraftLineForEntry(entry: StreamingCompatEntry | null | undefined, input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): string | undefined;","entrypoint":"channel-outbound","exportName":"formatChannelProgressDraftLineForEntry","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} +{"closureHash":"ad582c3d988c6ba71760e6ccf10f896c98034a70ed5bed6924087b898de61d3e","declaration":"export function formatChannelProgressDraftText(params: { entry?: StreamingCompatEntry | null; lines: Array; seed?: string; random?: () => number; formatLine?: (line: string) => string; bullet?: string; narration?: string; plan?: readonly AgentPlanStep[]; }): string;","entrypoint":"channel-outbound","exportName":"formatChannelProgressDraftText","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"d54d2cfdcb9d85947f0ce5380faa272a982ab558b483cd2cd67a4cd4ced16fbb","declaration":"export function formatPlanChecklistLines(steps: readonly AgentPlanStep[], options: { maxLines: number; maxLineChars: number; }): string[];","entrypoint":"channel-outbound","exportName":"formatPlanChecklistLines","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"72ef52a7a184703e0ac9fec319b40f650c6ffc488153ebc1ff2d4c5ef0d2fe63","declaration":"export function getChannelStreamingConfigObject(entry: StreamingCompatEntry | null | undefined): ChannelStreamingConfig | undefined;","entrypoint":"channel-outbound","exportName":"getChannelStreamingConfigObject","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"a3392a9a24bc265b97c030d5e44169bf0b3a59738aae7ee2d3589c8840aa701a","declaration":"export function isChannelProgressDraftWorkToolName(name: string | null | undefined): boolean;","entrypoint":"channel-outbound","exportName":"isChannelProgressDraftWorkToolName","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} @@ -1182,11 +1182,11 @@ {"closureHash":"76834dcabb16e8bf079074313b0883d7fccd003117cb630f5c1ea8eef0bd7b62","declaration":"export function keepHttpServerTaskAlive(params: { server: CloseAwareServer; abortSignal?: AbortSignal; onAbort?: () => void | Promise; }): Promise;","entrypoint":"channel-outbound","exportName":"keepHttpServerTaskAlive","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"5b3cd54bde62dfe24a8f940c26459db2f10b2569f638224ca73d41c79c9315bf","declaration":"export function listMessageReceiptPlatformIds(receipt: MessageReceipt): string[];","entrypoint":"channel-outbound","exportName":"listMessageReceiptPlatformIds","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"447bed40e4b999ca05c2a5e517c9f3081c127ed9e5f16db058135fecacbdff7d","declaration":"export function logTypingFailure(params: { log: LogFn; channel: string; target?: string; action?: \"start\" | \"stop\"; error: unknown; }): void;","entrypoint":"channel-outbound","exportName":"logTypingFailure","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} -{"closureHash":"6afbf0355ecf5eb0ba8f89322eb73b19cce9dd021bfff3ca1ab1d018154e7680","declaration":"export function mergeChannelProgressDraftLine(lines: TLine[], line: TLine, params: { maxLines: number; }): TLine[];","entrypoint":"channel-outbound","exportName":"mergeChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} +{"closureHash":"63de02df0263b3534b1c84a1e45aad5201c859d04c49dcbe9cbe64131f9704be","declaration":"export function mergeChannelProgressDraftLine(lines: TLine[], line: TLine, params: { maxLines: number; }): TLine[];","entrypoint":"channel-outbound","exportName":"mergeChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"844a3251dcba84a9735c855d7b6c930570cc486f3a1c5fc49b541572d52bb7d7","declaration":"export function normalizeAgentPlanSteps(value: unknown): AgentPlanStep[] | undefined;","entrypoint":"channel-outbound","exportName":"normalizeAgentPlanSteps","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} -{"closureHash":"2458fcb3c1632a3d75c6ed4225937a65323729dc25fc000c643ecf8dbea743bf","declaration":"export function normalizeChannelProgressDraftLineIdentity(line: string | ChannelProgressDraftLine | undefined): string;","entrypoint":"channel-outbound","exportName":"normalizeChannelProgressDraftLineIdentity","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} +{"closureHash":"b19d38e15e2054e826fd132198c606165fc369fb5a96f4e6bbbf7b89bee35ac2","declaration":"export function normalizeChannelProgressDraftLineIdentity(line: string | ChannelProgressDraftLine | undefined): string;","entrypoint":"channel-outbound","exportName":"normalizeChannelProgressDraftLineIdentity","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"ba2389600eeea10867e3891e411bd84e8fd07dcd410249c29ca92ba59ef27bad","declaration":"export function processPidFromOwnerId(ownerId: string): number;","entrypoint":"channel-outbound","exportName":"processPidFromOwnerId","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} -{"closureHash":"03552b213fb7043a408c7a78722ad9786022e19ffea1c70e0166a59b2c3dead4","declaration":"export function projectOutboundPayloadPlanForDelivery(plan: readonly OutboundPayloadPlan[]): ReplyPayload[];","entrypoint":"channel-outbound","exportName":"projectOutboundPayloadPlanForDelivery","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} +{"closureHash":"5c3fd4b52f1e8d9c676ae83e438156943823fb03a5d0ebf4692c58df8d8fcfc3","declaration":"export function projectOutboundPayloadPlanForDelivery(plan: readonly OutboundPayloadPlan[]): ReplyPayload[];","entrypoint":"channel-outbound","exportName":"projectOutboundPayloadPlanForDelivery","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"bc16377d8f9c3467da5115ff2d6b3ef0423980794a0f5af287b1f1e8ee9533ef","declaration":"export function recordOutboundMessageIdentity(identity: OutboundMessageIdentity): void;","entrypoint":"channel-outbound","exportName":"recordOutboundMessageIdentity","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"3090faaaca1e2c970a0eadbb7792c531a053746df6df83a082d8564a8313b401","declaration":"export function resolveAgentOutboundIdentity(cfg: OpenClawConfig, agentId: string): OutboundIdentity | undefined;","entrypoint":"channel-outbound","exportName":"resolveAgentOutboundIdentity","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} {"closureHash":"ba763bf7ff1dee852fb9b58f5995f9df744028d47ca29f687b215ba316c66723","declaration":"export function resolveChannelDraftStreamingChunking(cfg: OpenClawConfig | undefined, channelId: ChannelId, accountId: string | null | undefined, opts: { fallbackLimit: number; }): ChannelDraftStreamingChunking;","entrypoint":"channel-outbound","exportName":"resolveChannelDraftStreamingChunking","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"function","recordType":"export"} @@ -1225,7 +1225,7 @@ {"closureHash":"9555a73ba2717bba0bf94888017be4cecef2c51cc3887ed34f8d8ef3c79d6abf","declaration":"export const DEFAULT_INGRESS_RETRY_DEAD_LETTER_MIN_AGE_MS: number;","entrypoint":"channel-outbound","exportName":"DEFAULT_INGRESS_RETRY_DEAD_LETTER_MIN_AGE_MS","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"const","recordType":"export"} {"closureHash":"3a2df3ab656149630c004d2d9f71b8ceda99aa81eb6b72b0cc7b3982ed0ce044","declaration":"export const DEFAULT_INGRESS_RETRY_MAX_ATTEMPTS: 8;","entrypoint":"channel-outbound","exportName":"DEFAULT_INGRESS_RETRY_MAX_ATTEMPTS","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"const","recordType":"export"} {"closureHash":"38c735a14c65067aa7825390d1c5c8876c651d0603e84980dfaf947f5235747a","declaration":"export const INGRESS_CLAIM_PROCESS_ID: string;","entrypoint":"channel-outbound","exportName":"INGRESS_CLAIM_PROCESS_ID","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"const","recordType":"export"} -{"closureHash":"2887dec3a9c4ee96e2d46f8dd7a18894b8e3179f45c2bf634343df93012a55b4","declaration":"export const deliverInboundReplyWithMessageSendContext: (params: DurableInboundReplyDeliveryParams) => Promise<{ status: \"not_applicable\"; reason: \"non_final\";} | { status: \"unsupported\"; reason: \"missing_channel\" | \"missing_target\" | \"missing_outbound_handler\" | \"capability_mismatch\"; capability?: DurableFinalDeliveryRequirement;} | { status: \"handled_visible\"; delivery: ChannelDeliveryResult;} | { status: \"handled_no_send\"; reason: \"no_visible_result\"; delivery: ChannelDeliveryResult;} | { status: \"failed\"; error: unknown; sentBeforeError?: true;}>;","entrypoint":"channel-outbound","exportName":"deliverInboundReplyWithMessageSendContext","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"const","recordType":"export"} +{"closureHash":"879bf9f1b156e597b1138ee3576f48860b0cb572294aaed088ea2cf0bacfe021","declaration":"export const deliverInboundReplyWithMessageSendContext: (params: DurableInboundReplyDeliveryParams) => Promise<{ status: \"not_applicable\"; reason: \"non_final\";} | { status: \"unsupported\"; reason: \"missing_channel\" | \"missing_target\" | \"missing_outbound_handler\" | \"capability_mismatch\"; capability?: DurableFinalDeliveryRequirement;} | { status: \"handled_visible\"; delivery: ChannelDeliveryResult;} | { status: \"handled_no_send\"; reason: \"no_visible_result\"; delivery: ChannelDeliveryResult;} | { status: \"failed\"; error: unknown; sentBeforeError?: true;}>;","entrypoint":"channel-outbound","exportName":"deliverInboundReplyWithMessageSendContext","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"const","recordType":"export"} {"closureHash":"2c52eff200a5b9bd2d93ee72209c2626bbe165f59b538591db661b94773023b0","declaration":"export type AgentPlanStep = AgentPlanStep;","entrypoint":"channel-outbound","exportName":"AgentPlanStep","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} {"closureHash":"1e8bcb2c8d8f5327f5b81b8c217f722f090dccba21ba3943324010f4f80a5a50","declaration":"export type AgentPlanStepStatus = AgentPlanStepStatus;","entrypoint":"channel-outbound","exportName":"AgentPlanStepStatus","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} {"closureHash":"b036fc26e5330dfd7da1af8839bb3c23e85283b9e16e252a659dd4bb0c35cd5e","declaration":"export type ChannelDeliveryStreamingConfig = ChannelDeliveryStreamingConfig;","entrypoint":"channel-outbound","exportName":"ChannelDeliveryStreamingConfig","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} @@ -1247,9 +1247,9 @@ {"closureHash":"f55e61d3efa488a6ddf6dcceebef7259df98883ecfc5fda904b09754f199ee1a","declaration":"export type ChannelMessageUnknownSendContext = ChannelMessageUnknownSendContext;","entrypoint":"channel-outbound","exportName":"ChannelMessageUnknownSendContext","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} {"closureHash":"e3bde4b77d2c764a8d8236b5739523240f594f484825ac9ea4205cacdb100960","declaration":"export type ChannelMessageUnknownSendReconciliationResult = ChannelMessageUnknownSendReconciliationResult;","entrypoint":"channel-outbound","exportName":"ChannelMessageUnknownSendReconciliationResult","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} {"closureHash":"67f3a704195e12f66ff1b8633639dc4de4af9769891b13e7ba7a575ca1efcdc6","declaration":"export type ChannelPreviewStreamingConfig = ChannelPreviewStreamingConfig;","entrypoint":"channel-outbound","exportName":"ChannelPreviewStreamingConfig","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} -{"closureHash":"70fac0ae1a73d61c1cc6ed001c7cae94ccafcf7547e6c53f833c87566a6f8d88","declaration":"export type ChannelProgressDraftCompositorLine = ChannelProgressDraftCompositorLine;","entrypoint":"channel-outbound","exportName":"ChannelProgressDraftCompositorLine","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} -{"closureHash":"39e6a4ced74b0ecb12a41e703947469ba72d0dbcc4686dce968ccb541d0e71a5","declaration":"export type ChannelProgressDraftCompositorSnapshot = Readonly<{ lines: readonly ChannelProgressDraftCompositorLine[]; statusHeadline?: string; plan?: readonly AgentPlanStep[]; planExplanation?: string;}>;","entrypoint":"channel-outbound","exportName":"ChannelProgressDraftCompositorSnapshot","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} -{"closureHash":"7a6eeb19346d69b173c5206d5f07414d44d551f38a285d06660a418f3905abd1","declaration":"export type ChannelProgressDraftLine = ChannelProgressDraftLine;","entrypoint":"channel-outbound","exportName":"ChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} +{"closureHash":"0e770e84db0236d956e70398054333f16395d5522bebbb7122d65ade2f64e44a","declaration":"export type ChannelProgressDraftCompositorLine = ChannelProgressDraftCompositorLine;","entrypoint":"channel-outbound","exportName":"ChannelProgressDraftCompositorLine","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} +{"closureHash":"b7c76761bd56e44d2ae0e3c54f8880a1ae4897c2c1b28bc5704367f841c18b06","declaration":"export type ChannelProgressDraftCompositorSnapshot = Readonly<{ lines: readonly ChannelProgressDraftCompositorLine[]; statusHeadline?: string; plan?: readonly AgentPlanStep[]; planExplanation?: string;}>;","entrypoint":"channel-outbound","exportName":"ChannelProgressDraftCompositorSnapshot","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} +{"closureHash":"a9ec1f82184ba85d82bfdb8b4ebb8b8280e6dd0c63f08a61e55e92c6df005fcc","declaration":"export type ChannelProgressDraftLine = ChannelProgressDraftLine;","entrypoint":"channel-outbound","exportName":"ChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} {"closureHash":"de6224d5ef3d05e9e25fadc96c00f75c3df158ef94345e7c9f102b7234926fb7","declaration":"export type ChannelStreamingBlockConfig = ChannelStreamingBlockConfig;","entrypoint":"channel-outbound","exportName":"ChannelStreamingBlockConfig","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} {"closureHash":"c3269be226828d9e407cadb848af626a7a01949ce921c44494542eb676217d67","declaration":"export type ChannelStreamingProgressConfig = ChannelStreamingProgressConfig;","entrypoint":"channel-outbound","exportName":"ChannelStreamingProgressConfig","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} {"closureHash":"fc7e4c04e9bb74b8ab367534651361c243c839d563677621540793eed89c61bf","declaration":"export type DurableMessageBatchSendResult = DurableMessageBatchSendResult;","entrypoint":"channel-outbound","exportName":"DurableMessageBatchSendResult","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} @@ -1269,13 +1269,13 @@ {"closureHash":"424d0b4b21b078d07a49a7bc52c3b63250be032a3e17f47c0cc824178b828ded","declaration":"export type TextChunkMode = TextChunkMode;","entrypoint":"channel-outbound","exportName":"TextChunkMode","importSpecifier":"openclaw/plugin-sdk/channel-outbound","kind":"type","recordType":"export"} {"category":"channel","entrypoint":"channel-pairing","importSpecifier":"openclaw/plugin-sdk/channel-pairing","recordType":"module"} {"closureHash":"3d2325df85dcb397e7df5c9f380c5d6c517976527acbe7d94d59df8777810d1f","declaration":"export function createChannelPairingChallengeIssuer(params: { channel: ChannelId; accountId?: string; upsertPairingRequest: Parameters[0][\"upsertPairingRequest\"]; }): (challenge: Omit[0], \"channel\" | \"accountId\" | \"upsertPairingRequest\">) => Promise<{ created: boolean; code?: string; }>;","entrypoint":"channel-pairing","exportName":"createChannelPairingChallengeIssuer","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"function","recordType":"export"} -{"closureHash":"2626359f9b56d0dcf678ffa7a9ba8c90bdc1e47959ff4158e386603e0253153a","declaration":"export function createChannelPairingController(params: { core: PluginRuntime; channel: ChannelId; accountId: string; }): ChannelPairingController;","entrypoint":"channel-pairing","exportName":"createChannelPairingController","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"function","recordType":"export"} +{"closureHash":"ad83e030117e619ae227e479db7a5de9450e82602600c3183bdabb40f5d61459","declaration":"export function createChannelPairingController(params: { core: PluginRuntime; channel: ChannelId; accountId: string; }): ChannelPairingController;","entrypoint":"channel-pairing","exportName":"createChannelPairingController","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"function","recordType":"export"} {"closureHash":"39648d8f2d5ec14a204569c6266100fef1e455dd53dd6b05ae3034dc98986875","declaration":"export function createLoggedPairingApprovalNotifier(format: string | ((params: PairingNotifyParams) => string), log?: (message: string) => void): NonNullable;","entrypoint":"channel-pairing","exportName":"createLoggedPairingApprovalNotifier","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"function","recordType":"export"} {"closureHash":"d5198bb50f3f1c60b384feb93ae07621ceeca6f7d7f7c729ec96dabe984eca10","declaration":"export function createPairingPrefixStripper(prefixRe: RegExp, map?: (entry: string) => string): NonNullable;","entrypoint":"channel-pairing","exportName":"createPairingPrefixStripper","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"function","recordType":"export"} {"closureHash":"b914a433d104666e368d9e2c85d328e0015168b8ad3ade34bc993d3cc7141513","declaration":"export function createTextPairingAdapter(params: { idLabel: string; message: string; normalizeAllowEntry?: ChannelPairingAdapter[\"normalizeAllowEntry\"]; notify: (params: PairingNotifyParams & { message: string; }) => Promise | void; }): ChannelPairingAdapter;","entrypoint":"channel-pairing","exportName":"createTextPairingAdapter","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"function","recordType":"export"} {"closureHash":"ec2b230fc869584bf4114bc30b34546f3e3e9369d7b6f49d9ff3bc8b19dd1989","declaration":"export function readChannelAllowFromStore(channel: PairingChannel, env?: NodeJS.ProcessEnv, accountId?: string): Promise;","entrypoint":"channel-pairing","exportName":"readChannelAllowFromStore","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"function","recordType":"export"} {"closureHash":"efe4915252d6eb26af5b1c52dadf22e05b4a13f1668a10cc508c0aa4bae11e39","declaration":"export function readChannelAllowFromStoreSync(channel: PairingChannel, env?: NodeJS.ProcessEnv, accountId?: string): string[];","entrypoint":"channel-pairing","exportName":"readChannelAllowFromStoreSync","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"function","recordType":"export"} -{"closureHash":"1d5ea267edae4ab479fc7d26eca1287676011fd0810f06b6c687f86f09d9c4e1","declaration":"export type ChannelPairingController = ChannelPairingController;","entrypoint":"channel-pairing","exportName":"ChannelPairingController","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"type","recordType":"export"} +{"closureHash":"e5203a2762f370690bb04f41091d342e36fe77ad2bcbdfe9e27db9796e8b34b6","declaration":"export type ChannelPairingController = ChannelPairingController;","entrypoint":"channel-pairing","exportName":"ChannelPairingController","importSpecifier":"openclaw/plugin-sdk/channel-pairing","kind":"type","recordType":"export"} {"category":null,"entrypoint":"channel-plugin-common","importSpecifier":"openclaw/plugin-sdk/channel-plugin-common","recordType":"module"} {"closureHash":"19a3d4c1fdad2b565e7428da26e0dafa76f08498bcf06ac3df098486ff4afc2c","declaration":"export function applyAccountNameToChannelSection(params: { cfg: OpenClawConfig; channelKey: string; accountId: string; name?: string; alwaysUseAccounts?: boolean; }): OpenClawConfig;","entrypoint":"channel-plugin-common","exportName":"applyAccountNameToChannelSection","importSpecifier":"openclaw/plugin-sdk/channel-plugin-common","kind":"function","recordType":"export"} {"closureHash":"e97ff96104ab3b7f8462f20d39d2596908a59cb03a634c6c2fb0d7ff80e5bb54","declaration":"export function buildChannelConfigSchema(schema: ZodTypeAny, options?: BuildChannelConfigSchemaOptions): ChannelConfigSchema;","entrypoint":"channel-plugin-common","exportName":"buildChannelConfigSchema","importSpecifier":"openclaw/plugin-sdk/channel-plugin-common","kind":"function","recordType":"export"} @@ -1291,8 +1291,8 @@ {"closureHash":"cd6b0d3f962c8cb40d405e92bb06bb8e9285b386200897f550d21036022262c1","declaration":"export const PAIRING_APPROVED_MESSAGE: \"✅ OpenClaw access approved. Send a message to start chatting.\";","entrypoint":"channel-plugin-common","exportName":"PAIRING_APPROVED_MESSAGE","importSpecifier":"openclaw/plugin-sdk/channel-plugin-common","kind":"const","recordType":"export"} {"closureHash":"712435252d2fe5135542ca6b5a4375a6edea24e83829338011dc6ae7e9802fbb","declaration":"export type ChannelMessageActionContext = ChannelMessageActionContext;","entrypoint":"channel-plugin-common","exportName":"ChannelMessageActionContext","importSpecifier":"openclaw/plugin-sdk/channel-plugin-common","kind":"type","recordType":"export"} {"closureHash":"4dd12b961fc300d388143ed5d8dc990e759c382b949c337c8f28ac83ca65aae7","declaration":"export type ChannelPlugin = ChannelPlugin;","entrypoint":"channel-plugin-common","exportName":"ChannelPlugin","importSpecifier":"openclaw/plugin-sdk/channel-plugin-common","kind":"type","recordType":"export"} -{"closureHash":"baddda61cd7c006909d5364a531fc1d362afca4d789674b0af5f5175f339af9c","declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"channel-plugin-common","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/channel-plugin-common","kind":"type","recordType":"export"} -{"closureHash":"2cea6ec6d79e6fd4291233833057d122a7e96e2838c06409312f57d55734d4ad","declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"channel-plugin-common","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/channel-plugin-common","kind":"type","recordType":"export"} +{"closureHash":"adad7f6d6c8f37f73c803f8decd56bc9db755e3449b59059de4cbef52f90f116","declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"channel-plugin-common","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/channel-plugin-common","kind":"type","recordType":"export"} +{"closureHash":"ee07774fb1d0711bbe9a5d9f49bde457bfb0169000423e58c5a4da432d68f888","declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"channel-plugin-common","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/channel-plugin-common","kind":"type","recordType":"export"} {"category":null,"entrypoint":"channel-policy","importSpecifier":"openclaw/plugin-sdk/channel-policy","recordType":"module"} {"closureHash":"017ab29d16d0f3d02d60f3513e65a373868d26496bc93d020d8fc8c17fd875f4","declaration":"export function buildAccountScopedDmSecurityPolicy(params: { cfg: OpenClawConfig; channelKey: string; accountId?: string | null; fallbackAccountId?: string | null; policy?: string | null; allowFrom?: Array | null; defaultPolicy?: string; allowFromPathSuffix?: string; policyPathSuffix?: string; approveChannelId?: string; approveHint?: string; normalizeEntry?: (raw: string) => string; inheritSharedDefaultsFromDefaultAccount?: boolean; }): ChannelSecurityDmPolicy;","entrypoint":"channel-policy","exportName":"buildAccountScopedDmSecurityPolicy","importSpecifier":"openclaw/plugin-sdk/channel-policy","kind":"function","recordType":"export"} {"closureHash":"628863a501a389d1fee7ab465a4e9da1751189011e9086a54ab22bfc1f970c8a","declaration":"export function buildChannelGroupsScopeTree(cfg: OpenClawConfig, channel: ChannelId, accountId?: string | null): ScopeTree;","entrypoint":"channel-policy","exportName":"buildChannelGroupsScopeTree","importSpecifier":"openclaw/plugin-sdk/channel-policy","kind":"function","recordType":"export"} @@ -1352,16 +1352,16 @@ {"closureHash":"65423417d7f3e51cb00d21a96c5426a4494abeceb7bc07707a6b7b8131192f27","declaration":"export type ScopePath = ScopePath;","entrypoint":"channel-policy","exportName":"ScopePath","importSpecifier":"openclaw/plugin-sdk/channel-policy","kind":"type","recordType":"export"} {"closureHash":"eb70a2d51551dbaeb3585e0efc18b37e1dcfbaa1f6f4e8564e0e9ca9968e7559","declaration":"export type ScopeTree = ScopeTree;","entrypoint":"channel-policy","exportName":"ScopeTree","importSpecifier":"openclaw/plugin-sdk/channel-policy","kind":"type","recordType":"export"} {"category":"channel","entrypoint":"channel-reply-pipeline","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","recordType":"module"} -{"closureHash":"a66afb6e59691c75f1e5a773fc33bf13859385f6a984743dd0e1f18ad0ab4b05","declaration":"export function createChannelReplyPipeline(params: CreateChannelReplyPipelineParams): ChannelReplyPipeline;","entrypoint":"channel-reply-pipeline","exportName":"createChannelReplyPipeline","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"function","recordType":"export"} -{"closureHash":"5bc1d0180c6325ad014aa58a9810aaab97994ead19dcff59df1d1cefe1444ed8","declaration":"export function createReplyPrefixContext(params: { cfg: OpenClawConfig; agentId: string; channel?: string; accountId?: string; }): ReplyPrefixContextBundle;","entrypoint":"channel-reply-pipeline","exportName":"createReplyPrefixContext","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"function","recordType":"export"} -{"closureHash":"e264e9ecf7fe1bab36ba506d03b4654a099a0b3db7b706b5ddcf953427516707","declaration":"export function createReplyPrefixOptions(params: { cfg: OpenClawConfig; agentId: string; channel?: string; accountId?: string; }): ReplyPrefixOptions;","entrypoint":"channel-reply-pipeline","exportName":"createReplyPrefixOptions","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"function","recordType":"export"} +{"closureHash":"aee1b9be43b42ac3b4c398fd9819d5ccc01b365e127d97535c07355557566d20","declaration":"export function createChannelReplyPipeline(params: CreateChannelReplyPipelineParams): ChannelReplyPipeline;","entrypoint":"channel-reply-pipeline","exportName":"createChannelReplyPipeline","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"function","recordType":"export"} +{"closureHash":"f5e0146088171cb3d54ff40d309ad33782c545405db40ddf4415ef080cc18033","declaration":"export function createReplyPrefixContext(params: { cfg: OpenClawConfig; agentId: string; channel?: string; accountId?: string; }): ReplyPrefixContextBundle;","entrypoint":"channel-reply-pipeline","exportName":"createReplyPrefixContext","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"function","recordType":"export"} +{"closureHash":"5ce1bcf4ed49156404455d981ad4ed663423b1ce1c747936ba53325b84943d72","declaration":"export function createReplyPrefixOptions(params: { cfg: OpenClawConfig; agentId: string; channel?: string; accountId?: string; }): ReplyPrefixOptions;","entrypoint":"channel-reply-pipeline","exportName":"createReplyPrefixOptions","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"function","recordType":"export"} {"closureHash":"1c08a759db76abcefee8ee1bab6313a396d321f42a105176b5705bef8ffa94ad","declaration":"export function createTypingCallbacks(params: CreateTypingCallbacksParams): TypingCallbacks;","entrypoint":"channel-reply-pipeline","exportName":"createTypingCallbacks","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"function","recordType":"export"} {"closureHash":"19053f3926d4ac878570b38581176d868c1db0562405f63c2b4c8ebe05d8c16b","declaration":"export function resolveChannelSourceReplyDeliveryMode(params: { cfg: OpenClawConfig; ctx: SourceReplyDeliveryModeContext; requested?: SourceReplyDeliveryMode; messageToolAvailable?: boolean; }): SourceReplyDeliveryMode;","entrypoint":"channel-reply-pipeline","exportName":"resolveChannelSourceReplyDeliveryMode","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"function","recordType":"export"} -{"closureHash":"4d6f1fc0c2ea2c255a36a841565ab99e76c82419d3e764331f01a215552e2761","declaration":"export type ChannelReplyPipeline = ChannelReplyPipeline;","entrypoint":"channel-reply-pipeline","exportName":"ChannelReplyPipeline","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export"} +{"closureHash":"aaf64b6f9273863f18f923a0a192cc50d0aa9df33291fb7e3293c1a94bac8e83","declaration":"export type ChannelReplyPipeline = ChannelReplyPipeline;","entrypoint":"channel-reply-pipeline","exportName":"ChannelReplyPipeline","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export"} {"closureHash":"81452f2eddc8652fc02b84e6e7c8e52e24bdef551a33c500efd052214906ac9e","declaration":"export type CreateTypingCallbacksParams = CreateTypingCallbacksParams;","entrypoint":"channel-reply-pipeline","exportName":"CreateTypingCallbacksParams","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export"} -{"closureHash":"f1b07a793b699be10e616ca2c2bd54ea3eed52c07791a60075287d358b4c0a69","declaration":"export type ReplyPrefixContext = ResponsePrefixContext;","entrypoint":"channel-reply-pipeline","exportName":"ReplyPrefixContext","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export"} -{"closureHash":"618ec4877f5bb84b2dce58e2e084970e7be3da1cde25a36e0e011055ad7744cc","declaration":"export type ReplyPrefixContextBundle = ReplyPrefixContextBundle;","entrypoint":"channel-reply-pipeline","exportName":"ReplyPrefixContextBundle","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export"} -{"closureHash":"ae40eb9ad96d191e83474ca3938f3dec007892869204dda9e4648ce3469031d3","declaration":"export type ReplyPrefixOptions = ReplyPrefixOptions;","entrypoint":"channel-reply-pipeline","exportName":"ReplyPrefixOptions","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export"} +{"closureHash":"198e99899dec38470a64d1646a31a8c8b630d8a83a82bceac0207ed08bfebc86","declaration":"export type ReplyPrefixContext = ResponsePrefixContext;","entrypoint":"channel-reply-pipeline","exportName":"ReplyPrefixContext","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export"} +{"closureHash":"286cc325d914e8b9ca3c220f1120233876a734a3c8a6fd47f97ef1beb2406459","declaration":"export type ReplyPrefixContextBundle = ReplyPrefixContextBundle;","entrypoint":"channel-reply-pipeline","exportName":"ReplyPrefixContextBundle","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export"} +{"closureHash":"979600602042454b66cd19915ab6beae8c8e8abfeb4ac70f4ec5e36986312df0","declaration":"export type ReplyPrefixOptions = ReplyPrefixOptions;","entrypoint":"channel-reply-pipeline","exportName":"ReplyPrefixOptions","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export"} {"closureHash":"abf24938da5bcaf723794c1b4cdd2d0fcb6697df4cd49898bcccec19cdff77b5","declaration":"export type SourceReplyDeliveryMode = SourceReplyDeliveryMode;","entrypoint":"channel-reply-pipeline","exportName":"SourceReplyDeliveryMode","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export"} {"closureHash":"32be4db788d5dd3933981b01175e6146942936f81fd1933534e9cba67fe2ec0a","declaration":"export type TypingCallbacks = TypingCallbacks;","entrypoint":"channel-reply-pipeline","exportName":"TypingCallbacks","importSpecifier":"openclaw/plugin-sdk/channel-reply-pipeline","kind":"type","recordType":"export"} {"category":null,"entrypoint":"channel-runtime-context","importSpecifier":"openclaw/plugin-sdk/channel-runtime-context","recordType":"module"} @@ -1458,20 +1458,20 @@ {"closureHash":"c89a0fcbee06b693597cdddc74c52a9234960e112fc76c0353bfcbe93450a8a8","declaration":"export function resolveConfiguredFromRequiredCredentialStatuses(account: unknown, requiredKeys: CredentialStatusKey[]): boolean | undefined;","entrypoint":"channel-status","exportName":"resolveConfiguredFromRequiredCredentialStatuses","importSpecifier":"openclaw/plugin-sdk/channel-status","kind":"function","recordType":"export"} {"closureHash":"cd6b0d3f962c8cb40d405e92bb06bb8e9285b386200897f550d21036022262c1","declaration":"export const PAIRING_APPROVED_MESSAGE: \"✅ OpenClaw access approved. Send a message to start chatting.\";","entrypoint":"channel-status","exportName":"PAIRING_APPROVED_MESSAGE","importSpecifier":"openclaw/plugin-sdk/channel-status","kind":"const","recordType":"export"} {"category":null,"entrypoint":"channel-streaming","importSpecifier":"openclaw/plugin-sdk/channel-streaming","recordType":"module"} -{"closureHash":"a5114e7a8616a7c7fb200dcfdac6514bf35d8588697105a91d87d2214bbc43f4","declaration":"export function buildChannelProgressDraftLine(input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): ChannelProgressDraftLine | undefined;","entrypoint":"channel-streaming","exportName":"buildChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} -{"closureHash":"aeef6b8d581ff1e87780ad2a88c60ce458cbaa14ff36bf40ffde1459b37ef104","declaration":"export function buildChannelProgressDraftLineForEntry(entry: StreamingCompatEntry | null | undefined, input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): ChannelProgressDraftLine | undefined;","entrypoint":"channel-streaming","exportName":"buildChannelProgressDraftLineForEntry","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} +{"closureHash":"1529cd8c4498338811b4d3bc1d52f2e89a4d8eeae35db526f79ff7914d889fe2","declaration":"export function buildChannelProgressDraftLine(input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): ChannelProgressDraftLine | undefined;","entrypoint":"channel-streaming","exportName":"buildChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} +{"closureHash":"3f938b19f99e8206c1c9be21620614d99dc5b642ac129de3b04999333ebd62bb","declaration":"export function buildChannelProgressDraftLineForEntry(entry: StreamingCompatEntry | null | undefined, input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): ChannelProgressDraftLine | undefined;","entrypoint":"channel-streaming","exportName":"buildChannelProgressDraftLineForEntry","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} {"closureHash":"44c199920938c7a282e44d36eea187f1f8ce1d09bfb845180e1844124f497a3c","declaration":"export function createChannelProgressDraftGate(params: { onStart: () => void | Promise; initialDelayMs?: number; onStartError?: (error: unknown) => void; setTimeoutFn?: typeof setTimeout; clearTimeoutFn?: typeof clearTimeout; }): { readonly hasStarted: boolean; readonly workEvents: number; noteWork(): Promise; startNow(): Promise; cancel(): void; reset(): void; };","entrypoint":"channel-streaming","exportName":"createChannelProgressDraftGate","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} -{"closureHash":"4181ce4435cd74d55cde1a2f81498084856202c1c6fddee8148654a1c86fa6ff","declaration":"export function formatChannelProgressDraftLine(input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): string | undefined;","entrypoint":"channel-streaming","exportName":"formatChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} -{"closureHash":"b567c796ddd84b4a95788291ffd3673ffd4762932a6186529c304cb084b34f42","declaration":"export function formatChannelProgressDraftLineForEntry(entry: StreamingCompatEntry | null | undefined, input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): string | undefined;","entrypoint":"channel-streaming","exportName":"formatChannelProgressDraftLineForEntry","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} -{"closureHash":"ee056fe27cb960789fbf068f28b71def2a6d16ca495803733457755eecdb994d","declaration":"export function formatChannelProgressDraftText(params: { entry?: StreamingCompatEntry | null; lines: Array; seed?: string; random?: () => number; formatLine?: (line: string) => string; bullet?: string; narration?: string; plan?: readonly AgentPlanStep[]; }): string;","entrypoint":"channel-streaming","exportName":"formatChannelProgressDraftText","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} +{"closureHash":"fe3b2cc123400a9b7dfb51f69aa0ddc88675b983e772852cb7d902a528dcd055","declaration":"export function formatChannelProgressDraftLine(input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): string | undefined;","entrypoint":"channel-streaming","exportName":"formatChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} +{"closureHash":"df25d6ffb817eb32f8b4b670057c2c5e4d42512f416f99351e2345a09371226d","declaration":"export function formatChannelProgressDraftLineForEntry(entry: StreamingCompatEntry | null | undefined, input: ChannelProgressDraftLineInput, options?: ChannelProgressLineOptions): string | undefined;","entrypoint":"channel-streaming","exportName":"formatChannelProgressDraftLineForEntry","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} +{"closureHash":"ad582c3d988c6ba71760e6ccf10f896c98034a70ed5bed6924087b898de61d3e","declaration":"export function formatChannelProgressDraftText(params: { entry?: StreamingCompatEntry | null; lines: Array; seed?: string; random?: () => number; formatLine?: (line: string) => string; bullet?: string; narration?: string; plan?: readonly AgentPlanStep[]; }): string;","entrypoint":"channel-streaming","exportName":"formatChannelProgressDraftText","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} {"closureHash":"d54d2cfdcb9d85947f0ce5380faa272a982ab558b483cd2cd67a4cd4ced16fbb","declaration":"export function formatPlanChecklistLines(steps: readonly AgentPlanStep[], options: { maxLines: number; maxLineChars: number; }): string[];","entrypoint":"channel-streaming","exportName":"formatPlanChecklistLines","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} {"closureHash":"72ef52a7a184703e0ac9fec319b40f650c6ffc488153ebc1ff2d4c5ef0d2fe63","declaration":"export function getChannelStreamingConfigObject(entry: StreamingCompatEntry | null | undefined): ChannelStreamingConfig | undefined;","entrypoint":"channel-streaming","exportName":"getChannelStreamingConfigObject","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} {"closureHash":"a3392a9a24bc265b97c030d5e44169bf0b3a59738aae7ee2d3589c8840aa701a","declaration":"export function isChannelProgressDraftWorkToolName(name: string | null | undefined): boolean;","entrypoint":"channel-streaming","exportName":"isChannelProgressDraftWorkToolName","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} {"closureHash":"aff483a25d6521e170700a916357251285dfdb9a3592ac9031972e95be45fc5c","declaration":"export function isCommandToolName(name: string | undefined): boolean;","entrypoint":"channel-streaming","exportName":"isCommandToolName","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} {"closureHash":"ef5bf99c6a2812c4f53a4571747212cedd772a112fd40a0c7bbcb26f6392f0b5","declaration":"export function isPotentialTruncatedFinal(finalText: string): boolean;","entrypoint":"channel-streaming","exportName":"isPotentialTruncatedFinal","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} -{"closureHash":"6afbf0355ecf5eb0ba8f89322eb73b19cce9dd021bfff3ca1ab1d018154e7680","declaration":"export function mergeChannelProgressDraftLine(lines: TLine[], line: TLine, params: { maxLines: number; }): TLine[];","entrypoint":"channel-streaming","exportName":"mergeChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} +{"closureHash":"63de02df0263b3534b1c84a1e45aad5201c859d04c49dcbe9cbe64131f9704be","declaration":"export function mergeChannelProgressDraftLine(lines: TLine[], line: TLine, params: { maxLines: number; }): TLine[];","entrypoint":"channel-streaming","exportName":"mergeChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} {"closureHash":"844a3251dcba84a9735c855d7b6c930570cc486f3a1c5fc49b541572d52bb7d7","declaration":"export function normalizeAgentPlanSteps(value: unknown): AgentPlanStep[] | undefined;","entrypoint":"channel-streaming","exportName":"normalizeAgentPlanSteps","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} -{"closureHash":"2458fcb3c1632a3d75c6ed4225937a65323729dc25fc000c643ecf8dbea743bf","declaration":"export function normalizeChannelProgressDraftLineIdentity(line: string | ChannelProgressDraftLine | undefined): string;","entrypoint":"channel-streaming","exportName":"normalizeChannelProgressDraftLineIdentity","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} +{"closureHash":"b19d38e15e2054e826fd132198c606165fc369fb5a96f4e6bbbf7b89bee35ac2","declaration":"export function normalizeChannelProgressDraftLineIdentity(line: string | ChannelProgressDraftLine | undefined): string;","entrypoint":"channel-streaming","exportName":"normalizeChannelProgressDraftLineIdentity","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} {"closureHash":"68a1685dc820e99df49502335f46968732601db520530d33f360d5cb91006013","declaration":"export function resolveChannelPreviewStreamMode(entry: StreamingCompatEntry | null | undefined, defaultMode: StreamingMode): StreamingMode;","entrypoint":"channel-streaming","exportName":"resolveChannelPreviewStreamMode","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} {"closureHash":"c5a13690584bd18a166d82f922e922bf878093fa5718ab97522e368ecded3594","declaration":"export function resolveChannelProgressDraftConfig(entry: StreamingCompatEntry | null | undefined): ChannelStreamingProgressConfig;","entrypoint":"channel-streaming","exportName":"resolveChannelProgressDraftConfig","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} {"closureHash":"466f135f91ab8835a89f60d85a4b07b8779a077599d85578554bb416fa2818af","declaration":"export function resolveChannelProgressDraftLabel(params: { entry?: StreamingCompatEntry | null; seed?: string; random?: () => number; }): string | undefined;","entrypoint":"channel-streaming","exportName":"resolveChannelProgressDraftLabel","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"function","recordType":"export"} @@ -1498,9 +1498,9 @@ {"closureHash":"1e8bcb2c8d8f5327f5b81b8c217f722f090dccba21ba3943324010f4f80a5a50","declaration":"export type AgentPlanStepStatus = AgentPlanStepStatus;","entrypoint":"channel-streaming","exportName":"AgentPlanStepStatus","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"type","recordType":"export"} {"closureHash":"b036fc26e5330dfd7da1af8839bb3c23e85283b9e16e252a659dd4bb0c35cd5e","declaration":"export type ChannelDeliveryStreamingConfig = ChannelDeliveryStreamingConfig;","entrypoint":"channel-streaming","exportName":"ChannelDeliveryStreamingConfig","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"type","recordType":"export"} {"closureHash":"67f3a704195e12f66ff1b8633639dc4de4af9769891b13e7ba7a575ca1efcdc6","declaration":"export type ChannelPreviewStreamingConfig = ChannelPreviewStreamingConfig;","entrypoint":"channel-streaming","exportName":"ChannelPreviewStreamingConfig","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"type","recordType":"export"} -{"closureHash":"7a6eeb19346d69b173c5206d5f07414d44d551f38a285d06660a418f3905abd1","declaration":"export type ChannelProgressDraftLine = ChannelProgressDraftLine;","entrypoint":"channel-streaming","exportName":"ChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"type","recordType":"export"} -{"closureHash":"c12b7e4cc3a993975e019731b33bb61788c570f915bb8bcb47957acd5112ab9a","declaration":"export type ChannelProgressDraftLineInput = ChannelProgressDraftLineInput;","entrypoint":"channel-streaming","exportName":"ChannelProgressDraftLineInput","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"type","recordType":"export"} -{"closureHash":"53f64903f695dae063b9ad8ac74bbf6f24b17b0cd49e6cac5959366d587006c6","declaration":"export type ChannelProgressDraftLineKind = \"plan\" | \"tool\" | \"approval\" | \"patch\" | \"item\" | \"command-output\";","entrypoint":"channel-streaming","exportName":"ChannelProgressDraftLineKind","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"type","recordType":"export"} +{"closureHash":"a9ec1f82184ba85d82bfdb8b4ebb8b8280e6dd0c63f08a61e55e92c6df005fcc","declaration":"export type ChannelProgressDraftLine = ChannelProgressDraftLine;","entrypoint":"channel-streaming","exportName":"ChannelProgressDraftLine","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"type","recordType":"export"} +{"closureHash":"ff6c88eb7712cce2e0dd15c28c701a2c69b98f57155177c3fc624ff15547c2cc","declaration":"export type ChannelProgressDraftLineInput = ChannelProgressDraftLineInput;","entrypoint":"channel-streaming","exportName":"ChannelProgressDraftLineInput","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"type","recordType":"export"} +{"closureHash":"2e63277f6176b51ecf26ad5b4a7ef14e94cc07dba09b4ed79f3d230b04789320","declaration":"export type ChannelProgressDraftLineKind = \"plan\" | \"tool\" | \"approval\" | \"patch\" | \"item\" | \"command-output\";","entrypoint":"channel-streaming","exportName":"ChannelProgressDraftLineKind","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"type","recordType":"export"} {"closureHash":"6c1d950cac70c6109a7fbc2af26e2c26ef13adcffba965a6f85fb93a02e87570","declaration":"export type ChannelProgressDraftRenderMode = ChannelProgressDraftRenderMode;","entrypoint":"channel-streaming","exportName":"ChannelProgressDraftRenderMode","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"type","recordType":"export"} {"closureHash":"4eac0e0bb29f83a8f9f884c37ea64774ee87d6996edd4d97b5ef5e5702005e01","declaration":"export type ChannelProgressLineOptions = ChannelProgressLineOptions;","entrypoint":"channel-streaming","exportName":"ChannelProgressLineOptions","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"type","recordType":"export"} {"closureHash":"de6224d5ef3d05e9e25fadc96c00f75c3df158ef94345e7c9f102b7234926fb7","declaration":"export type ChannelStreamingBlockConfig = ChannelStreamingBlockConfig;","entrypoint":"channel-streaming","exportName":"ChannelStreamingBlockConfig","importSpecifier":"openclaw/plugin-sdk/channel-streaming","kind":"type","recordType":"export"} @@ -1890,8 +1890,8 @@ {"closureHash":"c26bfcd8451627b0eb75f7837e281b58dc127d19591d7c030691ca9bbe0edbf4","declaration":"export function createChatChannelPlugin(params: { base: ChatChannelPluginBase; security?: ChannelSecurityAdapter | ChatChannelSecurityOptions; pairing?: ChannelPairingAdapter | ChatChannelPairingOptions; threading?: ChannelThreadingAdapter | ChatChannelThreadingOptions; outbound?: ChannelOutboundAdapter | ChatChannelAttachedOutboundOptions; }): ChannelPlugin;","entrypoint":"core","exportName":"createChatChannelPlugin","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export"} {"closureHash":"785b0f750c5bd20f9f3ca081886a5af79ee0e4d2c38f78f769bf994b234f5076","declaration":"export function createDedupeCache(options: DedupeCacheOptions): DedupeCache;","entrypoint":"core","exportName":"createDedupeCache","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export"} {"closureHash":"e2df8d235401aebf58eb71652fbeaedb42ca00aaa5042a76909ff2c48ba6fd54","declaration":"export function createSubsystemLogger(subsystem: string): SubsystemLogger;","entrypoint":"core","exportName":"createSubsystemLogger","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export"} -{"closureHash":"b71327e7ce28ebadd8059c6ace39bff225972322d0991f5c5d26d3d5b22e53ea","declaration":"export function defineChannelPluginEntry({ id, name, description, plugin, configSchema, setRuntime, registerCliMetadata, registerFull, registerCapabilities, }: DefineChannelPluginEntryOptions): DefinedChannelPluginEntry;","entrypoint":"core","exportName":"defineChannelPluginEntry","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export"} -{"closureHash":"8994a6476adc60e63744c8d6e69b1d702893a27354c4c07d293a560ec312405b","declaration":"export function definePluginEntry({ id, name, description, kind, configSchema, reload, nodeHostCommands, securityAuditCollectors, register, }: DefinePluginEntryOptions): DefinedPluginEntry;","entrypoint":"core","exportName":"definePluginEntry","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export"} +{"closureHash":"a569ea024508826e0ec5d7d9222b23e2a522a4ed51d46833181838a2ee079f06","declaration":"export function defineChannelPluginEntry({ id, name, description, plugin, configSchema, setRuntime, registerCliMetadata, registerFull, registerCapabilities, }: DefineChannelPluginEntryOptions): DefinedChannelPluginEntry;","entrypoint":"core","exportName":"defineChannelPluginEntry","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export"} +{"closureHash":"c331cbee6ea746b6e32557afff60143b600e330708763688396f28a4d86e5b8c","declaration":"export function definePluginEntry({ id, name, description, kind, configSchema, reload, nodeHostCommands, securityAuditCollectors, register, }: DefinePluginEntryOptions): DefinedPluginEntry;","entrypoint":"core","exportName":"definePluginEntry","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export"} {"closureHash":"0e0a9f6b22c433bdb1165e7707b1f9a1ddac1a544a8add00b503048cf157921f","declaration":"export function defineSetupPluginEntry(plugin: TPlugin): { plugin: TPlugin; };","entrypoint":"core","exportName":"defineSetupPluginEntry","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export"} {"closureHash":"3c5ce0c3733cbb038aeb914af1df5d701f362f0521921b8abd0c9214db9cc4b8","declaration":"export function delegateCompactionToRuntime(params: Parameters[0]): Promise;","entrypoint":"core","exportName":"delegateCompactionToRuntime","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export"} {"closureHash":"2c282e0e308f9442bca7cdeb8e89a097531b1d54a692c9d86e5f39a8db1c2537","declaration":"export function deleteAccountFromConfigSection(params: { cfg: OpenClawConfig; sectionKey: string; accountId: string; clearBaseFields?: string[]; }): OpenClawConfig;","entrypoint":"core","exportName":"deleteAccountFromConfigSection","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export"} @@ -1938,7 +1938,7 @@ {"closureHash":"2e6ce1f4c1692270a00dc0cf08e2752a26739c3143f8091cb270063c6034605d","declaration":"export function tryReadSecretFileSync(filePath: string | undefined, label: string, options: CredentialFileReadOptions): string | undefined;\nexport function tryReadSecretFileSync(filePath: string | undefined, label: string, options?: FsSafeSecretFileReadOptions): string | undefined;\nexport function tryReadSecretFileSync(filePath: string, label: string, options: FsSafeSecretFileReadOptions | undefined, diagnostic: { configPath: string; }): ConfiguredCredentialResult;\nexport function tryReadSecretFileSync(filePath: string | undefined, label: string, options: FsSafeSecretFileReadOptions | undefined, diagnostic: { configPath: string; }): CredentialResult;","entrypoint":"core","exportName":"tryReadSecretFileSync","importSpecifier":"openclaw/plugin-sdk/core","kind":"function","recordType":"export"} {"closureHash":"b40933a11984425d14a7a479bda0d2cd14cbfa9371164774f39bebbf12861df7","declaration":"export const DEFAULT_ACCOUNT_ID: \"default\";","entrypoint":"core","exportName":"DEFAULT_ACCOUNT_ID","importSpecifier":"openclaw/plugin-sdk/core","kind":"const","recordType":"export"} {"closureHash":null,"declaration":"export const DEFAULT_SECRET_FILE_MAX_BYTES: number;","entrypoint":"core","exportName":"DEFAULT_SECRET_FILE_MAX_BYTES","importSpecifier":"openclaw/plugin-sdk/core","kind":"const","recordType":"export"} -{"closureHash":"069afe164b45b50b6a4df310f4b257eff482dcd6ca93b1f9a5dcf08724eb44c2","declaration":"export type AgentHarness = AgentHarness;","entrypoint":"core","exportName":"AgentHarness","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} +{"closureHash":"d3f58785b718226c2b2b6ed6b27f196eebbc7fee2a8366a1b95aa0961dfb5a87","declaration":"export type AgentHarness = AgentHarness;","entrypoint":"core","exportName":"AgentHarness","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"d2ff4de9ee3fd111c2cc64a3ee7e557d9f161af1b6b437ee7886bcb16e426317","declaration":"export type AgentPromptGuidance = AgentPromptGuidance;","entrypoint":"core","exportName":"AgentPromptGuidance","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"2841127a90e04467adfea8126cbf03655f44ddb089ad9e0d48833c2beea39cbd","declaration":"export type AgentPromptGuidanceEntry = AgentPromptGuidanceEntry;","entrypoint":"core","exportName":"AgentPromptGuidanceEntry","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"aa0412acefe62caff12e5271ead0545504874e824380dc21cfc0566388a05f33","declaration":"export type AgentPromptSurfaceKind = \"openclaw_main\" | \"pi_main\" | \"codex_app_server\" | \"cli_backend\" | \"acp_backend\" | \"subagent\";","entrypoint":"core","exportName":"AgentPromptSurfaceKind","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} @@ -1970,10 +1970,10 @@ {"closureHash":"54ea426dde51859b572b4c1079d2b70b412096f73da2b8c265f2749d9f01cbb5","declaration":"export type NormalizedLocation = NormalizedLocation;","entrypoint":"core","exportName":"NormalizedLocation","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"8054ffbe71b91afced900ef8a06f5e368ac10c4f99ffc1c6f538a802856f61c6","declaration":"export type OpenClawConfig = OpenClawConfig;","entrypoint":"core","exportName":"OpenClawConfig","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"5189698d102b8b064eefe1442b008312973c3994fd6b203d2205725d7ee9d118","declaration":"export type OpenClawPluginActiveModelContext = OpenClawPluginActiveModelContext;","entrypoint":"core","exportName":"OpenClawPluginActiveModelContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} -{"closureHash":"baddda61cd7c006909d5364a531fc1d362afca4d789674b0af5f5175f339af9c","declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"core","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} +{"closureHash":"adad7f6d6c8f37f73c803f8decd56bc9db755e3449b59059de4cbef52f90f116","declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"core","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"ef00c46e3e0d28e13b764ac1e513c26fd6c37fe2735409ec667b4a1c53f67f71","declaration":"export type OpenClawPluginCommandDefinition = OpenClawPluginCommandDefinition;","entrypoint":"core","exportName":"OpenClawPluginCommandDefinition","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"365beb5cee974639c2f35fc7a39088721ca8e9c618442830298b98033e9c768c","declaration":"export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;","entrypoint":"core","exportName":"OpenClawPluginConfigSchema","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} -{"closureHash":"97da01764d78d0f70235a550c8b07cfc43f847536728c366bc0ee813de5a38fb","declaration":"export type OpenClawPluginDefinition = OpenClawPluginDefinition;","entrypoint":"core","exportName":"OpenClawPluginDefinition","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} +{"closureHash":"cbb6ea3c708ee0c18f8f9e33ff5f9faa8bc6c5a1c04b8ef4c5a9eacdaff46ea8","declaration":"export type OpenClawPluginDefinition = OpenClawPluginDefinition;","entrypoint":"core","exportName":"OpenClawPluginDefinition","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"a7ed83f0924f818b23cecb5a1f3591ff28b9499ccac9667a2b8505c2bc608ea9","declaration":"export type OpenClawPluginGatewayEventScope = OpenClawPluginGatewayEventScope;","entrypoint":"core","exportName":"OpenClawPluginGatewayEventScope","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"f81f224d9b837e6353b7a546c5a76b124bcf568fd1f1fd0c6881fda30c53120a","declaration":"export type OpenClawPluginGatewayEvents = OpenClawPluginGatewayEvents;","entrypoint":"core","exportName":"OpenClawPluginGatewayEvents","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"ddc2738dd0ece94ddde9a7c655f92c15ec6416645ecf932d4aa404c7b7761159","declaration":"export type OpenClawPluginService = OpenClawPluginService;","entrypoint":"core","exportName":"OpenClawPluginService","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} @@ -1994,7 +1994,7 @@ {"closureHash":"83237187559904a1350b07bfcaa20eb473e397884361e9543ccdaeddd6c2c12e","declaration":"export type PluginHeartbeatPromptContributionEvent = PluginHeartbeatPromptContributionEvent;","entrypoint":"core","exportName":"PluginHeartbeatPromptContributionEvent","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"34a5e1c2e9aa7908826a1b066f7b8556c277a1c8360d7f08ddb3f360f65752b5","declaration":"export type PluginHeartbeatPromptContributionResult = PluginHeartbeatPromptContributionResult;","entrypoint":"core","exportName":"PluginHeartbeatPromptContributionResult","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"919371e99b1060f63e326213daf09ccdb13783c6f338572061604fd00830630b","declaration":"export type PluginHookReplyDispatchContext = PluginHookReplyDispatchContext;","entrypoint":"core","exportName":"PluginHookReplyDispatchContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} -{"closureHash":"e07bc6fe78f27730ce5a3bd178081944af763ad1017dd26873d27c5bb2cc48db","declaration":"export type PluginHookReplyDispatchEvent = PluginHookReplyDispatchEvent;","entrypoint":"core","exportName":"PluginHookReplyDispatchEvent","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} +{"closureHash":"2f25d0e730ddaa24928b0499123759eefbcbe2762acb2732fd8524c1132adc47","declaration":"export type PluginHookReplyDispatchEvent = PluginHookReplyDispatchEvent;","entrypoint":"core","exportName":"PluginHookReplyDispatchEvent","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"95e984db261a1253a06a4a4ca1b7c46aec0c5db0f0f02342c28c6234a316d0cf","declaration":"export type PluginHookReplyDispatchResult = PluginHookReplyDispatchResult;","entrypoint":"core","exportName":"PluginHookReplyDispatchResult","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"f2ecb76f6e2927301caf2d2033095172a2dbb2ec490d9c84d04f34d1fbe9214e","declaration":"export type PluginHookReplyPayload = PluginHookReplyPayload;","entrypoint":"core","exportName":"PluginHookReplyPayload","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"b4b5a737d86be332e93717362f95a2359677a3ca4008d89d72121dbeba12fdfb","declaration":"export type PluginHookReplyPayloadSendingContext = PluginHookMessageContext;","entrypoint":"core","exportName":"PluginHookReplyPayloadSendingContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} @@ -2007,7 +2007,7 @@ {"closureHash":"f361587d79916f3d1cb73b4d296e1f37f86d799a641ce4a590ee784413d0b7ef","declaration":"export type PluginNextTurnInjectionRecord = PluginNextTurnInjectionRecord;","entrypoint":"core","exportName":"PluginNextTurnInjectionRecord","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"e4f6093e70826c8c7c02433082b9ac1b91755640096339111331fc45a494ca88","declaration":"export type PluginRunContextGetParams = PluginRunContextGetParams;","entrypoint":"core","exportName":"PluginRunContextGetParams","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"f9d14d70abca2a8771c0763736871361e4c223a8e4cbe3ae5c7a17751630b68e","declaration":"export type PluginRunContextPatch = PluginRunContextPatch;","entrypoint":"core","exportName":"PluginRunContextPatch","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} -{"closureHash":"2cea6ec6d79e6fd4291233833057d122a7e96e2838c06409312f57d55734d4ad","declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"core","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} +{"closureHash":"ee07774fb1d0711bbe9a5d9f49bde457bfb0169000423e58c5a4da432d68f888","declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"core","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"4a005fd56ceaa1de7ff2c6b45f08a48f48d7ff30e21d0e88d783d86a49e274f4","declaration":"export type PluginRuntimeLifecycleRegistration = PluginRuntimeLifecycleRegistration;","entrypoint":"core","exportName":"PluginRuntimeLifecycleRegistration","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"c599fdbfd9439bdcbbbf621dca995d2d6f87c7aba9606dc1970e1205dfea6357","declaration":"export type PluginSessionActionContext = PluginSessionActionContext;","entrypoint":"core","exportName":"PluginSessionActionContext","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} {"closureHash":"85a706fb9b56d5c5f41756729736cd4581b98d5cb0ab9a693b8261e4d936e499","declaration":"export type PluginSessionActionRegistration = PluginSessionActionRegistration;","entrypoint":"core","exportName":"PluginSessionActionRegistration","importSpecifier":"openclaw/plugin-sdk/core","kind":"type","recordType":"export"} @@ -2208,8 +2208,8 @@ {"closureHash":"0db968dad99d84ecef5202167daadd092e3b4f456270283d3fd61585ac2bbd5a","declaration":"export type DiscordComponentSendResult = DiscordComponentSendResult;","entrypoint":"discord","exportName":"DiscordComponentSendResult","importSpecifier":"openclaw/plugin-sdk/discord","kind":"type","recordType":"export"} {"closureHash":"084b46d7dd510eb182a4705559251e824220b57dbfa6dc54392507b72ba1815e","declaration":"export type DiscordOutboundTargetResolution = DiscordOutboundTargetResolution;","entrypoint":"discord","exportName":"DiscordOutboundTargetResolution","importSpecifier":"openclaw/plugin-sdk/discord","kind":"type","recordType":"export"} {"closureHash":"8054ffbe71b91afced900ef8a06f5e368ac10c4f99ffc1c6f538a802856f61c6","declaration":"export type OpenClawConfig = OpenClawConfig;","entrypoint":"discord","exportName":"OpenClawConfig","importSpecifier":"openclaw/plugin-sdk/discord","kind":"type","recordType":"export"} -{"closureHash":"baddda61cd7c006909d5364a531fc1d362afca4d789674b0af5f5175f339af9c","declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"discord","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/discord","kind":"type","recordType":"export"} -{"closureHash":"2cea6ec6d79e6fd4291233833057d122a7e96e2838c06409312f57d55734d4ad","declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"discord","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/discord","kind":"type","recordType":"export"} +{"closureHash":"adad7f6d6c8f37f73c803f8decd56bc9db755e3449b59059de4cbef52f90f116","declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"discord","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/discord","kind":"type","recordType":"export"} +{"closureHash":"ee07774fb1d0711bbe9a5d9f49bde457bfb0169000423e58c5a4da432d68f888","declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"discord","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/discord","kind":"type","recordType":"export"} {"closureHash":"6b9967e919c1cd420c8356b4f9d40dbc81932b4b15a733eecdcfb2ad84f8e5d8","declaration":"export type ResolvedDiscordAccount = ResolvedDiscordAccount;","entrypoint":"discord","exportName":"ResolvedDiscordAccount","importSpecifier":"openclaw/plugin-sdk/discord","kind":"type","recordType":"export"} {"closureHash":"6bed5ca896b7034117e4757e2c6b4111dd5293dbad9416e3828dd6afa4e858ce","declaration":"export type ThreadBindingRecord = ThreadBindingRecord;","entrypoint":"discord","exportName":"ThreadBindingRecord","importSpecifier":"openclaw/plugin-sdk/discord","kind":"type","recordType":"export"} {"closureHash":"eaabd6155d6f25cbba09ef3c8f2b306f2202affdca4b47e5d67311ff4073fb0d","declaration":"export type ThreadBindingTargetKind = ThreadBindingTargetKind;","entrypoint":"discord","exportName":"ThreadBindingTargetKind","importSpecifier":"openclaw/plugin-sdk/discord","kind":"type","recordType":"export"} @@ -2327,7 +2327,7 @@ {"closureHash":"4e9774b442212bd9346cf95095a42ece3c0e1df29f25e1a81e857981503b4a82","declaration":"export function deriveInboundMessageHookContext(ctx: FinalizedMsgContext, overrides?: { content?: string; messageId?: string; }): CanonicalInboundMessageHookContext;","entrypoint":"hook-runtime","exportName":"deriveInboundMessageHookContext","importSpecifier":"openclaw/plugin-sdk/hook-runtime","kind":"function","recordType":"export"} {"closureHash":"9bb995aaaf485864e8c02dc5cc71fe5bff42e4d202c20554efc2f3d2d5c2576d","declaration":"export function fireAndForgetBoundedHook(task: () => Promise, label: string, logger?: (message: string) => void, options?: FireAndForgetBoundedHookOptions): void;","entrypoint":"hook-runtime","exportName":"fireAndForgetBoundedHook","importSpecifier":"openclaw/plugin-sdk/hook-runtime","kind":"function","recordType":"export"} {"closureHash":"46f0ed9dbb3fb5cd6d3898f8dd762508eb93dac3255841d96ae9b25d2ed84c96","declaration":"export function fireAndForgetHook(task: Promise, label: string, logger?: (message: string) => void): void;","entrypoint":"hook-runtime","exportName":"fireAndForgetHook","importSpecifier":"openclaw/plugin-sdk/hook-runtime","kind":"function","recordType":"export"} -{"closureHash":"49df47b1e22b1bf233f60af2ea7fcbd3f40306fe5449e464d088e8565701fb97","declaration":"export function initializeGlobalHookRunner(registry: GlobalHookRunnerRegistry): void;","entrypoint":"hook-runtime","exportName":"initializeGlobalHookRunner","importSpecifier":"openclaw/plugin-sdk/hook-runtime","kind":"function","recordType":"export"} +{"closureHash":"111c671b6f4c7fbc3a6fed7581e7be7e61f69c0da1a2fe9935618fb60d5d58f2","declaration":"export function initializeGlobalHookRunner(registry: GlobalHookRunnerRegistry): void;","entrypoint":"hook-runtime","exportName":"initializeGlobalHookRunner","importSpecifier":"openclaw/plugin-sdk/hook-runtime","kind":"function","recordType":"export"} {"closureHash":"05bb072b6ae34d0271798d98d9083ec8290d4123c349862722097a7e87866d07","declaration":"export function registerInternalHook(eventKey: string, handler: InternalHookHandler): void;","entrypoint":"hook-runtime","exportName":"registerInternalHook","importSpecifier":"openclaw/plugin-sdk/hook-runtime","kind":"function","recordType":"export"} {"closureHash":"f573a2f2542169912da9757a6aac432d067434e759cf40035079ea1d107b7e38","declaration":"export function resetGlobalHookRunner(): void;","entrypoint":"hook-runtime","exportName":"resetGlobalHookRunner","importSpecifier":"openclaw/plugin-sdk/hook-runtime","kind":"function","recordType":"export"} {"closureHash":"e26c70aedd4d93db7a26367de5a935f8335b657b6333f34797a5349f04589b20","declaration":"export function toInternalMessageReceivedContext(canonical: CanonicalInboundMessageHookContext): MessageReceivedHookContext;","entrypoint":"hook-runtime","exportName":"toInternalMessageReceivedContext","importSpecifier":"openclaw/plugin-sdk/hook-runtime","kind":"function","recordType":"export"} @@ -2343,21 +2343,21 @@ {"category":null,"entrypoint":"inbound-event-delivery","importSpecifier":"openclaw/plugin-sdk/inbound-event-delivery","recordType":"module"} {"closureHash":"bd8acef57a602ffc7a70848afb14bad6e37c892ded35b20ba0d3452336088830","declaration":"export function createInboundEventDeliveryCorrelation(params: { targetsMatch: (expected: string, actual: string) => boolean; }): { begin(sessionKey: string | undefined, event: ActiveInboundEvent, options?: { inboundEventKind?: string; }): () => void; notify(notification: InboundEventDeliveryNotification): void; };","entrypoint":"inbound-event-delivery","exportName":"createInboundEventDeliveryCorrelation","importSpecifier":"openclaw/plugin-sdk/inbound-event-delivery","kind":"function","recordType":"export"} {"category":null,"entrypoint":"inbound-reply-dispatch","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","recordType":"module"} -{"closureHash":"9e88cbd2dceec5532df844f561b1950553b16867ef124ab1264cb4060a4637b1","declaration":"export function dispatchChannelInboundReply(params: AssembledInboundReply): Promise;","entrypoint":"inbound-reply-dispatch","exportName":"dispatchChannelInboundReply","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"function","recordType":"export"} -{"closureHash":"e865ef489b7339894e781918fa1a7d0f40605a9d1a60046ba2f7265b0f189b4c","declaration":"export function dispatchInboundReplyWithBase(params: BuildInboundReplyDispatchBaseParams & Pick): Promise;","entrypoint":"inbound-reply-dispatch","exportName":"dispatchInboundReplyWithBase","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"function","recordType":"export"} +{"closureHash":"223b7cf0db02a8db31985c199faa1168e84fd3d6e45727254545ecf2684608ed","declaration":"export function dispatchChannelInboundReply(params: AssembledInboundReply): Promise;","entrypoint":"inbound-reply-dispatch","exportName":"dispatchChannelInboundReply","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"function","recordType":"export"} +{"closureHash":"d9e22719939ee559c1540e8fa07c04625260d2d3a925979f9578c6000628f899","declaration":"export function dispatchInboundReplyWithBase(params: BuildInboundReplyDispatchBaseParams & Pick): Promise;","entrypoint":"inbound-reply-dispatch","exportName":"dispatchInboundReplyWithBase","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"function","recordType":"export"} {"closureHash":"8a142089acc4d9428ed552977f90f17b2283c109cd1c66b91b51b3653d455eea","declaration":"export function hasFinalInboundReplyDispatch(result: ChannelTurnDispatchResultLike, signals?: Pick): boolean;","entrypoint":"inbound-reply-dispatch","exportName":"hasFinalInboundReplyDispatch","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"function","recordType":"export"} {"closureHash":"bb4c861ed6a9b1d70200aea7f6356a65a71491b098f8f3e8866241e5481f9aec","declaration":"export function hasVisibleInboundReplyDispatch(result: ChannelTurnDispatchResultLike, signals?: ChannelTurnVisibleDeliverySignals): boolean;","entrypoint":"inbound-reply-dispatch","exportName":"hasVisibleInboundReplyDispatch","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"function","recordType":"export"} {"closureHash":"65f5f2725c1124096e437bcf5894983eee1023f7033be886f1a506044b77c58e","declaration":"export function recordChannelBotPairLoopAndCheckSuppression(params: ChannelBotLoopProtectionFacts): PairLoopGuardResult;","entrypoint":"inbound-reply-dispatch","exportName":"recordChannelBotPairLoopAndCheckSuppression","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"function","recordType":"export"} {"closureHash":"33b4280a69de6a4a87acf915c6d694b9ee41fc4f0262a1bb9836c46d53fe337c","declaration":"export function recordDroppedChannelInboundHistory(params: { input: NormalizedTurnInput; preflight: PreflightFacts; admission?: ChannelTurnAdmission; }): Promise;","entrypoint":"inbound-reply-dispatch","exportName":"recordDroppedChannelInboundHistory","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"function","recordType":"export"} {"closureHash":"33b4280a69de6a4a87acf915c6d694b9ee41fc4f0262a1bb9836c46d53fe337c","declaration":"export function recordDroppedChannelTurnHistory(params: { input: NormalizedTurnInput; preflight: PreflightFacts; admission?: ChannelTurnAdmission; }): Promise;","entrypoint":"inbound-reply-dispatch","exportName":"recordDroppedChannelTurnHistory","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"function","recordType":"export"} {"closureHash":"98e0cc16352b7dfcceb4957f8cd2acfe3c2b3acb223c42a5cfb885e088fcb04c","declaration":"export function resolveInboundReplyDispatchCounts(result: ChannelTurnDispatchResultLike): Record;","entrypoint":"inbound-reply-dispatch","exportName":"resolveInboundReplyDispatchCounts","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"function","recordType":"export"} -{"closureHash":"8924950cb2ab1f70ab55bb8d44587dc2d246e06c10684e81c7776c74ed87a2d8","declaration":"export function runChannelInboundEvent(params: RunChannelTurnParams): Promise>;\nexport function runChannelInboundEvent(params: ChannelInboundEventRunnerParams): Promise>;","entrypoint":"inbound-reply-dispatch","exportName":"runChannelInboundEvent","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"function","recordType":"export"} +{"closureHash":"6162750b963f3e70be551f4eb4515932b6d108d9dd9d4dc1d18ee7096ecab3f1","declaration":"export function runChannelInboundEvent(params: RunChannelTurnParams): Promise>;\nexport function runChannelInboundEvent(params: ChannelInboundEventRunnerParams): Promise>;","entrypoint":"inbound-reply-dispatch","exportName":"runChannelInboundEvent","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"function","recordType":"export"} {"closureHash":"2c68496a174872b31aaf1ac8fad2789deb79d490c5ffbcb157325f1c95d1b51f","declaration":"export function runPreparedInboundReply(params: PreparedChannelTurn): Promise>;","entrypoint":"inbound-reply-dispatch","exportName":"runPreparedInboundReply","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"function","recordType":"export"} -{"closureHash":"2887dec3a9c4ee96e2d46f8dd7a18894b8e3179f45c2bf634343df93012a55b4","declaration":"export const deliverInboundReplyWithMessageSendContext: (params: DurableInboundReplyDeliveryParams) => Promise<{ status: \"not_applicable\"; reason: \"non_final\";} | { status: \"unsupported\"; reason: \"missing_channel\" | \"missing_target\" | \"missing_outbound_handler\" | \"capability_mismatch\"; capability?: DurableFinalDeliveryRequirement;} | { status: \"handled_visible\"; delivery: ChannelDeliveryResult;} | { status: \"handled_no_send\"; reason: \"no_visible_result\"; delivery: ChannelDeliveryResult;} | { status: \"failed\"; error: unknown; sentBeforeError?: true;}>;","entrypoint":"inbound-reply-dispatch","exportName":"deliverInboundReplyWithMessageSendContext","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"const","recordType":"export"} -{"closureHash":"e1642fb62352886de78856a9c6d9fdefcbf53a8dd54702f7de402c60fcaab4bb","declaration":"export type AssembledInboundReply = AssembledChannelTurn;","entrypoint":"inbound-reply-dispatch","exportName":"AssembledInboundReply","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"type","recordType":"export"} +{"closureHash":"879bf9f1b156e597b1138ee3576f48860b0cb572294aaed088ea2cf0bacfe021","declaration":"export const deliverInboundReplyWithMessageSendContext: (params: DurableInboundReplyDeliveryParams) => Promise<{ status: \"not_applicable\"; reason: \"non_final\";} | { status: \"unsupported\"; reason: \"missing_channel\" | \"missing_target\" | \"missing_outbound_handler\" | \"capability_mismatch\"; capability?: DurableFinalDeliveryRequirement;} | { status: \"handled_visible\"; delivery: ChannelDeliveryResult;} | { status: \"handled_no_send\"; reason: \"no_visible_result\"; delivery: ChannelDeliveryResult;} | { status: \"failed\"; error: unknown; sentBeforeError?: true;}>;","entrypoint":"inbound-reply-dispatch","exportName":"deliverInboundReplyWithMessageSendContext","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"const","recordType":"export"} +{"closureHash":"5de6d107d40b06837a6b1d69d87411950714ad38aa80270120c2bf72f9f933b2","declaration":"export type AssembledInboundReply = AssembledChannelTurn;","entrypoint":"inbound-reply-dispatch","exportName":"AssembledInboundReply","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"type","recordType":"export"} {"closureHash":"3de0d6d1bb8f9a83bd1c6e57aa8618e3fea71054236cd530c555e348bd0b7702","declaration":"export type ChannelBotLoopProtectionFacts = ChannelBotLoopProtectionFacts;","entrypoint":"inbound-reply-dispatch","exportName":"ChannelBotLoopProtectionFacts","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"type","recordType":"export"} {"closureHash":"f0da845bbdf49b30f6718a4b7ff012a0536deb98f65418583555dc90825797ca","declaration":"export type ChannelInboundDroppedHistoryOptions = ChannelTurnDroppedHistoryOptions;","entrypoint":"inbound-reply-dispatch","exportName":"ChannelInboundDroppedHistoryOptions","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"type","recordType":"export"} -{"closureHash":"b909039017728e976e5ce869d4d153562a184b792ff6d208ee5eab13eee40c6c","declaration":"export type ChannelInboundEventRunnerParams = ChannelInboundEventRunnerParams;","entrypoint":"inbound-reply-dispatch","exportName":"ChannelInboundEventRunnerParams","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"type","recordType":"export"} +{"closureHash":"413bb9a5c066b3eee5e30d22d8d047d9c0fe05576551f1f992f07b95f6690b56","declaration":"export type ChannelInboundEventRunnerParams = ChannelInboundEventRunnerParams;","entrypoint":"inbound-reply-dispatch","exportName":"ChannelInboundEventRunnerParams","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"type","recordType":"export"} {"closureHash":"f0da845bbdf49b30f6718a4b7ff012a0536deb98f65418583555dc90825797ca","declaration":"export type ChannelTurnDroppedHistoryOptions = ChannelTurnDroppedHistoryOptions;","entrypoint":"inbound-reply-dispatch","exportName":"ChannelTurnDroppedHistoryOptions","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"type","recordType":"export"} {"closureHash":"b145a01f8a24a98b66e723274b24f5a87c3b7034ac7d5c551a92b0cfdb041d51","declaration":"export type ChannelTurnRecordOptions = ChannelTurnRecordOptions;","entrypoint":"inbound-reply-dispatch","exportName":"ChannelTurnRecordOptions","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"type","recordType":"export"} {"closureHash":"4c1290dcec6d7fac7aec703ccec8b6b790ebbd4fa12c3c3c1d07f55b86075b5e","declaration":"export type DurableInboundReplyDeliveryParams = DurableInboundReplyDeliveryParams;","entrypoint":"inbound-reply-dispatch","exportName":"DurableInboundReplyDeliveryParams","importSpecifier":"openclaw/plugin-sdk/inbound-reply-dispatch","kind":"type","recordType":"export"} @@ -3185,34 +3185,34 @@ {"closureHash":"0a8eee30ac3d7beb17a67ed364602e375580d8fe64711e4a88bb77eabb1354f0","declaration":"export function addMeetingSetupCheck(status: MeetingSetupStatus, check: MeetingSetupCheck): MeetingSetupStatus;","entrypoint":"meeting-runtime","exportName":"addMeetingSetupCheck","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"a4294716c3bb64b8732f33b331506a14e4f2fba59f382699961c9db8677e6774","declaration":"export function asMeetingBrowserTabs(result: unknown): MeetingBrowserCandidateTab[];","entrypoint":"meeting-runtime","exportName":"asMeetingBrowserTabs","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"b39bf4bdb91f0aeabac8cbd0ee8dc21afceae20faf463c6a2657258f2aa07976","declaration":"export function buildMeetingSoxAudioCommands(params: MeetingSoxAudioCommandParams): { inputCommand: string[]; outputCommand: string[]; };","entrypoint":"meeting-runtime","exportName":"buildMeetingSoxAudioCommands","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} -{"closureHash":"c095b6b95837e7e337439bd0e67447de11fc82a7e5367d35916a626fda182954","declaration":"export function callMeetingBrowserProxyOnNode(params: { runtime: PluginRuntime; adapter: NodeAdapter; nodeId: string; } & MeetingBrowserRequestParams): Promise;","entrypoint":"meeting-runtime","exportName":"callMeetingBrowserProxyOnNode","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} +{"closureHash":"a3a8a340d44f582824cea41687149fbc3bc485339d1c7e9f88fd6ac7ed8f705f","declaration":"export function callMeetingBrowserProxyOnNode(params: { runtime: PluginRuntime; adapter: NodeAdapter; nodeId: string; } & MeetingBrowserRequestParams): Promise;","entrypoint":"meeting-runtime","exportName":"callMeetingBrowserProxyOnNode","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"c5fcd1d157edcb4773235adfaf8051e3ec7ca428cb7916b6d55f2511affab56c","declaration":"export function convertMeetingBridgeAudioForStt(audio: Buffer, audioFormat: MeetingRealtimeAudioFormat): Buffer;","entrypoint":"meeting-runtime","exportName":"convertMeetingBridgeAudioForStt","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"aa9063c27c5ff714d3653571c4a2a71e9d2eea5609b161f03e4738e15411358b","declaration":"export function convertMeetingTtsAudioForBridge(audio: Buffer, sampleRate: number, audioFormat: MeetingRealtimeAudioFormat, outputFormat?: string, platformName?: string): Buffer;","entrypoint":"meeting-runtime","exportName":"convertMeetingTtsAudioForBridge","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} -{"closureHash":"2ce324817beb6f1084905740c0e7f6f0b502a00bc9b671692281efa393fbee06","declaration":"export function createLocalMeetingRealtimeAudioTransport(params: { inputCommand: string[]; outputCommand: string[]; bargeInInputCommand?: string[]; bargeInRmsThreshold: number; bargeInPeakThreshold: number; bargeInCooldownMs: number; logger: RuntimeLogger; logScope: string; audioFormat?: MeetingRealtimeAudioFormat; spawn?: MeetingRealtimeAudioSpawn; }): MeetingRealtimeAudioTransport;","entrypoint":"meeting-runtime","exportName":"createLocalMeetingRealtimeAudioTransport","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} -{"closureHash":"3f377fa6544ae8a2c1cf3d590d7ead61ef0c30db19d0eab3119ce621686d2c20","declaration":"export function createMeetingBrowserNodeCaller(params: { runtime: PluginRuntime; adapter: NodeAdapter; nodeId: string; }): MeetingBrowserRequestCaller;","entrypoint":"meeting-runtime","exportName":"createMeetingBrowserNodeCaller","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} +{"closureHash":"730955718e569e9288a3578f07a92342c711430eb81506061ae199935da8c69a","declaration":"export function createLocalMeetingRealtimeAudioTransport(params: { inputCommand: string[]; outputCommand: string[]; bargeInInputCommand?: string[]; bargeInRmsThreshold: number; bargeInPeakThreshold: number; bargeInCooldownMs: number; logger: RuntimeLogger; logScope: string; audioFormat?: MeetingRealtimeAudioFormat; spawn?: MeetingRealtimeAudioSpawn; }): MeetingRealtimeAudioTransport;","entrypoint":"meeting-runtime","exportName":"createLocalMeetingRealtimeAudioTransport","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} +{"closureHash":"1c1ca21af6a58610b36bbb7b6366f94f63026d04ca8f787065ea3a38e0fae2fa","declaration":"export function createMeetingBrowserNodeCaller(params: { runtime: PluginRuntime; adapter: NodeAdapter; nodeId: string; }): MeetingBrowserRequestCaller;","entrypoint":"meeting-runtime","exportName":"createMeetingBrowserNodeCaller","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"f244ca8c47f556c9f388953cf9a7581c7d4d413af93e0dfa1462779e6a687a7c","declaration":"export function createMeetingBrowserNodeInvokePolicy(options: MeetingBrowserNodePolicyOptions): OpenClawPluginNodeInvokePolicy;","entrypoint":"meeting-runtime","exportName":"createMeetingBrowserNodeInvokePolicy","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"1aa4e3ff39a2cbe162421c62b1fa4a362973381d4d9ff15c671249b1ebd566bc","declaration":"export function createMeetingNodeHost(options: MeetingNodeHostOptions): { handleCommand(paramsJSON?: string | null): Promise; };","entrypoint":"meeting-runtime","exportName":"createMeetingNodeHost","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} -{"closureHash":"eaa8ed5419843d8a9e1172d3f1ca1d555242d88fcc979e5894fc68449b69cda6","declaration":"export function createMeetingRealtimeEngineBindings(params: { platform: MeetingPlatformRuntimeMetadata; config: { realtime: { agentId?: string; toolPolicy: RealtimeVoiceAgentConsultToolPolicy; }; }; fullConfig: OpenClawConfig; runtime: PluginRuntime; logger: RuntimeLogger; }): { platform: MeetingRuntimePlatform; consultAgent: (consult: MeetingAgentConsultParams) => Promise<{ text: string; }>; tools: RealtimeVoiceTool[]; handleToolCall: (call: MeetingRealtimeToolCallParams) => Promise; };","entrypoint":"meeting-runtime","exportName":"createMeetingRealtimeEngineBindings","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} +{"closureHash":"db5d945a741b28a20bc85cf43d02d0db7507a107e4e90c608d45db602c7b670f","declaration":"export function createMeetingRealtimeEngineBindings(params: { platform: MeetingPlatformRuntimeMetadata; config: { realtime: { agentId?: string; toolPolicy: RealtimeVoiceAgentConsultToolPolicy; }; }; fullConfig: OpenClawConfig; runtime: PluginRuntime; logger: RuntimeLogger; }): { platform: MeetingRuntimePlatform; consultAgent: (consult: MeetingAgentConsultParams) => Promise<{ text: string; }>; tools: RealtimeVoiceTool[]; handleToolCall: (call: MeetingRealtimeToolCallParams) => Promise; };","entrypoint":"meeting-runtime","exportName":"createMeetingRealtimeEngineBindings","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"9124db05923060c467edb149bd8abdc8be1d00d00f867cf84600972923a58489","declaration":"export function createMeetingSession(params: { platform: MeetingPlatformRuntimeMetadata; config: { realtime: { provider?: string; voiceProvider?: string; transcriptionProvider?: string; model?: string; toolPolicy: TToolPolicy; }; }; resolved: MeetingResolvedJoin; createdAt: string; }): MeetingSessionRecord;","entrypoint":"meeting-runtime","exportName":"createMeetingSession","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"fb276e07e395ab19177b3d7967fd0a8fcda79130883f15092a4a306b826481b9","declaration":"export function createMeetingSetupStatus(checks: MeetingSetupCheck[]): MeetingSetupStatus;","entrypoint":"meeting-runtime","exportName":"createMeetingSetupStatus","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} -{"closureHash":"1afc7dd07d0ee47bbf81cc04ddf413ab16ed86dc50128dd8d1facfbd18235b0a","declaration":"export function createMeetingVoiceCallGateway(params: { config: MeetingVoiceCallConfig; runtime: PluginRuntime; surface: MeetingVoiceCallSurface; connectClient: (params: { config: MeetingVoiceCallConfig; surface: MeetingVoiceCallSurface; }) => Promise; }): MeetingVoiceCallGateway;","entrypoint":"meeting-runtime","exportName":"createMeetingVoiceCallGateway","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} -{"closureHash":"1dbabe0009591d1ce190b4a0f41354d7f5252b5f11e07eae4b3ce2658494b569","declaration":"export function createNodeMeetingRealtimeAudioTransport(params: { runtime: PluginRuntime; nodeId: string; bridgeId: string; logger: RuntimeLogger; commandName: string; logScope: string; logPrefix: string; audioFormat?: MeetingRealtimeAudioFormat; }): MeetingRealtimeAudioTransport;","entrypoint":"meeting-runtime","exportName":"createNodeMeetingRealtimeAudioTransport","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} +{"closureHash":"be1012b211d000f3aef944050b3c8273f95c68b0b7912b50f32bb411e442f8ae","declaration":"export function createMeetingVoiceCallGateway(params: { config: MeetingVoiceCallConfig; runtime: PluginRuntime; surface: MeetingVoiceCallSurface; connectClient: (params: { config: MeetingVoiceCallConfig; surface: MeetingVoiceCallSurface; }) => Promise; }): MeetingVoiceCallGateway;","entrypoint":"meeting-runtime","exportName":"createMeetingVoiceCallGateway","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} +{"closureHash":"262ceb116cf3323327183ea38bc18556966f80a9b68265ce4c65fe975e770e58","declaration":"export function createNodeMeetingRealtimeAudioTransport(params: { runtime: PluginRuntime; nodeId: string; bridgeId: string; logger: RuntimeLogger; commandName: string; logScope: string; logPrefix: string; audioFormat?: MeetingRealtimeAudioFormat; }): MeetingRealtimeAudioTransport;","entrypoint":"meeting-runtime","exportName":"createNodeMeetingRealtimeAudioTransport","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"c0987b15a391a92d53d3e4e12b61eb122f9547fcf4f45478cdd3c5a8973a3e52","declaration":"export function endMeetingVoiceCallGatewayCall(params: { gateway: MeetingVoiceCallGateway; callId: string; }): Promise;","entrypoint":"meeting-runtime","exportName":"endMeetingVoiceCallGatewayCall","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"b3ebc10fe7ab372e1317eaa8f78621cf277bba1e33fda57acf2254f6759d1e9d","declaration":"export function getMeetingVoiceCallGatewayCall(params: { gateway: MeetingVoiceCallGateway; callId: string; }): Promise;","entrypoint":"meeting-runtime","exportName":"getMeetingVoiceCallGatewayCall","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"aac088df8e80d9ce89c45feccdb04ace3ae4417b3fcdd0f058410ddf25c96b46","declaration":"export function isMeetingVoiceCallMissingError(error: unknown): boolean;","entrypoint":"meeting-runtime","exportName":"isMeetingVoiceCallMissingError","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} -{"closureHash":"63227ecc5473ba68e77a4ee0dd5c19a43aadc9db16ddd4734d125ada56e4de2c","declaration":"export function joinMeetingViaVoiceCallGateway(params: { config: MeetingVoiceCallConfig; gateway: MeetingVoiceCallGateway; surface: MeetingVoiceCallSurface; dialInNumber: string; dtmfSequence?: string; logger?: RuntimeLogger; message?: string; requesterSessionKey?: string; agentId?: string; sessionKey?: string; }): Promise;","entrypoint":"meeting-runtime","exportName":"joinMeetingViaVoiceCallGateway","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} +{"closureHash":"ea027d81a8e6d2c4eaa3a082b7b1e485c907ac5185cd98bf6ba8f0a915e77816","declaration":"export function joinMeetingViaVoiceCallGateway(params: { config: MeetingVoiceCallConfig; gateway: MeetingVoiceCallGateway; surface: MeetingVoiceCallSurface; dialInNumber: string; dtmfSequence?: string; logger?: RuntimeLogger; message?: string; requesterSessionKey?: string; agentId?: string; sessionKey?: string; }): Promise;","entrypoint":"meeting-runtime","exportName":"joinMeetingViaVoiceCallGateway","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"bac9621cd025754fbcd4c21409b06eb0503405db81f35cac993aaf0b881ab3e1","declaration":"export function leaveMeetingWithBrowser(params: { adapter: BrowserAdapter; callBrowser: MeetingBrowserRequestCaller; launch: boolean; meetingSessionId?: string; meetingUrl: string; tab: MeetingBrowserTab; timeoutMs: number; }): Promise<{ left: boolean; note: string; }>;","entrypoint":"meeting-runtime","exportName":"leaveMeetingWithBrowser","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"c7b1aeac134b2070d053adf33026d876998b852ccd65cd2c9667119b1a1abee2","declaration":"export function openMeetingWithBrowser, Mode extends string, Health extends MeetingBrowserHealth & { browserTitle?: string; browserUrl?: string; notes?: string[]; }, Transcript extends MeetingTranscriptSnapshot>(params: { adapter: BrowserAdapter; callBrowser: MeetingBrowserRequestCaller; config: MeetingBrowserControllerConfig; session: Session; }): Promise<{ launched: boolean; browser?: Health; tab?: MeetingBrowserTab; }>;","entrypoint":"meeting-runtime","exportName":"openMeetingWithBrowser","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"34858979bd248799c2215d9c7bdd5d4a6b27660c9173bfca2e50dd4373ac27db","declaration":"export function readMeetingBrowserTab(result: unknown): MeetingBrowserCandidateTab | undefined;","entrypoint":"meeting-runtime","exportName":"readMeetingBrowserTab","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"566d131fb9ec888fb5441ac6e7ae1623e8f5d12a2870d3fc94db607d57f70205","declaration":"export function readMeetingTranscriptWithBrowser(params: { adapter: BrowserAdapter; callBrowser: MeetingBrowserRequestCaller; finalize: boolean; meetingUrl: string; meetingSessionId: string; tab: MeetingBrowserTab; timeoutMs: number; }): Promise;","entrypoint":"meeting-runtime","exportName":"readMeetingTranscriptWithBrowser","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"0b42493cc0197096c4847c2d6e149c5581580abdda448d07eb1c6d77a775bc4a","declaration":"export function recoverMeetingBrowserTab(params: { adapter: BrowserAdapter; allowSessionAdoption?: boolean; autoJoin?: boolean; callBrowser: MeetingBrowserRequestCaller; captureCaptions?: boolean; config: MeetingBrowserControllerConfig; locationLabel: string; meetingSessionId?: string; mode: Mode; requestedMeetingUrl: string | undefined; readOnly?: boolean; timeoutMs?: number; trackedMeetingUrl: string | undefined; trackedTargetId: string | undefined; }): Promise<{ found: boolean; targetId?: string; tab?: MeetingBrowserCandidateTab; browser?: Health; message: string; }>;","entrypoint":"meeting-runtime","exportName":"recoverMeetingBrowserTab","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} -{"closureHash":"5ab9dd272d8c051757a6c819d4eca7ed31aa8c5f875af8a3bb89179a0edd7199","declaration":"export function resolveLocalMeetingBrowserRequest(runtime: PluginRuntime): Promise;","entrypoint":"meeting-runtime","exportName":"resolveLocalMeetingBrowserRequest","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} -{"closureHash":"fa38cc4d1d86906683a1560c0ea440c917d87c09e7a9e993635ca40bd04be06e","declaration":"export function resolveMeetingBrowserNode(params: { runtime: PluginRuntime; adapter: NodeAdapter; requestedNode?: string; }): Promise;","entrypoint":"meeting-runtime","exportName":"resolveMeetingBrowserNode","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} -{"closureHash":"665fea9971e019a354b7190ef40192f88614552ad8b7f21e0419d4a6fd35afb0","declaration":"export function resolveMeetingBrowserNodeInfo(params: { runtime: PluginRuntime; adapter: NodeAdapter; requestedNode?: string; }): Promise;","entrypoint":"meeting-runtime","exportName":"resolveMeetingBrowserNodeInfo","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} +{"closureHash":"d4ddcb7c9f58a74c43e059242b11468ba511e30f16ea8d4658ede47afd11c37b","declaration":"export function resolveLocalMeetingBrowserRequest(runtime: PluginRuntime): Promise;","entrypoint":"meeting-runtime","exportName":"resolveLocalMeetingBrowserRequest","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} +{"closureHash":"796837e579418f2dd65b458cf95b2db280a16296c38bf4bf3b4ee5a7cbf03825","declaration":"export function resolveMeetingBrowserNode(params: { runtime: PluginRuntime; adapter: NodeAdapter; requestedNode?: string; }): Promise;","entrypoint":"meeting-runtime","exportName":"resolveMeetingBrowserNode","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} +{"closureHash":"e1520bc6b6628f7c3b3f6d013c76e61124226ae9dc060ace210009fba4c6c637","declaration":"export function resolveMeetingBrowserNodeInfo(params: { runtime: PluginRuntime; adapter: NodeAdapter; requestedNode?: string; }): Promise;","entrypoint":"meeting-runtime","exportName":"resolveMeetingBrowserNodeInfo","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"f21196c9ea8ab90248ffdcdef3e942f1247ee2b9064ddb9757fffe352362c779","declaration":"export function resolveMeetingRealtimeAudioFormat(audioFormat: MeetingRealtimeAudioFormat): RealtimeVoiceAudioFormat;","entrypoint":"meeting-runtime","exportName":"resolveMeetingRealtimeAudioFormat","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"521dc5c262524a709cdd27cdc88e95004073da8223537bcbc73d5d423172dc2b","declaration":"export function speakMeetingViaVoiceCallGateway(params: { gateway: MeetingVoiceCallGateway; callId: string; message: string; }): Promise;","entrypoint":"meeting-runtime","exportName":"speakMeetingViaVoiceCallGateway","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} -{"closureHash":"267c6ee7e2964f31fc3636d5ae4200deb8368b9cd7540c6a358c7d49f9ab8efc","declaration":"export function startMeetingAgentRealtimeEngine(params: { config: MeetingRealtimeEngineConfig; fullConfig: OpenClawConfig; runtime: PluginRuntime; platform: MeetingRuntimePlatform; meetingSessionId: string; requesterSessionKey?: string; logPrefix?: \"node\"; transport: MeetingRealtimeAudioTransport; logger: RuntimeLogger; providers?: RealtimeTranscriptionProviderPlugin[]; consultAgent: (params: MeetingAgentConsultParams) => Promise<{ text: string; }>; }): Promise;","entrypoint":"meeting-runtime","exportName":"startMeetingAgentRealtimeEngine","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} -{"closureHash":"90370257fd10a15fa4c5ea1685b929f72557213fc558d6eff6cbb40c2245e674","declaration":"export function startMeetingRealtimeEngine(params: { config: MeetingRealtimeEngineConfig; fullConfig: OpenClawConfig; runtime: PluginRuntime; platform: MeetingRuntimePlatform; meetingSessionId: string; requesterSessionKey?: string; logPrefix?: \"node\"; talkSessionId?: string; talkContext?: { nodeId: string; bridgeId: string; }; transport: MeetingRealtimeAudioTransport; logger: RuntimeLogger; providers?: RealtimeVoiceProviderPlugin[]; consultAgent: (params: MeetingAgentConsultParams) => Promise<{ text: string; }>; tools: RealtimeVoiceTool[]; handleToolCall: (params: MeetingRealtimeToolCallParams) => Promise; }): Promise;","entrypoint":"meeting-runtime","exportName":"startMeetingRealtimeEngine","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} +{"closureHash":"412e3410e7882dba20e383a60a50d3fbdb9551d8d2fd414397f088852b439737","declaration":"export function startMeetingAgentRealtimeEngine(params: { config: MeetingRealtimeEngineConfig; fullConfig: OpenClawConfig; runtime: PluginRuntime; platform: MeetingRuntimePlatform; meetingSessionId: string; requesterSessionKey?: string; logPrefix?: \"node\"; transport: MeetingRealtimeAudioTransport; logger: RuntimeLogger; providers?: RealtimeTranscriptionProviderPlugin[]; consultAgent: (params: MeetingAgentConsultParams) => Promise<{ text: string; }>; }): Promise;","entrypoint":"meeting-runtime","exportName":"startMeetingAgentRealtimeEngine","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} +{"closureHash":"d2405867b52cd43a022ab3ac72e7bb2d82d53315b5d735b21ed726cc93348e69","declaration":"export function startMeetingRealtimeEngine(params: { config: MeetingRealtimeEngineConfig; fullConfig: OpenClawConfig; runtime: PluginRuntime; platform: MeetingRuntimePlatform; meetingSessionId: string; requesterSessionKey?: string; logPrefix?: \"node\"; talkSessionId?: string; talkContext?: { nodeId: string; bridgeId: string; }; transport: MeetingRealtimeAudioTransport; logger: RuntimeLogger; providers?: RealtimeVoiceProviderPlugin[]; consultAgent: (params: MeetingAgentConsultParams) => Promise<{ text: string; }>; tools: RealtimeVoiceTool[]; handleToolCall: (params: MeetingRealtimeToolCallParams) => Promise; }): Promise;","entrypoint":"meeting-runtime","exportName":"startMeetingRealtimeEngine","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"function","recordType":"export"} {"closureHash":"663b9c77231b21af697efd5042e22d1c33e9ee972adeb312ad86d81a2b2e36f7","declaration":"export type MeetingAgentConsultParams = MeetingAgentConsultParams;","entrypoint":"meeting-runtime","exportName":"MeetingAgentConsultParams","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"type","recordType":"export"} {"closureHash":"adf0745c611bf737fc28978d766fc2a25b7104e71b6b2fed4e9b95e519c7b115","declaration":"export type MeetingBrowserCandidateTab = MeetingBrowserCandidateTab;","entrypoint":"meeting-runtime","exportName":"MeetingBrowserCandidateTab","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"type","recordType":"export"} {"closureHash":"59b1526172b7491b85f14f13c1ee26d8d6726f33093770748580c767b1689a17","declaration":"export type MeetingBrowserControllerConfig = MeetingBrowserControllerConfig;","entrypoint":"meeting-runtime","exportName":"MeetingBrowserControllerConfig","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"type","recordType":"export"} @@ -3244,7 +3244,7 @@ {"closureHash":"8244b408803f57cf2004157e96f2ce11bb036cdf864123b15ba2fac7f03b5d43","declaration":"export type MeetingSessionRuntimeHandles = MeetingSessionRuntimeHandles;","entrypoint":"meeting-runtime","exportName":"MeetingSessionRuntimeHandles","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"type","recordType":"export"} {"closureHash":"aa8054fc2c442891197e89bdad61e79999ea15d813c4b127fb6150607b9e67e7","declaration":"export type MeetingSessionRuntimeJoinContext, TTransport extends string, TMode extends string, THealth extends MeetingBrowserHealth, TTab extends MeetingBrowserTab> = MeetingSessionRuntimeJoinContext;","entrypoint":"meeting-runtime","exportName":"MeetingSessionRuntimeJoinContext","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"type","recordType":"export"} {"closureHash":"325241724edd38da439c5df03d225e2a7cb8e56d817e98ed7c37850656d3744b","declaration":"export type MeetingSessionRuntimeMessages = MeetingSessionRuntimeMessages;","entrypoint":"meeting-runtime","exportName":"MeetingSessionRuntimeMessages","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"type","recordType":"export"} -{"closureHash":"e128aaa911ef990ed5ec84269adc05d82db6f93e6c65daa25c697a3ed7a78bbc","declaration":"export type MeetingSessionRuntimeOptions, TRequest, TTransport extends string, TMode extends string, THealth extends MeetingBrowserHealth, TTab extends MeetingBrowserTab, TManualReason extends string, TSpeechBlockedReason extends string> = MeetingSessionRuntimeOptions;","entrypoint":"meeting-runtime","exportName":"MeetingSessionRuntimeOptions","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"type","recordType":"export"} +{"closureHash":"a43116621815f2b2b3cbdacc0a47b9c3b8f248d8d9c8e5b5acbdbdaed9cafee6","declaration":"export type MeetingSessionRuntimeOptions, TRequest, TTransport extends string, TMode extends string, THealth extends MeetingBrowserHealth, TTab extends MeetingBrowserTab, TManualReason extends string, TSpeechBlockedReason extends string> = MeetingSessionRuntimeOptions;","entrypoint":"meeting-runtime","exportName":"MeetingSessionRuntimeOptions","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"type","recordType":"export"} {"closureHash":"d3c730cba02d30512c4cdae6e2367c662982e2c25671833ecd8701283924c642","declaration":"export type MeetingSessionState = MeetingSessionState;","entrypoint":"meeting-runtime","exportName":"MeetingSessionState","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"type","recordType":"export"} {"closureHash":"2496931157bf64fdb16013172ab9c023e60c5f85b98f46a3ee9532ce58d636d6","declaration":"export type MeetingSetupCheck = MeetingSetupCheck;","entrypoint":"meeting-runtime","exportName":"MeetingSetupCheck","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"type","recordType":"export"} {"closureHash":"f0aed6f7955a43fc387d8bbc072cb6276b0f2d18e7f829441a2ad45974bb3831","declaration":"export type MeetingSetupStatus = MeetingSetupStatus;","entrypoint":"meeting-runtime","exportName":"MeetingSetupStatus","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"type","recordType":"export"} @@ -3258,9 +3258,9 @@ {"closureHash":"20c70a94483aeddda4d1500cfcc5e71fab844b474ba4061c55d6c8693d40821b","declaration":"export type MeetingVoiceCallJoinResult = MeetingVoiceCallJoinResult;","entrypoint":"meeting-runtime","exportName":"MeetingVoiceCallJoinResult","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"type","recordType":"export"} {"closureHash":"4fb2c5928aa6f809dd4c604d71c5c99cdfe3e98b6e9c1662601c9b4ad9738162","declaration":"export type MeetingVoiceCallStatusResult = MeetingVoiceCallStatusResult;","entrypoint":"meeting-runtime","exportName":"MeetingVoiceCallStatusResult","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"type","recordType":"export"} {"closureHash":"5ef812397b6409a4ca228943dd1080661365959477b42e705a9aaa219757d14f","declaration":"export type MeetingVoiceCallSurface = MeetingVoiceCallSurface;","entrypoint":"meeting-runtime","exportName":"MeetingVoiceCallSurface","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"type","recordType":"export"} -{"closureHash":"79250cb14af760385910fb8a980200b8bccda18d65424af4bbc93c5df49e683c","declaration":"export interface MeetingPlatformAdapter extends MeetingPlatformAdapterContract {\n}","entrypoint":"meeting-runtime","exportName":"MeetingPlatformAdapter","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"interface","recordType":"export"} +{"closureHash":"78230dbc803e2b60abda108c6f952ca7dbff79bb1c5246593c4716d1e903d306","declaration":"export interface MeetingPlatformAdapter extends MeetingPlatformAdapterContract {\n}","entrypoint":"meeting-runtime","exportName":"MeetingPlatformAdapter","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"interface","recordType":"export"} {"closureHash":"79884bd1df1ea0d07d5ceb4c62d93c1ee744b75d31c94c988845869c0f3cbd2d","declaration":"export interface MeetingRealtimeAudioTransport {\n onFatal(handler: () => void): void;\n startInput(onAudio: (audio: Buffer) => void): void;\n beginOutput?(): void;\n stop(): Promise;\n writeOutput(audio: Buffer): Promise;\n clearOutput(): Promise;\n dispose(): Promise;\n getHealth?(): MeetingRealtimeAudioTransportHealth;\n startBargeInMonitor?(onBargeIn: (audio: Buffer) => boolean): void;\n}","entrypoint":"meeting-runtime","exportName":"MeetingRealtimeAudioTransport","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"interface","recordType":"export"} -{"closureHash":"0da4784f3fc72c29d5c4b76f781f1ca31bcd50af3781dc568d12c9d18bf30908","declaration":"export class MeetingSessionRuntime, TRequest, TTransport extends string, TMode extends string, THealth extends MeetingBrowserHealth, TTab extends MeetingBrowserTab, TManualReason extends string, TSpeechBlockedReason extends string> {\n readonly #sessions: Map;\n readonly #sessionLeaves: Map>>;\n readonly #sessionCleanup: MeetingSessionCleanupTracker;\n readonly #meetingLock: MeetingSessionJoinLock;\n readonly #sessionStops: Map Promise>;\n readonly #sessionSpeakers: Map void>;\n readonly #sessionHealth: Map Partial>;\n readonly #durableTranscripts: MeetingSessionDurableTranscripts;\n readonly #transcriptStore: MeetingSessionTranscriptStore;\n constructor(private readonly options: MeetingSessionRuntimeOptions);\n list(): TSession[];\n getSession(sessionId: string): TSession | undefined;\n async status(sessionId?: string): Promise<{\n found: boolean;\n session?: TSession;\n sessions?: TSession[];\n }>;\n async transcript(sessionId: string, options: {\n sinceIndex?: number;\n }): Promise<{ found: boolean; sessionId?: string; startIndex?: number; nextIndex?: number; droppedLines?: number; evicted?: boolean; lines?: MeetingTranscriptLine[]; }>;\n async startTranscriptSource(request: TranscriptStartRequest): Promise;\n async stopTranscriptSource(request: TranscriptStopRequest): Promise;\n isReusableSession(session: TSession, resolved: MeetingResolvedJoin): boolean;\n async join(request: TRequest): Promise<{\n session: TSession;\n spoken?: boolean;\n }>;\n async leave(sessionId: string, options?: {\n keepBrowserTab?: boolean;\n }): Promise>;\n async speak(sessionId: string, instructions?: string): Promise<{\n found: boolean;\n spoken: boolean;\n session?: TSession;\n }>;\n async speakWhenReady(session: TSession, instructions: string): Promise;\n hasHealthHandle(sessionId: string): boolean;\n refreshHealth(sessionId?: string): void;\n async refreshBrowserHealth(session: TSession, options: {\n force?: boolean;\n readOnly?: boolean;\n }): Promise;\n async refreshCaptionHealth(session: TSession): Promise;\n refreshSpeechReadiness(session: TSession): {\n ready: boolean;\n reason?: TSpeechBlockedReason;\n message?: string;\n };\n markSessionEnded(session: TSession, reason: string): void;\n async #joinUnlocked(request: TRequest, resolved: MeetingResolvedJoin): Promise<{\n session: TSession;\n spoken?: boolean;\n }>;\n async #leaveUnlocked(sessionId: string, options?: {\n keepBrowserTab?: boolean;\n }): Promise>;\n async #leaveSession(session: TSession, options?: {\n keepBrowserTab?: boolean;\n }): Promise>;\n #meetingKey(transport: TTransport, url: string): string;\n #inheritBrowserTabOwnership(params: {\n session: TSession;\n transport: TTransport;\n nodeId?: string;\n meetingUrl: string;\n tab?: TTab;\n }): TTab | undefined;\n async #settleRetainedBrowserTabs(retained: Array<{\n session: TSession;\n tab: TTab;\n }>, adopted?: {\n transport: TTransport;\n nodeId?: string;\n tab: TTab;\n }): Promise;\n async #rollbackFailedJoinSession(session: TSession): Promise;\n async #settleRetainedBrowserTabsAfterFailure(retained: Array<{\n session: TSession;\n tab: TTab;\n }>): Promise;\n #attachRuntimeHandles(session: TSession, handles: MeetingSessionRuntimeHandles): void;\n #dropRuntimeHandles(sessionId: string): void;\n #isManagedBrowserSession(session: TSession): boolean;\n #evaluateSpeechReadiness(session: TSession): {\n ready: boolean;\n reason?: TSpeechBlockedReason;\n message?: string;\n };\n #noteSession(session: TSession, note: string): void;\n}","entrypoint":"meeting-runtime","exportName":"MeetingSessionRuntime","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"class","recordType":"export"} +{"closureHash":"f2102364a2f16bad6bdff4bb925e3baf1ae72fbcb894d3ac099012459e4f6f13","declaration":"export class MeetingSessionRuntime, TRequest, TTransport extends string, TMode extends string, THealth extends MeetingBrowserHealth, TTab extends MeetingBrowserTab, TManualReason extends string, TSpeechBlockedReason extends string> {\n readonly #sessions: Map;\n readonly #sessionLeaves: Map>>;\n readonly #sessionCleanup: MeetingSessionCleanupTracker;\n readonly #meetingLock: MeetingSessionJoinLock;\n readonly #sessionStops: Map Promise>;\n readonly #sessionSpeakers: Map void>;\n readonly #sessionHealth: Map Partial>;\n readonly #durableTranscripts: MeetingSessionDurableTranscripts;\n readonly #transcriptStore: MeetingSessionTranscriptStore;\n constructor(private readonly options: MeetingSessionRuntimeOptions);\n list(): TSession[];\n getSession(sessionId: string): TSession | undefined;\n async status(sessionId?: string): Promise<{\n found: boolean;\n session?: TSession;\n sessions?: TSession[];\n }>;\n async transcript(sessionId: string, options: {\n sinceIndex?: number;\n }): Promise<{ found: boolean; sessionId?: string; startIndex?: number; nextIndex?: number; droppedLines?: number; evicted?: boolean; lines?: MeetingTranscriptLine[]; }>;\n async startTranscriptSource(request: TranscriptStartRequest): Promise;\n async stopTranscriptSource(request: TranscriptStopRequest): Promise;\n isReusableSession(session: TSession, resolved: MeetingResolvedJoin): boolean;\n async join(request: TRequest): Promise<{\n session: TSession;\n spoken?: boolean;\n }>;\n async leave(sessionId: string, options?: {\n keepBrowserTab?: boolean;\n }): Promise>;\n async speak(sessionId: string, instructions?: string): Promise<{\n found: boolean;\n spoken: boolean;\n session?: TSession;\n }>;\n async speakWhenReady(session: TSession, instructions: string): Promise;\n hasHealthHandle(sessionId: string): boolean;\n refreshHealth(sessionId?: string): void;\n async refreshBrowserHealth(session: TSession, options: {\n force?: boolean;\n readOnly?: boolean;\n }): Promise;\n async refreshCaptionHealth(session: TSession): Promise;\n refreshSpeechReadiness(session: TSession): {\n ready: boolean;\n reason?: TSpeechBlockedReason;\n message?: string;\n };\n markSessionEnded(session: TSession, reason: string): void;\n async #joinUnlocked(request: TRequest, resolved: MeetingResolvedJoin): Promise<{\n session: TSession;\n spoken?: boolean;\n }>;\n async #leaveUnlocked(sessionId: string, options?: {\n keepBrowserTab?: boolean;\n }): Promise>;\n async #leaveSession(session: TSession, options?: {\n keepBrowserTab?: boolean;\n }): Promise>;\n #meetingKey(transport: TTransport, url: string): string;\n #inheritBrowserTabOwnership(params: {\n session: TSession;\n transport: TTransport;\n nodeId?: string;\n meetingUrl: string;\n tab?: TTab;\n }): TTab | undefined;\n async #settleRetainedBrowserTabs(retained: Array<{\n session: TSession;\n tab: TTab;\n }>, adopted?: {\n transport: TTransport;\n nodeId?: string;\n tab: TTab;\n }): Promise;\n async #rollbackFailedJoinSession(session: TSession): Promise;\n async #settleRetainedBrowserTabsAfterFailure(retained: Array<{\n session: TSession;\n tab: TTab;\n }>): Promise;\n #attachRuntimeHandles(session: TSession, handles: MeetingSessionRuntimeHandles): void;\n #dropRuntimeHandles(sessionId: string): void;\n #isManagedBrowserSession(session: TSession): boolean;\n #evaluateSpeechReadiness(session: TSession): {\n ready: boolean;\n reason?: TSpeechBlockedReason;\n message?: string;\n };\n #noteSession(session: TSession, note: string): void;\n}","entrypoint":"meeting-runtime","exportName":"MeetingSessionRuntime","importSpecifier":"openclaw/plugin-sdk/meeting-runtime","kind":"class","recordType":"export"} {"category":null,"entrypoint":"memory-core-host-engine-foundation","importSpecifier":"openclaw/plugin-sdk/memory-core-host-engine-foundation","recordType":"module"} {"closureHash":"e2df8d235401aebf58eb71652fbeaedb42ca00aaa5042a76909ff2c48ba6fd54","declaration":"export function createSubsystemLogger(subsystem: string): SubsystemLogger;","entrypoint":"memory-core-host-engine-foundation","exportName":"createSubsystemLogger","importSpecifier":"openclaw/plugin-sdk/memory-core-host-engine-foundation","kind":"function","recordType":"export"} {"closureHash":null,"declaration":"export function isPathInside(root: string, target: string): boolean;","entrypoint":"memory-core-host-engine-foundation","exportName":"isPathInside","importSpecifier":"openclaw/plugin-sdk/memory-core-host-engine-foundation","kind":"function","recordType":"export"} @@ -3387,9 +3387,9 @@ {"category":"core","entrypoint":"plugin-entry","importSpecifier":"openclaw/plugin-sdk/plugin-entry","recordType":"module"} {"closureHash":"3d27406644141af2733cfca6e8c1240fc62327910109f585ce9073cafd7fd89c","declaration":"export function buildJsonPluginConfigSchema(schema: JsonSchemaObject, options?: BuildJsonPluginConfigSchemaOptions): OpenClawPluginConfigSchema;","entrypoint":"plugin-entry","exportName":"buildJsonPluginConfigSchema","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"function","recordType":"export"} {"closureHash":"aff66c792d532642afb9c6e5a03c8d220f219250c3a8b49733f32058f22f98ca","declaration":"export function buildPluginConfigSchema(schema: ZodTypeAny, options?: BuildPluginConfigSchemaOptions): OpenClawPluginConfigSchema;","entrypoint":"plugin-entry","exportName":"buildPluginConfigSchema","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"function","recordType":"export"} -{"closureHash":"8994a6476adc60e63744c8d6e69b1d702893a27354c4c07d293a560ec312405b","declaration":"export function definePluginEntry({ id, name, description, kind, configSchema, reload, nodeHostCommands, securityAuditCollectors, register, }: DefinePluginEntryOptions): DefinedPluginEntry;","entrypoint":"plugin-entry","exportName":"definePluginEntry","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"function","recordType":"export"} +{"closureHash":"c331cbee6ea746b6e32557afff60143b600e330708763688396f28a4d86e5b8c","declaration":"export function definePluginEntry({ id, name, description, kind, configSchema, reload, nodeHostCommands, securityAuditCollectors, register, }: DefinePluginEntryOptions): DefinedPluginEntry;","entrypoint":"plugin-entry","exportName":"definePluginEntry","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"function","recordType":"export"} {"closureHash":"0ef1dfa3b5deeb456480e292c0e835c3cd6d13e7bb7059fc735546507da51594","declaration":"export function emptyPluginConfigSchema(): OpenClawPluginConfigSchema;","entrypoint":"plugin-entry","exportName":"emptyPluginConfigSchema","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"function","recordType":"export"} -{"closureHash":"069afe164b45b50b6a4df310f4b257eff482dcd6ca93b1f9a5dcf08724eb44c2","declaration":"export type AgentHarness = AgentHarness;","entrypoint":"plugin-entry","exportName":"AgentHarness","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} +{"closureHash":"d3f58785b718226c2b2b6ed6b27f196eebbc7fee2a8366a1b95aa0961dfb5a87","declaration":"export type AgentHarness = AgentHarness;","entrypoint":"plugin-entry","exportName":"AgentHarness","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} {"closureHash":"d2ff4de9ee3fd111c2cc64a3ee7e557d9f161af1b6b437ee7886bcb16e426317","declaration":"export type AgentPromptGuidance = AgentPromptGuidance;","entrypoint":"plugin-entry","exportName":"AgentPromptGuidance","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} {"closureHash":"2841127a90e04467adfea8126cbf03655f44ddb089ad9e0d48833c2beea39cbd","declaration":"export type AgentPromptGuidanceEntry = AgentPromptGuidanceEntry;","entrypoint":"plugin-entry","exportName":"AgentPromptGuidanceEntry","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} {"closureHash":"aa0412acefe62caff12e5271ead0545504874e824380dc21cfc0566388a05f33","declaration":"export type AgentPromptSurfaceKind = \"openclaw_main\" | \"pi_main\" | \"codex_app_server\" | \"cli_backend\" | \"acp_backend\" | \"subagent\";","entrypoint":"plugin-entry","exportName":"AgentPromptSurfaceKind","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} @@ -3399,16 +3399,16 @@ {"closureHash":"732f3c1b0e4942089773fad9da886d7b7bed41e7f1bb45d79c26deac15f6770b","declaration":"export type MigrationDetection = MigrationDetection;","entrypoint":"plugin-entry","exportName":"MigrationDetection","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} {"closureHash":"f40046e61c3037ec599a627e1088b8c78d1fe057d858e13cfaff1eab800e9f1f","declaration":"export type MigrationItem = MigrationItem;","entrypoint":"plugin-entry","exportName":"MigrationItem","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} {"closureHash":"934363b212df1e356365d44e0684401985228a2aeaf859aa13c840bae6e2190b","declaration":"export type MigrationPlan = MigrationPlan;","entrypoint":"plugin-entry","exportName":"MigrationPlan","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} -{"closureHash":"80bce0128a2372b13f49f434e2350bbb2751d17d30dce0a09c6aa26620f95f70","declaration":"export type MigrationProviderContext = MigrationProviderContext;","entrypoint":"plugin-entry","exportName":"MigrationProviderContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} -{"closureHash":"c413d3c68832fed3ef25fdace1ded97f5947605fc272bc7881b0d5728ee56512","declaration":"export type MigrationProviderPlugin = MigrationProviderPlugin;","entrypoint":"plugin-entry","exportName":"MigrationProviderPlugin","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} +{"closureHash":"1ef164e7838a3603257be2c6c83086a782e12d7cd041a24ccc6f0bac94fe5d93","declaration":"export type MigrationProviderContext = MigrationProviderContext;","entrypoint":"plugin-entry","exportName":"MigrationProviderContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} +{"closureHash":"f721dff9d3a47814035bfd30012b2c9178152e989a258604657f8934b3625998","declaration":"export type MigrationProviderPlugin = MigrationProviderPlugin;","entrypoint":"plugin-entry","exportName":"MigrationProviderPlugin","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} {"closureHash":"cea9632d824ebf247f131958f8db4916ae60a37d4d5493e06f789d883dab6574","declaration":"export type MigrationSummary = MigrationSummary;","entrypoint":"plugin-entry","exportName":"MigrationSummary","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} {"closureHash":"8054ffbe71b91afced900ef8a06f5e368ac10c4f99ffc1c6f538a802856f61c6","declaration":"export type OpenClawConfig = OpenClawConfig;","entrypoint":"plugin-entry","exportName":"OpenClawConfig","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} {"closureHash":"2f6e368fff73e942044cdf95c7c751b46c741e22ac0d2d4d97f45a3158f758ae","declaration":"export type OpenClawGatewayDiscoveryAdvertiseContext = OpenClawGatewayDiscoveryAdvertiseContext;","entrypoint":"plugin-entry","exportName":"OpenClawGatewayDiscoveryAdvertiseContext","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} {"closureHash":"b198058e0065e5c60b729a5bdf568f7e2436a006d8c4a7c63de764c7283f96ba","declaration":"export type OpenClawGatewayDiscoveryService = OpenClawGatewayDiscoveryService;","entrypoint":"plugin-entry","exportName":"OpenClawGatewayDiscoveryService","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} -{"closureHash":"baddda61cd7c006909d5364a531fc1d362afca4d789674b0af5f5175f339af9c","declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"plugin-entry","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} +{"closureHash":"adad7f6d6c8f37f73c803f8decd56bc9db755e3449b59059de4cbef52f90f116","declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"plugin-entry","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} {"closureHash":"ef00c46e3e0d28e13b764ac1e513c26fd6c37fe2735409ec667b4a1c53f67f71","declaration":"export type OpenClawPluginCommandDefinition = OpenClawPluginCommandDefinition;","entrypoint":"plugin-entry","exportName":"OpenClawPluginCommandDefinition","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} {"closureHash":"365beb5cee974639c2f35fc7a39088721ca8e9c618442830298b98033e9c768c","declaration":"export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;","entrypoint":"plugin-entry","exportName":"OpenClawPluginConfigSchema","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} -{"closureHash":"97da01764d78d0f70235a550c8b07cfc43f847536728c366bc0ee813de5a38fb","declaration":"export type OpenClawPluginDefinition = OpenClawPluginDefinition;","entrypoint":"plugin-entry","exportName":"OpenClawPluginDefinition","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} +{"closureHash":"cbb6ea3c708ee0c18f8f9e33ff5f9faa8bc6c5a1c04b8ef4c5a9eacdaff46ea8","declaration":"export type OpenClawPluginDefinition = OpenClawPluginDefinition;","entrypoint":"plugin-entry","exportName":"OpenClawPluginDefinition","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} {"closureHash":"a7ed83f0924f818b23cecb5a1f3591ff28b9499ccac9667a2b8505c2bc608ea9","declaration":"export type OpenClawPluginGatewayEventScope = OpenClawPluginGatewayEventScope;","entrypoint":"plugin-entry","exportName":"OpenClawPluginGatewayEventScope","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} {"closureHash":"f81f224d9b837e6353b7a546c5a76b124bcf568fd1f1fd0c6881fda30c53120a","declaration":"export type OpenClawPluginGatewayEvents = OpenClawPluginGatewayEvents;","entrypoint":"plugin-entry","exportName":"OpenClawPluginGatewayEvents","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} {"closureHash":"7470b211ac4d3449cd0fc353ee2eb48e9fbc2dbc9259d21c680d0203577aa94f","declaration":"export type OpenClawPluginHttpRouteHandler = OpenClawPluginHttpRouteHandler;","entrypoint":"plugin-entry","exportName":"OpenClawPluginHttpRouteHandler","importSpecifier":"openclaw/plugin-sdk/plugin-entry","kind":"type","recordType":"export"} @@ -3555,22 +3555,22 @@ {"closureHash":"0c3a6112c7f680fed5c23a712088c1190973f4bb8d95cae4c334952f332159ad","declaration":"export function createInteractiveConversationBindingHelpers(params: { registration: RegisteredInteractiveMetadata; senderId?: string; conversation: PluginBindingConversation; }): { requestConversationBinding: (binding?: PluginConversationBindingRequestParams) => Promise; detachConversationBinding: () => Promise<{ removed: boolean; }>; getCurrentConversationBinding: () => Promise; };","entrypoint":"plugin-runtime","exportName":"createInteractiveConversationBindingHelpers","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"function","recordType":"export"} {"closureHash":"fb50ceec196dacc19da2cb48813071d009170fcb1663d646715a7cfce9d6d956","declaration":"export function dispatchPluginInteractiveHandler(params: { channel: TRegistration[\"channel\"]; data: string; dedupeId?: string; onMatched?: () => Promise | void; invoke: (match: PluginInteractiveMatch) => Promise | TResult; afterInvoke?: (result: TResult) => Promise | void; }): Promise>;","entrypoint":"plugin-runtime","exportName":"dispatchPluginInteractiveHandler","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"function","recordType":"export"} {"closureHash":"f8ae3946d9eb9191511eaaf22ea17039397f69810a84c2b1cc8f717aa3dd669f","declaration":"export function executePluginCommand(params: { command: RegisteredPluginCommand; args?: string; senderId?: string; channel: string; channelId?: PluginCommandContext[\"channelId\"]; isAuthorizedSender: boolean; senderIsOwner?: boolean; gatewayClientScopes?: PluginCommandContext[\"gatewayClientScopes\"]; agentId?: string; sessionKey?: PluginCommandContext[\"sessionKey\"]; sessionId?: PluginCommandContext[\"sessionId\"]; sessionTarget?: PluginCommandContext[\"sessionTarget\"]; sessionFile?: PluginCommandContext[\"sessionFile\"]; authProfileId?: string; commandBody: string; config: OpenClawConfig; from?: PluginCommandContext[\"from\"]; to?: PluginCommandContext[\"to\"]; originatingTo?: string; accountId?: PluginCommandContext[\"accountId\"]; messageThreadId?: PluginCommandContext[\"messageThreadId\"]; threadParentId?: PluginCommandContext[\"threadParentId\"]; diagnosticsSessions?: PluginCommandContext[\"diagnosticsSessions\"]; diagnosticsUploadApproved?: PluginCommandContext[\"diagnosticsUploadApproved\"]; diagnosticsPreviewOnly?: PluginCommandContext[\"diagnosticsPreviewOnly\"]; diagnosticsPrivateRouted?: PluginCommandContext[\"diagnosticsPrivateRouted\"]; }): Promise;","entrypoint":"plugin-runtime","exportName":"executePluginCommand","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"function","recordType":"export"} -{"closureHash":"2874fe60764b5057ddfce11bd60762e56c459e209a4231cf51e83841bd2538c8","declaration":"export function getGlobalHookRunner(): HookRunner | null;","entrypoint":"plugin-runtime","exportName":"getGlobalHookRunner","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"function","recordType":"export"} +{"closureHash":"7e75fc04d621dc8d12f459d5b5b0c039a39b77c30c2b51af481e123c352f57b8","declaration":"export function getGlobalHookRunner(): HookRunner | null;","entrypoint":"plugin-runtime","exportName":"getGlobalHookRunner","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"function","recordType":"export"} {"closureHash":"db6583607237e4081814e2c5d4f8fb6f216ad3bbfe623bf16fc1a9c09c15f64b","declaration":"export function getPluginCommandSpecs(provider?: string, options?: PluginCommandSpecOptions): Array<{ name: string; description: string; descriptionLocalizations?: Record; acceptsArgs: boolean; }>;","entrypoint":"plugin-runtime","exportName":"getPluginCommandSpecs","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"function","recordType":"export"} -{"closureHash":"91c613217cbb338e0e730c4f6c38f90e3e8be2fa13e297aaa9367ced0f7175cf","declaration":"export function getPluginRuntimeGatewayRequestScope(): PluginRuntimeGatewayRequestScope | undefined;","entrypoint":"plugin-runtime","exportName":"getPluginRuntimeGatewayRequestScope","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"function","recordType":"export"} +{"closureHash":"9c258677db44aada8ecab3489c6f5447a3185f81720fb046716b9bbbc82671d3","declaration":"export function getPluginRuntimeGatewayRequestScope(): PluginRuntimeGatewayRequestScope | undefined;","entrypoint":"plugin-runtime","exportName":"getPluginRuntimeGatewayRequestScope","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"function","recordType":"export"} {"closureHash":"cfe277ce6de0c6ed50f1f54b66c889f6c95e91b058e8bcdc27aa37317a93a447","declaration":"export function listRegisteredPluginAgentPromptGuidance(params?: { surface?: AgentPromptSurfaceKind; includeLegacyGlobalGuidance?: boolean; }): string[];","entrypoint":"plugin-runtime","exportName":"listRegisteredPluginAgentPromptGuidance","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"function","recordType":"export"} {"closureHash":"4c5a738a44f00a08922564b9aeb35fe95015ea70f267d91f9a5da5de5308506e","declaration":"export function matchPluginCommand(commandBody: string, options?: { channel?: string; }): { command: RegisteredPluginCommand; args?: string; } | null;","entrypoint":"plugin-runtime","exportName":"matchPluginCommand","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"function","recordType":"export"} {"closureHash":"176b66826a142ae9ae4ecd0b9c44146ab484755f08b9baed4aa697b618484a41","declaration":"export function registerPluginCommand(pluginId: string, command: OpenClawPluginCommandDefinition, opts?: { pluginName?: string; pluginRoot?: string; allowReservedCommandNames?: boolean; allowOwnerStatusExposure?: boolean; }): CommandRegistrationResult;","entrypoint":"plugin-runtime","exportName":"registerPluginCommand","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"function","recordType":"export"} {"closureHash":"16986e5d431f584c2d5053289eca3d2225bbe47a92cdfbbc2af91b264a165846","declaration":"export function registerPluginInteractiveHandler(pluginId: string, registration: PluginInteractiveHandlerRegistration, opts?: { pluginName?: string; pluginRoot?: string; }): InteractiveRegistrationResult;","entrypoint":"plugin-runtime","exportName":"registerPluginInteractiveHandler","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"function","recordType":"export"} {"closureHash":"f20c07a48e2c949fbc889e7a32760f4e52339d9f6d3eab49e00ff249266e2396","declaration":"export function startLazyPluginServiceModule(params: { skipEnvVar?: string; overrideEnvVar?: string; validateOverrideSpecifier?: (specifier: string) => string; loadDefaultModule: () => Promise; loadOverrideModule?: (specifier: string) => Promise; startExportNames: string[]; stopExportNames?: string[]; }): Promise;","entrypoint":"plugin-runtime","exportName":"startLazyPluginServiceModule","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"function","recordType":"export"} {"closureHash":"bad43ffe69d1d9d6c92c79df4c388b3dda685013a92392daef456f1622ade659","declaration":"export type LazyPluginServiceHandle = LazyPluginServiceHandle;","entrypoint":"plugin-runtime","exportName":"LazyPluginServiceHandle","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"type","recordType":"export"} -{"closureHash":"baddda61cd7c006909d5364a531fc1d362afca4d789674b0af5f5175f339af9c","declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"plugin-runtime","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"type","recordType":"export"} +{"closureHash":"adad7f6d6c8f37f73c803f8decd56bc9db755e3449b59059de4cbef52f90f116","declaration":"export type OpenClawPluginApi = OpenClawPluginApi;","entrypoint":"plugin-runtime","exportName":"OpenClawPluginApi","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"type","recordType":"export"} {"closureHash":"365beb5cee974639c2f35fc7a39088721ca8e9c618442830298b98033e9c768c","declaration":"export type OpenClawPluginConfigSchema = OpenClawPluginConfigSchema;","entrypoint":"plugin-runtime","exportName":"OpenClawPluginConfigSchema","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"type","recordType":"export"} {"closureHash":"f06379ada10ce0eca4e66bdf978db2c0035e054a135dc044c6d831ac7797c08f","declaration":"export type PluginConversationBinding = PluginConversationBinding;","entrypoint":"plugin-runtime","exportName":"PluginConversationBinding","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"type","recordType":"export"} {"closureHash":"a1223d674b2b66918a576ae05b04318d7b8cbe9b1d3bc6dd7a08d1a4fa79b291","declaration":"export type PluginConversationBindingRequestParams = PluginConversationBindingRequestParams;","entrypoint":"plugin-runtime","exportName":"PluginConversationBindingRequestParams","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"type","recordType":"export"} {"closureHash":"93c034724a937bb1239a3b4a386a20ac75fbcf66229842cc4c702c3360409e4c","declaration":"export type PluginConversationBindingRequestResult = PluginConversationBindingRequestResult;","entrypoint":"plugin-runtime","exportName":"PluginConversationBindingRequestResult","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"type","recordType":"export"} {"closureHash":"590c148a7b82d14242a172bee5027840ddd5366025200e48704ef4ae8f4bf0ee","declaration":"export type PluginInteractiveRegistration = PluginInteractiveRegistration;","entrypoint":"plugin-runtime","exportName":"PluginInteractiveRegistration","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"type","recordType":"export"} -{"closureHash":"2cea6ec6d79e6fd4291233833057d122a7e96e2838c06409312f57d55734d4ad","declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"plugin-runtime","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"type","recordType":"export"} +{"closureHash":"ee07774fb1d0711bbe9a5d9f49bde457bfb0169000423e58c5a4da432d68f888","declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"plugin-runtime","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"type","recordType":"export"} {"closureHash":"f16f4b33d2dd78e5d5da7b1aaeee0441ab35cd232b032e8a33219def7cf65f0f","declaration":"export type RuntimeLogger = RuntimeLogger;","entrypoint":"plugin-runtime","exportName":"RuntimeLogger","importSpecifier":"openclaw/plugin-sdk/plugin-runtime","kind":"type","recordType":"export"} {"category":null,"entrypoint":"provider-auth","importSpecifier":"openclaw/plugin-sdk/provider-auth","recordType":"module"} {"closureHash":"d5f31c750f1d545b3a51177ba4a008d6cf646165a8fc0c0c1328fa9999b8d6e2","declaration":"export function applyAuthProfileConfig(cfg: OpenClawConfig, params: { profileId: string; provider: string; mode: \"api_key\" | \"aws-sdk\" | \"oauth\" | \"token\"; email?: string; displayName?: string; preferProfileFirst?: boolean; }): OpenClawConfig;","entrypoint":"provider-auth","exportName":"applyAuthProfileConfig","importSpecifier":"openclaw/plugin-sdk/provider-auth","kind":"function","recordType":"export"} @@ -3654,10 +3654,10 @@ {"closureHash":"e66adcb55dec79be73a52bc76594b7e9210fd93c69a85b56098fbb58cecbb354","declaration":"export type WriteOAuthCredentialsOptions = WriteOAuthCredentialsOptions;","entrypoint":"provider-auth","exportName":"WriteOAuthCredentialsOptions","importSpecifier":"openclaw/plugin-sdk/provider-auth","kind":"type","recordType":"export"} {"category":null,"entrypoint":"provider-catalog-runtime","importSpecifier":"openclaw/plugin-sdk/provider-catalog-runtime","recordType":"module"} {"closureHash":"b5665596a3f011454a5614681513516acd50b6c749536c43842d811980cf7ad3","declaration":"export function augmentModelCatalogWithProviderPlugins(params: { config?: OpenClawConfig; workspaceDir?: string; env?: NodeJS.ProcessEnv; metadataSnapshot?: PluginMetadataSnapshot; context: ProviderAugmentModelCatalogContext; }): Promise;","entrypoint":"provider-catalog-runtime","exportName":"augmentModelCatalogWithProviderPlugins","importSpecifier":"openclaw/plugin-sdk/provider-catalog-runtime","kind":"function","recordType":"export"} -{"closureHash":"eebb18d58e8df44f277612353bb06d4754d5e8488798a133c41193167ca94a0f","declaration":"export function isPluginProvidersLoadInFlight(params: Parameters[0]): boolean;","entrypoint":"provider-catalog-runtime","exportName":"isPluginProvidersLoadInFlight","importSpecifier":"openclaw/plugin-sdk/provider-catalog-runtime","kind":"function","recordType":"export"} -{"closureHash":"87d7c11a6995f68fd86bf61db893883a0a9667275fac77e1dcdb7f33b94d842a","declaration":"export function resolveCatalogHookProviderPluginIds(params: { config?: PluginLoadOptions[\"config\"]; workspaceDir?: string; env?: PluginLoadOptions[\"env\"]; metadataSnapshot?: ProviderManifestLoadParams[\"metadataSnapshot\"]; }): string[];","entrypoint":"provider-catalog-runtime","exportName":"resolveCatalogHookProviderPluginIds","importSpecifier":"openclaw/plugin-sdk/provider-catalog-runtime","kind":"function","recordType":"export"} -{"closureHash":"84dd18db4c2caa760eeb31f8f85f35990d122979c6f250d38a1a58954c725d23","declaration":"export function resolveOwningPluginIdsForProvider(params: { provider: string; config?: PluginLoadOptions[\"config\"]; workspaceDir?: string; env?: PluginLoadOptions[\"env\"]; manifestRegistry?: PluginManifestRegistry; metadataSnapshot?: Pick; }): string[] | undefined;","entrypoint":"provider-catalog-runtime","exportName":"resolveOwningPluginIdsForProvider","importSpecifier":"openclaw/plugin-sdk/provider-catalog-runtime","kind":"function","recordType":"export"} -{"closureHash":"9e84b00a32bcecae4c70f529f2e8e6e15851494eda86cbd4ba06ade6d71ba06e","declaration":"export function resolvePluginProviders(params: { config?: PluginLoadOptions[\"config\"]; workspaceDir?: string; env?: PluginLoadOptions[\"env\"]; bundledProviderVitestCompat?: boolean; onlyPluginIds?: string[]; providerRefs?: readonly string[]; modelRefs?: readonly string[]; activate?: boolean; cache?: boolean; applyAutoEnable?: boolean; pluginSdkResolution?: PluginLoadOptions[\"pluginSdkResolution\"]; mode?: \"runtime\" | \"setup\"; includeUntrustedWorkspacePlugins?: boolean; pluginMetadataSnapshot?: PluginMetadataRegistryView; skipIfLoadInFlight?: boolean; }): ProviderPlugin[];","entrypoint":"provider-catalog-runtime","exportName":"resolvePluginProviders","importSpecifier":"openclaw/plugin-sdk/provider-catalog-runtime","kind":"function","recordType":"export"} +{"closureHash":"d9c83bb902e9d3831ac9a6ca19b522eeb868adf0e5aff3408e18809ebcd10eb2","declaration":"export function isPluginProvidersLoadInFlight(params: Parameters[0]): boolean;","entrypoint":"provider-catalog-runtime","exportName":"isPluginProvidersLoadInFlight","importSpecifier":"openclaw/plugin-sdk/provider-catalog-runtime","kind":"function","recordType":"export"} +{"closureHash":"8d602ec42aad0237037a6945df410074ff6869142b1df77d82ed0320ab878186","declaration":"export function resolveCatalogHookProviderPluginIds(params: { config?: PluginLoadOptions[\"config\"]; workspaceDir?: string; env?: PluginLoadOptions[\"env\"]; metadataSnapshot?: ProviderManifestLoadParams[\"metadataSnapshot\"]; }): string[];","entrypoint":"provider-catalog-runtime","exportName":"resolveCatalogHookProviderPluginIds","importSpecifier":"openclaw/plugin-sdk/provider-catalog-runtime","kind":"function","recordType":"export"} +{"closureHash":"2b4d962f3c4fc7411481bd475510d3ca03515f395624b78466d75125bf39ff08","declaration":"export function resolveOwningPluginIdsForProvider(params: { provider: string; config?: PluginLoadOptions[\"config\"]; workspaceDir?: string; env?: PluginLoadOptions[\"env\"]; manifestRegistry?: PluginManifestRegistry; metadataSnapshot?: Pick; }): string[] | undefined;","entrypoint":"provider-catalog-runtime","exportName":"resolveOwningPluginIdsForProvider","importSpecifier":"openclaw/plugin-sdk/provider-catalog-runtime","kind":"function","recordType":"export"} +{"closureHash":"c2ec61c0a40f4fa3ec78b9f77938fbda98ac23347131172022ac5c6877f84ba5","declaration":"export function resolvePluginProviders(params: { config?: PluginLoadOptions[\"config\"]; workspaceDir?: string; env?: PluginLoadOptions[\"env\"]; bundledProviderVitestCompat?: boolean; onlyPluginIds?: string[]; providerRefs?: readonly string[]; modelRefs?: readonly string[]; activate?: boolean; cache?: boolean; applyAutoEnable?: boolean; pluginSdkResolution?: PluginLoadOptions[\"pluginSdkResolution\"]; mode?: \"runtime\" | \"setup\"; includeUntrustedWorkspacePlugins?: boolean; pluginMetadataSnapshot?: PluginMetadataRegistryView; skipIfLoadInFlight?: boolean; }): ProviderPlugin[];","entrypoint":"provider-catalog-runtime","exportName":"resolvePluginProviders","importSpecifier":"openclaw/plugin-sdk/provider-catalog-runtime","kind":"function","recordType":"export"} {"category":null,"entrypoint":"proxy-capture","importSpecifier":"openclaw/plugin-sdk/proxy-capture","recordType":"module"} {"closureHash":"d0e4e026d736bc00b1758d1089c44c3c5f3a09c7254291584de8cb297365804c","declaration":"export function acquireDebugProxyCaptureStore(dbPath: string, blobDir: string): { store: LegacyDebugProxyCaptureStore; release: () => void; };\nexport function acquireDebugProxyCaptureStore(options?: DebugProxyCaptureStoreOptions): { store: SharedDebugProxyCaptureStore; release: () => void; };","entrypoint":"proxy-capture","exportName":"acquireDebugProxyCaptureStore","importSpecifier":"openclaw/plugin-sdk/proxy-capture","kind":"function","recordType":"export"} {"closureHash":"d41cbb9de51b7aee1c6cf8c713b0bc44f27ac926fbb6422c05726f196d11964e","declaration":"export function captureHttpExchange(params: { url: string; method: string; requestHeaders?: Headers | Record | undefined; requestBody?: BodyInit | Buffer | string | null; response: Response; transport?: \"http\" | \"sse\"; flowId?: string; meta?: Record; }, resolved?: DebugProxySettings, deps?: DebugProxyCaptureRuntimeDeps): void;","entrypoint":"proxy-capture","exportName":"captureHttpExchange","importSpecifier":"openclaw/plugin-sdk/proxy-capture","kind":"function","recordType":"export"} @@ -3693,11 +3693,11 @@ {"closureHash":"d75cb355b23e89fd45f6948ffa5df92b066be54cfd71e78f7db7a3419bfa7114","declaration":"export function finalizeInboundContext>(ctx: T, opts?: FinalizeInboundContextOptions): T & FinalizedMsgContext & CanonicalInboundText;","entrypoint":"reply-dispatch-runtime","exportName":"finalizeInboundContext","importSpecifier":"openclaw/plugin-sdk/reply-dispatch-runtime","kind":"function","recordType":"export"} {"closureHash":"b3f4adaa19f9703051c85d1f567f8f01e7ba8ca4444c826d3cf9c60bf2f8dbec","declaration":"export function generateConversationLabel(params: ConversationLabelParams): Promise;","entrypoint":"reply-dispatch-runtime","exportName":"generateConversationLabel","importSpecifier":"openclaw/plugin-sdk/reply-dispatch-runtime","kind":"function","recordType":"export"} {"closureHash":"00b39d28eb3338c9356418e4914c4d8a1bee35e3b160f12ad9bd434912055da1","declaration":"export function resolveChunkMode(cfg: OpenClawConfig | undefined, provider?: TextChunkProvider, accountId?: string | null): ChunkMode;","entrypoint":"reply-dispatch-runtime","exportName":"resolveChunkMode","importSpecifier":"openclaw/plugin-sdk/reply-dispatch-runtime","kind":"function","recordType":"export"} -{"closureHash":"b5d6c3cf9be4548750a54daf182228b93cfa692ef7264f8c4fbbe8d72c6ebee7","declaration":"export const dispatchReplyWithBufferedBlockDispatcher: DispatchReplyWithBufferedBlockDispatcher;","entrypoint":"reply-dispatch-runtime","exportName":"dispatchReplyWithBufferedBlockDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-dispatch-runtime","kind":"const","recordType":"export"} -{"closureHash":"9e7009e664d98665dea101360fcdad9ba3733983c41a7cb726dc4f5a82446cd1","declaration":"export const dispatchReplyWithDispatcher: DispatchReplyWithDispatcher;","entrypoint":"reply-dispatch-runtime","exportName":"dispatchReplyWithDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-dispatch-runtime","kind":"const","recordType":"export"} +{"closureHash":"252130d0c836fbc608878c2d7d7cc07dd05f4dac30ec10a63cf6c1c8e9c82c47","declaration":"export const dispatchReplyWithBufferedBlockDispatcher: DispatchReplyWithBufferedBlockDispatcher;","entrypoint":"reply-dispatch-runtime","exportName":"dispatchReplyWithBufferedBlockDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-dispatch-runtime","kind":"const","recordType":"export"} +{"closureHash":"42fc7032e02d778b417c4a73d5a7649312782be73d66a973348190967fecfc8c","declaration":"export const dispatchReplyWithDispatcher: DispatchReplyWithDispatcher;","entrypoint":"reply-dispatch-runtime","exportName":"dispatchReplyWithDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-dispatch-runtime","kind":"const","recordType":"export"} {"closureHash":"6c907ee25b775b850dfb0961e1505f88e85159971379eb0e00d5eea51b284635","declaration":"export type CommandTurnContext = CommandTurnContext;","entrypoint":"reply-dispatch-runtime","exportName":"CommandTurnContext","importSpecifier":"openclaw/plugin-sdk/reply-dispatch-runtime","kind":"type","recordType":"export"} -{"closureHash":"8b71571673ed9333cfbfd53d2438f4cc122bbd1e8525910902c91a79ec2788d8","declaration":"export type DispatchReplyWithBufferedBlockDispatcher = DispatchReplyWithBufferedBlockDispatcher;","entrypoint":"reply-dispatch-runtime","exportName":"DispatchReplyWithBufferedBlockDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-dispatch-runtime","kind":"type","recordType":"export"} -{"closureHash":"e85eaa1b297d0cc738e601f2378f781887ab4dfcd604e4405932d31822ad8d46","declaration":"export type DispatchReplyWithDispatcher = DispatchReplyWithDispatcher;","entrypoint":"reply-dispatch-runtime","exportName":"DispatchReplyWithDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-dispatch-runtime","kind":"type","recordType":"export"} +{"closureHash":"a46d7384b6e2aa0cdc3a6c0a3f9e4b76360eb35863366939a3f2613a5483a2be","declaration":"export type DispatchReplyWithBufferedBlockDispatcher = DispatchReplyWithBufferedBlockDispatcher;","entrypoint":"reply-dispatch-runtime","exportName":"DispatchReplyWithBufferedBlockDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-dispatch-runtime","kind":"type","recordType":"export"} +{"closureHash":"310356bdd7855436d8839b0a738240d1a1d8f600e211d2dc83009edc92c6ab1d","declaration":"export type DispatchReplyWithDispatcher = DispatchReplyWithDispatcher;","entrypoint":"reply-dispatch-runtime","exportName":"DispatchReplyWithDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-dispatch-runtime","kind":"type","recordType":"export"} {"closureHash":"0d3bf245385d3b70f6d85138ad89f9bbe9c43df378b27c18c6f8168ad7caec93","declaration":"export type ReplyPayload = ReplyPayload;","entrypoint":"reply-dispatch-runtime","exportName":"ReplyPayload","importSpecifier":"openclaw/plugin-sdk/reply-dispatch-runtime","kind":"type","recordType":"export"} {"category":null,"entrypoint":"reply-history","importSpecifier":"openclaw/plugin-sdk/reply-history","recordType":"module"} {"closureHash":"e903bc1c38ce4fc1b15cec63e7355300c4ce71783fc766da7cf2dd18a9de5fc7","declaration":"export function buildHistoryContext(params: { historyText: string; currentMessage: string; lineBreak?: string; }): string;","entrypoint":"reply-history","exportName":"buildHistoryContext","importSpecifier":"openclaw/plugin-sdk/reply-history","kind":"function","recordType":"export"} @@ -3762,14 +3762,14 @@ {"closureHash":"1a1372e0024b162bf51e36c9d85157d67b2bf185b82a704a85eb9b3b1999a1ba","declaration":"export function chunkTextWithMode(text: string, limit: number, mode: ChunkMode): string[];","entrypoint":"reply-runtime","exportName":"chunkTextWithMode","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} {"closureHash":"d2a3f9dd1ffc16941bb39360012138d3a3cbcf5e8beb08106182831b1c269054","declaration":"export function createInboundDebouncer(params: InboundDebounceCreateParams): { enqueue: (item: T) => Promise; flushKey: (key: string) => Promise; cancelKey: (key: string) => boolean; drain: () => Promise; };","entrypoint":"reply-runtime","exportName":"createInboundDebouncer","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} {"closureHash":"a29840f2fa36fb88ccf967b5b3a1e6a7d3a113310ad63daa878dd907bb1fe316","declaration":"export function createReplyDispatcher(options: ReplyDispatcherOptions): ReplyDispatcher;","entrypoint":"reply-runtime","exportName":"createReplyDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} -{"closureHash":"89090f6cf823e1e389885d0ee127f15632c20917afc956be061d6ab19960d2da","declaration":"export function createReplyDispatcherWithTyping(options: ReplyDispatcherWithTypingOptions): ReplyDispatcherWithTypingResult;","entrypoint":"reply-runtime","exportName":"createReplyDispatcherWithTyping","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} +{"closureHash":"b59da57b5873618a5c24671fe7bfe12c53c46caf9c9d21441ff1546b9b4c41a5","declaration":"export function createReplyDispatcherWithTyping(options: ReplyDispatcherWithTypingOptions): ReplyDispatcherWithTypingResult;","entrypoint":"reply-runtime","exportName":"createReplyDispatcherWithTyping","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} {"closureHash":"0278a79e0d38060a68e7a421fe438d438964fd3516146c2361bdb771e22bad8c","declaration":"export function createReplyReferencePlanner(options: { replyToMode: ReplyToMode; existingId?: string; startId?: string; allowReference?: boolean; hasReplied?: boolean; }): ReplyReferencePlanner;","entrypoint":"reply-runtime","exportName":"createReplyReferencePlanner","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} -{"closureHash":"54baaca24f6455583cf922eb56b39b67222b21b3a7b8176244a7bb16fb8c8052","declaration":"export function dispatchInboundMessage(params: { ctx: MsgContext | FinalizedMsgContext; cfg: OpenClawConfig; dispatcher: ReplyDispatcher; toolsAllow?: string[]; replyOptions?: InternalDispatchReplyOptions; replyResolver?: InternalGetReplyFromConfig; onSessionMetadataChanges?: (changes: CommandSessionMetadataChange[]) => void; replyPayloadRunState?: ReplyPayloadRunState; outboundHooks?: \"enabled\" | \"disabled\"; onSettled?: () => void | Promise; }): Promise;","entrypoint":"reply-runtime","exportName":"dispatchInboundMessage","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} -{"closureHash":"a129c8bf1be02d2cdbb61b4be831cb941785e05fcca8ad8b17a04304b3b07817","declaration":"export function dispatchInboundMessageWithBufferedDispatcher(params: BufferedInboundDispatcherParams): Promise;","entrypoint":"reply-runtime","exportName":"dispatchInboundMessageWithBufferedDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} -{"closureHash":"3e83d167dd848e2d6d17daccf1bdbacfb3d03f0f51232b0c812d863bf9735593","declaration":"export function dispatchInboundMessageWithDispatcher(params: { ctx: MsgContext | FinalizedMsgContext; cfg: OpenClawConfig; dispatcherOptions: ReplyDispatcherOptions; toolsAllow?: string[]; replyOptions?: InternalDispatchReplyOptions; replyResolver?: InternalGetReplyFromConfig; }): Promise;","entrypoint":"reply-runtime","exportName":"dispatchInboundMessageWithDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} +{"closureHash":"4fca7d8aa2ebbc4552fa6c52ec3f41cff2940006adb99b2d82fc8055d7784dc2","declaration":"export function dispatchInboundMessage(params: { ctx: MsgContext | FinalizedMsgContext; cfg: OpenClawConfig; dispatcher: ReplyDispatcher; toolsAllow?: string[]; replyOptions?: InternalDispatchReplyOptions; replyResolver?: InternalGetReplyFromConfig; onSessionMetadataChanges?: (changes: CommandSessionMetadataChange[]) => void; replyPayloadRunState?: ReplyPayloadRunState; outboundHooks?: \"enabled\" | \"disabled\"; onSettled?: () => void | Promise; }): Promise;","entrypoint":"reply-runtime","exportName":"dispatchInboundMessage","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} +{"closureHash":"1c2858f8132d7646672dcf7ae0d62f3de73a6acda8f0d7297d96d6cfada1b74c","declaration":"export function dispatchInboundMessageWithBufferedDispatcher(params: BufferedInboundDispatcherParams): Promise;","entrypoint":"reply-runtime","exportName":"dispatchInboundMessageWithBufferedDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} +{"closureHash":"b8ed1173038e7e11ee88b34c79c2bb86630c66d3400ee8ed198a4f4e745a4ac2","declaration":"export function dispatchInboundMessageWithDispatcher(params: { ctx: MsgContext | FinalizedMsgContext; cfg: OpenClawConfig; dispatcherOptions: ReplyDispatcherOptions; toolsAllow?: string[]; replyOptions?: InternalDispatchReplyOptions; replyResolver?: InternalGetReplyFromConfig; }): Promise;","entrypoint":"reply-runtime","exportName":"dispatchInboundMessageWithDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} {"closureHash":"d75cb355b23e89fd45f6948ffa5df92b066be54cfd71e78f7db7a3419bfa7114","declaration":"export function finalizeInboundContext>(ctx: T, opts?: FinalizeInboundContextOptions): T & FinalizedMsgContext & CanonicalInboundText;","entrypoint":"reply-runtime","exportName":"finalizeInboundContext","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} {"closureHash":"b3f4adaa19f9703051c85d1f567f8f01e7ba8ca4444c826d3cf9c60bf2f8dbec","declaration":"export function generateConversationLabel(params: ConversationLabelParams): Promise;","entrypoint":"reply-runtime","exportName":"generateConversationLabel","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} -{"closureHash":"689ff0e44c6a8f34b1fec27388e216fc19631a70a1aa179a27f48ea59c5dc815","declaration":"export function getReplyFromConfig(ctx: MsgContext, opts?: GetReplyOptions, configOverride?: OpenClawConfig): Promise;","entrypoint":"reply-runtime","exportName":"getReplyFromConfig","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} +{"closureHash":"8cf4877f12b40420e618fb29e1c43c3d252ae5f8080a4ba00509ff505fb42a75","declaration":"export function getReplyFromConfig(ctx: MsgContext, opts?: GetReplyOptions, configOverride?: OpenClawConfig): Promise;","entrypoint":"reply-runtime","exportName":"getReplyFromConfig","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} {"closureHash":"bb9481f2e5ccbae9b15c55081812cde0775fd240bc6c71770778d6db8d6c4a2d","declaration":"export function isAbortRequestText(text?: string, options?: CommandNormalizeOptions): boolean;","entrypoint":"reply-runtime","exportName":"isAbortRequestText","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} {"closureHash":"5db5d6c2dc280183c8c2ad484483dbd65275a6ef5488cb3c25dce017e871b6c2","declaration":"export function isBtwRequestText(text?: string, options?: CommandNormalizeOptions): boolean;","entrypoint":"reply-runtime","exportName":"isBtwRequestText","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} {"closureHash":"413880c53d03b5799fd79633b5f24dd7d5076976535b98550ddaac121b00d700","declaration":"export function isSilentReplyText(text: string | undefined, token?: string): boolean;","entrypoint":"reply-runtime","exportName":"isSilentReplyText","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"function","recordType":"export"} @@ -3787,15 +3787,15 @@ {"closureHash":"be781caf196c49db72b18eaf346d967c09cc0fe0c410496f2bfc1bf2f6f8eef7","declaration":"export const HEARTBEAT_PROMPT: \"Follow the heartbeat monitor scratch context when provided. Recurring tasks are automations; create or change their schedules with the automations tool, not heartbeat scratch. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.\";","entrypoint":"reply-runtime","exportName":"HEARTBEAT_PROMPT","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"const","recordType":"export"} {"closureHash":"d6230a363d069736f57476bc7371b93fe8f68f57a4edc3bdff025c7669629743","declaration":"export const HEARTBEAT_TOKEN: \"HEARTBEAT_OK\";","entrypoint":"reply-runtime","exportName":"HEARTBEAT_TOKEN","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"const","recordType":"export"} {"closureHash":"c8d9faa79ecc7382a0a292d949fea76b3ee2a6308b0fd7d87da84d7847ed805b","declaration":"export const SILENT_REPLY_TOKEN: \"NO_REPLY\";","entrypoint":"reply-runtime","exportName":"SILENT_REPLY_TOKEN","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"const","recordType":"export"} -{"closureHash":"b5d6c3cf9be4548750a54daf182228b93cfa692ef7264f8c4fbbe8d72c6ebee7","declaration":"export const dispatchReplyWithBufferedBlockDispatcher: DispatchReplyWithBufferedBlockDispatcher;","entrypoint":"reply-runtime","exportName":"dispatchReplyWithBufferedBlockDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"const","recordType":"export"} -{"closureHash":"9e7009e664d98665dea101360fcdad9ba3733983c41a7cb726dc4f5a82446cd1","declaration":"export const dispatchReplyWithDispatcher: DispatchReplyWithDispatcher;","entrypoint":"reply-runtime","exportName":"dispatchReplyWithDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"const","recordType":"export"} +{"closureHash":"252130d0c836fbc608878c2d7d7cc07dd05f4dac30ec10a63cf6c1c8e9c82c47","declaration":"export const dispatchReplyWithBufferedBlockDispatcher: DispatchReplyWithBufferedBlockDispatcher;","entrypoint":"reply-runtime","exportName":"dispatchReplyWithBufferedBlockDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"const","recordType":"export"} +{"closureHash":"42fc7032e02d778b417c4a73d5a7649312782be73d66a973348190967fecfc8c","declaration":"export const dispatchReplyWithDispatcher: DispatchReplyWithDispatcher;","entrypoint":"reply-runtime","exportName":"dispatchReplyWithDispatcher","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"const","recordType":"export"} {"closureHash":"637e2c34a20cf4a423372af22cd046bde2dd8aebc042835882f9cc15cdde8572","declaration":"export type BlockReplyContext = BlockReplyContext;","entrypoint":"reply-runtime","exportName":"BlockReplyContext","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"type","recordType":"export"} {"closureHash":"abd46ad532e63ff006c75f1e73913aaefe11578e4ba7237ca7683526cae150bd","declaration":"export type ChannelStructuredContextEntry = ChannelStructuredContextEntry;","entrypoint":"reply-runtime","exportName":"ChannelStructuredContextEntry","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"type","recordType":"export"} {"closureHash":"4c544030d69a87c7592778a4063380509d30ed980ea58d45eb08bb7d34803166","declaration":"export type ChunkMode = ChunkMode;","entrypoint":"reply-runtime","exportName":"ChunkMode","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"type","recordType":"export"} {"closureHash":"6c907ee25b775b850dfb0961e1505f88e85159971379eb0e00d5eea51b284635","declaration":"export type CommandTurnContext = CommandTurnContext;","entrypoint":"reply-runtime","exportName":"CommandTurnContext","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"type","recordType":"export"} {"closureHash":"64c5a26b9f26819ed1f3b6d9fc42f237a42e0c452b0465e8934fe5a647a7d7ee","declaration":"export type ConversationLabelParams = ConversationLabelParams;","entrypoint":"reply-runtime","exportName":"ConversationLabelParams","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"type","recordType":"export"} {"closureHash":"6a0c40c48573373ed610ee26d100a0e36d57d6783b8330ab86cb62540f90af5b","declaration":"export type FinalizedMsgContext = FinalizedMsgContext;","entrypoint":"reply-runtime","exportName":"FinalizedMsgContext","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"type","recordType":"export"} -{"closureHash":"571e132d48da104c9d4f9f0c943042c4722236ecbd93192abbab0ead016ae2e5","declaration":"export type GetReplyOptions = GetReplyOptions;","entrypoint":"reply-runtime","exportName":"GetReplyOptions","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"type","recordType":"export"} +{"closureHash":"6a65a814ed7defa1b694b2ab5168e6fb587ee6fbc64e5d81b4609f07109032c7","declaration":"export type GetReplyOptions = GetReplyOptions;","entrypoint":"reply-runtime","exportName":"GetReplyOptions","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"type","recordType":"export"} {"closureHash":"736871c9e9023147d056eb727db94e0a32c54feb199e433f4051f16d9055a823","declaration":"export type MsgContext = MsgContext;","entrypoint":"reply-runtime","exportName":"MsgContext","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"type","recordType":"export"} {"closureHash":"ad76450daee096e3e34c580699444b2282d097b933d298b75863fe3c2605d9ce","declaration":"export type ReplyDispatchBeforeDeliverOptions = ReplyDispatchBeforeDeliverOptions;","entrypoint":"reply-runtime","exportName":"ReplyDispatchBeforeDeliverOptions","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"type","recordType":"export"} {"closureHash":"bdf80393f17af29918794f79f532906f2cbaf3e6f10aea84fac884be7b38e049","declaration":"export type ReplyDispatchKind = ReplyDispatchKind;","entrypoint":"reply-runtime","exportName":"ReplyDispatchKind","importSpecifier":"openclaw/plugin-sdk/reply-runtime","kind":"type","recordType":"export"} @@ -3906,7 +3906,7 @@ {"closureHash":"47c7a11095835696862fe7b72fccf28736af6308347543c26b5b2f538d76860b","declaration":"export const GROUP_POLICY_BLOCKED_LABEL: { readonly group: \"group messages\"; readonly guild: \"guild messages\"; readonly room: \"room messages\"; readonly channel: \"channel messages\"; readonly space: \"space messages\";};","entrypoint":"runtime-group-policy","exportName":"GROUP_POLICY_BLOCKED_LABEL","importSpecifier":"openclaw/plugin-sdk/runtime-group-policy","kind":"const","recordType":"export"} {"category":"runtime","entrypoint":"runtime-store","importSpecifier":"openclaw/plugin-sdk/runtime-store","recordType":"module"} {"closureHash":"e11d2c2694b927c79b6e07789be6bb56269d5ef1ec95b395a6e9c46f43883cbc","declaration":"export function createPluginRuntimeStore(errorMessage: string): { setRuntime: (next: T) => void; clearRuntime: () => void; tryGetRuntime: () => T | null; getRuntime: () => T; };\nexport function createPluginRuntimeStore(options: PluginRuntimeStoreOptions): { setRuntime: (next: T) => void; clearRuntime: () => void; tryGetRuntime: () => T | null; getRuntime: () => T; };","entrypoint":"runtime-store","exportName":"createPluginRuntimeStore","importSpecifier":"openclaw/plugin-sdk/runtime-store","kind":"function","recordType":"export"} -{"closureHash":"2cea6ec6d79e6fd4291233833057d122a7e96e2838c06409312f57d55734d4ad","declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"runtime-store","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/runtime-store","kind":"type","recordType":"export"} +{"closureHash":"ee07774fb1d0711bbe9a5d9f49bde457bfb0169000423e58c5a4da432d68f888","declaration":"export type PluginRuntime = PluginRuntime;","entrypoint":"runtime-store","exportName":"PluginRuntime","importSpecifier":"openclaw/plugin-sdk/runtime-store","kind":"type","recordType":"export"} {"category":null,"entrypoint":"secret-file","importSpecifier":"openclaw/plugin-sdk/secret-file","recordType":"module"} {"closureHash":null,"declaration":"export function createSecretFileAtomic(params: SecretFileWriteParams): Promise;","entrypoint":"secret-file","exportName":"createSecretFileAtomic","importSpecifier":"openclaw/plugin-sdk/secret-file","kind":"function","recordType":"export"} {"closureHash":null,"declaration":"export function readSecretFile(filePath: string, label: string, options?: SecretFileReadOptions): Promise;","entrypoint":"secret-file","exportName":"readSecretFile","importSpecifier":"openclaw/plugin-sdk/secret-file","kind":"function","recordType":"export"} @@ -4017,8 +4017,8 @@ {"closureHash":"a7a32cdc228b5a4b027448fe2e79e332d7b5c5ff50f2afdcb9684bf8eb3e1fce","declaration":"export function deleteSessionUpstreamLink(sessionKey: string, agentId: string, options?: OpenClawStateDatabaseOptions): void;","entrypoint":"session-catalog","exportName":"deleteSessionUpstreamLink","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"function","recordType":"export"} {"closureHash":"194cb8ed04679bd319517a0e228373ac6da06736200610a11a4d274339c92f87","declaration":"export function importSessionCatalogHistory(params: { catalogId: string; threadId: string; read: (params: { cursor?: string; limit: number; }) => Promise; sessionId: string; sessionKey: string; agentId: string; cwd?: string; config: OpenClawConfig; }): Promise;","entrypoint":"session-catalog","exportName":"importSessionCatalogHistory","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"function","recordType":"export"} {"closureHash":"fb9a9c6a327c81eb3ccfb3550b0d6a3c4b62d7db43f5c248d41ff2abecf0bbc2","declaration":"export function isExternalUserText(probe: SessionUpstreamProbe, text: string | undefined): boolean;","entrypoint":"session-catalog","exportName":"isExternalUserText","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"function","recordType":"export"} -{"closureHash":"47ca2cc5898cf14730a23a2646658faaa7919f9877e9f24692b2f1d94cb19151","declaration":"export function listAdoptedSessionCatalogSessions(params: { config: OpenClawConfig; pluginId: string; runtime: PluginRuntime; sessionEntries?: SessionCatalogEntrySnapshot; sourceFromEntry: (entry: SessionCatalogEntry) => SessionCatalogAdoptedSource | undefined; }): Map;","entrypoint":"session-catalog","exportName":"listAdoptedSessionCatalogSessions","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"function","recordType":"export"} -{"closureHash":"4b0972058d25569cda78e1785aa0c1ea423936f8fc26c6c356be2eafae637966","declaration":"export function listSessionCatalogEntries(params: { config: OpenClawConfig; runtime: PluginRuntime; sessionEntries?: SessionCatalogEntrySnapshot; }): SessionCatalogAgentEntry[];","entrypoint":"session-catalog","exportName":"listSessionCatalogEntries","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"function","recordType":"export"} +{"closureHash":"39a8a09c68cd567c0387d3563aacd9abc7b9f44240979dca0b4f58838142701d","declaration":"export function listAdoptedSessionCatalogSessions(params: { config: OpenClawConfig; pluginId: string; runtime: PluginRuntime; sessionEntries?: SessionCatalogEntrySnapshot; sourceFromEntry: (entry: SessionCatalogEntry) => SessionCatalogAdoptedSource | undefined; }): Map;","entrypoint":"session-catalog","exportName":"listAdoptedSessionCatalogSessions","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"function","recordType":"export"} +{"closureHash":"ab70fc15820a7c2ec431822f6dcd0dd66ce74114506a7e3fdf2c87296fb14644","declaration":"export function listSessionCatalogEntries(params: { config: OpenClawConfig; runtime: PluginRuntime; sessionEntries?: SessionCatalogEntrySnapshot; }): SessionCatalogAgentEntry[];","entrypoint":"session-catalog","exportName":"listSessionCatalogEntries","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"function","recordType":"export"} {"closureHash":"bcb164340d2d8ff229bd4bb7c68126cfc44cfb171a76f363ef7c78c1cdf16f37","declaration":"export function normalizeUserText(text: string): string;","entrypoint":"session-catalog","exportName":"normalizeUserText","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"function","recordType":"export"} {"closureHash":"7fdcd1b85ee1e56ea8faf0afba025d3a9be0a34a8b7fda9f5f9ead922729ecdc","declaration":"export function sessionCatalogAdoptedSessionKey(prefix: string, source: string): string;","entrypoint":"session-catalog","exportName":"sessionCatalogAdoptedSessionKey","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"function","recordType":"export"} {"closureHash":"1e09ce9731a5b5932ec01307e90f9ab93ec0a100616a2a6f3b6416b768e5170b","declaration":"export function sessionCatalogAdoptedSourceKey(hostId: string, threadId: string): string;","entrypoint":"session-catalog","exportName":"sessionCatalogAdoptedSourceKey","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"function","recordType":"export"} @@ -4032,9 +4032,9 @@ {"closureHash":"1b1c2b933616e206af0fa0f9d5f50435c041013b9699e19891c1117af32f2d42","declaration":"export type SessionCatalogDescriptor = { id: string; capabilities: { createSession?: { startTerminal?: boolean | undefined; model: string; } | undefined; openTerminal?: boolean | undefined; archive: boolean; continueSession: boolean; }; label: string;};","entrypoint":"session-catalog","exportName":"SessionCatalogDescriptor","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"type","recordType":"export"} {"closureHash":"1c83786a73f37881bd0202129ee916e9d0204393584da802152ba83f5fc6d1ec","declaration":"export type SessionCatalogEntrySnapshot = SessionCatalogEntrySnapshot;","entrypoint":"session-catalog","exportName":"SessionCatalogEntrySnapshot","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"type","recordType":"export"} {"closureHash":"7761b7c4cccd9df93de1309fe9544bc17ed08fe87f1d833d621f335d52a78512","declaration":"export type SessionCatalogHost = { error?: { message: string; code: string; } | undefined; nodeId?: string | undefined; nextCursor?: string | undefined; sessions: { source?: string | undefined; name?: string | undefined; cwd?: string | undefined; sessionKey?: string | undefined; updatedAt?: number | undefined; createdActor?: { id?: string | undefined; label?: string | undefined; avatarUrl?: string | undefined; type: \"system\" | \"agent\" | \"human\"; } | undefined; createdAt?: number | undefined; modelProvider?: string | undefined; recencyAt?: number | undefined; cliVersion?: string | undefined; gitBranch?: string | undefined; customGroup?: string | undefined; pullRequest?: { state: \"open\" | \"draft\" | \"closed\" | \"merged\"; numbers: number[]; } | undefined; canOpenTerminal?: boolean | undefined; status: string; archived: boolean; threadId: string; canContinue: boolean; canArchive: boolean; }[]; kind: \"gateway\" | \"node\"; label: string; hostId: string; connected: boolean;};","entrypoint":"session-catalog","exportName":"SessionCatalogHost","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"type","recordType":"export"} -{"closureHash":"c3bc8f81fc37853f9901164d2961392cf1b41a69ef0d133949d6a3ecd6da10ed","declaration":"export type SessionCatalogListProviderParams = SessionCatalogListProviderParams;","entrypoint":"session-catalog","exportName":"SessionCatalogListProviderParams","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"type","recordType":"export"} +{"closureHash":"6793cb8a6b78b5245e38b696512a21ff01cda2cf96c782ee610f66c48db15370","declaration":"export type SessionCatalogListProviderParams = SessionCatalogListProviderParams;","entrypoint":"session-catalog","exportName":"SessionCatalogListProviderParams","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"type","recordType":"export"} {"closureHash":"1b8060a038d38a9dfcdb65119d42049deeb0fa9410a78298cd29bfd9639d2721","declaration":"export type SessionCatalogLocator = { threadId: string; catalogId: string; hostId: string;};","entrypoint":"session-catalog","exportName":"SessionCatalogLocator","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"type","recordType":"export"} -{"closureHash":"5046bf829ce0ebda38e2d6929ae6d10980be80c68c0f12196a912fba0aa35fb2","declaration":"export type SessionCatalogProvider = SessionCatalogProvider;","entrypoint":"session-catalog","exportName":"SessionCatalogProvider","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"type","recordType":"export"} +{"closureHash":"1d2eb6896b9d0ca494ab4fb1e93c0c025ed9eeb06e5cf7f320eb560451fff775","declaration":"export type SessionCatalogProvider = SessionCatalogProvider;","entrypoint":"session-catalog","exportName":"SessionCatalogProvider","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"type","recordType":"export"} {"closureHash":"031fa3a50e41f0c7d5672cfbfefe6b5f3a74d7b09824d3a0cf386ab08bdc2ce6","declaration":"export type SessionCatalogPullRequestSummary = { state: \"open\" | \"draft\" | \"closed\" | \"merged\"; numbers: number[];};","entrypoint":"session-catalog","exportName":"SessionCatalogPullRequestSummary","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"type","recordType":"export"} {"closureHash":"2fddff39ee355ab2f5efa463b1a2ff1fdce03da36515d6b4d21988ea28bcd45f","declaration":"export type SessionCatalogReadProviderParams = SessionCatalogReadProviderParams;","entrypoint":"session-catalog","exportName":"SessionCatalogReadProviderParams","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"type","recordType":"export"} {"closureHash":"c5e0c59d9f38e43b780d5d9cbf38ebd4299694e0f52221eee8c72e3a29d27e42","declaration":"export type SessionCatalogSession = { source?: string | undefined; name?: string | undefined; cwd?: string | undefined; sessionKey?: string | undefined; updatedAt?: number | undefined; createdActor?: { id?: string | undefined; label?: string | undefined; avatarUrl?: string | undefined; type: \"system\" | \"agent\" | \"human\"; } | undefined; createdAt?: number | undefined; modelProvider?: string | undefined; recencyAt?: number | undefined; cliVersion?: string | undefined; gitBranch?: string | undefined; customGroup?: string | undefined; pullRequest?: { state: \"open\" | \"draft\" | \"closed\" | \"merged\"; numbers: number[]; } | undefined; canOpenTerminal?: boolean | undefined; status: string; archived: boolean; threadId: string; canContinue: boolean; canArchive: boolean;};","entrypoint":"session-catalog","exportName":"SessionCatalogSession","importSpecifier":"openclaw/plugin-sdk/session-catalog","kind":"type","recordType":"export"} @@ -4619,16 +4619,16 @@ {"closureHash":"e365d7ad911453b5139ba700931b061e560cff80b50d4cbe5e9615b5d7e13a52","declaration":"export type ScopedExpiringIdCache = ScopedExpiringIdCache;","entrypoint":"text-runtime","exportName":"ScopedExpiringIdCache","importSpecifier":"openclaw/plugin-sdk/text-runtime","kind":"type","recordType":"export"} {"closureHash":"af5502c92594c2e9049a4b4994e17c00d3adee3f6d1e68edd818a539c74c8787","declaration":"export interface CodeRegion {\n start: number;\n end: number;\n}","entrypoint":"text-runtime","exportName":"CodeRegion","importSpecifier":"openclaw/plugin-sdk/text-runtime","kind":"interface","recordType":"export"} {"category":null,"entrypoint":"tool-plugin","importSpecifier":"openclaw/plugin-sdk/tool-plugin","recordType":"module"} -{"closureHash":"25434a86e6b9fdb5bef6298333ebcccacc379ab355f8135565f3990345654781","declaration":"export function defineToolPlugin(definition: DefineToolPluginOptions): DefinedToolPluginEntry;","entrypoint":"tool-plugin","exportName":"defineToolPlugin","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"function","recordType":"export"} +{"closureHash":"371c9099df274b5fb3b306de18317900b0ef428fb5a67560eacb35bacc620ec3","declaration":"export function defineToolPlugin(definition: DefineToolPluginOptions): DefinedToolPluginEntry;","entrypoint":"tool-plugin","exportName":"defineToolPlugin","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"function","recordType":"export"} {"closureHash":"36ef907ce20f885b5f3068cbf0475dc442a68da9652579bb5bf8fb83ad34c38b","declaration":"export function getToolPluginMetadata(entry: unknown): ToolPluginMetadata | undefined;","entrypoint":"tool-plugin","exportName":"getToolPluginMetadata","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"function","recordType":"export"} {"closureHash":"bdc58154e36b2625fb3daccca3eab248d981077d04d747f0ad507cb2ff565198","declaration":"export const toolPluginMetadataSymbol: typeof toolPluginMetadataSymbol;","entrypoint":"tool-plugin","exportName":"toolPluginMetadataSymbol","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"const","recordType":"export"} -{"closureHash":"a3d51ecd49a4b7226511d05537aeafc2e485b3d9763295c6ad8ad04dcfdb0420","declaration":"export type DefineToolPluginOptions = DefineToolPluginOptions;","entrypoint":"tool-plugin","exportName":"DefineToolPluginOptions","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"type","recordType":"export"} -{"closureHash":"63bbe2896f6c4d764a47df99d6f6894daf8aad15bb8a40e4216a4fc47466a5c6","declaration":"export type DefinedToolPluginEntry = DefinedToolPluginEntry;","entrypoint":"tool-plugin","exportName":"DefinedToolPluginEntry","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"type","recordType":"export"} -{"closureHash":"669eb6bedb1e9171cef56e4f81622d88ff5039c070dc96511df27b257e2289c5","declaration":"export type ToolPluginExecutionContext = ToolPluginExecutionContext;","entrypoint":"tool-plugin","exportName":"ToolPluginExecutionContext","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"type","recordType":"export"} -{"closureHash":"8bec7fed4dd5a21ee6367b4207c6c3c1d85e975d9a59f07ee197dd37cd6af993","declaration":"export type ToolPluginFactoryContext = ToolPluginFactoryContext;","entrypoint":"tool-plugin","exportName":"ToolPluginFactoryContext","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"type","recordType":"export"} +{"closureHash":"dbf8bc758fe12359ade5122b187d23bdc2fe800ad989553df11dc9b1548c421f","declaration":"export type DefineToolPluginOptions = DefineToolPluginOptions;","entrypoint":"tool-plugin","exportName":"DefineToolPluginOptions","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"type","recordType":"export"} +{"closureHash":"d7115ef440a9366663dcb7eae4e0837d96645d959ee0f95c3c354898b9efc1b7","declaration":"export type DefinedToolPluginEntry = DefinedToolPluginEntry;","entrypoint":"tool-plugin","exportName":"DefinedToolPluginEntry","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"type","recordType":"export"} +{"closureHash":"744f9d8f00c1853de78a3d4112fd35010c0e69977fd3987a4b61edfde3b99423","declaration":"export type ToolPluginExecutionContext = ToolPluginExecutionContext;","entrypoint":"tool-plugin","exportName":"ToolPluginExecutionContext","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"type","recordType":"export"} +{"closureHash":"7836e97241523cbcaec31a2af6a02c50f825500f1d1ac984c0f0f76013897205","declaration":"export type ToolPluginFactoryContext = ToolPluginFactoryContext;","entrypoint":"tool-plugin","exportName":"ToolPluginFactoryContext","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"type","recordType":"export"} {"closureHash":"f774bd092f51a31fbb34847213f9583234f585f66918d0af55e81bbbae40463b","declaration":"export type ToolPluginMetadata = ToolPluginMetadata;","entrypoint":"tool-plugin","exportName":"ToolPluginMetadata","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"type","recordType":"export"} {"closureHash":"414a89d0c80eaaf682dc25d306e7223c981c6fd25366adb973a106f4268a6a54","declaration":"export type ToolPluginStaticToolMetadata = ToolPluginStaticToolMetadata;","entrypoint":"tool-plugin","exportName":"ToolPluginStaticToolMetadata","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"type","recordType":"export"} -{"closureHash":"89e2f03d58e6269e157d870c91d881fd71c33550f638fefdc7cb379c945c0ac8","declaration":"export type ToolPluginToolDefinition = ToolPluginToolDefinition;","entrypoint":"tool-plugin","exportName":"ToolPluginToolDefinition","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"type","recordType":"export"} +{"closureHash":"f9627c31030283fcc39543c3d95c63fbd53ad98dc63739e4e10128f6b6006691","declaration":"export type ToolPluginToolDefinition = ToolPluginToolDefinition;","entrypoint":"tool-plugin","exportName":"ToolPluginToolDefinition","importSpecifier":"openclaw/plugin-sdk/tool-plugin","kind":"type","recordType":"export"} {"category":null,"entrypoint":"tool-results","importSpecifier":"openclaw/plugin-sdk/tool-results","recordType":"module"} {"closureHash":"c5b0951c3629834dff78f92317cf1421a6bbc0faf9307be1cabb915055665280","declaration":"export function jsonResult(payload: TDetails): AgentToolResult;","entrypoint":"tool-results","exportName":"jsonResult","importSpecifier":"openclaw/plugin-sdk/tool-results","kind":"function","recordType":"export"} {"closureHash":"b9aefc637a694c74e028e92006004bef18185ed569af48ac43d36b646b0af2f3","declaration":"export function textResult(text: string, details: TDetails): AgentToolResult;","entrypoint":"tool-results","exportName":"textResult","importSpecifier":"openclaw/plugin-sdk/tool-results","kind":"function","recordType":"export"} @@ -4662,9 +4662,9 @@ {"closureHash":"9f9174f1023a8a451232f5d97d1e922b7faa88b76b58cffbfbe246a1488e0ddd","declaration":"export function readJsonWebhookBodyOrReject(params: { req: IncomingMessage; res: ServerResponse; maxBytes?: number; timeoutMs?: number; profile?: WebhookBodyReadProfile; emptyObjectOnEmpty?: boolean; invalidJsonMessage?: string; }): Promise<{ ok: true; value: unknown; } | { ok: false; }>;","entrypoint":"webhook-ingress","exportName":"readJsonWebhookBodyOrReject","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export"} {"closureHash":"1bbddd5d1c8297e315275db4d5e1c8748ff09c0be7c37b0cf456db4fc69f8909","declaration":"export function readRequestBodyWithLimit(req: IncomingMessage, options: ReadRequestBodyOptions): Promise;","entrypoint":"webhook-ingress","exportName":"readRequestBodyWithLimit","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export"} {"closureHash":"e8a1174cac83ce346a231fd25e82bb5f7618ffb57cdd9af6eaa208411f70646d","declaration":"export function readWebhookBodyOrReject(params: { req: IncomingMessage; res: ServerResponse; maxBytes?: number; timeoutMs?: number; profile?: WebhookBodyReadProfile; invalidBodyMessage?: string; }): Promise<{ ok: true; value: string; } | { ok: false; }>;","entrypoint":"webhook-ingress","exportName":"readWebhookBodyOrReject","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export"} -{"closureHash":"f27524cd729442a01cb193649d99dc7b255a65fa252caa850b2c4a65ed977a0d","declaration":"export function registerPluginHttpRoute(params: { path?: string | null; fallbackPath?: string | null; handler: PluginHttpRouteHandler; auth: PluginHttpRouteRegistration[\"auth\"]; match?: PluginHttpRouteRegistration[\"match\"]; gatewayRuntimeScopeSurface?: PluginHttpRouteRegistration[\"gatewayRuntimeScopeSurface\"]; replaceExisting?: boolean; reuseExistingSameOwner?: boolean; throwOnFailure?: boolean; pluginId?: string; source?: string; accountId?: string; log?: (message: string) => void; registry?: PluginRegistry; }): () => void;","entrypoint":"webhook-ingress","exportName":"registerPluginHttpRoute","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export"} +{"closureHash":"889f4c6bdcc3cab98b403fd0661558ee57c932355132fe7c5930c20cc3ceee6c","declaration":"export function registerPluginHttpRoute(params: { path?: string | null; fallbackPath?: string | null; handler: PluginHttpRouteHandler; auth: PluginHttpRouteRegistration[\"auth\"]; match?: PluginHttpRouteRegistration[\"match\"]; gatewayRuntimeScopeSurface?: PluginHttpRouteRegistration[\"gatewayRuntimeScopeSurface\"]; replaceExisting?: boolean; reuseExistingSameOwner?: boolean; throwOnFailure?: boolean; pluginId?: string; source?: string; accountId?: string; log?: (message: string) => void; registry?: PluginRegistry; }): () => void;","entrypoint":"webhook-ingress","exportName":"registerPluginHttpRoute","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export"} {"closureHash":"05835f2f66f906f736b82b332a84a9714bc3a6b211890a62d8fc4dbf9258a7d4","declaration":"export function registerWebhookTarget(targetsByPath: Map, target: T, opts?: RegisterWebhookTargetOptions): RegisteredWebhookTarget;","entrypoint":"webhook-ingress","exportName":"registerWebhookTarget","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export"} -{"closureHash":"30ffd908f257de36bb11f8b5846dcab4f0803c70ebafc681e10621850a946032","declaration":"export function registerWebhookTargetWithPluginRoute(params: { targetsByPath: Map; target: T; route: RegisterWebhookPluginRouteOptions; onLastPathTargetRemoved?: RegisterWebhookTargetOptions[\"onLastPathTargetRemoved\"]; }): RegisteredWebhookTarget;","entrypoint":"webhook-ingress","exportName":"registerWebhookTargetWithPluginRoute","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export"} +{"closureHash":"b0f06dfc6d9b2c006af264cb017a0031b1920bad626f1b2f8b43a998f3f2c2c5","declaration":"export function registerWebhookTargetWithPluginRoute(params: { targetsByPath: Map; target: T; route: RegisterWebhookPluginRouteOptions; onLastPathTargetRemoved?: RegisterWebhookTargetOptions[\"onLastPathTargetRemoved\"]; }): RegisteredWebhookTarget;","entrypoint":"webhook-ingress","exportName":"registerWebhookTargetWithPluginRoute","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export"} {"closureHash":"ec2f47e9bd7a075a3dd4302ac9e4c0bfe20630445db6735cf803f2d354275841","declaration":"export function requestBodyErrorToText(code: RequestBodyLimitErrorCode): string;","entrypoint":"webhook-ingress","exportName":"requestBodyErrorToText","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export"} {"closureHash":"5e1f3b468d56eb0f82104184077fdf4b6bd0c1444aa10b71a65fcaa2ec0298a2","declaration":"export function resolveRequestClientIp(req?: IncomingMessage, trustedProxies?: string[], allowRealIpFallback?: boolean): string | undefined;","entrypoint":"webhook-ingress","exportName":"resolveRequestClientIp","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export"} {"closureHash":"56c3e9868dfa6ee2a7a128eb02039a16b52696759adadbd3fe0a3bd7a6a07eeb","declaration":"export function resolveSingleWebhookTarget(targets: readonly T[], isMatch: (target: T) => boolean): WebhookTargetMatchResult;","entrypoint":"webhook-ingress","exportName":"resolveSingleWebhookTarget","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"function","recordType":"export"} @@ -4682,7 +4682,7 @@ {"closureHash":"efb74e84339c15d6f607b38d1d477b0504d47d04ae78e77083a1893c756a0b54","declaration":"export const WEBHOOK_RATE_LIMIT_DEFAULTS: Readonly<{ windowMs: 60000; maxRequests: 120; maxTrackedKeys: 4096;}>;","entrypoint":"webhook-ingress","exportName":"WEBHOOK_RATE_LIMIT_DEFAULTS","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"const","recordType":"export"} {"closureHash":"13b28ec9acae43c3bdcd683b9831154f88118dee8142e42b7eebfd59f08c602c","declaration":"export type BoundedCounter = BoundedCounter;","entrypoint":"webhook-ingress","exportName":"BoundedCounter","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export"} {"closureHash":"9e737ae8c17038ef7becbd2bf1b756cfeaed571e2ded368c0fe3a446ebd1f666","declaration":"export type FixedWindowRateLimiter = FixedWindowRateLimiter;","entrypoint":"webhook-ingress","exportName":"FixedWindowRateLimiter","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export"} -{"closureHash":"14bd6dec23b67b9701ac134ef18b1321946ccb2afdb6e5eb023770cd434a2818","declaration":"export type RegisterWebhookPluginRouteOptions = RegisterWebhookPluginRouteOptions;","entrypoint":"webhook-ingress","exportName":"RegisterWebhookPluginRouteOptions","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export"} +{"closureHash":"7761d9e50101e1d676deb86237a53d237d19242e9fc0a24f32108e85d281d52d","declaration":"export type RegisterWebhookPluginRouteOptions = RegisterWebhookPluginRouteOptions;","entrypoint":"webhook-ingress","exportName":"RegisterWebhookPluginRouteOptions","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export"} {"closureHash":"b3e98619854462acfac6538ac9a2d0cefb88704a0eac712563f0996b07364152","declaration":"export type RegisterWebhookTargetOptions = RegisterWebhookTargetOptions;","entrypoint":"webhook-ingress","exportName":"RegisterWebhookTargetOptions","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export"} {"closureHash":"964c2bfd8f268c411ee7b982c9de02c207f4bec402dd62c9f998a59752bb9d1f","declaration":"export type RegisteredWebhookTarget = RegisteredWebhookTarget;","entrypoint":"webhook-ingress","exportName":"RegisteredWebhookTarget","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export"} {"closureHash":"aa552e5bdaefc9eb94d3b5a5cdf8c413fad555d9f452c6a2a6af5a3ce695c9d1","declaration":"export type WebhookAnomalyTracker = WebhookAnomalyTracker;","entrypoint":"webhook-ingress","exportName":"WebhookAnomalyTracker","importSpecifier":"openclaw/plugin-sdk/webhook-ingress","kind":"type","recordType":"export"} diff --git a/docs/automation/cron-jobs.md b/docs/automation/cron-jobs.md index 71dd162421fe..d2fd03e56514 100644 --- a/docs/automation/cron-jobs.md +++ b/docs/automation/cron-jobs.md @@ -371,8 +371,9 @@ Failure notifications follow a separate destination path: - `openclaw automations edit` exposes per-job alert tuning: `--failure-alert`/`--no-failure-alert`, `--failure-alert-after `, `--failure-alert-channel`, `--failure-alert-to`, `--failure-alert-cooldown`, `--failure-alert-include-skipped`/`--failure-alert-exclude-skipped`, `--failure-alert-mode`, and `--failure-alert-account-id`. Chat failure notifications include the run start time in the agent's configured user timezone. Webhook message text stays stable; integrations can read the same instant from the structured `runAtMs` field. +Chat notifications show the normalized failure cause when one is available and keep raw commands, paths, and provider errors in automation history. Failure webhooks retain the structured raw error for diagnostic integrations. -Failure alerts are opt-in, but the scheduler also provides an unconditional safety backstop. A time-based recurring job is auto-disabled after 10 consecutive execution failures; a successful run resets that streak. Repeated schedule-computation failures auto-disable after 3 errors. The job records `state.autoDisabled.reason` as `consecutive-failures` or `schedule-errors`, and the owning agent receives a notification with the last error and recovery command. After fixing the cause, run `openclaw automations enable `; enabling clears the recorded reason and failure streaks. Because disabled jobs are hidden by the default list, use `openclaw automations list --all` to inspect them. +Failure alerts are opt-in, but the scheduler also provides an unconditional safety backstop. A time-based recurring job is auto-disabled after 10 consecutive execution failures; a successful run resets that streak. Repeated schedule-computation failures auto-disable after 3 errors. The job records `state.autoDisabled.reason` as `consecutive-failures` or `schedule-errors`, and the owning agent receives a notification with a safe cause and recovery command. Raw errors stay in automation history. After fixing the cause, run `openclaw automations enable `; enabling clears the recorded reason and failure streaks. Because disabled jobs are hidden by the default list, use `openclaw automations list --all` to inspect them. ### Output language diff --git a/docs/channels/discord.md b/docs/channels/discord.md index 9fa0e121b528..728da695aeae 100644 --- a/docs/channels/discord.md +++ b/docs/channels/discord.md @@ -728,7 +728,7 @@ See [Slash commands](/tools/slash-commands) for the command catalog and behavior - `streaming.preview.toolProgress` and `streaming.progress.toolProgress` both default to `true` when preview streaming is active. Tool rows such as `🛠️ Bash: run tests` or `🔎 Web Search: for "query"` need no additional progress config; set either key to `false` to keep the status headline only. - `streaming.progress.commentary` (default `false`) opts into raw assistant commentary in the temporary progress draft. The default preamble/narration status line is independent of this option. Commentary is cleaned before display, stays transient, and does not change final answer delivery. - `streaming.progress.maxLineChars` controls the per-line progress preview budget. Prose is shortened on word boundaries; command and path details keep useful suffixes. - - `streaming.preview.commandText` / `streaming.progress.commandText` controls command/exec detail in compact progress lines: `raw` (default) or `status` (tool label only). + - `streaming.preview.commandText` / `streaming.progress.commandText` controls command/exec detail in compact progress lines: `status` (default, tool label only) or `raw` (explicit command text). Hide raw command/exec text while keeping compact progress lines: diff --git a/docs/channels/slack.md b/docs/channels/slack.md index 497746fafc98..2b4d0d5ce92e 100644 --- a/docs/channels/slack.md +++ b/docs/channels/slack.md @@ -1487,7 +1487,7 @@ The default scope (`"group-mentions"`) does not fire ack reactions in direct mes - `block`: append chunked preview updates. - `progress`: show progress status text while generating, then send final text. - `streaming.preview.toolProgress`: when draft preview is active, route tool/progress updates into the same edited preview message (default: `true`). Set `false` to keep separate tool/progress messages. -- `streaming.preview.commandText` / `streaming.progress.commandText`: set to `status` to keep compact tool-progress lines while hiding raw command/exec text (default: `raw`). +- `streaming.preview.commandText` / `streaming.progress.commandText`: `status` keeps compact tool-progress lines while hiding raw command/exec text (default); set `raw` to opt into command text. Hide raw command/exec text while keeping compact progress lines: diff --git a/docs/channels/telegram.md b/docs/channels/telegram.md index 1f231784546b..afee35d93d56 100644 --- a/docs/channels/telegram.md +++ b/docs/channels/telegram.md @@ -351,7 +351,7 @@ curl "https://api.telegram.org/bot/getUpdates" - short initial answer previews are debounced, then materialized after a bounded delay if the run is still active - `progress` keeps one editable status draft for tool progress, shows the stable status label when answer activity arrives before tool progress, clears it at completion, and sends the final answer as a normal message - `streaming.preview.toolProgress` controls whether tool/progress updates reuse the same edited preview message (default: `true` when preview streaming is active) - - `streaming.preview.commandText` controls command/exec detail inside those lines: `raw` (default) or `status` (tool label only) + - `streaming.preview.commandText` controls command/exec detail inside those lines: `status` (default, tool label only) or `raw` (explicit command text) - `streaming.progress.commentary` (default: `false`) opts into assistant commentary/preamble text in the temporary progress draft - legacy `channels.telegram.streamMode`, boolean `streaming` values, and retired native draft preview keys are detected; run `openclaw doctor --fix` to migrate them diff --git a/docs/concepts/progress-drafts.md b/docs/concepts/progress-drafts.md index d9f94f139535..09329bb78617 100644 --- a/docs/concepts/progress-drafts.md +++ b/docs/concepts/progress-drafts.md @@ -225,9 +225,9 @@ OpenClaw uses the same formatter for progress drafts and `/verbose`: ``` `"explain"` is the default and keeps drafts stable with concise labels. -`"raw"` appends the underlying command when available, which is useful while -debugging but noisier in chat. For example, a `node --check /tmp/app.js` call -renders differently by mode: +`"raw"` appends underlying tool detail when available. Command text also +requires the explicit `streaming.progress.commandText: "raw"` opt-in below. +With that opt-in, a `node --check /tmp/app.js` call renders differently by mode: | Mode | Progress line | | --------- | --------------------------------------------------------------- | @@ -236,10 +236,10 @@ renders differently by mode: ### Command/exec text -`streaming.progress.commandText` (default `"raw"`) controls how much command +`streaming.progress.commandText` (default `"status"`) controls how much command detail shows next to exec/bash progress lines, independent of the detail mode -above. Set it to `"status"` to keep a tool-progress line visible while hiding -the command text entirely: +above. Set it to `"raw"` to opt into command text; keep `"status"` to show only +the tool-progress status: ```json5 { @@ -248,7 +248,7 @@ the command text entirely: streaming: { mode: "progress", progress: { - commandText: "status", + commandText: "raw", }, }, }, diff --git a/docs/concepts/streaming.md b/docs/concepts/streaming.md index 1c8a7d5b2d62..8a13a15de2d3 100644 --- a/docs/concepts/streaming.md +++ b/docs/concepts/streaming.md @@ -337,9 +337,9 @@ Supported surfaces: `streaming.preview.toolProgress` or `streaming.progress.toolProgress` to `false` for that channel (both default `true`, and both are honored in every mode). To keep tool-progress lines visible while hiding command/exec text, - set `streaming.preview.commandText` to `"status"` or - `streaming.progress.commandText` to `"status"`; the default is `"raw"` to - preserve released behavior. This policy is shared by draft/progress channels + set `streaming.preview.commandText` or `streaming.progress.commandText` to + `"status"` (the default). Set either option to `"raw"` to opt into command + text. This policy is shared by draft/progress channels that use OpenClaw's compact progress renderer, including Discord, Matrix, Microsoft Teams, Mattermost, Slack draft previews, and Telegram. To disable preview edits entirely, set `streaming.mode` to `off`. diff --git a/docs/tools/thinking.md b/docs/tools/thinking.md index 379378c8bc6d..312faab4536c 100644 --- a/docs/tools/thinking.md +++ b/docs/tools/thinking.md @@ -90,12 +90,13 @@ title: "Thinking levels" - Authorized external channel senders may persist the session verbose override. Internal gateway/webchat clients need `operator.admin` to persist it. - Inline directive affects only that message; session/global defaults apply otherwise. - Send `/verbose` (or `/verbose:`) with no argument to see the current verbose level. -- When verbose is on, agents that emit structured tool results send each tool call back as its own metadata-only message, prefixed with ` : ` when available. These tool summaries are sent as soon as each tool starts (separate bubbles), not as streaming deltas. +- When verbose is on, agents that emit structured tool results send each tool call back as its own safe metadata-only message. Shell tools show their label without command text. These tool summaries are sent as soon as each tool starts (separate bubbles), not as streaming deltas. - Tool failure summaries remain visible in normal mode, but raw error detail suffixes are hidden unless verbose is `full`. - When verbose is `full`, tool outputs are also forwarded after completion (separate bubble, truncated to a safe length). If you toggle `/verbose on|full|off` while a run is in-flight, subsequent tool bubbles honor the new setting. -- `agents.defaults.toolProgressDetail` controls the shape of `/verbose` tool summaries and progress-draft tool lines. Use `"explain"` (default) for compact human labels such as `🛠️ Exec: checking JS syntax`; use `"raw"` when you also want the raw command/detail appended for debugging. Per-agent `agents.entries.*.toolProgressDetail` overrides the default. - - `explain`: `🛠️ Exec: check JS syntax for /tmp/app.js` - - `raw`: `🛠️ Exec: check JS syntax for /tmp/app.js, node --check /tmp/app.js` +- `agents.defaults.toolProgressDetail` controls the shape of `/verbose` tool summaries and progress-draft tool lines. Use `"explain"` (default) for compact human labels and `"raw"` for unabridged non-shell detail. Standalone shell summaries require `/verbose full` for command text; progress drafts require the channel's explicit `streaming.*.commandText: "raw"` opt-in. Per-agent `agents.entries.*.toolProgressDetail` overrides the default. + - `/verbose on`: `🛠️ Exec` + - `/verbose full` + `explain`: `🛠️ Exec: check JS syntax for /tmp/app.js` + - `/verbose full` + `raw`: `🛠️ Exec: check JS syntax for /tmp/app.js, node --check /tmp/app.js` ## Plugin trace directives (/trace) diff --git a/extensions/acpx/index.test.ts b/extensions/acpx/index.test.ts index 283454cfaad3..5f9ff98e53a5 100644 --- a/extensions/acpx/index.test.ts +++ b/extensions/acpx/index.test.ts @@ -136,6 +136,7 @@ describe("acpx plugin", () => { inboundAudio: false, shouldRouteToOriginating: false, shouldSendToolSummaries: true, + shouldSendFullToolDetails: false, sendPolicy: "allow", }; const ctx = { @@ -202,6 +203,7 @@ describe("acpx plugin", () => { inboundAudio: false, shouldRouteToOriginating: false, shouldSendToolSummaries: true, + shouldSendFullToolDetails: false, sendPolicy: "allow", }, { diff --git a/extensions/clickclack/src/activity.test.ts b/extensions/clickclack/src/activity.test.ts index a469a7bcb7c8..c2f5a9ee25f5 100644 --- a/extensions/clickclack/src/activity.test.ts +++ b/extensions/clickclack/src/activity.test.ts @@ -112,7 +112,7 @@ describe("createClickClackActivityPublisher", () => { expect(bodies).toEqual(["before tool", "after tool"]); }); - it("dedupes lane-prefixed tool frames into one row and upgrades on longer bodies", async () => { + it("dedupes lane-prefixed command frames without exposing richer command text", async () => { const { client, createActivityMessage, updateMessageBody } = createClientMock(); const publisher = createClickClackActivityPublisher({ client, @@ -145,8 +145,31 @@ describe("createClickClackActivityPublisher", () => { kind: "agent_tool", body: "🛠️ Exec", }); - expect(updateMessageBody).toHaveBeenCalledTimes(1); - expect(updateMessageBody).toHaveBeenCalledWith("msg_1", "🛠️ ls -la"); + expect(updateMessageBody).not.toHaveBeenCalled(); + }); + + it("hides command metadata from item-only durable activity", async () => { + const { client, createActivityMessage } = createClientMock(); + const publisher = createClickClackActivityPublisher({ + client, + target: { channelId: "chn_1" }, + turnId: "msg_turn", + }); + + publisher.onItemEvent({ + itemId: "tool:toolu_1", + toolCallId: "toolu_1", + kind: "tool", + name: "server.exec", + meta: "echo private-sentinel", + commandBearing: true, + }); + await publisher.finalize(); + + expect(createActivityMessage).toHaveBeenCalledWith( + expect.objectContaining({ body: "🧩 Server.exec", kind: "agent_tool" }), + ); + expect(JSON.stringify(createActivityMessage.mock.calls)).not.toContain("private-sentinel"); }); it("posts the upgraded body directly when frames land before the first POST runs", async () => { @@ -157,19 +180,19 @@ describe("createClickClackActivityPublisher", () => { turnId: "msg_turn", }); - publisher.onItemEvent({ toolCallId: "toolu_1", kind: "tool", name: "exec" }); + publisher.onItemEvent({ toolCallId: "toolu_1", kind: "tool", name: "read" }); publisher.onItemEvent({ toolCallId: "toolu_1", kind: "tool", - name: "exec", - progressText: "ls -la", + name: "read", + progressText: "Done", }); await publisher.finalize(); expect(createActivityMessage).toHaveBeenCalledTimes(1); expect(createActivityMessage.mock.calls[0]?.[0]).toMatchObject({ kind: "agent_tool", - body: "🛠️ ls -la", + body: "📖 Read: Done", }); expect(updateMessageBody).not.toHaveBeenCalled(); }); diff --git a/extensions/clickclack/src/activity.ts b/extensions/clickclack/src/activity.ts index 795e5bf5f510..4f296da4c219 100644 --- a/extensions/clickclack/src/activity.ts +++ b/extensions/clickclack/src/activity.ts @@ -33,6 +33,7 @@ type ClickClackItemEventPayload = { summary?: string; progressText?: string; meta?: string; + commandBearing?: boolean; }; /** Destination for durable activity rows (channel or DM conversation). */ @@ -105,6 +106,7 @@ function activityBody(payload: ClickClackItemEventPayload): string { summary: payload.summary, progressText: payload.progressText, meta: payload.meta, + commandBearing: payload.commandBearing, })?.text?.trim(); if (line) { return line; diff --git a/extensions/clickclack/src/progress.test.ts b/extensions/clickclack/src/progress.test.ts index ecf0ec52cff6..e3d3a0844a43 100644 --- a/extensions/clickclack/src/progress.test.ts +++ b/extensions/clickclack/src/progress.test.ts @@ -90,6 +90,32 @@ describe("ClickClack native agent progress", () => { }); }); + it("hides command metadata from item-only native progress", async () => { + const publishEphemeral = vi.fn().mockResolvedValue(undefined); + const publisher = createClickClackAgentProgressPublisher({ + client: { publishEphemeral }, + target: { workspaceId: "ws_1", channelId: "chn_1" }, + turnId: "msg_1", + }); + + publisher.start(); + publisher.onItemEvent({ + itemId: "tool_1", + kind: "tool", + name: "server.exec", + meta: "echo private-sentinel", + commandBearing: true, + phase: "end", + status: "completed", + }); + await publisher.finalize(); + + expect(JSON.stringify(publishEphemeral.mock.calls)).not.toContain("private-sentinel"); + expect(publishEphemeral.mock.calls[1]?.[0].payload).toMatchObject({ + line: { text: "🧩 Server.exec" }, + }); + }); + it("does not let a progress transport failure interrupt finalization", async () => { const onError = vi.fn(); const publishEphemeral = vi diff --git a/extensions/clickclack/src/progress.ts b/extensions/clickclack/src/progress.ts index fc74e43c9348..f835e8436e3b 100644 --- a/extensions/clickclack/src/progress.ts +++ b/extensions/clickclack/src/progress.ts @@ -16,6 +16,7 @@ export type ClickClackItemEventPayload = { summary?: string; progressText?: string; meta?: string; + commandBearing?: boolean; }; type ClickClackProgressClient = { @@ -62,6 +63,7 @@ function progressText(payload: ClickClackItemEventPayload): string { summary: payload.summary, progressText: payload.progressText, meta: payload.meta, + commandBearing: payload.commandBearing, })?.text?.trim(); if (line) { return line; diff --git a/extensions/codex/src/app-server/event-projector-events.ts b/extensions/codex/src/app-server/event-projector-events.ts index b480b5c90398..a200d2d65371 100644 --- a/extensions/codex/src/app-server/event-projector-events.ts +++ b/extensions/codex/src/app-server/event-projector-events.ts @@ -9,6 +9,7 @@ import { } from "./event-projector-items.js"; import { itemMeta, + isCommandBearingToolItem, itemToolArgs, itemToolResult, shouldSuppressChannelProgressForItem, @@ -113,6 +114,9 @@ export class CodexEventProjection { if (!kind) { return; } + const name = itemName(item); + const args = itemToolArgs(item); + const commandBearing = isCommandBearingToolItem(item, args); const meta = itemMeta(item, this.toolProgress.toolProgressDetailMode()); const suppressChannelProgress = shouldSuppressChannelProgressForItem(item); this.emitAgentEvent({ @@ -123,8 +127,9 @@ export class CodexEventProjection { kind, title: itemTitle(item), status: params.phase === "start" ? "running" : itemStatus(item), - ...(itemName(item) ? { name: itemName(item) } : {}), + ...(name ? { name } : {}), ...(meta ? { meta } : {}), + ...(commandBearing ? { commandBearing: true } : {}), ...(suppressChannelProgress ? { suppressChannelProgress: true } : {}), }, }); @@ -144,6 +149,7 @@ export class CodexEventProjection { } const status = params.phase === "result" ? itemStatus(item) : "running"; const args = itemToolArgs(item); + const commandBearing = isCommandBearingToolItem(item, args); const meta = itemMeta(item, this.toolProgress.toolProgressDetailMode()); this.toolTranscript.recordTrajectoryEvent({ phase: params.phase, item, name, args, status }); if (params.phase === "result") { @@ -164,6 +170,7 @@ export class CodexEventProjection { itemId: item.id, toolCallId: item.id, ...(meta ? { meta } : {}), + ...(commandBearing ? { commandBearing: true } : {}), ...(params.phase === "start" && args ? { args } : {}), ...(params.phase === "result" ? { diff --git a/extensions/codex/src/app-server/event-projector-tool-items.ts b/extensions/codex/src/app-server/event-projector-tool-items.ts index 0299f6ddc122..5c0c2c563df9 100644 --- a/extensions/codex/src/app-server/event-projector-tool-items.ts +++ b/extensions/codex/src/app-server/event-projector-tool-items.ts @@ -80,6 +80,16 @@ export function itemToolArgs(item: CodexThreadItem): Record | u return undefined; } +export function isCommandBearingToolItem( + item: CodexThreadItem, + args: Record | undefined, +): boolean { + if (item.type === "commandExecution") { + return true; + } + return typeof args?.command === "string" && args.command.trim().length > 0; +} + function webSearchToolArgs(item: CodexThreadItem): Record { const action = isJsonObject(item.action) ? item.action : undefined; const actionType = action ? readNonEmptyString(action, "type") : undefined; diff --git a/extensions/codex/src/app-server/event-projector-tool-progress.ts b/extensions/codex/src/app-server/event-projector-tool-progress.ts index 5bf2c22ee898..4ab4acc00af9 100644 --- a/extensions/codex/src/app-server/event-projector-tool-progress.ts +++ b/extensions/codex/src/app-server/event-projector-tool-progress.ts @@ -19,6 +19,7 @@ import { itemOutputText, itemToolArgs, itemToolError, + isCommandBearingToolItem, nativeToolActionFingerprint, } from "./event-projector-tool-items.js"; import { @@ -40,7 +41,10 @@ import type { CodexThreadItem, JsonObject, } from "./protocol.js"; -import { resolveCodexToolProgressDetailMode } from "./tool-progress-normalization.js"; +import { + isCodexCommandBearingToolCall, + resolveCodexToolProgressDetailMode, +} from "./tool-progress-normalization.js"; const TRANSCRIPT_PROGRESS_SUPPRESSED_TOOL_NAMES = new Set([ "message", @@ -304,13 +308,18 @@ export class CodexToolProgressProjection { return; } const toolName = itemName(item); - if (!toolName || !shouldEmitTranscriptToolProgress(toolName, itemToolArgs(item))) { + const args = itemToolArgs(item); + if (!toolName || !shouldEmitTranscriptToolProgress(toolName, args)) { return; } this.resultSummaryItemIds.add(item.id); + const meta = + this.shouldEmitToolOutput() || !isCommandBearingToolItem(item, args) + ? itemMeta(item, this.toolProgressDetailMode()) + : undefined; this.emitToolResultMessage({ itemId: item.id, - text: formatToolSummary(toolName, itemMeta(item, this.toolProgressDetailMode())), + text: formatToolSummary(toolName, meta), }); } @@ -460,9 +469,12 @@ export class CodexToolProgressProjection { } this.transcriptProgressCallIds.add(params.id); const args = normalizeToolTranscriptArguments(params.arguments); - const meta = inferToolMetaFromArgs(params.name, args, { - detailMode: this.toolProgressDetailMode(), - }); + const meta = + this.shouldEmitToolOutput() || !isCodexCommandBearingToolCall(params.name, args) + ? inferToolMetaFromArgs(params.name, args, { + detailMode: this.toolProgressDetailMode(), + }) + : undefined; if ( !this.params.onToolResult || !this.shouldEmitToolResult() || diff --git a/extensions/codex/src/app-server/event-projector.replay-safety.test.ts b/extensions/codex/src/app-server/event-projector.replay-safety.test.ts index 63941eff4b2d..a9c3cf870ec3 100644 --- a/extensions/codex/src/app-server/event-projector.replay-safety.test.ts +++ b/extensions/codex/src/app-server/event-projector.replay-safety.test.ts @@ -225,6 +225,45 @@ describe("CodexAppServerEventProjector replay safety and progress projection", ( expect(result.replayMetadata).toEqual({ hadPotentialSideEffects: true, replaySafe: false }); }); + it("records command sensitivity on namespaced MCP item events", async () => { + const onAgentEvent = vi.fn(); + const projector = await createProjector({ ...(await createParams()), onAgentEvent }); + + await projector.handleNotification( + forCurrentTurn("item/completed", { + item: { + id: "mcp-command-1", + type: "mcpToolCall", + server: "server", + tool: "exec", + status: "completed", + arguments: { command: "echo private-sentinel" }, + result: { content: [{ type: "text", text: "done" }] }, + }, + }), + ); + + expect( + findAgentEvent(onAgentEvent, { + stream: "item", + phase: "end", + itemId: "mcp-command-1", + }).data, + ).toMatchObject({ + name: "server.exec", + commandBearing: true, + meta: expect.stringContaining("private-sentinel"), + }); + expect( + findAgentEvent(onAgentEvent, { + stream: "tool", + phase: "result", + itemId: "mcp-command-1", + name: "server.exec", + }).data, + ).toMatchObject({ commandBearing: true, isError: false }); + }); + it("treats native collaboration calls as side-effect evidence", async () => { const projector = await createProjector(); diff --git a/extensions/codex/src/app-server/event-projector.verbose-hooks.test.ts b/extensions/codex/src/app-server/event-projector.verbose-hooks.test.ts index d5a796006e04..763f8ba06baa 100644 --- a/extensions/codex/src/app-server/event-projector.verbose-hooks.test.ts +++ b/extensions/codex/src/app-server/event-projector.verbose-hooks.test.ts @@ -22,7 +22,7 @@ import { registerCodexEventProjectorTestLifecycle(); describe("CodexAppServerEventProjector verbose output and hook projection", () => { - it("emits verbose tool summaries through onToolResult", async () => { + it("hides command details from ordinary verbose tool summaries", async () => { const onToolResult = vi.fn(); const projector = await createProjector({ ...(await createParams()), @@ -50,7 +50,7 @@ describe("CodexAppServerEventProjector verbose output and hook projection", () = expect(onToolResult).toHaveBeenCalledTimes(1); expect(onToolResult).toHaveBeenCalledWith({ - text: "🛠️ `run tests (workspace)`", + text: "🛠️ Bash", }); }); @@ -58,7 +58,7 @@ describe("CodexAppServerEventProjector verbose output and hook projection", () = const onToolResult = vi.fn(); const projector = await createProjector({ ...(await createParams()), - verboseLevel: "on", + verboseLevel: "full", toolProgressDetail: "raw", onToolResult, }); @@ -90,7 +90,7 @@ describe("CodexAppServerEventProjector verbose output and hook projection", () = const onToolResult = vi.fn(); const projector = await createProjector({ ...(await createParams()), - verboseLevel: "on", + verboseLevel: "full", toolProgressDetail: "raw", onToolResult, }); @@ -148,6 +148,34 @@ describe("CodexAppServerEventProjector verbose output and hook projection", () = }); }); + it("hides command arguments from dynamic tool summaries unless verbose is full", async () => { + const onToolResult = vi.fn(); + const projector = await createProjector({ + ...(await createParams()), + verboseLevel: "on", + onToolResult, + }); + + await projector.handleNotification( + forCurrentTurn("item/started", { + item: { + type: "dynamicToolCall", + id: "tool-command-1", + namespace: null, + tool: "server.exec", + arguments: { command: "cat /private/operator-file" }, + status: "inProgress", + contentItems: null, + success: null, + durationMs: null, + }, + }), + ); + + expect(onToolResult).toHaveBeenCalledWith({ text: "🧩 Server.exec" }); + expect(JSON.stringify(onToolResult.mock.calls)).not.toContain("private/operator-file"); + }); + it("emits completed tool output only when verbose full is enabled", async () => { const onToolResult = vi.fn(); const projector = await createProjector({ diff --git a/extensions/codex/src/app-server/run-attempt-server-requests.ts b/extensions/codex/src/app-server/run-attempt-server-requests.ts index 8771fc379dc1..2b76da70f22a 100644 --- a/extensions/codex/src/app-server/run-attempt-server-requests.ts +++ b/extensions/codex/src/app-server/run-attempt-server-requests.ts @@ -29,6 +29,7 @@ import { toTranscriptToolResult } from "./run-attempt-tools.js"; import type { CodexAttemptTurnState } from "./run-attempt-turn-state.js"; import { inferCodexDynamicToolMeta, + isCodexCommandBearingToolCall, resolveCodexToolProgressDetailMode, sanitizeCodexToolArguments, } from "./tool-progress-normalization.js"; @@ -186,6 +187,7 @@ export function createCodexAttemptServerRequestController( resolveCodexToolProgressDetailMode(params.toolProgressDetail), ); const toolArgs = sanitizeCodexToolArguments(call.arguments); + const commandBearing = isCodexCommandBearingToolCall(call.tool, toolArgs); const shouldEmitDynamicToolProgress = shouldEmitTranscriptToolProgress(call.tool, toolArgs); if (shouldEmitDynamicToolProgress) { void emitCodexAppServerEvent(params, { @@ -196,6 +198,7 @@ export function createCodexAttemptServerRequestController( toolCallId: call.callId, ...(toolMeta ? { meta: toolMeta } : {}), ...(toolArgs ? { args: toolArgs } : {}), + ...(commandBearing ? { commandBearing: true } : {}), }, }); } @@ -275,6 +278,7 @@ export function createCodexAttemptServerRequestController( name: call.tool, toolCallId: call.callId, ...(toolMeta ? { meta: toolMeta } : {}), + ...(commandBearing ? { commandBearing: true } : {}), isError: !protocolResponse.success, result: toTranscriptToolResult(progressResponse), }, diff --git a/extensions/codex/src/app-server/run-attempt.dynamic-tools.test.ts b/extensions/codex/src/app-server/run-attempt.dynamic-tools.test.ts index 2f70b9306bc1..ffffbfd443ae 100644 --- a/extensions/codex/src/app-server/run-attempt.dynamic-tools.test.ts +++ b/extensions/codex/src/app-server/run-attempt.dynamic-tools.test.ts @@ -138,6 +138,7 @@ describe("runCodexAppServerAttempt dynamic tools", () => { tool: "lookup", arguments: { action: "search", + command: "cat /private/operator-file", token: "plain-secret-value-12345", text: "hello", }, @@ -160,6 +161,7 @@ describe("runCodexAppServerAttempt dynamic tools", () => { const agentEvents = onRunAgentEvent.mock.calls.map(([event]) => event) as Array<{ data?: { args?: Record; + commandBearing?: boolean; isError?: boolean; name?: string; phase?: string; @@ -178,6 +180,7 @@ describe("runCodexAppServerAttempt dynamic tools", () => { expect(startEvent?.data?.name).toBe("lookup"); expect(startEvent?.data?.toolCallId).toBe("call-1"); expect(startEvent?.data?.args?.action).toBe("search"); + expect(startEvent?.data?.commandBearing).toBe(true); expect(startEvent?.data?.args?.token).toBe("plain-…2345"); expect(startEvent?.data?.args?.text).toBe("hello"); const resultEvent = agentEvents.find( @@ -187,6 +190,7 @@ describe("runCodexAppServerAttempt dynamic tools", () => { event.data.result !== undefined, ); expect(resultEvent?.data?.name).toBe("lookup"); + expect(resultEvent?.data?.commandBearing).toBe(true); expect(resultEvent?.data?.toolCallId).toBe("call-1"); expect(resultEvent?.data?.isError).toBe(true); expect(resultEvent?.data?.result).not.toHaveProperty("success"); diff --git a/extensions/codex/src/app-server/tool-progress-normalization.ts b/extensions/codex/src/app-server/tool-progress-normalization.ts index 25abce78d744..4f9a74fc8074 100644 --- a/extensions/codex/src/app-server/tool-progress-normalization.ts +++ b/extensions/codex/src/app-server/tool-progress-normalization.ts @@ -22,6 +22,19 @@ export function resolveCodexToolProgressDetailMode( return value === "raw" ? "raw" : "explain"; } +export function isCodexCommandBearingToolCall( + name: string | undefined, + args: Record | undefined, +): boolean { + const normalizedName = name?.trim().toLowerCase(); + return ( + normalizedName === "exec" || + normalizedName === "bash" || + normalizedName === "shell" || + (typeof args?.command === "string" && args.command.trim().length > 0) + ); +} + /** Recursively redacts sensitive strings and handles circular values in event payloads. */ function sanitizeCodexAgentEventValue(value: unknown, seen = new WeakSet()): unknown { if (typeof value === "string") { diff --git a/extensions/discord/src/config-ui-hints.ts b/extensions/discord/src/config-ui-hints.ts index 792f4bd983ea..2194e5012b6c 100644 --- a/extensions/discord/src/config-ui-hints.ts +++ b/extensions/discord/src/config-ui-hints.ts @@ -33,7 +33,7 @@ export const discordChannelConfigUiHints = { "preview.toolProgress": "Show tool/progress activity in the live draft preview message (default: true). Set false to hide interim tool updates while the draft preview stays active.", "preview.commandText": - 'Command/exec detail in preview tool-progress lines: "raw" preserves released behavior; "status" shows only the tool label.', + 'Command/exec detail in preview tool-progress lines: "status" is the safe default; "raw" opts into command text.', }, progress: { includeCommentary: true }, }), diff --git a/extensions/discord/src/monitor/message-handler.draft-preview.ts b/extensions/discord/src/monitor/message-handler.draft-preview.ts index 3a3c55c1a8b1..6cd21c44947a 100644 --- a/extensions/discord/src/monitor/message-handler.draft-preview.ts +++ b/extensions/discord/src/monitor/message-handler.draft-preview.ts @@ -125,7 +125,7 @@ export function createDiscordDraftPreviewController(params: { reasoningGate: previewToolProgressEnabled, commentaryItalics: false, buildProgressEventLine: (input, options) => - input.event === "tool" || input.event === "item" + input.event === "tool" || input.event === "item" || input.event === "command-output" ? buildChannelProgressDraftLineForEntry(params.discordConfig, input, options) : buildChannelProgressDraftLine(input, options), update: async (previewText, options) => { diff --git a/extensions/discord/src/monitor/message-handler.process.draft-progress.test.ts b/extensions/discord/src/monitor/message-handler.process.draft-progress.test.ts index c118bbc3aa6a..518f20cbcf09 100644 --- a/extensions/discord/src/monitor/message-handler.process.draft-progress.test.ts +++ b/extensions/discord/src/monitor/message-handler.process.draft-progress.test.ts @@ -750,6 +750,7 @@ describe("processDiscordMessage draft streaming progress", () => { mode: "progress", progress: { label: "Shelling", + commandText: "raw", }, }, }, @@ -795,6 +796,41 @@ describe("processDiscordMessage draft streaming progress", () => { expect(draftStream.update).toHaveBeenCalledWith("Shelling\n\n🛠️ Exec\n• done"); }); + it("preserves command output text when raw Discord progress is configured", async () => { + const elapseProgressDraftStartDelay = useProgressDraftStartDelay(); + const draftStream = createMockDraftStreamForTest(); + + dispatchInboundMessage.mockImplementationOnce(async (params?: DispatchInboundParams) => { + await params?.replyOptions?.onToolStart?.({ + toolCallId: "call-1", + name: "exec", + phase: "start", + }); + await params?.replyOptions?.onCommandOutput?.({ + toolCallId: "call-1", + phase: "end", + title: "pnpm test -- --watch=false", + name: "exec", + exitCode: 0, + }); + await elapseProgressDraftStartDelay(); + return createNoQueuedDispatchResult(); + }); + + const ctx = await createAutomaticSourceDeliveryContext({ + discordConfig: { + streaming: { + mode: "progress", + progress: { label: "Shelling", commandText: "raw" }, + }, + }, + }); + + await runProcessDiscordMessage(ctx); + + expect(draftStream.update.mock.calls.flat().join("\n")).toContain("pnpm test -- --watch=false"); + }); + it("keeps Discord progress lines below the configured label", async () => { const elapseProgressDraftStartDelay = useProgressDraftStartDelay(); const draftStream = createMockDraftStreamForTest(); diff --git a/extensions/mattermost/src/config-ui-hints.ts b/extensions/mattermost/src/config-ui-hints.ts index feacc4accfc0..8532ee2a4ba1 100644 --- a/extensions/mattermost/src/config-ui-hints.ts +++ b/extensions/mattermost/src/config-ui-hints.ts @@ -19,7 +19,7 @@ export const mattermostChannelConfigUiHints = { "preview.toolProgress": "Show tool/progress activity in the live draft preview post (default: true). Set false to hide interim tool updates while the draft preview stays active.", "preview.commandText": - 'Command/exec detail in preview tool-progress lines: "raw" preserves released behavior; "status" shows only the tool label.', + 'Command/exec detail in preview tool-progress lines: "status" is the safe default; "raw" opts into command text.', }, progress: {}, }), diff --git a/extensions/msteams/src/reply-dispatcher.test.ts b/extensions/msteams/src/reply-dispatcher.test.ts index 219f1d1ca8d7..257247383754 100644 --- a/extensions/msteams/src/reply-dispatcher.test.ts +++ b/extensions/msteams/src/reply-dispatcher.test.ts @@ -609,6 +609,7 @@ describe("createMSTeamsReplyDispatcher", () => { mode: "progress", progress: { label: "Working", + commandText: "raw", }, }, }); @@ -634,6 +635,31 @@ describe("createMSTeamsReplyDispatcher", () => { expect(lastUpdate).not.toContain("completed"); }); + it("preserves command output text when raw command progress is configured", async () => { + vi.useFakeTimers(); + const dispatcher = createDispatcher("personal", { + streaming: { + mode: "progress", + progress: { + label: "Working", + commandText: "raw", + }, + }, + }); + + await dispatcher.replyOptions.onCommandOutput?.({ + phase: "end", + title: "pnpm test -- --watch=false", + name: "exec", + exitCode: 1, + }); + await vi.advanceTimersByTimeAsync(5_000); + + expect(getStreamMock().update).toHaveBeenLastCalledWith( + expect.stringContaining("pnpm test -- --watch=false"), + ); + }); + it("replaces reasoning progress snapshots in progress mode", async () => { vi.useFakeTimers(); const dispatcher = createDispatcher("personal", { diff --git a/extensions/msteams/src/reply-dispatcher.ts b/extensions/msteams/src/reply-dispatcher.ts index 8f1502ae539d..ffdbda3abe93 100644 --- a/extensions/msteams/src/reply-dispatcher.ts +++ b/extensions/msteams/src/reply-dispatcher.ts @@ -659,7 +659,7 @@ export function createMSTeamsReplyDispatcher(params: { return false; } await streamController.pushProgressLine( - buildChannelProgressDraftLine({ + buildChannelProgressDraftLineForEntry(msteamsCfg, { event: "command-output", ...(typeof payload?.itemId === "string" ? { itemId: payload.itemId } : {}), ...(typeof payload?.toolCallId === "string" diff --git a/extensions/slack/src/config-ui-hints.ts b/extensions/slack/src/config-ui-hints.ts index 84f556deeead..038a0258fae2 100644 --- a/extensions/slack/src/config-ui-hints.ts +++ b/extensions/slack/src/config-ui-hints.ts @@ -33,7 +33,7 @@ export const slackChannelConfigUiHints = { "preview.toolProgress": "Show tool/progress activity in the live draft preview message (default: true). Set false to hide interim tool updates while the draft preview stays active.", "preview.commandText": - 'Command/exec detail in preview tool-progress lines: "raw" preserves released behavior; "status" shows only the tool label.', + 'Command/exec detail in preview tool-progress lines: "status" is the safe default; "raw" opts into command text.', "progress.render": 'Progress draft renderer: "text" uses one portable text body; "rich" renders structured Slack Block Kit fields with the same text fallback.', "progress.nativeTaskCards": diff --git a/extensions/slack/src/monitor/message-handler/dispatch-progress.ts b/extensions/slack/src/monitor/message-handler/dispatch-progress.ts index 139c77f09d93..fa623f1ce542 100644 --- a/extensions/slack/src/monitor/message-handler/dispatch-progress.ts +++ b/extensions/slack/src/monitor/message-handler/dispatch-progress.ts @@ -334,7 +334,7 @@ export function createSlackProgressRuntime(runtimeParams: { reasoningGate: previewToolProgressEnabled, commentaryItalics: true, buildProgressEventLine: (input, options) => - input.event === "tool" || input.event === "item" + input.event === "tool" || input.event === "item" || input.event === "command-output" ? buildChannelProgressDraftLineForEntry(account.config, input, options) : buildChannelProgressDraftLine(input, options), updateOnLineChange: useNativeProgressStreaming || useRichProgressDraft, diff --git a/extensions/slack/src/monitor/message-handler/dispatch.preview-fallback.test.ts b/extensions/slack/src/monitor/message-handler/dispatch.preview-fallback.test.ts index bb537f7df61c..0cb9b9aa051b 100644 --- a/extensions/slack/src/monitor/message-handler/dispatch.preview-fallback.test.ts +++ b/extensions/slack/src/monitor/message-handler/dispatch.preview-fallback.test.ts @@ -579,8 +579,31 @@ vi.mock("openclaw/plugin-sdk/channel-outbound", async (importOriginal) => { summary?: string; title?: string; name?: string; + status?: string; + exitCode?: number | null; }, ) => { + if (params.event === "command-output") { + const status = + params.exitCode === 0 + ? "completed" + : params.exitCode != null + ? `exit ${params.exitCode}` + : params.status; + const id = params.toolCallId ? `command:${params.toolCallId}` : params.itemId; + const raw = + (entry.streaming?.progress?.commandText ?? entry.streaming?.preview?.commandText) === + "raw"; + return { + kind: "command-output", + ...(id ? { id } : {}), + text: raw && params.title ? params.title : (status ?? params.name ?? "exec"), + label: params.name ?? "exec", + ...(raw && params.title ? { detail: params.title } : {}), + ...(status ? { status } : {}), + toolName: params.name ?? "exec", + }; + } if (params.event === "tool") { if (params.name === mockedEmptyProgressToolName) { return undefined; @@ -3801,6 +3824,36 @@ describe("dispatchPreparedSlackMessage preview fallback", () => { expect(draftStream.update.mock.calls.flat().join("\n")).not.toContain("pnpm test"); }); + it("preserves command output text when raw Slack progress is configured", async () => { + const draftStream = createDraftStreamStub(); + createSlackDraftStreamMock.mockReturnValueOnce(draftStream); + mockedSlackStreamingMode = "progress"; + mockedSlackDraftMode = "status_final"; + mockedDispatchSequence = []; + mockedReplyOptionEvents = [ + { + kind: "command_output", + phase: "end", + title: "pnpm test -- --watch=false", + name: "exec", + exitCode: 1, + }, + ]; + + await dispatchPreparedSlackMessage( + createPreparedSlackMessage({ + accountConfig: { + streaming: { + mode: "progress", + progress: { label: "Shelling", commandText: "raw" }, + }, + }, + }), + ); + + expect(draftStream.update.mock.calls.flat().join("\n")).toContain("pnpm test -- --watch=false"); + }); + it("suppresses standalone Slack tool progress when progress lines are disabled", async () => { mockedSlackStreamingMode = "progress"; mockedSlackDraftMode = "status_final"; diff --git a/extensions/telegram/src/bot-message-dispatch.progress-summary.test.ts b/extensions/telegram/src/bot-message-dispatch.progress-summary.test.ts index a7b26a4aa675..85157000ac6d 100644 --- a/extensions/telegram/src/bot-message-dispatch.progress-summary.test.ts +++ b/extensions/telegram/src/bot-message-dispatch.progress-summary.test.ts @@ -533,13 +533,10 @@ describeTelegramDispatch("dispatchTelegramMessage progress-summary", () => { }); const lastUpdate = answerDraftStream.updatePreview.mock.calls.at(-1)?.[0]; - expect(lastUpdate?.text).toContain("install dependencies"); + expect(lastUpdate?.text).not.toContain("install dependencies"); expect(lastUpdate?.text).not.toContain("completed"); expect(lastUpdate).toEqual( - telegramProgressPreview( - "Shelling\n\n🛠️ install dependencies", - "Shelling\n🛠️ Exec install dependencies", - ), + telegramProgressPreview("Shelling\n\n🛠️ Exec", "Shelling\n🛠️ Exec"), ); } finally { vi.useRealTimers(); diff --git a/extensions/telegram/src/config-ui-hints.ts b/extensions/telegram/src/config-ui-hints.ts index 8b40d4565614..aa4e372364fe 100644 --- a/extensions/telegram/src/config-ui-hints.ts +++ b/extensions/telegram/src/config-ui-hints.ts @@ -41,7 +41,7 @@ export const telegramChannelConfigUiHints = { "preview.toolProgress": "Show tool/progress activity in the live draft preview message (default: true when preview streaming is active). Set false to keep tool updates out of the edited Telegram preview.", "preview.commandText": - 'Command/exec detail in preview tool-progress lines: "raw" preserves released behavior; "status" shows only the tool label.', + 'Command/exec detail in preview tool-progress lines: "status" is the safe default; "raw" opts into command text.', }, progress: { includeCommentary: true, commentaryOrder: "after-command" }, }), diff --git a/src/agents/cli-runner.ts b/src/agents/cli-runner.ts index 71c972c59125..a3342f18d78b 100644 --- a/src/agents/cli-runner.ts +++ b/src/agents/cli-runner.ts @@ -951,9 +951,7 @@ export async function runPreparedCliAgent( ): ReplyPayload[] => { return buildEmbeddedRunPayloads({ assistantTexts: [], - toolMetas: [], lastAssistant: undefined, - inlineToolResultsAllowed: false, sessionKey: params.sessionKey ?? "", provider: params.provider, model: context.modelId, diff --git a/src/agents/embedded-agent-runner/run/payloads.errors.test.ts b/src/agents/embedded-agent-runner/run/payloads.errors.test.ts index 29eb68a77a4a..79d4c8308c5e 100644 --- a/src/agents/embedded-agent-runner/run/payloads.errors.test.ts +++ b/src/agents/embedded-agent-runner/run/payloads.errors.test.ts @@ -74,7 +74,6 @@ describe("buildEmbeddedRunPayloads", () => { function expectNoSyntheticCompletionForSession(sessionKey: string) { expectNoPayloads({ sessionKey, - toolMetas: [{ toolName: "write", meta: "/tmp/out.md" }], lastAssistant: makeAssistant({ stopReason: "stop", errorMessage: undefined, @@ -127,7 +126,6 @@ describe("buildEmbeddedRunPayloads", () => { const payloads = buildPayloads({ assistantTexts: [errorJsonPretty], lastAssistant: makeAssistant({ errorMessage: errorJson }), - inlineToolResultsAllowed: true, verboseLevel: "on", }); @@ -512,14 +510,6 @@ describe("buildEmbeddedRunPayloads", () => { expectSinglePayloadText(payloads, "All good"); }); - it("does not add synthetic completion text when tools run without final assistant text", () => { - expectNoPayloads({ - sessionKey: "agent:main:discord:direct:u123", - toolMetas: [{ toolName: "write", meta: "/tmp/out.md" }], - lastAssistant: makeStoppedAssistant(), - }); - }); - it("does not add synthetic completion text for channel sessions", () => { expectNoSyntheticCompletionForSession("agent:main:discord:channel:c123"); }); @@ -531,7 +521,6 @@ describe("buildEmbeddedRunPayloads", () => { it("does not add synthetic completion text when messaging tool already delivered output", () => { expectNoPayloads({ sessionKey: "agent:main:discord:direct:u123", - toolMetas: [{ toolName: "message_send", meta: "sent to #ops" }], didSendViaMessagingTool: true, lastAssistant: makeAssistant({ stopReason: "stop", @@ -543,7 +532,6 @@ describe("buildEmbeddedRunPayloads", () => { it("does not add synthetic completion text when the run still has a tool error", () => { expectNoPayloads({ - toolMetas: [{ toolName: "browser", meta: "open https://example.com" }], lastToolError: { toolName: "browser", error: "url required" }, }); }); @@ -910,7 +898,25 @@ describe("buildEmbeddedRunPayloads", () => { expectSinglePayloadSummary(payloads, { text: warningText ?? "" }); }); - it("keeps exec failure labels outside markdown command text", () => { + it("hides exec command and cwd metadata without full verbosity", () => { + const payloads = buildPayloads({ + lastToolError: { + toolName: "exec", + meta: "run python3 /path/to/daily-cost-audit.py (in /private/workspace)", + error: "Command exited with code 1", + mutatingAction: true, + }, + toolResultFormat: "markdown", + verboseLevel: "off", + }); + + expectSinglePayloadSummary(payloads, { + text: "⚠️ 🛠️ Exec failed (exit 1)", + isError: true, + }); + }); + + it("keeps full-verbose exec failure labels outside markdown command text", () => { const payloads = buildPayloads({ lastToolError: { toolName: "exec", @@ -919,10 +925,11 @@ describe("buildEmbeddedRunPayloads", () => { mutatingAction: true, }, toolResultFormat: "markdown", + verboseLevel: "full", }); expectSinglePayloadSummary(payloads, { - text: "⚠️ 🛠️ Exec failed: `python3 /path/to/daily-cost-audit.py` (exit 1)", + text: "⚠️ 🛠️ Exec failed: `python3 /path/to/daily-cost-audit.py`: Command exited with code 1", isError: true, }); expect(payloads[0]?.text).not.toContain("`run python3"); @@ -933,49 +940,51 @@ describe("buildEmbeddedRunPayloads", () => { title: "prefers raw exec metadata when tool progress detail includes it", meta: "run python3 /tmp/audit.py · `python3 /tmp/audit.py`", toolResultFormat: "markdown", - expected: "⚠️ 🛠️ Exec failed: `python3 /tmp/audit.py` (exit 1)", + expected: "⚠️ 🛠️ Exec failed: `python3 /tmp/audit.py`: Command exited with code 1", }, { title: "prefers raw exec metadata when the literal command contains backticks", meta: "run node inline script, `node -e 'console.log(1, `x`)'`", toolResultFormat: "markdown", - expected: "⚠️ 🛠️ Exec failed: ``node -e 'console.log(1, `x`)'`` (exit 1)", + expected: "⚠️ 🛠️ Exec failed: ``node -e 'console.log(1, `x`)'``: Command exited with code 1", }, { title: "leaves exec metadata unwrapped for plain tool results", meta: "run node inline script, `node -e 'console.log(1, `x`)'`", toolResultFormat: "plain", - expected: "⚠️ 🛠️ Exec failed: node -e 'console.log(1, `x`)' (exit 1)", + expected: "⚠️ 🛠️ Exec failed: node -e 'console.log(1, `x`)': Command exited with code 1", }, { title: "preserves raw exec context before trailing raw command metadata", meta: "run python3 /tmp/audit.py, node: mac-1, `python3 /tmp/audit.py`", toolResultFormat: "markdown", - expected: "⚠️ 🛠️ Exec failed: `node: mac-1 · python3 /tmp/audit.py` (exit 1)", + expected: + "⚠️ 🛠️ Exec failed: `node: mac-1 · python3 /tmp/audit.py`: Command exited with code 1", }, { title: "does not promote display-summary commas into raw exec context", meta: 'search "foo,bar" in src, `rg "foo,bar" src`', toolResultFormat: "markdown", - expected: '⚠️ 🛠️ Exec failed: `rg "foo,bar" src` (exit 1)', + expected: '⚠️ 🛠️ Exec failed: `rg "foo,bar" src`: Command exited with code 1', }, { title: "does not treat parenthesized raw command arguments as cwd context", meta: 'list files in (in progress) · `ls "(in progress)"`', toolResultFormat: "markdown", - expected: '⚠️ 🛠️ Exec failed: `ls "(in progress)"` (exit 1)', + expected: '⚠️ 🛠️ Exec failed: `ls "(in progress)"`: Command exited with code 1', }, { title: "does not duplicate compact cwd labels already present in raw command arguments", meta: 'print text (repo) · `printf "%s" "(repo)"`', toolResultFormat: "markdown", - expected: '⚠️ 🛠️ Exec failed: `printf "%s" "(repo)"` (exit 1)', + expected: '⚠️ 🛠️ Exec failed: `printf "%s" "(repo)"`: Command exited with code 1', }, { title: "keeps arbitrary exec cwd suffixes inside markdown command text", meta: "run python3 /tmp/audit.py (in /tmp/build @everyone)", toolResultFormat: "markdown", - expected: "⚠️ 🛠️ Exec failed: `python3 /tmp/audit.py (in /tmp/build @everyone)` (exit 1)", + expected: + "⚠️ 🛠️ Exec failed: `python3 /tmp/audit.py (in /tmp/build @everyone)`: Command exited with code 1", }, ] as const)("$title", ({ meta, toolResultFormat, expected }) => { const payloads = buildPayloads({ @@ -986,6 +995,7 @@ describe("buildEmbeddedRunPayloads", () => { mutatingAction: true, }, toolResultFormat, + verboseLevel: "full", }); expectSinglePayloadSummary(payloads, { @@ -1003,6 +1013,7 @@ describe("buildEmbeddedRunPayloads", () => { mutatingAction: true, }, toolResultFormat: "markdown", + verboseLevel: "full", }); const workspaceNodePayloads = buildPayloads({ lastToolError: { @@ -1012,6 +1023,7 @@ describe("buildEmbeddedRunPayloads", () => { mutatingAction: true, }, toolResultFormat: "markdown", + verboseLevel: "full", }); const semanticCompactPayloads = buildPayloads({ lastToolError: { @@ -1021,18 +1033,19 @@ describe("buildEmbeddedRunPayloads", () => { mutatingAction: true, }, toolResultFormat: "markdown", + verboseLevel: "full", }); expectSinglePayloadSummary(cwdPayloads, { - text: "⚠️ 🛠️ Exec failed: `python3 audit.py (in /tmp/build)` (exit 1)", + text: "⚠️ 🛠️ Exec failed: `python3 audit.py (in /tmp/build)`: Command exited with code 1", isError: true, }); expectSinglePayloadSummary(workspaceNodePayloads, { - text: "⚠️ 🛠️ Exec failed: `node: mac-1 · python3 audit.py (workspace)` (exit 1)", + text: "⚠️ 🛠️ Exec failed: `node: mac-1 · python3 audit.py (workspace)`: Command exited with code 1", isError: true, }); expectSinglePayloadSummary(semanticCompactPayloads, { - text: "⚠️ 🛠️ Exec failed: `git status (repo)` (exit 1)", + text: "⚠️ 🛠️ Exec failed: `git status (repo)`: Command exited with code 1", isError: true, }); }); @@ -1042,49 +1055,52 @@ describe("buildEmbeddedRunPayloads", () => { name: "strips a literal synthetic run prefix", meta: "run make build", error: "Command failed with exit code 2", - expected: "⚠️ 🛠️ Exec failed: `make build` (exit 2)", + expected: "⚠️ 🛠️ Exec failed: `make build`: Command failed with exit code 2", }, { name: "preserves a semantic test summary", meta: "run tests", error: "Command failed with exit code 1", - expected: "⚠️ 🛠️ Exec failed: `run tests` (exit 1)", + expected: "⚠️ 🛠️ Exec failed: `run tests`: Command failed with exit code 1", }, { name: "preserves a semantic deploy summary", meta: "run deploy", error: "Command failed with exit code 1", - expected: "⚠️ 🛠️ Exec failed: `run deploy` (exit 1)", + expected: "⚠️ 🛠️ Exec failed: `run deploy`: Command failed with exit code 1", }, { name: "preserves a compound summary", meta: "run tests → install dependencies", error: "Command failed with exit code 1", - expected: "⚠️ 🛠️ Exec failed: `run tests → install dependencies` (exit 1)", + expected: + "⚠️ 🛠️ Exec failed: `run tests → install dependencies`: Command failed with exit code 1", }, { name: "preserves an inline-script summary", meta: "run node inline script", error: "Command failed with exit code 1", - expected: "⚠️ 🛠️ Exec failed: `run node inline script` (exit 1)", + expected: "⚠️ 🛠️ Exec failed: `run node inline script`: Command failed with exit code 1", }, { name: "preserves a heredoc summary", meta: "run python3 inline script (heredoc)", error: "Command failed with exit code 1", - expected: "⚠️ 🛠️ Exec failed: `run python3 inline script (heredoc)` (exit 1)", + expected: + "⚠️ 🛠️ Exec failed: `run python3 inline script (heredoc)`: Command failed with exit code 1", }, { name: "preserves a sed summary", meta: "run sed on file", error: "Command failed with exit code 1", - expected: "⚠️ 🛠️ Exec failed: `run sed on file` (exit 1)", + expected: "⚠️ 🛠️ Exec failed: `run sed on file`: Command failed with exit code 1", }, { name: "preserves a pipeline summary", meta: "run tests -> show first 3 lines", error: "Command failed with exit code 1", - expected: "⚠️ 🛠️ Exec failed: `run tests -> show first 3 lines` (exit 1)", + expected: + "⚠️ 🛠️ Exec failed: `run tests -> show first 3 lines`: Command failed with exit code 1", }, ])("formats exec metadata: $name", ({ meta, error, expected }) => { const payloads = buildPayloads({ @@ -1095,6 +1111,7 @@ describe("buildEmbeddedRunPayloads", () => { mutatingAction: true, }, toolResultFormat: "markdown", + verboseLevel: "full", }); expectSinglePayloadSummary(payloads, { text: expected, isError: true }); @@ -1111,10 +1128,11 @@ describe("buildEmbeddedRunPayloads", () => { mutatingAction: true, }, toolResultFormat: "markdown", + verboseLevel: "full", }); expectSinglePayloadSummary(payloads, { - text: "⚠️ 🛠️ Bash failed: `show matrix-progress-@room-@alice:matrix-qa.test-!room:matrix-qa.test.txt` (workspace) (exit 1)", + text: "⚠️ 🛠️ Bash failed: `show matrix-progress-@room-@alice:matrix-qa.test-!room:matrix-qa.test.txt` (workspace): Command exited with code 1", isError: true, }); }); diff --git a/src/agents/embedded-agent-runner/run/payloads.process-errors.test.ts b/src/agents/embedded-agent-runner/run/payloads.process-errors.test.ts index bdd9bb70e34c..feb4e0ccc3e4 100644 --- a/src/agents/embedded-agent-runner/run/payloads.process-errors.test.ts +++ b/src/agents/embedded-agent-runner/run/payloads.process-errors.test.ts @@ -17,9 +17,10 @@ describe("buildEmbeddedRunPayloads process-error warnings", () => { const payloads = buildPayloads({ lastToolError, verboseLevel: "off" }); expectSingleToolErrorPayload(payloads, { - title: "Process: wild-lagoon", + title: "Process", absentDetail: "SAFE_PROCESS_STDERR", }); + expect(payloads[0]?.text).not.toContain("wild-lagoon"); expect(payloads[0]?.text).not.toContain(dummyTelegramToken); expect(payloads[0]?.text).toContain("exit 7"); expect(payloads[0]?.text).toContain("/verbose full"); diff --git a/src/agents/embedded-agent-runner/run/payloads.test-helpers.ts b/src/agents/embedded-agent-runner/run/payloads.test-helpers.ts index b84e408ebfab..fabe3b446fcc 100644 --- a/src/agents/embedded-agent-runner/run/payloads.test-helpers.ts +++ b/src/agents/embedded-agent-runner/run/payloads.test-helpers.ts @@ -11,7 +11,6 @@ export function buildPayloads(overrides: Partial = {}) { // verbose, tool-result, or current-assistant behavior explicitly. return buildEmbeddedRunPayloads({ assistantTexts: [], - toolMetas: [], lastAssistant: undefined, currentAssistant: overrides.currentAssistant === undefined @@ -19,7 +18,6 @@ export function buildPayloads(overrides: Partial = {}) { : overrides.currentAssistant, isCronTrigger: false, sessionKey: "session:telegram", - inlineToolResultsAllowed: false, verboseLevel: "off", reasoningLevel: "off", toolResultFormat: "plain", diff --git a/src/agents/embedded-agent-runner/run/payloads.test.ts b/src/agents/embedded-agent-runner/run/payloads.test.ts index 8746ef001455..383d63d6a62c 100644 --- a/src/agents/embedded-agent-runner/run/payloads.test.ts +++ b/src/agents/embedded-agent-runner/run/payloads.test.ts @@ -596,7 +596,7 @@ describe("buildEmbeddedRunPayloads tool-error warnings", () => { }); }); - it("surfaces exec tool errors for cron sessions even when verbose mode is off", () => { + it("keeps timed-out cron exec failures compact when verbose mode is off", () => { const payloads = buildPayloads({ lastToolError: { toolName: "exec", @@ -610,12 +610,12 @@ describe("buildEmbeddedRunPayloads tool-error warnings", () => { expectSingleToolErrorPayload(payloads, { title: "Exec", - detail: + absentDetail: "Command timed out after 1800 seconds. The command was terminated, but external side effects may already have completed. Verify the resulting state before retrying. Do not automatically rerun non-idempotent commands. Use a higher timeout only when the command is known to be safe to retry.", }); }); - it("surfaces timed-out exec tool errors for cron-triggered custom session keys", () => { + it("keeps timed-out cron-trigger exec failures compact", () => { const payloads = buildPayloads({ lastToolError: { toolName: "exec", @@ -629,11 +629,11 @@ describe("buildEmbeddedRunPayloads tool-error warnings", () => { expectSingleToolErrorPayload(payloads, { title: "Exec", - detail: "Command timed out after 1800 seconds.", + absentDetail: "Command timed out after 1800 seconds.", }); }); - it("surfaces heartbeat exec tool output details when the task run fails", () => { + it("keeps heartbeat exec commands and paths private without full verbosity", () => { const payloads = buildPayloads({ lastToolError: { toolName: "exec", @@ -646,8 +646,8 @@ describe("buildEmbeddedRunPayloads tool-error warnings", () => { }); expectSingleToolErrorPayload(payloads, { - title: "show last 20 lines", - detail: "No such file or directory", + title: "Exec", + absentDetail: "/home/user/.openclaw/workspace/memory/2026-06-04.md", }); }); diff --git a/src/agents/embedded-agent-runner/run/payloads.ts b/src/agents/embedded-agent-runner/run/payloads.ts index 5168d4cbc58c..64d22ff8de32 100644 --- a/src/agents/embedded-agent-runner/run/payloads.ts +++ b/src/agents/embedded-agent-runner/run/payloads.ts @@ -28,7 +28,6 @@ import { formatToolAggregate } from "../../../auto-reply/tool-meta.js"; import type { OpenClawConfig } from "../../../config/types.openclaw.js"; import { hasReplyPayloadContent } from "../../../interactive/payload.js"; import type { AssistantMessage } from "../../../llm/types.js"; -import { isCronSessionKey } from "../../../routing/session-key.js"; import { extractAssistantTextForPhase, parseAssistantTextSignature, @@ -38,7 +37,6 @@ import { sanitizeAssistantFinalAnswerText, sanitizeAssistantVisibleText, } from "../../../shared/text/assistant-visible-text.js"; -import { parseInlineDirectives } from "../../../utils/directive-tags.js"; import { BILLING_ERROR_USER_MESSAGE, formatAssistantErrorText, @@ -63,7 +61,6 @@ import { isLikelyMutatingToolName } from "../../tool-mutation.js"; import { buildSourceReplyPayloadState } from "./source-reply-payloads.js"; import { hasExplicitMutatingToolFailureAcknowledgement } from "./tool-failure-acknowledgement.js"; -type ToolMetaEntry = { toolName: string; meta?: string }; type ToolErrorWarningPolicy = { showWarning: boolean; includeDetails: boolean; @@ -152,30 +149,6 @@ function normalizeReplyTextForComparison(text: string): string { return normalizeTextForComparison(parseReplyDirectives(text).text ?? ""); } -function shouldIncludeToolErrorDetails(params: { - lastToolError: ToolErrorSummary; - isCronTrigger?: boolean; - isHeartbeatTrigger?: boolean; - sessionKey: string; - verboseLevel?: VerboseLevel; -}): boolean { - if (isVerboseToolDetailEnabled(params.verboseLevel)) { - return true; - } - if (!isExecLikeToolName(params.lastToolError.toolName)) { - return false; - } - // Heartbeat runs usually have no assistant reply to carry the command - // output, so keep exec details in the warning instead of a generic label. - if (params.isHeartbeatTrigger === true) { - return true; - } - return ( - params.lastToolError.timedOut === true && - (params.isCronTrigger === true || isCronSessionKey(params.sessionKey)) - ); -} - function shouldMarkNonTerminalToolErrorWarning(lastToolError: ToolErrorSummary): boolean { return lastToolError.middlewareError === true; } @@ -187,9 +160,11 @@ function formatToolErrorWarningText(params: { }): string { const terminalDiagnostic = params.lastToolError.terminalDiagnostic; if (terminalDiagnostic?.kind === "process") { - const toolLabel = formatToolAggregate("process", [terminalDiagnostic.sessionId], { - markdown: params.useMarkdown, - }); + const toolLabel = formatToolAggregate( + "process", + params.includeDetails ? [terminalDiagnostic.sessionId] : undefined, + { markdown: params.useMarkdown }, + ); const reason = terminalDiagnostic.reason.kind === "exit" ? `exit ${terminalDiagnostic.reason.exitCode}` @@ -208,7 +183,9 @@ function formatToolErrorWarningText(params: { const toolLabel = formatToolAggregate(params.lastToolError.toolName, undefined, { markdown: params.useMarkdown, }); - const subject = formatExecLikeFailureSubject(params.lastToolError.meta, params.useMarkdown); + const subject = params.includeDetails + ? formatExecLikeFailureSubject(params.lastToolError.meta, params.useMarkdown) + : ""; const conciseExitSuffix = params.includeDetails ? "" : formatConciseExecExitSuffix(params.lastToolError.error); @@ -221,7 +198,7 @@ function formatToolErrorWarningText(params: { const toolSummary = formatToolAggregate( params.lastToolError.toolName, - params.lastToolError.meta ? [params.lastToolError.meta] : undefined, + params.includeDetails && params.lastToolError.meta ? [params.lastToolError.meta] : undefined, { markdown: params.useMarkdown }, ); const errorSuffix = @@ -455,9 +432,6 @@ function resolveToolErrorWarningPolicy(params: { hasUserFacingFailureAcknowledgement: boolean; suppressToolErrors: boolean; suppressToolErrorWarnings?: boolean | (() => boolean | undefined); - isCronTrigger?: boolean; - isHeartbeatTrigger?: boolean; - sessionKey: string; verboseLevel?: VerboseLevel; }): ToolErrorWarningPolicy { const normalizedToolName = normalizeOptionalLowercaseString(params.lastToolError.toolName) ?? ""; @@ -469,10 +443,8 @@ function resolveToolErrorWarningPolicy(params: { } else { toolErrorWarningOverride = params.suppressToolErrorWarnings; } - const includeDetails = shouldIncludeToolErrorDetails({ - ...params, - verboseLevel: dynamicToolErrorWarningsDisabled ? "off" : params.verboseLevel, - }); + const includeDetails = + !dynamicToolErrorWarningsDisabled && isVerboseToolDetailEnabled(params.verboseLevel); const suppressToolErrorWarnings = toolErrorWarningOverride === true; if (suppressToolErrorWarnings) { return { showWarning: false, includeDetails }; @@ -523,7 +495,6 @@ export function buildEmbeddedRunPayloads(params: { assistantMessageIndex?: number; assistantTranscriptOwned?: boolean; assistantTranscriptIdempotencyKey?: string; - toolMetas: ToolMetaEntry[]; lastAssistant: AssistantMessage | undefined; currentAssistant?: AssistantMessage | null; lastToolError?: ToolErrorSummary; @@ -540,7 +511,6 @@ export function buildEmbeddedRunPayloads(params: { thinkingLevel?: ThinkLevel; toolResultFormat?: ToolResultFormat; suppressToolErrorWarnings?: boolean | (() => boolean | undefined); - inlineToolResultsAllowed: boolean; didSendViaMessagingTool?: boolean; didDeliverSourceReplyViaMessageTool?: boolean; messagingToolSentTargets?: MessagingToolSend[]; @@ -644,29 +614,6 @@ export function buildEmbeddedRunPayloads(params: { if (errorText) { replyItems.push({ text: errorText, isError: true }); } - const inlineToolResults = - params.inlineToolResultsAllowed && params.verboseLevel !== "off" && params.toolMetas.length > 0; - if (inlineToolResults) { - for (const { toolName, meta } of params.toolMetas) { - const agg = formatToolAggregate(toolName, meta ? [meta] : [], { - markdown: useMarkdown, - }); - const parsedAggregate = parseInlineDirectives(agg, { - stripAudioTag: true, - stripReplyTags: true, - }); - const cleanedText = parsedAggregate.text; - if (cleanedText) { - replyItems.push({ - text: cleanedText, - audioAsVoice: parsedAggregate.audioAsVoice, - replyToId: parsedAggregate.replyToId, - replyToTag: parsedAggregate.hasReplyTag, - replyToCurrent: parsedAggregate.replyToCurrent, - }); - } - } - } const reasoningText = suppressAssistantArtifacts || runAborted || lastAssistantNeedsErrorSurface ? "" @@ -814,9 +761,6 @@ export function buildEmbeddedRunPayloads(params: { hasUserFacingFailureAcknowledgement, suppressToolErrors: Boolean(params.config?.messages?.suppressToolErrors), suppressToolErrorWarnings: params.suppressToolErrorWarnings, - isCronTrigger: params.isCronTrigger, - isHeartbeatTrigger: params.isHeartbeatTrigger, - sessionKey: params.sessionKey, verboseLevel: params.verboseLevel, }); // Surface mutating failures unless the assistant explicitly acknowledged the failed action. diff --git a/src/agents/embedded-agent-runner/run/terminal-preparation.ts b/src/agents/embedded-agent-runner/run/terminal-preparation.ts index ecfda5d1136f..f04d6788f39f 100644 --- a/src/agents/embedded-agent-runner/run/terminal-preparation.ts +++ b/src/agents/embedded-agent-runner/run/terminal-preparation.ts @@ -166,7 +166,6 @@ export function prepareEmbeddedRunTerminal(input: { assistantMessageIndex: attempt.lastAssistantTextMessageIndex, assistantTranscriptOwned: attempt.assistantTranscriptOwned, assistantTranscriptIdempotencyKey: attempt.assistantTranscriptIdempotencyKey, - toolMetas: attempt.toolMetas, lastAssistant: payloadAssistant, currentAssistant: attempt.yieldDetected ? null : (payloadAssistant ?? null), lastToolError: attempt.lastToolError, @@ -184,7 +183,6 @@ export function prepareEmbeddedRunTerminal(input: { thinkingLevel: runParams.thinkLevel, toolResultFormat: input.resolvedToolResultFormat, suppressToolErrorWarnings: runParams.suppressToolErrorWarnings, - inlineToolResultsAllowed: false, didSendViaMessagingTool: attempt.didSendViaMessagingTool, didDeliverSourceReplyViaMessageTool: attempt.didDeliverSourceReplyViaMessageTool === true, messagingToolSentTargets: attempt.messagingToolSentTargets, diff --git a/src/agents/embedded-agent-subscribe.handlers.tools.test.ts b/src/agents/embedded-agent-subscribe.handlers.tools.test.ts index e16e3f0dcecb..add9b5d61b35 100644 --- a/src/agents/embedded-agent-subscribe.handlers.tools.test.ts +++ b/src/agents/embedded-agent-subscribe.handlers.tools.test.ts @@ -46,7 +46,6 @@ type ToolExecutionUpdateEvent = { partialResult?: unknown; hideFromChannelProgress?: boolean; }; -type PayloadToolMetas = Parameters[0]["toolMetas"]; function startTool(ctx: ToolHandlerContext, event: ToolExecutionStartEvent) { return handleToolExecutionStart(ctx, { type: "tool_execution_start", ...event }); @@ -228,19 +227,6 @@ function requireEvent( return event; } -function requirePayloadToolMetas( - toolMetas: ToolHandlerContext["state"]["toolMetas"], -): PayloadToolMetas { - return toolMetas.map((toolMeta) => { - if (!toolMeta.toolName) { - throw new Error("expected tool metadata to include toolName"); - } - return toolMeta.meta === undefined - ? { toolName: toolMeta.toolName } - : { toolName: toolMeta.toolName, meta: toolMeta.meta }; - }); -} - function requireString(value: unknown, label: string): string { if (typeof value !== "string") { throw new Error(`expected ${label}`); @@ -1499,6 +1485,26 @@ describe("handleToolExecutionEnd mutating failure recovery", () => { expect(JSON.stringify(onAgentEvent.mock.calls)).not.toContain("PTY_PLANTED_SECRET"); }); + it("records command sensitivity on namespaced tool results", async () => { + const { ctx, onAgentEvent } = createTestContext(); + await executeTool(ctx, { + toolName: "server.exec", + toolCallId: "tool-namespaced-exec", + args: { command: "echo private-sentinel" }, + isError: false, + result: { ok: true }, + }); + + expect(onAgentEvent).toHaveBeenCalledWith({ + stream: "tool", + data: expect.objectContaining({ + phase: "result", + commandBearing: true, + isError: false, + }), + }); + }); + it("does not export a validation-lookalike error from an executed tool", async () => { const { ctx, onAgentEvent } = createTestContext(); const error = @@ -2345,41 +2351,36 @@ describe("handleToolExecutionEnd timeout metadata", () => { it.each([ { - name: "uses raw exec metadata for failed tool payload warnings", + name: "records raw exec metadata without exposing it in default payload warnings", toolCallId: "tool-exec-raw-command", args: { command: "python3 /tmp/audit.py" }, meta: "run python3 /tmp/audit.py, `python3 /tmp/audit.py`", - warning: "⚠️ 🛠️ Exec failed: `python3 /tmp/audit.py` (exit 1)", }, { - name: "uses raw exec metadata for payload warnings when commands contain backticks", + name: "records backtick commands without exposing them in default payload warnings", toolCallId: "tool-exec-raw-command-backticks", args: { command: "node -e 'console.log(1, `x`)'" }, meta: "run node inline script, ``node -e 'console.log(1, `x`)'``", - warning: "⚠️ 🛠️ Exec failed: ``node -e 'console.log(1, `x`)'`` (exit 1)", }, { - name: "preserves node context in raw exec metadata payload warnings", + name: "records node context without exposing it in default payload warnings", toolCallId: "tool-exec-node-raw-command", args: { command: "python3 /tmp/audit.py", host: "node", node: "mac-1" }, meta: "run python3 /tmp/audit.py, node: mac-1, `python3 /tmp/audit.py`", - warning: "⚠️ 🛠️ Exec failed: `node: mac-1 · python3 /tmp/audit.py` (exit 1)", }, { - name: "preserves cwd context in raw exec metadata payload warnings", + name: "records cwd context without exposing it in default payload warnings", toolCallId: "tool-exec-cwd-raw-command", args: { command: "python3 audit.py", workdir: "/tmp/build" }, meta: "run python3 audit.py (in /tmp/build), `python3 audit.py`", - warning: "⚠️ 🛠️ Exec failed: `python3 audit.py (in /tmp/build)` (exit 1)", }, { - name: "preserves compact cwd labels in semantic raw exec metadata payload warnings", + name: "records compact cwd labels without exposing them in default payload warnings", toolCallId: "tool-exec-repo-raw-command", args: { command: "git status", workdir: "/Users/agent/Projects/OpenClaw" }, meta: "check git status (repo), `git status`", - warning: "⚠️ 🛠️ Exec failed: `git status (repo)` (exit 1)", }, - ])("$name", async ({ toolCallId, args, meta, warning }) => { + ])("$name", async ({ toolCallId, args, meta }) => { const { ctx } = createTestContext(); ctx.params.toolProgressDetail = "raw"; await executeTool(ctx, { @@ -2396,14 +2397,12 @@ describe("handleToolExecutionEnd timeout metadata", () => { expectRecordFields(ctx.state.lastToolError, "last tool error", { toolName: "exec", meta }); const payloads = buildEmbeddedRunPayloads({ assistantTexts: [], - toolMetas: requirePayloadToolMetas(ctx.state.toolMetas), lastAssistant: undefined, lastToolError: ctx.state.lastToolError, sessionKey: "agent:unit-session", toolResultFormat: "markdown", - inlineToolResultsAllowed: false, }); - expect(payloads[0]?.text).toBe(warning); + expect(payloads[0]?.text).toBe("⚠️ 🛠️ Exec failed (exit 1)"); }); it("records structured error codes for failed tool results", async () => { @@ -2732,14 +2731,12 @@ describe("handleToolExecutionEnd exec approval prompts", () => { }); const payloads = buildEmbeddedRunPayloads({ assistantTexts: [], - toolMetas: requirePayloadToolMetas(ctx.state.toolMetas), lastAssistant: undefined, lastToolError: ctx.state.lastToolError, sessionKey: "agent:unit-session", toolResultFormat: "markdown", - inlineToolResultsAllowed: false, }); - expect(payloads[0]?.text).toContain("approval prompt delivery"); + expect(payloads[0]?.text).toBe("⚠️ 🛠️ Exec failed"); }); it("records an actionable failure when unavailable-approval notice delivery rejects", async () => { diff --git a/src/agents/embedded-agent-subscribe.handlers.tools.ts b/src/agents/embedded-agent-subscribe.handlers.tools.ts index 87ecd80855aa..76f223d90c0f 100644 --- a/src/agents/embedded-agent-subscribe.handlers.tools.ts +++ b/src/agents/embedded-agent-subscribe.handlers.tools.ts @@ -94,6 +94,7 @@ import { parseExecApprovalResultText } from "./exec-approval-result.js"; import { buildAgentHarnessQuestionPromptPayload } from "./harness/user-input-bridge.js"; import { readMcpAppChannelView } from "./mcp-ui-resource.js"; import type { AgentEvent } from "./runtime/index.js"; +import { isCommandBearingToolCall } from "./tool-display.js"; import { createToolValidationErrorSummary, summarizeToolValidationError, @@ -430,6 +431,7 @@ function buildToolCallSummary( const mutation = buildToolMutationState(toolName, args, meta); return { meta, + commandBearing: isCommandBearingToolCall(toolName, args), instanceReplaySafe, mutatingAction: mutation.mutatingAction, replaySafe: @@ -1208,10 +1210,8 @@ export function handleToolExecutionStart( evt.replaySafe === true || ctx.params.replaySafeToolNames?.has(rawToolName) === true || ctx.params.replaySafeToolNames?.has(toolName) === true; - ctx.state.toolMetaById.set( - toolCallId, - buildToolCallSummary(toolName, args, meta, instanceReplaySafe, false), - ); + const callSummary = buildToolCallSummary(toolName, args, meta, instanceReplaySafe, false); + ctx.state.toolMetaById.set(toolCallId, callSummary); ctx.log.debug( `embedded run tool start: runId=${ctx.params.runId} tool=${toolName} toolCallId=${toolCallId}`, ); @@ -1236,9 +1236,13 @@ export function handleToolExecutionStart( status: "running", name: toolName, meta, + commandBearing: callSummary.commandBearing, toolCallId, startedAt, ...(hideFromChannelProgress ? { hideFromChannelProgress: true } : {}), + ...(callSummary.commandBearing && !isExecToolName(toolName) + ? { suppressChannelProgress: true } + : {}), }; emitTrackedItemEvent(ctx, itemData); // Best-effort typing signal; do not block tool summaries on slow emitters. @@ -1285,7 +1289,7 @@ export function handleToolExecutionStart( !ctx.state.toolSummaryById.has(toolCallId) ) { ctx.state.toolSummaryById.add(toolCallId); - ctx.emitToolSummary(toolName, meta); + ctx.emitToolSummary(toolName, meta, callSummary.commandBearing); } // Track messaging tool sends (pending until confirmed in tool_execution_end). @@ -1420,7 +1424,11 @@ export function handleToolExecutionUpdate( status: "running", name: toolName, toolCallId, + commandBearing: ctx.state.toolMetaById.get(toolCallId)?.commandBearing, ...(hideFromChannelProgress ? { hideFromChannelProgress: true } : {}), + ...(ctx.state.toolMetaById.get(toolCallId)?.commandBearing && !isExecTool + ? { suppressChannelProgress: true } + : {}), ...(toolProgress ? { progressText: toolProgress.text } : { meta: ctx.state.toolMetaById.get(toolCallId)?.meta }), @@ -1754,6 +1762,7 @@ export async function handleToolExecutionEnd( toolCallId, meta, isError: isToolError, + commandBearing: callSummary.commandBearing, result: eventResult, ...(toolErrorSummary ? { toolErrorSummary } : {}), ...(hideFromChannelProgress ? { hideFromChannelProgress: true } : {}), @@ -1769,10 +1778,14 @@ export async function handleToolExecutionEnd( status: isToolError ? "failed" : "completed", name: toolName, meta, + commandBearing: callSummary.commandBearing, toolCallId, startedAt: startData?.startTime, endedAt, ...(hideFromChannelProgress ? { hideFromChannelProgress: true } : {}), + ...(callSummary.commandBearing && !isExecToolName(toolName) + ? { suppressChannelProgress: true } + : {}), ...(isToolError && extractToolErrorMessage(sanitizedResult) ? { error: extractToolErrorMessage(sanitizedResult) } : {}), @@ -1786,6 +1799,7 @@ export async function handleToolExecutionEnd( toolCallId, meta, isError: isToolError, + commandBearing: callSummary.commandBearing, ...(toolErrorSummary ? { toolErrorSummary } : {}), ...(hideFromChannelProgress ? { hideFromChannelProgress: true } : {}), }, diff --git a/src/agents/embedded-agent-subscribe.handlers.types.ts b/src/agents/embedded-agent-subscribe.handlers.types.ts index 01c56d63f247..e519fb22423a 100644 --- a/src/agents/embedded-agent-subscribe.handlers.types.ts +++ b/src/agents/embedded-agent-subscribe.handlers.types.ts @@ -46,6 +46,7 @@ type EmbeddedSubscribeLogger = { /** Per-tool metadata tracked between tool start/update/end events. */ export type ToolCallSummary = { meta?: string; + commandBearing: boolean; instanceReplaySafe: boolean; replaySafe: boolean; mutatingAction: boolean; @@ -225,7 +226,11 @@ export type EmbeddedAgentSubscribeContext = { shouldEmitToolResult: () => boolean; shouldEmitToolOutput: () => boolean; - emitToolSummary: (toolName?: string, meta?: string) => void; + emitToolSummary: ( + toolName: string | undefined, + meta: string | undefined, + commandBearing: boolean, + ) => void; emitToolOutput: (toolName?: string, meta?: string, output?: string, result?: unknown) => void; stripBlockTags: ( text: string, @@ -377,7 +382,11 @@ export type ToolHandlerContext = { flushBlockReplyBuffer: () => void | Promise; shouldEmitToolResult: () => boolean; shouldEmitToolOutput: () => boolean; - emitToolSummary: (toolName?: string, meta?: string) => void; + emitToolSummary: ( + toolName: string | undefined, + meta: string | undefined, + commandBearing: boolean, + ) => void; emitToolOutput: (toolName?: string, meta?: string, output?: string, result?: unknown) => void; trimMessagingToolSent: () => void; consumeToolSendReceipt?: (toolCallId: string) => unknown; diff --git a/src/agents/embedded-agent-subscribe.subscribe-embedded-agent-session.compaction-and-tool-summaries.test.ts b/src/agents/embedded-agent-subscribe.subscribe-embedded-agent-session.compaction-and-tool-summaries.test.ts index 229db9dbb8b4..e027121e72b1 100644 --- a/src/agents/embedded-agent-subscribe.subscribe-embedded-agent-session.compaction-and-tool-summaries.test.ts +++ b/src/agents/embedded-agent-subscribe.subscribe-embedded-agent-session.compaction-and-tool-summaries.test.ts @@ -440,6 +440,32 @@ describe("subscribeEmbeddedAgentSession", () => { expect(onToolResult).toHaveBeenCalledTimes(1); }); + + it.each(["exec", "server.exec"])( + "hides command metadata for %s unless full verbose mode is enabled", + async (toolName) => { + const onToolResult = vi.fn(); + const toolHarness = createSubscribedSessionHarness({ + runId: "run-exec-on", + verboseLevel: "on", + onToolResult, + }); + + toolHarness.emit({ + type: "tool_execution_start", + toolName, + toolCallId: "tool-exec-on", + args: { command: "echo private-sentinel" }, + }); + + await Promise.resolve(); + + const payload = toolResultPayloadAt(onToolResult, 0); + expect(payload?.text).toContain(toolName === "exec" ? "Exec" : "Server.exec"); + expect(payload?.text).not.toContain("private-sentinel"); + }, + ); + it("includes browser action metadata in tool summaries", async () => { const onToolResult = vi.fn(); diff --git a/src/agents/embedded-agent-subscribe.ts b/src/agents/embedded-agent-subscribe.ts index a7e64c24b5f3..b502cf9affeb 100644 --- a/src/agents/embedded-agent-subscribe.ts +++ b/src/agents/embedded-agent-subscribe.ts @@ -852,8 +852,13 @@ export function subscribeEmbeddedAgentSession(params: SubscribeEmbeddedAgentSess }), }); }; - const emitToolSummary = (toolName?: string, meta?: string) => { - const agg = formatToolAggregate(toolName, meta ? [meta] : undefined, { + const emitToolSummary = ( + toolName: string | undefined, + meta: string | undefined, + commandBearing: boolean, + ) => { + const visibleMeta = params.verboseLevel === "full" || !commandBearing ? meta : undefined; + const agg = formatToolAggregate(toolName, visibleMeta ? [visibleMeta] : undefined, { markdown: useMarkdown, }); emitToolResultMessage(toolName, agg); diff --git a/src/agents/tool-display.ts b/src/agents/tool-display.ts index e578a9510e64..f70622ff5945 100644 --- a/src/agents/tool-display.ts +++ b/src/agents/tool-display.ts @@ -3,7 +3,11 @@ * * Builds redacted labels and compact details from tool metadata without affecting execution semantics. */ -import { normalizeLowercaseStringOrEmpty } from "@openclaw/normalization-core/string-coerce"; +import { asOptionalObjectRecord } from "@openclaw/normalization-core/record-coerce"; +import { + normalizeLowercaseStringOrEmpty, + normalizeOptionalString, +} from "@openclaw/normalization-core/string-coerce"; import { redactToolDetail } from "../logging/redact.js"; import { shortenHomeInString } from "../utils.js"; import { @@ -105,6 +109,15 @@ export function isShellToolDisplayName(name: string | undefined): boolean { return normalized === "bash" || normalized === "exec" || normalized === "shell"; } +/** Provider-defined tool names are not enough: namespaced tools can carry executable commands. */ +export function isCommandBearingToolCall(name: string | undefined, args?: unknown): boolean { + if (isShellToolDisplayName(name)) { + return true; + } + const command = asOptionalObjectRecord(args)?.command; + return typeof command === "string" && normalizeOptionalString(command) !== undefined; +} + /** Builds the compact one-line summary shown in transcripts and logs. */ export function formatToolSummary(display: ToolDisplay): string { const detail = formatToolDetail(display); diff --git a/src/agents/tools/message-tool.internal-source-reply.integration.test.ts b/src/agents/tools/message-tool.internal-source-reply.integration.test.ts index c786b302399b..53bbb6285baa 100644 --- a/src/agents/tools/message-tool.internal-source-reply.integration.test.ts +++ b/src/agents/tools/message-tool.internal-source-reply.integration.test.ts @@ -41,14 +41,12 @@ describe("WebChat message tool internal source reply", () => { const embeddedPayloads = buildEmbeddedRunPayloads({ assistantTexts: ["Visible automatic final reply."], - toolMetas: [], lastAssistant: undefined, currentAssistant: undefined, sessionKey: "agent:main:webchat:dm:dashboard", sourceReplyDeliveryMode: "automatic", messagingToolSourceReplyPayloads: sourceReply ? [sourceReply] : [], runId: "webchat-run", - inlineToolResultsAllowed: false, verboseLevel: "off", reasoningLevel: "off", toolResultFormat: "plain", diff --git a/src/auto-reply/get-reply-options.types.ts b/src/auto-reply/get-reply-options.types.ts index 5eb2e5003a98..6c0724265398 100644 --- a/src/auto-reply/get-reply-options.types.ts +++ b/src/auto-reply/get-reply-options.types.ts @@ -230,6 +230,7 @@ export type GetReplyOptions = { summary?: string; progressText?: string; meta?: string; + commandBearing?: boolean; approvalId?: string; approvalSlug?: string; suppressDurableProgress?: true; diff --git a/src/auto-reply/reply/acp-projector.test.ts b/src/auto-reply/reply/acp-projector.test.ts index ca8002f7517e..b9ae7f66f440 100644 --- a/src/auto-reply/reply/acp-projector.test.ts +++ b/src/auto-reply/reply/acp-projector.test.ts @@ -22,6 +22,7 @@ function createProjectorHarness( onProgress?: () => void; shouldSendToolSummaries?: boolean; shouldSendToolSummariesNow?: () => boolean; + shouldSendFullToolDetails?: boolean; }, ) { const deliveries: Delivery[] = []; @@ -29,6 +30,7 @@ function createProjectorHarness( cfg: createCfg(cfgOverrides), shouldSendToolSummaries: opts?.shouldSendToolSummaries ?? true, shouldSendToolSummariesNow: opts?.shouldSendToolSummariesNow, + shouldSendFullToolDetails: opts?.shouldSendFullToolDetails ?? false, deliver: async (kind, payload) => { deliveries.push({ kind, text: payload.text }); return true; @@ -145,6 +147,35 @@ async function runHiddenBoundaryCase(params: { } describe("createAcpReplyProjector", () => { + it("shows execute details only in full verbose mode", async () => { + const summary = createLiveToolLifecycleHarness(); + await emitTool(summary.projector, { + tag: "tool_call", + toolCallId: "call_execute_summary", + kind: "execute", + status: "in_progress", + title: "exec: cat /private/operator-file", + text: "exec: cat /private/operator-file (in_progress)", + }); + expect(summary.deliveries[0]?.text).not.toContain("cat /private/operator-file"); + expect(summary.deliveries[0]?.text).toContain("status=in_progress"); + + const full = createStreamHarness( + "live", + { tagVisibility: { tool_call: true } }, + { shouldSendFullToolDetails: true }, + ); + await emitTool(full.projector, { + tag: "tool_call", + toolCallId: "call_execute_full", + kind: "execute", + status: "in_progress", + title: "exec: cat /private/operator-file", + text: "exec: cat /private/operator-file (in_progress)", + }); + expect(full.deliveries[0]?.text).toContain("cat /private/operator-file"); + }); + it("reports progress for ACP runtime events before delivery filtering", async () => { const onProgress = vi.fn(); const { projector } = createProjectorHarness(undefined, { onProgress }); diff --git a/src/auto-reply/reply/acp-projector.ts b/src/auto-reply/reply/acp-projector.ts index f13301290a3f..ab175d7b6483 100644 --- a/src/auto-reply/reply/acp-projector.ts +++ b/src/auto-reply/reply/acp-projector.ts @@ -141,9 +141,14 @@ function shouldFlushLiveBufferOnIdle(text: string): boolean { return false; } -function renderToolSummaryText(event: Extract): string { +function renderToolSummaryText( + event: Extract, + shouldSendFullToolDetails: boolean, +): string { const detailParts: string[] = []; - const title = normalizeOptionalString(event.title); + const commandBearing = normalizeOptionalLowercaseString(event.kind) === "execute"; + const title = + shouldSendFullToolDetails || !commandBearing ? normalizeOptionalString(event.title) : undefined; if (title) { detailParts.push(title); } @@ -151,7 +156,8 @@ function renderToolSummaryText(event: Extract boolean; + shouldSendFullToolDetails: boolean; deliver: ( kind: ReplyDispatchKind, payload: ReplyPayload, @@ -344,7 +351,7 @@ export function createAcpReplyProjector(params: { return; } - const renderedToolSummary = renderToolSummaryText(event); + const renderedToolSummary = renderToolSummaryText(event, params.shouldSendFullToolDetails); const toolSummary = truncateText(renderedToolSummary, settings.maxSessionUpdateChars); const hash = hashText(renderedToolSummary); const toolCallId = normalizeOptionalString(event.toolCallId); diff --git a/src/auto-reply/reply/agent-runner-cli-candidate.ts b/src/auto-reply/reply/agent-runner-cli-candidate.ts index 5cf3bc39be72..b1aa38820659 100644 --- a/src/auto-reply/reply/agent-runner-cli-candidate.ts +++ b/src/auto-reply/reply/agent-runner-cli-candidate.ts @@ -124,8 +124,10 @@ export async function runCliFallbackCandidate(params: { const cliCurrentMessageId = isRestartSentinelContinuation ? turn.sessionCtx.ReplyToId : (turn.sessionCtx.MessageSidFull ?? turn.sessionCtx.MessageSid); + const commandDetailsVisible = turn.resolvedVerboseLevel === "full"; const cliToolSummaryTracker = createCliToolSummaryTracker({ detailMode: turn.toolProgressDetail, + commandDetailsVisible, shouldEmitToolResult: turn.shouldEmitToolResult, shouldEmitToolOutput: turn.shouldEmitToolOutput, deliver: async (payload) => { @@ -136,21 +138,24 @@ export async function runCliFallbackCandidate(params: { // so the terminal fact has to be projected here. The embedded path gets this // from the shared agent-event handler; without it a failed CLI command renders // exactly like one that succeeded. - const deliverCliCommandOutcome = async (payload: { - name: string | undefined; - phase: "start" | "update" | "result"; - args: Record | undefined; - toolCallId?: string; - isError?: boolean; - result?: unknown; - }) => { + const deliverCliCommandOutcome = async ( + payload: { + name: string | undefined; + phase: "start" | "update" | "result"; + args: Record | undefined; + toolCallId?: string; + isError?: boolean; + result?: unknown; + }, + commandBearing: boolean, + ) => { const onCommandOutput = turn.opts?.onCommandOutput; if (!onCommandOutput) { return; } const commandOutput = buildCommandOutputFromToolResultEvent({ stream: "tool", - data: { ...payload }, + data: { ...payload, commandBearing }, }); if (commandOutput) { await onCommandOutput(commandOutput); @@ -244,9 +249,9 @@ export async function runCliFallbackCandidate(params: { }, onToolEvent: async (payload) => { if (!params.preserveProgressCallbackStartOrder) { - await cliToolSummaryTracker.noteToolEvent(payload); + const commandBearing = await cliToolSummaryTracker.noteToolEvent(payload); if (payload.phase === "result") { - await deliverCliCommandOutcome(payload); + await deliverCliCommandOutcome(payload, commandBearing); return; } const { name, phase, args, toolCallId } = payload; @@ -264,8 +269,8 @@ export async function runCliFallbackCandidate(params: { } const summaryPromise = cliToolSummaryTracker.noteToolEvent(payload); if (payload.phase === "result") { - await summaryPromise; - await deliverCliCommandOutcome(payload); + const commandBearing = await summaryPromise; + await deliverCliCommandOutcome(payload, commandBearing); return; } const { name, phase, args, toolCallId } = payload; diff --git a/src/auto-reply/reply/agent-runner-cli-dispatch.test.ts b/src/auto-reply/reply/agent-runner-cli-dispatch.test.ts index b68fd89fec05..5410f2874300 100644 --- a/src/auto-reply/reply/agent-runner-cli-dispatch.test.ts +++ b/src/auto-reply/reply/agent-runner-cli-dispatch.test.ts @@ -734,25 +734,32 @@ describe("createCliToolSummaryTracker", () => { result: { content: [{ type: "text", text: "Wed Jun 10 2026" }] }, }; - it("delivers a tool summary for a result using meta captured at start", async () => { - const deliver = vi.fn(); - const tracker = createCliToolSummaryTracker({ - shouldEmitToolResult: () => true, - shouldEmitToolOutput: () => false, - deliver, - }); - await tracker.noteToolEvent(startEvent); - await tracker.noteToolEvent(resultEvent); - expect(deliver).toHaveBeenCalledTimes(1); - const payload = deliver.mock.calls[0]?.[0] as { text: string; isError?: boolean }; - expect(payload.text).toContain("date -u"); - expect(payload.text).not.toContain("Wed Jun 10 2026"); - expect(payload.isError).toBeUndefined(); - }); + it.each(["exec", "server.exec"])( + "delivers a safe %s summary using metadata captured at start", + async (name) => { + const deliver = vi.fn(); + const tracker = createCliToolSummaryTracker({ + commandDetailsVisible: false, + shouldEmitToolResult: () => true, + shouldEmitToolOutput: () => false, + deliver, + }); + await tracker.noteToolEvent({ ...startEvent, name }); + const commandBearing = await tracker.noteToolEvent({ ...resultEvent, name }); + expect(commandBearing).toBe(true); + expect(deliver).toHaveBeenCalledTimes(1); + const payload = deliver.mock.calls[0]?.[0] as { text: string; isError?: boolean }; + expect(payload.text).toContain(name === "exec" ? "Exec" : "Server.exec"); + expect(payload.text).not.toContain("date -u"); + expect(payload.text).not.toContain("Wed Jun 10 2026"); + expect(payload.isError).toBeUndefined(); + }, + ); it("appends the tool output block when full verbose output is enabled", async () => { const deliver = vi.fn(); const tracker = createCliToolSummaryTracker({ + commandDetailsVisible: true, shouldEmitToolResult: () => true, shouldEmitToolOutput: () => true, deliver, @@ -767,6 +774,7 @@ describe("createCliToolSummaryTracker", () => { it("renders top-level structured CLI results in full verbose output", async () => { const deliver = vi.fn(); const tracker = createCliToolSummaryTracker({ + commandDetailsVisible: true, shouldEmitToolResult: () => true, shouldEmitToolOutput: () => true, deliver, @@ -785,6 +793,7 @@ describe("createCliToolSummaryTracker", () => { it("emits nothing while tool summaries are disabled", async () => { const deliver = vi.fn(); const tracker = createCliToolSummaryTracker({ + commandDetailsVisible: false, shouldEmitToolResult: () => false, shouldEmitToolOutput: () => false, deliver, @@ -797,6 +806,7 @@ describe("createCliToolSummaryTracker", () => { it("propagates tool errors on the summary payload", async () => { const deliver = vi.fn(); const tracker = createCliToolSummaryTracker({ + commandDetailsVisible: false, shouldEmitToolResult: () => true, shouldEmitToolOutput: () => false, deliver, @@ -810,6 +820,7 @@ describe("createCliToolSummaryTracker", () => { it("summarizes results without a tracked start event", async () => { const deliver = vi.fn(); const tracker = createCliToolSummaryTracker({ + commandDetailsVisible: false, shouldEmitToolResult: () => true, shouldEmitToolOutput: () => false, deliver, diff --git a/src/auto-reply/reply/agent-runner-cli-dispatch.ts b/src/auto-reply/reply/agent-runner-cli-dispatch.ts index be0ed33863a7..78df14cda8e7 100644 --- a/src/auto-reply/reply/agent-runner-cli-dispatch.ts +++ b/src/auto-reply/reply/agent-runner-cli-dispatch.ts @@ -18,6 +18,7 @@ import { resolveAgentRunAbortLifecycleFields, resolveAgentRunErrorLifecycleFields, } from "../../agents/run-termination.js"; +import { isCommandBearingToolCall } from "../../agents/tool-display.js"; import { normalizeAgentPlanSteps } from "../../channels/streaming.js"; import type { SessionEntry } from "../../config/sessions.js"; import { updateSessionEntry } from "../../config/sessions/session-accessor.js"; @@ -301,33 +302,36 @@ function createToolEventBridge(params: { */ export function createCliToolSummaryTracker(params: { detailMode?: "explain" | "raw"; + commandDetailsVisible: boolean; shouldEmitToolResult: () => boolean; shouldEmitToolOutput: () => boolean; deliver: (payload: { text: string; isError?: boolean }) => Promise | void; }) { - const metaByCallId = new Map(); + const toolByCallId = new Map(); return { - noteToolEvent: async (payload: CliToolEventPayload): Promise => { + noteToolEvent: async (payload: CliToolEventPayload): Promise => { if (payload.phase === "start") { if (payload.toolCallId && payload.name) { - metaByCallId.set( - payload.toolCallId, - inferToolMetaFromArgs(payload.name, payload.args, { + toolByCallId.set(payload.toolCallId, { + meta: inferToolMetaFromArgs(payload.name, payload.args, { detailMode: params.detailMode ?? "explain", }), - ); + commandBearing: isCommandBearingToolCall(payload.name, payload.args), + }); } - return; + return false; } if (payload.phase !== "result") { - return; + return false; } - const meta = payload.toolCallId ? metaByCallId.get(payload.toolCallId) : undefined; + const storedTool = payload.toolCallId ? toolByCallId.get(payload.toolCallId) : undefined; + const meta = + params.commandDetailsVisible || !storedTool?.commandBearing ? storedTool?.meta : undefined; if (payload.toolCallId) { - metaByCallId.delete(payload.toolCallId); + toolByCallId.delete(payload.toolCallId); } if (!params.shouldEmitToolResult()) { - return; + return storedTool?.commandBearing === true; } const aggregate = formatToolAggregate(payload.name, meta ? [meta] : undefined, { markdown: true, @@ -340,9 +344,10 @@ export function createCliToolSummaryTracker(params: { } } if (!text.trim()) { - return; + return storedTool?.commandBearing === true; } await params.deliver({ text, ...(payload.isError === true ? { isError: true } : {}) }); + return storedTool?.commandBearing === true; }, }; } diff --git a/src/auto-reply/reply/agent-runner-command-output.test.ts b/src/auto-reply/reply/agent-runner-command-output.test.ts index 359ac0b88996..ff3ef26072fb 100644 --- a/src/auto-reply/reply/agent-runner-command-output.test.ts +++ b/src/auto-reply/reply/agent-runner-command-output.test.ts @@ -48,6 +48,25 @@ describe("buildCommandOutputFromToolResultEvent", () => { expect(buildFromCliResult({ isError: false, result: "alpha" })?.status).toBe("completed"); }); + it("projects a safe terminal state from a namespaced command-bearing result", () => { + const built = buildCommandOutputFromToolResultEvent({ + stream: "tool", + data: { + phase: "result", + name: "server.exec", + toolCallId: "call-1", + commandBearing: true, + isError: false, + }, + }); + + expect(built).toMatchObject({ + name: "server.exec", + status: "completed", + toolCallId: "call-1", + }); + }); + it("prefers an explicit status and structured fields when present", () => { const built = buildCommandOutputFromToolResultEvent({ stream: "tool", diff --git a/src/auto-reply/reply/agent-runner-command-output.ts b/src/auto-reply/reply/agent-runner-command-output.ts index a8d2e3d13e16..26cbfca5de2a 100644 --- a/src/auto-reply/reply/agent-runner-command-output.ts +++ b/src/auto-reply/reply/agent-runner-command-output.ts @@ -49,7 +49,8 @@ export function buildCommandOutputFromToolResultEvent(evt: { return undefined; } const name = readStringValue(evt.data.name); - if (!name || !isCommandToolName(name)) { + const commandBearing = evt.data.commandBearing === true; + if (!name || (!commandBearing && !isCommandToolName(name))) { return undefined; } const result = readRecordValue(evt.data.result); @@ -82,6 +83,7 @@ export function buildCommandOutputFromToolResultEvent(evt: { exitCode !== undefined || durationMs !== undefined || cwd !== undefined || + (commandBearing && typeof evt.data.isError === "boolean") || (result !== undefined && Object.keys(result).length > 0); if (!hasConcreteCommandResult) { return undefined; diff --git a/src/auto-reply/reply/agent-runner-event-handler.ts b/src/auto-reply/reply/agent-runner-event-handler.ts index 547f8e5b7196..54a96c757f51 100644 --- a/src/auto-reply/reply/agent-runner-event-handler.ts +++ b/src/auto-reply/reply/agent-runner-event-handler.ts @@ -195,6 +195,7 @@ export function createAgentRunEventHandler(params: { summary: readStringValue(evt.data.summary), progressText: readStringValue(evt.data.progressText), meta: readStringValue(evt.data.meta), + commandBearing: evt.data.commandBearing === true, approvalId: readStringValue(evt.data.approvalId), approvalSlug: readStringValue(evt.data.approvalSlug), }); diff --git a/src/auto-reply/reply/dispatch-acp.test.ts b/src/auto-reply/reply/dispatch-acp.test.ts index 1addce11e023..11296bd14578 100644 --- a/src/auto-reply/reply/dispatch-acp.test.ts +++ b/src/auto-reply/reply/dispatch-acp.test.ts @@ -396,6 +396,7 @@ async function runDispatch(params: { } : {}), shouldSendToolSummaries: true, + shouldSendFullToolDetails: false, bypassForCommand: false, toolsAllow: params.toolsAllow, ...(params.onReplyStart ? { onReplyStart: params.onReplyStart } : {}), diff --git a/src/auto-reply/reply/dispatch-acp.ts b/src/auto-reply/reply/dispatch-acp.ts index 85b89fff5c35..66bfa0a1b34f 100644 --- a/src/auto-reply/reply/dispatch-acp.ts +++ b/src/auto-reply/reply/dispatch-acp.ts @@ -432,6 +432,7 @@ export async function tryDispatchAcpReply(params: { originatingChatType?: ChatType; shouldSendToolSummaries: boolean; shouldSendToolSummariesNow?: () => boolean; + shouldSendFullToolDetails: boolean; bypassForCommand: boolean; onReplyStart?: () => Promise | void; recordProcessed: DispatchProcessedRecorder; @@ -549,6 +550,7 @@ export async function tryDispatchAcpReply(params: { cfg: params.cfg, shouldSendToolSummaries: params.shouldSendToolSummaries, shouldSendToolSummariesNow: params.shouldSendToolSummariesNow, + shouldSendFullToolDetails: params.shouldSendFullToolDetails, deliver: delivery.deliver, onProgress: markAcpProgress, provider: params.ctx.Surface ?? params.ctx.Provider, diff --git a/src/auto-reply/reply/dispatch-from-config.choose-route.ts b/src/auto-reply/reply/dispatch-from-config.choose-route.ts index fc38b8c24737..69c7b6d302e8 100644 --- a/src/auto-reply/reply/dispatch-from-config.choose-route.ts +++ b/src/auto-reply/reply/dispatch-from-config.choose-route.ts @@ -638,6 +638,7 @@ export async function chooseDispatchRoute(state: PrepareDispatchOperationReadySt originatingThreadId: routeReplyThreadId, originatingChatType: replyRoute.chatType, shouldSendToolSummaries, + shouldSendFullToolDetails: state.shouldEmitFullVerboseProgress(), sendPolicy: state.sendPolicy, }), { diff --git a/src/auto-reply/reply/dispatch-from-config.execute.ts b/src/auto-reply/reply/dispatch-from-config.execute.ts index ba6c58ebbee3..ead9017c3811 100644 --- a/src/auto-reply/reply/dispatch-from-config.execute.ts +++ b/src/auto-reply/reply/dispatch-from-config.execute.ts @@ -681,6 +681,7 @@ export async function executeDispatch(state: PrepareDispatchExecutionReadyState) originatingThreadId: state.routeReplyThreadId, originatingChatType: replyRoute.chatType, shouldSendToolSummaries: state.shouldSendToolSummaries, + shouldSendFullToolDetails: state.shouldEmitFullVerboseProgress(), sendPolicy: state.sendPolicy, isTailDispatch: true, }), diff --git a/src/auto-reply/reply/progress-narrator.test.ts b/src/auto-reply/reply/progress-narrator.test.ts index ebdf04092dba..61647f83f50a 100644 --- a/src/auto-reply/reply/progress-narrator.test.ts +++ b/src/auto-reply/reply/progress-narrator.test.ts @@ -449,6 +449,11 @@ describe("progress narration through reply options", () => { phase: "start", args: { command: "cat /etc/hosts" }, }); + narrator.noteToolStart({ + name: "server.exec", + phase: "start", + args: { command: "cat /etc/hosts" }, + }); await flushNarrations(); narrator.noteCommandOutput({ name: "exec", diff --git a/src/auto-reply/reply/progress-narrator.ts b/src/auto-reply/reply/progress-narrator.ts index 9fbce838099a..966695e55fbd 100644 --- a/src/auto-reply/reply/progress-narrator.ts +++ b/src/auto-reply/reply/progress-narrator.ts @@ -4,10 +4,11 @@ import { flushSessionActivityAssistantNote, noteSessionActivityEvent, } from "../../agents/session-activity-notes.js"; +import { isCommandBearingToolCall } from "../../agents/tool-display.js"; import { resolveUtilityModelRefForAgent } from "../../agents/utility-model.js"; import { PROGRESS_STATUS_PREAMBLE_FRESH_MS } from "../../channels/progress-draft-compositor.js"; import { sanitizeProgressStatusText } from "../../channels/progress-draft-status-text.js"; -import { isChannelProgressDraftWorkToolName, isCommandToolName } from "../../channels/streaming.js"; +import { isChannelProgressDraftWorkToolName } from "../../channels/streaming.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { logVerbose } from "../../globals.js"; import type { AgentEventPayload, AgentEventStream } from "../../infra/agent-events.js"; @@ -324,8 +325,8 @@ function createProgressNarrator(params: { if (payload.phase !== "start" || !isChannelProgressDraftWorkToolName(payload.name)) { return; } - // Same command-tool set the draft formatter uses for commandText policy. - const hideDetail = params.hideCommandText === true && isCommandToolName(payload.name); + const hideDetail = + params.hideCommandText === true && isCommandBearingToolCall(payload.name, payload.args); recordEvent("tool", { phase: "start", name: payload.name, diff --git a/src/channels/streaming.test.ts b/src/channels/streaming.test.ts index 8b432adedbfb..907a6b48c312 100644 --- a/src/channels/streaming.test.ts +++ b/src/channels/streaming.test.ts @@ -3,6 +3,7 @@ import { inferToolMetaFromArgs } from "../agents/embedded-agent-utils.js"; import { formatToolAggregate } from "../auto-reply/tool-meta.js"; import { buildChannelProgressDraftLine, + buildChannelProgressDraftLineForEntry, formatChannelProgressDraftText, formatPlanChecklistLines, normalizeAgentPlanSteps, @@ -103,6 +104,65 @@ describe("buildChannelProgressDraftLine", () => { }); expect(line?.text).not.toContain("command false"); }); + + it("defaults entry-backed command progress to status and preserves explicit raw text", () => { + const input = { + event: "tool" as const, + name: "exec", + phase: "start", + args: { command: "echo private" }, + }; + + expect(buildChannelProgressDraftLineForEntry(undefined, input)?.text).toBe("🛠️ Exec"); + expect( + buildChannelProgressDraftLineForEntry( + { streaming: { progress: { commandText: "raw" } } }, + input, + { detailMode: "raw" }, + )?.text, + ).toContain("echo private"); + + const commandOutput = { + event: "command-output" as const, + name: "exec", + phase: "end", + title: "echo private", + exitCode: 1, + }; + expect(buildChannelProgressDraftLine(commandOutput)?.text).toBe("🛠️ exit 1"); + expect(buildChannelProgressDraftLine(commandOutput, { commandText: "raw" })?.text).toContain( + "echo private", + ); + + const item = { + event: "item" as const, + itemKind: "command", + name: "exec", + phase: "start", + status: "running", + meta: "echo private", + }; + expect(buildChannelProgressDraftLine(item)?.text).toBe("🛠️ Exec"); + expect(buildChannelProgressDraftLine(item, { commandText: "raw" })?.text).toContain( + "echo private", + ); + + const namespaced = { + event: "tool" as const, + name: "server.exec", + phase: "start", + args: { command: "echo private" }, + }; + expect(buildChannelProgressDraftLineForEntry(undefined, namespaced)?.text).not.toContain( + "echo private", + ); + expect( + buildChannelProgressDraftLineForEntry( + { streaming: { progress: { commandText: "raw" } } }, + namespaced, + )?.text, + ).toContain("echo private"); + }); }); // Claude CLI tool names arrive capitalized. Each tool call is described twice — @@ -117,13 +177,16 @@ describe("backend tool-name casing", () => { ] as const; it.each(CLI_TOOL_CALLS)("renders $name as one line", ({ name, args }) => { - const structured = buildChannelProgressDraftLine({ - event: "tool", - toolCallId: "call-1", - name, - phase: "start", - args, - }); + const structured = buildChannelProgressDraftLine( + { + event: "tool", + toolCallId: "call-1", + name, + phase: "start", + args, + }, + { commandText: "raw" }, + ); const meta = inferToolMetaFromArgs(name, args, { detailMode: "explain" }); const summaryText = formatToolAggregate(name, meta ? [meta] : undefined, { markdown: true }); @@ -136,16 +199,19 @@ describe("backend tool-name casing", () => { expect(merged).toHaveLength(1); }); - it("keeps the shell detail so renderers never fall back to prefixed text", () => { + it("keeps explicit raw shell detail so renderers never fall back to prefixed text", () => { // Without detail, a renderer composing "