@astralyn/pi 0.87.6 → 1.0.0
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 +69 -9
- package/README.md +3 -3
- package/dist/bun/runtime-setup.js +4 -1
- package/dist/bun/runtime-setup.js.map +1 -1
- package/dist/bundle/chunks/anthropic-messages-CG2BSDQS.js +6 -0
- package/dist/bundle/chunks/anthropic.js +2 -2
- package/dist/bundle/chunks/azure-openai-responses-PBA4QKCM.js +2 -0
- package/dist/bundle/chunks/bedrock-converse-stream.js +8 -8
- package/dist/bundle/chunks/{chunk-NW5FIDD7.js → chunk-6UFFVA7M.js} +3 -3
- package/dist/bundle/chunks/chunk-G4RY3GN7.js +11 -0
- package/dist/bundle/chunks/chunk-GCKVOFWP.js +2 -0
- package/dist/bundle/chunks/chunk-GIG5IHES.js +2 -0
- package/dist/bundle/chunks/{chunk-4W4Q2H6W.js → chunk-HESRDUKO.js} +1000 -625
- package/dist/bundle/chunks/chunk-MPDALHNJ.js +2 -0
- package/dist/bundle/chunks/chunk-OO6DJ3CL.js +31 -0
- package/dist/bundle/chunks/{chunk-LPQCB2VJ.js → chunk-PFZKRUMO.js} +2 -2
- package/dist/bundle/chunks/chunk-SGLYRVQL.js +2 -0
- package/dist/bundle/chunks/chunk-TRHTWM3C.js +2 -0
- package/dist/bundle/chunks/chunk-V66VGGOM.js +2 -0
- package/dist/bundle/chunks/chunk-Z2RKSI3O.js +2 -0
- package/dist/bundle/chunks/cloudflare-workers-ai-system-one-YB7XPPP4.js +2 -0
- package/dist/bundle/chunks/codemode-worker.js +354 -0
- package/dist/bundle/chunks/github-copilot.js +1 -1
- package/dist/bundle/chunks/google-generative-ai-V5ZM5MCL.js +2 -0
- package/dist/bundle/chunks/google-vertex-22THOFP5.js +2 -0
- package/dist/bundle/chunks/llama-cpp-classify-R7DQLTQN.js +22 -0
- package/dist/bundle/chunks/meta.js +2 -0
- package/dist/bundle/chunks/mistral-conversations-WHSCJJWP.js +5 -0
- package/dist/bundle/chunks/openai-chatgpt.js +75 -0
- package/dist/bundle/chunks/openai-codex-responses-N7GDPBPP.js +10 -0
- package/dist/bundle/chunks/openai-codex.js +2 -2
- package/dist/bundle/chunks/openai-completions-RGGQK5UW.js +7 -0
- package/dist/bundle/chunks/openai-responses-3ZLD5JYI.js +3 -0
- package/dist/bundle/chunks/{openrouter-images-6XDE2CEW.js → openrouter-images-YP3YVB54.js} +1 -1
- package/dist/bundle/chunks/openrouter.js +2 -2
- package/dist/bundle/chunks/{pi-messages-MQMPIPNC.js → pi-messages-HZZ7GEEW.js} +2 -2
- package/dist/bundle/chunks/radius.js +2 -2
- package/dist/bundle/chunks/typesafe-system-one-RREJAKWB.js +2 -0
- package/dist/bundle/chunks/virtual-modules-4RQ2L6W4.js +2 -0
- package/dist/bundle/cli.js +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/rpc-entry.js +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +5 -4
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +38 -30
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/config.d.ts +15 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +33 -4
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts +1 -1
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +13 -13
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +2 -2
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +14 -1
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +121 -36
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +518 -203
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/bug-report.js +1 -1
- package/dist/core/bug-report.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +1 -22
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/utils.d.ts +2 -1
- package/dist/core/compaction/utils.d.ts.map +1 -1
- package/dist/core/compaction/utils.js +25 -18
- package/dist/core/compaction/utils.js.map +1 -1
- package/dist/core/crash-log.d.ts.map +1 -1
- package/dist/core/crash-log.js +2 -1
- package/dist/core/crash-log.js.map +1 -1
- package/dist/core/export-html/template.css +10 -0
- package/dist/core/export-html/template.js +66 -17
- package/dist/core/extensions/distribution-api.d.ts +1 -1
- package/dist/core/extensions/distribution-api.d.ts.map +1 -1
- package/dist/core/extensions/distribution-api.js.map +1 -1
- package/dist/core/extensions/index.d.ts +2 -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.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +67 -5
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +22 -3
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +124 -8
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +310 -25
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/extensions/wrapper.d.ts +2 -2
- package/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/dist/core/extensions/wrapper.js +3 -3
- package/dist/core/extensions/wrapper.js.map +1 -1
- package/dist/core/keybindings.d.ts +70 -5
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +15 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/mcp-servers.d.ts +125 -0
- package/dist/core/mcp-servers.d.ts.map +1 -0
- package/dist/core/mcp-servers.js +199 -0
- package/dist/core/mcp-servers.js.map +1 -0
- package/dist/core/model-registry.d.ts +15 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +29 -0
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +2 -2
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +5 -5
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-runtime.d.ts +47 -3
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +189 -35
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/nested-tool-calls.d.ts +102 -0
- package/dist/core/nested-tool-calls.d.ts.map +1 -0
- package/dist/core/nested-tool-calls.js +177 -0
- package/dist/core/nested-tool-calls.js.map +1 -0
- package/dist/core/package-manager.d.ts +4 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +58 -12
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/provider-composer.d.ts +40 -21
- package/dist/core/provider-composer.d.ts.map +1 -1
- package/dist/core/provider-composer.js +92 -40
- package/dist/core/provider-composer.js.map +1 -1
- package/dist/core/radius.d.ts +2 -0
- package/dist/core/radius.d.ts.map +1 -1
- package/dist/core/radius.js +2 -0
- package/dist/core/radius.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts +8 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +21 -11
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resource-loader.d.ts +7 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +160 -35
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +3 -3
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +26 -7
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +9 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +22 -22
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +41 -4
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +110 -3
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +1 -0
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/source-info.d.ts +8 -0
- package/dist/core/source-info.d.ts.map +1 -1
- package/dist/core/source-info.js +16 -0
- package/dist/core/source-info.js.map +1 -1
- package/dist/core/system-prompt.js +1 -1
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tasks/delivery.d.ts +40 -0
- package/dist/core/tasks/delivery.d.ts.map +1 -0
- package/dist/core/tasks/delivery.js +157 -0
- package/dist/core/tasks/delivery.js.map +1 -0
- package/dist/core/tasks/format.d.ts +7 -0
- package/dist/core/tasks/format.d.ts.map +1 -0
- package/dist/core/tasks/format.js +14 -0
- package/dist/core/tasks/format.js.map +1 -0
- package/dist/core/tasks/history.d.ts +4 -0
- package/dist/core/tasks/history.d.ts.map +1 -0
- package/dist/core/{background → tasks}/history.js +8 -51
- package/dist/core/tasks/history.js.map +1 -0
- package/dist/core/{background → tasks}/output.d.ts +12 -4
- package/dist/core/tasks/output.d.ts.map +1 -0
- package/dist/core/{background → tasks}/output.js +30 -11
- package/dist/core/tasks/output.js.map +1 -0
- package/dist/core/tasks/presentation.d.ts +7 -0
- package/dist/core/tasks/presentation.d.ts.map +1 -0
- package/dist/core/tasks/presentation.js +226 -0
- package/dist/core/tasks/presentation.js.map +1 -0
- package/dist/core/tasks/runtime.d.ts +74 -0
- package/dist/core/tasks/runtime.d.ts.map +1 -0
- package/dist/core/tasks/runtime.js +580 -0
- package/dist/core/tasks/runtime.js.map +1 -0
- package/dist/core/tasks/session.d.ts +49 -0
- package/dist/core/tasks/session.d.ts.map +1 -0
- package/dist/core/tasks/session.js +138 -0
- package/dist/core/tasks/session.js.map +1 -0
- package/dist/core/tasks/store.d.ts +46 -0
- package/dist/core/tasks/store.d.ts.map +1 -0
- package/dist/core/tasks/store.js +162 -0
- package/dist/core/tasks/store.js.map +1 -0
- package/dist/core/{background → tasks}/types.d.ts +64 -86
- package/dist/core/tasks/types.d.ts.map +1 -0
- package/dist/core/tasks/types.js +27 -0
- package/dist/core/tasks/types.js.map +1 -0
- package/dist/core/tools/bash.d.ts +8 -93
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +8 -240
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/grep.d.ts +2 -0
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +2 -0
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts +2 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +9 -0
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts +11 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js +36 -0
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/core/tools/powershell.d.ts +6 -2
- package/dist/core/tools/powershell.d.ts.map +1 -1
- package/dist/core/tools/powershell.js +1 -1
- package/dist/core/tools/powershell.js.map +1 -1
- package/dist/core/tools/render-utils.d.ts +6 -0
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js +26 -0
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/renderers/bash.d.ts +1 -1
- package/dist/core/tools/renderers/bash.d.ts.map +1 -1
- package/dist/core/tools/renderers/bash.js +11 -35
- package/dist/core/tools/renderers/bash.js.map +1 -1
- package/dist/core/tools/renderers/index.d.ts.map +1 -1
- package/dist/core/tools/renderers/index.js +5 -7
- package/dist/core/tools/renderers/index.js.map +1 -1
- package/dist/core/tools/renderers/read.d.ts.map +1 -1
- package/dist/core/tools/renderers/read.js +3 -2
- package/dist/core/tools/renderers/read.js.map +1 -1
- package/dist/core/tools/shell-execution.d.ts +4 -6
- package/dist/core/tools/shell-execution.d.ts.map +1 -1
- package/dist/core/tools/shell-execution.js +22 -13
- package/dist/core/tools/shell-execution.js.map +1 -1
- package/dist/core/tools/shell-tool.d.ts +93 -0
- package/dist/core/tools/shell-tool.d.ts.map +1 -0
- package/dist/core/tools/shell-tool.js +249 -0
- package/dist/core/tools/shell-tool.js.map +1 -0
- package/dist/core/tools/tasks/actions.d.ts +12 -0
- package/dist/core/tools/tasks/actions.d.ts.map +1 -0
- package/dist/{extensions/background → core/tools/tasks}/actions.js +44 -29
- package/dist/core/tools/tasks/actions.js.map +1 -0
- package/dist/core/tools/tasks/constants.d.ts +20 -0
- package/dist/core/tools/tasks/constants.d.ts.map +1 -0
- package/dist/core/tools/tasks/constants.js +20 -0
- package/dist/core/tools/tasks/constants.js.map +1 -0
- package/dist/{extensions/background → core/tools/tasks}/schema.d.ts +7 -7
- package/dist/core/tools/tasks/schema.d.ts.map +1 -0
- package/dist/{extensions/background → core/tools/tasks}/schema.js +21 -20
- package/dist/core/tools/tasks/schema.js.map +1 -0
- package/dist/core/tools/tasks/types.d.ts +53 -0
- package/dist/core/tools/tasks/types.d.ts.map +1 -0
- package/dist/core/tools/tasks/types.js +12 -0
- package/dist/core/tools/tasks/types.js.map +1 -0
- package/dist/core/tools/tasks.d.ts +14 -0
- package/dist/core/tools/tasks.d.ts.map +1 -0
- package/dist/core/tools/tasks.js +40 -0
- package/dist/core/tools/tasks.js.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts +4 -3
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js +4 -2
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/core/tools/truncate.d.ts +14 -0
- package/dist/core/tools/truncate.d.ts.map +1 -1
- package/dist/core/tools/truncate.js +29 -0
- package/dist/core/tools/truncate.js.map +1 -1
- package/dist/core/trust-manager.d.ts.map +1 -1
- package/dist/core/trust-manager.js +1 -0
- package/dist/core/trust-manager.js.map +1 -1
- package/dist/core/usage-totals.d.ts +5 -3
- package/dist/core/usage-totals.d.ts.map +1 -1
- package/dist/core/usage-totals.js +27 -4
- package/dist/core/usage-totals.js.map +1 -1
- package/dist/core/virtual-models.d.ts +117 -0
- package/dist/core/virtual-models.d.ts.map +1 -0
- package/dist/core/virtual-models.js +124 -0
- package/dist/core/virtual-models.js.map +1 -0
- package/dist/extensions/btw/agent.d.ts +17 -8
- package/dist/extensions/btw/agent.d.ts.map +1 -1
- package/dist/extensions/btw/agent.js +74 -76
- package/dist/extensions/btw/agent.js.map +1 -1
- package/dist/extensions/btw/controller.d.ts +0 -1
- package/dist/extensions/btw/controller.d.ts.map +1 -1
- package/dist/extensions/btw/controller.js +26 -33
- package/dist/extensions/btw/controller.js.map +1 -1
- package/dist/extensions/btw/panel.d.ts +13 -14
- package/dist/extensions/btw/panel.d.ts.map +1 -1
- package/dist/extensions/btw/panel.js +38 -29
- package/dist/extensions/btw/panel.js.map +1 -1
- package/dist/extensions/codemode/execute.d.ts +16 -0
- package/dist/extensions/codemode/execute.d.ts.map +1 -0
- package/dist/extensions/codemode/execute.js +536 -0
- package/dist/extensions/codemode/execute.js.map +1 -0
- package/dist/extensions/codemode/execute.lazy.d.ts +3 -0
- package/dist/extensions/codemode/execute.lazy.d.ts.map +1 -0
- package/dist/extensions/codemode/execute.lazy.js +3 -0
- package/dist/extensions/codemode/execute.lazy.js.map +1 -0
- package/dist/extensions/codemode/index.d.ts +21 -0
- package/dist/extensions/codemode/index.d.ts.map +1 -0
- package/dist/extensions/codemode/index.js +36 -0
- package/dist/extensions/codemode/index.js.map +1 -0
- package/dist/extensions/codemode/renderer.d.ts +12 -0
- package/dist/extensions/codemode/renderer.d.ts.map +1 -0
- package/dist/extensions/codemode/renderer.js +137 -0
- package/dist/extensions/codemode/renderer.js.map +1 -0
- package/dist/extensions/codemode/search.d.ts +33 -0
- package/dist/extensions/codemode/search.d.ts.map +1 -0
- package/dist/extensions/codemode/search.js +117 -0
- package/dist/extensions/codemode/search.js.map +1 -0
- package/dist/extensions/codemode/tool.d.ts +123 -0
- package/dist/extensions/codemode/tool.d.ts.map +1 -0
- package/dist/extensions/codemode/tool.js +268 -0
- package/dist/extensions/codemode/tool.js.map +1 -0
- package/dist/extensions/codemode/worker.d.ts +7 -0
- package/dist/extensions/codemode/worker.d.ts.map +1 -0
- package/dist/extensions/codemode/worker.js +7 -0
- package/dist/extensions/codemode/worker.js.map +1 -0
- package/dist/extensions/deepwiki/schema.d.ts +1 -1
- package/dist/extensions/index.js +13 -13
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +65 -13
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/extensions/mcp/cli.d.ts +21 -0
- package/dist/extensions/mcp/cli.d.ts.map +1 -0
- package/dist/extensions/mcp/cli.js +500 -0
- package/dist/extensions/mcp/cli.js.map +1 -0
- package/dist/extensions/mcp/cli.lazy.d.ts +3 -0
- package/dist/extensions/mcp/cli.lazy.d.ts.map +1 -0
- package/dist/extensions/mcp/cli.lazy.js +3 -0
- package/dist/extensions/mcp/cli.lazy.js.map +1 -0
- package/dist/extensions/mcp/config.d.ts +72 -0
- package/dist/extensions/mcp/config.d.ts.map +1 -0
- package/dist/extensions/mcp/config.js +158 -0
- package/dist/extensions/mcp/config.js.map +1 -0
- package/dist/extensions/mcp/index.d.ts +76 -0
- package/dist/extensions/mcp/index.d.ts.map +1 -0
- package/dist/extensions/mcp/index.js +1078 -0
- package/dist/extensions/mcp/index.js.map +1 -0
- package/dist/extensions/mcp/log.d.ts +16 -0
- package/dist/extensions/mcp/log.d.ts.map +1 -0
- package/dist/extensions/mcp/log.js +64 -0
- package/dist/extensions/mcp/log.js.map +1 -0
- package/dist/extensions/mcp/oauth.d.ts +97 -0
- package/dist/extensions/mcp/oauth.d.ts.map +1 -0
- package/dist/extensions/mcp/oauth.js +355 -0
- package/dist/extensions/mcp/oauth.js.map +1 -0
- package/dist/extensions/mcp/resources.d.ts +43 -0
- package/dist/extensions/mcp/resources.d.ts.map +1 -0
- package/dist/extensions/mcp/resources.js +262 -0
- package/dist/extensions/mcp/resources.js.map +1 -0
- package/dist/extensions/mcp/runtime.d.ts +98 -0
- package/dist/extensions/mcp/runtime.d.ts.map +1 -0
- package/dist/extensions/mcp/runtime.js +379 -0
- package/dist/extensions/mcp/runtime.js.map +1 -0
- package/dist/extensions/mcp/runtime.lazy.d.ts +3 -0
- package/dist/extensions/mcp/runtime.lazy.d.ts.map +1 -0
- package/dist/extensions/mcp/runtime.lazy.js +3 -0
- package/dist/extensions/mcp/runtime.lazy.js.map +1 -0
- package/dist/extensions/mcp/tools.d.ts +84 -0
- package/dist/extensions/mcp/tools.d.ts.map +1 -0
- package/dist/extensions/mcp/tools.js +251 -0
- package/dist/extensions/mcp/tools.js.map +1 -0
- package/dist/extensions/mcp/ui.d.ts +60 -0
- package/dist/extensions/mcp/ui.d.ts.map +1 -0
- package/dist/extensions/mcp/ui.js +168 -0
- package/dist/extensions/mcp/ui.js.map +1 -0
- package/dist/extensions/provider/catalog.d.ts +8 -1
- package/dist/extensions/provider/catalog.d.ts.map +1 -1
- package/dist/extensions/provider/catalog.js +31 -0
- package/dist/extensions/provider/catalog.js.map +1 -1
- package/dist/extensions/provider/connection.d.ts +4 -1
- package/dist/extensions/provider/connection.d.ts.map +1 -1
- package/dist/extensions/provider/connection.js +1 -5
- package/dist/extensions/provider/connection.js.map +1 -1
- package/dist/extensions/provider/editing.d.ts +36 -0
- package/dist/extensions/provider/editing.d.ts.map +1 -0
- package/dist/extensions/provider/editing.js +99 -0
- package/dist/extensions/provider/editing.js.map +1 -0
- package/dist/extensions/provider/json-fields.d.ts +5 -0
- package/dist/extensions/provider/json-fields.d.ts.map +1 -0
- package/dist/extensions/provider/json-fields.js +31 -0
- package/dist/extensions/provider/json-fields.js.map +1 -0
- package/dist/extensions/provider/store.d.ts +1 -4
- package/dist/extensions/provider/store.d.ts.map +1 -1
- package/dist/extensions/provider/store.js +2 -30
- package/dist/extensions/provider/store.js.map +1 -1
- package/dist/extensions/provider/ui/builtin-data.d.ts +0 -2
- package/dist/extensions/provider/ui/builtin-data.d.ts.map +1 -1
- package/dist/extensions/provider/ui/builtin-data.js +14 -79
- package/dist/extensions/provider/ui/builtin-data.js.map +1 -1
- package/dist/extensions/provider/ui/compat.d.ts.map +1 -1
- package/dist/extensions/provider/ui/compat.js +6 -9
- package/dist/extensions/provider/ui/compat.js.map +1 -1
- package/dist/extensions/provider/ui/controls.d.ts +48 -0
- package/dist/extensions/provider/ui/controls.d.ts.map +1 -0
- package/dist/extensions/provider/ui/controls.js +108 -0
- package/dist/extensions/provider/ui/controls.js.map +1 -0
- package/dist/extensions/provider/ui/dictionary.d.ts.map +1 -1
- package/dist/extensions/provider/ui/dictionary.js +6 -9
- package/dist/extensions/provider/ui/dictionary.js.map +1 -1
- package/dist/extensions/provider/ui/editor.d.ts +3 -3
- package/dist/extensions/provider/ui/editor.d.ts.map +1 -1
- package/dist/extensions/provider/ui/editor.js +35 -140
- package/dist/extensions/provider/ui/editor.js.map +1 -1
- package/dist/extensions/provider/ui/fetch-models.d.ts +0 -3
- package/dist/extensions/provider/ui/fetch-models.d.ts.map +1 -1
- package/dist/extensions/provider/ui/fetch-models.js +49 -44
- package/dist/extensions/provider/ui/fetch-models.js.map +1 -1
- package/dist/extensions/provider/ui/model-fields.d.ts.map +1 -1
- package/dist/extensions/provider/ui/model-fields.js +11 -14
- package/dist/extensions/provider/ui/model-fields.js.map +1 -1
- package/dist/extensions/provider/ui/model-options.d.ts +4 -34
- package/dist/extensions/provider/ui/model-options.d.ts.map +1 -1
- package/dist/extensions/provider/ui/model-options.js +90 -271
- package/dist/extensions/provider/ui/model-options.js.map +1 -1
- package/dist/extensions/provider/ui/pane.d.ts +4 -18
- package/dist/extensions/provider/ui/pane.d.ts.map +1 -1
- package/dist/extensions/provider/ui/pane.js.map +1 -1
- package/dist/extensions/provider/ui/provider-fields.d.ts +2 -19
- package/dist/extensions/provider/ui/provider-fields.d.ts.map +1 -1
- package/dist/extensions/provider/ui/provider-fields.js +58 -171
- package/dist/extensions/provider/ui/provider-fields.js.map +1 -1
- package/dist/extensions/provider/ui/thinking-map.d.ts.map +1 -1
- package/dist/extensions/provider/ui/thinking-map.js +6 -9
- package/dist/extensions/provider/ui/thinking-map.js.map +1 -1
- package/dist/extensions/question/detail-pane.d.ts +7 -2
- package/dist/extensions/question/detail-pane.d.ts.map +1 -1
- package/dist/extensions/question/detail-pane.js +16 -5
- package/dist/extensions/question/detail-pane.js.map +1 -1
- package/dist/extensions/question/dialog-view.d.ts +41 -0
- package/dist/extensions/question/dialog-view.d.ts.map +1 -0
- package/dist/extensions/question/dialog-view.js +329 -0
- package/dist/extensions/question/dialog-view.js.map +1 -0
- package/dist/extensions/question/dialog.d.ts +3 -3
- package/dist/extensions/question/dialog.d.ts.map +1 -1
- package/dist/extensions/question/dialog.js +220 -634
- package/dist/extensions/question/dialog.js.map +1 -1
- package/dist/extensions/question/index.d.ts.map +1 -1
- package/dist/extensions/question/index.js +2 -3
- package/dist/extensions/question/index.js.map +1 -1
- package/dist/extensions/question/render.d.ts.map +1 -1
- package/dist/extensions/question/render.js +22 -32
- package/dist/extensions/question/render.js.map +1 -1
- package/dist/extensions/question/results.d.ts.map +1 -1
- package/dist/extensions/question/results.js +56 -12
- package/dist/extensions/question/results.js.map +1 -1
- package/dist/extensions/question/schema.d.ts +21 -6
- package/dist/extensions/question/schema.d.ts.map +1 -1
- package/dist/extensions/question/schema.js.map +1 -1
- package/dist/extensions/question/state.d.ts +9 -7
- package/dist/extensions/question/state.d.ts.map +1 -1
- package/dist/extensions/question/state.js +63 -54
- package/dist/extensions/question/state.js.map +1 -1
- package/dist/extensions/question/types.d.ts +41 -18
- package/dist/extensions/question/types.d.ts.map +1 -1
- package/dist/extensions/question/types.js.map +1 -1
- package/dist/extensions/statusline/index.d.ts +4 -0
- package/dist/extensions/statusline/index.d.ts.map +1 -1
- package/dist/extensions/statusline/index.js +18 -355
- package/dist/extensions/statusline/index.js.map +1 -1
- package/dist/extensions/statusline/render.d.ts +19 -0
- package/dist/extensions/statusline/render.d.ts.map +1 -0
- package/dist/extensions/statusline/render.js +163 -0
- package/dist/extensions/statusline/render.js.map +1 -0
- package/dist/extensions/statusline/usage.d.ts +12 -0
- package/dist/extensions/statusline/usage.d.ts.map +1 -0
- package/dist/extensions/statusline/usage.js +36 -0
- package/dist/extensions/statusline/usage.js.map +1 -0
- package/dist/extensions/tool-search/index.d.ts +12 -0
- package/dist/extensions/tool-search/index.d.ts.map +1 -0
- package/dist/extensions/tool-search/index.js +20 -0
- package/dist/extensions/tool-search/index.js.map +1 -0
- package/dist/extensions/tool-search/tool.d.ts +73 -0
- package/dist/extensions/tool-search/tool.d.ts.map +1 -0
- package/dist/extensions/tool-search/tool.js +187 -0
- package/dist/extensions/tool-search/tool.js.map +1 -0
- package/dist/extensions/web-search/execute.d.ts +1 -5
- package/dist/extensions/web-search/execute.d.ts.map +1 -1
- package/dist/extensions/web-search/execute.js +4 -9
- package/dist/extensions/web-search/execute.js.map +1 -1
- package/dist/extensions/web-search/format.d.ts +12 -3
- package/dist/extensions/web-search/format.d.ts.map +1 -1
- package/dist/extensions/web-search/format.js +33 -25
- package/dist/extensions/web-search/format.js.map +1 -1
- package/dist/extensions/web-search/index.d.ts.map +1 -1
- package/dist/extensions/web-search/index.js +6 -29
- package/dist/extensions/web-search/index.js.map +1 -1
- package/dist/extensions/web-search/providers/deepseek.d.ts.map +1 -1
- package/dist/extensions/web-search/providers/deepseek.js +0 -1
- package/dist/extensions/web-search/providers/deepseek.js.map +1 -1
- package/dist/extensions/web-search/providers/http.d.ts +1 -1
- package/dist/extensions/web-search/providers/http.d.ts.map +1 -1
- package/dist/extensions/web-search/providers/http.js.map +1 -1
- package/dist/extensions/web-search/providers/minimax.d.ts.map +1 -1
- package/dist/extensions/web-search/providers/minimax.js +0 -1
- package/dist/extensions/web-search/providers/minimax.js.map +1 -1
- package/dist/extensions/web-search/render.d.ts +7 -2
- package/dist/extensions/web-search/render.d.ts.map +1 -1
- package/dist/extensions/web-search/render.js +32 -4
- package/dist/extensions/web-search/render.js.map +1 -1
- package/dist/extensions/web-search/results.d.ts.map +1 -1
- package/dist/extensions/web-search/results.js +3 -8
- package/dist/extensions/web-search/results.js.map +1 -1
- package/dist/extensions/web-search/types.d.ts +4 -2
- package/dist/extensions/web-search/types.d.ts.map +1 -1
- package/dist/extensions/web-search/types.js.map +1 -1
- package/dist/index.d.ts +12 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +16 -0
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +13 -3
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +3 -1
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.d.ts +4 -4
- package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.js +8 -2
- package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +7 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +42 -3
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts +8 -2
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +24 -21
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/pi-logo-animation.d.ts +68 -0
- package/dist/modes/interactive/components/pi-logo-animation.d.ts.map +1 -0
- package/dist/modes/interactive/components/pi-logo-animation.js +1076 -0
- package/dist/modes/interactive/components/pi-logo-animation.js.map +1 -0
- package/dist/modes/interactive/components/pi-logo-animation.lazy.d.ts +7 -0
- package/dist/modes/interactive/components/pi-logo-animation.lazy.d.ts.map +1 -0
- package/dist/modes/interactive/components/pi-logo-animation.lazy.js +12 -0
- package/dist/modes/interactive/components/pi-logo-animation.lazy.js.map +1 -0
- package/dist/modes/interactive/components/pi-logo.d.ts +19 -0
- package/dist/modes/interactive/components/pi-logo.d.ts.map +1 -0
- package/dist/modes/interactive/components/pi-logo.js +37 -0
- package/dist/modes/interactive/components/pi-logo.js.map +1 -0
- package/dist/modes/interactive/components/radius-login-selector.d.ts +15 -0
- package/dist/modes/interactive/components/radius-login-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/radius-login-selector.js +83 -0
- package/dist/modes/interactive/components/radius-login-selector.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +6 -4
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +33 -11
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/status-marker.d.ts +2 -4
- package/dist/modes/interactive/components/status-marker.d.ts.map +1 -1
- package/dist/modes/interactive/components/status-marker.js +2 -6
- package/dist/modes/interactive/components/status-marker.js.map +1 -1
- package/dist/modes/interactive/components/themed-text.d.ts +17 -0
- package/dist/modes/interactive/components/themed-text.d.ts.map +1 -0
- package/dist/modes/interactive/components/themed-text.js +28 -0
- package/dist/modes/interactive/components/themed-text.js.map +1 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +5 -4
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.d.ts +27 -3
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.js +36 -6
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +12 -4
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +377 -199
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/tasks/completion-render.d.ts +8 -0
- package/dist/modes/interactive/tasks/completion-render.d.ts.map +1 -0
- package/dist/{extensions/background → modes/interactive/tasks}/completion-render.js +41 -91
- package/dist/modes/interactive/tasks/completion-render.js.map +1 -0
- package/dist/modes/interactive/tasks/index.d.ts +12 -0
- package/dist/modes/interactive/tasks/index.d.ts.map +1 -0
- package/dist/modes/interactive/tasks/index.js +102 -0
- package/dist/modes/interactive/tasks/index.js.map +1 -0
- package/dist/modes/interactive/tasks/inspector.d.ts +35 -0
- package/dist/modes/interactive/tasks/inspector.d.ts.map +1 -0
- package/dist/modes/interactive/tasks/inspector.js +93 -0
- package/dist/modes/interactive/tasks/inspector.js.map +1 -0
- package/dist/modes/interactive/tasks/layout.d.ts +40 -0
- package/dist/modes/interactive/tasks/layout.d.ts.map +1 -0
- package/dist/modes/interactive/tasks/layout.js +212 -0
- package/dist/modes/interactive/tasks/layout.js.map +1 -0
- package/dist/modes/interactive/tasks/list.d.ts +21 -0
- package/dist/modes/interactive/tasks/list.d.ts.map +1 -0
- package/dist/modes/interactive/tasks/list.js +96 -0
- package/dist/modes/interactive/tasks/list.js.map +1 -0
- package/dist/modes/interactive/tasks/manager.d.ts +60 -0
- package/dist/modes/interactive/tasks/manager.d.ts.map +1 -0
- package/dist/modes/interactive/tasks/manager.js +380 -0
- package/dist/modes/interactive/tasks/manager.js.map +1 -0
- package/dist/modes/interactive/tasks/model.d.ts +21 -0
- package/dist/modes/interactive/tasks/model.d.ts.map +1 -0
- package/dist/modes/interactive/tasks/model.js +41 -0
- package/dist/modes/interactive/tasks/model.js.map +1 -0
- package/dist/modes/interactive/tasks/render.d.ts +28 -0
- package/dist/modes/interactive/tasks/render.d.ts.map +1 -0
- package/dist/modes/interactive/tasks/render.js +141 -0
- package/dist/modes/interactive/tasks/render.js.map +1 -0
- package/dist/modes/interactive/tasks/task-view.d.ts +13 -0
- package/dist/modes/interactive/tasks/task-view.d.ts.map +1 -0
- package/dist/modes/interactive/tasks/task-view.js +20 -0
- package/dist/modes/interactive/tasks/task-view.js.map +1 -0
- package/dist/modes/interactive/tasks/text.d.ts +6 -0
- package/dist/modes/interactive/tasks/text.d.ts.map +1 -0
- package/dist/modes/interactive/tasks/text.js +16 -0
- package/dist/modes/interactive/tasks/text.js.map +1 -0
- package/dist/modes/interactive/tasks/viewport.d.ts +17 -0
- package/dist/modes/interactive/tasks/viewport.d.ts.map +1 -0
- package/dist/modes/interactive/tasks/viewport.js +59 -0
- package/dist/modes/interactive/tasks/viewport.js.map +1 -0
- package/dist/modes/interactive/tasks/views.d.ts +9 -0
- package/dist/modes/interactive/tasks/views.d.ts.map +1 -0
- package/dist/modes/interactive/tasks/views.js +42 -0
- package/dist/modes/interactive/tasks/views.js.map +1 -0
- package/dist/modes/interactive/theme/dark.json +59 -72
- package/dist/modes/interactive/theme/light.json +57 -69
- package/dist/modes/interactive/theme/system-theme.d.ts +55 -0
- package/dist/modes/interactive/theme/system-theme.d.ts.map +1 -0
- package/dist/modes/interactive/theme/system-theme.js +546 -0
- package/dist/modes/interactive/theme/system-theme.js.map +1 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts +46 -6
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.js +125 -47
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
- package/dist/modes/interactive/theme/theme-json.d.ts +1 -0
- package/dist/modes/interactive/theme/theme-json.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-json.js +3 -1
- package/dist/modes/interactive/theme/theme-json.js.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.json +7 -2
- package/dist/modes/interactive/theme/theme.d.ts +70 -39
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +247 -313
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/interactive/tool-view/fallback.d.ts +1 -1
- package/dist/modes/interactive/tool-view/fallback.d.ts.map +1 -1
- package/dist/modes/interactive/tool-view/fallback.js +4 -1
- package/dist/modes/interactive/tool-view/fallback.js.map +1 -1
- package/dist/modes/interactive/tool-view/tool-execution.js +2 -2
- package/dist/modes/interactive/tool-view/tool-execution.js.map +1 -1
- package/dist/modes/interactive/tui-renderer.d.ts +2 -1
- package/dist/modes/interactive/tui-renderer.d.ts.map +1 -1
- package/dist/modes/interactive/tui-renderer.js +1 -0
- package/dist/modes/interactive/tui-renderer.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +6 -6
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +12 -8
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +7 -9
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +10 -1
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +6 -2
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +14 -17
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard.d.ts +2 -0
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +5 -0
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/paths.d.ts +3 -3
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +5 -4
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/shell.d.ts +1 -3
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +3 -30
- package/dist/utils/shell.js.map +1 -1
- package/docs/bundled/README.md +22 -9
- package/docs/bundled/extensions/question.md +2 -2
- package/docs/bundled/extensions/statusline.md +26 -17
- package/docs/bundled/tasks.md +127 -0
- package/docs/bundled/tool-presentation.md +1 -1
- package/docs/codemode.md +207 -0
- package/docs/custom-provider.md +44 -0
- package/docs/docs.json +14 -10
- package/docs/environment-variables.md +1 -1
- package/docs/extensions.md +94 -93
- package/docs/index.md +2 -1
- package/docs/keybindings.md +17 -9
- package/docs/llama-cpp.md +12 -1
- package/docs/mcp.md +248 -0
- package/docs/models.md +56 -0
- package/docs/packages.md +4 -0
- package/docs/providers.md +14 -0
- package/docs/rpc.md +5 -3
- package/docs/sdk.md +26 -16
- package/docs/security.md +4 -0
- package/docs/session-format.md +20 -23
- package/docs/settings.md +29 -3
- package/docs/themes.md +27 -5
- package/docs/tui.md +21 -1
- package/docs/usage.md +52 -4
- package/docs/virtual-models.md +114 -0
- package/docs/windows.md +2 -0
- package/examples/README.md +2 -2
- package/examples/extensions/README.md +3 -2
- package/examples/extensions/built-in-tool-renderer.ts +16 -40
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +4 -4
- package/examples/extensions/debug-provider.ts +90 -0
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/jev-router.ts +113 -0
- package/examples/extensions/minimal-mode.ts +24 -96
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/rpc-client.ts +1 -1
- package/examples/rpc-extension-ui.ts +1 -1
- package/examples/sdk/14-codemode-mcp.ts +61 -0
- package/examples/sdk/README.md +1 -0
- package/npm-shrinkwrap.json +420 -423
- package/package.json +14 -10
- package/dist/bundle/chunks/anthropic-messages-XWFTZP2N.js +0 -6
- package/dist/bundle/chunks/azure-openai-responses-HS35BQV6.js +0 -2
- package/dist/bundle/chunks/chunk-2IO5GDBS.js +0 -11
- package/dist/bundle/chunks/chunk-EDBLK2JQ.js +0 -2
- package/dist/bundle/chunks/chunk-I5IVW2WS.js +0 -2
- package/dist/bundle/chunks/chunk-IORR2FW4.js +0 -2
- package/dist/bundle/chunks/chunk-NUHFSC37.js +0 -25
- package/dist/bundle/chunks/chunk-UUSTLCVC.js +0 -2
- package/dist/bundle/chunks/google-generative-ai-NOVAJBFC.js +0 -2
- package/dist/bundle/chunks/google-vertex-4VHCZJV5.js +0 -2
- package/dist/bundle/chunks/mistral-conversations-WC6A2WCJ.js +0 -5
- package/dist/bundle/chunks/openai-codex-responses-XCDG75W2.js +0 -10
- package/dist/bundle/chunks/openai-completions-SHS3CAEL.js +0 -7
- package/dist/bundle/chunks/openai-responses-UT6XFKC7.js +0 -2
- package/dist/bundle/chunks/virtual-modules-KUEIEAZN.js +0 -2
- package/dist/core/background/history.d.ts +0 -4
- package/dist/core/background/history.d.ts.map +0 -1
- package/dist/core/background/history.js.map +0 -1
- package/dist/core/background/output.d.ts.map +0 -1
- package/dist/core/background/output.js.map +0 -1
- package/dist/core/background/presentation.d.ts +0 -9
- package/dist/core/background/presentation.d.ts.map +0 -1
- package/dist/core/background/presentation.js +0 -311
- package/dist/core/background/presentation.js.map +0 -1
- package/dist/core/background/service.d.ts +0 -68
- package/dist/core/background/service.d.ts.map +0 -1
- package/dist/core/background/service.js +0 -641
- package/dist/core/background/service.js.map +0 -1
- package/dist/core/background/session.d.ts +0 -67
- package/dist/core/background/session.d.ts.map +0 -1
- package/dist/core/background/session.js +0 -248
- package/dist/core/background/session.js.map +0 -1
- package/dist/core/background/types.d.ts.map +0 -1
- package/dist/core/background/types.js +0 -31
- package/dist/core/background/types.js.map +0 -1
- package/dist/extensions/background/actions.d.ts +0 -11
- package/dist/extensions/background/actions.d.ts.map +0 -1
- package/dist/extensions/background/actions.js.map +0 -1
- package/dist/extensions/background/completion-render.d.ts +0 -8
- package/dist/extensions/background/completion-render.d.ts.map +0 -1
- package/dist/extensions/background/completion-render.js.map +0 -1
- package/dist/extensions/background/constants.d.ts +0 -24
- package/dist/extensions/background/constants.d.ts.map +0 -1
- package/dist/extensions/background/constants.js +0 -24
- package/dist/extensions/background/constants.js.map +0 -1
- package/dist/extensions/background/index.d.ts +0 -7
- package/dist/extensions/background/index.d.ts.map +0 -1
- package/dist/extensions/background/index.js +0 -135
- package/dist/extensions/background/index.js.map +0 -1
- package/dist/extensions/background/keybindings.d.ts +0 -10
- package/dist/extensions/background/keybindings.d.ts.map +0 -1
- package/dist/extensions/background/keybindings.js +0 -14
- package/dist/extensions/background/keybindings.js.map +0 -1
- package/dist/extensions/background/manager.d.ts +0 -80
- package/dist/extensions/background/manager.d.ts.map +0 -1
- package/dist/extensions/background/manager.js +0 -673
- package/dist/extensions/background/manager.js.map +0 -1
- package/dist/extensions/background/render.d.ts +0 -42
- package/dist/extensions/background/render.d.ts.map +0 -1
- package/dist/extensions/background/render.js +0 -225
- package/dist/extensions/background/render.js.map +0 -1
- package/dist/extensions/background/schema.d.ts.map +0 -1
- package/dist/extensions/background/schema.js.map +0 -1
- package/dist/extensions/background/task-view.d.ts +0 -53
- package/dist/extensions/background/task-view.d.ts.map +0 -1
- package/dist/extensions/background/task-view.js +0 -60
- package/dist/extensions/background/task-view.js.map +0 -1
- package/dist/extensions/background/text.d.ts +0 -12
- package/dist/extensions/background/text.d.ts.map +0 -1
- package/dist/extensions/background/text.js +0 -39
- package/dist/extensions/background/text.js.map +0 -1
- package/dist/extensions/background/types.d.ts +0 -85
- package/dist/extensions/background/types.d.ts.map +0 -1
- package/dist/extensions/background/types.js +0 -17
- package/dist/extensions/background/types.js.map +0 -1
- package/dist/extensions/subagent/activity.d.ts +0 -34
- package/dist/extensions/subagent/activity.d.ts.map +0 -1
- package/dist/extensions/subagent/activity.js +0 -192
- package/dist/extensions/subagent/activity.js.map +0 -1
- package/dist/extensions/subagent/agents-command.d.ts +0 -4
- package/dist/extensions/subagent/agents-command.d.ts.map +0 -1
- package/dist/extensions/subagent/agents-command.js +0 -230
- package/dist/extensions/subagent/agents-command.js.map +0 -1
- package/dist/extensions/subagent/agents.d.ts +0 -6
- package/dist/extensions/subagent/agents.d.ts.map +0 -1
- package/dist/extensions/subagent/agents.js +0 -53
- package/dist/extensions/subagent/agents.js.map +0 -1
- package/dist/extensions/subagent/budget.d.ts +0 -15
- package/dist/extensions/subagent/budget.d.ts.map +0 -1
- package/dist/extensions/subagent/budget.js +0 -123
- package/dist/extensions/subagent/budget.js.map +0 -1
- package/dist/extensions/subagent/cancellation.d.ts +0 -29
- package/dist/extensions/subagent/cancellation.d.ts.map +0 -1
- package/dist/extensions/subagent/cancellation.js +0 -91
- package/dist/extensions/subagent/cancellation.js.map +0 -1
- package/dist/extensions/subagent/constants.d.ts +0 -25
- package/dist/extensions/subagent/constants.d.ts.map +0 -1
- package/dist/extensions/subagent/constants.js +0 -50
- package/dist/extensions/subagent/constants.js.map +0 -1
- package/dist/extensions/subagent/index.d.ts +0 -3
- package/dist/extensions/subagent/index.d.ts.map +0 -1
- package/dist/extensions/subagent/index.js +0 -151
- package/dist/extensions/subagent/index.js.map +0 -1
- package/dist/extensions/subagent/model-selection.d.ts +0 -16
- package/dist/extensions/subagent/model-selection.d.ts.map +0 -1
- package/dist/extensions/subagent/model-selection.js +0 -51
- package/dist/extensions/subagent/model-selection.js.map +0 -1
- package/dist/extensions/subagent/render.d.ts +0 -24
- package/dist/extensions/subagent/render.d.ts.map +0 -1
- package/dist/extensions/subagent/render.js +0 -336
- package/dist/extensions/subagent/render.js.map +0 -1
- package/dist/extensions/subagent/resolve.d.ts +0 -31
- package/dist/extensions/subagent/resolve.d.ts.map +0 -1
- package/dist/extensions/subagent/resolve.js +0 -111
- package/dist/extensions/subagent/resolve.js.map +0 -1
- package/dist/extensions/subagent/runner.d.ts +0 -35
- package/dist/extensions/subagent/runner.d.ts.map +0 -1
- package/dist/extensions/subagent/runner.js +0 -255
- package/dist/extensions/subagent/runner.js.map +0 -1
- package/dist/extensions/subagent/schema.d.ts +0 -28
- package/dist/extensions/subagent/schema.d.ts.map +0 -1
- package/dist/extensions/subagent/schema.js +0 -58
- package/dist/extensions/subagent/schema.js.map +0 -1
- package/dist/extensions/subagent/sdk-runner.d.ts +0 -33
- package/dist/extensions/subagent/sdk-runner.d.ts.map +0 -1
- package/dist/extensions/subagent/sdk-runner.js +0 -331
- package/dist/extensions/subagent/sdk-runner.js.map +0 -1
- package/dist/extensions/subagent/settings.d.ts +0 -8
- package/dist/extensions/subagent/settings.d.ts.map +0 -1
- package/dist/extensions/subagent/settings.js +0 -206
- package/dist/extensions/subagent/settings.js.map +0 -1
- package/dist/extensions/subagent/state.d.ts +0 -102
- package/dist/extensions/subagent/state.d.ts.map +0 -1
- package/dist/extensions/subagent/state.js +0 -383
- package/dist/extensions/subagent/state.js.map +0 -1
- package/dist/extensions/subagent/text.d.ts +0 -6
- package/dist/extensions/subagent/text.d.ts.map +0 -1
- package/dist/extensions/subagent/text.js +0 -66
- package/dist/extensions/subagent/text.js.map +0 -1
- package/dist/extensions/subagent/types.d.ts +0 -91
- package/dist/extensions/subagent/types.d.ts.map +0 -1
- package/dist/extensions/subagent/types.js +0 -2
- package/dist/extensions/subagent/types.js.map +0 -1
- package/dist/extensions/subagent/ui/agents-dialog.d.ts +0 -4
- package/dist/extensions/subagent/ui/agents-dialog.d.ts.map +0 -1
- package/dist/extensions/subagent/ui/agents-dialog.js +0 -84
- package/dist/extensions/subagent/ui/agents-dialog.js.map +0 -1
- package/dist/extensions/subagent/ui/choice-menu.d.ts +0 -39
- package/dist/extensions/subagent/ui/choice-menu.d.ts.map +0 -1
- package/dist/extensions/subagent/ui/choice-menu.js +0 -93
- package/dist/extensions/subagent/ui/choice-menu.js.map +0 -1
- package/dist/extensions/subagent/ui/choices.d.ts +0 -36
- package/dist/extensions/subagent/ui/choices.d.ts.map +0 -1
- package/dist/extensions/subagent/ui/choices.js +0 -54
- package/dist/extensions/subagent/ui/choices.js.map +0 -1
- package/dist/extensions/subagent/ui/model-list.d.ts +0 -66
- package/dist/extensions/subagent/ui/model-list.d.ts.map +0 -1
- package/dist/extensions/subagent/ui/model-list.js +0 -235
- package/dist/extensions/subagent/ui/model-list.js.map +0 -1
- package/dist/extensions/subagent/ui/model-picker.d.ts +0 -47
- package/dist/extensions/subagent/ui/model-picker.d.ts.map +0 -1
- package/dist/extensions/subagent/ui/model-picker.js +0 -143
- package/dist/extensions/subagent/ui/model-picker.js.map +0 -1
- package/dist/extensions/subagent/ui/profile-settings-menu.d.ts +0 -41
- package/dist/extensions/subagent/ui/profile-settings-menu.d.ts.map +0 -1
- package/dist/extensions/subagent/ui/profile-settings-menu.js +0 -98
- package/dist/extensions/subagent/ui/profile-settings-menu.js.map +0 -1
- package/dist/extensions/todo/constants.d.ts +0 -16
- package/dist/extensions/todo/constants.d.ts.map +0 -1
- package/dist/extensions/todo/constants.js +0 -30
- package/dist/extensions/todo/constants.js.map +0 -1
- package/dist/extensions/todo/index.d.ts +0 -3
- package/dist/extensions/todo/index.d.ts.map +0 -1
- package/dist/extensions/todo/index.js +0 -98
- package/dist/extensions/todo/index.js.map +0 -1
- package/dist/extensions/todo/schema.d.ts +0 -60
- package/dist/extensions/todo/schema.d.ts.map +0 -1
- package/dist/extensions/todo/schema.js +0 -56
- package/dist/extensions/todo/schema.js.map +0 -1
- package/dist/extensions/todo/state.d.ts +0 -34
- package/dist/extensions/todo/state.d.ts.map +0 -1
- package/dist/extensions/todo/state.js +0 -425
- package/dist/extensions/todo/state.js.map +0 -1
- package/dist/extensions/todo/view.d.ts +0 -36
- package/dist/extensions/todo/view.d.ts.map +0 -1
- package/dist/extensions/todo/view.js +0 -580
- package/dist/extensions/todo/view.js.map +0 -1
- package/dist/extensions/todo/widget.d.ts +0 -15
- package/dist/extensions/todo/widget.d.ts.map +0 -1
- package/dist/extensions/todo/widget.js +0 -50
- package/dist/extensions/todo/widget.js.map +0 -1
- package/docs/bundled/extensions/background.md +0 -132
- package/docs/bundled/extensions/subagent.md +0 -148
- package/docs/bundled/extensions/todo.md +0 -104
- package/examples/extensions/todo.ts +0 -297
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
import { isRetryableAssistantError } from "@earendil-works/pi-ai/compat";
|
|
2
|
-
import { emptyUsage, mergeUsage, toNestedUsage } from "./activity.js";
|
|
3
|
-
import { boundSubagentDetails, resultContent } from "./budget.js";
|
|
4
|
-
import { abortableSleep, createRunCancellation } from "./cancellation.js";
|
|
5
|
-
import { MAX_CONCURRENCY, MAX_TASKS, TASK_RETRY_BASE_DELAY_MS, TASK_RETRY_LIMIT } from "./constants.js";
|
|
6
|
-
import { resolveSubagentTask } from "./resolve.js";
|
|
7
|
-
import { runSdkTask } from "./sdk-runner.js";
|
|
8
|
-
import { loadSubagentConfig } from "./settings.js";
|
|
9
|
-
import { createRunState, reduceRun, statusOf, statusSummary, toRunDetails, versionSum, } from "./state.js";
|
|
10
|
-
export class ConcurrencyGate {
|
|
11
|
-
constructor(limit = MAX_CONCURRENCY) {
|
|
12
|
-
this.active = 0;
|
|
13
|
-
this.waiters = [];
|
|
14
|
-
this.limit = limit;
|
|
15
|
-
}
|
|
16
|
-
acquire(signal) {
|
|
17
|
-
if (signal?.aborted)
|
|
18
|
-
return Promise.reject(new Error("Subagent was aborted while queued."));
|
|
19
|
-
if (this.active < this.limit) {
|
|
20
|
-
this.active++;
|
|
21
|
-
return Promise.resolve(() => this.release());
|
|
22
|
-
}
|
|
23
|
-
return new Promise((resolve, reject) => {
|
|
24
|
-
const waiter = { resolve, reject, signal, settled: false };
|
|
25
|
-
if (signal) {
|
|
26
|
-
waiter.abortListener = () => {
|
|
27
|
-
if (waiter.settled)
|
|
28
|
-
return;
|
|
29
|
-
waiter.settled = true;
|
|
30
|
-
const index = this.waiters.indexOf(waiter);
|
|
31
|
-
if (index >= 0)
|
|
32
|
-
this.waiters.splice(index, 1);
|
|
33
|
-
reject(new Error("Subagent was aborted while queued."));
|
|
34
|
-
};
|
|
35
|
-
signal.addEventListener("abort", waiter.abortListener, { once: true });
|
|
36
|
-
}
|
|
37
|
-
this.waiters.push(waiter);
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
release() {
|
|
41
|
-
this.active = Math.max(0, this.active - 1);
|
|
42
|
-
while (this.waiters.length > 0) {
|
|
43
|
-
const waiter = this.waiters.shift();
|
|
44
|
-
if (waiter.settled || waiter.signal?.aborted)
|
|
45
|
-
continue;
|
|
46
|
-
waiter.settled = true;
|
|
47
|
-
waiter.signal?.removeEventListener("abort", waiter.abortListener);
|
|
48
|
-
this.active++;
|
|
49
|
-
waiter.resolve(() => this.release());
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
function aggregateUsage(runs) {
|
|
55
|
-
const usage = emptyUsage();
|
|
56
|
-
for (const run of runs)
|
|
57
|
-
mergeUsage(usage, run.usage);
|
|
58
|
-
return usage;
|
|
59
|
-
}
|
|
60
|
-
/** Capture report provenance before the tool-details budget can discard it. */
|
|
61
|
-
function backgroundProjection(runs, tasks, details) {
|
|
62
|
-
return {
|
|
63
|
-
text: statusSummary(details),
|
|
64
|
-
workers: runs.map((run, index) => ({
|
|
65
|
-
id: run.id,
|
|
66
|
-
label: run.agent,
|
|
67
|
-
profile: run.agent,
|
|
68
|
-
description: run.description,
|
|
69
|
-
status: run.status,
|
|
70
|
-
prompt: tasks[index]?.prompt ?? run.description,
|
|
71
|
-
activity: run.currentActivity ??
|
|
72
|
-
run.activities
|
|
73
|
-
.slice(-3)
|
|
74
|
-
.map((item) => item.summary)
|
|
75
|
-
.join("\n"),
|
|
76
|
-
report: { text: run.report, truncated: run.reportTruncated },
|
|
77
|
-
error: run.error,
|
|
78
|
-
model: `${run.model} · ${run.thinking}`,
|
|
79
|
-
usage: `${run.usage.totalTokens} tokens · $${run.usage.cost.toFixed(4)} · ${run.usage.toolUses} tool calls`,
|
|
80
|
-
})),
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
function emitDetails(runs, tasks, startedAt, onUpdate) {
|
|
84
|
-
const details = {
|
|
85
|
-
status: statusOf(runs),
|
|
86
|
-
runs: runs.map(toRunDetails),
|
|
87
|
-
startedAt,
|
|
88
|
-
usage: aggregateUsage(runs),
|
|
89
|
-
};
|
|
90
|
-
onUpdate?.(boundSubagentDetails(details), backgroundProjection(runs, tasks, details));
|
|
91
|
-
return details;
|
|
92
|
-
}
|
|
93
|
-
function validateTaskCount(tasks) {
|
|
94
|
-
if (tasks.length === 0)
|
|
95
|
-
throw new Error("Subagent task list must not be empty.");
|
|
96
|
-
if (tasks.length > MAX_TASKS)
|
|
97
|
-
throw new Error(`Subagent task list is limited to ${MAX_TASKS} tasks.`);
|
|
98
|
-
}
|
|
99
|
-
async function resolveTasks(tasks, options) {
|
|
100
|
-
validateTaskCount(tasks);
|
|
101
|
-
// One config load and one resolution pass for the whole batch: every
|
|
102
|
-
// task/profile/cwd/model is settled before any run is created or any
|
|
103
|
-
// worker starts, so a failing task cannot strand half-initialized runs.
|
|
104
|
-
const config = await loadSubagentConfig(options.agentDir, options.onConfigWarning);
|
|
105
|
-
return Promise.all(tasks.map((task, index) => resolveSubagentTask(task, options.parentCwd, options.parent, options.agentDir, config).catch((error) => {
|
|
106
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
107
|
-
throw new Error(`Subagent task tasks[${index}] failed to resolve: ${message}`);
|
|
108
|
-
})));
|
|
109
|
-
}
|
|
110
|
-
// Reuses pi-ai's provider-error classification by wrapping the stored error
|
|
111
|
-
// text in the assistant-message shape it inspects.
|
|
112
|
-
function isRetryableRunError(error) {
|
|
113
|
-
if (!error)
|
|
114
|
-
return false;
|
|
115
|
-
const probe = { role: "assistant", content: [], stopReason: "error", errorMessage: error };
|
|
116
|
-
return isRetryableAssistantError(probe);
|
|
117
|
-
}
|
|
118
|
-
// Session-level auto-retry already covers errors that happen inside the agent
|
|
119
|
-
// loop; this catches the paths that bypass it (preflight throws such as auth
|
|
120
|
-
// checks). Only a run that produced nothing is retried, so partial work is
|
|
121
|
-
// never discarded.
|
|
122
|
-
function shouldRetryTask(run) {
|
|
123
|
-
return (run.status === "failed" && run.usage.turns === 0 && run.usage.toolUses === 0 && isRetryableRunError(run.error));
|
|
124
|
-
}
|
|
125
|
-
// The gate slot is held only while a worker session actually runs. Backoff
|
|
126
|
-
// waits outside the slot (release, sleep, reacquire) so a retrying task
|
|
127
|
-
// cannot starve queued tasks, and aborting during the wait settles the run
|
|
128
|
-
// without occupying the gate.
|
|
129
|
-
async function runWithGate(task, scope, options, dispatch, getState, onProgress) {
|
|
130
|
-
const baseDelayMs = options.taskRetryBaseDelayMs ?? TASK_RETRY_BASE_DELAY_MS;
|
|
131
|
-
for (let attempt = 0;; attempt++) {
|
|
132
|
-
dispatch({ type: "retry_started" });
|
|
133
|
-
let release;
|
|
134
|
-
let delayMs = 0;
|
|
135
|
-
try {
|
|
136
|
-
release = await options.gate.acquire(scope.signal);
|
|
137
|
-
if (scope.signal.aborted) {
|
|
138
|
-
dispatch({ type: "abort_while_queued", endedAt: Date.now() });
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
dispatch({ type: "slot_acquired", startedAt: Date.now() });
|
|
142
|
-
await runSdkTask({
|
|
143
|
-
task,
|
|
144
|
-
scope,
|
|
145
|
-
dispatch,
|
|
146
|
-
modelRuntime: options.modelRuntime,
|
|
147
|
-
agentDir: options.agentDir,
|
|
148
|
-
// Trust follows the directory, not the parent session: a task that
|
|
149
|
-
// works outside the parent must never load that directory's project
|
|
150
|
-
// settings under the parent's trust conclusion.
|
|
151
|
-
projectTrusted: task.insideParent ? options.projectTrusted : false,
|
|
152
|
-
onProgress,
|
|
153
|
-
});
|
|
154
|
-
const state = getState();
|
|
155
|
-
if (attempt >= TASK_RETRY_LIMIT || scope.signal.aborted || !shouldRetryTask(state))
|
|
156
|
-
return;
|
|
157
|
-
delayMs = baseDelayMs * 2 ** attempt;
|
|
158
|
-
dispatch({
|
|
159
|
-
type: "retry_scheduled",
|
|
160
|
-
attempt: attempt + 1,
|
|
161
|
-
maxAttempts: TASK_RETRY_LIMIT,
|
|
162
|
-
deadline: Date.now() + delayMs,
|
|
163
|
-
error: state.error,
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
catch (error) {
|
|
167
|
-
if (scope.signal.aborted) {
|
|
168
|
-
dispatch({ type: "abort_while_queued", endedAt: Date.now() });
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
dispatch({
|
|
172
|
-
type: "settle",
|
|
173
|
-
verdict: "failed",
|
|
174
|
-
report: "",
|
|
175
|
-
error: error instanceof Error ? error.message : String(error),
|
|
176
|
-
endedAt: Date.now(),
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
finally {
|
|
182
|
-
release?.();
|
|
183
|
-
}
|
|
184
|
-
try {
|
|
185
|
-
await abortableSleep(delayMs, scope);
|
|
186
|
-
}
|
|
187
|
-
catch {
|
|
188
|
-
dispatch({ type: "abort_while_retrying", endedAt: Date.now() });
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
export async function runSubagentInvocation(options) {
|
|
194
|
-
// Register one invocation-level scope before the first await so shutdown can
|
|
195
|
-
// never snapshot the active set between preflight and worker creation.
|
|
196
|
-
const invocationScope = createRunCancellation(options.signal);
|
|
197
|
-
const unregisterInvocation = options.registerAbort?.(invocationScope.abort);
|
|
198
|
-
try {
|
|
199
|
-
// Defensive count check: the schema already enforces 1..MAX_TASKS, but
|
|
200
|
-
// strict providers can bypass minItems, so validate before any work.
|
|
201
|
-
const tasks = options.params.tasks ?? [];
|
|
202
|
-
const resolved = await resolveTasks(tasks, options);
|
|
203
|
-
const runs = resolved.map((task, index) => createRunState(task, index, options.batchId, options.parentCwd));
|
|
204
|
-
const startedAt = Date.now();
|
|
205
|
-
const scopes = runs.map(() => createRunCancellation(invocationScope.signal));
|
|
206
|
-
const unregisterChildren = invocationScope.onAbort(async () => {
|
|
207
|
-
await Promise.allSettled(scopes.map((scope) => scope.abort()));
|
|
208
|
-
});
|
|
209
|
-
let lastVersion = versionSum(runs);
|
|
210
|
-
const progress = () => {
|
|
211
|
-
const version = versionSum(runs);
|
|
212
|
-
if (version === lastVersion)
|
|
213
|
-
return;
|
|
214
|
-
lastVersion = version;
|
|
215
|
-
emitDetails(runs, resolved, startedAt, options.onUpdate);
|
|
216
|
-
};
|
|
217
|
-
const dispatch = (index, event) => {
|
|
218
|
-
runs[index] = reduceRun(runs[index], event);
|
|
219
|
-
progress();
|
|
220
|
-
};
|
|
221
|
-
let latestDetails = emitDetails(runs, resolved, startedAt, options.onUpdate);
|
|
222
|
-
// Every task runs concurrently through the shared gate; Promise.all keeps
|
|
223
|
-
// result order identical to input order. There is no single-task branch:
|
|
224
|
-
// one task is just a batch of one.
|
|
225
|
-
try {
|
|
226
|
-
if (!invocationScope.aborted)
|
|
227
|
-
options.onAccepted?.();
|
|
228
|
-
await Promise.all(resolved.map((task, index) => {
|
|
229
|
-
const dispatchToRun = (event) => dispatch(index, event);
|
|
230
|
-
return runWithGate(task, scopes[index], options, dispatchToRun, () => runs[index], progress);
|
|
231
|
-
}));
|
|
232
|
-
}
|
|
233
|
-
finally {
|
|
234
|
-
unregisterChildren();
|
|
235
|
-
for (const scope of scopes)
|
|
236
|
-
scope.dispose();
|
|
237
|
-
}
|
|
238
|
-
latestDetails = emitDetails(runs, resolved, startedAt, undefined);
|
|
239
|
-
latestDetails.endedAt = Date.now();
|
|
240
|
-
// Error classification lives in the tool_result handler (index.ts), the
|
|
241
|
-
// only channel that reaches the session transcript and export.
|
|
242
|
-
return {
|
|
243
|
-
content: resultContent(latestDetails),
|
|
244
|
-
details: boundSubagentDetails(latestDetails),
|
|
245
|
-
projection: backgroundProjection(runs, resolved, latestDetails),
|
|
246
|
-
usage: toNestedUsage(latestDetails.usage),
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
finally {
|
|
250
|
-
unregisterInvocation?.();
|
|
251
|
-
invocationScope.dispose();
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
export { isSubagentError } from "./state.js";
|
|
255
|
-
//# sourceMappingURL=runner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/extensions/subagent/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAGzE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAwB,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxG,OAAO,EAA2B,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACN,cAAc,EACd,SAAS,EAGT,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,UAAU,GACV,MAAM,YAAY,CAAC;AAWpB,MAAM,OAAO,eAAe;IAK3B,YAAY,KAAK,GAAG,eAAe;QAJ3B,WAAM,GAAG,CAAC,CAAC;QACF,YAAO,GAAa,EAAE,CAAC;QAIvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,MAAoB;QAC3B,IAAI,MAAM,EAAE,OAAO;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC5F,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,MAAM,MAAM,GAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACnE,IAAI,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,aAAa,GAAG,GAAG,EAAE;oBAC3B,IAAI,MAAM,CAAC,OAAO;wBAAE,OAAO;oBAC3B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;oBACtB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC3C,IAAI,KAAK,IAAI,CAAC;wBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC9C,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;gBACzD,CAAC,CAAC;gBACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,OAAO;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAG,CAAC;YACrC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO;gBAAE,SAAS;YACvD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,aAAc,CAAC,CAAC;YACnE,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACrC,OAAO;QACR,CAAC;IACF,CAAC;CACD;AAsBD,SAAS,cAAc,CAAC,IAAiC;IACxD,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,SAAS,oBAAoB,CAC5B,IAAiC,EACjC,KAAsC,EACtC,OAAwB;IAExB,OAAO;QACN,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC;QAC5B,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAClC,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,OAAO,EAAE,GAAG,CAAC,KAAK;YAClB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,GAAG,CAAC,WAAW;YAC/C,QAAQ,EACP,GAAG,CAAC,eAAe;gBACnB,GAAG,CAAC,UAAU;qBACZ,KAAK,CAAC,CAAC,CAAC,CAAC;qBACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;qBAC3B,IAAI,CAAC,IAAI,CAAC;YACb,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,eAAe,EAAE;YAC5D,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,QAAQ,EAAE;YACvC,KAAK,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,cAAc,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,aAAa;SAC3G,CAAC,CAAC;KACH,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CACnB,IAAwB,EACxB,KAAsC,EACtC,SAAiB,EACjB,QAA+C;IAE/C,MAAM,OAAO,GAAoB;QAChC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC;QACtB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;QAC5B,SAAS;QACT,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC;KAC3B,CAAC;IACF,QAAQ,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACtF,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA8B;IACxD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACjF,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,SAAS,SAAS,CAAC,CAAC;AACvG,CAAC;AAED,KAAK,UAAU,YAAY,CAC1B,KAA8B,EAC9B,OAAkC;IAElC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzB,qEAAqE;IACrE,qEAAqE;IACrE,wEAAwE;IACxE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACnF,OAAO,OAAO,CAAC,GAAG,CACjB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACzB,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACtG,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,wBAAwB,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CACF,CACD,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,mDAAmD;AACnD,SAAS,mBAAmB,CAAC,KAAyB;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAC3F,OAAO,yBAAyB,CAAC,KAAmE,CAAC,CAAC;AACvG,CAAC;AAED,8EAA8E;AAC9E,6EAA6E;AAC7E,2EAA2E;AAC3E,mBAAmB;AACnB,SAAS,eAAe,CAAC,GAAqB;IAC7C,OAAO,CACN,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAC9G,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,wEAAwE;AACxE,2EAA2E;AAC3E,8BAA8B;AAC9B,KAAK,UAAU,WAAW,CACzB,IAA0B,EAC1B,KAAsB,EACtB,OAAkC,EAClC,QAA2C,EAC3C,QAAgC,EAChC,UAAsB;IAEtB,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,IAAI,wBAAwB,CAAC;IAC7E,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QACnC,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;QACpC,IAAI,OAAiC,CAAC;QACtC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC;YACJ,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC1B,QAAQ,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC9D,OAAO;YACR,CAAC;YACD,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC3D,MAAM,UAAU,CAAC;gBAChB,IAAI;gBACJ,KAAK;gBACL,QAAQ;gBACR,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,mEAAmE;gBACnE,oEAAoE;gBACpE,gDAAgD;gBAChD,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK;gBAClE,UAAU;aACV,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;YACzB,IAAI,OAAO,IAAI,gBAAgB,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAAE,OAAO;YAC3F,OAAO,GAAG,WAAW,GAAG,CAAC,IAAI,OAAO,CAAC;YACrC,QAAQ,CAAC;gBACR,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,OAAO,GAAG,CAAC;gBACpB,WAAW,EAAE,gBAAgB;gBAC7B,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;aAClB,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC1B,QAAQ,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACP,QAAQ,CAAC;oBACR,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,QAAQ;oBACjB,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC7D,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;iBACnB,CAAC,CAAC;YACJ,CAAC;YACD,OAAO;QACR,CAAC;gBAAS,CAAC;YACV,OAAO,EAAE,EAAE,CAAC;QACb,CAAC;QACD,IAAI,CAAC;YACJ,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACR,QAAQ,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAChE,OAAO;QACR,CAAC;IACF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAkC;IAC7E,6EAA6E;IAC7E,uEAAuE;IACvE,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,oBAAoB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5E,IAAI,CAAC;QACJ,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5G,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,MAAM,kBAAkB,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC7D,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QACH,IAAI,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,OAAO,KAAK,WAAW;gBAAE,OAAO;YACpC,WAAW,GAAG,OAAO,CAAC;YACtB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,KAAuB,EAAQ,EAAE;YACjE,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAE,EAAE,KAAK,CAAC,CAAC;YAC7C,QAAQ,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,IAAI,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE7E,0EAA0E;QAC1E,yEAAyE;QACzE,mCAAmC;QACnC,IAAI,CAAC;YACJ,IAAI,CAAC,eAAe,CAAC,OAAO;gBAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YACrD,MAAM,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,MAAM,aAAa,GAAG,CAAC,KAAuB,EAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAChF,OAAO,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAE,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAE,EAAE,QAAQ,CAAC,CAAC;YAChG,CAAC,CAAC,CACF,CAAC;QACH,CAAC;gBAAS,CAAC;YACV,kBAAkB,EAAE,CAAC;YACrB,KAAK,MAAM,KAAK,IAAI,MAAM;gBAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7C,CAAC;QACD,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAClE,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,wEAAwE;QACxE,+DAA+D;QAC/D,OAAO;YACN,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC;YACrC,OAAO,EAAE,oBAAoB,CAAC,aAAa,CAAC;YAC5C,UAAU,EAAE,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;YAC/D,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC;SACzC,CAAC;IACH,CAAC;YAAS,CAAC;QACV,oBAAoB,EAAE,EAAE,CAAC;QACzB,eAAe,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;AACF,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC","sourcesContent":["import { isRetryableAssistantError } from \"@earendil-works/pi-ai/compat\";\nimport type { BackgroundProjection } from \"../../core/background/types.ts\";\nimport type { ModelRuntime } from \"../../core/model-runtime.ts\";\nimport { emptyUsage, mergeUsage, toNestedUsage } from \"./activity.ts\";\nimport { boundSubagentDetails, resultContent } from \"./budget.ts\";\nimport { abortableSleep, createRunCancellation, type RunCancellation } from \"./cancellation.ts\";\nimport { MAX_CONCURRENCY, MAX_TASKS, TASK_RETRY_BASE_DELAY_MS, TASK_RETRY_LIMIT } from \"./constants.ts\";\nimport { type ParentModelContext, resolveSubagentTask } from \"./resolve.ts\";\nimport type { SubagentParams, SubagentTask } from \"./schema.ts\";\nimport { runSdkTask } from \"./sdk-runner.ts\";\nimport { loadSubagentConfig } from \"./settings.ts\";\nimport {\n\tcreateRunState,\n\treduceRun,\n\ttype SubagentRunEvent,\n\ttype SubagentRunState,\n\tstatusOf,\n\tstatusSummary,\n\ttoRunDetails,\n\tversionSum,\n} from \"./state.ts\";\nimport type { ResolvedSubagentTask, SubagentDetails, SubagentExecutionResult, SubagentUsage } from \"./types.ts\";\n\ninterface Waiter {\n\tresolve: (release: () => void) => void;\n\treject: (error: Error) => void;\n\tsignal?: AbortSignal;\n\tabortListener?: () => void;\n\tsettled: boolean;\n}\n\nexport class ConcurrencyGate {\n\tprivate active = 0;\n\tprivate readonly waiters: Waiter[] = [];\n\tprivate readonly limit: number;\n\n\tconstructor(limit = MAX_CONCURRENCY) {\n\t\tthis.limit = limit;\n\t}\n\n\tacquire(signal?: AbortSignal): Promise<() => void> {\n\t\tif (signal?.aborted) return Promise.reject(new Error(\"Subagent was aborted while queued.\"));\n\t\tif (this.active < this.limit) {\n\t\t\tthis.active++;\n\t\t\treturn Promise.resolve(() => this.release());\n\t\t}\n\t\treturn new Promise<() => void>((resolve, reject) => {\n\t\t\tconst waiter: Waiter = { resolve, reject, signal, settled: false };\n\t\t\tif (signal) {\n\t\t\t\twaiter.abortListener = () => {\n\t\t\t\t\tif (waiter.settled) return;\n\t\t\t\t\twaiter.settled = true;\n\t\t\t\t\tconst index = this.waiters.indexOf(waiter);\n\t\t\t\t\tif (index >= 0) this.waiters.splice(index, 1);\n\t\t\t\t\treject(new Error(\"Subagent was aborted while queued.\"));\n\t\t\t\t};\n\t\t\t\tsignal.addEventListener(\"abort\", waiter.abortListener, { once: true });\n\t\t\t}\n\t\t\tthis.waiters.push(waiter);\n\t\t});\n\t}\n\n\tprivate release(): void {\n\t\tthis.active = Math.max(0, this.active - 1);\n\t\twhile (this.waiters.length > 0) {\n\t\t\tconst waiter = this.waiters.shift()!;\n\t\t\tif (waiter.settled || waiter.signal?.aborted) continue;\n\t\t\twaiter.settled = true;\n\t\t\twaiter.signal?.removeEventListener(\"abort\", waiter.abortListener!);\n\t\t\tthis.active++;\n\t\t\twaiter.resolve(() => this.release());\n\t\t\treturn;\n\t\t}\n\t}\n}\n\nexport interface SubagentInvocationOptions {\n\tparams: SubagentParams;\n\tparentCwd: string;\n\tparent: ParentModelContext;\n\tmodelRuntime: ModelRuntime;\n\tagentDir: string;\n\tprojectTrusted: boolean;\n\tsignal?: AbortSignal;\n\tgate: ConcurrencyGate;\n\tonUpdate?: (details: SubagentDetails, projection: BackgroundProjection) => void;\n\t/** Whole-batch preflight and initial publication finished; no worker has started. */\n\tonAccepted?: () => void;\n\tonConfigWarning?: (message: string) => void;\n\tregisterAbort?: (abort: () => Promise<void>) => () => void;\n\t/** Test hook: overrides the task-retry backoff base delay. */\n\ttaskRetryBaseDelayMs?: number;\n\t/** Tool-call id of the invoking call; prefixes per-run ids for readability. */\n\tbatchId?: string;\n}\n\nfunction aggregateUsage(runs: readonly SubagentRunState[]): SubagentUsage {\n\tconst usage = emptyUsage();\n\tfor (const run of runs) mergeUsage(usage, run.usage);\n\treturn usage;\n}\n\n/** Capture report provenance before the tool-details budget can discard it. */\nfunction backgroundProjection(\n\truns: readonly SubagentRunState[],\n\ttasks: readonly ResolvedSubagentTask[],\n\tdetails: SubagentDetails,\n): BackgroundProjection {\n\treturn {\n\t\ttext: statusSummary(details),\n\t\tworkers: runs.map((run, index) => ({\n\t\t\tid: run.id,\n\t\t\tlabel: run.agent,\n\t\t\tprofile: run.agent,\n\t\t\tdescription: run.description,\n\t\t\tstatus: run.status,\n\t\t\tprompt: tasks[index]?.prompt ?? run.description,\n\t\t\tactivity:\n\t\t\t\trun.currentActivity ??\n\t\t\t\trun.activities\n\t\t\t\t\t.slice(-3)\n\t\t\t\t\t.map((item) => item.summary)\n\t\t\t\t\t.join(\"\\n\"),\n\t\t\treport: { text: run.report, truncated: run.reportTruncated },\n\t\t\terror: run.error,\n\t\t\tmodel: `${run.model} · ${run.thinking}`,\n\t\t\tusage: `${run.usage.totalTokens} tokens · $${run.usage.cost.toFixed(4)} · ${run.usage.toolUses} tool calls`,\n\t\t})),\n\t};\n}\n\nfunction emitDetails(\n\truns: SubagentRunState[],\n\ttasks: readonly ResolvedSubagentTask[],\n\tstartedAt: number,\n\tonUpdate: SubagentInvocationOptions[\"onUpdate\"],\n): SubagentDetails {\n\tconst details: SubagentDetails = {\n\t\tstatus: statusOf(runs),\n\t\truns: runs.map(toRunDetails),\n\t\tstartedAt,\n\t\tusage: aggregateUsage(runs),\n\t};\n\tonUpdate?.(boundSubagentDetails(details), backgroundProjection(runs, tasks, details));\n\treturn details;\n}\n\nfunction validateTaskCount(tasks: readonly SubagentTask[]): void {\n\tif (tasks.length === 0) throw new Error(\"Subagent task list must not be empty.\");\n\tif (tasks.length > MAX_TASKS) throw new Error(`Subagent task list is limited to ${MAX_TASKS} tasks.`);\n}\n\nasync function resolveTasks(\n\ttasks: readonly SubagentTask[],\n\toptions: SubagentInvocationOptions,\n): Promise<ResolvedSubagentTask[]> {\n\tvalidateTaskCount(tasks);\n\t// One config load and one resolution pass for the whole batch: every\n\t// task/profile/cwd/model is settled before any run is created or any\n\t// worker starts, so a failing task cannot strand half-initialized runs.\n\tconst config = await loadSubagentConfig(options.agentDir, options.onConfigWarning);\n\treturn Promise.all(\n\t\ttasks.map((task, index) =>\n\t\t\tresolveSubagentTask(task, options.parentCwd, options.parent, options.agentDir, config).catch((error) => {\n\t\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\t\tthrow new Error(`Subagent task tasks[${index}] failed to resolve: ${message}`);\n\t\t\t}),\n\t\t),\n\t);\n}\n\n// Reuses pi-ai's provider-error classification by wrapping the stored error\n// text in the assistant-message shape it inspects.\nfunction isRetryableRunError(error: string | undefined): boolean {\n\tif (!error) return false;\n\tconst probe = { role: \"assistant\", content: [], stopReason: \"error\", errorMessage: error };\n\treturn isRetryableAssistantError(probe as unknown as Parameters<typeof isRetryableAssistantError>[0]);\n}\n\n// Session-level auto-retry already covers errors that happen inside the agent\n// loop; this catches the paths that bypass it (preflight throws such as auth\n// checks). Only a run that produced nothing is retried, so partial work is\n// never discarded.\nfunction shouldRetryTask(run: SubagentRunState): boolean {\n\treturn (\n\t\trun.status === \"failed\" && run.usage.turns === 0 && run.usage.toolUses === 0 && isRetryableRunError(run.error)\n\t);\n}\n\n// The gate slot is held only while a worker session actually runs. Backoff\n// waits outside the slot (release, sleep, reacquire) so a retrying task\n// cannot starve queued tasks, and aborting during the wait settles the run\n// without occupying the gate.\nasync function runWithGate(\n\ttask: ResolvedSubagentTask,\n\tscope: RunCancellation,\n\toptions: SubagentInvocationOptions,\n\tdispatch: (event: SubagentRunEvent) => void,\n\tgetState: () => SubagentRunState,\n\tonProgress: () => void,\n): Promise<void> {\n\tconst baseDelayMs = options.taskRetryBaseDelayMs ?? TASK_RETRY_BASE_DELAY_MS;\n\tfor (let attempt = 0; ; attempt++) {\n\t\tdispatch({ type: \"retry_started\" });\n\t\tlet release: (() => void) | undefined;\n\t\tlet delayMs = 0;\n\t\ttry {\n\t\t\trelease = await options.gate.acquire(scope.signal);\n\t\t\tif (scope.signal.aborted) {\n\t\t\t\tdispatch({ type: \"abort_while_queued\", endedAt: Date.now() });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdispatch({ type: \"slot_acquired\", startedAt: Date.now() });\n\t\t\tawait runSdkTask({\n\t\t\t\ttask,\n\t\t\t\tscope,\n\t\t\t\tdispatch,\n\t\t\t\tmodelRuntime: options.modelRuntime,\n\t\t\t\tagentDir: options.agentDir,\n\t\t\t\t// Trust follows the directory, not the parent session: a task that\n\t\t\t\t// works outside the parent must never load that directory's project\n\t\t\t\t// settings under the parent's trust conclusion.\n\t\t\t\tprojectTrusted: task.insideParent ? options.projectTrusted : false,\n\t\t\t\tonProgress,\n\t\t\t});\n\t\t\tconst state = getState();\n\t\t\tif (attempt >= TASK_RETRY_LIMIT || scope.signal.aborted || !shouldRetryTask(state)) return;\n\t\t\tdelayMs = baseDelayMs * 2 ** attempt;\n\t\t\tdispatch({\n\t\t\t\ttype: \"retry_scheduled\",\n\t\t\t\tattempt: attempt + 1,\n\t\t\t\tmaxAttempts: TASK_RETRY_LIMIT,\n\t\t\t\tdeadline: Date.now() + delayMs,\n\t\t\t\terror: state.error,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tif (scope.signal.aborted) {\n\t\t\t\tdispatch({ type: \"abort_while_queued\", endedAt: Date.now() });\n\t\t\t} else {\n\t\t\t\tdispatch({\n\t\t\t\t\ttype: \"settle\",\n\t\t\t\t\tverdict: \"failed\",\n\t\t\t\t\treport: \"\",\n\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\tendedAt: Date.now(),\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn;\n\t\t} finally {\n\t\t\trelease?.();\n\t\t}\n\t\ttry {\n\t\t\tawait abortableSleep(delayMs, scope);\n\t\t} catch {\n\t\t\tdispatch({ type: \"abort_while_retrying\", endedAt: Date.now() });\n\t\t\treturn;\n\t\t}\n\t}\n}\n\nexport async function runSubagentInvocation(options: SubagentInvocationOptions): Promise<SubagentExecutionResult> {\n\t// Register one invocation-level scope before the first await so shutdown can\n\t// never snapshot the active set between preflight and worker creation.\n\tconst invocationScope = createRunCancellation(options.signal);\n\tconst unregisterInvocation = options.registerAbort?.(invocationScope.abort);\n\ttry {\n\t\t// Defensive count check: the schema already enforces 1..MAX_TASKS, but\n\t\t// strict providers can bypass minItems, so validate before any work.\n\t\tconst tasks = options.params.tasks ?? [];\n\t\tconst resolved = await resolveTasks(tasks, options);\n\t\tconst runs = resolved.map((task, index) => createRunState(task, index, options.batchId, options.parentCwd));\n\t\tconst startedAt = Date.now();\n\t\tconst scopes = runs.map(() => createRunCancellation(invocationScope.signal));\n\t\tconst unregisterChildren = invocationScope.onAbort(async () => {\n\t\t\tawait Promise.allSettled(scopes.map((scope) => scope.abort()));\n\t\t});\n\t\tlet lastVersion = versionSum(runs);\n\t\tconst progress = (): void => {\n\t\t\tconst version = versionSum(runs);\n\t\t\tif (version === lastVersion) return;\n\t\t\tlastVersion = version;\n\t\t\temitDetails(runs, resolved, startedAt, options.onUpdate);\n\t\t};\n\t\tconst dispatch = (index: number, event: SubagentRunEvent): void => {\n\t\t\truns[index] = reduceRun(runs[index]!, event);\n\t\t\tprogress();\n\t\t};\n\t\tlet latestDetails = emitDetails(runs, resolved, startedAt, options.onUpdate);\n\n\t\t// Every task runs concurrently through the shared gate; Promise.all keeps\n\t\t// result order identical to input order. There is no single-task branch:\n\t\t// one task is just a batch of one.\n\t\ttry {\n\t\t\tif (!invocationScope.aborted) options.onAccepted?.();\n\t\t\tawait Promise.all(\n\t\t\t\tresolved.map((task, index) => {\n\t\t\t\t\tconst dispatchToRun = (event: SubagentRunEvent): void => dispatch(index, event);\n\t\t\t\t\treturn runWithGate(task, scopes[index]!, options, dispatchToRun, () => runs[index]!, progress);\n\t\t\t\t}),\n\t\t\t);\n\t\t} finally {\n\t\t\tunregisterChildren();\n\t\t\tfor (const scope of scopes) scope.dispose();\n\t\t}\n\t\tlatestDetails = emitDetails(runs, resolved, startedAt, undefined);\n\t\tlatestDetails.endedAt = Date.now();\n\t\t// Error classification lives in the tool_result handler (index.ts), the\n\t\t// only channel that reaches the session transcript and export.\n\t\treturn {\n\t\t\tcontent: resultContent(latestDetails),\n\t\t\tdetails: boundSubagentDetails(latestDetails),\n\t\t\tprojection: backgroundProjection(runs, resolved, latestDetails),\n\t\t\tusage: toNestedUsage(latestDetails.usage),\n\t\t};\n\t} finally {\n\t\tunregisterInvocation?.();\n\t\tinvocationScope.dispose();\n\t}\n}\n\nexport { isSubagentError } from \"./state.ts\";\n"]}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { type Static, Type } from "typebox";
|
|
2
|
-
export declare const TaskSchema: Type.TObject<{
|
|
3
|
-
agent: Type.TOptional<Type.TUnion<[Type.TUnsafe<"explorer" | "general">, Type.TNull]>>;
|
|
4
|
-
prompt: Type.TString;
|
|
5
|
-
description: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
6
|
-
cwd: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
7
|
-
}>;
|
|
8
|
-
export declare const SubagentParamsSchema: Type.TObject<{
|
|
9
|
-
background: Type.TOptional<Type.TUnion<[Type.TBoolean, Type.TNull]>>;
|
|
10
|
-
tasks: Type.TArray<Type.TObject<{
|
|
11
|
-
agent: Type.TOptional<Type.TUnion<[Type.TUnsafe<"explorer" | "general">, Type.TNull]>>;
|
|
12
|
-
prompt: Type.TString;
|
|
13
|
-
description: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
14
|
-
cwd: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
|
|
15
|
-
}>>;
|
|
16
|
-
}>;
|
|
17
|
-
export type SubagentParams = Static<typeof SubagentParamsSchema>;
|
|
18
|
-
export type SubagentTask = Static<typeof TaskSchema>;
|
|
19
|
-
/**
|
|
20
|
-
* Unambiguous argument normalizations applied before schema validation:
|
|
21
|
-
* a single task written at the root ({agent, prompt, ...} with no tasks)
|
|
22
|
-
* wraps into tasks[0] with background left at the root, and root-level null
|
|
23
|
-
* fields the schema does not declare are dropped as strict-mode leftovers.
|
|
24
|
-
* Non-null unknown fields are kept on purpose: validation names them instead
|
|
25
|
-
* of silently discarding what may be briefing content.
|
|
26
|
-
*/
|
|
27
|
-
export declare function normalizeSubagentArguments(raw: unknown): SubagentParams;
|
|
28
|
-
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/extensions/subagent/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,IAAI,EAAE,MAAM,SAAS,CAAC;AAW1D,eAAO,MAAM,UAAU;;;;;EAqBtB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;EAahC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AAKrD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAevE"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { StringEnum } from "@earendil-works/pi-ai";
|
|
2
|
-
import { Type } from "typebox";
|
|
3
|
-
import { MAX_CONCURRENCY, MAX_TASKS, SUBAGENT_AGENT_NAMES } from "./constants.js";
|
|
4
|
-
// Strict constrained-sampling providers treat every property as required
|
|
5
|
-
// and reject bare unions at the top level, so the schema is a flat
|
|
6
|
-
// `type: "object"` whose optional fields are also nullable: callers omit
|
|
7
|
-
// a field when the grammar allows it and send null when it does not.
|
|
8
|
-
function nullable(schema, description) {
|
|
9
|
-
return Type.Optional(Type.Union([schema, Type.Null()], { description }));
|
|
10
|
-
}
|
|
11
|
-
export const TaskSchema = Type.Object({
|
|
12
|
-
agent: nullable(StringEnum(SUBAGENT_AGENT_NAMES, { description: "Which built-in profile runs this task" }), "Built-in profile; null or omit for explorer (the default)"),
|
|
13
|
-
prompt: Type.String({
|
|
14
|
-
minLength: 1,
|
|
15
|
-
maxLength: 50_000,
|
|
16
|
-
description: "Complete self-contained briefing; the worker cannot see the parent conversation",
|
|
17
|
-
}),
|
|
18
|
-
description: nullable(Type.String({ minLength: 1, maxLength: 80 }), "Short task label (3-5 words) shown in the /bg list, live rows, and report headings; null or omit to derive it from the prompt"),
|
|
19
|
-
cwd: nullable(Type.String({ minLength: 1, maxLength: 4_096 }), "Worker directory; relative paths resolve against the parent directory. A directory outside the parent runs without that project's settings. Null or omit to inherit."),
|
|
20
|
-
}, { additionalProperties: false });
|
|
21
|
-
export const SubagentParamsSchema = Type.Object({
|
|
22
|
-
background: nullable(Type.Boolean(), "true runs all tasks as one managed background group and returns a group reference immediately; false, null or omit blocks until every worker finishes and returns their reports"),
|
|
23
|
-
tasks: Type.Array(TaskSchema, {
|
|
24
|
-
minItems: 1,
|
|
25
|
-
maxItems: MAX_TASKS,
|
|
26
|
-
description: `Independent tasks run concurrently: at most ${MAX_CONCURRENCY} active at once, excess tasks queue, and results preserve input order`,
|
|
27
|
-
}),
|
|
28
|
-
}, { additionalProperties: false });
|
|
29
|
-
const ROOT_FIELDS = new Set(["background", "tasks"]);
|
|
30
|
-
const TASK_FIELDS = ["agent", "prompt", "description", "cwd"];
|
|
31
|
-
/**
|
|
32
|
-
* Unambiguous argument normalizations applied before schema validation:
|
|
33
|
-
* a single task written at the root ({agent, prompt, ...} with no tasks)
|
|
34
|
-
* wraps into tasks[0] with background left at the root, and root-level null
|
|
35
|
-
* fields the schema does not declare are dropped as strict-mode leftovers.
|
|
36
|
-
* Non-null unknown fields are kept on purpose: validation names them instead
|
|
37
|
-
* of silently discarding what may be briefing content.
|
|
38
|
-
*/
|
|
39
|
-
export function normalizeSubagentArguments(raw) {
|
|
40
|
-
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
|
41
|
-
return raw;
|
|
42
|
-
const args = { ...raw };
|
|
43
|
-
for (const key of Object.keys(args)) {
|
|
44
|
-
if (args[key] === null && !ROOT_FIELDS.has(key))
|
|
45
|
-
delete args[key];
|
|
46
|
-
}
|
|
47
|
-
if (args.tasks === undefined && typeof args.prompt === "string") {
|
|
48
|
-
const task = {};
|
|
49
|
-
for (const key of TASK_FIELDS) {
|
|
50
|
-
if (args[key] !== undefined)
|
|
51
|
-
task[key] = args[key];
|
|
52
|
-
delete args[key];
|
|
53
|
-
}
|
|
54
|
-
args.tasks = [task];
|
|
55
|
-
}
|
|
56
|
-
return args;
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/extensions/subagent/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { StringEnum } from \"@earendil-works/pi-ai\";\nimport { type Static, type TSchema, Type } from \"typebox\";\nimport { MAX_CONCURRENCY, MAX_TASKS, SUBAGENT_AGENT_NAMES } from \"./constants.ts\";\n\n// Strict constrained-sampling providers treat every property as required\n// and reject bare unions at the top level, so the schema is a flat\n// `type: \"object\"` whose optional fields are also nullable: callers omit\n// a field when the grammar allows it and send null when it does not.\nfunction nullable<T extends TSchema>(schema: T, description: string) {\n\treturn Type.Optional(Type.Union([schema, Type.Null()], { description }));\n}\n\nexport const TaskSchema = Type.Object(\n\t{\n\t\tagent: nullable(\n\t\t\tStringEnum(SUBAGENT_AGENT_NAMES, { description: \"Which built-in profile runs this task\" }),\n\t\t\t\"Built-in profile; null or omit for explorer (the default)\",\n\t\t),\n\t\tprompt: Type.String({\n\t\t\tminLength: 1,\n\t\t\tmaxLength: 50_000,\n\t\t\tdescription: \"Complete self-contained briefing; the worker cannot see the parent conversation\",\n\t\t}),\n\t\tdescription: nullable(\n\t\t\tType.String({ minLength: 1, maxLength: 80 }),\n\t\t\t\"Short task label (3-5 words) shown in the /bg list, live rows, and report headings; null or omit to derive it from the prompt\",\n\t\t),\n\t\tcwd: nullable(\n\t\t\tType.String({ minLength: 1, maxLength: 4_096 }),\n\t\t\t\"Worker directory; relative paths resolve against the parent directory. A directory outside the parent runs without that project's settings. Null or omit to inherit.\",\n\t\t),\n\t},\n\t{ additionalProperties: false },\n);\n\nexport const SubagentParamsSchema = Type.Object(\n\t{\n\t\tbackground: nullable(\n\t\t\tType.Boolean(),\n\t\t\t\"true runs all tasks as one managed background group and returns a group reference immediately; false, null or omit blocks until every worker finishes and returns their reports\",\n\t\t),\n\t\ttasks: Type.Array(TaskSchema, {\n\t\t\tminItems: 1,\n\t\t\tmaxItems: MAX_TASKS,\n\t\t\tdescription: `Independent tasks run concurrently: at most ${MAX_CONCURRENCY} active at once, excess tasks queue, and results preserve input order`,\n\t\t}),\n\t},\n\t{ additionalProperties: false },\n);\n\nexport type SubagentParams = Static<typeof SubagentParamsSchema>;\nexport type SubagentTask = Static<typeof TaskSchema>;\n\nconst ROOT_FIELDS: ReadonlySet<string> = new Set([\"background\", \"tasks\"]);\nconst TASK_FIELDS = [\"agent\", \"prompt\", \"description\", \"cwd\"] as const;\n\n/**\n * Unambiguous argument normalizations applied before schema validation:\n * a single task written at the root ({agent, prompt, ...} with no tasks)\n * wraps into tasks[0] with background left at the root, and root-level null\n * fields the schema does not declare are dropped as strict-mode leftovers.\n * Non-null unknown fields are kept on purpose: validation names them instead\n * of silently discarding what may be briefing content.\n */\nexport function normalizeSubagentArguments(raw: unknown): SubagentParams {\n\tif (raw === null || typeof raw !== \"object\" || Array.isArray(raw)) return raw as SubagentParams;\n\tconst args: Record<string, unknown> = { ...(raw as Record<string, unknown>) };\n\tfor (const key of Object.keys(args)) {\n\t\tif (args[key] === null && !ROOT_FIELDS.has(key)) delete args[key];\n\t}\n\tif (args.tasks === undefined && typeof args.prompt === \"string\") {\n\t\tconst task: Record<string, unknown> = {};\n\t\tfor (const key of TASK_FIELDS) {\n\t\t\tif (args[key] !== undefined) task[key] = args[key];\n\t\t\tdelete args[key];\n\t\t}\n\t\targs.tasks = [task];\n\t}\n\treturn args as SubagentParams;\n}\n"]}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { AgentSessionEvent } from "../../core/agent-session.ts";
|
|
2
|
-
import type { ModelRuntime } from "../../core/model-runtime.ts";
|
|
3
|
-
import type { RunCancellation } from "./cancellation.ts";
|
|
4
|
-
import type { SubagentRunEvent } from "./state.ts";
|
|
5
|
-
import type { ResolvedSubagentTask } from "./types.ts";
|
|
6
|
-
export interface SdkRunnerOptions {
|
|
7
|
-
task: ResolvedSubagentTask;
|
|
8
|
-
/** Cancellation scope covering this attempt (queued through session end). */
|
|
9
|
-
scope: RunCancellation;
|
|
10
|
-
/** Reducer input; the adapter never touches run state directly. */
|
|
11
|
-
dispatch: (event: SubagentRunEvent) => void;
|
|
12
|
-
modelRuntime: ModelRuntime;
|
|
13
|
-
agentDir: string;
|
|
14
|
-
projectTrusted: boolean;
|
|
15
|
-
onProgress?: () => void;
|
|
16
|
-
}
|
|
17
|
-
export interface MappedSessionEvent {
|
|
18
|
-
runEvent: SubagentRunEvent;
|
|
19
|
-
/** Whether the progress emission should be immediate (true) or throttled (false). */
|
|
20
|
-
immediate: boolean;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Pure mapping from AgentSessionEvent to SubagentRunEvent. Returns undefined
|
|
24
|
-
* for events the subagent adapter does not handle. Exported for unit testing.
|
|
25
|
-
*/
|
|
26
|
-
export declare function mapSessionEvent(event: AgentSessionEvent, seenAssistantMessages: Set<unknown>, now?: number): MappedSessionEvent | undefined;
|
|
27
|
-
/**
|
|
28
|
-
* Runs one worker attempt as a pure adapter: it owns the worker session's
|
|
29
|
-
* lifecycle and translates AgentSessionEvents into SubagentRunEvents; every
|
|
30
|
-
* state transition happens in the reducer on the other side of dispatch.
|
|
31
|
-
*/
|
|
32
|
-
export declare function runSdkTask(options: SdkRunnerOptions): Promise<void>;
|
|
33
|
-
//# sourceMappingURL=sdk-runner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-runner.d.ts","sourceRoot":"","sources":["../../../src/extensions/subagent/sdk-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAMhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,6EAA6E;IAC7E,KAAK,EAAE,eAAe,CAAC;IACvB,mEAAmE;IACnE,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5C,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AA+DD,MAAM,WAAW,kBAAkB;IAClC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,qFAAqF;IACrF,SAAS,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,KAAK,EAAE,iBAAiB,EACxB,qBAAqB,EAAE,GAAG,CAAC,OAAO,CAAC,EACnC,GAAG,SAAa,GACd,kBAAkB,GAAG,SAAS,CA4EhC;AA0CD;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwJzE"}
|