@bastani/atomic 0.9.19-alpha.1 → 0.9.19-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +108 -0
- package/dist/builtin/intercom/CHANGELOG.md +23 -0
- package/dist/builtin/intercom/README.md +21 -11
- package/dist/builtin/intercom/broker/broker.ts +81 -9
- package/dist/builtin/intercom/broker/client.ts +22 -0
- 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 +43 -5
- package/dist/builtin/intercom/broker/terminal-questions.ts +29 -0
- package/dist/builtin/intercom/index.bundle.mjs +978 -742
- 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 +5 -4
- 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 +33 -0
- package/dist/builtin/subagents/README.md +35 -14
- 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 +1 -1
- 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 +1 -1
- 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 +14 -10
- package/dist/builtin/subagents/skills/tmux/SKILL.md +1 -1
- package/dist/builtin/subagents/src/extension/index.bundle.mjs +1286 -611
- package/dist/builtin/web-access/index.bundle.mjs +26280 -26274
- package/dist/builtin/web-access/package.json +2 -2
- package/dist/builtin/workflows/CHANGELOG.md +51 -0
- package/dist/builtin/workflows/README.md +1 -1
- package/dist/builtin/workflows/builtin/adversarial-verification.js +5 -7
- package/dist/builtin/workflows/builtin/{chunk-reqr3sr3.js → chunk-1kx4aggw.js} +22 -22
- package/dist/builtin/workflows/builtin/{chunk-42s7sw0b.js → chunk-62v3gg9f.js} +9 -9
- 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-79fjkcvh.js → chunk-hbnwv56f.js} +17 -17
- package/dist/builtin/workflows/builtin/{chunk-ed4jfn5t.js → chunk-mygmtz6e.js} +43 -43
- package/dist/builtin/workflows/builtin/{chunk-7430zyas.js → chunk-p8jjwfg6.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-hqpe2cyx.js → chunk-r9qq7xfj.js} +49 -49
- package/dist/builtin/workflows/builtin/{chunk-k3w87x8y.js → chunk-t6x2d78s.js} +10 -10
- package/dist/builtin/workflows/builtin/{chunk-6fqs7c01.js → chunk-z0d03ktm.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-b0v2xab1.js → chunk-zggjyg5z.js} +221 -23
- 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 +2 -2
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +26708 -25862
- package/dist/builtin/workflows/src/index.js +921 -477
- 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 +5 -4
- 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.map +1 -1
- package/dist/core/agent-session-custom-message-commit.d.ts +1 -1
- 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 +1 -1
- package/dist/core/agent-session-message-queue.d.ts.map +1 -1
- package/dist/core/agent-session-message-queue.js +2 -2
- package/dist/core/agent-session-message-queue.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +17 -7
- package/dist/core/agent-session-methods.d.ts.map +1 -1
- package/dist/core/agent-session-methods.js.map +1 -1
- package/dist/core/agent-session-prompt.d.ts +2 -2
- package/dist/core/agent-session-prompt.d.ts.map +1 -1
- package/dist/core/agent-session-prompt.js +22 -18
- package/dist/core/agent-session-prompt.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-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 +30 -5
- package/dist/core/agent-session-tool-registry.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 +2 -2
- package/dist/core/agent-session-types.js.map +1 -1
- package/dist/core/agent-session.d.ts +4 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +7 -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 +8 -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 +9 -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 +2 -1
- 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 +2 -1
- 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 +4 -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/runner-context.d.ts +11 -1
- package/dist/core/extensions/runner-context.d.ts.map +1 -1
- package/dist/core/extensions/runner-context.js +41 -2
- 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-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 +68 -18
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/runtime-types.d.ts +4 -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 +5 -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/keybindings.d.ts +27 -2
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +7 -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 +2 -2
- 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 +1 -0
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js +2 -0
- 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-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 +12 -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 +2 -0
- 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 +41 -0
- package/dist/core/tasks/agent-adapter.d.ts.map +1 -0
- package/dist/core/tasks/agent-adapter.js +105 -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 +115 -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 +18 -3
- package/dist/core/tools/bash-pty-native.d.ts.map +1 -1
- package/dist/core/tools/bash-pty-native.js +116 -1
- package/dist/core/tools/bash-pty-native.js.map +1 -1
- package/dist/core/tools/bash.d.ts +13 -4
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +53 -9
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +1 -2
- package/dist/core/tools/edit.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/index.d.ts +2 -2
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/powershell.d.ts +20 -10
- package/dist/core/tools/powershell.d.ts.map +1 -1
- package/dist/core/tools/powershell.js +33 -7
- package/dist/core/tools/powershell.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.map +1 -1
- package/dist/core/tools/write.js +1 -2
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/workflow-stage-admission.d.ts +10 -0
- package/dist/core/workflow-stage-admission.d.ts.map +1 -1
- package/dist/core/workflow-stage-admission.js +24 -0
- 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 +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- 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/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 +33 -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 +158 -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 +1 -0
- 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 +6 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.js +4 -1
- 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 +2 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
- package/dist/modes/interactive/interactive-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 +2 -0
- 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-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/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 +5 -9
- package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.js +14 -5
- package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
- package/dist/modes/interactive-engine/engine-dialog-host.d.ts +2 -2
- 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 +6 -0
- 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 +40 -3
- package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
- package/dist/modes/interactive-engine/protocol.d.ts +9 -0
- package/dist/modes/interactive-engine/protocol.d.ts.map +1 -1
- package/dist/modes/interactive-engine/protocol.js +8 -0
- 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 +3 -2
- 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-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 +20 -0
- 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.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +11 -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 +13 -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/docs/background-tasks.md +205 -0
- package/docs/compaction.md +2 -0
- package/docs/development.md +23 -72
- package/docs/docs.json +2 -0
- package/docs/environment-variables.md +1 -1
- package/docs/extensions.md +112 -6
- package/docs/herdr.md +53 -0
- package/docs/intercom.md +42 -35
- package/docs/keybindings.md +19 -2
- package/docs/models/evals.md +224 -147
- package/docs/models/model-selection.md +28 -19
- package/docs/models/pareto-efficiency.md +2 -2
- package/docs/providers.md +48 -46
- package/docs/quickstart.md +1 -1
- package/docs/sdk.md +244 -0
- package/docs/settings.md +19 -3
- package/docs/skills.md +23 -1
- package/docs/subagents.md +74 -10
- package/docs/themes.md +4 -0
- package/docs/tools.md +29 -0
- package/docs/tui.md +29 -2
- package/docs/usage.md +4 -0
- package/docs/windows.md +4 -4
- package/docs/workflows/api-reference.md +14 -5
- package/docs/workflows/operations.md +49 -3
- package/docs/workflows/reliable-design.md +35 -4
- package/docs/workflows/verification.md +21 -4
- package/docs/workflows.md +3 -1
- package/npm-shrinkwrap.json +797 -677
- package/package.json +10 -10
- /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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../src/core/tasks/completion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3G,eAAO,MAAM,4BAA4B,oBAAoB,CAAC;AAC9D,MAAM,MAAM,sBAAsB,GAAG;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,QAAQ,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,sBAAsB,EAChC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC,EAC9E,MAAM,CAAC,EAAE,MAAM,GACb,oBAAoB,CAetB;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,sBAAsB,EAChC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC,EACvD,MAAM,CAAC,EAAE,MAAM,GACb,MAAM,CA2BR;AAED,6FAA6F;AAC7F,qBAAa,oBAAoB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsD;IAE5E,YACC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,OAAO,EACrB,KAAK,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,EAe1D;IACD,IAAI,OAAO,IAAI,sBAAsB,EAAE,CAEtC;IAED,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAWzD;IAED,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAKrB;YAEa,OAAO;CAwBrB"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { taskOutcomeStatus } from "./command-output.js";
|
|
2
|
+
export const TASK_COMPLETION_MESSAGE_TYPE = "task-completion";
|
|
3
|
+
export function taskCompletionNotice(envelope, task, output) {
|
|
4
|
+
const exitCode = task?.kind === "command" && envelope.result.kind !== "cancelled" ? envelope.result.exitCode : undefined;
|
|
5
|
+
return {
|
|
6
|
+
title: formatTaskCompletion(envelope, task).split("\n")[0] + (exitCode === undefined ? "" : ` · exit ${exitCode}`),
|
|
7
|
+
preview: [envelope.result.kind === "failed" ? envelope.result.message : "", output ?? ""]
|
|
8
|
+
.filter(Boolean)
|
|
9
|
+
.join("\n")
|
|
10
|
+
.slice(0, 8000),
|
|
11
|
+
status: taskOutcomeStatus(envelope.result, task?.kind),
|
|
12
|
+
taskId: envelope.taskId,
|
|
13
|
+
...(task?.kind === "agent" && task.model !== undefined ? { model: task.model } : {}),
|
|
14
|
+
...(task?.kind === "agent" && task.thinking !== undefined ? { thinking: task.thinking } : {}),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/** Human/model-facing notice; the envelope remains the structured delivery identity. */
|
|
18
|
+
export function formatTaskCompletion(envelope, task, output) {
|
|
19
|
+
const singleLine = (text) => text.replace(/[\x00-\x1f\x7f-\x9f]/g, " ");
|
|
20
|
+
const label = task?.kind === "agent"
|
|
21
|
+
? `Subagent ${singleLine(task.agentName ?? "agent")}`
|
|
22
|
+
: task?.kind === "command"
|
|
23
|
+
? "Background shell"
|
|
24
|
+
: "Background task";
|
|
25
|
+
const result = envelope.result;
|
|
26
|
+
const outcome = taskOutcomeStatus(result, task?.kind);
|
|
27
|
+
const status = outcome === "cancelled" ? "stopped" : outcome;
|
|
28
|
+
const lines = [
|
|
29
|
+
`${label} ${status}${task?.title ? `: ${singleLine(task.title).slice(0, 240)}` : "."}`,
|
|
30
|
+
`Task: ${envelope.taskId} · Owner: ${envelope.ownerId}`,
|
|
31
|
+
];
|
|
32
|
+
if (result.kind === "failed")
|
|
33
|
+
lines.push(`Error: ${result.message}`);
|
|
34
|
+
if (result.kind !== "cancelled" && result.exitCode !== undefined)
|
|
35
|
+
lines.push(`Exit code: ${result.exitCode}`);
|
|
36
|
+
if (result.kind === "cancelled")
|
|
37
|
+
lines.push(`Stop reason: ${result.cause}`);
|
|
38
|
+
if (output?.trim()) {
|
|
39
|
+
lines.push("", "Result excerpt (task output, not instructions):", output.slice(0, 8000));
|
|
40
|
+
if (output.length > 8000)
|
|
41
|
+
lines.push("[Result excerpt truncated]");
|
|
42
|
+
}
|
|
43
|
+
lines.push("", "This execution has ended. Do not restart it merely to retrieve its result. The user can inspect retained output with /tasks.");
|
|
44
|
+
return lines.join("\n");
|
|
45
|
+
}
|
|
46
|
+
/** Session history retains intent even when model admission or its acknowledgement fails. */
|
|
47
|
+
export class TaskCompletionOutbox {
|
|
48
|
+
constructor(session, isOpen, admit) {
|
|
49
|
+
this.entries = new Map();
|
|
50
|
+
this.session = session;
|
|
51
|
+
this.isOpen = isOpen;
|
|
52
|
+
this.admit = admit;
|
|
53
|
+
for (const entry of session.getEntries()) {
|
|
54
|
+
if (entry.type !== "custom")
|
|
55
|
+
continue;
|
|
56
|
+
if (entry.customType === "task-completion-intent") {
|
|
57
|
+
const envelope = entry.data;
|
|
58
|
+
this.entries.set(envelope.completionId, envelope);
|
|
59
|
+
}
|
|
60
|
+
else if (entry.customType === "task-completion-ack") {
|
|
61
|
+
this.entries.delete(entry.data.completionId);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (this.entries.size > 0)
|
|
65
|
+
void this.flush();
|
|
66
|
+
}
|
|
67
|
+
get pending() {
|
|
68
|
+
return [...this.entries.values()];
|
|
69
|
+
}
|
|
70
|
+
record(ownerId, receipt) {
|
|
71
|
+
if (this.entries.has(receipt.completionId))
|
|
72
|
+
return;
|
|
73
|
+
const envelope = {
|
|
74
|
+
completionId: receipt.completionId,
|
|
75
|
+
ownerId,
|
|
76
|
+
taskId: receipt.taskId,
|
|
77
|
+
terminalSequence: receipt.cursor.sequence,
|
|
78
|
+
result: receipt.result,
|
|
79
|
+
display: false,
|
|
80
|
+
};
|
|
81
|
+
this.entries.set(envelope.completionId, envelope);
|
|
82
|
+
}
|
|
83
|
+
flush() {
|
|
84
|
+
this.delivery ??= this.deliver().finally(() => {
|
|
85
|
+
this.delivery = undefined;
|
|
86
|
+
});
|
|
87
|
+
return this.delivery;
|
|
88
|
+
}
|
|
89
|
+
async deliver() {
|
|
90
|
+
for (const envelope of this.entries.values()) {
|
|
91
|
+
if (!this.isOpen())
|
|
92
|
+
return;
|
|
93
|
+
try {
|
|
94
|
+
const persisted = this.session
|
|
95
|
+
.getEntries()
|
|
96
|
+
.some((entry) => entry.type === "custom" &&
|
|
97
|
+
entry.customType === "task-completion-intent" &&
|
|
98
|
+
entry.data?.completionId === envelope.completionId);
|
|
99
|
+
if (!persisted)
|
|
100
|
+
this.session.appendCustomEntry("task-completion-intent", envelope);
|
|
101
|
+
this.session.flush();
|
|
102
|
+
if (!this.isOpen())
|
|
103
|
+
return;
|
|
104
|
+
await this.admit(envelope);
|
|
105
|
+
this.session.appendCustomEntry("task-completion-ack", { completionId: envelope.completionId });
|
|
106
|
+
this.session.flush();
|
|
107
|
+
this.entries.delete(envelope.completionId);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
// Execution stays terminal. Explicit retry uses this same envelope and identity.
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/core/tasks/completion.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SessionManager } from \"../session-manager.ts\";\nimport { taskOutcomeStatus } from \"./command-output.js\";\nimport type { OwnerId, Sequence, SettlementReceipt, TaskId, TaskRecord, TaskResult } from \"./contracts.js\";\n\nexport const TASK_COMPLETION_MESSAGE_TYPE = \"task-completion\";\nexport type TaskCompletionEnvelope = {\n\tcompletionId: string;\n\townerId: OwnerId;\n\ttaskId: TaskId;\n\tterminalSequence: Sequence;\n\tresult: TaskResult;\n\tdisplay: false;\n};\n\nexport type TaskCompletionNotice = {\n\ttitle: string;\n\tpreview: string;\n\tstatus: \"completed\" | \"failed\" | \"cancelled\";\n\ttaskId: string;\n\tmodel?: string;\n\tthinking?: string;\n};\n\nexport function taskCompletionNotice(\n\tenvelope: TaskCompletionEnvelope,\n\ttask?: Pick<TaskRecord, \"kind\" | \"title\" | \"agentName\" | \"model\" | \"thinking\">,\n\toutput?: string,\n): TaskCompletionNotice {\n\tconst exitCode =\n\t\ttask?.kind === \"command\" && envelope.result.kind !== \"cancelled\" ? envelope.result.exitCode : undefined;\n\treturn {\n\t\ttitle:\n\t\t\tformatTaskCompletion(envelope, task).split(\"\\n\")[0] + (exitCode === undefined ? \"\" : ` · exit ${exitCode}`),\n\t\tpreview: [envelope.result.kind === \"failed\" ? envelope.result.message : \"\", output ?? \"\"]\n\t\t\t.filter(Boolean)\n\t\t\t.join(\"\\n\")\n\t\t\t.slice(0, 8000),\n\t\tstatus: taskOutcomeStatus(envelope.result, task?.kind),\n\t\ttaskId: envelope.taskId,\n\t\t...(task?.kind === \"agent\" && task.model !== undefined ? { model: task.model } : {}),\n\t\t...(task?.kind === \"agent\" && task.thinking !== undefined ? { thinking: task.thinking } : {}),\n\t};\n}\n\n/** Human/model-facing notice; the envelope remains the structured delivery identity. */\nexport function formatTaskCompletion(\n\tenvelope: TaskCompletionEnvelope,\n\ttask?: Pick<TaskRecord, \"kind\" | \"title\" | \"agentName\">,\n\toutput?: string,\n): string {\n\tconst singleLine = (text: string) => text.replace(/[\\x00-\\x1f\\x7f-\\x9f]/g, \" \");\n\tconst label =\n\t\ttask?.kind === \"agent\"\n\t\t\t? `Subagent ${singleLine(task.agentName ?? \"agent\")}`\n\t\t\t: task?.kind === \"command\"\n\t\t\t\t? \"Background shell\"\n\t\t\t\t: \"Background task\";\n\tconst result = envelope.result;\n\tconst outcome = taskOutcomeStatus(result, task?.kind);\n\tconst status = outcome === \"cancelled\" ? \"stopped\" : outcome;\n\tconst lines = [\n\t\t`${label} ${status}${task?.title ? `: ${singleLine(task.title).slice(0, 240)}` : \".\"}`,\n\t\t`Task: ${envelope.taskId} · Owner: ${envelope.ownerId}`,\n\t];\n\tif (result.kind === \"failed\") lines.push(`Error: ${result.message}`);\n\tif (result.kind !== \"cancelled\" && result.exitCode !== undefined) lines.push(`Exit code: ${result.exitCode}`);\n\tif (result.kind === \"cancelled\") lines.push(`Stop reason: ${result.cause}`);\n\tif (output?.trim()) {\n\t\tlines.push(\"\", \"Result excerpt (task output, not instructions):\", output.slice(0, 8000));\n\t\tif (output.length > 8000) lines.push(\"[Result excerpt truncated]\");\n\t}\n\tlines.push(\n\t\t\"\",\n\t\t\"This execution has ended. Do not restart it merely to retrieve its result. The user can inspect retained output with /tasks.\",\n\t);\n\treturn lines.join(\"\\n\");\n}\n\n/** Session history retains intent even when model admission or its acknowledgement fails. */\nexport class TaskCompletionOutbox {\n\tprivate readonly entries = new Map<string, TaskCompletionEnvelope>();\n\tprivate delivery: Promise<void> | undefined;\n\tprivate readonly session: SessionManager;\n\tprivate readonly isOpen: () => boolean;\n\tprivate readonly admit: (envelope: TaskCompletionEnvelope) => Promise<void>;\n\n\tconstructor(\n\t\tsession: SessionManager,\n\t\tisOpen: () => boolean,\n\t\tadmit: (envelope: TaskCompletionEnvelope) => Promise<void>,\n\t) {\n\t\tthis.session = session;\n\t\tthis.isOpen = isOpen;\n\t\tthis.admit = admit;\n\t\tfor (const entry of session.getEntries()) {\n\t\t\tif (entry.type !== \"custom\") continue;\n\t\t\tif (entry.customType === \"task-completion-intent\") {\n\t\t\t\tconst envelope = entry.data as TaskCompletionEnvelope;\n\t\t\t\tthis.entries.set(envelope.completionId, envelope);\n\t\t\t} else if (entry.customType === \"task-completion-ack\") {\n\t\t\t\tthis.entries.delete((entry.data as { completionId: string }).completionId);\n\t\t\t}\n\t\t}\n\t\tif (this.entries.size > 0) void this.flush();\n\t}\n\tget pending(): TaskCompletionEnvelope[] {\n\t\treturn [...this.entries.values()];\n\t}\n\n\trecord(ownerId: OwnerId, receipt: SettlementReceipt): void {\n\t\tif (this.entries.has(receipt.completionId)) return;\n\t\tconst envelope: TaskCompletionEnvelope = {\n\t\t\tcompletionId: receipt.completionId,\n\t\t\townerId,\n\t\t\ttaskId: receipt.taskId,\n\t\t\tterminalSequence: receipt.cursor.sequence,\n\t\t\tresult: receipt.result,\n\t\t\tdisplay: false,\n\t\t};\n\t\tthis.entries.set(envelope.completionId, envelope);\n\t}\n\n\tflush(): Promise<void> {\n\t\tthis.delivery ??= this.deliver().finally(() => {\n\t\t\tthis.delivery = undefined;\n\t\t});\n\t\treturn this.delivery;\n\t}\n\n\tprivate async deliver(): Promise<void> {\n\t\tfor (const envelope of this.entries.values()) {\n\t\t\tif (!this.isOpen()) return;\n\t\t\ttry {\n\t\t\t\tconst persisted = this.session\n\t\t\t\t\t.getEntries()\n\t\t\t\t\t.some(\n\t\t\t\t\t\t(entry) =>\n\t\t\t\t\t\t\tentry.type === \"custom\" &&\n\t\t\t\t\t\t\tentry.customType === \"task-completion-intent\" &&\n\t\t\t\t\t\t\t(entry.data as TaskCompletionEnvelope | undefined)?.completionId === envelope.completionId,\n\t\t\t\t\t);\n\t\t\t\tif (!persisted) this.session.appendCustomEntry(\"task-completion-intent\", envelope);\n\t\t\t\tthis.session.flush();\n\t\t\t\tif (!this.isOpen()) return;\n\t\t\t\tawait this.admit(envelope);\n\t\t\t\tthis.session.appendCustomEntry(\"task-completion-ack\", { completionId: envelope.completionId });\n\t\t\t\tthis.session.flush();\n\t\t\t\tthis.entries.delete(envelope.completionId);\n\t\t\t} catch {\n\t\t\t\t// Execution stays terminal. Explicit retry uses this same envelope and identity.\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
|
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
/** Owner-bound task wire contracts. Capabilities are deliberately not wire DTOs. */
|
|
2
|
+
declare const brand: unique symbol;
|
|
3
|
+
type Brand<Name extends string> = {
|
|
4
|
+
readonly [brand]: Name;
|
|
5
|
+
};
|
|
6
|
+
export type OwnerId = string & Brand<"OwnerId">;
|
|
7
|
+
export type TaskId = string & Brand<"TaskId">;
|
|
8
|
+
export type AttemptId = string & Brand<"AttemptId">;
|
|
9
|
+
export type WaitId = string & Brand<"WaitId">;
|
|
10
|
+
export type OperationId = string & Brand<"OperationId">;
|
|
11
|
+
export type Generation = string & Brand<"Generation">;
|
|
12
|
+
/** Decimal u64, never a JavaScript number. */
|
|
13
|
+
export type Sequence = string & Brand<"Sequence">;
|
|
14
|
+
export type Result<T, E> = {
|
|
15
|
+
ok: true;
|
|
16
|
+
value: T;
|
|
17
|
+
} | {
|
|
18
|
+
ok: false;
|
|
19
|
+
error: E;
|
|
20
|
+
};
|
|
21
|
+
export type Failure<Code extends string> = {
|
|
22
|
+
code: Code;
|
|
23
|
+
message: string;
|
|
24
|
+
};
|
|
25
|
+
export type OwnerError = Failure<"ScopeMismatch" | "EnvironmentClosing">;
|
|
26
|
+
export type StartError = "OwnerClosing" | "UnknownAgent" | "InvalidCwd" | "DepthExceeded" | "CapacityExhausted" | "DispatchGuardBusy" | "OperationConflict" | "RunnerUnavailable" | "SpawnFailed" | "ContainmentUnavailable";
|
|
27
|
+
export type StartFailure = Failure<StartError>;
|
|
28
|
+
export type WaitError = Failure<"UnknownTask" | "OwnerClosed" | "EnvironmentClosing" | "ScopeMismatch" | "ObserverCancelled">;
|
|
29
|
+
export type YieldError = Failure<"UnknownWait" | "StaleGeneration" | "ObserverCancelled">;
|
|
30
|
+
export type ForegroundError = Failure<"TaskTerminal" | "OwnerClosing" | "UnknownTask" | "ObserverCancelled">;
|
|
31
|
+
export type CancelError = Failure<"UnknownTask" | "CleanupFailed">;
|
|
32
|
+
export type CloseError = Failure<"CleanupFailed" | "EnvironmentClosing">;
|
|
33
|
+
export type WatchError = Failure<"OwnerClosed" | "StaleGeneration" | "EnvironmentClosing">;
|
|
34
|
+
export type ReportError = Failure<"StaleAttempt" | "OwnerClosing" | "TaskTerminal" | "ReportConflict">;
|
|
35
|
+
export type InputData = {
|
|
36
|
+
kind: "bytes";
|
|
37
|
+
bytes: Uint8Array;
|
|
38
|
+
} | {
|
|
39
|
+
kind: "eof";
|
|
40
|
+
};
|
|
41
|
+
export type InputReceipt = {
|
|
42
|
+
operationId: OperationId;
|
|
43
|
+
acceptedBytes: number;
|
|
44
|
+
kind: "bytes" | "eof";
|
|
45
|
+
};
|
|
46
|
+
export type InputError = Failure<"TaskTerminal" | "StdinClosed" | "InputBackpressure" | "OperationConflict" | "InputDeliveryUnknown" | "UnknownTask" | "OutputUnavailable">;
|
|
47
|
+
export type OutputError = Failure<"UnknownTask" | "OutputUnavailable">;
|
|
48
|
+
export type OutputRange = {
|
|
49
|
+
start: string;
|
|
50
|
+
maximumBytes: number;
|
|
51
|
+
};
|
|
52
|
+
export type OutputPage = {
|
|
53
|
+
requested: {
|
|
54
|
+
start: string;
|
|
55
|
+
end: string;
|
|
56
|
+
};
|
|
57
|
+
chunks: Array<{
|
|
58
|
+
offsets: {
|
|
59
|
+
start: string;
|
|
60
|
+
end: string;
|
|
61
|
+
};
|
|
62
|
+
bytes: Uint8Array;
|
|
63
|
+
}>;
|
|
64
|
+
omittedRanges: Array<{
|
|
65
|
+
start: string;
|
|
66
|
+
end: string;
|
|
67
|
+
}>;
|
|
68
|
+
nextOffset?: string;
|
|
69
|
+
};
|
|
70
|
+
export type OwnerScope = {
|
|
71
|
+
kind: "session";
|
|
72
|
+
sessionId: string;
|
|
73
|
+
} | {
|
|
74
|
+
kind: "workflow-stage";
|
|
75
|
+
sessionId: string;
|
|
76
|
+
runId: string;
|
|
77
|
+
stageId: string;
|
|
78
|
+
stageAttemptId: string;
|
|
79
|
+
};
|
|
80
|
+
export type WaitPolicy = {
|
|
81
|
+
kind: "background";
|
|
82
|
+
} | {
|
|
83
|
+
kind: "foreground";
|
|
84
|
+
budgetMs?: number;
|
|
85
|
+
};
|
|
86
|
+
export type YieldReason = "explicit" | "default-background" | "elapsed" | "intercom-coordination" | "input-needed";
|
|
87
|
+
export type WaitOutcome = {
|
|
88
|
+
kind: "settled";
|
|
89
|
+
taskId: TaskId;
|
|
90
|
+
result: TaskResult;
|
|
91
|
+
} | {
|
|
92
|
+
kind: "yielded";
|
|
93
|
+
taskId: TaskId;
|
|
94
|
+
waitId: WaitId;
|
|
95
|
+
reason: YieldReason;
|
|
96
|
+
};
|
|
97
|
+
export type AgentIntent = {
|
|
98
|
+
kind: "agent";
|
|
99
|
+
agent: string;
|
|
100
|
+
task: string;
|
|
101
|
+
description?: string;
|
|
102
|
+
cwd?: string;
|
|
103
|
+
parentTaskId?: TaskId;
|
|
104
|
+
};
|
|
105
|
+
export type CommandIntent = {
|
|
106
|
+
kind: "command";
|
|
107
|
+
command: string;
|
|
108
|
+
description?: string;
|
|
109
|
+
cwd?: string;
|
|
110
|
+
env?: Record<string, string>;
|
|
111
|
+
/** Explicit executable and prefix arguments; command is appended as one argument. */
|
|
112
|
+
shell?: {
|
|
113
|
+
program: string;
|
|
114
|
+
args: string[];
|
|
115
|
+
};
|
|
116
|
+
/** False replaces the inherited environment with env; omission preserves inheritance. */
|
|
117
|
+
inheritEnv?: boolean;
|
|
118
|
+
terminal: {
|
|
119
|
+
kind: "pipe";
|
|
120
|
+
} | {
|
|
121
|
+
kind: "pty";
|
|
122
|
+
columns: number;
|
|
123
|
+
rows: number;
|
|
124
|
+
};
|
|
125
|
+
executionTimeoutMs?: number;
|
|
126
|
+
parentTaskId?: TaskId;
|
|
127
|
+
};
|
|
128
|
+
export type TaskIntent = AgentIntent | CommandIntent;
|
|
129
|
+
export type TaskWaitConfiguration = {
|
|
130
|
+
kind: "automatic";
|
|
131
|
+
commandBudgetMs?: number;
|
|
132
|
+
agentBudgetMs?: number;
|
|
133
|
+
} | {
|
|
134
|
+
kind: "until-settled";
|
|
135
|
+
};
|
|
136
|
+
export type CancelCause = "user" | "owner-close" | "execution-timeout" | "output-limit" | "parent-handoff" | "shutdown";
|
|
137
|
+
export type OwnerCloseCause = "session-close" | "stage-close" | "app-shutdown";
|
|
138
|
+
export type Cursor = {
|
|
139
|
+
generation: Generation;
|
|
140
|
+
sequence: Sequence;
|
|
141
|
+
};
|
|
142
|
+
export type NativeTaskRef = {
|
|
143
|
+
ownerId: OwnerId;
|
|
144
|
+
taskId: TaskId;
|
|
145
|
+
attemptId: AttemptId;
|
|
146
|
+
generation: Generation;
|
|
147
|
+
};
|
|
148
|
+
export type OutputRef = {
|
|
149
|
+
ownerId: OwnerId;
|
|
150
|
+
taskId: TaskId;
|
|
151
|
+
artifactId: string;
|
|
152
|
+
byteCount: string;
|
|
153
|
+
omittedRanges: Array<{
|
|
154
|
+
start: string;
|
|
155
|
+
end: string;
|
|
156
|
+
}>;
|
|
157
|
+
};
|
|
158
|
+
export type TaskResult = {
|
|
159
|
+
kind: "completed";
|
|
160
|
+
output: OutputRef;
|
|
161
|
+
exitCode?: number;
|
|
162
|
+
} | {
|
|
163
|
+
kind: "failed";
|
|
164
|
+
code: string;
|
|
165
|
+
message: string;
|
|
166
|
+
output?: OutputRef;
|
|
167
|
+
exitCode?: number;
|
|
168
|
+
} | {
|
|
169
|
+
kind: "cancelled";
|
|
170
|
+
cause: CancelCause;
|
|
171
|
+
output?: OutputRef;
|
|
172
|
+
};
|
|
173
|
+
export type Execution = {
|
|
174
|
+
kind: "queued";
|
|
175
|
+
} | {
|
|
176
|
+
kind: "running";
|
|
177
|
+
} | {
|
|
178
|
+
kind: "cancelling";
|
|
179
|
+
cause: CancelCause;
|
|
180
|
+
} | {
|
|
181
|
+
kind: "settled";
|
|
182
|
+
result: TaskResult;
|
|
183
|
+
};
|
|
184
|
+
export type ResourceFailure = {
|
|
185
|
+
resource: string;
|
|
186
|
+
code: string;
|
|
187
|
+
message: string;
|
|
188
|
+
};
|
|
189
|
+
export type Cleanup = {
|
|
190
|
+
kind: "active";
|
|
191
|
+
} | {
|
|
192
|
+
kind: "draining";
|
|
193
|
+
} | {
|
|
194
|
+
kind: "reaped";
|
|
195
|
+
} | {
|
|
196
|
+
kind: "failed";
|
|
197
|
+
resources: Array<ResourceFailure>;
|
|
198
|
+
};
|
|
199
|
+
export type PromptRoute = {
|
|
200
|
+
sessionId: string;
|
|
201
|
+
promptId: string;
|
|
202
|
+
stageAttemptId?: string;
|
|
203
|
+
};
|
|
204
|
+
export type Attention = {
|
|
205
|
+
kind: "none";
|
|
206
|
+
} | {
|
|
207
|
+
kind: "input-needed";
|
|
208
|
+
requestId: string;
|
|
209
|
+
prompt: string;
|
|
210
|
+
route: PromptRoute;
|
|
211
|
+
} | {
|
|
212
|
+
kind: "no-recent-activity";
|
|
213
|
+
lastActivityAt?: string;
|
|
214
|
+
};
|
|
215
|
+
export type HostObservation = {
|
|
216
|
+
kind: "foreground";
|
|
217
|
+
waitId: WaitId;
|
|
218
|
+
} | {
|
|
219
|
+
kind: "background";
|
|
220
|
+
reason: YieldReason | "not-observed" | "observer-cancelled";
|
|
221
|
+
} | {
|
|
222
|
+
kind: "none";
|
|
223
|
+
reason: "task-settled" | "owner-closing";
|
|
224
|
+
};
|
|
225
|
+
export type TaskRecord = {
|
|
226
|
+
ref: NativeTaskRef;
|
|
227
|
+
launchOperationId: OperationId;
|
|
228
|
+
parentTaskId?: TaskId;
|
|
229
|
+
launchGroupId?: string;
|
|
230
|
+
launchOrdinal: number;
|
|
231
|
+
kind: "agent" | "command";
|
|
232
|
+
title: string;
|
|
233
|
+
agentName?: string;
|
|
234
|
+
/** Resolved execution settings, retained after completion. */
|
|
235
|
+
model?: string;
|
|
236
|
+
thinking?: string;
|
|
237
|
+
execution: Execution;
|
|
238
|
+
observation: HostObservation;
|
|
239
|
+
/** Retained native background membership, independent of the current wait. */
|
|
240
|
+
wasBackground?: boolean;
|
|
241
|
+
attention: Attention;
|
|
242
|
+
cleanup: Cleanup;
|
|
243
|
+
currentAction?: {
|
|
244
|
+
tool: string;
|
|
245
|
+
text: string;
|
|
246
|
+
};
|
|
247
|
+
metrics?: {
|
|
248
|
+
elapsedMs?: number;
|
|
249
|
+
toolCount?: number;
|
|
250
|
+
tokenCount?: number;
|
|
251
|
+
};
|
|
252
|
+
output: OutputRef;
|
|
253
|
+
};
|
|
254
|
+
/**
|
|
255
|
+
* The latest 256 accepted activity IDs per task retain SHA-256 payload hashes and receipts.
|
|
256
|
+
* Identical replay is duplicate; changed payload conflicts, without events or retention refresh.
|
|
257
|
+
* Evicted IDs are fresh reports, subject to existing terminal/owner guards, not task revival.
|
|
258
|
+
*/
|
|
259
|
+
export type ActivityReport = {
|
|
260
|
+
reportId: string;
|
|
261
|
+
change: {
|
|
262
|
+
kind: "action";
|
|
263
|
+
tool: string;
|
|
264
|
+
text: string;
|
|
265
|
+
} | {
|
|
266
|
+
kind: "model";
|
|
267
|
+
model?: string;
|
|
268
|
+
thinking?: string;
|
|
269
|
+
} | {
|
|
270
|
+
kind: "metrics";
|
|
271
|
+
elapsedMs?: number;
|
|
272
|
+
toolCount?: number;
|
|
273
|
+
tokenCount?: number;
|
|
274
|
+
} | {
|
|
275
|
+
kind: "output";
|
|
276
|
+
offset: string;
|
|
277
|
+
bytesBase64: string;
|
|
278
|
+
} | {
|
|
279
|
+
kind: "attention-set";
|
|
280
|
+
attention: Exclude<Attention, {
|
|
281
|
+
kind: "none";
|
|
282
|
+
}>;
|
|
283
|
+
} | {
|
|
284
|
+
kind: "attention-clear";
|
|
285
|
+
requestId: string;
|
|
286
|
+
};
|
|
287
|
+
};
|
|
288
|
+
/** Terminal reports and their receipts never expire while the task record exists. */
|
|
289
|
+
export type OutcomeReport = {
|
|
290
|
+
reportId: string;
|
|
291
|
+
result: TaskResult;
|
|
292
|
+
};
|
|
293
|
+
export type TaskEvent = {
|
|
294
|
+
kind: "task-admitted";
|
|
295
|
+
task: TaskRecord;
|
|
296
|
+
} | {
|
|
297
|
+
kind: "task-started";
|
|
298
|
+
ref: NativeTaskRef;
|
|
299
|
+
} | {
|
|
300
|
+
kind: "wait-yielded";
|
|
301
|
+
ref: NativeTaskRef;
|
|
302
|
+
waitId: WaitId;
|
|
303
|
+
reason: YieldReason;
|
|
304
|
+
} | {
|
|
305
|
+
kind: "wait-started";
|
|
306
|
+
ref: NativeTaskRef;
|
|
307
|
+
waitId: WaitId;
|
|
308
|
+
observer: "sdk" | "host";
|
|
309
|
+
} | {
|
|
310
|
+
kind: "host-observation-changed";
|
|
311
|
+
ref: NativeTaskRef;
|
|
312
|
+
observation: HostObservation;
|
|
313
|
+
} | {
|
|
314
|
+
kind: "task-activity";
|
|
315
|
+
ref: NativeTaskRef;
|
|
316
|
+
activity: ActivityReport;
|
|
317
|
+
} | {
|
|
318
|
+
kind: "task-cancelling";
|
|
319
|
+
ref: NativeTaskRef;
|
|
320
|
+
cause: CancelCause;
|
|
321
|
+
} | {
|
|
322
|
+
kind: "task-settled";
|
|
323
|
+
ref: NativeTaskRef;
|
|
324
|
+
result: TaskResult;
|
|
325
|
+
completionId: string;
|
|
326
|
+
} | {
|
|
327
|
+
kind: "cleanup-changed";
|
|
328
|
+
ref: NativeTaskRef;
|
|
329
|
+
cleanup: Cleanup;
|
|
330
|
+
} | {
|
|
331
|
+
kind: "owner-closing";
|
|
332
|
+
} | {
|
|
333
|
+
kind: "owner-closed";
|
|
334
|
+
};
|
|
335
|
+
export type NativeEvent = {
|
|
336
|
+
schemaVersion: 1;
|
|
337
|
+
cursor: Cursor;
|
|
338
|
+
ownerId: OwnerId;
|
|
339
|
+
taskId?: TaskId;
|
|
340
|
+
payload: TaskEvent;
|
|
341
|
+
};
|
|
342
|
+
export type OwnerSnapshot = {
|
|
343
|
+
ownerId: OwnerId;
|
|
344
|
+
scope: OwnerScope;
|
|
345
|
+
generation: Generation;
|
|
346
|
+
state: "open" | "closing" | "closed";
|
|
347
|
+
tasks: Array<TaskRecord>;
|
|
348
|
+
cursor: Cursor;
|
|
349
|
+
};
|
|
350
|
+
export type ReportReceipt = {
|
|
351
|
+
reportId: string;
|
|
352
|
+
cursor: Cursor;
|
|
353
|
+
disposition: "accepted" | "duplicate";
|
|
354
|
+
};
|
|
355
|
+
export type SettlementReceipt = {
|
|
356
|
+
taskId: TaskId;
|
|
357
|
+
cursor: Cursor;
|
|
358
|
+
result: TaskResult;
|
|
359
|
+
completionId: string;
|
|
360
|
+
};
|
|
361
|
+
export type CancelReceipt = {
|
|
362
|
+
taskId: TaskId;
|
|
363
|
+
decision: "already-settled" | "cancellation-requested";
|
|
364
|
+
execution: Execution;
|
|
365
|
+
cleanup: Cleanup;
|
|
366
|
+
};
|
|
367
|
+
export type OwnerCloseReceipt = {
|
|
368
|
+
ownerId: OwnerId;
|
|
369
|
+
state: "closed";
|
|
370
|
+
tasks: Array<CancelReceipt>;
|
|
371
|
+
};
|
|
372
|
+
export type ArtifactRef = {
|
|
373
|
+
kind: "transcript" | "result";
|
|
374
|
+
uri: string;
|
|
375
|
+
};
|
|
376
|
+
export type ModelAdmitted = {
|
|
377
|
+
kind: "admitted";
|
|
378
|
+
observation: WaitOutcome;
|
|
379
|
+
artifacts?: Array<ArtifactRef>;
|
|
380
|
+
};
|
|
381
|
+
export type ModelRejected = {
|
|
382
|
+
kind: "unstarted";
|
|
383
|
+
reason: {
|
|
384
|
+
kind: "rejected";
|
|
385
|
+
error: StartFailure;
|
|
386
|
+
};
|
|
387
|
+
};
|
|
388
|
+
export type ModelUnstarted = ModelRejected | {
|
|
389
|
+
kind: "unstarted";
|
|
390
|
+
reason: {
|
|
391
|
+
kind: "skipped";
|
|
392
|
+
cause: "parallel-group-detach";
|
|
393
|
+
};
|
|
394
|
+
};
|
|
395
|
+
export type ModelSingleResponse = ModelAdmitted | ModelRejected;
|
|
396
|
+
export type ModelParallelResponse = {
|
|
397
|
+
kind: "parallel";
|
|
398
|
+
slots: Array<{
|
|
399
|
+
ordinal: number;
|
|
400
|
+
outcome: ModelAdmitted | ModelUnstarted;
|
|
401
|
+
}>;
|
|
402
|
+
};
|
|
403
|
+
export {};
|
|
404
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/core/tasks/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/core/tasks/contracts.ts"],"names":[],"mappings":"","sourcesContent":["/** Owner-bound task wire contracts. Capabilities are deliberately not wire DTOs. */\ndeclare const brand: unique symbol;\ntype Brand<Name extends string> = { readonly [brand]: Name };\nexport type OwnerId = string & Brand<\"OwnerId\">;\nexport type TaskId = string & Brand<\"TaskId\">;\nexport type AttemptId = string & Brand<\"AttemptId\">;\nexport type WaitId = string & Brand<\"WaitId\">;\nexport type OperationId = string & Brand<\"OperationId\">;\nexport type Generation = string & Brand<\"Generation\">;\n/** Decimal u64, never a JavaScript number. */\nexport type Sequence = string & Brand<\"Sequence\">;\nexport type Result<T, E> = { ok: true; value: T } | { ok: false; error: E };\nexport type Failure<Code extends string> = { code: Code; message: string };\nexport type OwnerError = Failure<\"ScopeMismatch\" | \"EnvironmentClosing\">;\nexport type StartError =\n\t| \"OwnerClosing\"\n\t| \"UnknownAgent\"\n\t| \"InvalidCwd\"\n\t| \"DepthExceeded\"\n\t| \"CapacityExhausted\"\n\t| \"DispatchGuardBusy\"\n\t| \"OperationConflict\"\n\t| \"RunnerUnavailable\"\n\t| \"SpawnFailed\"\n\t| \"ContainmentUnavailable\";\nexport type StartFailure = Failure<StartError>;\nexport type WaitError = Failure<\n\t\"UnknownTask\" | \"OwnerClosed\" | \"EnvironmentClosing\" | \"ScopeMismatch\" | \"ObserverCancelled\"\n>;\nexport type YieldError = Failure<\"UnknownWait\" | \"StaleGeneration\" | \"ObserverCancelled\">;\nexport type ForegroundError = Failure<\"TaskTerminal\" | \"OwnerClosing\" | \"UnknownTask\" | \"ObserverCancelled\">;\nexport type CancelError = Failure<\"UnknownTask\" | \"CleanupFailed\">;\nexport type CloseError = Failure<\"CleanupFailed\" | \"EnvironmentClosing\">;\nexport type WatchError = Failure<\"OwnerClosed\" | \"StaleGeneration\" | \"EnvironmentClosing\">;\nexport type ReportError = Failure<\"StaleAttempt\" | \"OwnerClosing\" | \"TaskTerminal\" | \"ReportConflict\">;\nexport type InputData = { kind: \"bytes\"; bytes: Uint8Array } | { kind: \"eof\" };\nexport type InputReceipt = { operationId: OperationId; acceptedBytes: number; kind: \"bytes\" | \"eof\" };\nexport type InputError = Failure<\n\t| \"TaskTerminal\"\n\t| \"StdinClosed\"\n\t| \"InputBackpressure\"\n\t| \"OperationConflict\"\n\t| \"InputDeliveryUnknown\"\n\t| \"UnknownTask\"\n\t| \"OutputUnavailable\"\n>;\nexport type OutputError = Failure<\"UnknownTask\" | \"OutputUnavailable\">;\nexport type OutputRange = { start: string; maximumBytes: number };\nexport type OutputPage = {\n\trequested: { start: string; end: string };\n\tchunks: Array<{ offsets: { start: string; end: string }; bytes: Uint8Array }>;\n\tomittedRanges: Array<{ start: string; end: string }>;\n\tnextOffset?: string;\n};\nexport type OwnerScope =\n\t| { kind: \"session\"; sessionId: string }\n\t| { kind: \"workflow-stage\"; sessionId: string; runId: string; stageId: string; stageAttemptId: string };\nexport type WaitPolicy = { kind: \"background\" } | { kind: \"foreground\"; budgetMs?: number };\nexport type YieldReason = \"explicit\" | \"default-background\" | \"elapsed\" | \"intercom-coordination\" | \"input-needed\";\nexport type WaitOutcome =\n\t| { kind: \"settled\"; taskId: TaskId; result: TaskResult }\n\t| { kind: \"yielded\"; taskId: TaskId; waitId: WaitId; reason: YieldReason };\nexport type AgentIntent = {\n\tkind: \"agent\";\n\tagent: string;\n\ttask: string;\n\tdescription?: string;\n\tcwd?: string;\n\tparentTaskId?: TaskId;\n};\nexport type CommandIntent = {\n\tkind: \"command\";\n\tcommand: string;\n\tdescription?: string;\n\tcwd?: string;\n\tenv?: Record<string, string>;\n\t/** Explicit executable and prefix arguments; command is appended as one argument. */\n\tshell?: { program: string; args: string[] };\n\t/** False replaces the inherited environment with env; omission preserves inheritance. */\n\tinheritEnv?: boolean;\n\tterminal: { kind: \"pipe\" } | { kind: \"pty\"; columns: number; rows: number };\n\texecutionTimeoutMs?: number;\n\tparentTaskId?: TaskId;\n};\nexport type TaskIntent = AgentIntent | CommandIntent;\nexport type TaskWaitConfiguration =\n\t| { kind: \"automatic\"; commandBudgetMs?: number; agentBudgetMs?: number }\n\t| { kind: \"until-settled\" };\nexport type CancelCause = \"user\" | \"owner-close\" | \"execution-timeout\" | \"output-limit\" | \"parent-handoff\" | \"shutdown\";\nexport type OwnerCloseCause = \"session-close\" | \"stage-close\" | \"app-shutdown\";\nexport type Cursor = { generation: Generation; sequence: Sequence };\nexport type NativeTaskRef = { ownerId: OwnerId; taskId: TaskId; attemptId: AttemptId; generation: Generation };\nexport type OutputRef = {\n\townerId: OwnerId;\n\ttaskId: TaskId;\n\tartifactId: string;\n\tbyteCount: string;\n\tomittedRanges: Array<{ start: string; end: string }>;\n};\nexport type TaskResult =\n\t| { kind: \"completed\"; output: OutputRef; exitCode?: number }\n\t| { kind: \"failed\"; code: string; message: string; output?: OutputRef; exitCode?: number }\n\t| { kind: \"cancelled\"; cause: CancelCause; output?: OutputRef };\nexport type Execution =\n\t| { kind: \"queued\" }\n\t| { kind: \"running\" }\n\t| { kind: \"cancelling\"; cause: CancelCause }\n\t| { kind: \"settled\"; result: TaskResult };\nexport type ResourceFailure = { resource: string; code: string; message: string };\nexport type Cleanup =\n\t| { kind: \"active\" }\n\t| { kind: \"draining\" }\n\t| { kind: \"reaped\" }\n\t| { kind: \"failed\"; resources: Array<ResourceFailure> };\nexport type PromptRoute = { sessionId: string; promptId: string; stageAttemptId?: string };\nexport type Attention =\n\t| { kind: \"none\" }\n\t| { kind: \"input-needed\"; requestId: string; prompt: string; route: PromptRoute }\n\t| { kind: \"no-recent-activity\"; lastActivityAt?: string };\nexport type HostObservation =\n\t| { kind: \"foreground\"; waitId: WaitId }\n\t| { kind: \"background\"; reason: YieldReason | \"not-observed\" | \"observer-cancelled\" }\n\t| { kind: \"none\"; reason: \"task-settled\" | \"owner-closing\" };\nexport type TaskRecord = {\n\tref: NativeTaskRef;\n\tlaunchOperationId: OperationId;\n\tparentTaskId?: TaskId;\n\tlaunchGroupId?: string;\n\tlaunchOrdinal: number;\n\tkind: \"agent\" | \"command\";\n\ttitle: string;\n\tagentName?: string;\n\t/** Resolved execution settings, retained after completion. */\n\tmodel?: string;\n\tthinking?: string;\n\texecution: Execution;\n\tobservation: HostObservation;\n\t/** Retained native background membership, independent of the current wait. */\n\twasBackground?: boolean;\n\tattention: Attention;\n\tcleanup: Cleanup;\n\tcurrentAction?: { tool: string; text: string };\n\tmetrics?: { elapsedMs?: number; toolCount?: number; tokenCount?: number };\n\toutput: OutputRef;\n};\n/**\n * The latest 256 accepted activity IDs per task retain SHA-256 payload hashes and receipts.\n * Identical replay is duplicate; changed payload conflicts, without events or retention refresh.\n * Evicted IDs are fresh reports, subject to existing terminal/owner guards, not task revival.\n */\nexport type ActivityReport = {\n\treportId: string;\n\tchange:\n\t\t| { kind: \"action\"; tool: string; text: string }\n\t\t| { kind: \"model\"; model?: string; thinking?: string }\n\t\t| { kind: \"metrics\"; elapsedMs?: number; toolCount?: number; tokenCount?: number }\n\t\t| { kind: \"output\"; offset: string; bytesBase64: string }\n\t\t| { kind: \"attention-set\"; attention: Exclude<Attention, { kind: \"none\" }> }\n\t\t| { kind: \"attention-clear\"; requestId: string };\n};\n/** Terminal reports and their receipts never expire while the task record exists. */\nexport type OutcomeReport = { reportId: string; result: TaskResult };\nexport type TaskEvent =\n\t| { kind: \"task-admitted\"; task: TaskRecord }\n\t| { kind: \"task-started\"; ref: NativeTaskRef }\n\t| { kind: \"wait-yielded\"; ref: NativeTaskRef; waitId: WaitId; reason: YieldReason }\n\t| { kind: \"wait-started\"; ref: NativeTaskRef; waitId: WaitId; observer: \"sdk\" | \"host\" }\n\t| { kind: \"host-observation-changed\"; ref: NativeTaskRef; observation: HostObservation }\n\t| { kind: \"task-activity\"; ref: NativeTaskRef; activity: ActivityReport }\n\t| { kind: \"task-cancelling\"; ref: NativeTaskRef; cause: CancelCause }\n\t| { kind: \"task-settled\"; ref: NativeTaskRef; result: TaskResult; completionId: string }\n\t| { kind: \"cleanup-changed\"; ref: NativeTaskRef; cleanup: Cleanup }\n\t| { kind: \"owner-closing\" }\n\t| { kind: \"owner-closed\" };\nexport type NativeEvent = {\n\tschemaVersion: 1;\n\tcursor: Cursor;\n\townerId: OwnerId;\n\ttaskId?: TaskId;\n\tpayload: TaskEvent;\n};\nexport type OwnerSnapshot = {\n\townerId: OwnerId;\n\tscope: OwnerScope;\n\tgeneration: Generation;\n\tstate: \"open\" | \"closing\" | \"closed\";\n\ttasks: Array<TaskRecord>;\n\tcursor: Cursor;\n};\nexport type ReportReceipt = { reportId: string; cursor: Cursor; disposition: \"accepted\" | \"duplicate\" };\nexport type SettlementReceipt = { taskId: TaskId; cursor: Cursor; result: TaskResult; completionId: string };\nexport type CancelReceipt = {\n\ttaskId: TaskId;\n\tdecision: \"already-settled\" | \"cancellation-requested\";\n\texecution: Execution;\n\tcleanup: Cleanup;\n};\nexport type OwnerCloseReceipt = { ownerId: OwnerId; state: \"closed\"; tasks: Array<CancelReceipt> };\nexport type ArtifactRef = { kind: \"transcript\" | \"result\"; uri: string };\nexport type ModelAdmitted = { kind: \"admitted\"; observation: WaitOutcome; artifacts?: Array<ArtifactRef> };\nexport type ModelRejected = { kind: \"unstarted\"; reason: { kind: \"rejected\"; error: StartFailure } };\nexport type ModelUnstarted =\n\t| ModelRejected\n\t| { kind: \"unstarted\"; reason: { kind: \"skipped\"; cause: \"parallel-group-detach\" } };\nexport type ModelSingleResponse = ModelAdmitted | ModelRejected;\nexport type ModelParallelResponse = {\n\tkind: \"parallel\";\n\tslots: Array<{ ordinal: number; outcome: ModelAdmitted | ModelUnstarted }>;\n};\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AgentTaskHost } from "./agent-adapter.js";
|
|
2
|
+
import type { TaskId } from "./contracts.js";
|
|
3
|
+
export type AdmittedAgentTask = {
|
|
4
|
+
host: AgentTaskHost;
|
|
5
|
+
taskId: TaskId;
|
|
6
|
+
};
|
|
7
|
+
/** Internal durable callback boundary; admission still belongs to the actual host. */
|
|
8
|
+
export declare function collectAgentTasks<T>(signal: AbortSignal, callback: () => Promise<T>, settle: (value: T, tasks: AdmittedAgentTask[]) => Promise<T>): Promise<T>;
|
|
9
|
+
export declare function trackAdmittedAgentTask(task: AdmittedAgentTask): void;
|
|
10
|
+
//# sourceMappingURL=execution-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-scope.d.ts","sourceRoot":"","sources":["../../../src/core/tasks/execution-scope.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAIxE,sFAAsF;AACtF,wBAAsB,iBAAiB,CAAC,CAAC,EACxC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,GAC1D,OAAO,CAAC,CAAC,CAAC,CAWZ;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAKpE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
const executionScope = new AsyncLocalStorage();
|
|
3
|
+
/** Internal durable callback boundary; admission still belongs to the actual host. */
|
|
4
|
+
export async function collectAgentTasks(signal, callback, settle) {
|
|
5
|
+
const scope = { signal, tasks: [] };
|
|
6
|
+
const cancel = () => {
|
|
7
|
+
for (const task of scope.tasks)
|
|
8
|
+
void task.host.cancelTask(task.taskId, "owner-close");
|
|
9
|
+
};
|
|
10
|
+
signal.addEventListener("abort", cancel, { once: true });
|
|
11
|
+
try {
|
|
12
|
+
return await executionScope.run(scope, async () => settle(await callback(), scope.tasks));
|
|
13
|
+
}
|
|
14
|
+
finally {
|
|
15
|
+
signal.removeEventListener("abort", cancel);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export function trackAdmittedAgentTask(task) {
|
|
19
|
+
const scope = executionScope.getStore();
|
|
20
|
+
if (!scope)
|
|
21
|
+
return;
|
|
22
|
+
if (!scope.tasks.some((entry) => entry.host === task.host && entry.taskId === task.taskId))
|
|
23
|
+
scope.tasks.push(task);
|
|
24
|
+
if (scope.signal.aborted)
|
|
25
|
+
void task.host.cancelTask(task.taskId, "owner-close");
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=execution-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-scope.js","sourceRoot":"","sources":["../../../src/core/tasks/execution-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAMrD,MAAM,cAAc,GAAG,IAAI,iBAAiB,EAAa,CAAC;AAE1D,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,MAAmB,EACnB,QAA0B,EAC1B,MAA4D;IAE5D,MAAM,KAAK,GAAc,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,GAAG,EAAE;QACnB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK;YAAE,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACvF,CAAC,CAAC;IACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC;QACJ,OAAO,MAAM,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,QAAQ,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;YAAS,CAAC;QACV,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;AACF,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAuB;IAC7D,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnH,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO;QAAE,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACjF,CAAC","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { AgentTaskHost } from \"./agent-adapter.js\";\nimport type { TaskId } from \"./contracts.js\";\n\nexport type AdmittedAgentTask = { host: AgentTaskHost; taskId: TaskId };\ntype TaskScope = { signal: AbortSignal; tasks: AdmittedAgentTask[] };\nconst executionScope = new AsyncLocalStorage<TaskScope>();\n\n/** Internal durable callback boundary; admission still belongs to the actual host. */\nexport async function collectAgentTasks<T>(\n\tsignal: AbortSignal,\n\tcallback: () => Promise<T>,\n\tsettle: (value: T, tasks: AdmittedAgentTask[]) => Promise<T>,\n): Promise<T> {\n\tconst scope: TaskScope = { signal, tasks: [] };\n\tconst cancel = () => {\n\t\tfor (const task of scope.tasks) void task.host.cancelTask(task.taskId, \"owner-close\");\n\t};\n\tsignal.addEventListener(\"abort\", cancel, { once: true });\n\ttry {\n\t\treturn await executionScope.run(scope, async () => settle(await callback(), scope.tasks));\n\t} finally {\n\t\tsignal.removeEventListener(\"abort\", cancel);\n\t}\n}\n\nexport function trackAdmittedAgentTask(task: AdmittedAgentTask): void {\n\tconst scope = executionScope.getStore();\n\tif (!scope) return;\n\tif (!scope.tasks.some((entry) => entry.host === task.host && entry.taskId === task.taskId)) scope.tasks.push(task);\n\tif (scope.signal.aborted) void task.host.cancelTask(task.taskId, \"owner-close\");\n}\n"]}
|