@bastani/atomic 0.9.19-alpha.1 → 0.9.19-alpha.10
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 +200 -0
- package/README.md +2 -2
- package/dist/builtin/intercom/CHANGELOG.md +51 -0
- package/dist/builtin/intercom/README.md +28 -18
- package/dist/builtin/intercom/broker/broker.ts +81 -9
- package/dist/builtin/intercom/broker/client.ts +45 -1
- package/dist/builtin/intercom/broker/framing.ts +5 -2
- package/dist/builtin/intercom/broker/group-membership.ts +4 -2
- package/dist/builtin/intercom/broker/presence-handler.ts +14 -0
- package/dist/builtin/intercom/broker/send-handler.ts +61 -6
- package/dist/builtin/intercom/broker/terminal-questions.ts +29 -0
- package/dist/builtin/intercom/index.bundle.mjs +1120 -783
- package/dist/builtin/intercom/package.json +2 -2
- package/dist/builtin/intercom/recipient-purpose.ts +9 -0
- package/dist/builtin/intercom/recoverable-disconnect.ts +2 -3
- package/dist/builtin/intercom/retry-policy.ts +4 -2
- package/dist/builtin/intercom/skills/intercom/SKILL.md +8 -7
- package/dist/builtin/intercom/types.ts +18 -3
- package/dist/builtin/mcp/CHANGELOG.md +6 -0
- package/dist/builtin/mcp/README.md +2 -0
- package/dist/builtin/mcp/index.bundle.mjs +2201 -12000
- package/dist/builtin/mcp/package.json +2 -2
- package/dist/builtin/subagents/CHANGELOG.md +57 -0
- package/dist/builtin/subagents/README.md +46 -23
- package/dist/builtin/subagents/agents/code-simplifier.md +1 -1
- package/dist/builtin/subagents/agents/codebase-analyzer.md +1 -1
- package/dist/builtin/subagents/agents/codebase-locator.md +2 -2
- package/dist/builtin/subagents/agents/codebase-online-researcher.md +8 -8
- package/dist/builtin/subagents/agents/codebase-pattern-finder.md +2 -2
- package/dist/builtin/subagents/agents/codebase-research-analyzer.md +1 -1
- package/dist/builtin/subagents/agents/codebase-research-locator.md +2 -2
- package/dist/builtin/subagents/agents/debugger.md +2 -2
- package/dist/builtin/subagents/agents/worker.md +1 -1
- package/dist/builtin/subagents/package.json +2 -2
- package/dist/builtin/subagents/skills/herdr/LICENSE +201 -0
- package/dist/builtin/subagents/skills/herdr/SKILL.md +202 -0
- package/dist/builtin/subagents/skills/subagent/SKILL.md +41 -35
- package/dist/builtin/subagents/skills/tmux/SKILL.md +1 -1
- package/dist/builtin/subagents/src/extension/index.bundle.mjs +1414 -656
- package/dist/builtin/web-access/CHANGELOG.md +19 -0
- package/dist/builtin/web-access/README.md +31 -24
- package/dist/builtin/web-access/index.bundle.mjs +42723 -26674
- package/dist/builtin/web-access/package.json +3 -2
- package/dist/builtin/workflows/CHANGELOG.md +121 -0
- package/dist/builtin/workflows/README.md +15 -16
- package/dist/builtin/workflows/builtin/adversarial-verification.js +5 -7
- package/dist/builtin/workflows/builtin/{chunk-hqpe2cyx.js → chunk-1jth021m.js} +85 -85
- package/dist/builtin/workflows/builtin/{chunk-7430zyas.js → chunk-2377r57g.js} +5 -3
- package/dist/builtin/workflows/builtin/{chunk-79fjkcvh.js → chunk-31j2gs7h.js} +18 -18
- package/dist/builtin/workflows/builtin/{chunk-wgccch41.js → chunk-6w6cvk6b.js} +16 -16
- package/dist/builtin/workflows/builtin/{chunk-zbekjqew.js → chunk-a2kdsqn8.js} +4 -4
- package/dist/builtin/workflows/builtin/{chunk-ze5x3d1r.js → chunk-fg9esgkj.js} +7 -7
- package/dist/builtin/workflows/builtin/{chunk-n8h4yyew.js → chunk-g0csgs7w.js} +11 -11
- package/dist/builtin/workflows/builtin/{chunk-b0v2xab1.js → chunk-ngkqkzej.js} +221 -23
- package/dist/builtin/workflows/builtin/{chunk-ed4jfn5t.js → chunk-nkrafh9s.js} +61 -61
- package/dist/builtin/workflows/builtin/{chunk-reqr3sr3.js → chunk-wf741bv3.js} +22 -22
- package/dist/builtin/workflows/builtin/{chunk-42s7sw0b.js → chunk-yeee2jrc.js} +19 -19
- package/dist/builtin/workflows/builtin/{chunk-6fqs7c01.js → chunk-z0d03ktm.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-k3w87x8y.js → chunk-z29qbehr.js} +10 -10
- package/dist/builtin/workflows/builtin/classify-and-act.js +5 -6
- package/dist/builtin/workflows/builtin/fan-out-and-synthesize.js +3 -4
- package/dist/builtin/workflows/builtin/generate-and-filter.js +5 -6
- package/dist/builtin/workflows/builtin/goal.js +7 -8
- package/dist/builtin/workflows/builtin/index.js +20 -22
- package/dist/builtin/workflows/builtin/loop-until-done.js +5 -6
- package/dist/builtin/workflows/builtin/open-claude-design.js +3 -3
- package/dist/builtin/workflows/builtin/ralph.js +7 -8
- package/dist/builtin/workflows/builtin/steering-context.js +3 -3
- package/dist/builtin/workflows/builtin/tournament.js +5 -7
- package/dist/builtin/workflows/package.json +6 -6
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +27730 -26335
- package/dist/builtin/workflows/src/index.js +1103 -515
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +4 -1
- package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/startup-ui.d.ts +1 -1
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-auto-compaction.js +6 -5
- package/dist/core/agent-session-auto-compaction.js.map +1 -1
- package/dist/core/agent-session-bash.d.ts +1 -1
- package/dist/core/agent-session-bash.d.ts.map +1 -1
- package/dist/core/agent-session-bash.js +5 -1
- package/dist/core/agent-session-bash.js.map +1 -1
- package/dist/core/agent-session-compaction.d.ts +1 -1
- package/dist/core/agent-session-compaction.js +1 -1
- package/dist/core/agent-session-compaction.js.map +1 -1
- package/dist/core/agent-session-custom-message-commit.d.ts +1 -1
- package/dist/core/agent-session-custom-message-commit.d.ts.map +1 -1
- package/dist/core/agent-session-custom-message-commit.js +33 -2
- package/dist/core/agent-session-custom-message-commit.js.map +1 -1
- package/dist/core/agent-session-delivery-forwarding.d.ts +1 -1
- package/dist/core/agent-session-delivery-forwarding.js.map +1 -1
- package/dist/core/agent-session-events.d.ts.map +1 -1
- package/dist/core/agent-session-events.js +5 -0
- package/dist/core/agent-session-events.js.map +1 -1
- package/dist/core/agent-session-export.d.ts +1 -1
- package/dist/core/agent-session-export.js.map +1 -1
- package/dist/core/agent-session-extension-bindings.d.ts +8 -1
- package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
- package/dist/core/agent-session-extension-bindings.js +45 -3
- package/dist/core/agent-session-extension-bindings.js.map +1 -1
- package/dist/core/agent-session-message-queue.d.ts +2 -2
- package/dist/core/agent-session-message-queue.d.ts.map +1 -1
- package/dist/core/agent-session-message-queue.js +22 -8
- package/dist/core/agent-session-message-queue.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +21 -8
- 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-persistent-custom-messages.d.ts +1 -1
- package/dist/core/agent-session-persistent-custom-messages.d.ts.map +1 -1
- package/dist/core/agent-session-persistent-custom-messages.js +13 -3
- package/dist/core/agent-session-persistent-custom-messages.js.map +1 -1
- package/dist/core/agent-session-post-tool-compaction.js +1 -1
- package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
- package/dist/core/agent-session-prompt.d.ts +2 -2
- package/dist/core/agent-session-prompt.d.ts.map +1 -1
- package/dist/core/agent-session-prompt.js +105 -18
- package/dist/core/agent-session-prompt.js.map +1 -1
- package/dist/core/agent-session-queue-pause.d.ts.map +1 -1
- package/dist/core/agent-session-queue-pause.js +11 -0
- package/dist/core/agent-session-queue-pause.js.map +1 -1
- package/dist/core/agent-session-runtime-auth.d.ts +1 -1
- package/dist/core/agent-session-runtime-auth.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts +13 -4
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +27 -4
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +5 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +44 -34
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session-state.d.ts +1 -1
- package/dist/core/agent-session-state.js.map +1 -1
- package/dist/core/agent-session-tasks.d.ts +14 -0
- package/dist/core/agent-session-tasks.d.ts.map +1 -0
- package/dist/core/agent-session-tasks.js +120 -0
- package/dist/core/agent-session-tasks.js.map +1 -0
- package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
- package/dist/core/agent-session-tool-hooks.js +2 -0
- package/dist/core/agent-session-tool-hooks.js.map +1 -1
- package/dist/core/agent-session-tool-registry.d.ts +1 -0
- package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
- package/dist/core/agent-session-tool-registry.js +52 -5
- package/dist/core/agent-session-tool-registry.js.map +1 -1
- package/dist/core/agent-session-transfer.d.ts.map +1 -1
- package/dist/core/agent-session-transfer.js +7 -0
- package/dist/core/agent-session-transfer.js.map +1 -1
- package/dist/core/agent-session-tree.d.ts.map +1 -1
- package/dist/core/agent-session-tree.js +3 -0
- package/dist/core/agent-session-tree.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +4 -2
- package/dist/core/agent-session-types.d.ts.map +1 -1
- package/dist/core/agent-session-types.js +2 -0
- package/dist/core/agent-session-types.js.map +1 -1
- package/dist/core/agent-session.d.ts +8 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +29 -1
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/bash-executor.d.ts +1 -1
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/export-html/index.js.map +1 -1
- package/dist/core/export-html/tool-renderer.d.ts +1 -1
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extension-session-state.js.map +1 -1
- package/dist/core/extensions/agent-events.d.ts +4 -4
- package/dist/core/extensions/agent-events.d.ts.map +1 -1
- package/dist/core/extensions/agent-events.js.map +1 -1
- package/dist/core/extensions/api-types.d.ts +10 -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 +15 -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/event-results.d.ts +1 -1
- package/dist/core/extensions/event-results.js.map +1 -1
- package/dist/core/extensions/event-types.d.ts +2 -1
- package/dist/core/extensions/event-types.d.ts.map +1 -1
- package/dist/core/extensions/event-types.js.map +1 -1
- package/dist/core/extensions/index.d.ts +3 -2
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader-api.d.ts +1 -1
- package/dist/core/extensions/loader-api.d.ts.map +1 -1
- package/dist/core/extensions/loader-api.js +10 -0
- package/dist/core/extensions/loader-api.js.map +1 -1
- package/dist/core/extensions/loader-core.d.ts +1 -1
- package/dist/core/extensions/loader-core.js.map +1 -1
- package/dist/core/extensions/loader-discovery.d.ts +1 -1
- package/dist/core/extensions/loader-discovery.js.map +1 -1
- package/dist/core/extensions/loader-host-modules.d.ts +1 -1
- package/dist/core/extensions/loader-host-modules.d.ts.map +1 -1
- package/dist/core/extensions/loader-host-modules.js +5 -2
- package/dist/core/extensions/loader-host-modules.js.map +1 -1
- package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
- package/dist/core/extensions/loader-runtime.js +3 -0
- package/dist/core/extensions/loader-runtime.js.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.js +6 -1
- package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +1 -1
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/message-types.d.ts +1 -1
- package/dist/core/extensions/message-types.js.map +1 -1
- package/dist/core/extensions/reactive-widget.d.ts +6 -0
- package/dist/core/extensions/reactive-widget.d.ts.map +1 -1
- package/dist/core/extensions/reactive-widget.js +7 -1
- package/dist/core/extensions/reactive-widget.js.map +1 -1
- package/dist/core/extensions/runner-context.d.ts +12 -2
- package/dist/core/extensions/runner-context.d.ts.map +1 -1
- package/dist/core/extensions/runner-context.js +49 -4
- package/dist/core/extensions/runner-context.js.map +1 -1
- package/dist/core/extensions/runner-events.d.ts +1 -1
- package/dist/core/extensions/runner-events.d.ts.map +1 -1
- package/dist/core/extensions/runner-events.js +17 -2
- package/dist/core/extensions/runner-events.js.map +1 -1
- package/dist/core/extensions/runner-shortcuts.d.ts.map +1 -1
- package/dist/core/extensions/runner-shortcuts.js +32 -3
- package/dist/core/extensions/runner-shortcuts.js.map +1 -1
- package/dist/core/extensions/runner-ui.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +17 -2
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +69 -19
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/runtime-types.d.ts +8 -1
- package/dist/core/extensions/runtime-types.d.ts.map +1 -1
- package/dist/core/extensions/runtime-types.js.map +1 -1
- package/dist/core/extensions/tool-types.d.ts +1 -1
- package/dist/core/extensions/tool-types.js.map +1 -1
- package/dist/core/extensions/types.d.ts +1 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/extensions/ui-types.d.ts +25 -1
- package/dist/core/extensions/ui-types.d.ts.map +1 -1
- package/dist/core/extensions/ui-types.js.map +1 -1
- package/dist/core/extensions/workflow-activity-hub.d.ts +25 -0
- package/dist/core/extensions/workflow-activity-hub.d.ts.map +1 -0
- package/dist/core/extensions/workflow-activity-hub.js +183 -0
- package/dist/core/extensions/workflow-activity-hub.js.map +1 -0
- package/dist/core/extensions/workflow-events.d.ts +118 -0
- package/dist/core/extensions/workflow-events.d.ts.map +1 -0
- package/dist/core/extensions/workflow-events.js +2 -0
- package/dist/core/extensions/workflow-events.js.map +1 -0
- package/dist/core/footer-data-provider.d.ts +8 -4
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +97 -11
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/index.d.ts +3 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/keybinding-identity.d.ts +4 -0
- package/dist/core/keybinding-identity.d.ts.map +1 -0
- package/dist/core/keybinding-identity.js +10 -0
- package/dist/core/keybinding-identity.js.map +1 -0
- package/dist/core/keybindings.d.ts +37 -2
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +9 -2
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/mandatory-runtime-tools.d.ts +1 -1
- package/dist/core/mandatory-runtime-tools.js.map +1 -1
- package/dist/core/model-fallback-failures.js +2 -2
- package/dist/core/model-fallback-failures.js.map +1 -1
- package/dist/core/model-registry.d.ts +5 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +8 -0
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver-defaults.js +1 -1
- package/dist/core/model-resolver-defaults.js.map +1 -1
- package/dist/core/resource-loader-assets.js.map +1 -1
- package/dist/core/resource-loader-core.d.ts +1 -1
- package/dist/core/resource-loader-core.js.map +1 -1
- package/dist/core/resource-loader-internals.d.ts +2 -2
- package/dist/core/resource-loader-internals.js.map +1 -1
- package/dist/core/resource-loader-reload.d.ts +2 -0
- package/dist/core/resource-loader-reload.d.ts.map +1 -1
- package/dist/core/resource-loader-reload.js +231 -191
- package/dist/core/resource-loader-reload.js.map +1 -1
- package/dist/core/resource-loader-types.d.ts +4 -2
- package/dist/core/resource-loader-types.d.ts.map +1 -1
- package/dist/core/resource-loader-types.js.map +1 -1
- package/dist/core/retry-policy.d.ts +1 -0
- package/dist/core/retry-policy.d.ts.map +1 -1
- package/dist/core/retry-policy.js +2 -1
- package/dist/core/retry-policy.js.map +1 -1
- package/dist/core/sdk-exports.d.ts +3 -3
- package/dist/core/sdk-exports.d.ts.map +1 -1
- package/dist/core/sdk-exports.js +1 -1
- package/dist/core/sdk-exports.js.map +1 -1
- package/dist/core/sdk-types.d.ts +2 -2
- package/dist/core/sdk-types.js.map +1 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager-basic-accessors.d.ts +6 -3
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js +25 -8
- package/dist/core/settings-manager-basic-accessors.js.map +1 -1
- package/dist/core/settings-manager-core.d.ts.map +1 -1
- package/dist/core/settings-manager-core.js +10 -4
- package/dist/core/settings-manager-core.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/settings-storage.d.ts +1 -0
- package/dist/core/settings-storage.d.ts.map +1 -1
- package/dist/core/settings-storage.js +18 -0
- package/dist/core/settings-storage.js.map +1 -1
- package/dist/core/settings-types.d.ts +17 -0
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +6 -5
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +5 -6
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tasks/agent-adapter.d.ts +44 -0
- package/dist/core/tasks/agent-adapter.d.ts.map +1 -0
- package/dist/core/tasks/agent-adapter.js +112 -0
- package/dist/core/tasks/agent-adapter.js.map +1 -0
- package/dist/core/tasks/command-output.d.ts +15 -0
- package/dist/core/tasks/command-output.d.ts.map +1 -0
- package/dist/core/tasks/command-output.js +29 -0
- package/dist/core/tasks/command-output.js.map +1 -0
- package/dist/core/tasks/completion-ordering.d.ts +11 -0
- package/dist/core/tasks/completion-ordering.d.ts.map +1 -0
- package/dist/core/tasks/completion-ordering.js +19 -0
- package/dist/core/tasks/completion-ordering.js.map +1 -0
- package/dist/core/tasks/completion.d.ts +36 -0
- package/dist/core/tasks/completion.d.ts.map +1 -0
- package/dist/core/tasks/completion.js +119 -0
- package/dist/core/tasks/completion.js.map +1 -0
- package/dist/core/tasks/contracts.d.ts +404 -0
- package/dist/core/tasks/contracts.d.ts.map +1 -0
- package/dist/core/tasks/contracts.js +2 -0
- package/dist/core/tasks/contracts.js.map +1 -0
- package/dist/core/tasks/execution-scope.d.ts +10 -0
- package/dist/core/tasks/execution-scope.d.ts.map +1 -0
- package/dist/core/tasks/execution-scope.js +27 -0
- package/dist/core/tasks/execution-scope.js.map +1 -0
- package/dist/core/tasks/owner-store.d.ts +53 -0
- package/dist/core/tasks/owner-store.d.ts.map +1 -0
- package/dist/core/tasks/owner-store.js +155 -0
- package/dist/core/tasks/owner-store.js.map +1 -0
- package/dist/core/tasks/pause.d.ts +4 -0
- package/dist/core/tasks/pause.d.ts.map +1 -0
- package/dist/core/tasks/pause.js +49 -0
- package/dist/core/tasks/pause.js.map +1 -0
- package/dist/core/tasks/supervisor.d.ts +123 -0
- package/dist/core/tasks/supervisor.d.ts.map +1 -0
- package/dist/core/tasks/supervisor.js +942 -0
- package/dist/core/tasks/supervisor.js.map +1 -0
- package/dist/core/tasks/transcript.d.ts +23 -0
- package/dist/core/tasks/transcript.d.ts.map +1 -0
- package/dist/core/tasks/transcript.js +74 -0
- package/dist/core/tasks/transcript.js.map +1 -0
- package/dist/core/tools/ask-user-question/ask-user-question.d.ts +2 -2
- package/dist/core/tools/ask-user-question/ask-user-question.d.ts.map +1 -1
- package/dist/core/tools/ask-user-question/ask-user-question.js +8 -4
- package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
- package/dist/core/tools/ask-user-question/state/build-questionnaire.d.ts +1 -1
- package/dist/core/tools/ask-user-question/state/build-questionnaire.js.map +1 -1
- package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts +1 -1
- package/dist/core/tools/ask-user-question/state/questionnaire-session.js.map +1 -1
- package/dist/core/tools/ask-user-question/view/components/multi-select-view.d.ts +1 -1
- package/dist/core/tools/ask-user-question/view/components/multi-select-view.js.map +1 -1
- package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.d.ts +1 -1
- package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.js.map +1 -1
- package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.d.ts +1 -1
- package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.js.map +1 -1
- package/dist/core/tools/ask-user-question/view/components/submit-picker.d.ts +1 -1
- package/dist/core/tools/ask-user-question/view/components/submit-picker.js.map +1 -1
- package/dist/core/tools/ask-user-question/view/components/tab-bar.d.ts +1 -1
- package/dist/core/tools/ask-user-question/view/components/tab-bar.js.map +1 -1
- package/dist/core/tools/ask-user-question/view/dialog-builder.d.ts +1 -1
- package/dist/core/tools/ask-user-question/view/dialog-builder.js.map +1 -1
- package/dist/core/tools/ask-user-question/view/tab-content-strategy.d.ts +1 -1
- package/dist/core/tools/ask-user-question/view/tab-content-strategy.js.map +1 -1
- package/dist/core/tools/bash-pty-native.d.ts +32 -3
- package/dist/core/tools/bash-pty-native.d.ts.map +1 -1
- package/dist/core/tools/bash-pty-native.js +198 -1
- package/dist/core/tools/bash-pty-native.js.map +1 -1
- package/dist/core/tools/bash.d.ts +25 -5
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +100 -10
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts +3 -0
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +92 -14
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/file-mutation-coordinator.d.ts +255 -0
- package/dist/core/tools/file-mutation-coordinator.d.ts.map +1 -0
- package/dist/core/tools/file-mutation-coordinator.js +300 -0
- package/dist/core/tools/file-mutation-coordinator.js.map +1 -0
- package/dist/core/tools/file-mutation-queue.d.ts +14 -1
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
- package/dist/core/tools/file-mutation-queue.js +15 -3
- package/dist/core/tools/file-mutation-queue.js.map +1 -1
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/hashline.d.ts +9 -0
- package/dist/core/tools/hashline.d.ts.map +1 -1
- package/dist/core/tools/hashline.js +12 -1
- package/dist/core/tools/hashline.js.map +1 -1
- package/dist/core/tools/index.d.ts +15 -4
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +79 -12
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/kill.d.ts +17 -0
- package/dist/core/tools/kill.d.ts.map +1 -0
- package/dist/core/tools/kill.js +49 -0
- package/dist/core/tools/kill.js.map +1 -0
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/non-minting-snapshot-store.d.ts +49 -0
- package/dist/core/tools/non-minting-snapshot-store.d.ts.map +1 -0
- package/dist/core/tools/non-minting-snapshot-store.js +64 -0
- package/dist/core/tools/non-minting-snapshot-store.js.map +1 -0
- package/dist/core/tools/powershell.d.ts +100 -34
- package/dist/core/tools/powershell.d.ts.map +1 -1
- package/dist/core/tools/powershell.js +41 -11
- package/dist/core/tools/powershell.js.map +1 -1
- package/dist/core/tools/read-document-extract.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +1 -2
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/render-utils.d.ts +1 -1
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/resource-selectors.d.ts +1 -1
- package/dist/core/tools/resource-selectors.d.ts.map +1 -1
- package/dist/core/tools/resource-selectors.js +21 -10
- package/dist/core/tools/resource-selectors.js.map +1 -1
- package/dist/core/tools/search.js.map +1 -1
- package/dist/core/tools/todos-render.d.ts +1 -1
- package/dist/core/tools/todos-render.js.map +1 -1
- package/dist/core/tools/write.d.ts +30 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +98 -10
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/workflow-stage-admission.d.ts +24 -0
- package/dist/core/workflow-stage-admission.d.ts.map +1 -1
- package/dist/core/workflow-stage-admission.js +87 -3
- package/dist/core/workflow-stage-admission.js.map +1 -1
- package/dist/extensions/herdr/activity.d.ts +15 -0
- package/dist/extensions/herdr/activity.d.ts.map +1 -0
- package/dist/extensions/herdr/activity.js +24 -0
- package/dist/extensions/herdr/activity.js.map +1 -0
- package/dist/extensions/herdr/environment.d.ts +7 -0
- package/dist/extensions/herdr/environment.d.ts.map +1 -0
- package/dist/extensions/herdr/environment.js +6 -0
- package/dist/extensions/herdr/environment.js.map +1 -0
- package/dist/extensions/herdr/index.d.ts +9 -0
- package/dist/extensions/herdr/index.d.ts.map +1 -0
- package/dist/extensions/herdr/index.js +225 -0
- package/dist/extensions/herdr/index.js.map +1 -0
- package/dist/extensions/herdr/pane-owner.d.ts +30 -0
- package/dist/extensions/herdr/pane-owner.d.ts.map +1 -0
- package/dist/extensions/herdr/pane-owner.js +111 -0
- package/dist/extensions/herdr/pane-owner.js.map +1 -0
- package/dist/extensions/herdr/transport.d.ts +8 -0
- package/dist/extensions/herdr/transport.d.ts.map +1 -0
- package/dist/extensions/herdr/transport.js +28 -0
- package/dist/extensions/herdr/transport.js.map +1 -0
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +2 -0
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/llama/huggingface-ui.d.ts +1 -1
- package/dist/extensions/llama/huggingface-ui.js.map +1 -1
- package/dist/extensions/llama/ui.js.map +1 -1
- package/dist/index-extensions.d.ts +3 -2
- package/dist/index-extensions.d.ts.map +1 -1
- package/dist/index-extensions.js.map +1 -1
- package/dist/index.d.ts +14 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/main-session.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +149 -69
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/armin.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/atomic-banner.d.ts +1 -1
- package/dist/modes/interactive/components/atomic-banner.js.map +1 -1
- package/dist/modes/interactive/components/atomic-working-status.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/chat-message-renderer.d.ts +12 -0
- package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-message-renderer.js +44 -0
- package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-actions.d.ts +1 -1
- package/dist/modes/interactive/components/chat-session-host-actions.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-actions.js +43 -8
- package/dist/modes/interactive/components/chat-session-host-actions.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-editor.d.ts +1 -1
- package/dist/modes/interactive/components/chat-session-host-editor.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-events.d.ts +2 -2
- package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-rendering.d.ts +2 -2
- package/dist/modes/interactive/components/chat-session-host-rendering.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-rendering.js +12 -3
- package/dist/modes/interactive/components/chat-session-host-rendering.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-runtime.d.ts +4 -5
- package/dist/modes/interactive/components/chat-session-host-runtime.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-runtime.js +8 -6
- package/dist/modes/interactive/components/chat-session-host-runtime.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-state.d.ts +7 -2
- package/dist/modes/interactive/components/chat-session-host-state.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-state.js +1 -0
- package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-terminal-cleanup.d.ts +1 -1
- package/dist/modes/interactive/components/chat-session-host-terminal-cleanup.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-types.d.ts +8 -3
- package/dist/modes/interactive/components/chat-session-host-types.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-types.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-utils.d.ts +1 -1
- package/dist/modes/interactive/components/chat-session-host-utils.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-utils.js +2 -0
- package/dist/modes/interactive/components/chat-session-host-utils.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host.d.ts +17 -2
- package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host.js +100 -3
- package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
- package/dist/modes/interactive/components/chat-transcript.d.ts +1 -0
- package/dist/modes/interactive/components/chat-transcript.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-transcript.js +1 -1
- package/dist/modes/interactive/components/chat-transcript.js.map +1 -1
- package/dist/modes/interactive/components/compaction-boundary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector-list.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/custom-entry.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +12 -0
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/daxnuts.js.map +1 -1
- package/dist/modes/interactive/components/diff.js.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/extension-input.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.d.ts +1 -1
- package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +7 -6
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +27 -9
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/host-input-form-mount.js.map +1 -1
- package/dist/modes/interactive/components/host-input-form.d.ts +1 -1
- package/dist/modes/interactive/components/host-input-form.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +2 -2
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/mermaid.d.ts +1 -1
- package/dist/modes/interactive/components/mermaid.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/reserved-bottom-overlay.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/scroll-widget.d.ts +23 -0
- package/dist/modes/interactive/components/scroll-widget.d.ts.map +1 -0
- package/dist/modes/interactive/components/scroll-widget.js +61 -0
- package/dist/modes/interactive/components/scroll-widget.js.map +1 -0
- package/dist/modes/interactive/components/session-selector-header.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-list.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-submenus.d.ts +1 -1
- package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-types.d.ts +1 -1
- package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/task-completion-message.d.ts +13 -0
- package/dist/modes/interactive/components/task-completion-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/task-completion-message.js +65 -0
- package/dist/modes/interactive/components/task-completion-message.js.map +1 -0
- package/dist/modes/interactive/components/task-detail.d.ts +27 -0
- package/dist/modes/interactive/components/task-detail.d.ts.map +1 -0
- package/dist/modes/interactive/components/task-detail.js +107 -0
- package/dist/modes/interactive/components/task-detail.js.map +1 -0
- package/dist/modes/interactive/components/task-inspector.d.ts +50 -0
- package/dist/modes/interactive/components/task-inspector.d.ts.map +1 -0
- package/dist/modes/interactive/components/task-inspector.js +599 -0
- package/dist/modes/interactive/components/task-inspector.js.map +1 -0
- package/dist/modes/interactive/components/task-list.d.ts +18 -0
- package/dist/modes/interactive/components/task-list.d.ts.map +1 -0
- package/dist/modes/interactive/components/task-list.js +59 -0
- package/dist/modes/interactive/components/task-list.js.map +1 -0
- package/dist/modes/interactive/components/task-live-transcript.d.ts +17 -0
- package/dist/modes/interactive/components/task-live-transcript.d.ts.map +1 -0
- package/dist/modes/interactive/components/task-live-transcript.js +41 -0
- package/dist/modes/interactive/components/task-live-transcript.js.map +1 -0
- package/dist/modes/interactive/components/task-navigation.d.ts +38 -0
- package/dist/modes/interactive/components/task-navigation.d.ts.map +1 -0
- package/dist/modes/interactive/components/task-navigation.js +93 -0
- package/dist/modes/interactive/components/task-navigation.js.map +1 -0
- package/dist/modes/interactive/components/task-row.d.ts +34 -0
- package/dist/modes/interactive/components/task-row.d.ts.map +1 -0
- package/dist/modes/interactive/components/task-row.js +165 -0
- package/dist/modes/interactive/components/task-row.js.map +1 -0
- package/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/transcript-follow-indicator.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector-component.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector-content.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector-help.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector-label-input.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector-list.js.map +1 -1
- package/dist/modes/interactive/components/trust-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/components/working-status.js.map +1 -1
- package/dist/modes/interactive/interactive-agent-events.js +8 -2
- package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
- package/dist/modes/interactive/interactive-auth-login.js +3 -1
- package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
- package/dist/modes/interactive/interactive-autocomplete.js +9 -30
- package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.js +2 -1
- package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-context.js +14 -4
- package/dist/modes/interactive/interactive-extension-context.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-custom-ui.js +52 -4
- package/dist/modes/interactive/interactive-extension-custom-ui.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-runtime.js +11 -3
- package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-widgets.js +9 -1
- package/dist/modes/interactive/interactive-extension-widgets.js.map +1 -1
- package/dist/modes/interactive/interactive-input-handling.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-input-handling.js +19 -0
- package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts +7 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.js +10 -4
- package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.d.ts +6 -6
- package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +3 -2
- 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-mode.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +3 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/interactive-process-lifecycle.js +4 -1
- package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -1
- package/dist/modes/interactive/interactive-render-chat.js +30 -4
- package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
- package/dist/modes/interactive/interactive-session-routing.js +33 -23
- package/dist/modes/interactive/interactive-session-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-session-runtime.js +1 -0
- package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
- package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-startup.js +3 -0
- package/dist/modes/interactive/interactive-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-summarization-retry-events.js +2 -2
- package/dist/modes/interactive/interactive-summarization-retry-events.js.map +1 -1
- package/dist/modes/interactive/interactive-task-projection.d.ts +13 -0
- package/dist/modes/interactive/interactive-task-projection.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-task-projection.js +72 -0
- package/dist/modes/interactive/interactive-task-projection.js.map +1 -0
- package/dist/modes/interactive/interactive-tui.js.map +1 -1
- package/dist/modes/interactive/interactive-windows-subshell.d.ts +17 -0
- package/dist/modes/interactive/interactive-windows-subshell.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-windows-subshell.js +92 -0
- package/dist/modes/interactive/interactive-windows-subshell.js.map +1 -0
- package/dist/modes/interactive/skill-command-autocomplete.d.ts +12 -0
- package/dist/modes/interactive/skill-command-autocomplete.d.ts.map +1 -0
- package/dist/modes/interactive/skill-command-autocomplete.js +69 -0
- package/dist/modes/interactive/skill-command-autocomplete.js.map +1 -0
- package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-class.js +4 -1
- package/dist/modes/interactive/theme/theme-class.js.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts +1 -1
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
- package/dist/modes/interactive-engine/activity-watchdog.d.ts +2 -2
- package/dist/modes/interactive-engine/activity-watchdog.d.ts.map +1 -1
- package/dist/modes/interactive-engine/activity-watchdog.js.map +1 -1
- package/dist/modes/interactive-engine/create-isolated-runtime.d.ts +1 -1
- package/dist/modes/interactive-engine/create-isolated-runtime.js.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.d.ts +9 -10
- package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.js +29 -12
- package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
- package/dist/modes/interactive-engine/engine-diagnostic-view.d.ts +3 -1
- package/dist/modes/interactive-engine/engine-diagnostic-view.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-diagnostic-view.js +11 -0
- package/dist/modes/interactive-engine/engine-diagnostic-view.js.map +1 -1
- package/dist/modes/interactive-engine/engine-dialog-host.d.ts +2 -2
- package/dist/modes/interactive-engine/engine-dialog-host.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-dialog-host.js +4 -1
- package/dist/modes/interactive-engine/engine-dialog-host.js.map +1 -1
- package/dist/modes/interactive-engine/engine-project-trust.d.ts +10 -0
- package/dist/modes/interactive-engine/engine-project-trust.d.ts.map +1 -0
- package/dist/modes/interactive-engine/engine-project-trust.js +28 -0
- package/dist/modes/interactive-engine/engine-project-trust.js.map +1 -0
- package/dist/modes/interactive-engine/engine-render-service.d.ts +1 -1
- package/dist/modes/interactive-engine/engine-render-service.js.map +1 -1
- package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +3 -1
- package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
- package/dist/modes/interactive-engine/extension-ui-bridge.js +7 -1
- package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
- package/dist/modes/interactive-engine/input-form-host.d.ts +2 -2
- package/dist/modes/interactive-engine/input-form-host.js.map +1 -1
- package/dist/modes/interactive-engine/isolated-auth.d.ts +1 -1
- package/dist/modes/interactive-engine/isolated-auth.js.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.d.ts +5 -2
- package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.js +42 -4
- package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
- package/dist/modes/interactive-engine/protocol.d.ts +21 -1
- package/dist/modes/interactive-engine/protocol.d.ts.map +1 -1
- package/dist/modes/interactive-engine/protocol.js +53 -2
- package/dist/modes/interactive-engine/protocol.js.map +1 -1
- package/dist/modes/interactive-engine/remote-component.d.ts +2 -2
- package/dist/modes/interactive-engine/remote-component.d.ts.map +1 -1
- package/dist/modes/interactive-engine/remote-component.js +19 -8
- package/dist/modes/interactive-engine/remote-component.js.map +1 -1
- package/dist/modes/interactive-engine/remote-model-catalog.d.ts +1 -1
- package/dist/modes/interactive-engine/remote-model-catalog.js.map +1 -1
- package/dist/modes/interactive-engine/remote-renderer.d.ts +1 -1
- package/dist/modes/interactive-engine/remote-renderer.js.map +1 -1
- package/dist/modes/interactive-engine/session-picker-host.d.ts +2 -2
- package/dist/modes/interactive-engine/session-picker-host.js.map +1 -1
- package/dist/modes/json-event.d.ts +1 -1
- package/dist/modes/json-event.js.map +1 -1
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-bash-request-owners.d.ts +2 -2
- package/dist/modes/rpc/rpc-bash-request-owners.js.map +1 -1
- package/dist/modes/rpc/rpc-client-api.d.ts +2 -2
- package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client-api.js +2 -2
- package/dist/modes/rpc/rpc-client-api.js.map +1 -1
- package/dist/modes/rpc/rpc-client-process.d.ts +2 -0
- package/dist/modes/rpc/rpc-client-process.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client-process.js +23 -1
- package/dist/modes/rpc/rpc-client-process.js.map +1 -1
- package/dist/modes/rpc/rpc-client-waits.d.ts +1 -1
- package/dist/modes/rpc/rpc-client-waits.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +3 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +40 -3
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-command-handler.d.ts +4 -2
- package/dist/modes/rpc/rpc-command-handler.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-command-handler.js +12 -4
- package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
- package/dist/modes/rpc/rpc-extension-ui.d.ts +1 -1
- package/dist/modes/rpc/rpc-extension-ui.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-extension-ui.js +2 -1
- package/dist/modes/rpc/rpc-extension-ui.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +12 -2
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-provider-auth.d.ts +1 -1
- package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
- package/dist/modes/rpc/rpc-session-binding.d.ts +4 -1
- package/dist/modes/rpc/rpc-session-binding.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-session-binding.js +35 -1
- package/dist/modes/rpc/rpc-session-binding.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +17 -1
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/modes/rpc/task-ui-bridge.d.ts +9 -0
- package/dist/modes/rpc/task-ui-bridge.d.ts.map +1 -0
- package/dist/modes/rpc/task-ui-bridge.js +146 -0
- package/dist/modes/rpc/task-ui-bridge.js.map +1 -0
- package/dist/self-update-plan.js.map +1 -1
- package/dist/utils/markit.d.ts +2 -0
- package/dist/utils/markit.d.ts.map +1 -1
- package/dist/utils/markit.js +65 -5
- package/dist/utils/markit.js.map +1 -1
- package/docs/background-tasks.md +232 -0
- package/docs/build.md +51 -0
- package/docs/changelog.mdx +8 -8
- package/docs/compaction/reference.md +267 -0
- package/docs/compaction.md +39 -200
- package/docs/computer-use.md +425 -0
- package/docs/containerization.md +9 -5
- package/docs/custom-provider/api-reference.md +145 -0
- package/docs/custom-provider/oauth.md +131 -0
- package/docs/custom-provider/override.md +34 -0
- package/docs/custom-provider/registration.md +163 -0
- package/docs/custom-provider/streaming.md +214 -0
- package/docs/custom-provider.md +43 -607
- package/docs/development.md +68 -30
- package/docs/docs.json +199 -73
- package/docs/environment-variables.md +2 -2
- package/docs/extensions/api-reference.md +1003 -0
- package/docs/extensions/authoring.md +676 -0
- package/docs/extensions/events.md +793 -0
- package/docs/extensions/examples.md +94 -0
- package/docs/extensions/ui.md +470 -0
- package/docs/extensions.md +241 -2623
- package/docs/getting-started/authentication.md +55 -0
- package/docs/getting-started/first-session.md +172 -0
- package/docs/getting-started/installation.md +154 -0
- package/docs/getting-started/project-instructions.md +43 -0
- package/docs/guides/configuration.md +65 -0
- package/docs/guides/intercom.md +24 -0
- package/docs/guides/non-interactive.md +33 -0
- package/docs/guides/subagents.md +24 -0
- package/docs/guides/workflows.md +27 -0
- package/docs/guides.md +41 -0
- package/docs/herdr.md +55 -0
- package/docs/index.md +13 -44
- package/docs/intercom/operations.md +178 -0
- package/docs/intercom/reference.md +150 -0
- package/docs/intercom.md +61 -251
- package/docs/json.md +17 -0
- package/docs/keybindings.md +36 -2
- package/docs/llama-cpp.md +5 -0
- package/docs/models/artificial-analysis-index.md +89 -0
- package/docs/models/evals.md +225 -148
- package/docs/models/model-selection.md +30 -21
- package/docs/models/pareto-efficiency.md +4 -4
- package/docs/models/reference.md +601 -0
- package/docs/models.md +45 -550
- package/docs/packages/authoring.md +88 -0
- package/docs/packages/reference.md +43 -0
- package/docs/packages.md +28 -107
- package/docs/programmatic.md +29 -0
- package/docs/prompt-templates.md +11 -0
- package/docs/providers/reference.md +23 -0
- package/docs/providers.md +59 -62
- package/docs/quickstart.md +45 -239
- package/docs/reference/cli.md +252 -0
- package/docs/reference.md +52 -0
- package/docs/rpc/examples.md +64 -0
- package/docs/rpc/extension-ui.md +198 -0
- package/docs/rpc/protocol.md +1341 -0
- package/docs/rpc.md +109 -1346
- package/docs/sdk/reference.md +1090 -0
- package/docs/sdk.md +64 -756
- package/docs/session-format.md +2 -0
- package/docs/sessions.md +6 -10
- package/docs/settings.md +45 -48
- package/docs/skills/authoring.md +95 -0
- package/docs/skills/reference.md +60 -0
- package/docs/skills.md +37 -117
- package/docs/subagents/authoring.md +37 -0
- package/docs/subagents/reference.md +60 -0
- package/docs/subagents.md +90 -78
- package/docs/terminal-setup.md +1 -1
- package/docs/themes/reference.md +176 -0
- package/docs/themes.md +25 -135
- package/docs/tmux.md +7 -0
- package/docs/tools/edit.md +5 -0
- package/docs/tools.md +67 -1
- package/docs/tui/reference.md +343 -0
- package/docs/tui.md +83 -285
- package/docs/usage.md +31 -210
- package/docs/web-access.md +50 -0
- package/docs/windows.md +6 -5
- package/docs/workflows/api-reference.md +31 -12
- package/docs/workflows/authoring.md +7 -5
- package/docs/workflows/builtins.md +11 -8
- package/docs/workflows/operations.md +103 -38
- package/docs/workflows/reliable-design.md +59 -10
- package/docs/workflows/verification.md +116 -32
- package/docs/workflows.md +7 -3
- package/examples/extensions/gondolin/index.ts +116 -148
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/ssh.ts +56 -34
- package/npm-shrinkwrap.json +798 -678
- package/package.json +11 -11
- /package/dist/builtin/workflows/builtin/{chunk-cg9tmks0.js → chunk-n1910xc4.js} +0 -0
- /package/dist/builtin/workflows/builtin/{chunk-wpckd35c.js → chunk-rc5ec5xx.js} +0 -0
- /package/dist/builtin/workflows/builtin/{chunk-7at6dnkr.js → chunk-tgt0s5e5.js} +0 -0
- /package/dist/builtin/workflows/builtin/{chunk-bfkmzv9h.js → chunk-xtxcq5tj.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-session-export.js","sourceRoot":"","sources":["../../src/core/agent-session-export.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { existsSync, mkdirSync, writeFileSync } from \"node:fs\";\nimport { dirname } from \"node:path\";\nimport type { AssistantMessage } from \"@bastani/pi-ai/compat\";\nimport { getThemeByName, theme } from \"../modes/interactive/theme/theme.ts\";\nimport { resolvePath } from \"../utils/paths.ts\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport type { SessionStats } from \"./agent-session-types.ts\";\nimport { calculateContextTokens, estimateContextTokens } from \"./compaction/index.ts\";\nimport type { ToolHtmlRenderer } from \"./export-html/index.ts\";\nimport type { ContextUsage, ReplacedSessionContext } from \"./extensions/index.ts\";\nimport { CURRENT_SESSION_VERSION, getLatestCompactionBoundaryEntry, type SessionHeader } from \"./session-manager.ts\";\nimport { addUsageToTotals, createUsageTotals } from \"./usage-totals.ts\";\n\nexport function getSessionStats(this: AgentSession): SessionStats {\n\tlet userMessages = 0;\n\tlet assistantMessages = 0;\n\tlet toolResults = 0;\n\tlet totalMessages = 0;\n\tlet toolCalls = 0;\n\tconst totals = createUsageTotals();\n\tfor (const entry of this.sessionManager.getEntries()) {\n\t\tif (\n\t\t\t(entry.type === \"branch_summary\" || entry.type === \"session_summary\" || entry.type === \"compaction\") &&\n\t\t\tentry.usage\n\t\t) {\n\t\t\taddUsageToTotals(totals, entry.usage);\n\t\t}\n\t\tif (entry.type !== \"message\") continue;\n\t\ttotalMessages++;\n\t\tconst message = entry.message;\n\t\tif (message.role === \"user\") userMessages++;\n\t\telse if (message.role === \"toolResult\") {\n\t\t\ttoolResults++;\n\t\t\tif (\"usage\" in message && message.usage) addUsageToTotals(totals, message.usage);\n\t\t} else if (message.role === \"assistant\") {\n\t\t\tassistantMessages++;\n\t\t\tconst assistant = message as AssistantMessage;\n\t\t\ttoolCalls += assistant.content.filter((content) => content.type === \"toolCall\").length;\n\t\t\taddUsageToTotals(totals, assistant.usage);\n\t\t}\n\t}\n\n\treturn {\n\t\tsessionFile: this.sessionFile,\n\t\tsessionId: this.sessionId,\n\t\tuserMessages,\n\t\tassistantMessages,\n\t\ttoolCalls,\n\t\ttoolResults,\n\t\ttotalMessages,\n\t\ttokens: {\n\t\t\tinput: totals.input,\n\t\t\toutput: totals.output,\n\t\t\tcacheRead: totals.cacheRead,\n\t\t\tcacheWrite: totals.cacheWrite,\n\t\t\ttotal: totals.input + totals.output + totals.cacheRead + totals.cacheWrite,\n\t\t},\n\t\tcost: totals.cost,\n\t\tcontextUsage: this.getContextUsage(),\n\t};\n}\n\nexport function getContextUsage(this: AgentSession): ContextUsage | undefined {\n\tconst model = this.model;\n\tif (!model) return undefined;\n\n\tconst contextWindow = model.contextWindow ?? 0;\n\tif (contextWindow <= 0) return undefined;\n\n\t// After compaction, the last assistant usage reflects pre-compaction context size.\n\t// We can only trust usage from an assistant that responded after the latest compaction.\n\t// If no such assistant exists, context token count is unknown until the next LLM response.\n\tconst branchEntries = this.sessionManager.getBranch();\n\tconst latestCompactionBoundary = getLatestCompactionBoundaryEntry(branchEntries);\n\n\tif (latestCompactionBoundary) {\n\t\t// Check if there's a valid assistant usage after the compaction boundary\n\t\tconst compactionIndex = branchEntries.lastIndexOf(latestCompactionBoundary);\n\t\tlet hasPostCompactionUsage = false;\n\t\tfor (let i = branchEntries.length - 1; i > compactionIndex; i--) {\n\t\t\tconst entry = branchEntries[i];\n\t\t\tif (entry.type === \"message\" && entry.message.role === \"assistant\") {\n\t\t\t\tconst assistant = entry.message;\n\t\t\t\tif (assistant.stopReason !== \"aborted\" && assistant.stopReason !== \"error\") {\n\t\t\t\t\tconst contextTokens = calculateContextTokens(assistant.usage, assistant.api);\n\t\t\t\t\tif (contextTokens > 0) {\n\t\t\t\t\t\thasPostCompactionUsage = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!hasPostCompactionUsage) {\n\t\t\treturn { tokens: null, contextWindow, percent: null };\n\t\t}\n\t}\n\n\tconst estimate = estimateContextTokens(this.messages);\n\tconst percent = (estimate.tokens / contextWindow) * 100;\n\n\treturn {\n\t\ttokens: estimate.tokens,\n\t\tcontextWindow,\n\t\tpercent,\n\t};\n}\n\n/**\n * Export session to HTML.\n * @param outputPath Optional output path (defaults to session directory)\n * @param options Optional export presentation settings; `themeName` overrides the\n * saved theme setting (e.g. with this run's --use-theme selection) when it names a\n * registered theme.\n * @returns Path to exported file\n */\n\nexport async function exportToHtml(\n\tthis: AgentSession,\n\toutputPath?: string,\n\toptions: { themeName?: string } = {},\n): Promise<string> {\n\tconst themeName = [options.themeName, this.settingsManager.getTheme()].find(\n\t\t(candidate) => candidate !== undefined && getThemeByName(candidate) !== undefined,\n\t);\n\tconst [{ exportSessionToHtml }, { createToolHtmlRenderer }] = await Promise.all([\n\t\timport(\"./export-html/index.ts\"),\n\t\timport(\"./export-html/tool-renderer.ts\"),\n\t]);\n\n\t// Create tool renderer if we have an extension runner (for custom tool HTML rendering)\n\tconst toolRenderer: ToolHtmlRenderer = createToolHtmlRenderer({\n\t\tgetToolDefinition: (name) => this.getToolDefinition(name),\n\t\ttheme,\n\t\tcwd: this.sessionManager.getCwd(),\n\t});\n\n\treturn await exportSessionToHtml(this.sessionManager, this.state, {\n\t\toutputPath,\n\t\tthemeName,\n\t\ttoolRenderer,\n\t});\n}\n\n/**\n * Export the current session branch to a JSONL file.\n * Writes the session header followed by all entries on the current branch path.\n * @param outputPath Target file path. If omitted, generates a timestamped file in cwd.\n * @returns The resolved output file path.\n */\n\nexport function exportToJsonl(\n\tthis: AgentSession,\n\toutputPath?: string,\n\toptions: { includeShareContext?: boolean } = {},\n): string {\n\tconst filePath = resolvePath(\n\t\toutputPath ?? `session-${new Date().toISOString().replace(/[:.]/g, \"-\")}.jsonl`,\n\t\tprocess.cwd(),\n\t);\n\tconst dir = dirname(filePath);\n\tif (!existsSync(dir)) {\n\t\tmkdirSync(dir, { recursive: true });\n\t}\n\n\tconst header: SessionHeader = {\n\t\ttype: \"session\",\n\t\tversion: CURRENT_SESSION_VERSION,\n\t\tid: this.sessionManager.getSessionId(),\n\t\ttimestamp: new Date().toISOString(),\n\t\tcwd: this.sessionManager.getCwd(),\n\t};\n\n\tconst branchEntries = this.sessionManager.getBranch();\n\tconst lines = [JSON.stringify(header)];\n\n\t// Re-chain parentIds to form a linear sequence\n\tlet prevId: string | null = null;\n\tfor (const entry of branchEntries) {\n\t\tconst linear = { ...entry, parentId: prevId };\n\t\tlines.push(JSON.stringify(linear));\n\t\tprevId = entry.id;\n\t}\n\tif (options.includeShareContext) {\n\t\tconst shareEntry = {\n\t\t\ttype: \"custom\",\n\t\t\tid: randomUUID(),\n\t\t\tparentId: prevId,\n\t\t\ttimestamp: new Date().toISOString(),\n\t\t\tcustomType: \"atomic.share\",\n\t\t\tdata: {\n\t\t\t\tsystemPrompt: this.systemPrompt,\n\t\t\t\ttools: this.agent.state.tools.map(({ name, description, parameters }) => ({\n\t\t\t\t\tname,\n\t\t\t\t\tdescription,\n\t\t\t\t\tparameters,\n\t\t\t\t})),\n\t\t\t},\n\t\t};\n\t\tlines.push(JSON.stringify(shareEntry));\n\t}\n\n\twriteFileSync(filePath, `${lines.join(\"\\n\")}\\n`);\n\treturn filePath;\n}\n\n// =========================================================================\n// Utilities\n// =========================================================================\n\n/**\n * Get text content of last assistant message.\n * Useful for /copy command.\n * @returns Text content, or undefined if no assistant message exists\n */\n\nexport function getLastAssistantText(this: AgentSession): string | undefined {\n\tconst lastAssistant = this.messages\n\t\t.slice()\n\t\t.reverse()\n\t\t.find((m) => {\n\t\t\tif (m.role !== \"assistant\") return false;\n\t\t\tconst msg = m as AssistantMessage;\n\t\t\t// Skip aborted messages with no content\n\t\t\tif (msg.stopReason === \"aborted\" && msg.content.length === 0) return false;\n\t\t\treturn true;\n\t\t});\n\n\tif (!lastAssistant) return undefined;\n\n\tlet text = \"\";\n\tfor (const content of (lastAssistant as AssistantMessage).content) {\n\t\tif (content.type === \"text\") {\n\t\t\ttext += content.text;\n\t\t}\n\t}\n\n\treturn text.trim() || undefined;\n}\n\n// =========================================================================\n// Extension System\n// =========================================================================\n\nexport function createReplacedSessionContext(this: AgentSession): ReplacedSessionContext {\n\tconst context = Object.defineProperties(\n\t\t{},\n\t\tObject.getOwnPropertyDescriptors(this._extensionRunner.createCommandContext()),\n\t) as ReplacedSessionContext;\n\tcontext.sendMessage = (message, options) => this.sendCustomMessage(message, options);\n\tcontext.sendUserMessage = (content, options) => this.sendUserMessage(content, options);\n\treturn context;\n}\n\n/**\n * Check if extensions have handlers for a specific event type.\n */\n\nexport function hasExtensionHandlers(this: AgentSession, eventType: string): boolean {\n\treturn this._extensionRunner.hasHandlers(eventType);\n}\n\n/**\n * Get the extension runner (for setting UI context and error handlers).\n */\n\nexport const agentSessionExportMethods = {\n\tgetSessionStats,\n\tgetContextUsage,\n\texportToHtml,\n\texportToJsonl,\n\tgetLastAssistantText,\n\tcreateReplacedSessionContext,\n\thasExtensionHandlers,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"agent-session-export.js","sourceRoot":"","sources":["../../src/core/agent-session-export.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { existsSync, mkdirSync, writeFileSync } from \"node:fs\";\nimport { dirname } from \"node:path\";\nimport type { AssistantMessage } from \"@bastani/pi-ai/compat\";\nimport { getThemeByName, theme } from \"../modes/interactive/theme/theme.js\";\nimport { resolvePath } from \"../utils/paths.ts\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport type { SessionStats } from \"./agent-session-types.ts\";\nimport { calculateContextTokens, estimateContextTokens } from \"./compaction/index.ts\";\nimport type { ToolHtmlRenderer } from \"./export-html/index.ts\";\nimport type { ContextUsage, ReplacedSessionContext } from \"./extensions/index.js\";\nimport { CURRENT_SESSION_VERSION, getLatestCompactionBoundaryEntry, type SessionHeader } from \"./session-manager.ts\";\nimport { addUsageToTotals, createUsageTotals } from \"./usage-totals.ts\";\n\nexport function getSessionStats(this: AgentSession): SessionStats {\n\tlet userMessages = 0;\n\tlet assistantMessages = 0;\n\tlet toolResults = 0;\n\tlet totalMessages = 0;\n\tlet toolCalls = 0;\n\tconst totals = createUsageTotals();\n\tfor (const entry of this.sessionManager.getEntries()) {\n\t\tif (\n\t\t\t(entry.type === \"branch_summary\" || entry.type === \"session_summary\" || entry.type === \"compaction\") &&\n\t\t\tentry.usage\n\t\t) {\n\t\t\taddUsageToTotals(totals, entry.usage);\n\t\t}\n\t\tif (entry.type !== \"message\") continue;\n\t\ttotalMessages++;\n\t\tconst message = entry.message;\n\t\tif (message.role === \"user\") userMessages++;\n\t\telse if (message.role === \"toolResult\") {\n\t\t\ttoolResults++;\n\t\t\tif (\"usage\" in message && message.usage) addUsageToTotals(totals, message.usage);\n\t\t} else if (message.role === \"assistant\") {\n\t\t\tassistantMessages++;\n\t\t\tconst assistant = message as AssistantMessage;\n\t\t\ttoolCalls += assistant.content.filter((content) => content.type === \"toolCall\").length;\n\t\t\taddUsageToTotals(totals, assistant.usage);\n\t\t}\n\t}\n\n\treturn {\n\t\tsessionFile: this.sessionFile,\n\t\tsessionId: this.sessionId,\n\t\tuserMessages,\n\t\tassistantMessages,\n\t\ttoolCalls,\n\t\ttoolResults,\n\t\ttotalMessages,\n\t\ttokens: {\n\t\t\tinput: totals.input,\n\t\t\toutput: totals.output,\n\t\t\tcacheRead: totals.cacheRead,\n\t\t\tcacheWrite: totals.cacheWrite,\n\t\t\ttotal: totals.input + totals.output + totals.cacheRead + totals.cacheWrite,\n\t\t},\n\t\tcost: totals.cost,\n\t\tcontextUsage: this.getContextUsage(),\n\t};\n}\n\nexport function getContextUsage(this: AgentSession): ContextUsage | undefined {\n\tconst model = this.model;\n\tif (!model) return undefined;\n\n\tconst contextWindow = model.contextWindow ?? 0;\n\tif (contextWindow <= 0) return undefined;\n\n\t// After compaction, the last assistant usage reflects pre-compaction context size.\n\t// We can only trust usage from an assistant that responded after the latest compaction.\n\t// If no such assistant exists, context token count is unknown until the next LLM response.\n\tconst branchEntries = this.sessionManager.getBranch();\n\tconst latestCompactionBoundary = getLatestCompactionBoundaryEntry(branchEntries);\n\n\tif (latestCompactionBoundary) {\n\t\t// Check if there's a valid assistant usage after the compaction boundary\n\t\tconst compactionIndex = branchEntries.lastIndexOf(latestCompactionBoundary);\n\t\tlet hasPostCompactionUsage = false;\n\t\tfor (let i = branchEntries.length - 1; i > compactionIndex; i--) {\n\t\t\tconst entry = branchEntries[i];\n\t\t\tif (entry.type === \"message\" && entry.message.role === \"assistant\") {\n\t\t\t\tconst assistant = entry.message;\n\t\t\t\tif (assistant.stopReason !== \"aborted\" && assistant.stopReason !== \"error\") {\n\t\t\t\t\tconst contextTokens = calculateContextTokens(assistant.usage, assistant.api);\n\t\t\t\t\tif (contextTokens > 0) {\n\t\t\t\t\t\thasPostCompactionUsage = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!hasPostCompactionUsage) {\n\t\t\treturn { tokens: null, contextWindow, percent: null };\n\t\t}\n\t}\n\n\tconst estimate = estimateContextTokens(this.messages);\n\tconst percent = (estimate.tokens / contextWindow) * 100;\n\n\treturn {\n\t\ttokens: estimate.tokens,\n\t\tcontextWindow,\n\t\tpercent,\n\t};\n}\n\n/**\n * Export session to HTML.\n * @param outputPath Optional output path (defaults to session directory)\n * @param options Optional export presentation settings; `themeName` overrides the\n * saved theme setting (e.g. with this run's --use-theme selection) when it names a\n * registered theme.\n * @returns Path to exported file\n */\n\nexport async function exportToHtml(\n\tthis: AgentSession,\n\toutputPath?: string,\n\toptions: { themeName?: string } = {},\n): Promise<string> {\n\tconst themeName = [options.themeName, this.settingsManager.getTheme()].find(\n\t\t(candidate) => candidate !== undefined && getThemeByName(candidate) !== undefined,\n\t);\n\tconst [{ exportSessionToHtml }, { createToolHtmlRenderer }] = await Promise.all([\n\t\timport(\"./export-html/index.ts\"),\n\t\timport(\"./export-html/tool-renderer.ts\"),\n\t]);\n\n\t// Create tool renderer if we have an extension runner (for custom tool HTML rendering)\n\tconst toolRenderer: ToolHtmlRenderer = createToolHtmlRenderer({\n\t\tgetToolDefinition: (name) => this.getToolDefinition(name),\n\t\ttheme,\n\t\tcwd: this.sessionManager.getCwd(),\n\t});\n\n\treturn await exportSessionToHtml(this.sessionManager, this.state, {\n\t\toutputPath,\n\t\tthemeName,\n\t\ttoolRenderer,\n\t});\n}\n\n/**\n * Export the current session branch to a JSONL file.\n * Writes the session header followed by all entries on the current branch path.\n * @param outputPath Target file path. If omitted, generates a timestamped file in cwd.\n * @returns The resolved output file path.\n */\n\nexport function exportToJsonl(\n\tthis: AgentSession,\n\toutputPath?: string,\n\toptions: { includeShareContext?: boolean } = {},\n): string {\n\tconst filePath = resolvePath(\n\t\toutputPath ?? `session-${new Date().toISOString().replace(/[:.]/g, \"-\")}.jsonl`,\n\t\tprocess.cwd(),\n\t);\n\tconst dir = dirname(filePath);\n\tif (!existsSync(dir)) {\n\t\tmkdirSync(dir, { recursive: true });\n\t}\n\n\tconst header: SessionHeader = {\n\t\ttype: \"session\",\n\t\tversion: CURRENT_SESSION_VERSION,\n\t\tid: this.sessionManager.getSessionId(),\n\t\ttimestamp: new Date().toISOString(),\n\t\tcwd: this.sessionManager.getCwd(),\n\t};\n\n\tconst branchEntries = this.sessionManager.getBranch();\n\tconst lines = [JSON.stringify(header)];\n\n\t// Re-chain parentIds to form a linear sequence\n\tlet prevId: string | null = null;\n\tfor (const entry of branchEntries) {\n\t\tconst linear = { ...entry, parentId: prevId };\n\t\tlines.push(JSON.stringify(linear));\n\t\tprevId = entry.id;\n\t}\n\tif (options.includeShareContext) {\n\t\tconst shareEntry = {\n\t\t\ttype: \"custom\",\n\t\t\tid: randomUUID(),\n\t\t\tparentId: prevId,\n\t\t\ttimestamp: new Date().toISOString(),\n\t\t\tcustomType: \"atomic.share\",\n\t\t\tdata: {\n\t\t\t\tsystemPrompt: this.systemPrompt,\n\t\t\t\ttools: this.agent.state.tools.map(({ name, description, parameters }) => ({\n\t\t\t\t\tname,\n\t\t\t\t\tdescription,\n\t\t\t\t\tparameters,\n\t\t\t\t})),\n\t\t\t},\n\t\t};\n\t\tlines.push(JSON.stringify(shareEntry));\n\t}\n\n\twriteFileSync(filePath, `${lines.join(\"\\n\")}\\n`);\n\treturn filePath;\n}\n\n// =========================================================================\n// Utilities\n// =========================================================================\n\n/**\n * Get text content of last assistant message.\n * Useful for /copy command.\n * @returns Text content, or undefined if no assistant message exists\n */\n\nexport function getLastAssistantText(this: AgentSession): string | undefined {\n\tconst lastAssistant = this.messages\n\t\t.slice()\n\t\t.reverse()\n\t\t.find((m) => {\n\t\t\tif (m.role !== \"assistant\") return false;\n\t\t\tconst msg = m as AssistantMessage;\n\t\t\t// Skip aborted messages with no content\n\t\t\tif (msg.stopReason === \"aborted\" && msg.content.length === 0) return false;\n\t\t\treturn true;\n\t\t});\n\n\tif (!lastAssistant) return undefined;\n\n\tlet text = \"\";\n\tfor (const content of (lastAssistant as AssistantMessage).content) {\n\t\tif (content.type === \"text\") {\n\t\t\ttext += content.text;\n\t\t}\n\t}\n\n\treturn text.trim() || undefined;\n}\n\n// =========================================================================\n// Extension System\n// =========================================================================\n\nexport function createReplacedSessionContext(this: AgentSession): ReplacedSessionContext {\n\tconst context = Object.defineProperties(\n\t\t{},\n\t\tObject.getOwnPropertyDescriptors(this._extensionRunner.createCommandContext()),\n\t) as ReplacedSessionContext;\n\tcontext.sendMessage = (message, options) => this.sendCustomMessage(message, options);\n\tcontext.sendUserMessage = (content, options) => this.sendUserMessage(content, options);\n\treturn context;\n}\n\n/**\n * Check if extensions have handlers for a specific event type.\n */\n\nexport function hasExtensionHandlers(this: AgentSession, eventType: string): boolean {\n\treturn this._extensionRunner.hasHandlers(eventType);\n}\n\n/**\n * Get the extension runner (for setting UI context and error handlers).\n */\n\nexport const agentSessionExportMethods = {\n\tgetSessionStats,\n\tgetContextUsage,\n\texportToHtml,\n\texportToJsonl,\n\tgetLastAssistantText,\n\tcreateReplacedSessionContext,\n\thasExtensionHandlers,\n};\n"]}
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
import type { AgentSessionInternalSurface as AgentSession } from "./agent-session-methods.ts";
|
|
2
2
|
import type { AgentSessionReloadOptions, ExtensionBindings } from "./agent-session-types.ts";
|
|
3
|
-
import { ExtensionRunner } from "./extensions/index.
|
|
3
|
+
import { ExtensionRunner } from "./extensions/index.js";
|
|
4
4
|
import type { ExtensionProviderTransaction, ModelRuntime } from "./model-runtime.js";
|
|
5
5
|
import type { PathMetadata } from "./package-manager.ts";
|
|
6
6
|
import type { ResourceLoader } from "./resource-loader.ts";
|
|
7
7
|
declare class ExtensionPublicationGate {
|
|
8
8
|
readonly resourceLoader: ResourceLoader;
|
|
9
9
|
private readonly effects;
|
|
10
|
+
private readonly startEffects;
|
|
10
11
|
readonly providerTransaction: ExtensionProviderTransaction;
|
|
11
12
|
readonly providerIds: Set<string>;
|
|
12
13
|
private readonly runner;
|
|
13
14
|
private discarded;
|
|
14
15
|
constructor(resourceLoader: ResourceLoader, runner: ExtensionRunner, modelRuntime: ModelRuntime, replacedProviderIds: Iterable<string>);
|
|
15
16
|
defer(effect: () => void | Promise<void>): void;
|
|
17
|
+
stageStart(effect: () => void | Promise<void>): void;
|
|
18
|
+
activateStarts(): Promise<void>;
|
|
16
19
|
publishProviders(): Promise<void>;
|
|
17
20
|
discard(): void;
|
|
18
21
|
release(): Promise<void>;
|
|
22
|
+
private publish;
|
|
19
23
|
private report;
|
|
20
24
|
}
|
|
21
25
|
export declare function bindExtensions(this: AgentSession, bindings: ExtensionBindings): Promise<void>;
|
|
@@ -33,12 +37,15 @@ export declare function refreshCurrentModelFromRegistry(this: AgentSession): voi
|
|
|
33
37
|
export declare function _refreshCurrentModelFromRegistry(this: AgentSession): void;
|
|
34
38
|
export declare function _bindExtensionCore(this: AgentSession, runner: ExtensionRunner, publication?: ExtensionPublicationGate): void;
|
|
35
39
|
export declare function reload(this: AgentSession, options?: AgentSessionReloadOptions): Promise<void>;
|
|
40
|
+
/** Publish approved startup resources without replacing the session or restarting safe reporters. */
|
|
41
|
+
export declare function completeStartupResources(this: AgentSession, resourceLoader: ResourceLoader): Promise<void>;
|
|
36
42
|
/**
|
|
37
43
|
* Check if an error is retryable (overloaded, rate limit, server errors).
|
|
38
44
|
* Context overflow errors are NOT retryable (handled by compaction instead).
|
|
39
45
|
*/
|
|
40
46
|
export declare const agentSessionExtensionBindingsMethods: {
|
|
41
47
|
bindExtensions: typeof bindExtensions;
|
|
48
|
+
completeStartupResources: typeof completeStartupResources;
|
|
42
49
|
extendResourcesFromExtensions: typeof extendResourcesFromExtensions;
|
|
43
50
|
buildExtensionResourcePaths: typeof buildExtensionResourcePaths;
|
|
44
51
|
getExtensionSourceLabel: typeof getExtensionSourceLabel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-session-extension-bindings.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-extension-bindings.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE9F,OAAO,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-session-extension-bindings.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-extension-bindings.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,13 @@ import { resetApiProviders } from "@bastani/pi-ai/compat";
|
|
|
3
3
|
import { recoverProtectedStreamingCustomMessages } from "./agent-session-persistent-custom-messages.js";
|
|
4
4
|
import { ExtensionRunner } from "./extensions/index.js";
|
|
5
5
|
import { emitSessionShutdownEvent } from "./extensions/runner.js";
|
|
6
|
+
import { bindExtensionContextPublication } from "./extensions/runner-context.js";
|
|
6
7
|
import { ModelRegistry } from "./model-registry.js";
|
|
7
8
|
import { getSkillCatalog } from "./skill-catalog.js";
|
|
8
9
|
class ExtensionPublicationGate {
|
|
9
10
|
constructor(resourceLoader, runner, modelRuntime, replacedProviderIds) {
|
|
10
11
|
this.effects = [];
|
|
12
|
+
this.startEffects = [];
|
|
11
13
|
this.providerIds = new Set();
|
|
12
14
|
this.discarded = false;
|
|
13
15
|
this.resourceLoader = resourceLoader;
|
|
@@ -18,16 +20,26 @@ class ExtensionPublicationGate {
|
|
|
18
20
|
if (!this.discarded)
|
|
19
21
|
this.effects.push(effect);
|
|
20
22
|
}
|
|
23
|
+
stageStart(effect) {
|
|
24
|
+
if (!this.discarded)
|
|
25
|
+
this.startEffects.push(effect);
|
|
26
|
+
}
|
|
27
|
+
async activateStarts() {
|
|
28
|
+
await this.publish(this.startEffects);
|
|
29
|
+
}
|
|
21
30
|
async publishProviders() {
|
|
22
31
|
await this.providerTransaction.commit();
|
|
23
32
|
}
|
|
24
33
|
discard() {
|
|
25
34
|
this.discarded = true;
|
|
26
35
|
this.effects.length = 0;
|
|
36
|
+
this.startEffects.length = 0;
|
|
27
37
|
}
|
|
28
38
|
async release() {
|
|
29
|
-
|
|
30
|
-
|
|
39
|
+
await this.publish(this.effects);
|
|
40
|
+
}
|
|
41
|
+
async publish(effects) {
|
|
42
|
+
for (const effect of effects.splice(0)) {
|
|
31
43
|
try {
|
|
32
44
|
await effect();
|
|
33
45
|
}
|
|
@@ -144,6 +156,8 @@ export function _refreshCurrentModelFromRegistry() {
|
|
|
144
156
|
this._emit({ type: "model_changed", model: refreshedModel, previousModel, source: "restore" });
|
|
145
157
|
}
|
|
146
158
|
export function _bindExtensionCore(runner, publication) {
|
|
159
|
+
bindExtensionContextPublication(runner.createContext(), publication && ((effect) => publication.stageStart(effect)));
|
|
160
|
+
runner.bindTaskHost(() => this.getAgentTaskHost());
|
|
147
161
|
const getCommands = () => {
|
|
148
162
|
const extensionCommands = runner.getRegisteredCommands().map((command) => ({
|
|
149
163
|
name: command.invocationName,
|
|
@@ -434,12 +448,39 @@ export async function reload(options) {
|
|
|
434
448
|
this._extensionProviderIds = new Set(publication.providerIds);
|
|
435
449
|
extensionsResult.runtime.extensionProviderIds = new Set(publication.providerIds);
|
|
436
450
|
this.refreshCurrentModelFromRegistry();
|
|
437
|
-
|
|
451
|
+
// Keep the runner that received session_start: its resource leases belong to it,
|
|
452
|
+
// not to a third runner recreated at commit without a matching start event.
|
|
453
|
+
this._extensionRunner = candidateRunner;
|
|
454
|
+
if (this._extensionRunnerRef)
|
|
455
|
+
this._extensionRunnerRef.current = candidateRunner;
|
|
456
|
+
this._bindExtensionCore(candidateRunner);
|
|
457
|
+
this._applyExtensionBindings(candidateRunner);
|
|
458
|
+
this._buildRuntime({
|
|
459
|
+
activeToolNames,
|
|
460
|
+
flagValues: previousFlagValues,
|
|
461
|
+
includeAllExtensionTools: true,
|
|
462
|
+
preserveRunner: true,
|
|
463
|
+
});
|
|
464
|
+
// Publish reporter claims only after fallible preparation, before old shutdown or queued user effects.
|
|
465
|
+
await publication.activateStarts();
|
|
438
466
|
if (reason === "reload")
|
|
439
467
|
await emitSessionShutdownEvent(oldRunner, { type: "session_shutdown", reason: "reload" });
|
|
440
468
|
oldRunner.invalidate();
|
|
441
469
|
await publication.release();
|
|
442
470
|
}
|
|
471
|
+
/** Publish approved startup resources without replacing the session or restarting safe reporters. */
|
|
472
|
+
export async function completeStartupResources(resourceLoader) {
|
|
473
|
+
this._resourceLoader = resourceLoader;
|
|
474
|
+
const startNewcomers = this._extensionRunner.attachStartupExtensions(resourceLoader.getExtensions().extensions);
|
|
475
|
+
this._buildRuntime({
|
|
476
|
+
activeToolNames: this.getActiveToolNames(),
|
|
477
|
+
includeAllExtensionTools: true,
|
|
478
|
+
preserveRunner: true,
|
|
479
|
+
});
|
|
480
|
+
this.refreshCurrentModelFromRegistry();
|
|
481
|
+
await startNewcomers();
|
|
482
|
+
await this.extendResourcesFromExtensions("startup");
|
|
483
|
+
}
|
|
443
484
|
// =========================================================================
|
|
444
485
|
// Auto-Retry
|
|
445
486
|
// =========================================================================
|
|
@@ -449,6 +490,7 @@ export async function reload(options) {
|
|
|
449
490
|
*/
|
|
450
491
|
export const agentSessionExtensionBindingsMethods = {
|
|
451
492
|
bindExtensions,
|
|
493
|
+
completeStartupResources,
|
|
452
494
|
extendResourcesFromExtensions,
|
|
453
495
|
buildExtensionResourcePaths,
|
|
454
496
|
getExtensionSourceLabel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-session-extension-bindings.js","sourceRoot":"","sources":["../../src/core/agent-session-extension-bindings.ts"],"names":[],"mappings":"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","sourcesContent":["import { basename, dirname } from \"node:path\";\nimport { resetApiProviders } from \"@bastani/pi-ai/compat\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport { recoverProtectedStreamingCustomMessages } from \"./agent-session-persistent-custom-messages.ts\";\nimport type { AgentSessionReloadOptions, ExtensionBindings } from \"./agent-session-types.ts\";\nimport { ExtensionRunner } from \"./extensions/index.ts\";\nimport { emitSessionShutdownEvent } from \"./extensions/runner.ts\";\nimport { ModelRegistry } from \"./model-registry.ts\";\nimport type { ExtensionProviderTransaction, ModelRuntime } from \"./model-runtime.js\";\nimport type { PathMetadata } from \"./package-manager.ts\";\nimport type { ResourceExtensionPaths, ResourceLoader } from \"./resource-loader.ts\";\nimport { getSkillCatalog } from \"./skill-catalog.ts\";\nimport type { SlashCommandInfo } from \"./slash-commands.ts\";\n\nclass ExtensionPublicationGate {\n\treadonly resourceLoader: ResourceLoader;\n\tprivate readonly effects: Array<() => void | Promise<void>> = [];\n\treadonly providerTransaction: ExtensionProviderTransaction;\n\treadonly providerIds = new Set<string>();\n\tprivate readonly runner: ExtensionRunner;\n\tprivate discarded = false;\n\n\tconstructor(\n\t\tresourceLoader: ResourceLoader,\n\t\trunner: ExtensionRunner,\n\t\tmodelRuntime: ModelRuntime,\n\t\treplacedProviderIds: Iterable<string>,\n\t) {\n\t\tthis.resourceLoader = resourceLoader;\n\t\tthis.runner = runner;\n\t\tthis.providerTransaction = modelRuntime.createExtensionProviderTransaction(replacedProviderIds);\n\t}\n\n\tdefer(effect: () => void | Promise<void>): void {\n\t\tif (!this.discarded) this.effects.push(effect);\n\t}\n\n\tasync publishProviders(): Promise<void> {\n\t\tawait this.providerTransaction.commit();\n\t}\n\n\tdiscard(): void {\n\t\tthis.discarded = true;\n\t\tthis.effects.length = 0;\n\t}\n\n\tasync release(): Promise<void> {\n\t\tconst effects = this.effects.splice(0);\n\t\tfor (const effect of effects) {\n\t\t\ttry {\n\t\t\t\tawait effect();\n\t\t\t} catch (error) {\n\t\t\t\tthis.report(error, \"session_start\");\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate report(error: unknown, event: string): void {\n\t\tthis.runner.emitError({\n\t\t\textensionPath: \"<runtime>\",\n\t\t\tevent,\n\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t});\n\t}\n}\n\nfunction buildExtensionResourcePathsForLoader(\n\tsession: AgentSession,\n\tloader: ResourceLoader,\n\tentries: Array<{ path: string; extensionPath: string }>,\n): Array<{ path: string; metadata: PathMetadata }> {\n\treturn entries.map((entry) => {\n\t\tconst extension = loader\n\t\t\t.getExtensions()\n\t\t\t.extensions.find(\n\t\t\t\t(candidate) =>\n\t\t\t\t\tcandidate.path === entry.extensionPath ||\n\t\t\t\t\tcandidate.resolvedPath === entry.extensionPath ||\n\t\t\t\t\tcandidate.sourceInfo.path === entry.extensionPath,\n\t\t\t);\n\t\tconst sourceInfo = extension?.sourceInfo;\n\t\treturn {\n\t\t\tpath: entry.path,\n\t\t\tmetadata: {\n\t\t\t\tsource: sourceInfo?.source ?? session.getExtensionSourceLabel(entry.extensionPath),\n\t\t\t\tscope: sourceInfo?.scope ?? \"temporary\",\n\t\t\t\torigin: sourceInfo?.origin ?? \"top-level\",\n\t\t\t\tbaseDir:\n\t\t\t\t\tsourceInfo?.baseDir ?? (entry.extensionPath.startsWith(\"<\") ? undefined : dirname(entry.extensionPath)),\n\t\t\t\tconfigurationOrigin: sourceInfo?.configurationOrigin,\n\t\t\t},\n\t\t};\n\t});\n}\n\nasync function extendRunnerResources(\n\tsession: AgentSession,\n\trunner: ExtensionRunner,\n\tloader: ResourceLoader,\n\treason: \"startup\" | \"reload\",\n): Promise<void> {\n\tif (!runner.hasHandlers(\"resources_discover\")) return;\n\tconst { skillPaths, promptPaths, themePaths } = await runner.emitResourcesDiscover(session._cwd, reason);\n\tif (skillPaths.length === 0 && promptPaths.length === 0 && themePaths.length === 0) return;\n\tconst extensionPaths: ResourceExtensionPaths = {\n\t\tskillPaths: buildExtensionResourcePathsForLoader(session, loader, skillPaths),\n\t\tpromptPaths: buildExtensionResourcePathsForLoader(session, loader, promptPaths),\n\t\tthemePaths: buildExtensionResourcePathsForLoader(session, loader, themePaths),\n\t};\n\tawait loader.extendResources(extensionPaths);\n}\n\nexport async function bindExtensions(this: AgentSession, bindings: ExtensionBindings): Promise<void> {\n\tif (bindings.uiContext !== undefined) {\n\t\tthis._extensionUIContext = bindings.uiContext;\n\t}\n\tif (bindings.mode !== undefined) {\n\t\tthis._extensionMode = bindings.mode;\n\t}\n\tif (bindings.commandContextActions !== undefined) {\n\t\tthis._extensionCommandContextActions = bindings.commandContextActions;\n\t}\n\tif (bindings.shutdownHandler !== undefined) {\n\t\tthis._extensionShutdownHandler = bindings.shutdownHandler;\n\t}\n\tif (bindings.onError !== undefined) {\n\t\tthis._extensionErrorListener = bindings.onError;\n\t}\n\n\tthis._applyExtensionBindings(this._extensionRunner);\n\tawait this._extensionRunner.emit(this._sessionStartEvent);\n\tawait this.extendResourcesFromExtensions(this._sessionStartEvent.reason === \"reload\" ? \"reload\" : \"startup\");\n\tif (recoverProtectedStreamingCustomMessages(this) > 0) {\n\t\tawait this._continueQueuedAgentMessages();\n\t}\n}\n\nexport async function extendResourcesFromExtensions(this: AgentSession, reason: \"startup\" | \"reload\"): Promise<void> {\n\tawait extendRunnerResources(this, this._extensionRunner, this._resourceLoader, reason);\n\tthis._baseSystemPrompt = this._rebuildSystemPrompt(this.getActiveToolNames());\n\tthis.agent.state.systemPrompt = this._systemPromptOverride ?? this._baseSystemPrompt;\n}\n\nexport function buildExtensionResourcePaths(\n\tthis: AgentSession,\n\tentries: Array<{ path: string; extensionPath: string }>,\n): Array<{\n\tpath: string;\n\tmetadata: PathMetadata;\n}> {\n\treturn buildExtensionResourcePathsForLoader(this, this._resourceLoader, entries);\n}\n\nexport function getExtensionSourceLabel(this: AgentSession, extensionPath: string): string {\n\tif (extensionPath.startsWith(\"<\")) {\n\t\treturn `extension:${extensionPath.replace(/[<>]/g, \"\")}`;\n\t}\n\tconst base = basename(extensionPath);\n\tconst name = base.replace(/\\.(ts|js)$/, \"\");\n\treturn `extension:${name}`;\n}\n\nexport function _applyExtensionBindings(this: AgentSession, runner: ExtensionRunner): void {\n\trunner.setUIContext(this._extensionUIContext, this._extensionMode);\n\trunner.bindCommandContext(this._extensionCommandContextActions);\n\n\tthis._extensionErrorUnsubscriber?.();\n\tthis._extensionErrorUnsubscriber = this._extensionErrorListener\n\t\t? runner.onError(this._extensionErrorListener)\n\t\t: undefined;\n}\n\nexport function refreshCurrentModelFromRegistry(this: AgentSession): void {\n\tthis._refreshCurrentModelFromRegistry();\n}\n\nexport function _refreshCurrentModelFromRegistry(this: AgentSession): void {\n\tconst currentModel = this.model;\n\tif (!currentModel) {\n\t\treturn;\n\t}\n\n\tconst refreshedModel = this._modelRuntime.getModel(currentModel.provider, currentModel.id);\n\tif (!refreshedModel || refreshedModel === currentModel) {\n\t\treturn;\n\t}\n\n\tconst previousModel = currentModel;\n\tconst previousThinkingLevel = this.thinkingLevel;\n\tthis.agent.state.model = refreshedModel;\n\tthis.setThinkingLevel(previousThinkingLevel);\n\tthis._refreshBaseSystemPromptFromActiveTools();\n\tthis._emit({ type: \"model_changed\", model: refreshedModel, previousModel, source: \"restore\" });\n}\n\nexport function _bindExtensionCore(\n\tthis: AgentSession,\n\trunner: ExtensionRunner,\n\tpublication?: ExtensionPublicationGate,\n): void {\n\tconst getCommands = (): SlashCommandInfo[] => {\n\t\tconst extensionCommands: SlashCommandInfo[] = runner.getRegisteredCommands().map((command) => ({\n\t\t\tname: command.invocationName,\n\t\t\tdescription: command.description,\n\t\t\tsource: \"extension\",\n\t\t\tsourceInfo: command.sourceInfo,\n\t\t}));\n\n\t\tconst templates: SlashCommandInfo[] = this.promptTemplates.map((template) => ({\n\t\t\tname: template.name,\n\t\t\tdescription: template.description,\n\t\t\tsource: \"prompt\",\n\t\t\tsourceInfo: template.sourceInfo,\n\t\t}));\n\n\t\tconst skills: SlashCommandInfo[] = getSkillCatalog(\n\t\t\tpublication?.resourceLoader ?? this._resourceLoader,\n\t\t).commands.map((command) => ({\n\t\t\tname: `skill:${command.name}`,\n\t\t\tdescription: command.description,\n\t\t\tsource: \"skill\",\n\t\t\tsourceInfo: command.sourceInfo,\n\t\t}));\n\n\t\treturn [...extensionCommands, ...templates, ...skills];\n\t};\n\n\trunner.bindCore(\n\t\t{\n\t\t\tsendMessage: (message, options) => {\n\t\t\t\tif (publication) {\n\t\t\t\t\tpublication.defer(() => this.sendCustomMessage(message, options));\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t}\n\t\t\t\tconst delivery = this.sendCustomMessage(message, options);\n\t\t\t\tvoid delivery.catch((err) => {\n\t\t\t\t\trunner.emitError({\n\t\t\t\t\t\textensionPath: \"<runtime>\",\n\t\t\t\t\t\tevent: \"send_message\",\n\t\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\treturn delivery;\n\t\t\t},\n\t\t\tsendMessages: (messages, options) => {\n\t\t\t\tif (publication) {\n\t\t\t\t\tpublication.defer(() => this.sendCustomMessages(messages, options));\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t}\n\t\t\t\tconst delivery = this.sendCustomMessages(messages, options);\n\t\t\t\tvoid delivery.catch((err) => {\n\t\t\t\t\trunner.emitError({\n\t\t\t\t\t\textensionPath: \"<runtime>\",\n\t\t\t\t\t\tevent: \"send_messages\",\n\t\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\treturn delivery;\n\t\t\t},\n\t\t\tsendUserMessage: (content, options) => {\n\t\t\t\tconst send = () =>\n\t\t\t\t\tthis.sendUserMessage(content, options).catch((err) => {\n\t\t\t\t\t\trunner.emitError({\n\t\t\t\t\t\t\textensionPath: \"<runtime>\",\n\t\t\t\t\t\t\tevent: \"send_user_message\",\n\t\t\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\tif (publication) publication.defer(send);\n\t\t\t\telse void send();\n\t\t\t},\n\t\t\tappendEntry: (customType, data) => {\n\t\t\t\tconst append = () => {\n\t\t\t\t\tconst id = this.sessionManager.appendCustomEntry(customType, data);\n\t\t\t\t\tconst entry = this.sessionManager.getEntry(id);\n\t\t\t\t\tif (entry) this._emit({ type: \"entry_appended\", entry });\n\t\t\t\t};\n\t\t\t\tif (publication) publication.defer(append);\n\t\t\t\telse append();\n\t\t\t},\n\t\t\tsetSessionName: (name) => {\n\t\t\t\tif (publication) publication.defer(() => this.setSessionName(name));\n\t\t\t\telse this.setSessionName(name);\n\t\t\t},\n\t\t\tgetSessionName: () => {\n\t\t\t\treturn this.sessionManager.getSessionName();\n\t\t\t},\n\t\t\tsetLabel: (entryId, label) => {\n\t\t\t\tif (publication) {\n\t\t\t\t\tpublication.defer(() => {\n\t\t\t\t\t\tthis.sessionManager.appendLabelChange(entryId, label);\n\t\t\t\t\t});\n\t\t\t\t} else this.sessionManager.appendLabelChange(entryId, label);\n\t\t\t},\n\t\t\tgetActiveTools: () => this.getActiveToolNames(),\n\t\t\tgetAllTools: () => this.getAllTools(),\n\t\t\tsetActiveTools: (toolNames) => {\n\t\t\t\tif (publication) publication.defer(() => this.setActiveToolsByName(toolNames));\n\t\t\t\telse this.setActiveToolsByName(toolNames);\n\t\t\t},\n\t\t\trefreshTools: () => {\n\t\t\t\tif (!publication) this._refreshToolRegistry();\n\t\t\t},\n\t\t\tgetCommands,\n\t\t\tsetModel: async (model) => {\n\t\t\t\tconst hasConfiguredAuth =\n\t\t\t\t\tpublication?.providerTransaction.hasConfiguredAuth(model.provider) ??\n\t\t\t\t\tthis.modelRuntime.hasConfiguredAuth(model.provider);\n\t\t\t\tif (!hasConfiguredAuth) return false;\n\t\t\t\tif (publication) publication.defer(() => this.setModel(model));\n\t\t\t\telse await this.setModel(model);\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tgetThinkingLevel: () => this.thinkingLevel,\n\t\t\tsetThinkingLevel: (level) => {\n\t\t\t\tif (publication) publication.defer(() => this.setThinkingLevel(level));\n\t\t\t\telse this.setThinkingLevel(level);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tgetModel: () => this.model,\n\t\t\t// Read through the public accessor, not `_scopedModels`: in the isolated\n\t\t\t// engine the host-side facade session has `scopedModels` redefined by\n\t\t\t// RemoteModelCatalog to the engine's catalogue, and the private field it\n\t\t\t// shadows is never refreshed.\n\t\t\tgetScopedModels: () => this.scopedModels,\n\t\t\tgetThinkingLevel: () => this.thinkingLevel,\n\t\t\tisIdle: () => !this.isStreaming,\n\t\t\tisProjectTrusted: () => this.settingsManager.isProjectTrusted(),\n\t\t\tgetSignal: () => this.agent.signal,\n\t\t\tabort: () => {\n\t\t\t\tif (publication) publication.defer(() => this.abort());\n\t\t\t\telse this.abort();\n\t\t\t},\n\t\t\thasPendingMessages: () => this.pendingMessageCount > 0,\n\t\t\tshutdown: () => {\n\t\t\t\tif (publication) publication.defer(() => this._extensionShutdownHandler?.());\n\t\t\t\telse this._extensionShutdownHandler?.();\n\t\t\t},\n\t\t\tgetContextUsage: () => this.getContextUsage(),\n\t\t\tcompact: (options) => {\n\t\t\t\tconst compact = async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst result = await this.compact({\n\t\t\t\t\t\t\t...(options?.compression_ratio === undefined\n\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t: { compression_ratio: options.compression_ratio }),\n\t\t\t\t\t\t\t...(options?.preserve_recent === undefined ? {} : { preserve_recent: options.preserve_recent }),\n\t\t\t\t\t\t\t...(options?.query === undefined ? {} : { query: options.query }),\n\t\t\t\t\t\t});\n\t\t\t\t\t\toptions?.onComplete?.(result);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconst err = error instanceof Error ? error : new Error(String(error));\n\t\t\t\t\t\toptions?.onError?.(err);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tif (publication) publication.defer(compact);\n\t\t\t\telse void compact();\n\t\t\t},\n\t\t\tgetSystemPrompt: () => this.systemPrompt,\n\t\t\tgetSkillCatalog: () => getSkillCatalog(publication?.resourceLoader ?? this._resourceLoader),\n\t\t\tgetSystemPromptOptions: () => this._baseSystemPromptOptions,\n\t\t},\n\t\t{\n\t\t\tregisterProvider: (providerOrName, config) => {\n\t\t\t\tconst providerId = typeof providerOrName === \"string\" ? providerOrName : providerOrName.id;\n\t\t\t\tif (publication) {\n\t\t\t\t\tpublication.providerIds.add(providerId);\n\t\t\t\t\tif (typeof providerOrName === \"string\") {\n\t\t\t\t\t\tpublication.providerTransaction.registerProvider(providerOrName, config!);\n\t\t\t\t\t} else publication.providerTransaction.registerNativeProvider(providerOrName);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._extensionProviderIds.add(providerId);\n\t\t\t\tthis._resourceLoader.getExtensions().runtime.extensionProviderIds.add(providerId);\n\t\t\t\tif (typeof providerOrName === \"string\") this._modelRuntime.registerProvider(providerOrName, config!);\n\t\t\t\telse this._modelRuntime.registerNativeProvider(providerOrName);\n\t\t\t\tthis.refreshCurrentModelFromRegistry();\n\t\t\t},\n\t\t\tunregisterProvider: (name) => {\n\t\t\t\tif (publication) {\n\t\t\t\t\tpublication.providerIds.delete(name);\n\t\t\t\t\tpublication.providerTransaction.unregisterProvider(name);\n\t\t\t\t} else {\n\t\t\t\t\tthis._extensionProviderIds.delete(name);\n\t\t\t\t\tthis._resourceLoader.getExtensions().runtime.extensionProviderIds.delete(name);\n\t\t\t\t\tthis._modelRuntime.unregisterProvider(name);\n\t\t\t\t\tthis.refreshCurrentModelFromRegistry();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t);\n}\n\nexport async function reload(this: AgentSession, options?: AgentSessionReloadOptions): Promise<void> {\n\tconst reason = options?.reason ?? \"reload\";\n\tconst oldRunner = this._extensionRunner;\n\tconst previousFlagValues = oldRunner.getExplicitFlagValues();\n\tconst activeToolNames = this.getActiveToolNames();\n\tconst prepareResourceReload = this._resourceLoader.prepareReload?.bind(this._resourceLoader);\n\tif (prepareResourceReload === undefined || this._resourceLoader.supportsTransactionalReload?.() === false) {\n\t\tif (options?.failOnExtensionErrors) {\n\t\t\tthrow new Error(\"Strict extension reload requires a transactional resource loader\");\n\t\t}\n\t\tif (reason === \"reload\")\n\t\t\tawait emitSessionShutdownEvent(oldRunner, { type: \"session_shutdown\", reason: \"reload\" });\n\t\toldRunner.invalidate();\n\t\tawait this.settingsManager.reload();\n\t\tresetApiProviders();\n\t\tawait this._resourceLoader.reload();\n\t\tthis._buildRuntime({ activeToolNames, flagValues: previousFlagValues, includeAllExtensionTools: true });\n\t\tawait options?.beforeSessionStart?.();\n\t\tconst hasBindings =\n\t\t\tthis._extensionUIContext ||\n\t\t\tthis._extensionCommandContextActions ||\n\t\t\tthis._extensionShutdownHandler ||\n\t\t\tthis._extensionErrorListener;\n\t\tif (hasBindings) {\n\t\t\tawait this._extensionRunner.emit({ type: \"session_start\", reason });\n\t\t\tawait this.extendResourcesFromExtensions(reason);\n\t\t}\n\t\treturn;\n\t}\n\n\tconst settingsTransaction = await this.settingsManager.prepareReload();\n\tconst resourceTransaction = await prepareResourceReload(settingsTransaction.settingsManager);\n\tconst errors = resourceTransaction.loader.getExtensions().errors;\n\tif (options?.failOnExtensionErrors && errors.length > 0) {\n\t\tthrow new Error(`Failed to load extensions: ${errors.map(({ path, error }) => `${path}: ${error}`).join(\"; \")}`);\n\t}\n\tconst extensionsResult = resourceTransaction.loader.getExtensions();\n\tfor (const [name, value] of previousFlagValues) {\n\t\textensionsResult.runtime.flagValues.set(name, value);\n\t\textensionsResult.runtime.explicitFlagNames ??= new Set();\n\t\textensionsResult.runtime.explicitFlagNames.add(name);\n\t}\n\tconst candidateRunner = new ExtensionRunner(\n\t\textensionsResult.extensions,\n\t\textensionsResult.runtime,\n\t\tthis._cwd,\n\t\tthis.sessionManager,\n\t\tnew ModelRegistry(this._modelRuntime),\n\t\tthis._orchestrationContext,\n\t\tthis._subagentPolicy,\n\t);\n\tconst publication = new ExtensionPublicationGate(\n\t\tresourceTransaction.loader,\n\t\tcandidateRunner,\n\t\tthis._modelRuntime,\n\t\tthis._extensionProviderIds,\n\t);\n\tlet commitPreparedResources: (() => void) | undefined;\n\tlet rollbackPreparedResources: (() => void) | undefined;\n\ttry {\n\t\tthis._bindExtensionCore(candidateRunner, publication);\n\t\tcandidateRunner.setUIContext(this._extensionUIContext, this._extensionMode);\n\t\tcandidateRunner.bindCommandContext(this._extensionCommandContextActions);\n\t\tawait options?.beforeSessionStart?.();\n\t\tconst hasBindings =\n\t\t\tthis._extensionUIContext ||\n\t\t\tthis._extensionCommandContextActions ||\n\t\t\tthis._extensionShutdownHandler ||\n\t\t\tthis._extensionErrorListener;\n\t\tif (hasBindings) {\n\t\t\tawait candidateRunner.emit({ type: \"session_start\", reason });\n\t\t\tawait extendRunnerResources(this, candidateRunner, resourceTransaction.loader, reason);\n\t\t}\n\t\tconst preparedResources = resourceTransaction.prepareCommit?.();\n\t\tif (preparedResources) {\n\t\t\tcommitPreparedResources = () => preparedResources.commit();\n\t\t\trollbackPreparedResources = () => preparedResources.rollback();\n\t\t}\n\t\tawait publication.publishProviders();\n\t} catch (error) {\n\t\trollbackPreparedResources?.();\n\t\tpublication.discard();\n\t\tcandidateRunner.invalidate();\n\t\tthrow error;\n\t}\n\n\tsettingsTransaction.commit();\n\tresourceTransaction.activate(this.settingsManager);\n\tif (commitPreparedResources) commitPreparedResources();\n\telse resourceTransaction.commit();\n\tresetApiProviders();\n\tthis._extensionProviderIds = new Set(publication.providerIds);\n\textensionsResult.runtime.extensionProviderIds = new Set(publication.providerIds);\n\tthis.refreshCurrentModelFromRegistry();\n\tthis._buildRuntime({ activeToolNames, flagValues: previousFlagValues, includeAllExtensionTools: true });\n\tif (reason === \"reload\") await emitSessionShutdownEvent(oldRunner, { type: \"session_shutdown\", reason: \"reload\" });\n\toldRunner.invalidate();\n\tawait publication.release();\n}\n\n// =========================================================================\n// Auto-Retry\n// =========================================================================\n\n/**\n * Check if an error is retryable (overloaded, rate limit, server errors).\n * Context overflow errors are NOT retryable (handled by compaction instead).\n */\n\nexport const agentSessionExtensionBindingsMethods = {\n\tbindExtensions,\n\textendResourcesFromExtensions,\n\tbuildExtensionResourcePaths,\n\tgetExtensionSourceLabel,\n\t_applyExtensionBindings,\n\trefreshCurrentModelFromRegistry,\n\t_refreshCurrentModelFromRegistry,\n\t_bindExtensionCore,\n\treload,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"agent-session-extension-bindings.js","sourceRoot":"","sources":["../../src/core/agent-session-extension-bindings.ts"],"names":[],"mappings":"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","sourcesContent":["import { basename, dirname } from \"node:path\";\nimport { resetApiProviders } from \"@bastani/pi-ai/compat\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport { recoverProtectedStreamingCustomMessages } from \"./agent-session-persistent-custom-messages.ts\";\nimport type { AgentSessionReloadOptions, ExtensionBindings } from \"./agent-session-types.ts\";\nimport { ExtensionRunner } from \"./extensions/index.js\";\nimport { emitSessionShutdownEvent } from \"./extensions/runner.ts\";\nimport { bindExtensionContextPublication } from \"./extensions/runner-context.ts\";\nimport { ModelRegistry } from \"./model-registry.ts\";\nimport type { ExtensionProviderTransaction, ModelRuntime } from \"./model-runtime.js\";\nimport type { PathMetadata } from \"./package-manager.ts\";\nimport type { ResourceExtensionPaths, ResourceLoader } from \"./resource-loader.ts\";\nimport { getSkillCatalog } from \"./skill-catalog.ts\";\nimport type { SlashCommandInfo } from \"./slash-commands.js\";\n\nclass ExtensionPublicationGate {\n\treadonly resourceLoader: ResourceLoader;\n\tprivate readonly effects: Array<() => void | Promise<void>> = [];\n\tprivate readonly startEffects: Array<() => void | Promise<void>> = [];\n\treadonly providerTransaction: ExtensionProviderTransaction;\n\treadonly providerIds = new Set<string>();\n\tprivate readonly runner: ExtensionRunner;\n\tprivate discarded = false;\n\n\tconstructor(\n\t\tresourceLoader: ResourceLoader,\n\t\trunner: ExtensionRunner,\n\t\tmodelRuntime: ModelRuntime,\n\t\treplacedProviderIds: Iterable<string>,\n\t) {\n\t\tthis.resourceLoader = resourceLoader;\n\t\tthis.runner = runner;\n\t\tthis.providerTransaction = modelRuntime.createExtensionProviderTransaction(replacedProviderIds);\n\t}\n\n\tdefer(effect: () => void | Promise<void>): void {\n\t\tif (!this.discarded) this.effects.push(effect);\n\t}\n\n\tstageStart(effect: () => void | Promise<void>): void {\n\t\tif (!this.discarded) this.startEffects.push(effect);\n\t}\n\n\tasync activateStarts(): Promise<void> {\n\t\tawait this.publish(this.startEffects);\n\t}\n\n\tasync publishProviders(): Promise<void> {\n\t\tawait this.providerTransaction.commit();\n\t}\n\n\tdiscard(): void {\n\t\tthis.discarded = true;\n\t\tthis.effects.length = 0;\n\t\tthis.startEffects.length = 0;\n\t}\n\n\tasync release(): Promise<void> {\n\t\tawait this.publish(this.effects);\n\t}\n\n\tprivate async publish(effects: Array<() => void | Promise<void>>): Promise<void> {\n\t\tfor (const effect of effects.splice(0)) {\n\t\t\ttry {\n\t\t\t\tawait effect();\n\t\t\t} catch (error) {\n\t\t\t\tthis.report(error, \"session_start\");\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate report(error: unknown, event: string): void {\n\t\tthis.runner.emitError({\n\t\t\textensionPath: \"<runtime>\",\n\t\t\tevent,\n\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t});\n\t}\n}\n\nfunction buildExtensionResourcePathsForLoader(\n\tsession: AgentSession,\n\tloader: ResourceLoader,\n\tentries: Array<{ path: string; extensionPath: string }>,\n): Array<{ path: string; metadata: PathMetadata }> {\n\treturn entries.map((entry) => {\n\t\tconst extension = loader\n\t\t\t.getExtensions()\n\t\t\t.extensions.find(\n\t\t\t\t(candidate) =>\n\t\t\t\t\tcandidate.path === entry.extensionPath ||\n\t\t\t\t\tcandidate.resolvedPath === entry.extensionPath ||\n\t\t\t\t\tcandidate.sourceInfo.path === entry.extensionPath,\n\t\t\t);\n\t\tconst sourceInfo = extension?.sourceInfo;\n\t\treturn {\n\t\t\tpath: entry.path,\n\t\t\tmetadata: {\n\t\t\t\tsource: sourceInfo?.source ?? session.getExtensionSourceLabel(entry.extensionPath),\n\t\t\t\tscope: sourceInfo?.scope ?? \"temporary\",\n\t\t\t\torigin: sourceInfo?.origin ?? \"top-level\",\n\t\t\t\tbaseDir:\n\t\t\t\t\tsourceInfo?.baseDir ?? (entry.extensionPath.startsWith(\"<\") ? undefined : dirname(entry.extensionPath)),\n\t\t\t\tconfigurationOrigin: sourceInfo?.configurationOrigin,\n\t\t\t},\n\t\t};\n\t});\n}\n\nasync function extendRunnerResources(\n\tsession: AgentSession,\n\trunner: ExtensionRunner,\n\tloader: ResourceLoader,\n\treason: \"startup\" | \"reload\",\n): Promise<void> {\n\tif (!runner.hasHandlers(\"resources_discover\")) return;\n\tconst { skillPaths, promptPaths, themePaths } = await runner.emitResourcesDiscover(session._cwd, reason);\n\tif (skillPaths.length === 0 && promptPaths.length === 0 && themePaths.length === 0) return;\n\tconst extensionPaths: ResourceExtensionPaths = {\n\t\tskillPaths: buildExtensionResourcePathsForLoader(session, loader, skillPaths),\n\t\tpromptPaths: buildExtensionResourcePathsForLoader(session, loader, promptPaths),\n\t\tthemePaths: buildExtensionResourcePathsForLoader(session, loader, themePaths),\n\t};\n\tawait loader.extendResources(extensionPaths);\n}\n\nexport async function bindExtensions(this: AgentSession, bindings: ExtensionBindings): Promise<void> {\n\tif (bindings.uiContext !== undefined) {\n\t\tthis._extensionUIContext = bindings.uiContext;\n\t}\n\tif (bindings.mode !== undefined) {\n\t\tthis._extensionMode = bindings.mode;\n\t}\n\tif (bindings.commandContextActions !== undefined) {\n\t\tthis._extensionCommandContextActions = bindings.commandContextActions;\n\t}\n\tif (bindings.shutdownHandler !== undefined) {\n\t\tthis._extensionShutdownHandler = bindings.shutdownHandler;\n\t}\n\tif (bindings.onError !== undefined) {\n\t\tthis._extensionErrorListener = bindings.onError;\n\t}\n\n\tthis._applyExtensionBindings(this._extensionRunner);\n\tawait this._extensionRunner.emit(this._sessionStartEvent);\n\tawait this.extendResourcesFromExtensions(this._sessionStartEvent.reason === \"reload\" ? \"reload\" : \"startup\");\n\tif (recoverProtectedStreamingCustomMessages(this) > 0) {\n\t\tawait this._continueQueuedAgentMessages();\n\t}\n}\n\nexport async function extendResourcesFromExtensions(this: AgentSession, reason: \"startup\" | \"reload\"): Promise<void> {\n\tawait extendRunnerResources(this, this._extensionRunner, this._resourceLoader, reason);\n\tthis._baseSystemPrompt = this._rebuildSystemPrompt(this.getActiveToolNames());\n\tthis.agent.state.systemPrompt = this._systemPromptOverride ?? this._baseSystemPrompt;\n}\n\nexport function buildExtensionResourcePaths(\n\tthis: AgentSession,\n\tentries: Array<{ path: string; extensionPath: string }>,\n): Array<{\n\tpath: string;\n\tmetadata: PathMetadata;\n}> {\n\treturn buildExtensionResourcePathsForLoader(this, this._resourceLoader, entries);\n}\n\nexport function getExtensionSourceLabel(this: AgentSession, extensionPath: string): string {\n\tif (extensionPath.startsWith(\"<\")) {\n\t\treturn `extension:${extensionPath.replace(/[<>]/g, \"\")}`;\n\t}\n\tconst base = basename(extensionPath);\n\tconst name = base.replace(/\\.(ts|js)$/, \"\");\n\treturn `extension:${name}`;\n}\n\nexport function _applyExtensionBindings(this: AgentSession, runner: ExtensionRunner): void {\n\trunner.setUIContext(this._extensionUIContext, this._extensionMode);\n\trunner.bindCommandContext(this._extensionCommandContextActions);\n\n\tthis._extensionErrorUnsubscriber?.();\n\tthis._extensionErrorUnsubscriber = this._extensionErrorListener\n\t\t? runner.onError(this._extensionErrorListener)\n\t\t: undefined;\n}\n\nexport function refreshCurrentModelFromRegistry(this: AgentSession): void {\n\tthis._refreshCurrentModelFromRegistry();\n}\n\nexport function _refreshCurrentModelFromRegistry(this: AgentSession): void {\n\tconst currentModel = this.model;\n\tif (!currentModel) {\n\t\treturn;\n\t}\n\n\tconst refreshedModel = this._modelRuntime.getModel(currentModel.provider, currentModel.id);\n\tif (!refreshedModel || refreshedModel === currentModel) {\n\t\treturn;\n\t}\n\n\tconst previousModel = currentModel;\n\tconst previousThinkingLevel = this.thinkingLevel;\n\tthis.agent.state.model = refreshedModel;\n\tthis.setThinkingLevel(previousThinkingLevel);\n\tthis._refreshBaseSystemPromptFromActiveTools();\n\tthis._emit({ type: \"model_changed\", model: refreshedModel, previousModel, source: \"restore\" });\n}\n\nexport function _bindExtensionCore(\n\tthis: AgentSession,\n\trunner: ExtensionRunner,\n\tpublication?: ExtensionPublicationGate,\n): void {\n\tbindExtensionContextPublication(runner.createContext(), publication && ((effect) => publication.stageStart(effect)));\n\trunner.bindTaskHost(() => this.getAgentTaskHost());\n\tconst getCommands = (): SlashCommandInfo[] => {\n\t\tconst extensionCommands: SlashCommandInfo[] = runner.getRegisteredCommands().map((command) => ({\n\t\t\tname: command.invocationName,\n\t\t\tdescription: command.description,\n\t\t\tsource: \"extension\",\n\t\t\tsourceInfo: command.sourceInfo,\n\t\t}));\n\n\t\tconst templates: SlashCommandInfo[] = this.promptTemplates.map((template) => ({\n\t\t\tname: template.name,\n\t\t\tdescription: template.description,\n\t\t\tsource: \"prompt\",\n\t\t\tsourceInfo: template.sourceInfo,\n\t\t}));\n\n\t\tconst skills: SlashCommandInfo[] = getSkillCatalog(\n\t\t\tpublication?.resourceLoader ?? this._resourceLoader,\n\t\t).commands.map((command) => ({\n\t\t\tname: `skill:${command.name}`,\n\t\t\tdescription: command.description,\n\t\t\tsource: \"skill\",\n\t\t\tsourceInfo: command.sourceInfo,\n\t\t}));\n\n\t\treturn [...extensionCommands, ...templates, ...skills];\n\t};\n\n\trunner.bindCore(\n\t\t{\n\t\t\tsendMessage: (message, options) => {\n\t\t\t\tif (publication) {\n\t\t\t\t\tpublication.defer(() => this.sendCustomMessage(message, options));\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t}\n\t\t\t\tconst delivery = this.sendCustomMessage(message, options);\n\t\t\t\tvoid delivery.catch((err) => {\n\t\t\t\t\trunner.emitError({\n\t\t\t\t\t\textensionPath: \"<runtime>\",\n\t\t\t\t\t\tevent: \"send_message\",\n\t\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\treturn delivery;\n\t\t\t},\n\t\t\tsendMessages: (messages, options) => {\n\t\t\t\tif (publication) {\n\t\t\t\t\tpublication.defer(() => this.sendCustomMessages(messages, options));\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t}\n\t\t\t\tconst delivery = this.sendCustomMessages(messages, options);\n\t\t\t\tvoid delivery.catch((err) => {\n\t\t\t\t\trunner.emitError({\n\t\t\t\t\t\textensionPath: \"<runtime>\",\n\t\t\t\t\t\tevent: \"send_messages\",\n\t\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\treturn delivery;\n\t\t\t},\n\t\t\tsendUserMessage: (content, options) => {\n\t\t\t\tconst send = () =>\n\t\t\t\t\tthis.sendUserMessage(content, options).catch((err) => {\n\t\t\t\t\t\trunner.emitError({\n\t\t\t\t\t\t\textensionPath: \"<runtime>\",\n\t\t\t\t\t\t\tevent: \"send_user_message\",\n\t\t\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\tif (publication) publication.defer(send);\n\t\t\t\telse void send();\n\t\t\t},\n\t\t\tappendEntry: (customType, data) => {\n\t\t\t\tconst append = () => {\n\t\t\t\t\tconst id = this.sessionManager.appendCustomEntry(customType, data);\n\t\t\t\t\tconst entry = this.sessionManager.getEntry(id);\n\t\t\t\t\tif (entry) this._emit({ type: \"entry_appended\", entry });\n\t\t\t\t};\n\t\t\t\tif (publication) publication.defer(append);\n\t\t\t\telse append();\n\t\t\t},\n\t\t\tsetSessionName: (name) => {\n\t\t\t\tif (publication) publication.defer(() => this.setSessionName(name));\n\t\t\t\telse this.setSessionName(name);\n\t\t\t},\n\t\t\tgetSessionName: () => {\n\t\t\t\treturn this.sessionManager.getSessionName();\n\t\t\t},\n\t\t\tsetLabel: (entryId, label) => {\n\t\t\t\tif (publication) {\n\t\t\t\t\tpublication.defer(() => {\n\t\t\t\t\t\tthis.sessionManager.appendLabelChange(entryId, label);\n\t\t\t\t\t});\n\t\t\t\t} else this.sessionManager.appendLabelChange(entryId, label);\n\t\t\t},\n\t\t\tgetActiveTools: () => this.getActiveToolNames(),\n\t\t\tgetAllTools: () => this.getAllTools(),\n\t\t\tsetActiveTools: (toolNames) => {\n\t\t\t\tif (publication) publication.defer(() => this.setActiveToolsByName(toolNames));\n\t\t\t\telse this.setActiveToolsByName(toolNames);\n\t\t\t},\n\t\t\trefreshTools: () => {\n\t\t\t\tif (!publication) this._refreshToolRegistry();\n\t\t\t},\n\t\t\tgetCommands,\n\t\t\tsetModel: async (model) => {\n\t\t\t\tconst hasConfiguredAuth =\n\t\t\t\t\tpublication?.providerTransaction.hasConfiguredAuth(model.provider) ??\n\t\t\t\t\tthis.modelRuntime.hasConfiguredAuth(model.provider);\n\t\t\t\tif (!hasConfiguredAuth) return false;\n\t\t\t\tif (publication) publication.defer(() => this.setModel(model));\n\t\t\t\telse await this.setModel(model);\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tgetThinkingLevel: () => this.thinkingLevel,\n\t\t\tsetThinkingLevel: (level) => {\n\t\t\t\tif (publication) publication.defer(() => this.setThinkingLevel(level));\n\t\t\t\telse this.setThinkingLevel(level);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tgetModel: () => this.model,\n\t\t\t// Read through the public accessor, not `_scopedModels`: in the isolated\n\t\t\t// engine the host-side facade session has `scopedModels` redefined by\n\t\t\t// RemoteModelCatalog to the engine's catalogue, and the private field it\n\t\t\t// shadows is never refreshed.\n\t\t\tgetScopedModels: () => this.scopedModels,\n\t\t\tgetThinkingLevel: () => this.thinkingLevel,\n\t\t\tisIdle: () => !this.isStreaming,\n\t\t\tisProjectTrusted: () => this.settingsManager.isProjectTrusted(),\n\t\t\tgetSignal: () => this.agent.signal,\n\t\t\tabort: () => {\n\t\t\t\tif (publication) publication.defer(() => this.abort());\n\t\t\t\telse this.abort();\n\t\t\t},\n\t\t\thasPendingMessages: () => this.pendingMessageCount > 0,\n\t\t\tshutdown: () => {\n\t\t\t\tif (publication) publication.defer(() => this._extensionShutdownHandler?.());\n\t\t\t\telse this._extensionShutdownHandler?.();\n\t\t\t},\n\t\t\tgetContextUsage: () => this.getContextUsage(),\n\t\t\tcompact: (options) => {\n\t\t\t\tconst compact = async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst result = await this.compact({\n\t\t\t\t\t\t\t...(options?.compression_ratio === undefined\n\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t: { compression_ratio: options.compression_ratio }),\n\t\t\t\t\t\t\t...(options?.preserve_recent === undefined ? {} : { preserve_recent: options.preserve_recent }),\n\t\t\t\t\t\t\t...(options?.query === undefined ? {} : { query: options.query }),\n\t\t\t\t\t\t});\n\t\t\t\t\t\toptions?.onComplete?.(result);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconst err = error instanceof Error ? error : new Error(String(error));\n\t\t\t\t\t\toptions?.onError?.(err);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tif (publication) publication.defer(compact);\n\t\t\t\telse void compact();\n\t\t\t},\n\t\t\tgetSystemPrompt: () => this.systemPrompt,\n\t\t\tgetSkillCatalog: () => getSkillCatalog(publication?.resourceLoader ?? this._resourceLoader),\n\t\t\tgetSystemPromptOptions: () => this._baseSystemPromptOptions,\n\t\t},\n\t\t{\n\t\t\tregisterProvider: (providerOrName, config) => {\n\t\t\t\tconst providerId = typeof providerOrName === \"string\" ? providerOrName : providerOrName.id;\n\t\t\t\tif (publication) {\n\t\t\t\t\tpublication.providerIds.add(providerId);\n\t\t\t\t\tif (typeof providerOrName === \"string\") {\n\t\t\t\t\t\tpublication.providerTransaction.registerProvider(providerOrName, config!);\n\t\t\t\t\t} else publication.providerTransaction.registerNativeProvider(providerOrName);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._extensionProviderIds.add(providerId);\n\t\t\t\tthis._resourceLoader.getExtensions().runtime.extensionProviderIds.add(providerId);\n\t\t\t\tif (typeof providerOrName === \"string\") this._modelRuntime.registerProvider(providerOrName, config!);\n\t\t\t\telse this._modelRuntime.registerNativeProvider(providerOrName);\n\t\t\t\tthis.refreshCurrentModelFromRegistry();\n\t\t\t},\n\t\t\tunregisterProvider: (name) => {\n\t\t\t\tif (publication) {\n\t\t\t\t\tpublication.providerIds.delete(name);\n\t\t\t\t\tpublication.providerTransaction.unregisterProvider(name);\n\t\t\t\t} else {\n\t\t\t\t\tthis._extensionProviderIds.delete(name);\n\t\t\t\t\tthis._resourceLoader.getExtensions().runtime.extensionProviderIds.delete(name);\n\t\t\t\t\tthis._modelRuntime.unregisterProvider(name);\n\t\t\t\t\tthis.refreshCurrentModelFromRegistry();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t);\n}\n\nexport async function reload(this: AgentSession, options?: AgentSessionReloadOptions): Promise<void> {\n\tconst reason = options?.reason ?? \"reload\";\n\tconst oldRunner = this._extensionRunner;\n\tconst previousFlagValues = oldRunner.getExplicitFlagValues();\n\tconst activeToolNames = this.getActiveToolNames();\n\tconst prepareResourceReload = this._resourceLoader.prepareReload?.bind(this._resourceLoader);\n\tif (prepareResourceReload === undefined || this._resourceLoader.supportsTransactionalReload?.() === false) {\n\t\tif (options?.failOnExtensionErrors) {\n\t\t\tthrow new Error(\"Strict extension reload requires a transactional resource loader\");\n\t\t}\n\t\tif (reason === \"reload\")\n\t\t\tawait emitSessionShutdownEvent(oldRunner, { type: \"session_shutdown\", reason: \"reload\" });\n\t\toldRunner.invalidate();\n\t\tawait this.settingsManager.reload();\n\t\tresetApiProviders();\n\t\tawait this._resourceLoader.reload();\n\t\tthis._buildRuntime({ activeToolNames, flagValues: previousFlagValues, includeAllExtensionTools: true });\n\t\tawait options?.beforeSessionStart?.();\n\t\tconst hasBindings =\n\t\t\tthis._extensionUIContext ||\n\t\t\tthis._extensionCommandContextActions ||\n\t\t\tthis._extensionShutdownHandler ||\n\t\t\tthis._extensionErrorListener;\n\t\tif (hasBindings) {\n\t\t\tawait this._extensionRunner.emit({ type: \"session_start\", reason });\n\t\t\tawait this.extendResourcesFromExtensions(reason);\n\t\t}\n\t\treturn;\n\t}\n\n\tconst settingsTransaction = await this.settingsManager.prepareReload();\n\tconst resourceTransaction = await prepareResourceReload(settingsTransaction.settingsManager);\n\tconst errors = resourceTransaction.loader.getExtensions().errors;\n\tif (options?.failOnExtensionErrors && errors.length > 0) {\n\t\tthrow new Error(`Failed to load extensions: ${errors.map(({ path, error }) => `${path}: ${error}`).join(\"; \")}`);\n\t}\n\tconst extensionsResult = resourceTransaction.loader.getExtensions();\n\tfor (const [name, value] of previousFlagValues) {\n\t\textensionsResult.runtime.flagValues.set(name, value);\n\t\textensionsResult.runtime.explicitFlagNames ??= new Set();\n\t\textensionsResult.runtime.explicitFlagNames.add(name);\n\t}\n\tconst candidateRunner = new ExtensionRunner(\n\t\textensionsResult.extensions,\n\t\textensionsResult.runtime,\n\t\tthis._cwd,\n\t\tthis.sessionManager,\n\t\tnew ModelRegistry(this._modelRuntime),\n\t\tthis._orchestrationContext,\n\t\tthis._subagentPolicy,\n\t);\n\tconst publication = new ExtensionPublicationGate(\n\t\tresourceTransaction.loader,\n\t\tcandidateRunner,\n\t\tthis._modelRuntime,\n\t\tthis._extensionProviderIds,\n\t);\n\tlet commitPreparedResources: (() => void) | undefined;\n\tlet rollbackPreparedResources: (() => void) | undefined;\n\ttry {\n\t\tthis._bindExtensionCore(candidateRunner, publication);\n\t\tcandidateRunner.setUIContext(this._extensionUIContext, this._extensionMode);\n\t\tcandidateRunner.bindCommandContext(this._extensionCommandContextActions);\n\t\tawait options?.beforeSessionStart?.();\n\t\tconst hasBindings =\n\t\t\tthis._extensionUIContext ||\n\t\t\tthis._extensionCommandContextActions ||\n\t\t\tthis._extensionShutdownHandler ||\n\t\t\tthis._extensionErrorListener;\n\t\tif (hasBindings) {\n\t\t\tawait candidateRunner.emit({ type: \"session_start\", reason });\n\t\t\tawait extendRunnerResources(this, candidateRunner, resourceTransaction.loader, reason);\n\t\t}\n\t\tconst preparedResources = resourceTransaction.prepareCommit?.();\n\t\tif (preparedResources) {\n\t\t\tcommitPreparedResources = () => preparedResources.commit();\n\t\t\trollbackPreparedResources = () => preparedResources.rollback();\n\t\t}\n\t\tawait publication.publishProviders();\n\t} catch (error) {\n\t\trollbackPreparedResources?.();\n\t\tpublication.discard();\n\t\tcandidateRunner.invalidate();\n\t\tthrow error;\n\t}\n\n\tsettingsTransaction.commit();\n\tresourceTransaction.activate(this.settingsManager);\n\tif (commitPreparedResources) commitPreparedResources();\n\telse resourceTransaction.commit();\n\tresetApiProviders();\n\tthis._extensionProviderIds = new Set(publication.providerIds);\n\textensionsResult.runtime.extensionProviderIds = new Set(publication.providerIds);\n\tthis.refreshCurrentModelFromRegistry();\n\t// Keep the runner that received session_start: its resource leases belong to it,\n\t// not to a third runner recreated at commit without a matching start event.\n\tthis._extensionRunner = candidateRunner;\n\tif (this._extensionRunnerRef) this._extensionRunnerRef.current = candidateRunner;\n\tthis._bindExtensionCore(candidateRunner);\n\tthis._applyExtensionBindings(candidateRunner);\n\tthis._buildRuntime({\n\t\tactiveToolNames,\n\t\tflagValues: previousFlagValues,\n\t\tincludeAllExtensionTools: true,\n\t\tpreserveRunner: true,\n\t});\n\t// Publish reporter claims only after fallible preparation, before old shutdown or queued user effects.\n\tawait publication.activateStarts();\n\tif (reason === \"reload\") await emitSessionShutdownEvent(oldRunner, { type: \"session_shutdown\", reason: \"reload\" });\n\toldRunner.invalidate();\n\tawait publication.release();\n}\n\n/** Publish approved startup resources without replacing the session or restarting safe reporters. */\nexport async function completeStartupResources(this: AgentSession, resourceLoader: ResourceLoader): Promise<void> {\n\tthis._resourceLoader = resourceLoader;\n\tconst startNewcomers = this._extensionRunner.attachStartupExtensions(resourceLoader.getExtensions().extensions);\n\tthis._buildRuntime({\n\t\tactiveToolNames: this.getActiveToolNames(),\n\t\tincludeAllExtensionTools: true,\n\t\tpreserveRunner: true,\n\t});\n\tthis.refreshCurrentModelFromRegistry();\n\tawait startNewcomers();\n\tawait this.extendResourcesFromExtensions(\"startup\");\n}\n\n// =========================================================================\n// Auto-Retry\n// =========================================================================\n\n/**\n * Check if an error is retryable (overloaded, rate limit, server errors).\n * Context overflow errors are NOT retryable (handled by compaction instead).\n */\n\nexport const agentSessionExtensionBindingsMethods = {\n\tbindExtensions,\n\tcompleteStartupResources,\n\textendResourcesFromExtensions,\n\tbuildExtensionResourcePaths,\n\tgetExtensionSourceLabel,\n\t_applyExtensionBindings,\n\trefreshCurrentModelFromRegistry,\n\t_refreshCurrentModelFromRegistry,\n\t_bindExtensionCore,\n\treload,\n};\n"]}
|
|
@@ -4,7 +4,7 @@ import type { AgentSessionInternalSurface as AgentSession } from "./agent-sessio
|
|
|
4
4
|
import { abort, pauseQueuedMessages, resumeQueuedMessages } from "./agent-session-queue-pause.ts";
|
|
5
5
|
import { transferWorkflowStageDeliveriesTo } from "./agent-session-transfer.ts";
|
|
6
6
|
import { type ClearQueueOptions, type DrainedAgentQueues, type InterruptQueueHold } from "./agent-session-types.ts";
|
|
7
|
-
import type { SendMessageOptions, SendMessagesOptions } from "./extensions/index.
|
|
7
|
+
import type { SendMessageOptions, SendMessagesOptions } from "./extensions/index.js";
|
|
8
8
|
import type { CustomMessage } from "./messages.ts";
|
|
9
9
|
export { transferWorkflowStageDeliveriesTo };
|
|
10
10
|
export declare function _queueSteer(this: AgentSession, text: string, images?: ImageContent[]): Promise<void>;
|
|
@@ -42,7 +42,7 @@ export declare function _enqueueInterruptCustomMessage<T>(this: AgentSession, me
|
|
|
42
42
|
export declare function _sendInterruptCustomMessageNow<T>(this: AgentSession, message: CustomMessage<T>, options?: SendMessageOptions): Promise<void>;
|
|
43
43
|
export declare function _ensureActiveInterruptQueueHold(this: AgentSession): InterruptQueueHold;
|
|
44
44
|
export declare function _restoreAndClearActiveInterruptQueueHold(this: AgentSession): void;
|
|
45
|
-
export declare function _queueAgentMessage(this: AgentSession, message: AgentMessage, delivery: "steer" | "followUp"): void;
|
|
45
|
+
export declare function _queueAgentMessage(this: AgentSession, message: AgentMessage, delivery: "steer" | "followUp" | "interrupt"): void;
|
|
46
46
|
export declare function _drainQueuedAgentMessages(this: AgentSession): DrainedAgentQueues;
|
|
47
47
|
export declare function _restoreQueuedAgentMessages(this: AgentSession, queues: DrainedAgentQueues): void;
|
|
48
48
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-session-message-queue.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-message-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGlE,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK9F,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAEN,KAAK,iBAAiB,EAEtB,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"agent-session-message-queue.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-message-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { forwardedMessageOptions, resolveWorkflowStageDeliveryTarget } from "./a
|
|
|
3
3
|
import { isProtectedStreamingCustomMessage, restoreProtectedStreamingCustomMessages, } from "./agent-session-persistent-custom-messages.js";
|
|
4
4
|
import { abort, pauseQueuedMessages, resumeQueuedMessages } from "./agent-session-queue-pause.js";
|
|
5
5
|
import { transferWorkflowStageDeliveriesTo } from "./agent-session-transfer.js";
|
|
6
|
-
import { customMessageExcludesContext, drainAgentMessageQueue, normalizeInterruptAbortMessage, } from "./agent-session-types.js";
|
|
6
|
+
import { customMessageExcludesContext, drainAgentMessageQueue, normalizeInterruptAbortMessage, priorityHoldCounts, } from "./agent-session-types.js";
|
|
7
7
|
export { transferWorkflowStageDeliveriesTo };
|
|
8
8
|
const interruptMutationQueues = new WeakMap();
|
|
9
9
|
function serializeInterruptMutation(owner, operation) {
|
|
@@ -86,15 +86,20 @@ export async function sendCustomMessage(message, options) {
|
|
|
86
86
|
...(options?.excludeFromContext === true ? { excludeFromContext: true } : {}),
|
|
87
87
|
...(options?.stageAdmissionKey === undefined ? {} : { stageAdmissionKey: options.stageAdmissionKey }),
|
|
88
88
|
};
|
|
89
|
-
const boundary = this._workflowStageAdmission;
|
|
90
|
-
const
|
|
89
|
+
const boundary = this._subagentMessageAdmission ?? this._workflowStageAdmission;
|
|
90
|
+
const commit = async () => {
|
|
91
91
|
if (boundary && options?.stageAdmissionBarrier)
|
|
92
92
|
await options.stageAdmissionBarrier();
|
|
93
93
|
await commitAdmittedCustomMessage(this, appMessage, options);
|
|
94
94
|
};
|
|
95
|
+
// Event hooks may await non-triggering writes while protected input awaits the
|
|
96
|
+
// event writer. Those local writes must not queue behind that external input.
|
|
97
|
+
const deliver = () => boundary && options?.triggerTurn === true ? boundary.serializeMessageDelivery(commit) : commit();
|
|
95
98
|
if (boundary === undefined)
|
|
96
99
|
return deliver();
|
|
97
100
|
await boundary.admit(options?.stageAdmissionKey, deliver, () => {
|
|
101
|
+
if (this._subagentMessageAdmission)
|
|
102
|
+
throw new Error("Subagent execution is terminal and cannot accept messages");
|
|
98
103
|
const router = this._orchestrationContext?.lateMessageRouter;
|
|
99
104
|
if (router === undefined)
|
|
100
105
|
throw new Error("Workflow stage closed without a late-message router");
|
|
@@ -119,15 +124,18 @@ export async function sendCustomMessages(messages, options) {
|
|
|
119
124
|
}));
|
|
120
125
|
if (appMessages.length === 0)
|
|
121
126
|
return;
|
|
122
|
-
const boundary = this._workflowStageAdmission;
|
|
123
|
-
const
|
|
127
|
+
const boundary = this._subagentMessageAdmission ?? this._workflowStageAdmission;
|
|
128
|
+
const commit = async () => {
|
|
124
129
|
if (boundary && options?.stageAdmissionBarrier)
|
|
125
130
|
await options.stageAdmissionBarrier();
|
|
126
131
|
await commitAdmittedCustomMessages(this, appMessages, options);
|
|
127
132
|
};
|
|
133
|
+
const deliver = () => boundary && options?.triggerTurn === true ? boundary.serializeMessageDelivery(commit) : commit();
|
|
128
134
|
if (boundary === undefined)
|
|
129
135
|
return deliver();
|
|
130
136
|
await boundary.admit(options?.stageAdmissionKey, deliver, () => {
|
|
137
|
+
if (this._subagentMessageAdmission)
|
|
138
|
+
throw new Error("Subagent execution is terminal and cannot accept messages");
|
|
131
139
|
const router = this._orchestrationContext?.lateMessageRouter;
|
|
132
140
|
if (router === undefined)
|
|
133
141
|
throw new Error("Workflow stage closed without a late-message router");
|
|
@@ -259,22 +267,27 @@ export function _queueAgentMessage(message, delivery) {
|
|
|
259
267
|
owner._queueAgentMessage(message, delivery);
|
|
260
268
|
return;
|
|
261
269
|
}
|
|
262
|
-
const hold = this._activeInterruptQueueHold;
|
|
270
|
+
const hold = delivery === "interrupt" ? this._ensureActiveInterruptQueueHold() : this._activeInterruptQueueHold;
|
|
263
271
|
if (hold !== undefined) {
|
|
264
272
|
if (delivery === "followUp") {
|
|
265
273
|
hold.followUp.push(message);
|
|
266
274
|
}
|
|
275
|
+
else if (delivery === "interrupt") {
|
|
276
|
+
const index = priorityHoldCounts.get(hold) ?? 0;
|
|
277
|
+
hold.steering.splice(index, 0, message);
|
|
278
|
+
priorityHoldCounts.set(hold, index + 1);
|
|
279
|
+
}
|
|
267
280
|
else {
|
|
268
281
|
hold.steering.push(message);
|
|
269
282
|
}
|
|
270
|
-
return;
|
|
271
283
|
}
|
|
272
|
-
if (delivery === "followUp") {
|
|
284
|
+
else if (delivery === "followUp") {
|
|
273
285
|
this.agent.followUp(message);
|
|
274
286
|
}
|
|
275
287
|
else {
|
|
276
288
|
this.agent.steer(message);
|
|
277
289
|
}
|
|
290
|
+
this._agentTaskHost?.yieldTaskWaits(message.role === "user" ? "input-needed" : "intercom-coordination");
|
|
278
291
|
}
|
|
279
292
|
export function _drainQueuedAgentMessages() {
|
|
280
293
|
// pi-agent-core exposes public clear methods but no public drain/restore pair.
|
|
@@ -310,6 +323,7 @@ export function clearQueue(options) {
|
|
|
310
323
|
if (hold !== undefined) {
|
|
311
324
|
removed.steering.push(...hold.steering.splice(0));
|
|
312
325
|
removed.followUp.push(...hold.followUp.splice(0));
|
|
326
|
+
priorityHoldCounts.delete(hold);
|
|
313
327
|
}
|
|
314
328
|
restoreProtectedStreamingCustomMessages(this, removed);
|
|
315
329
|
if (options?.preserveUnprotectedCustomMessages && hold !== undefined) {
|