@astralyn/pi 0.87.6 → 0.99.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 +30 -6
- 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-KIXY7EDT.js +6 -0
- package/dist/bundle/chunks/anthropic.js +2 -2
- package/dist/bundle/chunks/azure-openai-responses-RPBERDXD.js +2 -0
- package/dist/bundle/chunks/bedrock-converse-stream.js +8 -8
- package/dist/bundle/chunks/{chunk-LPQCB2VJ.js → chunk-A576H74Y.js} +2 -2
- package/dist/bundle/chunks/{chunk-NW5FIDD7.js → chunk-ABVRAYXT.js} +3 -3
- package/dist/bundle/chunks/{chunk-I5IVW2WS.js → chunk-CLLDCO64.js} +1 -1
- package/dist/bundle/chunks/chunk-DEWXBB6W.js +2 -0
- package/dist/bundle/chunks/chunk-G4RY3GN7.js +11 -0
- package/dist/bundle/chunks/chunk-GCKVOFWP.js +2 -0
- package/dist/bundle/chunks/chunk-MPDALHNJ.js +2 -0
- package/dist/bundle/chunks/chunk-OO6DJ3CL.js +31 -0
- package/dist/bundle/chunks/{chunk-4W4Q2H6W.js → chunk-VW2P3X6P.js} +905 -278
- package/dist/bundle/chunks/chunk-VWCWZD6E.js +2 -0
- package/dist/bundle/chunks/cloudflare-workers-ai-system-one-ZYSAFXXL.js +2 -0
- package/dist/bundle/chunks/codemode-worker.js +295 -0
- package/dist/bundle/chunks/github-copilot.js +1 -1
- package/dist/bundle/chunks/google-generative-ai-SDNQVVXA.js +2 -0
- package/dist/bundle/chunks/google-vertex-LZXOLBIO.js +2 -0
- package/dist/bundle/chunks/llama-cpp-classify-7IYGGPND.js +22 -0
- package/dist/bundle/chunks/meta.js +2 -0
- package/dist/bundle/chunks/mistral-conversations-VYKPSSAM.js +5 -0
- package/dist/bundle/chunks/openai-chatgpt.js +75 -0
- package/dist/bundle/chunks/openai-codex-responses-HZ4VUDXD.js +10 -0
- package/dist/bundle/chunks/openai-codex.js +2 -2
- package/dist/bundle/chunks/openai-completions-SKDGF6OE.js +7 -0
- package/dist/bundle/chunks/openai-responses-FPML4SSG.js +3 -0
- package/dist/bundle/chunks/{openrouter-images-6XDE2CEW.js → openrouter-images-5524IQHX.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-Z2CDLKEY.js +2 -0
- package/dist/bundle/chunks/virtual-modules-TQRORWJQ.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 +4 -3
- 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 +18 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +30 -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 +100 -35
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +456 -194
- 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 +55 -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 +305 -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 +30 -5
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +7 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/mcp-servers.d.ts +98 -0
- package/dist/core/mcp-servers.d.ts.map +1 -0
- package/dist/core/mcp-servers.js +158 -0
- package/dist/core/mcp-servers.js.map +1 -0
- package/dist/core/model-registry.d.ts +13 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +25 -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 +41 -3
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +167 -17
- 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/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 +18 -3
- 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 +25 -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 +36 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +108 -2
- 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/history.d.ts +4 -0
- package/dist/core/tasks/history.d.ts.map +1 -0
- package/dist/core/{background → tasks}/history.js +24 -48
- package/dist/core/tasks/history.js.map +1 -0
- package/dist/core/{background → tasks}/output.d.ts +4 -4
- package/dist/core/tasks/output.d.ts.map +1 -0
- package/dist/core/{background → tasks}/output.js +11 -11
- package/dist/core/tasks/output.js.map +1 -0
- package/dist/core/tasks/presentation.d.ts +9 -0
- package/dist/core/tasks/presentation.d.ts.map +1 -0
- package/dist/core/{background → tasks}/presentation.js +53 -51
- package/dist/core/tasks/presentation.js.map +1 -0
- package/dist/core/{background/service.d.ts → tasks/runtime.d.ts} +22 -23
- package/dist/core/tasks/runtime.d.ts.map +1 -0
- package/dist/core/{background/service.js → tasks/runtime.js} +154 -198
- 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 +129 -0
- package/dist/core/tasks/session.js.map +1 -0
- package/dist/core/tasks/store.d.ts +32 -0
- package/dist/core/tasks/store.d.ts.map +1 -0
- package/dist/core/tasks/store.js +135 -0
- package/dist/core/tasks/store.js.map +1 -0
- package/dist/core/{background → tasks}/types.d.ts +80 -62
- package/dist/core/tasks/types.d.ts.map +1 -0
- package/dist/core/{background → tasks}/types.js +9 -9
- package/dist/core/tasks/types.js.map +1 -0
- package/dist/core/tasks/view-data.d.ts +8 -0
- package/dist/core/tasks/view-data.d.ts.map +1 -0
- package/dist/core/tasks/view-data.js +61 -0
- package/dist/core/tasks/view-data.js.map +1 -0
- package/dist/core/tasks/view.d.ts +30 -0
- package/dist/core/tasks/view.d.ts.map +1 -0
- package/dist/core/tasks/view.js +50 -0
- package/dist/core/tasks/view.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 +9 -10
- 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/renderers/shell-task.d.ts +4 -0
- package/dist/core/tools/renderers/shell-task.d.ts.map +1 -0
- package/dist/core/tools/renderers/shell-task.js +35 -0
- package/dist/core/tools/renderers/shell-task.js.map +1 -0
- package/dist/core/tools/shell-execution.d.ts +4 -5
- package/dist/core/tools/shell-execution.d.ts.map +1 -1
- package/dist/core/tools/shell-execution.js +19 -3
- 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 +251 -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 +20 -19
- package/dist/core/tools/tasks/actions.js.map +1 -0
- package/dist/{extensions/background → core/tools/tasks}/constants.d.ts +10 -10
- package/dist/core/tools/tasks/constants.d.ts.map +1 -0
- package/dist/{extensions/background → core/tools/tasks}/constants.js +10 -10
- package/dist/core/tools/tasks/constants.js.map +1 -0
- package/dist/{extensions/background → core/tools/tasks}/schema.d.ts +6 -6
- package/dist/core/tools/tasks/schema.d.ts.map +1 -0
- package/dist/{extensions/background → core/tools/tasks}/schema.js +17 -17
- package/dist/core/tools/tasks/schema.js.map +1 -0
- package/dist/{extensions/background → core/tools/tasks}/types.d.ts +15 -17
- package/dist/core/tools/tasks/types.d.ts.map +1 -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 +115 -0
- package/dist/core/virtual-models.d.ts.map +1 -0
- package/dist/core/virtual-models.js +117 -0
- package/dist/core/virtual-models.js.map +1 -0
- 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 +390 -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 +119 -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 +122 -0
- package/dist/extensions/codemode/tool.d.ts.map +1 -0
- package/dist/extensions/codemode/tool.js +324 -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.d.ts.map +1 -1
- package/dist/extensions/index.js +14 -12
- 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 +485 -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 +70 -0
- package/dist/extensions/mcp/config.d.ts.map +1 -0
- package/dist/extensions/mcp/config.js +146 -0
- package/dist/extensions/mcp/config.js.map +1 -0
- package/dist/extensions/mcp/index.d.ts +52 -0
- package/dist/extensions/mcp/index.d.ts.map +1 -0
- package/dist/extensions/mcp/index.js +904 -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 +94 -0
- package/dist/extensions/mcp/oauth.d.ts.map +1 -0
- package/dist/extensions/mcp/oauth.js +330 -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 +96 -0
- package/dist/extensions/mcp/runtime.d.ts.map +1 -0
- package/dist/extensions/mcp/runtime.js +372 -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 +83 -0
- package/dist/extensions/mcp/tools.d.ts.map +1 -0
- package/dist/extensions/mcp/tools.js +233 -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 +166 -0
- package/dist/extensions/mcp/ui.js.map +1 -0
- package/dist/extensions/statusline/index.js +2 -2
- package/dist/extensions/statusline/index.js.map +1 -1
- 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 +72 -0
- package/dist/extensions/tool-search/tool.d.ts.map +1 -0
- package/dist/extensions/tool-search/tool.js +208 -0
- package/dist/extensions/tool-search/tool.js.map +1 -0
- package/dist/index.d.ts +13 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +10 -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/pi-logo.d.ts +12 -0
- package/dist/modes/interactive/components/pi-logo.d.ts.map +1 -0
- package/dist/modes/interactive/components/pi-logo.js +25 -0
- package/dist/modes/interactive/components/pi-logo.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +3 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +28 -6
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/status-marker.d.ts +2 -2
- package/dist/modes/interactive/components/status-marker.js +2 -2
- 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/interactive-mode.d.ts +2 -4
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +214 -163
- 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 +31 -27
- package/dist/modes/interactive/tasks/completion-render.js.map +1 -0
- package/dist/modes/interactive/tasks/fallback-view.d.ts +4 -0
- package/dist/modes/interactive/tasks/fallback-view.d.ts.map +1 -0
- package/dist/modes/interactive/tasks/fallback-view.js +27 -0
- package/dist/modes/interactive/tasks/fallback-view.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 +97 -0
- package/dist/modes/interactive/tasks/index.js.map +1 -0
- package/dist/modes/interactive/tasks/manager.d.ts +67 -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/{extensions/background → modes/interactive/tasks}/render.d.ts +13 -13
- package/dist/modes/interactive/tasks/render.d.ts.map +1 -0
- package/dist/{extensions/background → modes/interactive/tasks}/render.js +18 -18
- package/dist/modes/interactive/tasks/render.js.map +1 -0
- package/dist/{extensions/background → modes/interactive/tasks}/task-view.d.ts +7 -7
- package/dist/modes/interactive/tasks/task-view.d.ts.map +1 -0
- package/dist/{extensions/background → modes/interactive/tasks}/task-view.js +4 -4
- package/dist/modes/interactive/tasks/task-view.js.map +1 -0
- package/dist/{extensions/background → modes/interactive/tasks}/text.d.ts +1 -1
- package/dist/modes/interactive/tasks/text.d.ts.map +1 -0
- package/dist/{extensions/background → modes/interactive/tasks}/text.js +1 -1
- package/dist/modes/interactive/tasks/text.js.map +1 -0
- package/dist/modes/interactive/tasks/viewport.d.ts +15 -0
- package/dist/modes/interactive/tasks/viewport.d.ts.map +1 -0
- package/dist/modes/interactive/tasks/viewport.js +49 -0
- package/dist/modes/interactive/tasks/viewport.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 +54 -0
- package/dist/modes/interactive/theme/system-theme.d.ts.map +1 -0
- package/dist/modes/interactive/theme/system-theme.js +535 -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 -8
- package/docs/bundled/extensions/statusline.md +2 -2
- package/docs/bundled/tasks.md +141 -0
- package/docs/bundled/tool-presentation.md +1 -1
- package/docs/custom-provider.md +44 -0
- package/docs/docs.json +10 -6
- package/docs/extensions.md +89 -86
- package/docs/index.md +2 -1
- package/docs/keybindings.md +8 -7
- package/docs/llama-cpp.md +12 -1
- package/docs/mcp.md +188 -0
- package/docs/models.md +35 -0
- package/docs/packages.md +4 -0
- package/docs/providers.md +6 -0
- package/docs/rpc.md +5 -3
- package/docs/sdk.md +26 -16
- package/docs/security.md +4 -0
- package/docs/session-format.md +18 -11
- package/docs/settings.md +26 -2
- package/docs/themes.md +27 -5
- package/docs/tui.md +20 -0
- package/docs/usage.md +61 -3
- package/docs/virtual-models.md +114 -0
- package/docs/windows.md +2 -0
- package/examples/README.md +1 -1
- package/examples/extensions/README.md +2 -0
- 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/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 +409 -423
- package/package.json +13 -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-IORR2FW4.js +0 -2
- package/dist/bundle/chunks/chunk-NUHFSC37.js +0 -25
- 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.map +0 -1
- package/dist/core/background/service.d.ts.map +0 -1
- 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.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.map +0 -1
- 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.map +0 -1
- 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.map +0 -1
- package/dist/extensions/background/task-view.js.map +0 -1
- package/dist/extensions/background/text.d.ts.map +0 -1
- package/dist/extensions/background/text.js.map +0 -1
- package/dist/extensions/background/types.d.ts.map +0 -1
- 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/docs/bundled/extensions/background.md +0 -132
- package/docs/bundled/extensions/subagent.md +0 -148
- /package/dist/{extensions/background → core/tools/tasks}/types.js +0 -0
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
export function createRunCancellation(parent) {
|
|
2
|
-
const controller = new AbortController();
|
|
3
|
-
const executions = new Map();
|
|
4
|
-
let current;
|
|
5
|
-
let registrationId = 0;
|
|
6
|
-
let disposed = false;
|
|
7
|
-
const executeHandler = (handler) => {
|
|
8
|
-
if (disposed || !handler)
|
|
9
|
-
return Promise.resolve();
|
|
10
|
-
const existing = executions.get(handler);
|
|
11
|
-
if (existing)
|
|
12
|
-
return existing;
|
|
13
|
-
const execution = Promise.resolve()
|
|
14
|
-
.then(handler)
|
|
15
|
-
.catch(() => undefined);
|
|
16
|
-
executions.set(handler, execution);
|
|
17
|
-
return execution;
|
|
18
|
-
};
|
|
19
|
-
const trigger = () => {
|
|
20
|
-
if (disposed)
|
|
21
|
-
return Promise.resolve();
|
|
22
|
-
if (!controller.signal.aborted)
|
|
23
|
-
controller.abort();
|
|
24
|
-
return executeHandler(current?.handler);
|
|
25
|
-
};
|
|
26
|
-
const parentListener = () => {
|
|
27
|
-
void trigger();
|
|
28
|
-
};
|
|
29
|
-
if (parent) {
|
|
30
|
-
if (parent.aborted)
|
|
31
|
-
void trigger();
|
|
32
|
-
else
|
|
33
|
-
parent.addEventListener("abort", parentListener, { once: true });
|
|
34
|
-
}
|
|
35
|
-
return {
|
|
36
|
-
signal: controller.signal,
|
|
37
|
-
get aborted() {
|
|
38
|
-
return controller.signal.aborted;
|
|
39
|
-
},
|
|
40
|
-
abort: trigger,
|
|
41
|
-
onAbort(handler) {
|
|
42
|
-
if (disposed)
|
|
43
|
-
return () => { };
|
|
44
|
-
const registration = { id: ++registrationId, handler };
|
|
45
|
-
current = registration;
|
|
46
|
-
if (controller.signal.aborted)
|
|
47
|
-
void executeHandler(handler);
|
|
48
|
-
let unregistered = false;
|
|
49
|
-
return () => {
|
|
50
|
-
if (unregistered)
|
|
51
|
-
return;
|
|
52
|
-
unregistered = true;
|
|
53
|
-
if (current?.id === registration.id)
|
|
54
|
-
current = undefined;
|
|
55
|
-
};
|
|
56
|
-
},
|
|
57
|
-
throwIfAborted() {
|
|
58
|
-
if (controller.signal.aborted)
|
|
59
|
-
throw new Error("Subagent run was aborted.");
|
|
60
|
-
},
|
|
61
|
-
dispose() {
|
|
62
|
-
if (disposed)
|
|
63
|
-
return;
|
|
64
|
-
disposed = true;
|
|
65
|
-
current = undefined;
|
|
66
|
-
parent?.removeEventListener("abort", parentListener);
|
|
67
|
-
},
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
/** Sleeps until the deadline or the scope aborts; rejects on abort. */
|
|
71
|
-
export function abortableSleep(ms, scope) {
|
|
72
|
-
return new Promise((resolve, reject) => {
|
|
73
|
-
if (scope.signal.aborted) {
|
|
74
|
-
reject(new Error("Aborted"));
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
let timer;
|
|
78
|
-
const onAbort = () => {
|
|
79
|
-
if (timer)
|
|
80
|
-
clearTimeout(timer);
|
|
81
|
-
scope.signal.removeEventListener("abort", onAbort);
|
|
82
|
-
reject(new Error("Aborted"));
|
|
83
|
-
};
|
|
84
|
-
timer = setTimeout(() => {
|
|
85
|
-
scope.signal.removeEventListener("abort", onAbort);
|
|
86
|
-
resolve();
|
|
87
|
-
}, ms);
|
|
88
|
-
scope.signal.addEventListener("abort", onAbort, { once: true });
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=cancellation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cancellation.js","sourceRoot":"","sources":["../../../src/extensions/subagent/cancellation.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Per-run cancellation scope.\n *\n * One scope owns a single subagent run for its whole life: queued at the\n * gate, task-retry backoff, worker initialization, and the worker session\n * itself. The derived signal fires on either the parent turn signal or an\n * explicit abort (session shutdown); a single optional handler (the worker\n * session's abort) rides along so aborting also stops the live session.\n */\nexport interface RunCancellation {\n\t/** Fires when the parent signal aborts or abort() is called. */\n\treadonly signal: AbortSignal;\n\treadonly aborted: boolean;\n\t/** Idempotent: marks the scope aborted and awaits the current handler. */\n\tabort(): Promise<void>;\n\t/**\n\t * Single-slot abort handler; a later call replaces the earlier one.\n\t * Registering after an abort invokes that handler immediately and once by\n\t * function identity. The returned unregister function is idempotent.\n\t */\n\tonAbort(handler: () => Promise<void>): () => void;\n\tthrowIfAborted(): void;\n\t/** Drops the parent-signal listener and the current handler; idempotent. */\n\tdispose(): void;\n}\n\ninterface HandlerRegistration {\n\tid: number;\n\thandler: () => Promise<void>;\n}\n\nexport function createRunCancellation(parent: AbortSignal | undefined): RunCancellation {\n\tconst controller = new AbortController();\n\tconst executions = new Map<() => Promise<void>, Promise<void>>();\n\tlet current: HandlerRegistration | undefined;\n\tlet registrationId = 0;\n\tlet disposed = false;\n\n\tconst executeHandler = (handler: (() => Promise<void>) | undefined): Promise<void> => {\n\t\tif (disposed || !handler) return Promise.resolve();\n\t\tconst existing = executions.get(handler);\n\t\tif (existing) return existing;\n\t\tconst execution = Promise.resolve()\n\t\t\t.then(handler)\n\t\t\t.catch(() => undefined);\n\t\texecutions.set(handler, execution);\n\t\treturn execution;\n\t};\n\n\tconst trigger = (): Promise<void> => {\n\t\tif (disposed) return Promise.resolve();\n\t\tif (!controller.signal.aborted) controller.abort();\n\t\treturn executeHandler(current?.handler);\n\t};\n\n\tconst parentListener = (): void => {\n\t\tvoid trigger();\n\t};\n\tif (parent) {\n\t\tif (parent.aborted) void trigger();\n\t\telse parent.addEventListener(\"abort\", parentListener, { once: true });\n\t}\n\n\treturn {\n\t\tsignal: controller.signal,\n\t\tget aborted(): boolean {\n\t\t\treturn controller.signal.aborted;\n\t\t},\n\t\tabort: trigger,\n\t\tonAbort(handler: () => Promise<void>): () => void {\n\t\t\tif (disposed) return () => {};\n\t\t\tconst registration: HandlerRegistration = { id: ++registrationId, handler };\n\t\t\tcurrent = registration;\n\t\t\tif (controller.signal.aborted) void executeHandler(handler);\n\t\t\tlet unregistered = false;\n\t\t\treturn () => {\n\t\t\t\tif (unregistered) return;\n\t\t\t\tunregistered = true;\n\t\t\t\tif (current?.id === registration.id) current = undefined;\n\t\t\t};\n\t\t},\n\t\tthrowIfAborted(): void {\n\t\t\tif (controller.signal.aborted) throw new Error(\"Subagent run was aborted.\");\n\t\t},\n\t\tdispose(): void {\n\t\t\tif (disposed) return;\n\t\t\tdisposed = true;\n\t\t\tcurrent = undefined;\n\t\t\tparent?.removeEventListener(\"abort\", parentListener);\n\t\t},\n\t};\n}\n\n/** Sleeps until the deadline or the scope aborts; rejects on abort. */\nexport function abortableSleep(ms: number, scope: RunCancellation): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\t\tif (scope.signal.aborted) {\n\t\t\treject(new Error(\"Aborted\"));\n\t\t\treturn;\n\t\t}\n\t\tlet timer: ReturnType<typeof setTimeout> | undefined;\n\t\tconst onAbort = (): void => {\n\t\t\tif (timer) clearTimeout(timer);\n\t\t\tscope.signal.removeEventListener(\"abort\", onAbort);\n\t\t\treject(new Error(\"Aborted\"));\n\t\t};\n\t\ttimer = setTimeout(() => {\n\t\t\tscope.signal.removeEventListener(\"abort\", onAbort);\n\t\t\tresolve();\n\t\t}, ms);\n\t\tscope.signal.addEventListener(\"abort\", onAbort, { once: true });\n\t});\n}\n"]}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export declare const SUBAGENT_TOOL_NAME = "subagent";
|
|
2
|
-
export declare const SUBAGENT_TOOL_LABEL = "Subagent";
|
|
3
|
-
export declare const SUBAGENT_COMMAND_NAME = "agents";
|
|
4
|
-
export declare const SUBAGENT_CONFIG_VERSION = 1;
|
|
5
|
-
export declare const SUBAGENT_CONFIG_FILE = "subagent.json";
|
|
6
|
-
export declare const MAX_TASKS = 8;
|
|
7
|
-
export declare const MAX_CONCURRENCY = 6;
|
|
8
|
-
export declare const TASK_RETRY_LIMIT = 2;
|
|
9
|
-
export declare const TASK_RETRY_BASE_DELAY_MS = 1000;
|
|
10
|
-
export declare const SUBAGENT_AGENT_NAMES: readonly ["explorer", "general"];
|
|
11
|
-
export type SubagentAgentName = (typeof SUBAGENT_AGENT_NAMES)[number];
|
|
12
|
-
export declare const DEFAULT_AGENT_TOOLS: readonly ["read", "bash", "edit", "write"];
|
|
13
|
-
export declare const EXPLORER_TOOLS: readonly ["read", "grep", "find", "ls", "bash"];
|
|
14
|
-
export declare const THINKING_LEVELS: readonly ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
15
|
-
export declare const ACTIVITY_LIMIT = 80;
|
|
16
|
-
export declare const ACTIVITY_TEXT_LIMIT: number;
|
|
17
|
-
export declare const DISPLAY_ACTIVITY_LIMIT = 3;
|
|
18
|
-
export declare const COMPACTION_ACTIVITY_ID = "compaction";
|
|
19
|
-
export declare const TASK_OUTPUT_LIMIT: number;
|
|
20
|
-
export declare const TOTAL_OUTPUT_LIMIT: number;
|
|
21
|
-
export declare const ERROR_TEXT_LIMIT: number;
|
|
22
|
-
export declare const RETRY_ERROR_TEXT_LIMIT = 160;
|
|
23
|
-
export declare const DETAILS_OUTPUT_LIMIT: number;
|
|
24
|
-
export declare const DETAILS_ACTIVITY_LIMIT = 12;
|
|
25
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/extensions/subagent/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAC7C,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AAEpD,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,eAAe,IAAI,CAAC;AAKjC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAK9C,eAAO,MAAM,oBAAoB,kCAAmC,CAAC;AACrE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAGtE,eAAO,MAAM,mBAAmB,4CAA6C,CAAC;AAI9E,eAAO,MAAM,cAAc,iDAAkD,CAAC;AAE9E,eAAO,MAAM,eAAe,sEAQiB,CAAC;AAE9C,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,mBAAmB,QAAY,CAAC;AAC7C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAIxC,eAAO,MAAM,sBAAsB,eAAe,CAAC;AAGnD,eAAO,MAAM,iBAAiB,QAAY,CAAC;AAE3C,eAAO,MAAM,kBAAkB,QAAY,CAAC;AAC5C,eAAO,MAAM,gBAAgB,QAAW,CAAC;AACzC,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C,eAAO,MAAM,oBAAoB,QAAa,CAAC;AAG/C,eAAO,MAAM,sBAAsB,KAAK,CAAC"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
export const SUBAGENT_TOOL_NAME = "subagent";
|
|
2
|
-
export const SUBAGENT_TOOL_LABEL = "Subagent";
|
|
3
|
-
export const SUBAGENT_COMMAND_NAME = "agents";
|
|
4
|
-
export const SUBAGENT_CONFIG_VERSION = 1;
|
|
5
|
-
export const SUBAGENT_CONFIG_FILE = "subagent.json";
|
|
6
|
-
export const MAX_TASKS = 8;
|
|
7
|
-
export const MAX_CONCURRENCY = 6;
|
|
8
|
-
// Task-level retry for failures that bypass the session's own auto-retry
|
|
9
|
-
// (preflight throws such as auth checks). Only runs that produced nothing
|
|
10
|
-
// are retried, so a retry never discards partial work.
|
|
11
|
-
export const TASK_RETRY_LIMIT = 2;
|
|
12
|
-
export const TASK_RETRY_BASE_DELAY_MS = 1_000;
|
|
13
|
-
// The only selectable agents: the schema's agent field restricts task items
|
|
14
|
-
// to these names, resolve.ts defaults an omitted/null agent to explorer.
|
|
15
|
-
// SubagentAgentName is co-located with its source value; types.ts re-imports it.
|
|
16
|
-
export const SUBAGENT_AGENT_NAMES = ["explorer", "general"];
|
|
17
|
-
// Matches the parent session's default toolset; bash covers search needs.
|
|
18
|
-
export const DEFAULT_AGENT_TOOLS = ["read", "bash", "edit", "write"];
|
|
19
|
-
// The read-only explorer profile gets the standalone search tools plus bash
|
|
20
|
-
// for read-only inspection (git history, counting); the system prompt
|
|
21
|
-
// constrains bash.
|
|
22
|
-
export const EXPLORER_TOOLS = ["read", "grep", "find", "ls", "bash"];
|
|
23
|
-
export const THINKING_LEVELS = [
|
|
24
|
-
"off",
|
|
25
|
-
"minimal",
|
|
26
|
-
"low",
|
|
27
|
-
"medium",
|
|
28
|
-
"high",
|
|
29
|
-
"xhigh",
|
|
30
|
-
"max",
|
|
31
|
-
];
|
|
32
|
-
export const ACTIVITY_LIMIT = 80;
|
|
33
|
-
export const ACTIVITY_TEXT_LIMIT = 24 * 1024;
|
|
34
|
-
export const DISPLAY_ACTIVITY_LIMIT = 3;
|
|
35
|
-
// Auto-compaction enters the activity log as a synthetic entry so the worker's
|
|
36
|
-
// context maintenance is visible alongside its tool calls. Only one compaction
|
|
37
|
-
// can run at a time, so a single fixed id is enough to pair start with end.
|
|
38
|
-
export const COMPACTION_ACTIVITY_ID = "compaction";
|
|
39
|
-
// Per-task ceiling for the model-facing report; the total cap below wins
|
|
40
|
-
// when the batch is large enough that a fair share would exceed it.
|
|
41
|
-
export const TASK_OUTPUT_LIMIT = 32 * 1024;
|
|
42
|
-
// Total cap for the model-facing report across every task section.
|
|
43
|
-
export const TOTAL_OUTPUT_LIMIT = 48 * 1024;
|
|
44
|
-
export const ERROR_TEXT_LIMIT = 8 * 1024;
|
|
45
|
-
export const RETRY_ERROR_TEXT_LIMIT = 160;
|
|
46
|
-
export const DETAILS_OUTPUT_LIMIT = 120 * 1024;
|
|
47
|
-
// Bounded per run inside DETAILS_OUTPUT_LIMIT; each activity costs up to
|
|
48
|
-
// ~600 bytes, so 12 keeps an 8-run parallel batch from starving outputs.
|
|
49
|
-
export const DETAILS_ACTIVITY_LIMIT = 12;
|
|
50
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/extensions/subagent/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAC9C,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAEpD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAC3B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,yEAAyE;AACzE,0EAA0E;AAC1E,uDAAuD;AACvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAE9C,4EAA4E;AAC5E,yEAAyE;AACzE,iFAAiF;AACjF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAU,EAAE,SAAS,CAAU,CAAC;AAGrE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAC9E,4EAA4E;AAC5E,sEAAsE;AACtE,mBAAmB;AACnB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAU,CAAC;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC9B,KAAK;IACL,SAAS;IACT,KAAK;IACL,QAAQ;IACR,MAAM;IACN,OAAO;IACP,KAAK;CACuC,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC;AAC7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,+EAA+E;AAC/E,+EAA+E;AAC/E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,sBAAsB,GAAG,YAAY,CAAC;AACnD,yEAAyE;AACzE,oEAAoE;AACpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C,mEAAmE;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC;AACzC,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,GAAG,IAAI,CAAC;AAC/C,yEAAyE;AACzE,yEAAyE;AACzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC","sourcesContent":["import type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\n\nexport const SUBAGENT_TOOL_NAME = \"subagent\";\nexport const SUBAGENT_TOOL_LABEL = \"Subagent\";\nexport const SUBAGENT_COMMAND_NAME = \"agents\";\nexport const SUBAGENT_CONFIG_VERSION = 1;\nexport const SUBAGENT_CONFIG_FILE = \"subagent.json\";\n\nexport const MAX_TASKS = 8;\nexport const MAX_CONCURRENCY = 6;\n\n// Task-level retry for failures that bypass the session's own auto-retry\n// (preflight throws such as auth checks). Only runs that produced nothing\n// are retried, so a retry never discards partial work.\nexport const TASK_RETRY_LIMIT = 2;\nexport const TASK_RETRY_BASE_DELAY_MS = 1_000;\n\n// The only selectable agents: the schema's agent field restricts task items\n// to these names, resolve.ts defaults an omitted/null agent to explorer.\n// SubagentAgentName is co-located with its source value; types.ts re-imports it.\nexport const SUBAGENT_AGENT_NAMES = [\"explorer\", \"general\"] as const;\nexport type SubagentAgentName = (typeof SUBAGENT_AGENT_NAMES)[number];\n\n// Matches the parent session's default toolset; bash covers search needs.\nexport const DEFAULT_AGENT_TOOLS = [\"read\", \"bash\", \"edit\", \"write\"] as const;\n// The read-only explorer profile gets the standalone search tools plus bash\n// for read-only inspection (git history, counting); the system prompt\n// constrains bash.\nexport const EXPLORER_TOOLS = [\"read\", \"grep\", \"find\", \"ls\", \"bash\"] as const;\n\nexport const THINKING_LEVELS = [\n\t\"off\",\n\t\"minimal\",\n\t\"low\",\n\t\"medium\",\n\t\"high\",\n\t\"xhigh\",\n\t\"max\",\n] as const satisfies readonly ThinkingLevel[];\n\nexport const ACTIVITY_LIMIT = 80;\nexport const ACTIVITY_TEXT_LIMIT = 24 * 1024;\nexport const DISPLAY_ACTIVITY_LIMIT = 3;\n// Auto-compaction enters the activity log as a synthetic entry so the worker's\n// context maintenance is visible alongside its tool calls. Only one compaction\n// can run at a time, so a single fixed id is enough to pair start with end.\nexport const COMPACTION_ACTIVITY_ID = \"compaction\";\n// Per-task ceiling for the model-facing report; the total cap below wins\n// when the batch is large enough that a fair share would exceed it.\nexport const TASK_OUTPUT_LIMIT = 32 * 1024;\n// Total cap for the model-facing report across every task section.\nexport const TOTAL_OUTPUT_LIMIT = 48 * 1024;\nexport const ERROR_TEXT_LIMIT = 8 * 1024;\nexport const RETRY_ERROR_TEXT_LIMIT = 160;\nexport const DETAILS_OUTPUT_LIMIT = 120 * 1024;\n// Bounded per run inside DETAILS_OUTPUT_LIMIT; each activity costs up to\n// ~600 bytes, so 12 keeps an 8-run parallel batch from starving outputs.\nexport const DETAILS_ACTIVITY_LIMIT = 12;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extensions/subagent/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAYpF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA0IvD"}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { getAgentDir } from "../../config.js";
|
|
2
|
-
import { emptyUsage } from "./activity.js";
|
|
3
|
-
import { subagentToolDescription } from "./agents.js";
|
|
4
|
-
import { showAgentsCommand } from "./agents-command.js";
|
|
5
|
-
import { SUBAGENT_COMMAND_NAME, SUBAGENT_TOOL_LABEL, SUBAGENT_TOOL_NAME } from "./constants.js";
|
|
6
|
-
import { renderSubagentCall, renderSubagentResult, scheduleLiveRefresh } from "./render.js";
|
|
7
|
-
import { subagentGroupTitle } from "./resolve.js";
|
|
8
|
-
import { ConcurrencyGate, isSubagentError, runSubagentInvocation } from "./runner.js";
|
|
9
|
-
import { normalizeSubagentArguments, SubagentParamsSchema } from "./schema.js";
|
|
10
|
-
import { statusSummary } from "./state.js";
|
|
11
|
-
export default function subagent(pi) {
|
|
12
|
-
const gate = new ConcurrencyGate();
|
|
13
|
-
let workerOrdinal = 0;
|
|
14
|
-
const activeAborters = new Set();
|
|
15
|
-
pi.registerTool({
|
|
16
|
-
name: SUBAGENT_TOOL_NAME,
|
|
17
|
-
label: SUBAGENT_TOOL_LABEL,
|
|
18
|
-
description: subagentToolDescription(),
|
|
19
|
-
promptSnippet: "Delegate bounded work to isolated explorer or general workers",
|
|
20
|
-
promptGuidelines: [
|
|
21
|
-
"Use `subagent` for bounded work that benefits from isolated context or concurrent investigation; do not delegate a task you can finish with one or two direct tool calls.",
|
|
22
|
-
"Give every task a short `description` label; it is shown in the /bg list, live rows, and report headings.",
|
|
23
|
-
],
|
|
24
|
-
parameters: SubagentParamsSchema,
|
|
25
|
-
constrainedSampling: { type: "json_schema", strict: "prefer" },
|
|
26
|
-
prepareArguments: normalizeSubagentArguments,
|
|
27
|
-
async execute(toolCallId, params, signal, onUpdate, ctx) {
|
|
28
|
-
const host = ctx.background;
|
|
29
|
-
if (host?.closed)
|
|
30
|
-
throw new Error("Background service is closed");
|
|
31
|
-
const managed = host?.enabled || params.background === true;
|
|
32
|
-
if (managed && !host)
|
|
33
|
-
throw new Error("Background execution requires an enabled Background host.");
|
|
34
|
-
let latest = {
|
|
35
|
-
status: "running",
|
|
36
|
-
runs: [],
|
|
37
|
-
startedAt: Date.now(),
|
|
38
|
-
usage: emptyUsage(),
|
|
39
|
-
};
|
|
40
|
-
const ordinals = new Map();
|
|
41
|
-
const projection = (view) => ({
|
|
42
|
-
...view,
|
|
43
|
-
workers: view.workers?.map((worker) => {
|
|
44
|
-
let ordinal = ordinals.get(worker.id);
|
|
45
|
-
if (ordinal === undefined) {
|
|
46
|
-
ordinal = ++workerOrdinal;
|
|
47
|
-
ordinals.set(worker.id, ordinal);
|
|
48
|
-
}
|
|
49
|
-
return { ...worker, label: `#${ordinal} ${worker.profile}` };
|
|
50
|
-
}),
|
|
51
|
-
});
|
|
52
|
-
const run = async (control) => {
|
|
53
|
-
const update = (details, view) => {
|
|
54
|
-
latest = details;
|
|
55
|
-
const result = {
|
|
56
|
-
content: [{ type: "text", text: statusSummary(details) }],
|
|
57
|
-
details,
|
|
58
|
-
};
|
|
59
|
-
if (control)
|
|
60
|
-
control.publish(result, view ? projection(view) : undefined);
|
|
61
|
-
else
|
|
62
|
-
onUpdate?.(result);
|
|
63
|
-
};
|
|
64
|
-
update(latest);
|
|
65
|
-
const parent = {
|
|
66
|
-
model: ctx.model,
|
|
67
|
-
thinking: pi.getThinkingLevel(),
|
|
68
|
-
modelRegistry: ctx.modelRegistry,
|
|
69
|
-
};
|
|
70
|
-
const execution = await runSubagentInvocation({
|
|
71
|
-
params,
|
|
72
|
-
parentCwd: ctx.cwd,
|
|
73
|
-
parent,
|
|
74
|
-
modelRuntime: ctx.modelRuntime,
|
|
75
|
-
agentDir: getAgentDir(),
|
|
76
|
-
projectTrusted: ctx.isProjectTrusted(),
|
|
77
|
-
signal: control?.signal ?? signal,
|
|
78
|
-
gate,
|
|
79
|
-
batchId: control?.id ?? toolCallId,
|
|
80
|
-
onUpdate: update,
|
|
81
|
-
onAccepted: control ? () => control.accept() : undefined,
|
|
82
|
-
onConfigWarning: (message) => ctx.ui.notify(message, "warning"),
|
|
83
|
-
registerAbort: control
|
|
84
|
-
? undefined
|
|
85
|
-
: (abort) => {
|
|
86
|
-
activeAborters.add(abort);
|
|
87
|
-
return () => activeAborters.delete(abort);
|
|
88
|
-
},
|
|
89
|
-
});
|
|
90
|
-
const result = {
|
|
91
|
-
content: [{ type: "text", text: execution.content }],
|
|
92
|
-
details: execution.details,
|
|
93
|
-
usage: execution.usage,
|
|
94
|
-
};
|
|
95
|
-
control?.publish(result, projection(execution.projection));
|
|
96
|
-
return result;
|
|
97
|
-
};
|
|
98
|
-
if (!managed)
|
|
99
|
-
return run();
|
|
100
|
-
const outcome = await host.execute({
|
|
101
|
-
kind: "subagent",
|
|
102
|
-
title: subagentGroupTitle(params.tasks),
|
|
103
|
-
toolCallId,
|
|
104
|
-
background: params.background === true,
|
|
105
|
-
signal,
|
|
106
|
-
onUpdate,
|
|
107
|
-
run: async (control) => {
|
|
108
|
-
const result = await run(control);
|
|
109
|
-
const status = result.details.status;
|
|
110
|
-
const terminal = status === "aborted" ? "cancelled" : status === "running" ? "failed" : status;
|
|
111
|
-
return { result, status: terminal };
|
|
112
|
-
},
|
|
113
|
-
});
|
|
114
|
-
if (outcome.kind === "result")
|
|
115
|
-
return outcome.result;
|
|
116
|
-
const submittedAt = Date.now();
|
|
117
|
-
return {
|
|
118
|
-
content: [
|
|
119
|
-
{
|
|
120
|
-
type: "text",
|
|
121
|
-
text: `Subagent group handed to background: ${outcome.task.id}. Completion arrives automatically as a notification — do not poll or immediately wait on it; continue with other work or hand back to the user. Use bg read to inspect progress, bg wait only when your next step is blocked on the result (prefer foreground next time in that case), or bg kill to stop the whole group.`,
|
|
122
|
-
},
|
|
123
|
-
],
|
|
124
|
-
details: { ...latest, endedAt: submittedAt, background: { id: outcome.task.id, submittedAt } },
|
|
125
|
-
};
|
|
126
|
-
},
|
|
127
|
-
renderCall(args, theme) {
|
|
128
|
-
return renderSubagentCall(args, theme);
|
|
129
|
-
},
|
|
130
|
-
renderResult(result, options, theme, context) {
|
|
131
|
-
scheduleLiveRefresh(context, options.isPartial && !result.details?.background);
|
|
132
|
-
return renderSubagentResult(result, options, theme, context.args, context.isError);
|
|
133
|
-
},
|
|
134
|
-
});
|
|
135
|
-
pi.registerCommand(SUBAGENT_COMMAND_NAME, {
|
|
136
|
-
description: "Configure Subagent profiles, models, and thinking levels",
|
|
137
|
-
handler: async (_args, ctx) => showAgentsCommand(ctx, pi.getThinkingLevel()),
|
|
138
|
-
});
|
|
139
|
-
pi.on("tool_result", async (event) => {
|
|
140
|
-
if (event.toolName !== SUBAGENT_TOOL_NAME)
|
|
141
|
-
return;
|
|
142
|
-
const details = event.details;
|
|
143
|
-
if (details && !details.background && isSubagentError(details))
|
|
144
|
-
return { isError: true };
|
|
145
|
-
});
|
|
146
|
-
pi.on("session_shutdown", async () => {
|
|
147
|
-
await Promise.allSettled([...activeAborters].map((abort) => abort()));
|
|
148
|
-
activeAborters.clear();
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extensions/subagent/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { getAgentDir } from \"../../config.ts\";\nimport type { BackgroundControl, BackgroundProjection, BackgroundTerminalStatus } from \"../../core/background/types.ts\";\nimport type { AgentToolResult, ExtensionAPI } from \"../../core/extensions/types.ts\";\nimport { emptyUsage } from \"./activity.ts\";\nimport { subagentToolDescription } from \"./agents.ts\";\nimport { showAgentsCommand } from \"./agents-command.ts\";\nimport { SUBAGENT_COMMAND_NAME, SUBAGENT_TOOL_LABEL, SUBAGENT_TOOL_NAME } from \"./constants.ts\";\nimport { renderSubagentCall, renderSubagentResult, type SubagentRenderState, scheduleLiveRefresh } from \"./render.ts\";\nimport { type ParentModelContext, subagentGroupTitle } from \"./resolve.ts\";\nimport { ConcurrencyGate, isSubagentError, runSubagentInvocation } from \"./runner.ts\";\nimport { normalizeSubagentArguments, SubagentParamsSchema } from \"./schema.ts\";\nimport { statusSummary } from \"./state.ts\";\nimport type { SubagentDetails } from \"./types.ts\";\n\nexport default function subagent(pi: ExtensionAPI): void {\n\tconst gate = new ConcurrencyGate();\n\tlet workerOrdinal = 0;\n\tconst activeAborters = new Set<() => Promise<void>>();\n\n\tpi.registerTool<typeof SubagentParamsSchema, SubagentDetails, SubagentRenderState>({\n\t\tname: SUBAGENT_TOOL_NAME,\n\t\tlabel: SUBAGENT_TOOL_LABEL,\n\t\tdescription: subagentToolDescription(),\n\t\tpromptSnippet: \"Delegate bounded work to isolated explorer or general workers\",\n\t\tpromptGuidelines: [\n\t\t\t\"Use `subagent` for bounded work that benefits from isolated context or concurrent investigation; do not delegate a task you can finish with one or two direct tool calls.\",\n\t\t\t\"Give every task a short `description` label; it is shown in the /bg list, live rows, and report headings.\",\n\t\t],\n\t\tparameters: SubagentParamsSchema,\n\t\tconstrainedSampling: { type: \"json_schema\", strict: \"prefer\" },\n\t\tprepareArguments: normalizeSubagentArguments,\n\t\tasync execute(toolCallId, params, signal, onUpdate, ctx): Promise<AgentToolResult<SubagentDetails>> {\n\t\t\tconst host = ctx.background;\n\t\t\tif (host?.closed) throw new Error(\"Background service is closed\");\n\t\t\tconst managed = host?.enabled || params.background === true;\n\t\t\tif (managed && !host) throw new Error(\"Background execution requires an enabled Background host.\");\n\t\t\tlet latest: SubagentDetails = {\n\t\t\t\tstatus: \"running\",\n\t\t\t\truns: [],\n\t\t\t\tstartedAt: Date.now(),\n\t\t\t\tusage: emptyUsage(),\n\t\t\t};\n\t\t\tconst ordinals = new Map<string, number>();\n\t\t\tconst projection = (view: BackgroundProjection): BackgroundProjection => ({\n\t\t\t\t...view,\n\t\t\t\tworkers: view.workers?.map((worker) => {\n\t\t\t\t\tlet ordinal = ordinals.get(worker.id);\n\t\t\t\t\tif (ordinal === undefined) {\n\t\t\t\t\t\tordinal = ++workerOrdinal;\n\t\t\t\t\t\tordinals.set(worker.id, ordinal);\n\t\t\t\t\t}\n\t\t\t\t\treturn { ...worker, label: `#${ordinal} ${worker.profile}` };\n\t\t\t\t}),\n\t\t\t});\n\t\t\tconst run = async (\n\t\t\t\tcontrol?: BackgroundControl<SubagentDetails>,\n\t\t\t): Promise<AgentToolResult<SubagentDetails>> => {\n\t\t\t\tconst update = (details: SubagentDetails, view?: BackgroundProjection): void => {\n\t\t\t\t\tlatest = details;\n\t\t\t\t\tconst result: AgentToolResult<SubagentDetails> = {\n\t\t\t\t\t\tcontent: [{ type: \"text\", text: statusSummary(details) }],\n\t\t\t\t\t\tdetails,\n\t\t\t\t\t};\n\t\t\t\t\tif (control) control.publish(result, view ? projection(view) : undefined);\n\t\t\t\t\telse onUpdate?.(result);\n\t\t\t\t};\n\t\t\t\tupdate(latest);\n\t\t\t\tconst parent: ParentModelContext = {\n\t\t\t\t\tmodel: ctx.model,\n\t\t\t\t\tthinking: pi.getThinkingLevel(),\n\t\t\t\t\tmodelRegistry: ctx.modelRegistry,\n\t\t\t\t};\n\t\t\t\tconst execution = await runSubagentInvocation({\n\t\t\t\t\tparams,\n\t\t\t\t\tparentCwd: ctx.cwd,\n\t\t\t\t\tparent,\n\t\t\t\t\tmodelRuntime: ctx.modelRuntime,\n\t\t\t\t\tagentDir: getAgentDir(),\n\t\t\t\t\tprojectTrusted: ctx.isProjectTrusted(),\n\t\t\t\t\tsignal: control?.signal ?? signal,\n\t\t\t\t\tgate,\n\t\t\t\t\tbatchId: control?.id ?? toolCallId,\n\t\t\t\t\tonUpdate: update,\n\t\t\t\t\tonAccepted: control ? () => control.accept() : undefined,\n\t\t\t\t\tonConfigWarning: (message) => ctx.ui.notify(message, \"warning\"),\n\t\t\t\t\tregisterAbort: control\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: (abort) => {\n\t\t\t\t\t\t\t\tactiveAborters.add(abort);\n\t\t\t\t\t\t\t\treturn () => activeAborters.delete(abort);\n\t\t\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tconst result: AgentToolResult<SubagentDetails> = {\n\t\t\t\t\tcontent: [{ type: \"text\", text: execution.content }],\n\t\t\t\t\tdetails: execution.details,\n\t\t\t\t\tusage: execution.usage,\n\t\t\t\t};\n\t\t\t\tcontrol?.publish(result, projection(execution.projection));\n\t\t\t\treturn result;\n\t\t\t};\n\t\t\tif (!managed) return run();\n\t\t\tconst outcome = await host!.execute<SubagentDetails>({\n\t\t\t\tkind: \"subagent\",\n\t\t\t\ttitle: subagentGroupTitle(params.tasks),\n\t\t\t\ttoolCallId,\n\t\t\t\tbackground: params.background === true,\n\t\t\t\tsignal,\n\t\t\t\tonUpdate,\n\t\t\t\trun: async (control) => {\n\t\t\t\t\tconst result = await run(control);\n\t\t\t\t\tconst status = result.details!.status;\n\t\t\t\t\tconst terminal: BackgroundTerminalStatus =\n\t\t\t\t\t\tstatus === \"aborted\" ? \"cancelled\" : status === \"running\" ? \"failed\" : status;\n\t\t\t\t\treturn { result, status: terminal };\n\t\t\t\t},\n\t\t\t});\n\t\t\tif (outcome.kind === \"result\") return outcome.result;\n\t\t\tconst submittedAt = Date.now();\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: `Subagent group handed to background: ${outcome.task.id}. Completion arrives automatically as a notification — do not poll or immediately wait on it; continue with other work or hand back to the user. Use bg read to inspect progress, bg wait only when your next step is blocked on the result (prefer foreground next time in that case), or bg kill to stop the whole group.`,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdetails: { ...latest, endedAt: submittedAt, background: { id: outcome.task.id, submittedAt } },\n\t\t\t};\n\t\t},\n\t\trenderCall(args, theme) {\n\t\t\treturn renderSubagentCall(args, theme);\n\t\t},\n\t\trenderResult(result, options, theme, context) {\n\t\t\tscheduleLiveRefresh(context, options.isPartial && !result.details?.background);\n\t\t\treturn renderSubagentResult(result, options, theme, context.args, context.isError);\n\t\t},\n\t});\n\n\tpi.registerCommand(SUBAGENT_COMMAND_NAME, {\n\t\tdescription: \"Configure Subagent profiles, models, and thinking levels\",\n\t\thandler: async (_args, ctx) => showAgentsCommand(ctx, pi.getThinkingLevel()),\n\t});\n\n\tpi.on(\"tool_result\", async (event) => {\n\t\tif (event.toolName !== SUBAGENT_TOOL_NAME) return;\n\t\tconst details = event.details as SubagentDetails | undefined;\n\t\tif (details && !details.background && isSubagentError(details)) return { isError: true };\n\t});\n\n\tpi.on(\"session_shutdown\", async () => {\n\t\tawait Promise.allSettled([...activeAborters].map((abort) => abort()));\n\t\tactiveAborters.clear();\n\t});\n}\n"]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { ThinkingLevel } from "@earendil-works/pi-agent-core";
|
|
2
|
-
import { type Api, type Model } from "@earendil-works/pi-ai/compat";
|
|
3
|
-
import type { ModelRegistry } from "../../core/model-registry.ts";
|
|
4
|
-
import type { SubagentProfileOverride } from "./types.ts";
|
|
5
|
-
/** The registry surface model selection needs; ParentModelContext satisfies it. */
|
|
6
|
-
export type ModelRegistryLike = Pick<ModelRegistry, "find" | "getAvailable" | "hasConfiguredAuth">;
|
|
7
|
-
export declare function modelId(model: Pick<Model<Api>, "provider" | "id"> | undefined): string;
|
|
8
|
-
export declare function parseModelSpec(value: string): {
|
|
9
|
-
provider: string;
|
|
10
|
-
id: string;
|
|
11
|
-
};
|
|
12
|
-
export declare function findModel(models: readonly Model<Api>[], value: string | undefined): Model<Api> | undefined;
|
|
13
|
-
export declare function findAvailableModel(spec: string, registry: ModelRegistryLike): Model<Api>;
|
|
14
|
-
export declare function effectiveModel(currentSessionModel: Model<Api> | undefined, models: readonly Model<Api>[], override: SubagentProfileOverride | undefined): Model<Api> | undefined;
|
|
15
|
-
export declare function inheritedThinking(effective: Model<Api> | undefined, currentThinking: ThinkingLevel): ThinkingLevel;
|
|
16
|
-
//# sourceMappingURL=model-selection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-selection.d.ts","sourceRoot":"","sources":["../../../src/extensions/subagent/model-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,KAAK,GAAG,EAAsB,KAAK,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,mFAAmF;AACnF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,GAAG,mBAAmB,CAAC,CAAC;AAEnG,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,GAAG,SAAS,GAAG,MAAM,CAEtF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAK9E;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAG1G;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,CAcxF;AAID,wBAAgB,cAAc,CAC7B,mBAAmB,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,EAC3C,MAAM,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,EAC7B,QAAQ,EAAE,uBAAuB,GAAG,SAAS,GAC3C,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAMxB;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,eAAe,EAAE,aAAa,GAAG,aAAa,CAElH"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { clampThinkingLevel } from "@earendil-works/pi-ai/compat";
|
|
2
|
-
export function modelId(model) {
|
|
3
|
-
return model ? `${model.provider}/${model.id}` : "none";
|
|
4
|
-
}
|
|
5
|
-
export function parseModelSpec(value) {
|
|
6
|
-
const separator = value.indexOf("/");
|
|
7
|
-
return separator > 0
|
|
8
|
-
? { provider: value.slice(0, separator), id: value.slice(separator + 1) }
|
|
9
|
-
: { provider: "", id: value };
|
|
10
|
-
}
|
|
11
|
-
export function findModel(models, value) {
|
|
12
|
-
if (!value)
|
|
13
|
-
return undefined;
|
|
14
|
-
return models.find((model) => modelId(model) === value);
|
|
15
|
-
}
|
|
16
|
-
// Resolves a user/model-facing model spec against the live registry; errors
|
|
17
|
-
// are part of the contract (wording is asserted by config/resolve tests).
|
|
18
|
-
export function findAvailableModel(spec, registry) {
|
|
19
|
-
const normalized = spec.trim();
|
|
20
|
-
let model;
|
|
21
|
-
if (normalized.includes("/")) {
|
|
22
|
-
const { provider, id } = parseModelSpec(normalized);
|
|
23
|
-
model = registry.find(provider, id);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
const matches = registry.getAvailable().filter((candidate) => candidate.id === normalized);
|
|
27
|
-
if (matches.length === 1)
|
|
28
|
-
model = matches[0];
|
|
29
|
-
if (matches.length > 1)
|
|
30
|
-
throw new Error(`Model id "${normalized}" is ambiguous; use provider/model.`);
|
|
31
|
-
}
|
|
32
|
-
if (!model)
|
|
33
|
-
throw new Error(`Model "${normalized}" is not available.`);
|
|
34
|
-
if (!registry.hasConfiguredAuth(model))
|
|
35
|
-
throw new Error(`Model "${normalized}" has no configured authentication.`);
|
|
36
|
-
return model;
|
|
37
|
-
}
|
|
38
|
-
// Capability checks use the saved model when it is still in the catalog,
|
|
39
|
-
// falling back to the parent session model otherwise.
|
|
40
|
-
export function effectiveModel(currentSessionModel, models, override) {
|
|
41
|
-
if (override?.model) {
|
|
42
|
-
const saved = findModel(models, override.model);
|
|
43
|
-
if (saved)
|
|
44
|
-
return saved;
|
|
45
|
-
}
|
|
46
|
-
return currentSessionModel;
|
|
47
|
-
}
|
|
48
|
-
export function inheritedThinking(effective, currentThinking) {
|
|
49
|
-
return effective ? clampThinkingLevel(effective, currentThinking) : currentThinking;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=model-selection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-selection.js","sourceRoot":"","sources":["../../../src/extensions/subagent/model-selection.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,kBAAkB,EAAc,MAAM,8BAA8B,CAAC;AAOxF,MAAM,UAAU,OAAO,CAAC,KAAsD;IAC7E,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,SAAS,GAAG,CAAC;QACnB,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE;QACzE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAA6B,EAAE,KAAyB;IACjF,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,4EAA4E;AAC5E,0EAA0E;AAC1E,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,QAA2B;IAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,KAA6B,CAAC;IAClC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QACpD,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACP,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;QAC3F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,UAAU,qCAAqC,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,qBAAqB,CAAC,CAAC;IACvE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,qCAAqC,CAAC,CAAC;IACnH,OAAO,KAAK,CAAC;AACd,CAAC;AAED,yEAAyE;AACzE,sDAAsD;AACtD,MAAM,UAAU,cAAc,CAC7B,mBAA2C,EAC3C,MAA6B,EAC7B,QAA6C;IAE7C,IAAI,QAAQ,EAAE,KAAK,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IACzB,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAiC,EAAE,eAA8B;IAClG,OAAO,SAAS,CAAC,CAAC,CAAE,kBAAkB,CAAC,SAAS,EAAE,eAAe,CAAmB,CAAC,CAAC,CAAC,eAAe,CAAC;AACxG,CAAC","sourcesContent":["import type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport { type Api, clampThinkingLevel, type Model } from \"@earendil-works/pi-ai/compat\";\nimport type { ModelRegistry } from \"../../core/model-registry.ts\";\nimport type { SubagentProfileOverride } from \"./types.ts\";\n\n/** The registry surface model selection needs; ParentModelContext satisfies it. */\nexport type ModelRegistryLike = Pick<ModelRegistry, \"find\" | \"getAvailable\" | \"hasConfiguredAuth\">;\n\nexport function modelId(model: Pick<Model<Api>, \"provider\" | \"id\"> | undefined): string {\n\treturn model ? `${model.provider}/${model.id}` : \"none\";\n}\n\nexport function parseModelSpec(value: string): { provider: string; id: string } {\n\tconst separator = value.indexOf(\"/\");\n\treturn separator > 0\n\t\t? { provider: value.slice(0, separator), id: value.slice(separator + 1) }\n\t\t: { provider: \"\", id: value };\n}\n\nexport function findModel(models: readonly Model<Api>[], value: string | undefined): Model<Api> | undefined {\n\tif (!value) return undefined;\n\treturn models.find((model) => modelId(model) === value);\n}\n\n// Resolves a user/model-facing model spec against the live registry; errors\n// are part of the contract (wording is asserted by config/resolve tests).\nexport function findAvailableModel(spec: string, registry: ModelRegistryLike): Model<Api> {\n\tconst normalized = spec.trim();\n\tlet model: Model<Api> | undefined;\n\tif (normalized.includes(\"/\")) {\n\t\tconst { provider, id } = parseModelSpec(normalized);\n\t\tmodel = registry.find(provider, id);\n\t} else {\n\t\tconst matches = registry.getAvailable().filter((candidate) => candidate.id === normalized);\n\t\tif (matches.length === 1) model = matches[0];\n\t\tif (matches.length > 1) throw new Error(`Model id \"${normalized}\" is ambiguous; use provider/model.`);\n\t}\n\tif (!model) throw new Error(`Model \"${normalized}\" is not available.`);\n\tif (!registry.hasConfiguredAuth(model)) throw new Error(`Model \"${normalized}\" has no configured authentication.`);\n\treturn model;\n}\n\n// Capability checks use the saved model when it is still in the catalog,\n// falling back to the parent session model otherwise.\nexport function effectiveModel(\n\tcurrentSessionModel: Model<Api> | undefined,\n\tmodels: readonly Model<Api>[],\n\toverride: SubagentProfileOverride | undefined,\n): Model<Api> | undefined {\n\tif (override?.model) {\n\t\tconst saved = findModel(models, override.model);\n\t\tif (saved) return saved;\n\t}\n\treturn currentSessionModel;\n}\n\nexport function inheritedThinking(effective: Model<Api> | undefined, currentThinking: ThinkingLevel): ThinkingLevel {\n\treturn effective ? (clampThinkingLevel(effective, currentThinking) as ThinkingLevel) : currentThinking;\n}\n"]}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { type Component } from "@earendil-works/pi-tui";
|
|
2
|
-
import type { AgentToolResult, ToolRenderContext, ToolRenderResultOptions } from "../../core/extensions/types.ts";
|
|
3
|
-
import { type Theme } from "../../modes/interactive/theme/theme.ts";
|
|
4
|
-
import type { SubagentParams } from "./schema.ts";
|
|
5
|
-
import type { SubagentDetails, SubagentRunDetails } from "./types.ts";
|
|
6
|
-
/** Per-result live-refresh state owned by the shell's render context. */
|
|
7
|
-
export interface SubagentRenderState {
|
|
8
|
-
refreshTimer?: ReturnType<typeof setTimeout>;
|
|
9
|
-
/** Cadence the current timer was created with, used to detect changes. */
|
|
10
|
-
refreshInterval?: number;
|
|
11
|
-
/** Called by the shell when the transcript row is disposed. */
|
|
12
|
-
dispose?: () => void;
|
|
13
|
-
}
|
|
14
|
-
type SubagentToolRenderContext = ToolRenderContext<SubagentRenderState, SubagentParams, SubagentDetails>;
|
|
15
|
-
/** Pure refresh policy: schedule only while the current view contains changing text. */
|
|
16
|
-
export declare function desiredRefreshInterval(runs: readonly SubagentRunDetails[], options: {
|
|
17
|
-
isPartial: boolean;
|
|
18
|
-
expanded: boolean;
|
|
19
|
-
}): number | undefined;
|
|
20
|
-
export declare function scheduleLiveRefresh(context: SubagentToolRenderContext, isPartial: boolean): void;
|
|
21
|
-
export declare function renderSubagentCall(args: SubagentParams, theme: Theme): Component;
|
|
22
|
-
export declare function renderSubagentResult(result: AgentToolResult<SubagentDetails>, options: ToolRenderResultOptions, theme: Theme, args: SubagentParams, isError: boolean): Component;
|
|
23
|
-
export {};
|
|
24
|
-
//# sourceMappingURL=render.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/extensions/subagent/render.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,SAAS,EAOd,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAMlH,OAAO,EAAoB,KAAK,KAAK,EAAmB,MAAM,wCAAwC,CAAC;AAIvG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAmC,MAAM,YAAY,CAAC;AA8RvG,yEAAyE;AACzE,MAAM,WAAW,mBAAmB;IACnC,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAC7C,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,KAAK,yBAAyB,GAAG,iBAAiB,CAAC,mBAAmB,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;AAEzG,wFAAwF;AACxF,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,SAAS,kBAAkB,EAAE,EACnC,OAAO,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAChD,MAAM,GAAG,SAAS,CAQpB;AAWD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAwBhG;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,CAIhF;AAED,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,eAAe,CAAC,eAAe,CAAC,EACxC,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,OAAO,GACd,SAAS,CA2BX"}
|