@bastani/atomic 0.9.28-alpha.1 → 0.9.28-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +60 -0
- package/dist/builtin/intercom/package.json +1 -1
- package/dist/builtin/mcp/native-client-licenses/NOTICE +2 -0
- package/dist/builtin/mcp/package.json +1 -1
- package/dist/builtin/subagents/package.json +1 -1
- package/dist/builtin/web-access/package.json +1 -1
- package/dist/builtin/workflows/CHANGELOG.md +34 -0
- package/dist/builtin/workflows/builtin/{chunk-wz8v67bn.js → chunk-aqv8ny38.js} +257 -259
- package/dist/builtin/workflows/builtin/{chunk-f61w0hpm.js → chunk-br4ac9a3.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-tecnpe8j.js → chunk-p3xmajmj.js} +438 -39
- package/dist/builtin/workflows/builtin/chunk-p6jagvyf.js +8 -0
- package/dist/builtin/workflows/builtin/goal.js +2 -2
- package/dist/builtin/workflows/builtin/index.js +4 -4
- package/dist/builtin/workflows/builtin/ralph.js +2 -2
- package/dist/builtin/workflows/package.json +1 -1
- package/dist/builtin/workflows/src/authoring.d.ts +14 -0
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +111102 -110218
- package/dist/builtin/workflows/src/index.js +42284 -41141
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +16 -11
- package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +16 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +8 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/credential-print.d.ts +1 -1
- package/dist/cli/credential-print.d.ts.map +1 -1
- package/dist/cli/credential-print.js +2 -56
- package/dist/cli/credential-print.js.map +1 -1
- package/dist/config.d.ts +2 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +4 -2
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-accessors.d.ts.map +1 -1
- package/dist/core/agent-session-accessors.js +6 -1
- package/dist/core/agent-session-accessors.js.map +1 -1
- package/dist/core/agent-session-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-compaction.js +20 -3
- package/dist/core/agent-session-compaction.js.map +1 -1
- package/dist/core/agent-session-events.d.ts.map +1 -1
- package/dist/core/agent-session-events.js +2 -1
- package/dist/core/agent-session-events.js.map +1 -1
- package/dist/core/agent-session-extension-bindings.d.ts +6 -0
- package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
- package/dist/core/agent-session-extension-bindings.js +90 -9
- package/dist/core/agent-session-extension-bindings.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +3 -1
- package/dist/core/agent-session-methods.d.ts.map +1 -1
- package/dist/core/agent-session-methods.js.map +1 -1
- package/dist/core/agent-session-prompt.d.ts.map +1 -1
- package/dist/core/agent-session-prompt.js +14 -1
- package/dist/core/agent-session-prompt.js.map +1 -1
- package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
- package/dist/core/agent-session-tool-registry.js +1 -0
- package/dist/core/agent-session-tool-registry.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +2 -0
- package/dist/core/agent-session-types.d.ts.map +1 -1
- package/dist/core/agent-session-types.js.map +1 -1
- package/dist/core/agent-session.d.ts +1 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +6 -1
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +22 -4
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/child-session-options.d.ts.map +1 -1
- package/dist/core/child-session-options.js +17 -2
- package/dist/core/child-session-options.js.map +1 -1
- package/dist/core/compaction/classifier-compaction.d.ts +13 -0
- package/dist/core/compaction/classifier-compaction.d.ts.map +1 -0
- package/dist/core/compaction/classifier-compaction.js +110 -0
- package/dist/core/compaction/classifier-compaction.js.map +1 -0
- package/dist/core/compaction/compaction-boundary.d.ts.map +1 -1
- package/dist/core/compaction/compaction-boundary.js +2 -6
- package/dist/core/compaction/compaction-boundary.js.map +1 -1
- package/dist/core/compaction/compaction-runner.d.ts +16 -1
- package/dist/core/compaction/compaction-runner.d.ts.map +1 -1
- package/dist/core/compaction/compaction-runner.js +97 -12
- package/dist/core/compaction/compaction-runner.js.map +1 -1
- package/dist/core/compaction/compaction-types.d.ts +18 -1
- package/dist/core/compaction/compaction-types.d.ts.map +1 -1
- package/dist/core/compaction/compaction-types.js +1 -1
- package/dist/core/compaction/compaction-types.js.map +1 -1
- package/dist/core/compaction/fallback-planner.d.ts +1 -0
- package/dist/core/compaction/fallback-planner.d.ts.map +1 -1
- package/dist/core/compaction/fallback-planner.js +2 -0
- package/dist/core/compaction/fallback-planner.js.map +1 -1
- package/dist/core/compaction/index.d.ts +3 -0
- package/dist/core/compaction/index.d.ts.map +1 -1
- package/dist/core/compaction/index.js +3 -0
- package/dist/core/compaction/index.js.map +1 -1
- package/dist/core/compaction/model-resolver.d.ts +16 -0
- package/dist/core/compaction/model-resolver.d.ts.map +1 -0
- package/dist/core/compaction/model-resolver.js +18 -0
- package/dist/core/compaction/model-resolver.js.map +1 -0
- package/dist/core/compaction/morph-compaction.d.ts +14 -0
- package/dist/core/compaction/morph-compaction.d.ts.map +1 -0
- package/dist/core/compaction/morph-compaction.js +99 -0
- package/dist/core/compaction/morph-compaction.js.map +1 -0
- package/dist/core/compaction/pi-summary-fallback.d.ts +34 -0
- package/dist/core/compaction/pi-summary-fallback.d.ts.map +1 -0
- package/dist/core/compaction/pi-summary-fallback.js +357 -0
- package/dist/core/compaction/pi-summary-fallback.js.map +1 -0
- package/dist/core/compaction/planner-outcome.d.ts +10 -6
- package/dist/core/compaction/planner-outcome.d.ts.map +1 -1
- package/dist/core/compaction/planner-outcome.js +11 -4
- package/dist/core/compaction/planner-outcome.js.map +1 -1
- package/dist/core/compaction/range-planner-diagnostics.d.ts +3 -1
- package/dist/core/compaction/range-planner-diagnostics.d.ts.map +1 -1
- package/dist/core/compaction/range-planner-diagnostics.js +11 -0
- package/dist/core/compaction/range-planner-diagnostics.js.map +1 -1
- package/dist/core/compaction/range-planner.d.ts +3 -3
- package/dist/core/compaction/range-planner.d.ts.map +1 -1
- package/dist/core/compaction/range-planner.js +59 -28
- package/dist/core/compaction/range-planner.js.map +1 -1
- package/dist/core/compaction/region-trimming.d.ts.map +1 -1
- package/dist/core/compaction/region-trimming.js +7 -0
- package/dist/core/compaction/region-trimming.js.map +1 -1
- package/dist/core/compaction/structured-compaction-input.d.ts +19 -0
- package/dist/core/compaction/structured-compaction-input.d.ts.map +1 -0
- package/dist/core/compaction/structured-compaction-input.js +70 -0
- package/dist/core/compaction/structured-compaction-input.js.map +1 -0
- package/dist/core/compaction/transcript-serialization.d.ts +1 -0
- package/dist/core/compaction/transcript-serialization.d.ts.map +1 -1
- package/dist/core/compaction/transcript-serialization.js +26 -0
- package/dist/core/compaction/transcript-serialization.js.map +1 -1
- package/dist/core/extensions/api-types.d.ts +2 -2
- package/dist/core/extensions/api-types.d.ts.map +1 -1
- package/dist/core/extensions/api-types.js.map +1 -1
- package/dist/core/extensions/context-types.d.ts +1 -0
- package/dist/core/extensions/context-types.d.ts.map +1 -1
- package/dist/core/extensions/context-types.js.map +1 -1
- package/dist/core/extensions/loader-api.js.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.d.ts +3 -4
- package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.js +14 -9
- package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
- package/dist/core/extensions/runner-context.d.ts +10 -4
- package/dist/core/extensions/runner-context.d.ts.map +1 -1
- package/dist/core/extensions/runner-context.js +47 -3
- package/dist/core/extensions/runner-context.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +10 -3
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +31 -7
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/tool-events.d.ts +1 -1
- package/dist/core/extensions/tool-events.js.map +1 -1
- package/dist/core/extensions/ts-source-specifiers.d.ts +18 -0
- package/dist/core/extensions/ts-source-specifiers.d.ts.map +1 -0
- package/dist/core/extensions/ts-source-specifiers.js +142 -0
- package/dist/core/extensions/ts-source-specifiers.js.map +1 -0
- package/dist/core/extensions/workflow-events.d.ts +49 -0
- package/dist/core/extensions/workflow-events.d.ts.map +1 -1
- package/dist/core/extensions/workflow-events.js.map +1 -1
- package/dist/core/extensions/workflow-run-control-hub.d.ts +16 -4
- package/dist/core/extensions/workflow-run-control-hub.d.ts.map +1 -1
- package/dist/core/extensions/workflow-run-control-hub.js +72 -1
- package/dist/core/extensions/workflow-run-control-hub.js.map +1 -1
- package/dist/core/extensions/workflow-run-control.d.ts +11 -3
- package/dist/core/extensions/workflow-run-control.d.ts.map +1 -1
- package/dist/core/extensions/workflow-run-control.js.map +1 -1
- package/dist/core/messages.d.ts +1 -0
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +5 -1
- package/dist/core/messages.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +3 -0
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/sdk-exports.d.ts +2 -2
- package/dist/core/sdk-exports.js.map +1 -1
- package/dist/core/sdk-types.d.ts +3 -0
- package/dist/core/sdk-types.d.ts.map +1 -1
- package/dist/core/sdk-types.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +17 -8
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager-history.d.ts.map +1 -1
- package/dist/core/session-manager-history.js +4 -2
- package/dist/core/session-manager-history.js.map +1 -1
- package/dist/core/settings-manager-basic-accessors.d.ts +2 -0
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js +29 -0
- package/dist/core/settings-manager-basic-accessors.js.map +1 -1
- package/dist/core/settings-manager-core.js.map +1 -1
- package/dist/core/settings-merge.d.ts +3 -0
- package/dist/core/settings-merge.d.ts.map +1 -1
- package/dist/core/settings-merge.js +18 -4
- package/dist/core/settings-merge.js.map +1 -1
- package/dist/core/settings-storage.js.map +1 -1
- package/dist/core/settings-types.d.ts +1 -0
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/core/transcript.d.ts +58 -0
- package/dist/core/transcript.d.ts.map +1 -0
- package/dist/core/transcript.js +185 -0
- package/dist/core/transcript.js.map +1 -0
- package/dist/extensions/codemode/execute.d.ts.map +1 -1
- package/dist/extensions/codemode/execute.js +14 -1
- package/dist/extensions/codemode/execute.js.map +1 -1
- package/dist/extensions/codemode/tool.js +2 -2
- package/dist/extensions/codemode/tool.js.map +1 -1
- package/dist/extensions/herdr/index.d.ts.map +1 -1
- package/dist/extensions/herdr/index.js +15 -10
- package/dist/extensions/herdr/index.js.map +1 -1
- package/dist/extensions/herdr/pane-owner.d.ts +6 -2
- package/dist/extensions/herdr/pane-owner.d.ts.map +1 -1
- package/dist/extensions/herdr/pane-owner.js +19 -4
- package/dist/extensions/herdr/pane-owner.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +19 -8
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/extensions/mcp/cli.js +18 -24
- package/dist/extensions/mcp/cli.js.map +1 -1
- package/dist/extensions/mcp/client/auth-provider.d.ts +4 -0
- package/dist/extensions/mcp/client/auth-provider.d.ts.map +1 -1
- package/dist/extensions/mcp/client/auth-provider.js.map +1 -1
- package/dist/extensions/mcp/client/oauth/discovery.d.ts +3 -0
- package/dist/extensions/mcp/client/oauth/discovery.d.ts.map +1 -1
- package/dist/extensions/mcp/client/oauth/discovery.js +8 -5
- package/dist/extensions/mcp/client/oauth/discovery.js.map +1 -1
- package/dist/extensions/mcp/client/oauth/flow.d.ts +4 -0
- package/dist/extensions/mcp/client/oauth/flow.d.ts.map +1 -1
- package/dist/extensions/mcp/client/oauth/flow.js +12 -2
- package/dist/extensions/mcp/client/oauth/flow.js.map +1 -1
- package/dist/extensions/mcp/client/transports/streamable-http.d.ts +3 -0
- package/dist/extensions/mcp/client/transports/streamable-http.d.ts.map +1 -1
- package/dist/extensions/mcp/client/transports/streamable-http.js +17 -14
- package/dist/extensions/mcp/client/transports/streamable-http.js.map +1 -1
- package/dist/extensions/mcp/index.d.ts.map +1 -1
- package/dist/extensions/mcp/index.js +150 -72
- package/dist/extensions/mcp/index.js.map +1 -1
- package/dist/extensions/mcp/oauth.d.ts +5 -3
- package/dist/extensions/mcp/oauth.d.ts.map +1 -1
- package/dist/extensions/mcp/oauth.js +36 -10
- package/dist/extensions/mcp/oauth.js.map +1 -1
- package/dist/extensions/mcp/ui.d.ts +3 -3
- package/dist/extensions/mcp/ui.d.ts.map +1 -1
- package/dist/extensions/mcp/ui.js +10 -2
- package/dist/extensions/mcp/ui.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/main-deferred-startup.d.ts +1 -0
- package/dist/main-deferred-startup.d.ts.map +1 -1
- package/dist/main-deferred-startup.js +9 -21
- package/dist/main-deferred-startup.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +8 -6
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/compaction-boundary-message.d.ts +2 -0
- package/dist/modes/interactive/components/compaction-boundary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-boundary-message.js +15 -3
- package/dist/modes/interactive/components/compaction-boundary-message.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-items.js +43 -0
- package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-types.d.ts +6 -0
- package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/interactive-input-handling.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-input-handling.js +1 -47
- package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts +0 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.js +0 -1
- package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +0 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
- package/dist/modes/interactive/interactive-prompt-restore.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-prompt-restore.js +0 -5
- package/dist/modes/interactive/interactive-prompt-restore.js.map +1 -1
- package/dist/modes/interactive/interactive-prompt-turn.js +6 -4
- package/dist/modes/interactive/interactive-prompt-turn.js.map +1 -1
- package/dist/modes/interactive/interactive-render-chat.js +13 -6
- package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
- package/dist/modes/interactive/interactive-selectors.js +8 -0
- package/dist/modes/interactive/interactive-selectors.js.map +1 -1
- package/dist/modes/interactive/interactive-session-runtime.js +2 -0
- package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-startup.js +1 -1
- package/dist/modes/interactive/interactive-startup.js.map +1 -1
- package/dist/modes/rpc/rpc-client-process.d.ts +7 -0
- package/dist/modes/rpc/rpc-client-process.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client-process.js +20 -3
- package/dist/modes/rpc/rpc-client-process.js.map +1 -1
- package/dist/modes/rpc/rpc-command-timeouts.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-command-timeouts.js +1 -0
- package/dist/modes/rpc/rpc-command-timeouts.js.map +1 -1
- package/dist/utils/ansi.d.ts +8 -0
- package/dist/utils/ansi.d.ts.map +1 -1
- package/dist/utils/ansi.js +29 -10
- package/dist/utils/ansi.js.map +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +13 -3
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/credential-redaction.d.ts +2 -0
- package/dist/utils/credential-redaction.d.ts.map +1 -0
- package/dist/utils/credential-redaction.js +20 -0
- package/dist/utils/credential-redaction.js.map +1 -0
- package/dist/utils/image-resize-core.d.ts +8 -0
- package/dist/utils/image-resize-core.d.ts.map +1 -1
- package/dist/utils/image-resize-core.js +1 -0
- package/dist/utils/image-resize-core.js.map +1 -1
- package/dist/utils/image-resize-worker.js +3 -2
- package/dist/utils/image-resize-worker.js.map +1 -1
- package/dist/utils/image-resize.d.ts +2 -2
- package/dist/utils/image-resize.d.ts.map +1 -1
- package/dist/utils/image-resize.js +7 -10
- package/dist/utils/image-resize.js.map +1 -1
- package/docs/codemode.md +21 -1
- package/docs/compaction/reference.md +10 -4
- package/docs/compaction.md +40 -8
- package/docs/docs.json +1 -0
- package/docs/extensions/api-reference.md +4 -0
- package/docs/extensions/events.md +2 -2
- package/docs/llama-cpp.md +9 -2
- package/docs/mcp-servers.md +3 -3
- package/docs/models.md +10 -0
- package/docs/providers.md +39 -5
- package/docs/reference/cli.md +2 -2
- package/docs/sdk/reference.md +19 -4
- package/docs/sdk/web-server.md +325 -0
- package/docs/sdk.md +83 -1
- package/docs/security.md +1 -1
- package/docs/settings.md +2 -2
- package/docs/tools.md +1 -1
- package/docs/workflows/api-reference.md +71 -3
- package/docs/workflows/builtins.md +4 -0
- package/docs/workflows/operations.md +13 -5
- package/npm-shrinkwrap.json +32 -32
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-compaction-input.js","sourceRoot":"","sources":["../../../src/core/compaction/structured-compaction-input.ts"],"names":[],"mappings":"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","sourcesContent":["import type { LineRange, NumberedRegion, VerbatimCompactionParameters } from \"./compaction-types.js\";\nimport { ROLE_HEADER_RE } from \"./transcript-serialization.js\";\nimport { contiguousRanges } from \"./utils.ts\";\n\nexport interface CompactionInputMessage {\n\tid: number;\n\trole: \"user\" | \"assistant\" | \"tool\";\n\tlines: string[];\n}\n\nexport interface MessageLineRange extends LineRange {\n\tid: number;\n}\n\nexport interface StructuredCompactionInput {\n\tmessages: CompactionInputMessage[];\n\tquery: string;\n\tcompression_ratio: number;\n\tprotected: MessageLineRange[];\n}\n\nexport function buildStructuredCompactionInput(\n\tregion: NumberedRegion,\n\tparameters: VerbatimCompactionParameters,\n): StructuredCompactionInput {\n\tconst spans = region.messageSpans ?? inferMessageSpans(region);\n\tconst messages = spans.map((span, index) => ({\n\t\tid: index + 1,\n\t\trole: span.role,\n\t\tlines: region.lines.slice(span.start - 1, span.end),\n\t}));\n\tconst protectedRanges = spans.flatMap((span, index) =>\n\t\tcontiguousRanges(\n\t\t\tnew Set(\n\t\t\t\t[...(region.protectedLineNumbers ?? [])]\n\t\t\t\t\t.filter((line) => line >= span.start && line <= span.end)\n\t\t\t\t\t.map((line) => line - span.start + 1),\n\t\t\t),\n\t\t).map((range) => ({ id: index + 1, ...range })),\n\t);\n\treturn {\n\t\tmessages,\n\t\tquery: parameters.query,\n\t\tcompression_ratio: parameters.compression_ratio,\n\t\tprotected: protectedRanges,\n\t};\n}\n\nfunction inferMessageSpans(region: NumberedRegion): NonNullable<NumberedRegion[\"messageSpans\"]> {\n\tconst spans: NonNullable<NumberedRegion[\"messageSpans\"]> = [];\n\tfor (let index = 0; index < region.lines.length; index++) {\n\t\tconst header = ROLE_HEADER_RE.exec(region.lines[index]);\n\t\tif (header || spans.length === 0) {\n\t\t\tif (spans.length > 0) spans[spans.length - 1].end = index;\n\t\t\tspans.push({\n\t\t\t\trole: header?.[1] === \"User\" ? \"user\" : header?.[1] === \"Tool result\" ? \"tool\" : \"assistant\",\n\t\t\t\tstart: index + 1,\n\t\t\t\tend: region.lines.length,\n\t\t\t});\n\t\t}\n\t}\n\treturn spans;\n}\n\nexport function parseMessageRangeRecords(text: string, truncated = false): MessageLineRange[] | undefined {\n\tconst complete = truncated\n\t\t? text.slice(0, Math.max(0, text.lastIndexOf(\"\\n\")))\n\t\t: text.endsWith(\"\\n\")\n\t\t\t? text.slice(0, -1)\n\t\t\t: text;\n\tif (!complete) return undefined;\n\tconst ranges: MessageLineRange[] = [];\n\tfor (const line of complete.split(\"\\n\")) {\n\t\tconst match = /^(0|[1-9][0-9]*):(0|[1-9][0-9]*),(0|[1-9][0-9]*)$/.exec(line);\n\t\tif (!match) return undefined;\n\t\tconst [id, start, end] = match.slice(1).map(Number);\n\t\tif (![id, start, end].every(Number.isSafeInteger)) return undefined;\n\t\tranges.push({ id, start, end });\n\t}\n\treturn ranges;\n}\n\nexport function mapMessageRanges(ranges: readonly MessageLineRange[], input: StructuredCompactionInput): LineRange[] {\n\tconst offsets = new Map<number, { offset: number; length: number }>();\n\tlet offset = 0;\n\tfor (const message of input.messages) {\n\t\toffsets.set(message.id, { offset, length: message.lines.length });\n\t\toffset += message.lines.length;\n\t}\n\treturn ranges.flatMap((range) => {\n\t\tconst message = offsets.get(range.id);\n\t\tif (!message || range.start < 1 || range.end < range.start || range.end > message.length) return [];\n\t\treturn [{ start: message.offset + range.start, end: message.offset + range.end }];\n\t});\n}\n"]}
|
|
@@ -26,5 +26,6 @@ export declare function serializeRetainedTranscript(messages: Message[]): Transc
|
|
|
26
26
|
*/
|
|
27
27
|
export declare function keepContextLineNumbers(lines: readonly string[]): Set<number>;
|
|
28
28
|
export declare function createNumberedRegion(text: string, protectedLineNumbers?: ReadonlySet<number>): NumberedRegion;
|
|
29
|
+
export declare function createConversationRegion(messages: Message[], previousSummary?: string): NumberedRegion;
|
|
29
30
|
export declare function numberRegionLines(region: NumberedRegion, start?: number, end?: number): string;
|
|
30
31
|
//# sourceMappingURL=transcript-serialization.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript-serialization.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/transcript-serialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAO,MAAM,kBAAkB,QAA+B,CAAC;AAC/D,eAAO,MAAM,qBAAqB,WAAM,CAAC;AACzC,eAAO,MAAM,cAAc,QAAgF,CAAC;AAmB5G,4FAA4F;AAC5F,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,YAAY,CAAC;AASzD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAuGD,yFAAyF;AACzF,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAI9E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAElF;AA0CD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CA0B5E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,cAAc,CAqB7G;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,SAAI,EAAE,GAAG,SAAsB,GAAG,MAAM,CAQtG"}
|
|
1
|
+
{"version":3,"file":"transcript-serialization.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/transcript-serialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAO,MAAM,kBAAkB,QAA+B,CAAC;AAC/D,eAAO,MAAM,qBAAqB,WAAM,CAAC;AACzC,eAAO,MAAM,cAAc,QAAgF,CAAC;AAmB5G,4FAA4F;AAC5F,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,YAAY,CAAC;AASzD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAuGD,yFAAyF;AACzF,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAI9E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAElF;AA0CD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CA0B5E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,cAAc,CAqB7G;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,cAAc,CAuBtG;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,SAAI,EAAE,GAAG,SAAsB,GAAG,MAAM,CAQtG"}
|
|
@@ -240,6 +240,32 @@ export function createNumberedRegion(text, protectedLineNumbers) {
|
|
|
240
240
|
tokenEstimate: Math.ceil(text.length / 4),
|
|
241
241
|
};
|
|
242
242
|
}
|
|
243
|
+
export function createConversationRegion(messages, previousSummary) {
|
|
244
|
+
const sections = [];
|
|
245
|
+
if (previousSummary)
|
|
246
|
+
sections.push({ role: "assistant", text: previousSummary });
|
|
247
|
+
for (const message of messages) {
|
|
248
|
+
const text = serializeConversationForCompaction([message]);
|
|
249
|
+
if (text)
|
|
250
|
+
sections.push({
|
|
251
|
+
role: message.role === "toolResult" ? "tool" : message.role === "user" ? "user" : "assistant",
|
|
252
|
+
text,
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
const lines = [];
|
|
256
|
+
const messageSpans = [];
|
|
257
|
+
for (let index = 0; index < sections.length; index++) {
|
|
258
|
+
const section = sections[index];
|
|
259
|
+
const start = lines.length + 1;
|
|
260
|
+
lines.push(...section.text.split("\n"));
|
|
261
|
+
if (index < sections.length - 1 && !(index === 0 && previousSummary))
|
|
262
|
+
lines.push("");
|
|
263
|
+
messageSpans.push({ role: section.role, start, end: lines.length });
|
|
264
|
+
}
|
|
265
|
+
const region = createNumberedRegion(lines.join("\n"));
|
|
266
|
+
region.messageSpans = messageSpans.length > 0 ? messageSpans : [{ role: "assistant", start: 1, end: 1 }];
|
|
267
|
+
return region;
|
|
268
|
+
}
|
|
243
269
|
export function numberRegionLines(region, start = 1, end = region.lines.length) {
|
|
244
270
|
const first = Math.max(1, Math.trunc(start));
|
|
245
271
|
const last = Math.min(region.lines.length, Math.trunc(end));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript-serialization.js","sourceRoot":"","sources":["../../../src/core/compaction/transcript-serialization.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ImageContent, Message, TextContent } from \"@bastani/pi-ai/compat\";\nimport type { NumberedRegion } from \"./compaction-types.js\";\n\nexport const FILTERED_MARKER_RE = /^\\(filtered (\\d+) lines\\)$/;\nexport const LINE_NUMBER_SEPARATOR = \"→\";\nexport const ROLE_HEADER_RE = /^\\[(User|Assistant|Assistant thinking|Assistant tool calls|Tool result)\\]: /;\n\n/**\n * Callers wrap never-compressible content in `<keepContext>` / `</keepContext>`. Every line of\n * such a span, tag lines included, becomes a protected line, so the span survives verbatim\n * regardless of the compression ratio. Protecting the tags themselves is what makes the span\n * re-detectable on the next boundary, since each compaction re-ranks the previous output.\n *\n * The region is untrusted: it is serialized user, assistant, and tool-result payload, and a\n * message may quote or document the tag text. Detection is therefore deliberately narrow — a\n * marker must be the entire line once an optional role header is stripped, and only a matched\n * open/close pair protects anything. Prose that merely mentions a tag matches nothing, and an\n * unmatched opener protects nothing rather than swallowing the rest of the region.\n */\nconst KEEP_CONTEXT_OPEN_LINE_RE = /^<keepContext>$/i;\nconst KEEP_CONTEXT_CLOSE_LINE_RE = /^<\\/keepContext>$/i;\n\nconst TOOL_RESULT_MAX_CHARS = 16_000;\n\n/** One piece of a serialized transcript: literal text, or an image kept at its position. */\nexport type TranscriptChunk = TextContent | ImageContent;\n\n/**\n * `compacted` renders the durable transcript grammar: images become `[image]` markers and\n * oversized tool results are truncated. `retained` keeps every payload, for spans the\n * compaction promised to preserve verbatim.\n */\ntype SerializeMode = \"compacted\" | \"retained\";\n\nexport function filteredMarker(lineCount: number): string {\n\treturn `(filtered ${lineCount} lines)`;\n}\n\nfunction truncateToolResult(text: string): string {\n\tif (text.length <= TOOL_RESULT_MAX_CHARS) return text;\n\treturn `${text.slice(0, TOOL_RESULT_MAX_CHARS)}\\n\\n[... ${text.length - TOOL_RESULT_MAX_CHARS} more characters truncated]`;\n}\n\nfunction lastChunk(chunks: TranscriptChunk[]): TranscriptChunk | undefined {\n\treturn chunks.length > 0 ? chunks[chunks.length - 1] : undefined;\n}\n\nfunction appendText(chunks: TranscriptChunk[], text: string): void {\n\tif (text.length === 0) return;\n\tconst last = lastChunk(chunks);\n\tif (last !== undefined && last.type === \"text\") last.text += text;\n\telse chunks.push({ type: \"text\", text });\n}\n\nfunction hasContent(chunks: TranscriptChunk[]): boolean {\n\treturn chunks.some((chunk) => chunk.type !== \"text\" || chunk.text.length > 0);\n}\n\nfunction serializeContentBlocks(\n\tcontent: Extract<Message, { role: \"user\" | \"toolResult\" }>[\"content\"],\n\tmode: SerializeMode,\n): TranscriptChunk[] {\n\tif (typeof content === \"string\") return content.length > 0 ? [{ type: \"text\", text: content }] : [];\n\tconst chunks: TranscriptChunk[] = [];\n\tfor (const block of content) {\n\t\tif (block.type === \"text\") {\n\t\t\tappendText(chunks, block.text);\n\t\t\tcontinue;\n\t\t}\n\t\tif (block.type !== \"image\") continue;\n\t\tif (mode === \"retained\") {\n\t\t\tif (chunks.length > 0) appendText(chunks, \"\\n\");\n\t\t\tchunks.push({ ...block });\n\t\t\tcontinue;\n\t\t}\n\t\tconst last = lastChunk(chunks);\n\t\tconst needsBreak = last !== undefined && last.type === \"text\" && !last.text.endsWith(\"\\n\");\n\t\tappendText(chunks, `${needsBreak ? \"\\n\" : \"\"}[image]\\n`);\n\t}\n\tconst trailing = lastChunk(chunks);\n\tif (trailing !== undefined && trailing.type === \"text\" && trailing.text.endsWith(\"\\n\")) {\n\t\ttrailing.text = trailing.text.slice(0, -1);\n\t}\n\treturn chunks;\n}\n\n/** Serialize provider messages into transcript chunks using the durable section grammar. */\nfunction serializeTranscriptChunks(messages: Message[], mode: SerializeMode): TranscriptChunk[] {\n\tconst chunks: TranscriptChunk[] = [];\n\tconst pushSection = (header: string, section: TranscriptChunk[]): void => {\n\t\tif (!hasContent(section)) return;\n\t\tappendText(chunks, `${chunks.length > 0 ? \"\\n\\n\" : \"\"}${header}`);\n\t\tfor (const chunk of section) {\n\t\t\tif (chunk.type === \"text\") appendText(chunks, chunk.text);\n\t\t\telse chunks.push(chunk);\n\t\t}\n\t};\n\n\tfor (const message of messages) {\n\t\tif (message.role === \"user\") {\n\t\t\tpushSection(\"[User]: \", serializeContentBlocks(message.content, mode));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (message.role === \"assistant\") {\n\t\t\tconst text: string[] = [];\n\t\t\tconst thinking: string[] = [];\n\t\t\tconst toolCalls: string[] = [];\n\t\t\tfor (const block of message.content) {\n\t\t\t\tif (block.type === \"text\") text.push(block.text);\n\t\t\t\telse if (block.type === \"thinking\") thinking.push(block.thinking);\n\t\t\t\telse if (block.type === \"toolCall\") {\n\t\t\t\t\tconst args = Object.entries(block.arguments)\n\t\t\t\t\t\t.map(([key, value]) => `${key}=${JSON.stringify(value)}`)\n\t\t\t\t\t\t.join(\", \");\n\t\t\t\t\ttoolCalls.push(`${block.name}(${args})`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (thinking.length > 0) pushSection(\"[Assistant thinking]: \", [{ type: \"text\", text: thinking.join(\"\\n\") }]);\n\t\t\tif (text.length > 0) pushSection(\"[Assistant]: \", [{ type: \"text\", text: text.join(\"\\n\") }]);\n\t\t\tif (toolCalls.length > 0)\n\t\t\t\tpushSection(\"[Assistant tool calls]: \", [{ type: \"text\", text: toolCalls.join(\"; \") }]);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (message.role === \"toolResult\") {\n\t\t\tconst section = serializeContentBlocks(message.content, mode);\n\t\t\tif (mode === \"compacted\") {\n\t\t\t\tfor (const chunk of section) {\n\t\t\t\t\tif (chunk.type === \"text\") chunk.text = truncateToolResult(chunk.text);\n\t\t\t\t}\n\t\t\t}\n\t\t\tpushSection(\"[Tool result]: \", section);\n\t\t}\n\t}\n\n\treturn chunks;\n}\n\n/** Serialize provider messages using the durable verbatim-compaction section grammar. */\nexport function serializeConversationForCompaction(messages: Message[]): string {\n\treturn serializeTranscriptChunks(messages, \"compacted\")\n\t\t.map((chunk) => (chunk.type === \"text\" ? chunk.text : \"\"))\n\t\t.join(\"\");\n}\n\n/**\n * Serialize retained messages without losing payloads: tool results keep their full text and\n * images stay as image blocks at their position in the transcript.\n */\nexport function serializeRetainedTranscript(messages: Message[]): TranscriptChunk[] {\n\treturn serializeTranscriptChunks(messages, \"retained\");\n}\n\n/**\n * Classify a line as a `keepContext` marker.\n *\n * The serializer prefixes the first line of a message with its role header, so a span opened at\n * the start of a stage prompt arrives as `[User]: <keepContext>`. The header is stripped before\n * matching, and the remainder must be the whole line — prose that mentions a tag mid-sentence is\n * payload, not syntax.\n */\nfunction keepContextMarker(line: string): \"open\" | \"close\" | undefined {\n\tconst body = line.replace(ROLE_HEADER_RE, \"\").trim();\n\tif (KEEP_CONTEXT_OPEN_LINE_RE.test(body)) return \"open\";\n\tif (KEEP_CONTEXT_CLOSE_LINE_RE.test(body)) return \"close\";\n\treturn undefined;\n}\n\n/** Message roles whose payload is external, so its tag text is data rather than syntax. */\nconst UNTRUSTED_MARKER_ROLE = \"Tool result\";\n\n/**\n * Whether a message role may declare protection.\n *\n * User and assistant messages both may. Prompt construction — stage prompts, run inputs, and\n * steering — arrives as user messages, and agents need protection in their own output too, to\n * restate a contract amendment in a handoff report or pin a decision that changes later\n * behavior. A user-only rule would make those inert while still looking correct at the call site.\n *\n * Tool results may not. Their payload is file contents, fetched pages, and command output —\n * bytes an attacker can choose — and honoring tags there would let read material mark itself\n * unreclaimable and persist through compaction ahead of real transcript content. An agent that\n * wants to keep something it read can restate it in its own message, which is also the more\n * selective habit.\n *\n * An undefined role is the prior compaction summary prepended ahead of the first role header.\n * That is compaction's own output, and honoring it is what lets a span re-arm on later\n * boundaries after its header line has itself been compacted away.\n */\nfunction roleMayProtect(role: string | undefined): boolean {\n\treturn role !== UNTRUSTED_MARKER_ROLE;\n}\n\n/**\n * One-based line numbers covered by `<keepContext>` spans, inclusive of the tag lines.\n *\n * Spans are scoped to a single message: a role header ends any span still open, and an unclosed\n * span protects through the end of its own message rather than the end of the region. Together\n * with the whole-line marker rule and the tool-result exclusion, that keeps the permissive\n * unclosed case safe — quoted or injected tag text costs at most its own message instead of\n * everything after it. Compaction that cannot reclaim is an overflow, not a safe failure.\n *\n * Nested openers flatten into the outermost span, and a closing tag with no opener is inert.\n */\nexport function keepContextLineNumbers(lines: readonly string[]): Set<number> {\n\tconst protectedLines = new Set<number>();\n\tlet openIndex: number | undefined;\n\tlet role: string | undefined;\n\tconst protectThrough = (endIndex: number): void => {\n\t\tif (openIndex === undefined) return;\n\t\tfor (let line = openIndex; line <= endIndex; line++) protectedLines.add(line + 1);\n\t\topenIndex = undefined;\n\t};\n\tfor (let index = 0; index < lines.length; index++) {\n\t\tconst line = lines[index];\n\t\tconst header = ROLE_HEADER_RE.exec(line);\n\t\tif (header) {\n\t\t\tprotectThrough(index - 1);\n\t\t\trole = header[1];\n\t\t}\n\t\tif (!roleMayProtect(role)) continue;\n\t\tconst marker = keepContextMarker(line);\n\t\tif (marker === \"open\") {\n\t\t\tif (openIndex === undefined) openIndex = index;\n\t\t\tcontinue;\n\t\t}\n\t\tif (marker === \"close\") protectThrough(index);\n\t}\n\tprotectThrough(lines.length - 1);\n\treturn protectedLines;\n}\n\nexport function createNumberedRegion(text: string, protectedLineNumbers?: ReadonlySet<number>): NumberedRegion {\n\tconst lines = text.split(\"\\n\");\n\tconst headerLineNumbers = new Set<number>();\n\tconst priorMarkerNs = new Map<number, number>();\n\tfor (let index = 0; index < lines.length; index++) {\n\t\tconst lineNumber = index + 1;\n\t\tif (ROLE_HEADER_RE.test(lines[index])) headerLineNumbers.add(lineNumber);\n\t\tconst markerMatch = FILTERED_MARKER_RE.exec(lines[index]);\n\t\tif (markerMatch) priorMarkerNs.set(lineNumber, Number(markerMatch[1]));\n\t}\n\tconst detected = keepContextLineNumbers(lines);\n\tconst merged =\n\t\tprotectedLineNumbers === undefined ? detected : new Set<number>([...protectedLineNumbers, ...detected]);\n\treturn {\n\t\t__brand: \"NumberedRegion\",\n\t\tlines,\n\t\theaderLineNumbers,\n\t\tpriorMarkerNs,\n\t\tprotectedLineNumbers: merged.size > 0 ? merged : undefined,\n\t\ttokenEstimate: Math.ceil(text.length / 4),\n\t};\n}\n\nexport function numberRegionLines(region: NumberedRegion, start = 1, end = region.lines.length): string {\n\tconst first = Math.max(1, Math.trunc(start));\n\tconst last = Math.min(region.lines.length, Math.trunc(end));\n\tif (first > last) return \"\";\n\treturn region.lines\n\t\t.slice(first - 1, last)\n\t\t.map((line, index) => `${first + index}${LINE_NUMBER_SEPARATOR}${line}`)\n\t\t.join(\"\\n\");\n}\n"]}
|
|
1
|
+
{"version":3,"file":"transcript-serialization.js","sourceRoot":"","sources":["../../../src/core/compaction/transcript-serialization.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ImageContent, Message, TextContent } from \"@bastani/pi-ai/compat\";\nimport type { NumberedRegion } from \"./compaction-types.js\";\n\nexport const FILTERED_MARKER_RE = /^\\(filtered (\\d+) lines\\)$/;\nexport const LINE_NUMBER_SEPARATOR = \"→\";\nexport const ROLE_HEADER_RE = /^\\[(User|Assistant|Assistant thinking|Assistant tool calls|Tool result)\\]: /;\n\n/**\n * Callers wrap never-compressible content in `<keepContext>` / `</keepContext>`. Every line of\n * such a span, tag lines included, becomes a protected line, so the span survives verbatim\n * regardless of the compression ratio. Protecting the tags themselves is what makes the span\n * re-detectable on the next boundary, since each compaction re-ranks the previous output.\n *\n * The region is untrusted: it is serialized user, assistant, and tool-result payload, and a\n * message may quote or document the tag text. Detection is therefore deliberately narrow — a\n * marker must be the entire line once an optional role header is stripped, and only a matched\n * open/close pair protects anything. Prose that merely mentions a tag matches nothing, and an\n * unmatched opener protects nothing rather than swallowing the rest of the region.\n */\nconst KEEP_CONTEXT_OPEN_LINE_RE = /^<keepContext>$/i;\nconst KEEP_CONTEXT_CLOSE_LINE_RE = /^<\\/keepContext>$/i;\n\nconst TOOL_RESULT_MAX_CHARS = 16_000;\n\n/** One piece of a serialized transcript: literal text, or an image kept at its position. */\nexport type TranscriptChunk = TextContent | ImageContent;\n\n/**\n * `compacted` renders the durable transcript grammar: images become `[image]` markers and\n * oversized tool results are truncated. `retained` keeps every payload, for spans the\n * compaction promised to preserve verbatim.\n */\ntype SerializeMode = \"compacted\" | \"retained\";\n\nexport function filteredMarker(lineCount: number): string {\n\treturn `(filtered ${lineCount} lines)`;\n}\n\nfunction truncateToolResult(text: string): string {\n\tif (text.length <= TOOL_RESULT_MAX_CHARS) return text;\n\treturn `${text.slice(0, TOOL_RESULT_MAX_CHARS)}\\n\\n[... ${text.length - TOOL_RESULT_MAX_CHARS} more characters truncated]`;\n}\n\nfunction lastChunk(chunks: TranscriptChunk[]): TranscriptChunk | undefined {\n\treturn chunks.length > 0 ? chunks[chunks.length - 1] : undefined;\n}\n\nfunction appendText(chunks: TranscriptChunk[], text: string): void {\n\tif (text.length === 0) return;\n\tconst last = lastChunk(chunks);\n\tif (last !== undefined && last.type === \"text\") last.text += text;\n\telse chunks.push({ type: \"text\", text });\n}\n\nfunction hasContent(chunks: TranscriptChunk[]): boolean {\n\treturn chunks.some((chunk) => chunk.type !== \"text\" || chunk.text.length > 0);\n}\n\nfunction serializeContentBlocks(\n\tcontent: Extract<Message, { role: \"user\" | \"toolResult\" }>[\"content\"],\n\tmode: SerializeMode,\n): TranscriptChunk[] {\n\tif (typeof content === \"string\") return content.length > 0 ? [{ type: \"text\", text: content }] : [];\n\tconst chunks: TranscriptChunk[] = [];\n\tfor (const block of content) {\n\t\tif (block.type === \"text\") {\n\t\t\tappendText(chunks, block.text);\n\t\t\tcontinue;\n\t\t}\n\t\tif (block.type !== \"image\") continue;\n\t\tif (mode === \"retained\") {\n\t\t\tif (chunks.length > 0) appendText(chunks, \"\\n\");\n\t\t\tchunks.push({ ...block });\n\t\t\tcontinue;\n\t\t}\n\t\tconst last = lastChunk(chunks);\n\t\tconst needsBreak = last !== undefined && last.type === \"text\" && !last.text.endsWith(\"\\n\");\n\t\tappendText(chunks, `${needsBreak ? \"\\n\" : \"\"}[image]\\n`);\n\t}\n\tconst trailing = lastChunk(chunks);\n\tif (trailing !== undefined && trailing.type === \"text\" && trailing.text.endsWith(\"\\n\")) {\n\t\ttrailing.text = trailing.text.slice(0, -1);\n\t}\n\treturn chunks;\n}\n\n/** Serialize provider messages into transcript chunks using the durable section grammar. */\nfunction serializeTranscriptChunks(messages: Message[], mode: SerializeMode): TranscriptChunk[] {\n\tconst chunks: TranscriptChunk[] = [];\n\tconst pushSection = (header: string, section: TranscriptChunk[]): void => {\n\t\tif (!hasContent(section)) return;\n\t\tappendText(chunks, `${chunks.length > 0 ? \"\\n\\n\" : \"\"}${header}`);\n\t\tfor (const chunk of section) {\n\t\t\tif (chunk.type === \"text\") appendText(chunks, chunk.text);\n\t\t\telse chunks.push(chunk);\n\t\t}\n\t};\n\n\tfor (const message of messages) {\n\t\tif (message.role === \"user\") {\n\t\t\tpushSection(\"[User]: \", serializeContentBlocks(message.content, mode));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (message.role === \"assistant\") {\n\t\t\tconst text: string[] = [];\n\t\t\tconst thinking: string[] = [];\n\t\t\tconst toolCalls: string[] = [];\n\t\t\tfor (const block of message.content) {\n\t\t\t\tif (block.type === \"text\") text.push(block.text);\n\t\t\t\telse if (block.type === \"thinking\") thinking.push(block.thinking);\n\t\t\t\telse if (block.type === \"toolCall\") {\n\t\t\t\t\tconst args = Object.entries(block.arguments)\n\t\t\t\t\t\t.map(([key, value]) => `${key}=${JSON.stringify(value)}`)\n\t\t\t\t\t\t.join(\", \");\n\t\t\t\t\ttoolCalls.push(`${block.name}(${args})`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (thinking.length > 0) pushSection(\"[Assistant thinking]: \", [{ type: \"text\", text: thinking.join(\"\\n\") }]);\n\t\t\tif (text.length > 0) pushSection(\"[Assistant]: \", [{ type: \"text\", text: text.join(\"\\n\") }]);\n\t\t\tif (toolCalls.length > 0)\n\t\t\t\tpushSection(\"[Assistant tool calls]: \", [{ type: \"text\", text: toolCalls.join(\"; \") }]);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (message.role === \"toolResult\") {\n\t\t\tconst section = serializeContentBlocks(message.content, mode);\n\t\t\tif (mode === \"compacted\") {\n\t\t\t\tfor (const chunk of section) {\n\t\t\t\t\tif (chunk.type === \"text\") chunk.text = truncateToolResult(chunk.text);\n\t\t\t\t}\n\t\t\t}\n\t\t\tpushSection(\"[Tool result]: \", section);\n\t\t}\n\t}\n\n\treturn chunks;\n}\n\n/** Serialize provider messages using the durable verbatim-compaction section grammar. */\nexport function serializeConversationForCompaction(messages: Message[]): string {\n\treturn serializeTranscriptChunks(messages, \"compacted\")\n\t\t.map((chunk) => (chunk.type === \"text\" ? chunk.text : \"\"))\n\t\t.join(\"\");\n}\n\n/**\n * Serialize retained messages without losing payloads: tool results keep their full text and\n * images stay as image blocks at their position in the transcript.\n */\nexport function serializeRetainedTranscript(messages: Message[]): TranscriptChunk[] {\n\treturn serializeTranscriptChunks(messages, \"retained\");\n}\n\n/**\n * Classify a line as a `keepContext` marker.\n *\n * The serializer prefixes the first line of a message with its role header, so a span opened at\n * the start of a stage prompt arrives as `[User]: <keepContext>`. The header is stripped before\n * matching, and the remainder must be the whole line — prose that mentions a tag mid-sentence is\n * payload, not syntax.\n */\nfunction keepContextMarker(line: string): \"open\" | \"close\" | undefined {\n\tconst body = line.replace(ROLE_HEADER_RE, \"\").trim();\n\tif (KEEP_CONTEXT_OPEN_LINE_RE.test(body)) return \"open\";\n\tif (KEEP_CONTEXT_CLOSE_LINE_RE.test(body)) return \"close\";\n\treturn undefined;\n}\n\n/** Message roles whose payload is external, so its tag text is data rather than syntax. */\nconst UNTRUSTED_MARKER_ROLE = \"Tool result\";\n\n/**\n * Whether a message role may declare protection.\n *\n * User and assistant messages both may. Prompt construction — stage prompts, run inputs, and\n * steering — arrives as user messages, and agents need protection in their own output too, to\n * restate a contract amendment in a handoff report or pin a decision that changes later\n * behavior. A user-only rule would make those inert while still looking correct at the call site.\n *\n * Tool results may not. Their payload is file contents, fetched pages, and command output —\n * bytes an attacker can choose — and honoring tags there would let read material mark itself\n * unreclaimable and persist through compaction ahead of real transcript content. An agent that\n * wants to keep something it read can restate it in its own message, which is also the more\n * selective habit.\n *\n * An undefined role is the prior compaction summary prepended ahead of the first role header.\n * That is compaction's own output, and honoring it is what lets a span re-arm on later\n * boundaries after its header line has itself been compacted away.\n */\nfunction roleMayProtect(role: string | undefined): boolean {\n\treturn role !== UNTRUSTED_MARKER_ROLE;\n}\n\n/**\n * One-based line numbers covered by `<keepContext>` spans, inclusive of the tag lines.\n *\n * Spans are scoped to a single message: a role header ends any span still open, and an unclosed\n * span protects through the end of its own message rather than the end of the region. Together\n * with the whole-line marker rule and the tool-result exclusion, that keeps the permissive\n * unclosed case safe — quoted or injected tag text costs at most its own message instead of\n * everything after it. Compaction that cannot reclaim is an overflow, not a safe failure.\n *\n * Nested openers flatten into the outermost span, and a closing tag with no opener is inert.\n */\nexport function keepContextLineNumbers(lines: readonly string[]): Set<number> {\n\tconst protectedLines = new Set<number>();\n\tlet openIndex: number | undefined;\n\tlet role: string | undefined;\n\tconst protectThrough = (endIndex: number): void => {\n\t\tif (openIndex === undefined) return;\n\t\tfor (let line = openIndex; line <= endIndex; line++) protectedLines.add(line + 1);\n\t\topenIndex = undefined;\n\t};\n\tfor (let index = 0; index < lines.length; index++) {\n\t\tconst line = lines[index];\n\t\tconst header = ROLE_HEADER_RE.exec(line);\n\t\tif (header) {\n\t\t\tprotectThrough(index - 1);\n\t\t\trole = header[1];\n\t\t}\n\t\tif (!roleMayProtect(role)) continue;\n\t\tconst marker = keepContextMarker(line);\n\t\tif (marker === \"open\") {\n\t\t\tif (openIndex === undefined) openIndex = index;\n\t\t\tcontinue;\n\t\t}\n\t\tif (marker === \"close\") protectThrough(index);\n\t}\n\tprotectThrough(lines.length - 1);\n\treturn protectedLines;\n}\n\nexport function createNumberedRegion(text: string, protectedLineNumbers?: ReadonlySet<number>): NumberedRegion {\n\tconst lines = text.split(\"\\n\");\n\tconst headerLineNumbers = new Set<number>();\n\tconst priorMarkerNs = new Map<number, number>();\n\tfor (let index = 0; index < lines.length; index++) {\n\t\tconst lineNumber = index + 1;\n\t\tif (ROLE_HEADER_RE.test(lines[index])) headerLineNumbers.add(lineNumber);\n\t\tconst markerMatch = FILTERED_MARKER_RE.exec(lines[index]);\n\t\tif (markerMatch) priorMarkerNs.set(lineNumber, Number(markerMatch[1]));\n\t}\n\tconst detected = keepContextLineNumbers(lines);\n\tconst merged =\n\t\tprotectedLineNumbers === undefined ? detected : new Set<number>([...protectedLineNumbers, ...detected]);\n\treturn {\n\t\t__brand: \"NumberedRegion\",\n\t\tlines,\n\t\theaderLineNumbers,\n\t\tpriorMarkerNs,\n\t\tprotectedLineNumbers: merged.size > 0 ? merged : undefined,\n\t\ttokenEstimate: Math.ceil(text.length / 4),\n\t};\n}\n\nexport function createConversationRegion(messages: Message[], previousSummary?: string): NumberedRegion {\n\tconst sections: { role: \"user\" | \"assistant\" | \"tool\"; text: string }[] = [];\n\tif (previousSummary) sections.push({ role: \"assistant\", text: previousSummary });\n\tfor (const message of messages) {\n\t\tconst text = serializeConversationForCompaction([message]);\n\t\tif (text)\n\t\t\tsections.push({\n\t\t\t\trole: message.role === \"toolResult\" ? \"tool\" : message.role === \"user\" ? \"user\" : \"assistant\",\n\t\t\t\ttext,\n\t\t\t});\n\t}\n\tconst lines: string[] = [];\n\tconst messageSpans: NonNullable<NumberedRegion[\"messageSpans\"]> = [];\n\tfor (let index = 0; index < sections.length; index++) {\n\t\tconst section = sections[index];\n\t\tconst start = lines.length + 1;\n\t\tlines.push(...section.text.split(\"\\n\"));\n\t\tif (index < sections.length - 1 && !(index === 0 && previousSummary)) lines.push(\"\");\n\t\tmessageSpans.push({ role: section.role, start, end: lines.length });\n\t}\n\tconst region = createNumberedRegion(lines.join(\"\\n\"));\n\tregion.messageSpans = messageSpans.length > 0 ? messageSpans : [{ role: \"assistant\", start: 1, end: 1 }];\n\treturn region;\n}\n\nexport function numberRegionLines(region: NumberedRegion, start = 1, end = region.lines.length): string {\n\tconst first = Math.max(1, Math.trunc(start));\n\tconst last = Math.min(region.lines.length, Math.trunc(end));\n\tif (first > last) return \"\";\n\treturn region.lines\n\t\t.slice(first - 1, last)\n\t\t.map((line, index) => `${first + index}${LINE_NUMBER_SEPARATOR}${line}`)\n\t\t.join(\"\\n\");\n}\n"]}
|
|
@@ -21,7 +21,7 @@ import type { ResourcesDiscoverEvent, ResourcesDiscoverResult, SessionBeforeComp
|
|
|
21
21
|
import type { ToolCallEvent, ToolResultEvent } from "./tool-events.ts";
|
|
22
22
|
import type { ToolDefinition, ToolInfo, ToolRendererResolver } from "./tool-types.ts";
|
|
23
23
|
import type { WorkflowActivityChangedEvent, WorkflowActivityPublisher, WorkflowHeartbeatEvent, WorkflowLifecycleEvent, WorkflowStageCompletedEvent } from "./workflow-events.js";
|
|
24
|
-
import type {
|
|
24
|
+
import type { WorkflowRunControl, WorkflowRunControlRegistration } from "./workflow-run-control.js";
|
|
25
25
|
/** Handler function type for events */
|
|
26
26
|
export type ExtensionHandler<E, R = undefined> = (event: E, ctx: ExtensionContext) => Promise<R | void> | R | void;
|
|
27
27
|
/**
|
|
@@ -34,7 +34,7 @@ export interface ExtensionAPI {
|
|
|
34
34
|
lifecycleScope?: object;
|
|
35
35
|
registerWorkflowActivityPublisher(): WorkflowActivityPublisher;
|
|
36
36
|
/** Register the implementation behind `session.workflows`; disposed with this extension generation. */
|
|
37
|
-
registerWorkflowRunControl(control:
|
|
37
|
+
registerWorkflowRunControl(control: WorkflowRunControl): WorkflowRunControlRegistration;
|
|
38
38
|
on(event: "cache_warming_decision", handler: ExtensionHandler<CacheWarmingDecisionEvent, CacheWarmingDecisionEventResult>): () => void;
|
|
39
39
|
on(event: "workflow_lifecycle", handler: ExtensionHandler<WorkflowLifecycleEvent>): () => void;
|
|
40
40
|
on(event: "workflow_activity_changed", handler: ExtensionHandler<WorkflowActivityChangedEvent>): () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-types.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/api-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EACX,0BAA0B,EAC1B,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,0BAA0B,EAC1B,0BAA0B,EAC1B,YAAY,EACZ,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EACX,4BAA4B,EAC5B,2BAA2B,EAC3B,gCAAgC,EAChC,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACX,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EACX,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,KAAK,EACX,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAElG,uCAAuC;AAEvC,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAEnH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,oFAAoF;IACpF,WAAW,IAAI,OAAO,sBAAsB,EAAE,QAAQ,CAAC;IACvD,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iCAAiC,IAAI,yBAAyB,CAAC;IAC/D,uGAAuG;IACvG,0BAA0B,CAAC,OAAO,EAAE,gBAAgB,GAAG,8BAA8B,CAAC;IACtF,EAAE,CACD,KAAK,EAAE,wBAAwB,EAC/B,OAAO,EAAE,gBAAgB,CAAC,yBAAyB,EAAE,+BAA+B,CAAC,GACnF,MAAM,IAAI,CAAC;IACd,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,CAAC,sBAAsB,CAAC,GAAG,MAAM,IAAI,CAAC;IAC/F,EAAE,CAAC,KAAK,EAAE,2BAA2B,EAAE,OAAO,EAAE,gBAAgB,CAAC,4BAA4B,CAAC,GAAG,MAAM,IAAI,CAAC;IAC5G,EAAE,CAAC,KAAK,EAAE,0BAA0B,EAAE,OAAO,EAAE,gBAAgB,CAAC,2BAA2B,CAAC,GAAG,MAAM,IAAI,CAAC;IAC1G,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,CAAC,sBAAsB,CAAC,GAAG,MAAM,IAAI,CAAC;IAK/F,EAAE,CACD,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,gBAAgB,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,GACxE,MAAM,IAAI,CAAC;IACd,EAAE,CAAC,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,gBAAgB,CAAC,uBAAuB,CAAC,GAAG,MAAM,IAAI,CAAC;IAClG,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,MAAM,IAAI,CAAC;IACrF,EAAE,CACD,KAAK,EAAE,uBAAuB,EAC9B,OAAO,EAAE,gBAAgB,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,GAC5E,MAAM,IAAI,CAAC;IACd,EAAE,CACD,KAAK,EAAE,qBAAqB,EAC5B,OAAO,EAAE,gBAAgB,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,GACxE,MAAM,IAAI,CAAC;IACd,EAAE,CACD,KAAK,EAAE,wBAAwB,EAC/B,OAAO,EAAE,gBAAgB,CAAC,yBAAyB,EAAE,0BAA0B,CAAC,GAC9E,MAAM,IAAI,CAAC;IACd,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,MAAM,IAAI,CAAC;IACzF,EAAE,CAAC,KAAK,EAAE,wBAAwB,EAAE,OAAO,EAAE,gBAAgB,CAAC,yBAAyB,CAAC,GAAG,MAAM,IAAI,CAAC;IACtG,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,GAAG,MAAM,IAAI,CAAC;IAC3F,EAAE,CACD,KAAK,EAAE,qBAAqB,EAC5B,OAAO,EAAE,gBAAgB,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,GACxE,MAAM,IAAI,CAAC;IACd,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,MAAM,IAAI,CAAC;IACnF,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,kBAAkB,CAAC,GAAG,MAAM,IAAI,CAAC;IAC9F,EAAE,CAAC,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,gBAAgB,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,GAAG,MAAM,IAAI,CAAC;IACpH,EAAE,CACD,KAAK,EAAE,yBAAyB,EAChC,OAAO,EAAE,gBAAgB,CAAC,0BAA0B,EAAE,gCAAgC,CAAC,GACrF,MAAM,IAAI,CAAC;IACd,EAAE,CAAC,KAAK,EAAE,yBAAyB,EAAE,OAAO,EAAE,gBAAgB,CAAC,0BAA0B,CAAC,GAAG,MAAM,IAAI,CAAC;IACxG,EAAE,CAAC,KAAK,EAAE,yBAAyB,EAAE,OAAO,EAAE,gBAAgB,CAAC,0BAA0B,CAAC,GAAG,MAAM,IAAI,CAAC;IACxG,EAAE,CAAC,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,MAAM,IAAI,CAAC;IAC/F,EAAE,CACD,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,gBAAgB,CAAC,qBAAqB,EAAE,2BAA2B,CAAC,GAC3E,MAAM,IAAI,CAAC;IACd,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,CAAC,eAAe,CAAC,GAAG,MAAM,IAAI,CAAC;IACjF,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC;IAC7E,EAAE,CACD,KAAK,EAAE,qBAAqB,EAC5B,OAAO,EAAE,gBAAgB,CAAC,sBAAsB,EAAE,4BAA4B,CAAC,GAC7E,MAAM,IAAI,CAAC;IACd,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,MAAM,IAAI,CAAC;IACrF,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,MAAM,IAAI,CAAC;IACxF,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,MAAM,IAAI,CAAC;IACpF,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,CAAC,cAAc,CAAC,GAAG,MAAM,IAAI,CAAC;IAC/E,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,kBAAkB,CAAC,GAAG,MAAM,IAAI,CAAC;IAC/F,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,MAAM,IAAI,CAAC;IACrF,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,MAAM,IAAI,CAAC;IACvF,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,CAAC,eAAe,EAAE,qBAAqB,CAAC,GAAG,MAAM,IAAI,CAAC;IACxG,EAAE,CAAC,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,gBAAgB,CAAC,uBAAuB,CAAC,GAAG,MAAM,IAAI,CAAC;IAClG,EAAE,CAAC,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,gBAAgB,CAAC,wBAAwB,CAAC,GAAG,MAAM,IAAI,CAAC;IACpG,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,MAAM,IAAI,CAAC;IAC9F,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,MAAM,IAAI,CAAC;IACnF,EAAE,CAAC,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,gBAAgB,CAAC,wBAAwB,CAAC,GAAG,MAAM,IAAI,CAAC;IACpG,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAAG,MAAM,IAAI,CAAC;IAClG,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,CAAC,eAAe,EAAE,qBAAqB,CAAC,GAAG,MAAM,IAAI,CAAC;IACxG,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAAG,MAAM,IAAI,CAAC;IAClG,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,IAAI,CAAC;IACrE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,CAAC,GAAG,MAAM,IAAI,CAAC;IAMxF,6CAA6C;IAC7C,YAAY,CAAC,OAAO,SAAS,OAAO,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO,EACnF,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,GAC7C,IAAI,CAAC;IAMR,iCAAiC;IACjC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC;IAE7F,oCAAoC;IACpC,gBAAgB,CACf,QAAQ,EAAE,KAAK,EACf,OAAO,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,mBAAmB,EAAE,UAAU,CAAC;QACpD,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,OAAO,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KACzD,GACC,IAAI,CAAC;IAER,2BAA2B;IAC3B,YAAY,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,EACJ;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5D;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3D,IAAI,CAAC;IAER,8CAA8C;IAC9C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAEpD,sBAAsB,IAAI,OAAO,CAChC,MAAM,CAAC,iBAAiB,GAAG,gBAAgB,GAAG,8BAA8B,EAAE,MAAM,CAAC,CACrF,CAAC;IAEF,0EAA0E;IAC1E,oBAAoB,IAAI,gBAAgB,EAAE,CAAC;IAE3C;;;OAGG;IACH,wBAAwB,CAAC,EAAE,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAE7D;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAE/D,+FAA+F;IAC/F,yBAAyB,CAAC,EAAE,MAAM,qBAAqB,EAAE,CAAC;IAE1D,iGAAiG;IACjG,+BAA+B,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAEvE;;OAEG;IACH,oCAAoC,CAAC,EAAE,MAAM,wCAAwC,CAAC;IACtF,uFAAuF;IACvF,sBAAsB,CAAC,EAAE,OAAO,6BAA6B,EAAE,2BAA2B,CAAC;IAM3F,yDAAyD;IACzD,uBAAuB,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAE7F,qHAAqH;IACrH,2BAA2B,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACpE,+DAA+D;IAC/D,qBAAqB,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAEzF,8EAA8E;IAC9E,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAM3D,4CAA4C;IAC5C,WAAW,CAAC,CAAC,GAAG,OAAO,EACtB,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,EACjF,OAAO,CAAC,EAAE,kBAAkB,GAC1B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB,8FAA8F;IAC9F,YAAY,CAAC,CAAC,GAAG,OAAO,EACvB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC,EACzF,OAAO,CAAC,EAAE,mBAAmB,GAC3B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;;;;;;;OAQG;IACH,eAAe,CACd,OAAO,EAAE,MAAM,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,EAAE,EAChD,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;QAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7E,IAAI,CAAC;IAER,oFAAoF;IACpF,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAM7D,gEAAgE;IAChE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,4CAA4C;IAC5C,cAAc,IAAI,MAAM,GAAG,SAAS,CAAC;IAErC,oGAAoG;IACpG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAE3D,+BAA+B;IAC/B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAElF,mDAAmD;IACnD,cAAc,IAAI,MAAM,EAAE,CAAC;IAE3B,0EAA0E;IAC1E,WAAW,IAAI,QAAQ,EAAE,CAAC;IAE1B,oCAAoC;IACpC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE1C,2DAA2D;IAC3D,WAAW,IAAI,gBAAgB,EAAE,CAAC;IAMlC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C,kCAAkC;IAClC,gBAAgB,IAAI,aAAa,CAAC;IAElC;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAM7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmDG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC7D,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3C,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEzD;;;;;;;;;;;;OAYG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvC,oDAAoD;IACpD,MAAM,EAAE,QAAQ,CAAC;CACjB"}
|
|
1
|
+
{"version":3,"file":"api-types.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/api-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-types.js","sourceRoot":"","sources":["../../../src/core/extensions/api-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Provider } from \"@bastani/pi-ai\";\nimport type { Api, ImageContent, Model, TextContent } from \"@bastani/pi-ai/compat\";\nimport type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { KeyId } from \"@earendil-works/pi-tui\";\nimport type { TSchema } from \"typebox\";\nimport type { CacheWarmingDecisionEvent, CacheWarmingDecisionEventResult } from \"../cache-warmer.ts\";\nimport type { EventBus } from \"../event-bus.js\";\nimport type { ExecOptions, ExecResult } from \"../exec.ts\";\nimport type { McpServerConfig, McpServerContribution } from \"../mcp-servers.ts\";\nimport type { CustomMessage } from \"../messages.ts\";\nimport type { ResolvedResource } from \"../package-manager.ts\";\nimport type { DefaultResourceLoaderInheritanceSnapshot } from \"../resource-loader.ts\";\nimport type { SlashCommandInfo } from \"../slash-commands.js\";\nimport type {\n\tAfterProviderResponseEvent,\n\tAgentBeforeSettleEvent,\n\tAgentEndEvent,\n\tAgentSettledEvent,\n\tAgentStartEvent,\n\tBeforeAgentStartEvent,\n\tBeforeProviderHeadersEvent,\n\tBeforeProviderRequestEvent,\n\tContextEvent,\n\tContextWithSystemEvent,\n\tInputEvent,\n\tInputEventResult,\n\tMessageEndEvent,\n\tMessageStartEvent,\n\tMessageUpdateEvent,\n\tModelSelectEvent,\n\tProjectTrustHandler,\n\tProviderStreamEvent,\n\tThinkingLevelSelectEvent,\n\tToolExecutionEndEvent,\n\tToolExecutionStartEvent,\n\tToolExecutionUpdateEvent,\n\tTurnEndEvent,\n\tTurnStartEvent,\n\tUIPromptEndEvent,\n\tUIPromptStartEvent,\n\tUserBashEvent,\n} from \"./agent-events.ts\";\nimport type { RegisteredCommand } from \"./command-types.ts\";\nimport type { ExtensionContext } from \"./context-types.ts\";\nimport type {\n\tAgentBeforeSettleEventResult,\n\tBeforeAgentStartEventResult,\n\tBeforeProviderRequestEventResult,\n\tContextEventResult,\n\tMessageEndEventResult,\n\tSessionBeforeCompactResult,\n\tSessionBeforeForkResult,\n\tSessionBeforeSwitchResult,\n\tSessionBeforeTreeResult,\n\tToolCallEventResult,\n\tToolResultEventResult,\n\tTurnEndEventResult,\n\tUserBashEventResult,\n} from \"./event-results.ts\";\nimport type {\n\tEntryRenderer,\n\tMarkdownTransformer,\n\tMessageRenderer,\n\tSendMessageOptions,\n\tSendMessagesOptions,\n} from \"./message-types.ts\";\nimport type { ProviderAliasConfig, ProviderConfig } from \"./provider-types.ts\";\nimport type {\n\tResourcesDiscoverEvent,\n\tResourcesDiscoverResult,\n\tSessionBeforeCompactEvent,\n\tSessionBeforeForkEvent,\n\tSessionBeforeSwitchEvent,\n\tSessionBeforeTreeEvent,\n\tSessionCompactEvent,\n\tSessionCompactFailedEvent,\n\tSessionInfoChangedEvent,\n\tSessionShutdownEvent,\n\tSessionStartEvent,\n\tSessionTreeEvent,\n} from \"./session-events.ts\";\nimport type { ToolCallEvent, ToolResultEvent } from \"./tool-events.ts\";\nimport type { ToolDefinition, ToolInfo, ToolRendererResolver } from \"./tool-types.ts\";\nimport type {\n\tWorkflowActivityChangedEvent,\n\tWorkflowActivityPublisher,\n\tWorkflowHeartbeatEvent,\n\tWorkflowLifecycleEvent,\n\tWorkflowStageCompletedEvent,\n} from \"./workflow-events.js\";\nimport type { SessionWorkflows, WorkflowRunControlRegistration } from \"./workflow-run-control.js\";\n\n/** Handler function type for events */\n// biome-ignore lint/suspicious/noConfusingVoidType: void allows bare return statements\nexport type ExtensionHandler<E, R = undefined> = (event: E, ctx: ExtensionContext) => Promise<R | void> | R | void;\n\n/**\n * ExtensionAPI passed to extension factory functions.\n */\nexport interface ExtensionAPI {\n\t/** Snapshot of effective settings. Available after the session runtime is bound. */\n\tgetSettings(): import(\"../settings-types.ts\").Settings;\n\t/** @internal Owning runtime identity, retained across generation replacement. */\n\tlifecycleScope?: object;\n\tregisterWorkflowActivityPublisher(): WorkflowActivityPublisher;\n\t/** Register the implementation behind `session.workflows`; disposed with this extension generation. */\n\tregisterWorkflowRunControl(control: SessionWorkflows): WorkflowRunControlRegistration;\n\ton(\n\t\tevent: \"cache_warming_decision\",\n\t\thandler: ExtensionHandler<CacheWarmingDecisionEvent, CacheWarmingDecisionEventResult>,\n\t): () => void;\n\ton(event: \"workflow_lifecycle\", handler: ExtensionHandler<WorkflowLifecycleEvent>): () => void;\n\ton(event: \"workflow_activity_changed\", handler: ExtensionHandler<WorkflowActivityChangedEvent>): () => void;\n\ton(event: \"workflow_stage_completed\", handler: ExtensionHandler<WorkflowStageCompletedEvent>): () => void;\n\ton(event: \"workflow_heartbeat\", handler: ExtensionHandler<WorkflowHeartbeatEvent>): () => void;\n\t// =========================================================================\n\t// Event Subscription\n\t// =========================================================================\n\n\ton(\n\t\tevent: \"resources_discover\",\n\t\thandler: ExtensionHandler<ResourcesDiscoverEvent, ResourcesDiscoverResult>,\n\t): () => void;\n\ton(event: \"session_info_changed\", handler: ExtensionHandler<SessionInfoChangedEvent>): () => void;\n\ton(event: \"session_start\", handler: ExtensionHandler<SessionStartEvent>): () => void;\n\ton(\n\t\tevent: \"session_before_switch\",\n\t\thandler: ExtensionHandler<SessionBeforeSwitchEvent, SessionBeforeSwitchResult>,\n\t): () => void;\n\ton(\n\t\tevent: \"session_before_fork\",\n\t\thandler: ExtensionHandler<SessionBeforeForkEvent, SessionBeforeForkResult>,\n\t): () => void;\n\ton(\n\t\tevent: \"session_before_compact\",\n\t\thandler: ExtensionHandler<SessionBeforeCompactEvent, SessionBeforeCompactResult>,\n\t): () => void;\n\ton(event: \"session_compact\", handler: ExtensionHandler<SessionCompactEvent>): () => void;\n\ton(event: \"session_compact_failed\", handler: ExtensionHandler<SessionCompactFailedEvent>): () => void;\n\ton(event: \"session_shutdown\", handler: ExtensionHandler<SessionShutdownEvent>): () => void;\n\ton(\n\t\tevent: \"session_before_tree\",\n\t\thandler: ExtensionHandler<SessionBeforeTreeEvent, SessionBeforeTreeResult>,\n\t): () => void;\n\ton(event: \"session_tree\", handler: ExtensionHandler<SessionTreeEvent>): () => void;\n\ton(event: \"context\", handler: ExtensionHandler<ContextEvent, ContextEventResult>): () => void;\n\ton(event: \"context_with_system\", handler: ExtensionHandler<ContextWithSystemEvent, ContextEventResult>): () => void;\n\ton(\n\t\tevent: \"before_provider_request\",\n\t\thandler: ExtensionHandler<BeforeProviderRequestEvent, BeforeProviderRequestEventResult>,\n\t): () => void;\n\ton(event: \"before_provider_headers\", handler: ExtensionHandler<BeforeProviderHeadersEvent>): () => void;\n\ton(event: \"after_provider_response\", handler: ExtensionHandler<AfterProviderResponseEvent>): () => void;\n\ton(event: \"provider_stream_event\", handler: ExtensionHandler<ProviderStreamEvent>): () => void;\n\ton(\n\t\tevent: \"before_agent_start\",\n\t\thandler: ExtensionHandler<BeforeAgentStartEvent, BeforeAgentStartEventResult>,\n\t): () => void;\n\ton(event: \"agent_start\", handler: ExtensionHandler<AgentStartEvent>): () => void;\n\ton(event: \"agent_end\", handler: ExtensionHandler<AgentEndEvent>): () => void;\n\ton(\n\t\tevent: \"agent_before_settle\",\n\t\thandler: ExtensionHandler<AgentBeforeSettleEvent, AgentBeforeSettleEventResult>,\n\t): () => void;\n\ton(event: \"agent_settled\", handler: ExtensionHandler<AgentSettledEvent>): () => void;\n\ton(event: \"ui_prompt_start\", handler: ExtensionHandler<UIPromptStartEvent>): () => void;\n\ton(event: \"ui_prompt_end\", handler: ExtensionHandler<UIPromptEndEvent>): () => void;\n\ton(event: \"turn_start\", handler: ExtensionHandler<TurnStartEvent>): () => void;\n\ton(event: \"turn_end\", handler: ExtensionHandler<TurnEndEvent, TurnEndEventResult>): () => void;\n\ton(event: \"message_start\", handler: ExtensionHandler<MessageStartEvent>): () => void;\n\ton(event: \"message_update\", handler: ExtensionHandler<MessageUpdateEvent>): () => void;\n\ton(event: \"message_end\", handler: ExtensionHandler<MessageEndEvent, MessageEndEventResult>): () => void;\n\ton(event: \"tool_execution_start\", handler: ExtensionHandler<ToolExecutionStartEvent>): () => void;\n\ton(event: \"tool_execution_update\", handler: ExtensionHandler<ToolExecutionUpdateEvent>): () => void;\n\ton(event: \"tool_execution_end\", handler: ExtensionHandler<ToolExecutionEndEvent>): () => void;\n\ton(event: \"model_select\", handler: ExtensionHandler<ModelSelectEvent>): () => void;\n\ton(event: \"thinking_level_select\", handler: ExtensionHandler<ThinkingLevelSelectEvent>): () => void;\n\ton(event: \"tool_call\", handler: ExtensionHandler<ToolCallEvent, ToolCallEventResult>): () => void;\n\ton(event: \"tool_result\", handler: ExtensionHandler<ToolResultEvent, ToolResultEventResult>): () => void;\n\ton(event: \"user_bash\", handler: ExtensionHandler<UserBashEvent, UserBashEventResult>): () => void;\n\ton(event: \"project_trust\", handler: ProjectTrustHandler): () => void;\n\ton(event: \"input\", handler: ExtensionHandler<InputEvent, InputEventResult>): () => void;\n\n\t// =========================================================================\n\t// Tool Registration\n\t// =========================================================================\n\n\t/** Register a tool that the LLM can call. */\n\tregisterTool<TParams extends TSchema = TSchema, TDetails = unknown, TState = unknown>(\n\t\ttool: ToolDefinition<TParams, TDetails, TState>,\n\t): void;\n\n\t// =========================================================================\n\t// Command, Shortcut, Flag Registration\n\t// =========================================================================\n\n\t/** Register a custom command. */\n\tregisterCommand(name: string, options: Omit<RegisteredCommand, \"name\" | \"sourceInfo\">): void;\n\n\t/** Register a keyboard shortcut. */\n\tregisterShortcut(\n\t\tshortcut: KeyId,\n\t\toptions: {\n\t\t\tdescription?: string;\n\t\t\tkeybinding?: import(\"../keybindings.ts\").Keybinding;\n\t\t\tpreferEditor?: boolean;\n\t\t\thandler: (ctx: ExtensionContext) => Promise<void> | void;\n\t\t},\n\t): void;\n\n\t/** Register a CLI flag. */\n\tregisterFlag(\n\t\tname: string,\n\t\toptions:\n\t\t\t| { description?: string; type: \"boolean\"; default?: boolean }\n\t\t\t| { description?: string; type: \"string\"; default?: string },\n\t): void;\n\n\t/** Get the value of a registered CLI flag. */\n\tgetFlag(name: string): boolean | string | undefined;\n\n\tgetWorkflowHostModules(): Promise<\n\t\tRecord<\"@bastani/atomic\" | \"@bastani/pi-ai\" | \"@bastani/pi-ai/providers/all\", object>\n\t>;\n\n\t/** Return package-provided workflow files discovered for this session. */\n\tgetWorkflowResources(): ResolvedResource[];\n\n\t/**\n\t * Re-read package/settings workflow resources and return the updated snapshot when supported by the host.\n\t * Does not reload extensions, skills, prompts, themes, or context files.\n\t */\n\trefreshWorkflowResources?: () => Promise<ResolvedResource[]>;\n\n\t/**\n\t * Contribute an MCP server to this session, using the same schema as an `mcpServers` entry in `mcp.json`.\n\t * Call it from the factory or from `session_start`; registering a name again replaces the earlier entry.\n\t * Contributed servers are the lowest-precedence MCP layer: a same-named server in a user or project MCP\n\t * config replaces this one, and `{ \"disabled\": true }` there turns it off.\n\t */\n\tregisterMcpServer(name: string, config: McpServerConfig): void;\n\n\t/** Package-manifest and registered MCP servers for this session, one entry per server name. */\n\tgetMcpServerContributions?: () => McpServerContribution[];\n\n\t/** Subscribe to `registerMcpServer()` changes after startup; returns an unsubscribe function. */\n\tonMcpServerContributionsChanged?: (listener: () => void) => () => void;\n\n\t/**\n\t * Return the resource-loader options that child Atomic sessions should inherit without sharing this loader instance.\n\t */\n\tgetResourceLoaderInheritanceSnapshot?: () => DefaultResourceLoaderInheritanceSnapshot;\n\t/** Internal owner-bound defaults and capability ceiling for builtin child adapters. */\n\tgetChildSessionOptions?: import(\"../child-session-options.ts\").ChildSessionOptionsResolver;\n\n\t// =========================================================================\n\t// Message Rendering\n\t// =========================================================================\n\n\t/** Register a custom renderer for CustomMessageEntry. */\n\tregisterMessageRenderer<T = unknown>(customType: string, renderer: MessageRenderer<T>): void;\n\n\t/** Register a transformer for user and assistant Markdown before Atomic renders it in the interactive transcript. */\n\tregisterMarkdownTransformer(transformer: MarkdownTransformer): void;\n\t/** Register a custom renderer for a persistent CustomEntry. */\n\tregisterEntryRenderer<T = unknown>(customType: string, renderer: EntryRenderer<T>): void;\n\n\t/** Choose how tool calls are drawn. Resolvers run in extension load order. */\n\tregisterToolRenderer(resolver: ToolRendererResolver): void;\n\n\t// =========================================================================\n\t// Actions\n\t// =========================================================================\n\n\t/** Send a custom message to the session. */\n\tsendMessage<T = unknown>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: SendMessageOptions,\n\t): void | Promise<void>;\n\n\t/** Atomically admit custom messages in array order without waiting for the resulting turn. */\n\tsendMessages<T = unknown>(\n\t\tmessages: Array<Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">>,\n\t\toptions?: SendMessagesOptions,\n\t): void | Promise<void>;\n\n\t/**\n\t * Send a user message to the agent. Always triggers a turn.\n\t * When the agent is streaming, use deliverAs to specify how to queue the message.\n\t *\n\t * By default the text is sent literally. Set expandPromptTemplates to true to\n\t * dispatch a registered extension or skill command (or expand a prompt\n\t * template) — with that option the message may DISPATCH a command rather\n\t * than being sent. Default: false.\n\t */\n\tsendUserMessage(\n\t\tcontent: string | (TextContent | ImageContent)[],\n\t\toptions?: { deliverAs?: \"steer\" | \"followUp\"; expandPromptTemplates?: boolean },\n\t): void;\n\n\t/** Append a custom entry to the session for state persistence (not sent to LLM). */\n\tappendEntry<T = unknown>(customType: string, data?: T): void;\n\n\t// =========================================================================\n\t// Session Metadata\n\t// =========================================================================\n\n\t/** Set the session display name (shown in session selector). */\n\tsetSessionName(name: string): void;\n\n\t/** Get the current session name, if set. */\n\tgetSessionName(): string | undefined;\n\n\t/** Set or clear a label on an entry. Labels are user-defined markers for bookmarking/navigation. */\n\tsetLabel(entryId: string, label: string | undefined): void;\n\n\t/** Execute a shell command. */\n\texec(command: string, args: string[], options?: ExecOptions): Promise<ExecResult>;\n\n\t/** Get the list of currently active tool names. */\n\tgetActiveTools(): string[];\n\n\t/** Get all configured tools with parameter schema and source metadata. */\n\tgetAllTools(): ToolInfo[];\n\n\t/** Set the active tools by name. */\n\tsetActiveTools(toolNames: string[]): void;\n\n\t/** Get available slash commands in the current session. */\n\tgetCommands(): SlashCommandInfo[];\n\n\t// =========================================================================\n\t// Model and Thinking Level\n\t// =========================================================================\n\n\t/**\n\t * Set the model for the current session without changing the configured default for new sessions.\n\t * Returns false if authentication is not configured for the model's provider.\n\t */\n\tsetModel(model: Model<Api>): Promise<boolean>;\n\n\t/** Get current thinking level. */\n\tgetThinkingLevel(): ThinkingLevel;\n\n\t/**\n\t * Set the thinking level (clamped to model capabilities) for the current session without changing the configured default\n\t * for new sessions.\n\t */\n\tsetThinkingLevel(level: ThinkingLevel): void;\n\n\t// =========================================================================\n\t// Provider Registration\n\t// =========================================================================\n\n\t/**\n\t * Register or override a model provider.\n\t *\n\t * If `models` is provided: replaces all existing models for this provider.\n\t * If only `baseUrl` is provided: overrides the URL for existing models.\n\t * If `oauth` is provided: registers OAuth provider for /login support.\n\t * If `streamSimple` is provided: registers a custom API stream handler.\n\t *\n\t * During initial extension load this call is queued and applied once the\n\t * runner has bound its context. After that it takes effect immediately, so\n\t * it is safe to call from command handlers or event callbacks without\n\t * requiring a `/reload`.\n\t *\n\t * @example\n\t * // Register a new provider with custom models\n\t * pi.registerProvider(\"my-proxy\", {\n\t * baseUrl: \"https://proxy.example.com\",\n\t * apiKey: \"$PROXY_API_KEY\",\n\t * api: \"anthropic-messages\",\n\t * models: [\n\t * {\n\t * id: \"claude-sonnet-4-20250514\",\n\t * name: \"Claude 4 Sonnet (proxy)\",\n\t * reasoning: false,\n\t * input: [\"text\", \"image\"],\n\t * cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\t * contextWindow: 200000,\n\t * maxTokens: 16384\n\t * }\n\t * ]\n\t * });\n\t *\n\t * @example\n\t * // Override baseUrl for an existing provider\n\t * pi.registerProvider(\"anthropic\", {\n\t * baseUrl: \"https://proxy.example.com\"\n\t * });\n\t *\n\t * @example\n\t * // Register provider with OAuth support\n\t * pi.registerProvider(\"corporate-ai\", {\n\t * baseUrl: \"https://ai.corp.com\",\n\t * api: \"openai-responses\",\n\t * models: [...],\n\t * oauth: {\n\t * name: \"Corporate AI (SSO)\",\n\t * async login(callbacks, signal) { ... },\n\t * async refreshToken(credentials, signal) { ... },\n\t * getApiKey(credentials) { return credentials.access; }\n\t * }\n\t * });\n\t */\n\tregisterProvider(name: string, config: ProviderConfig): void;\n\tregisterProvider(provider: Provider): void;\n\tregisterProviderAlias(config: ProviderAliasConfig): void;\n\n\t/**\n\t * Unregister a previously registered provider.\n\t *\n\t * Removes all models belonging to the named provider and restores any\n\t * built-in models that were overridden by it. Has no effect if the provider\n\t * is not currently registered.\n\t *\n\t * Like `registerProvider`, this takes effect immediately when called after\n\t * the initial load phase.\n\t *\n\t * @example\n\t * pi.unregisterProvider(\"my-proxy\");\n\t */\n\tunregisterProvider(name: string): void;\n\n\t/** Shared event bus for extension communication. */\n\tevents: EventBus;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"api-types.js","sourceRoot":"","sources":["../../../src/core/extensions/api-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Provider } from \"@bastani/pi-ai\";\nimport type { Api, ImageContent, Model, TextContent } from \"@bastani/pi-ai/compat\";\nimport type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { KeyId } from \"@earendil-works/pi-tui\";\nimport type { TSchema } from \"typebox\";\nimport type { CacheWarmingDecisionEvent, CacheWarmingDecisionEventResult } from \"../cache-warmer.ts\";\nimport type { EventBus } from \"../event-bus.js\";\nimport type { ExecOptions, ExecResult } from \"../exec.ts\";\nimport type { McpServerConfig, McpServerContribution } from \"../mcp-servers.ts\";\nimport type { CustomMessage } from \"../messages.ts\";\nimport type { ResolvedResource } from \"../package-manager.ts\";\nimport type { DefaultResourceLoaderInheritanceSnapshot } from \"../resource-loader.ts\";\nimport type { SlashCommandInfo } from \"../slash-commands.js\";\nimport type {\n\tAfterProviderResponseEvent,\n\tAgentBeforeSettleEvent,\n\tAgentEndEvent,\n\tAgentSettledEvent,\n\tAgentStartEvent,\n\tBeforeAgentStartEvent,\n\tBeforeProviderHeadersEvent,\n\tBeforeProviderRequestEvent,\n\tContextEvent,\n\tContextWithSystemEvent,\n\tInputEvent,\n\tInputEventResult,\n\tMessageEndEvent,\n\tMessageStartEvent,\n\tMessageUpdateEvent,\n\tModelSelectEvent,\n\tProjectTrustHandler,\n\tProviderStreamEvent,\n\tThinkingLevelSelectEvent,\n\tToolExecutionEndEvent,\n\tToolExecutionStartEvent,\n\tToolExecutionUpdateEvent,\n\tTurnEndEvent,\n\tTurnStartEvent,\n\tUIPromptEndEvent,\n\tUIPromptStartEvent,\n\tUserBashEvent,\n} from \"./agent-events.ts\";\nimport type { RegisteredCommand } from \"./command-types.ts\";\nimport type { ExtensionContext } from \"./context-types.ts\";\nimport type {\n\tAgentBeforeSettleEventResult,\n\tBeforeAgentStartEventResult,\n\tBeforeProviderRequestEventResult,\n\tContextEventResult,\n\tMessageEndEventResult,\n\tSessionBeforeCompactResult,\n\tSessionBeforeForkResult,\n\tSessionBeforeSwitchResult,\n\tSessionBeforeTreeResult,\n\tToolCallEventResult,\n\tToolResultEventResult,\n\tTurnEndEventResult,\n\tUserBashEventResult,\n} from \"./event-results.ts\";\nimport type {\n\tEntryRenderer,\n\tMarkdownTransformer,\n\tMessageRenderer,\n\tSendMessageOptions,\n\tSendMessagesOptions,\n} from \"./message-types.ts\";\nimport type { ProviderAliasConfig, ProviderConfig } from \"./provider-types.ts\";\nimport type {\n\tResourcesDiscoverEvent,\n\tResourcesDiscoverResult,\n\tSessionBeforeCompactEvent,\n\tSessionBeforeForkEvent,\n\tSessionBeforeSwitchEvent,\n\tSessionBeforeTreeEvent,\n\tSessionCompactEvent,\n\tSessionCompactFailedEvent,\n\tSessionInfoChangedEvent,\n\tSessionShutdownEvent,\n\tSessionStartEvent,\n\tSessionTreeEvent,\n} from \"./session-events.ts\";\nimport type { ToolCallEvent, ToolResultEvent } from \"./tool-events.ts\";\nimport type { ToolDefinition, ToolInfo, ToolRendererResolver } from \"./tool-types.ts\";\nimport type {\n\tWorkflowActivityChangedEvent,\n\tWorkflowActivityPublisher,\n\tWorkflowHeartbeatEvent,\n\tWorkflowLifecycleEvent,\n\tWorkflowStageCompletedEvent,\n} from \"./workflow-events.js\";\nimport type { WorkflowRunControl, WorkflowRunControlRegistration } from \"./workflow-run-control.js\";\n\n/** Handler function type for events */\n// biome-ignore lint/suspicious/noConfusingVoidType: void allows bare return statements\nexport type ExtensionHandler<E, R = undefined> = (event: E, ctx: ExtensionContext) => Promise<R | void> | R | void;\n\n/**\n * ExtensionAPI passed to extension factory functions.\n */\nexport interface ExtensionAPI {\n\t/** Snapshot of effective settings. Available after the session runtime is bound. */\n\tgetSettings(): import(\"../settings-types.ts\").Settings;\n\t/** @internal Owning runtime identity, retained across generation replacement. */\n\tlifecycleScope?: object;\n\tregisterWorkflowActivityPublisher(): WorkflowActivityPublisher;\n\t/** Register the implementation behind `session.workflows`; disposed with this extension generation. */\n\tregisterWorkflowRunControl(control: WorkflowRunControl): WorkflowRunControlRegistration;\n\ton(\n\t\tevent: \"cache_warming_decision\",\n\t\thandler: ExtensionHandler<CacheWarmingDecisionEvent, CacheWarmingDecisionEventResult>,\n\t): () => void;\n\ton(event: \"workflow_lifecycle\", handler: ExtensionHandler<WorkflowLifecycleEvent>): () => void;\n\ton(event: \"workflow_activity_changed\", handler: ExtensionHandler<WorkflowActivityChangedEvent>): () => void;\n\ton(event: \"workflow_stage_completed\", handler: ExtensionHandler<WorkflowStageCompletedEvent>): () => void;\n\ton(event: \"workflow_heartbeat\", handler: ExtensionHandler<WorkflowHeartbeatEvent>): () => void;\n\t// =========================================================================\n\t// Event Subscription\n\t// =========================================================================\n\n\ton(\n\t\tevent: \"resources_discover\",\n\t\thandler: ExtensionHandler<ResourcesDiscoverEvent, ResourcesDiscoverResult>,\n\t): () => void;\n\ton(event: \"session_info_changed\", handler: ExtensionHandler<SessionInfoChangedEvent>): () => void;\n\ton(event: \"session_start\", handler: ExtensionHandler<SessionStartEvent>): () => void;\n\ton(\n\t\tevent: \"session_before_switch\",\n\t\thandler: ExtensionHandler<SessionBeforeSwitchEvent, SessionBeforeSwitchResult>,\n\t): () => void;\n\ton(\n\t\tevent: \"session_before_fork\",\n\t\thandler: ExtensionHandler<SessionBeforeForkEvent, SessionBeforeForkResult>,\n\t): () => void;\n\ton(\n\t\tevent: \"session_before_compact\",\n\t\thandler: ExtensionHandler<SessionBeforeCompactEvent, SessionBeforeCompactResult>,\n\t): () => void;\n\ton(event: \"session_compact\", handler: ExtensionHandler<SessionCompactEvent>): () => void;\n\ton(event: \"session_compact_failed\", handler: ExtensionHandler<SessionCompactFailedEvent>): () => void;\n\ton(event: \"session_shutdown\", handler: ExtensionHandler<SessionShutdownEvent>): () => void;\n\ton(\n\t\tevent: \"session_before_tree\",\n\t\thandler: ExtensionHandler<SessionBeforeTreeEvent, SessionBeforeTreeResult>,\n\t): () => void;\n\ton(event: \"session_tree\", handler: ExtensionHandler<SessionTreeEvent>): () => void;\n\ton(event: \"context\", handler: ExtensionHandler<ContextEvent, ContextEventResult>): () => void;\n\ton(event: \"context_with_system\", handler: ExtensionHandler<ContextWithSystemEvent, ContextEventResult>): () => void;\n\ton(\n\t\tevent: \"before_provider_request\",\n\t\thandler: ExtensionHandler<BeforeProviderRequestEvent, BeforeProviderRequestEventResult>,\n\t): () => void;\n\ton(event: \"before_provider_headers\", handler: ExtensionHandler<BeforeProviderHeadersEvent>): () => void;\n\ton(event: \"after_provider_response\", handler: ExtensionHandler<AfterProviderResponseEvent>): () => void;\n\ton(event: \"provider_stream_event\", handler: ExtensionHandler<ProviderStreamEvent>): () => void;\n\ton(\n\t\tevent: \"before_agent_start\",\n\t\thandler: ExtensionHandler<BeforeAgentStartEvent, BeforeAgentStartEventResult>,\n\t): () => void;\n\ton(event: \"agent_start\", handler: ExtensionHandler<AgentStartEvent>): () => void;\n\ton(event: \"agent_end\", handler: ExtensionHandler<AgentEndEvent>): () => void;\n\ton(\n\t\tevent: \"agent_before_settle\",\n\t\thandler: ExtensionHandler<AgentBeforeSettleEvent, AgentBeforeSettleEventResult>,\n\t): () => void;\n\ton(event: \"agent_settled\", handler: ExtensionHandler<AgentSettledEvent>): () => void;\n\ton(event: \"ui_prompt_start\", handler: ExtensionHandler<UIPromptStartEvent>): () => void;\n\ton(event: \"ui_prompt_end\", handler: ExtensionHandler<UIPromptEndEvent>): () => void;\n\ton(event: \"turn_start\", handler: ExtensionHandler<TurnStartEvent>): () => void;\n\ton(event: \"turn_end\", handler: ExtensionHandler<TurnEndEvent, TurnEndEventResult>): () => void;\n\ton(event: \"message_start\", handler: ExtensionHandler<MessageStartEvent>): () => void;\n\ton(event: \"message_update\", handler: ExtensionHandler<MessageUpdateEvent>): () => void;\n\ton(event: \"message_end\", handler: ExtensionHandler<MessageEndEvent, MessageEndEventResult>): () => void;\n\ton(event: \"tool_execution_start\", handler: ExtensionHandler<ToolExecutionStartEvent>): () => void;\n\ton(event: \"tool_execution_update\", handler: ExtensionHandler<ToolExecutionUpdateEvent>): () => void;\n\ton(event: \"tool_execution_end\", handler: ExtensionHandler<ToolExecutionEndEvent>): () => void;\n\ton(event: \"model_select\", handler: ExtensionHandler<ModelSelectEvent>): () => void;\n\ton(event: \"thinking_level_select\", handler: ExtensionHandler<ThinkingLevelSelectEvent>): () => void;\n\ton(event: \"tool_call\", handler: ExtensionHandler<ToolCallEvent, ToolCallEventResult>): () => void;\n\ton(event: \"tool_result\", handler: ExtensionHandler<ToolResultEvent, ToolResultEventResult>): () => void;\n\ton(event: \"user_bash\", handler: ExtensionHandler<UserBashEvent, UserBashEventResult>): () => void;\n\ton(event: \"project_trust\", handler: ProjectTrustHandler): () => void;\n\ton(event: \"input\", handler: ExtensionHandler<InputEvent, InputEventResult>): () => void;\n\n\t// =========================================================================\n\t// Tool Registration\n\t// =========================================================================\n\n\t/** Register a tool that the LLM can call. */\n\tregisterTool<TParams extends TSchema = TSchema, TDetails = unknown, TState = unknown>(\n\t\ttool: ToolDefinition<TParams, TDetails, TState>,\n\t): void;\n\n\t// =========================================================================\n\t// Command, Shortcut, Flag Registration\n\t// =========================================================================\n\n\t/** Register a custom command. */\n\tregisterCommand(name: string, options: Omit<RegisteredCommand, \"name\" | \"sourceInfo\">): void;\n\n\t/** Register a keyboard shortcut. */\n\tregisterShortcut(\n\t\tshortcut: KeyId,\n\t\toptions: {\n\t\t\tdescription?: string;\n\t\t\tkeybinding?: import(\"../keybindings.ts\").Keybinding;\n\t\t\tpreferEditor?: boolean;\n\t\t\thandler: (ctx: ExtensionContext) => Promise<void> | void;\n\t\t},\n\t): void;\n\n\t/** Register a CLI flag. */\n\tregisterFlag(\n\t\tname: string,\n\t\toptions:\n\t\t\t| { description?: string; type: \"boolean\"; default?: boolean }\n\t\t\t| { description?: string; type: \"string\"; default?: string },\n\t): void;\n\n\t/** Get the value of a registered CLI flag. */\n\tgetFlag(name: string): boolean | string | undefined;\n\n\tgetWorkflowHostModules(): Promise<\n\t\tRecord<\"@bastani/atomic\" | \"@bastani/pi-ai\" | \"@bastani/pi-ai/providers/all\", object>\n\t>;\n\n\t/** Return package-provided workflow files discovered for this session. */\n\tgetWorkflowResources(): ResolvedResource[];\n\n\t/**\n\t * Re-read package/settings workflow resources and return the updated snapshot when supported by the host.\n\t * Does not reload extensions, skills, prompts, themes, or context files.\n\t */\n\trefreshWorkflowResources?: () => Promise<ResolvedResource[]>;\n\n\t/**\n\t * Contribute an MCP server to this session, using the same schema as an `mcpServers` entry in `mcp.json`.\n\t * Call it from the factory or from `session_start`; registering a name again replaces the earlier entry.\n\t * Contributed servers are the lowest-precedence MCP layer: a same-named server in a user or project MCP\n\t * config replaces this one, and `{ \"disabled\": true }` there turns it off.\n\t */\n\tregisterMcpServer(name: string, config: McpServerConfig): void;\n\n\t/** Package-manifest and registered MCP servers for this session, one entry per server name. */\n\tgetMcpServerContributions?: () => McpServerContribution[];\n\n\t/** Subscribe to `registerMcpServer()` changes after startup; returns an unsubscribe function. */\n\tonMcpServerContributionsChanged?: (listener: () => void) => () => void;\n\n\t/**\n\t * Return the resource-loader options that child Atomic sessions should inherit without sharing this loader instance.\n\t */\n\tgetResourceLoaderInheritanceSnapshot?: () => DefaultResourceLoaderInheritanceSnapshot;\n\t/** Internal owner-bound defaults and capability ceiling for builtin child adapters. */\n\tgetChildSessionOptions?: import(\"../child-session-options.ts\").ChildSessionOptionsResolver;\n\n\t// =========================================================================\n\t// Message Rendering\n\t// =========================================================================\n\n\t/** Register a custom renderer for CustomMessageEntry. */\n\tregisterMessageRenderer<T = unknown>(customType: string, renderer: MessageRenderer<T>): void;\n\n\t/** Register a transformer for user and assistant Markdown before Atomic renders it in the interactive transcript. */\n\tregisterMarkdownTransformer(transformer: MarkdownTransformer): void;\n\t/** Register a custom renderer for a persistent CustomEntry. */\n\tregisterEntryRenderer<T = unknown>(customType: string, renderer: EntryRenderer<T>): void;\n\n\t/** Choose how tool calls are drawn. Resolvers run in extension load order. */\n\tregisterToolRenderer(resolver: ToolRendererResolver): void;\n\n\t// =========================================================================\n\t// Actions\n\t// =========================================================================\n\n\t/** Send a custom message to the session. */\n\tsendMessage<T = unknown>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: SendMessageOptions,\n\t): void | Promise<void>;\n\n\t/** Atomically admit custom messages in array order without waiting for the resulting turn. */\n\tsendMessages<T = unknown>(\n\t\tmessages: Array<Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">>,\n\t\toptions?: SendMessagesOptions,\n\t): void | Promise<void>;\n\n\t/**\n\t * Send a user message to the agent. Always triggers a turn.\n\t * When the agent is streaming, use deliverAs to specify how to queue the message.\n\t *\n\t * By default the text is sent literally. Set expandPromptTemplates to true to\n\t * dispatch a registered extension or skill command (or expand a prompt\n\t * template) — with that option the message may DISPATCH a command rather\n\t * than being sent. Default: false.\n\t */\n\tsendUserMessage(\n\t\tcontent: string | (TextContent | ImageContent)[],\n\t\toptions?: { deliverAs?: \"steer\" | \"followUp\"; expandPromptTemplates?: boolean },\n\t): void;\n\n\t/** Append a custom entry to the session for state persistence (not sent to LLM). */\n\tappendEntry<T = unknown>(customType: string, data?: T): void;\n\n\t// =========================================================================\n\t// Session Metadata\n\t// =========================================================================\n\n\t/** Set the session display name (shown in session selector). */\n\tsetSessionName(name: string): void;\n\n\t/** Get the current session name, if set. */\n\tgetSessionName(): string | undefined;\n\n\t/** Set or clear a label on an entry. Labels are user-defined markers for bookmarking/navigation. */\n\tsetLabel(entryId: string, label: string | undefined): void;\n\n\t/** Execute a shell command. */\n\texec(command: string, args: string[], options?: ExecOptions): Promise<ExecResult>;\n\n\t/** Get the list of currently active tool names. */\n\tgetActiveTools(): string[];\n\n\t/** Get all configured tools with parameter schema and source metadata. */\n\tgetAllTools(): ToolInfo[];\n\n\t/** Set the active tools by name. */\n\tsetActiveTools(toolNames: string[]): void;\n\n\t/** Get available slash commands in the current session. */\n\tgetCommands(): SlashCommandInfo[];\n\n\t// =========================================================================\n\t// Model and Thinking Level\n\t// =========================================================================\n\n\t/**\n\t * Set the model for the current session without changing the configured default for new sessions.\n\t * Returns false if authentication is not configured for the model's provider.\n\t */\n\tsetModel(model: Model<Api>): Promise<boolean>;\n\n\t/** Get current thinking level. */\n\tgetThinkingLevel(): ThinkingLevel;\n\n\t/**\n\t * Set the thinking level (clamped to model capabilities) for the current session without changing the configured default\n\t * for new sessions.\n\t */\n\tsetThinkingLevel(level: ThinkingLevel): void;\n\n\t// =========================================================================\n\t// Provider Registration\n\t// =========================================================================\n\n\t/**\n\t * Register or override a model provider.\n\t *\n\t * If `models` is provided: replaces all existing models for this provider.\n\t * If only `baseUrl` is provided: overrides the URL for existing models.\n\t * If `oauth` is provided: registers OAuth provider for /login support.\n\t * If `streamSimple` is provided: registers a custom API stream handler.\n\t *\n\t * During initial extension load this call is queued and applied once the\n\t * runner has bound its context. After that it takes effect immediately, so\n\t * it is safe to call from command handlers or event callbacks without\n\t * requiring a `/reload`.\n\t *\n\t * @example\n\t * // Register a new provider with custom models\n\t * pi.registerProvider(\"my-proxy\", {\n\t * baseUrl: \"https://proxy.example.com\",\n\t * apiKey: \"$PROXY_API_KEY\",\n\t * api: \"anthropic-messages\",\n\t * models: [\n\t * {\n\t * id: \"claude-sonnet-4-20250514\",\n\t * name: \"Claude 4 Sonnet (proxy)\",\n\t * reasoning: false,\n\t * input: [\"text\", \"image\"],\n\t * cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\t * contextWindow: 200000,\n\t * maxTokens: 16384\n\t * }\n\t * ]\n\t * });\n\t *\n\t * @example\n\t * // Override baseUrl for an existing provider\n\t * pi.registerProvider(\"anthropic\", {\n\t * baseUrl: \"https://proxy.example.com\"\n\t * });\n\t *\n\t * @example\n\t * // Register provider with OAuth support\n\t * pi.registerProvider(\"corporate-ai\", {\n\t * baseUrl: \"https://ai.corp.com\",\n\t * api: \"openai-responses\",\n\t * models: [...],\n\t * oauth: {\n\t * name: \"Corporate AI (SSO)\",\n\t * async login(callbacks, signal) { ... },\n\t * async refreshToken(credentials, signal) { ... },\n\t * getApiKey(credentials) { return credentials.access; }\n\t * }\n\t * });\n\t */\n\tregisterProvider(name: string, config: ProviderConfig): void;\n\tregisterProvider(provider: Provider): void;\n\tregisterProviderAlias(config: ProviderAliasConfig): void;\n\n\t/**\n\t * Unregister a previously registered provider.\n\t *\n\t * Removes all models belonging to the named provider and restores any\n\t * built-in models that were overridden by it. Has no effect if the provider\n\t * is not currently registered.\n\t *\n\t * Like `registerProvider`, this takes effect immediately when called after\n\t * the initial load phase.\n\t *\n\t * @example\n\t * pi.unregisterProvider(\"my-proxy\");\n\t */\n\tunregisterProvider(name: string): void;\n\n\t/** Shared event bus for extension communication. */\n\tevents: EventBus;\n}\n"]}
|
|
@@ -186,6 +186,7 @@ export interface ExtensionContext {
|
|
|
186
186
|
hasUI: boolean;
|
|
187
187
|
/** Whether a semantic human-input adapter is available, independently of rendering. */
|
|
188
188
|
hasHumanInput: boolean;
|
|
189
|
+
readonly isPresentationOnly?: boolean;
|
|
189
190
|
/** Current working directory */
|
|
190
191
|
cwd: string;
|
|
191
192
|
/** Session manager (read-only) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-types.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/context-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context-types.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/context-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-types.js","sourceRoot":"","sources":["../../../src/core/extensions/context-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Api, ImageContent, Model, TextContent } from \"@bastani/pi-ai/compat\";\nimport type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { VerbatimCompactionResult } from \"../compaction/index.ts\";\nimport type { CustomMessage } from \"../messages.ts\";\nimport type { ModelRegistry } from \"../model-registry.ts\";\nimport type { ScopedModel } from \"../model-resolver.ts\";\nimport type { ReadonlySessionManager, SessionManager } from \"../session-manager.ts\";\nimport type { SkillCatalog } from \"../skill-catalog.ts\";\nimport type { BuildSystemPromptOptions } from \"../system-prompt.ts\";\nimport type { WorkflowStageAdmissionBoundary } from \"../workflow-stage-admission.ts\";\nimport type { SendMessageOptions, SendMessagesOptions } from \"./message-types.ts\";\nimport type { ExtensionUIContext } from \"./ui-types.js\";\nimport type { WorkflowActivityObserver, WorkflowActivitySubscription } from \"./workflow-events.js\";\nexport interface ExecuteToolOptions {\n\tsignal?: AbortSignal;\n\tonUpdate?: import(\"@earendil-works/pi-agent-core\").AgentToolUpdateCallback;\n}\n\n/** Tool-only context. Nested calls retain session validation and permission hooks. */\nexport interface ExtensionToolContext extends ExtensionContext {\n\treadonly tools: readonly import(\"@earendil-works/pi-agent-core\").AgentTool[];\n\texecuteTool(\n\t\tname: string,\n\t\targs: unknown,\n\t\toptions?: ExecuteToolOptions,\n\t): Promise<import(\"@earendil-works/pi-agent-core\").AgentToolCallOutcome>;\n}\n\nexport interface ContextUsage {\n\t/** Estimated context tokens, or null if unknown (e.g. right after compaction, before next LLM response). */\n\ttokens: number | null;\n\tcontextWindow: number;\n\t/** Context usage as percentage of context window, or null if tokens is unknown. */\n\tpercent: number | null;\n}\n\nexport interface CompactOptions {\n\t/** Fraction of compactable context to keep. 0.3 is aggressive, 0.7 is light. */\n\tcompression_ratio?: number;\n\t/** Number of recent context-eligible messages to keep uncompressed. */\n\tpreserve_recent?: number;\n\t/** Focus query for relevance-based pruning. Defaults to auto-detected session context. */\n\tquery?: string;\n\tonComplete?: (result: VerbatimCompactionResult) => void;\n\tonError?: (error: Error) => void;\n}\n\n/**\n * Late routes settle as delivery acknowledgements: resolution means the route\n * accepted delivery, while rejection means delivery was not fully accepted. A\n * sequential batch may have delivered a prefix before it rejects; stale-context\n * rejection identifies the dropped route, and other failures reject unchanged.\n */\nexport interface WorkflowStageLateMessageRouter {\n\trouteMessage<T>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: SendMessageOptions,\n\t): void | Promise<void>;\n\trouteMessages<T>(\n\t\tmessages: Array<Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">>,\n\t\toptions?: SendMessagesOptions,\n\t): void | Promise<void>;\n}\n\nexport interface WorkflowStageMessageAdmission {\n\t/** Internal generation-owned boundary shared by every model-fallback session. */\n\treadonly boundary: WorkflowStageAdmissionBoundary;\n\t/** Internal extension state that must survive model-fallback session replacement. */\n\treadonly extensionState: Map<string, object>;\n\tisOpen(): boolean;\n}\n\nexport interface WorkflowPendingStageSender {\n\treadonly id: string;\n\treadonly name?: string;\n\treadonly cwd: string;\n\treadonly model: string;\n\treadonly pid: number;\n\treadonly startedAt: number;\n\treadonly lastActivity: number;\n\treadonly status?: string;\n\treadonly group?: string;\n}\n\nexport interface WorkflowPendingStageMessage {\n\treadonly id: string;\n\treadonly timestamp: number;\n\treadonly replyTo?: string;\n\treadonly expectsReply?: boolean;\n\treadonly replyError?: string;\n\treadonly content: {\n\t\treadonly text: string;\n\t\treadonly attachments?: readonly {\n\t\t\treadonly type: \"file\" | \"snippet\" | \"context\";\n\t\t\treadonly name: string;\n\t\t\treadonly content: string;\n\t\t\treadonly language?: string;\n\t\t}[];\n\t};\n}\n\nexport interface WorkflowPendingStageDelivery {\n\t/** Process-private authority proving this stage belongs to the workflow run route. */\n\treadonly routeCapability: string;\n\tdeliverPending(\n\t\tdeliver: (from: WorkflowPendingStageSender, message: WorkflowPendingStageMessage) => void | Promise<void>,\n\t\trecipient?: { readonly sessionId: string; readonly receivedMessageIds: readonly string[] },\n\t): Promise<void>;\n\tready(sessionId?: string): Promise<void> | undefined;\n\t/**\n\t * Terminal signal from a delivery owner that has run out of recovery: the\n\t * queued messages can no longer be drained, so the stage must fail at its own\n\t * lifecycle boundary rather than run without the instructions it was given.\n\t * Idempotent — the first reason wins, and `ready()` then settles with a\n\t * stage-scoped error instead of waiting for a delivery that will not come.\n\t *\n\t * Required, not optional: `ready()` has no timeout, so a delivery that cannot\n\t * be settled leaves its stage parked forever. Every implementer must be able\n\t * to answer that no delivery is coming.\n\t */\n\tfail(reason: Error): void;\n}\n\nexport interface WorkflowStageOrchestrationContext {\n\treadonly kind: \"workflow-stage\";\n\treadonly workflowRunId: string;\n\treadonly workflowStageId: string;\n\treadonly workflowStageName: string;\n\treadonly constraints: {\n\t\treadonly disableWorkflowTool: true;\n\t};\n\t/** Internal lifecycle seam for surfacing detached results after this stage closes. */\n\treadonly lateMessageRouter?: WorkflowStageLateMessageRouter;\n\t/** Internal synchronous boundary used before producer reply/turn side effects. */\n\treadonly messageAdmission?: WorkflowStageMessageAdmission;\n\t/**\n\t * Resolved per-session intercom home group for this stage. Concrete, already\n\t * normalized upstream. Read by the intercom extension (buildRegistration) and\n\t * inherited by subagents this stage spawns. Absent => no group override.\n\t */\n\treadonly intercomGroup?: string;\n\t/** Durable pre-start intercom delivery, drained by the intercom extension before the first turn. */\n\treadonly pendingStageDelivery?: WorkflowPendingStageDelivery;\n}\n/** Typed child intercom identity and supervisor capability issued at admission. */\nexport interface SubagentIntercomIdentity {\n\treadonly orchestratorTarget: string;\n\treadonly runId: string;\n\treadonly agent: string;\n\treadonly index: number;\n\treadonly sessionName?: string;\n\treadonly supervisor?: {\n\t\treadonly capability: string;\n\t\treadonly supervisorSessionId: string;\n\t};\n}\n\n/** Typed child capability policy supplied by an in-process subagent admission. */\nexport interface SubagentChildPolicy {\n\treadonly managementActions: \"full\" | \"restricted\";\n\treadonly fanoutAuthorized: boolean;\n\treadonly inheritProjectContext: boolean;\n\treadonly inheritSkills: boolean;\n\t/** Host-owned signal fired when this noninteractive execution ends, before disposal. */\n\treadonly executionEnded?: AbortSignal;\n\t/** SDK-owned inbound lifetime; closing drains admitted messages without reopening the task. */\n\treadonly messageAdmission?: {\n\t\tisOpen(): boolean;\n\t\t/** Reserve the full producer operation, including retries, before child settlement. */\n\t\trun(deliver: () => void | Promise<void>): Promise<void>;\n\t};\n\t/** Current admitted in-process nesting depth; absent for top-level sessions. */\n\treadonly depth?: number;\n\t/** SDK-resolved exact child tool allowlist; undefined leaves ordinary tools unrestricted. */\n\treadonly tools?: readonly string[];\n\t/** Server or server/tool selections. Undefined preserves MCP defaults; [] disables selector-based access. */\n\treadonly mcpDirectTools?: readonly string[];\n\t/** Admission-issued identity/capability; never inherited through process environment. */\n\treadonly intercom?: SubagentIntercomIdentity;\n\t/** Resolved intercom group for this admitted child, when one was assigned. */\n\treadonly intercomGroup?: string;\n}\n// Union alias kept for forward-compatible orchestration context variants.\nexport type OrchestrationContext = WorkflowStageOrchestrationContext;\n\n/**\n * Context passed to extension event handlers.\n */\nexport type ExtensionMode = \"tui\" | \"rpc\" | \"json\" | \"print\";\n\nexport interface ExtensionContext {\n\t/** Observe the owning session's workflow activity, starting with an ordered snapshot. */\n\tobserveWorkflowActivity(observer: WorkflowActivityObserver): WorkflowActivitySubscription;\n\t/** Paths of actually loaded extensions, when supplied by the host. */\n\tgetExtensionPaths?(): string[];\n\t/** Internal actual-session binding; never populated from model arguments. */\n\tgetAgentTaskHost?(): import(\"../tasks/agent-adapter.js\").AgentTaskHost;\n\t/** Internal owner-bound defaults and capability ceiling for builtin child adapters. */\n\tgetChildSessionOptions?: import(\"../child-session-options.ts\").ChildSessionOptionsResolver;\n\t/** Session-scoped orchestration policy for child runtimes such as workflow stages. */\n\treadonly orchestrationContext?: OrchestrationContext;\n\t/** Typed capability policy for an in-process subagent child, when this session is one. */\n\treadonly subagentPolicy?: SubagentChildPolicy;\n\t/** UI methods for user interaction */\n\tui: ExtensionUIContext;\n\t/** Current run mode. Use \"tui\" to guard terminal-only UI such as custom components. */\n\tmode: ExtensionMode;\n\t/** Whether dialog-capable UI is available (true in TUI and RPC modes) */\n\thasUI: boolean;\n\t/** Whether a semantic human-input adapter is available, independently of rendering. */\n\thasHumanInput: boolean;\n\t/** Current working directory */\n\tcwd: string;\n\t/** Session manager (read-only) */\n\tsessionManager: ReadonlySessionManager;\n\t/** Model registry for API key resolution */\n\tmodelRegistry: ModelRegistry;\n\t/** Current model (may be undefined) */\n\tmodel: Model<Api> | undefined;\n\t/** Models scoped to this session (resolved from `--models` / `enabledModels`\n\t * settings against the available catalogue). Same set the `/scoped-models`\n\t * command shows. Empty when no scoping is configured (all available models\n\t * are usable). Read-only snapshot, resolved at access time. */\n\tscopedModels: readonly ScopedModel[];\n\t/** Current thinking level, resolved from the active session at access time. */\n\tthinkingLevel?: ThinkingLevel;\n\t/** Session-scoped internal resource router (e.g. artifact:// resolver). */\n\treadonly internalResourceRouter?: import(\"../tools/resource-selectors.ts\").InternalResourceRouter;\n\t/** Whether the agent is idle (not streaming) */\n\tisIdle(): boolean;\n\t/** Whether project-local trust is active for this context. */\n\tisProjectTrusted(): boolean;\n\t/** The current abort signal, or undefined when the agent is not streaming. */\n\tsignal: AbortSignal | undefined;\n\t/** Abort the current agent operation */\n\tabort(): void;\n\t/** Whether there are queued messages waiting */\n\thasPendingMessages(): boolean;\n\t/** Gracefully shutdown pi and exit. Available in all contexts. */\n\tshutdown(): void;\n\t/** Get current context usage for the active model. */\n\tgetContextUsage(): ContextUsage | undefined;\n\t/** Trigger compaction without awaiting completion. */\n\tcompact(options?: CompactOptions): void;\n\t/** Get the current effective system prompt. */\n\tgetSystemPrompt(): string;\n\t/** Current loader-owned skill candidates and exact selector resolver. */\n\tgetSkillCatalog?(): SkillCatalog;\n\t/** Current routing-only inference setting from the owning session. Does not change the chat model. */\n\tgetRouterModel(): string;\n\t/** Provider filters for `model: \"auto\"` candidates from the owning session's settings. */\n\tgetModelRouting?(): import(\"../settings-types.ts\").ModelRoutingSettings;\n}\n\n/**\n * Extended context for command handlers.\n * Includes session control methods only safe in user-initiated commands.\n */\nexport interface ExtensionCommandContext extends ExtensionContext {\n\t/** Get the current base system-prompt construction options. */\n\tgetSystemPromptOptions(): BuildSystemPromptOptions;\n\n\t/** Wait for the agent to finish streaming */\n\twaitForIdle(): Promise<void>;\n\n\t/** Start a new session, optionally with initialization. */\n\tnewSession(options?: {\n\t\tparentSession?: string;\n\t\tsetup?: (sessionManager: SessionManager) => Promise<void>;\n\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>;\n\t}): Promise<{ cancelled: boolean }>;\n\n\t/** Fork from a specific entry, creating a new session file. */\n\tfork(\n\t\tentryId: string,\n\t\toptions?: { position?: \"before\" | \"at\"; withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t): Promise<{ cancelled: boolean }>;\n\n\t/** Navigate to a different point in the session tree. */\n\tnavigateTree(\n\t\ttargetId: string,\n\t\toptions?: { summarize?: boolean; customInstructions?: string; replaceInstructions?: boolean; label?: string },\n\t): Promise<{ cancelled: boolean }>;\n\n\t/** Switch to a different session file. */\n\tswitchSession(\n\t\tsessionPath: string,\n\t\toptions?: { withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t): Promise<{ cancelled: boolean }>;\n\n\t/** Reload extensions, skills, prompts, and themes. */\n\treload(): Promise<void>;\n}\n\n/**\n * Fresh command-capable context bound to the replacement session after a session switch.\n *\n * This is passed to `withSession()` callbacks on `newSession()`, `fork()`, and `switchSession()`.\n */\nexport interface ReplacedSessionContext extends ExtensionCommandContext {\n\tsendMessage<T = unknown>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: SendMessageOptions,\n\t): Promise<void>;\n\n\tsendUserMessage(\n\t\tcontent: string | (TextContent | ImageContent)[],\n\t\toptions?: { deliverAs?: \"steer\" | \"followUp\"; expandPromptTemplates?: boolean },\n\t): Promise<void>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"context-types.js","sourceRoot":"","sources":["../../../src/core/extensions/context-types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Api, ImageContent, Model, TextContent } from \"@bastani/pi-ai/compat\";\nimport type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { VerbatimCompactionResult } from \"../compaction/index.ts\";\nimport type { CustomMessage } from \"../messages.ts\";\nimport type { ModelRegistry } from \"../model-registry.ts\";\nimport type { ScopedModel } from \"../model-resolver.ts\";\nimport type { ReadonlySessionManager, SessionManager } from \"../session-manager.ts\";\nimport type { SkillCatalog } from \"../skill-catalog.ts\";\nimport type { BuildSystemPromptOptions } from \"../system-prompt.ts\";\nimport type { WorkflowStageAdmissionBoundary } from \"../workflow-stage-admission.ts\";\nimport type { SendMessageOptions, SendMessagesOptions } from \"./message-types.ts\";\nimport type { ExtensionUIContext } from \"./ui-types.js\";\nimport type { WorkflowActivityObserver, WorkflowActivitySubscription } from \"./workflow-events.js\";\nexport interface ExecuteToolOptions {\n\tsignal?: AbortSignal;\n\tonUpdate?: import(\"@earendil-works/pi-agent-core\").AgentToolUpdateCallback;\n}\n\n/** Tool-only context. Nested calls retain session validation and permission hooks. */\nexport interface ExtensionToolContext extends ExtensionContext {\n\treadonly tools: readonly import(\"@earendil-works/pi-agent-core\").AgentTool[];\n\texecuteTool(\n\t\tname: string,\n\t\targs: unknown,\n\t\toptions?: ExecuteToolOptions,\n\t): Promise<import(\"@earendil-works/pi-agent-core\").AgentToolCallOutcome>;\n}\n\nexport interface ContextUsage {\n\t/** Estimated context tokens, or null if unknown (e.g. right after compaction, before next LLM response). */\n\ttokens: number | null;\n\tcontextWindow: number;\n\t/** Context usage as percentage of context window, or null if tokens is unknown. */\n\tpercent: number | null;\n}\n\nexport interface CompactOptions {\n\t/** Fraction of compactable context to keep. 0.3 is aggressive, 0.7 is light. */\n\tcompression_ratio?: number;\n\t/** Number of recent context-eligible messages to keep uncompressed. */\n\tpreserve_recent?: number;\n\t/** Focus query for relevance-based pruning. Defaults to auto-detected session context. */\n\tquery?: string;\n\tonComplete?: (result: VerbatimCompactionResult) => void;\n\tonError?: (error: Error) => void;\n}\n\n/**\n * Late routes settle as delivery acknowledgements: resolution means the route\n * accepted delivery, while rejection means delivery was not fully accepted. A\n * sequential batch may have delivered a prefix before it rejects; stale-context\n * rejection identifies the dropped route, and other failures reject unchanged.\n */\nexport interface WorkflowStageLateMessageRouter {\n\trouteMessage<T>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: SendMessageOptions,\n\t): void | Promise<void>;\n\trouteMessages<T>(\n\t\tmessages: Array<Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">>,\n\t\toptions?: SendMessagesOptions,\n\t): void | Promise<void>;\n}\n\nexport interface WorkflowStageMessageAdmission {\n\t/** Internal generation-owned boundary shared by every model-fallback session. */\n\treadonly boundary: WorkflowStageAdmissionBoundary;\n\t/** Internal extension state that must survive model-fallback session replacement. */\n\treadonly extensionState: Map<string, object>;\n\tisOpen(): boolean;\n}\n\nexport interface WorkflowPendingStageSender {\n\treadonly id: string;\n\treadonly name?: string;\n\treadonly cwd: string;\n\treadonly model: string;\n\treadonly pid: number;\n\treadonly startedAt: number;\n\treadonly lastActivity: number;\n\treadonly status?: string;\n\treadonly group?: string;\n}\n\nexport interface WorkflowPendingStageMessage {\n\treadonly id: string;\n\treadonly timestamp: number;\n\treadonly replyTo?: string;\n\treadonly expectsReply?: boolean;\n\treadonly replyError?: string;\n\treadonly content: {\n\t\treadonly text: string;\n\t\treadonly attachments?: readonly {\n\t\t\treadonly type: \"file\" | \"snippet\" | \"context\";\n\t\t\treadonly name: string;\n\t\t\treadonly content: string;\n\t\t\treadonly language?: string;\n\t\t}[];\n\t};\n}\n\nexport interface WorkflowPendingStageDelivery {\n\t/** Process-private authority proving this stage belongs to the workflow run route. */\n\treadonly routeCapability: string;\n\tdeliverPending(\n\t\tdeliver: (from: WorkflowPendingStageSender, message: WorkflowPendingStageMessage) => void | Promise<void>,\n\t\trecipient?: { readonly sessionId: string; readonly receivedMessageIds: readonly string[] },\n\t): Promise<void>;\n\tready(sessionId?: string): Promise<void> | undefined;\n\t/**\n\t * Terminal signal from a delivery owner that has run out of recovery: the\n\t * queued messages can no longer be drained, so the stage must fail at its own\n\t * lifecycle boundary rather than run without the instructions it was given.\n\t * Idempotent — the first reason wins, and `ready()` then settles with a\n\t * stage-scoped error instead of waiting for a delivery that will not come.\n\t *\n\t * Required, not optional: `ready()` has no timeout, so a delivery that cannot\n\t * be settled leaves its stage parked forever. Every implementer must be able\n\t * to answer that no delivery is coming.\n\t */\n\tfail(reason: Error): void;\n}\n\nexport interface WorkflowStageOrchestrationContext {\n\treadonly kind: \"workflow-stage\";\n\treadonly workflowRunId: string;\n\treadonly workflowStageId: string;\n\treadonly workflowStageName: string;\n\treadonly constraints: {\n\t\treadonly disableWorkflowTool: true;\n\t};\n\t/** Internal lifecycle seam for surfacing detached results after this stage closes. */\n\treadonly lateMessageRouter?: WorkflowStageLateMessageRouter;\n\t/** Internal synchronous boundary used before producer reply/turn side effects. */\n\treadonly messageAdmission?: WorkflowStageMessageAdmission;\n\t/**\n\t * Resolved per-session intercom home group for this stage. Concrete, already\n\t * normalized upstream. Read by the intercom extension (buildRegistration) and\n\t * inherited by subagents this stage spawns. Absent => no group override.\n\t */\n\treadonly intercomGroup?: string;\n\t/** Durable pre-start intercom delivery, drained by the intercom extension before the first turn. */\n\treadonly pendingStageDelivery?: WorkflowPendingStageDelivery;\n}\n/** Typed child intercom identity and supervisor capability issued at admission. */\nexport interface SubagentIntercomIdentity {\n\treadonly orchestratorTarget: string;\n\treadonly runId: string;\n\treadonly agent: string;\n\treadonly index: number;\n\treadonly sessionName?: string;\n\treadonly supervisor?: {\n\t\treadonly capability: string;\n\t\treadonly supervisorSessionId: string;\n\t};\n}\n\n/** Typed child capability policy supplied by an in-process subagent admission. */\nexport interface SubagentChildPolicy {\n\treadonly managementActions: \"full\" | \"restricted\";\n\treadonly fanoutAuthorized: boolean;\n\treadonly inheritProjectContext: boolean;\n\treadonly inheritSkills: boolean;\n\t/** Host-owned signal fired when this noninteractive execution ends, before disposal. */\n\treadonly executionEnded?: AbortSignal;\n\t/** SDK-owned inbound lifetime; closing drains admitted messages without reopening the task. */\n\treadonly messageAdmission?: {\n\t\tisOpen(): boolean;\n\t\t/** Reserve the full producer operation, including retries, before child settlement. */\n\t\trun(deliver: () => void | Promise<void>): Promise<void>;\n\t};\n\t/** Current admitted in-process nesting depth; absent for top-level sessions. */\n\treadonly depth?: number;\n\t/** SDK-resolved exact child tool allowlist; undefined leaves ordinary tools unrestricted. */\n\treadonly tools?: readonly string[];\n\t/** Server or server/tool selections. Undefined preserves MCP defaults; [] disables selector-based access. */\n\treadonly mcpDirectTools?: readonly string[];\n\t/** Admission-issued identity/capability; never inherited through process environment. */\n\treadonly intercom?: SubagentIntercomIdentity;\n\t/** Resolved intercom group for this admitted child, when one was assigned. */\n\treadonly intercomGroup?: string;\n}\n// Union alias kept for forward-compatible orchestration context variants.\nexport type OrchestrationContext = WorkflowStageOrchestrationContext;\n\n/**\n * Context passed to extension event handlers.\n */\nexport type ExtensionMode = \"tui\" | \"rpc\" | \"json\" | \"print\";\n\nexport interface ExtensionContext {\n\t/** Observe the owning session's workflow activity, starting with an ordered snapshot. */\n\tobserveWorkflowActivity(observer: WorkflowActivityObserver): WorkflowActivitySubscription;\n\t/** Paths of actually loaded extensions, when supplied by the host. */\n\tgetExtensionPaths?(): string[];\n\t/** Internal actual-session binding; never populated from model arguments. */\n\tgetAgentTaskHost?(): import(\"../tasks/agent-adapter.js\").AgentTaskHost;\n\t/** Internal owner-bound defaults and capability ceiling for builtin child adapters. */\n\tgetChildSessionOptions?: import(\"../child-session-options.ts\").ChildSessionOptionsResolver;\n\t/** Session-scoped orchestration policy for child runtimes such as workflow stages. */\n\treadonly orchestrationContext?: OrchestrationContext;\n\t/** Typed capability policy for an in-process subagent child, when this session is one. */\n\treadonly subagentPolicy?: SubagentChildPolicy;\n\t/** UI methods for user interaction */\n\tui: ExtensionUIContext;\n\t/** Current run mode. Use \"tui\" to guard terminal-only UI such as custom components. */\n\tmode: ExtensionMode;\n\t/** Whether dialog-capable UI is available (true in TUI and RPC modes) */\n\thasUI: boolean;\n\t/** Whether a semantic human-input adapter is available, independently of rendering. */\n\thasHumanInput: boolean;\n\treadonly isPresentationOnly?: boolean;\n\t/** Current working directory */\n\tcwd: string;\n\t/** Session manager (read-only) */\n\tsessionManager: ReadonlySessionManager;\n\t/** Model registry for API key resolution */\n\tmodelRegistry: ModelRegistry;\n\t/** Current model (may be undefined) */\n\tmodel: Model<Api> | undefined;\n\t/** Models scoped to this session (resolved from `--models` / `enabledModels`\n\t * settings against the available catalogue). Same set the `/scoped-models`\n\t * command shows. Empty when no scoping is configured (all available models\n\t * are usable). Read-only snapshot, resolved at access time. */\n\tscopedModels: readonly ScopedModel[];\n\t/** Current thinking level, resolved from the active session at access time. */\n\tthinkingLevel?: ThinkingLevel;\n\t/** Session-scoped internal resource router (e.g. artifact:// resolver). */\n\treadonly internalResourceRouter?: import(\"../tools/resource-selectors.ts\").InternalResourceRouter;\n\t/** Whether the agent is idle (not streaming) */\n\tisIdle(): boolean;\n\t/** Whether project-local trust is active for this context. */\n\tisProjectTrusted(): boolean;\n\t/** The current abort signal, or undefined when the agent is not streaming. */\n\tsignal: AbortSignal | undefined;\n\t/** Abort the current agent operation */\n\tabort(): void;\n\t/** Whether there are queued messages waiting */\n\thasPendingMessages(): boolean;\n\t/** Gracefully shutdown pi and exit. Available in all contexts. */\n\tshutdown(): void;\n\t/** Get current context usage for the active model. */\n\tgetContextUsage(): ContextUsage | undefined;\n\t/** Trigger compaction without awaiting completion. */\n\tcompact(options?: CompactOptions): void;\n\t/** Get the current effective system prompt. */\n\tgetSystemPrompt(): string;\n\t/** Current loader-owned skill candidates and exact selector resolver. */\n\tgetSkillCatalog?(): SkillCatalog;\n\t/** Current routing-only inference setting from the owning session. Does not change the chat model. */\n\tgetRouterModel(): string;\n\t/** Provider filters for `model: \"auto\"` candidates from the owning session's settings. */\n\tgetModelRouting?(): import(\"../settings-types.ts\").ModelRoutingSettings;\n}\n\n/**\n * Extended context for command handlers.\n * Includes session control methods only safe in user-initiated commands.\n */\nexport interface ExtensionCommandContext extends ExtensionContext {\n\t/** Get the current base system-prompt construction options. */\n\tgetSystemPromptOptions(): BuildSystemPromptOptions;\n\n\t/** Wait for the agent to finish streaming */\n\twaitForIdle(): Promise<void>;\n\n\t/** Start a new session, optionally with initialization. */\n\tnewSession(options?: {\n\t\tparentSession?: string;\n\t\tsetup?: (sessionManager: SessionManager) => Promise<void>;\n\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>;\n\t}): Promise<{ cancelled: boolean }>;\n\n\t/** Fork from a specific entry, creating a new session file. */\n\tfork(\n\t\tentryId: string,\n\t\toptions?: { position?: \"before\" | \"at\"; withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t): Promise<{ cancelled: boolean }>;\n\n\t/** Navigate to a different point in the session tree. */\n\tnavigateTree(\n\t\ttargetId: string,\n\t\toptions?: { summarize?: boolean; customInstructions?: string; replaceInstructions?: boolean; label?: string },\n\t): Promise<{ cancelled: boolean }>;\n\n\t/** Switch to a different session file. */\n\tswitchSession(\n\t\tsessionPath: string,\n\t\toptions?: { withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t): Promise<{ cancelled: boolean }>;\n\n\t/** Reload extensions, skills, prompts, and themes. */\n\treload(): Promise<void>;\n}\n\n/**\n * Fresh command-capable context bound to the replacement session after a session switch.\n *\n * This is passed to `withSession()` callbacks on `newSession()`, `fork()`, and `switchSession()`.\n */\nexport interface ReplacedSessionContext extends ExtensionCommandContext {\n\tsendMessage<T = unknown>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: SendMessageOptions,\n\t): Promise<void>;\n\n\tsendUserMessage(\n\t\tcontent: string | (TextContent | ImageContent)[],\n\t\toptions?: { deliverAs?: \"steer\" | \"followUp\"; expandPromptTemplates?: boolean },\n\t): Promise<void>;\n}\n"]}
|