@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
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* - Register commands, keyboard shortcuts, and CLI flags
|
|
8
8
|
* - Interact with the user via UI primitives
|
|
9
9
|
*/
|
|
10
|
-
import type { AgentMessage, AgentToolResult, AgentToolUpdateCallback, ThinkingLevel, ToolExecutionMode } from "@earendil-works/pi-agent-core";
|
|
11
|
-
import type { Api, AssistantMessageEvent, AssistantMessageEventStream, ConstrainedSamplingConfig, ImageContent, Message, Model, OAuthCredentials, OAuthLoginCallbacks, Provider, ProviderHeaders, RefreshModelsContext, SimpleStreamOptions, TextContent, ToolResultMessage, TranscriptContext, Usage } from "@earendil-works/pi-ai";
|
|
10
|
+
import type { AgentMessage, AgentTool, AgentToolCallOutcome, AgentToolResult, AgentToolUpdateCallback, ThinkingLevel, ToolExecutionMode } from "@earendil-works/pi-agent-core";
|
|
11
|
+
import type { AnyModel, Api, AssistantMessageEvent, AssistantMessageEventStream, ClassifierApi, ConstrainedSamplingConfig, ImageApi, ImageContent, JsonValue, Message, Model, OAuthCredentials, OAuthLoginCallbacks, Provider, ProviderClassifier, ProviderHeaders, ProviderId, ProviderImages, RefreshModelsContext, SimpleStreamOptions, TextContent, ToolResultMessage, TranscriptContext, Usage } from "@earendil-works/pi-ai";
|
|
12
12
|
import type { AutocompleteItem, AutocompleteProvider, Component, EditorComponent, EditorTheme, KeyId, OverlayHandle, OverlayOptions, TUI } from "@earendil-works/pi-tui";
|
|
13
13
|
import type { Static, TSchema } from "typebox";
|
|
14
14
|
import type { Theme } from "../../modes/interactive/theme/theme.ts";
|
|
@@ -19,17 +19,20 @@ import type { EventBus } from "../event-bus.ts";
|
|
|
19
19
|
import type { ExecOptions, ExecResult } from "../exec.ts";
|
|
20
20
|
import type { ReadonlyFooterDataProvider } from "../footer-data-provider.ts";
|
|
21
21
|
import type { KeybindingsManager } from "../keybindings.ts";
|
|
22
|
+
import type { McpServerConfig, McpServerRegistry, RegisteredMcpServer } from "../mcp-servers.ts";
|
|
22
23
|
import type { CustomMessage } from "../messages.ts";
|
|
23
24
|
import type { ModelRegistry } from "../model-registry.ts";
|
|
24
25
|
import type { ScopedModel } from "../model-resolver.ts";
|
|
25
26
|
import type { BranchSummaryEntry, CompactionEntry, ContextEditEntry, CustomEntry, ProjectedSessionEntry, ReadonlySessionManager, SessionEntry, SessionManager } from "../session-manager.ts";
|
|
27
|
+
import type { Settings } from "../settings-manager.ts";
|
|
26
28
|
import type { SlashCommandInfo } from "../slash-commands.ts";
|
|
27
29
|
import type { SourceInfo } from "../source-info.ts";
|
|
28
30
|
import type { BuildSystemPromptOptions, NormalizedBuildSystemPromptOptions } from "../system-prompt.ts";
|
|
29
31
|
import type { BashOperations } from "../tools/bash.ts";
|
|
30
32
|
import type { EditToolDetails } from "../tools/edit.ts";
|
|
31
33
|
import type { BashToolDetails, BashToolInput, EditToolInput, FindToolDetails, FindToolInput, GrepToolDetails, GrepToolInput, LsToolDetails, LsToolInput, PowerShellToolDetails, PowerShellToolInput, ReadToolDetails, ReadToolInput, WriteToolInput } from "../tools/index.ts";
|
|
32
|
-
import type {
|
|
34
|
+
import type { ModelRoute, ModelRouteRequest, VirtualModelDefinition } from "../virtual-models.ts";
|
|
35
|
+
import type { ContextSnapshot, EditorHost, ModelRuntime, TasksContext } from "./distribution-api.ts";
|
|
33
36
|
export type { ExecOptions, ExecResult } from "../exec.ts";
|
|
34
37
|
export type { BuildSystemPromptOptions, NormalizedBuildSystemPromptOptions } from "../system-prompt.ts";
|
|
35
38
|
export type { ContextSnapshot, EditorHost, EditorSubmitEvent, EditorSubmitHandler } from "./distribution-api.ts";
|
|
@@ -213,6 +216,10 @@ export interface CompactOptions {
|
|
|
213
216
|
*/
|
|
214
217
|
export type ExtensionMode = "tui" | "rpc" | "json" | "print";
|
|
215
218
|
export interface ExtensionContext {
|
|
219
|
+
/** Read detached global JSON settings for an extension namespace. */
|
|
220
|
+
getExtensionSettings(namespace: string): Record<string, unknown>;
|
|
221
|
+
/** Replace one global namespace; rejects on invalid data or failed persistence. */
|
|
222
|
+
setExtensionSettings(namespace: string, value: Record<string, unknown>): Promise<void>;
|
|
216
223
|
/** UI methods for user interaction */
|
|
217
224
|
ui: ExtensionUIContext;
|
|
218
225
|
/** Current run mode. Use "tui" to guard terminal-only UI such as custom components. */
|
|
@@ -228,7 +235,7 @@ export interface ExtensionContext {
|
|
|
228
235
|
/** Canonical model and authentication runtime shared by the current session. */
|
|
229
236
|
readonly modelRuntime: ModelRuntime;
|
|
230
237
|
/** Session-owned execution capability; disabled unless the host explicitly enables it. */
|
|
231
|
-
readonly
|
|
238
|
+
readonly tasks: TasksContext;
|
|
232
239
|
/** Capture detached, stable model input and request settings without writing to the session. */
|
|
233
240
|
getContextSnapshot(): Promise<ContextSnapshot>;
|
|
234
241
|
/** Current model (may be undefined) */
|
|
@@ -259,6 +266,34 @@ export interface ExtensionContext {
|
|
|
259
266
|
/** Get the current effective system prompt. */
|
|
260
267
|
getSystemPrompt(): string;
|
|
261
268
|
}
|
|
269
|
+
/** Options for {@link ExtensionToolContext.executeTool}. */
|
|
270
|
+
export interface ExecuteToolOptions {
|
|
271
|
+
/** Defaults to the calling tool's signal. */
|
|
272
|
+
signal?: AbortSignal;
|
|
273
|
+
/** Receives partial results of the nested tool, in addition to `tool_execution_update` events. */
|
|
274
|
+
onUpdate?: AgentToolUpdateCallback;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Context passed to tool `execute()` in a session: the extension context plus `executeTool()`
|
|
278
|
+
* for running other tools through the same validation, hooks, and permission checks as
|
|
279
|
+
* model-issued calls.
|
|
280
|
+
*
|
|
281
|
+
* A tool wrapped with `wrapToolDefinition()` without a context factory, such as a built-in tool
|
|
282
|
+
* created with `createBashTool()` and run in a plain `Agent` or called directly, gets no context.
|
|
283
|
+
*/
|
|
284
|
+
export interface ExtensionToolContext extends ExtensionContext {
|
|
285
|
+
/** Tools {@link executeTool} can call. */
|
|
286
|
+
readonly tools: readonly AgentTool[];
|
|
287
|
+
/**
|
|
288
|
+
* Run another tool. The call gets the id `<calling id>/<n>`, and the `tool_call`, `tool_result`,
|
|
289
|
+
* and `tool_execution_*` events carry `parentToolCallId`. It does not appear in the transcript;
|
|
290
|
+
* a bounded record of it is kept as `nestedCalls` on the calling tool's result message.
|
|
291
|
+
*
|
|
292
|
+
* Never rejects for tool failures: unknown tools, validation errors, blocked calls, and thrown
|
|
293
|
+
* errors come back as `isError: true`.
|
|
294
|
+
*/
|
|
295
|
+
executeTool(name: string, args: unknown, options?: ExecuteToolOptions): Promise<AgentToolCallOutcome>;
|
|
296
|
+
}
|
|
262
297
|
/**
|
|
263
298
|
* Extended context for command handlers.
|
|
264
299
|
* Includes session control methods only safe in user-initiated commands.
|
|
@@ -355,6 +390,64 @@ export interface ToolRenderContext<TState = any, TArgs = any, TDetails = unknown
|
|
|
355
390
|
/** Whether the current result is an error. */
|
|
356
391
|
isError: boolean;
|
|
357
392
|
}
|
|
393
|
+
/**
|
|
394
|
+
* How the model reaches a tool. "Callable" means callable from other tools through
|
|
395
|
+
* `ctx.executeTool()`, as the `codemode` tool does.
|
|
396
|
+
*
|
|
397
|
+
* - `direct`: declared to the model while active, and callable while active.
|
|
398
|
+
* - `model-only`: declared to the model while active, never callable. Use it for orchestrating or
|
|
399
|
+
* interactive tools.
|
|
400
|
+
* - `codemode`: callable whenever registered. Not declared to the model unless explicitly
|
|
401
|
+
* activated. Codemode tools list it in their description.
|
|
402
|
+
* - `deferred`: like `codemode`, but codemode tools do not list it; tool search can find it.
|
|
403
|
+
* - `hidden`: registered but unreachable. Activating it has no effect.
|
|
404
|
+
*
|
|
405
|
+
* `direct` and `model-only` tools are activated when they are registered; the others are not.
|
|
406
|
+
* The active tool set (`getActiveTools`/`setActiveTools`) is the set declared to the model.
|
|
407
|
+
*/
|
|
408
|
+
export type ToolExposure = "direct" | "model-only" | "codemode" | "deferred" | "hidden";
|
|
409
|
+
/**
|
|
410
|
+
* Hints about what a tool does, with the meaning of MCP tool annotations. They come from the tool's
|
|
411
|
+
* author and are not verified; permission extensions can use them to decide which calls to confirm.
|
|
412
|
+
*/
|
|
413
|
+
export interface ToolAnnotations {
|
|
414
|
+
/** The tool does not modify its environment. */
|
|
415
|
+
readOnlyHint?: boolean;
|
|
416
|
+
/** The tool may delete or overwrite data, rather than only add to it. Meaningful when not read-only. */
|
|
417
|
+
destructiveHint?: boolean;
|
|
418
|
+
/** Repeating a call with the same arguments has no further effect. Meaningful when not read-only. */
|
|
419
|
+
idempotentHint?: boolean;
|
|
420
|
+
/** The tool reaches an open world of external entities, such as the web, rather than a closed domain. */
|
|
421
|
+
openWorldHint?: boolean;
|
|
422
|
+
}
|
|
423
|
+
/** A group of related tools, such as the tools of one MCP server. Codemode tools list them together. */
|
|
424
|
+
export interface ToolNamespace {
|
|
425
|
+
/** For example `mcp__docs`. */
|
|
426
|
+
name: string;
|
|
427
|
+
/** Shown once above the group's tools. */
|
|
428
|
+
description?: string;
|
|
429
|
+
}
|
|
430
|
+
/** The tools of a session as {@link ToolDefinition.prepareLoadout} sees them. */
|
|
431
|
+
export interface ToolLoadout {
|
|
432
|
+
/** Tools declared to the model (the active tools), in order, with their original descriptions. */
|
|
433
|
+
readonly declared: readonly AgentTool[];
|
|
434
|
+
/** Tools callable through `ctx.executeTool()`. */
|
|
435
|
+
readonly callable: readonly AgentTool[];
|
|
436
|
+
/** Every registered tool. */
|
|
437
|
+
readonly registered: readonly AgentTool[];
|
|
438
|
+
getExposure(name: string): ToolExposure;
|
|
439
|
+
getNamespace(name: string): ToolNamespace | undefined;
|
|
440
|
+
}
|
|
441
|
+
/** Changes {@link ToolDefinition.prepareLoadout} makes to what the model sees. */
|
|
442
|
+
export interface ToolLoadoutChanges {
|
|
443
|
+
/** Model-facing descriptions of declared tools, by tool name. */
|
|
444
|
+
descriptions?: Readonly<Record<string, string>>;
|
|
445
|
+
/**
|
|
446
|
+
* Declared tools whose declarations requests leave out. They stay active and callable, and the
|
|
447
|
+
* transcript still declares them, so the active set survives `/tree` and resume.
|
|
448
|
+
*/
|
|
449
|
+
hiddenDeclarations?: readonly string[];
|
|
450
|
+
}
|
|
358
451
|
/**
|
|
359
452
|
* Tool definition for registerTool().
|
|
360
453
|
*/
|
|
@@ -377,6 +470,31 @@ export interface ToolDefinition<TParams extends TSchema = TSchema, TDetails = un
|
|
|
377
470
|
renderShell?: "default" | "self";
|
|
378
471
|
/** Optional compatibility shim to prepare raw tool call arguments before schema validation. Must return an object conforming to TParams. */
|
|
379
472
|
prepareArguments?: (args: unknown) => Static<TParams>;
|
|
473
|
+
/**
|
|
474
|
+
* JSON Schema of `structuredContent` in successful results. Tools that declare it should always
|
|
475
|
+
* set `structuredContent`; codemode scripts then receive it instead of the text content.
|
|
476
|
+
*/
|
|
477
|
+
outputSchema?: TSchema;
|
|
478
|
+
/**
|
|
479
|
+
* How the model reaches the tool. Default: `"direct"`. See {@link ToolExposure}.
|
|
480
|
+
*/
|
|
481
|
+
exposure?: ToolExposure;
|
|
482
|
+
/** Group the tool belongs to, for example its MCP server. */
|
|
483
|
+
namespace?: ToolNamespace;
|
|
484
|
+
/** Hints about what the tool does, for example from an MCP server. */
|
|
485
|
+
annotations?: ToolAnnotations;
|
|
486
|
+
/**
|
|
487
|
+
* Whether registering the tool activates it. Default: `true` for `direct` and `model-only` tools;
|
|
488
|
+
* other exposures are never activated on registration. A tool with `defaultActive: false` is
|
|
489
|
+
* activated by naming it in `--tools` or the `defaultTools` setting, or with `setActiveTools()`.
|
|
490
|
+
*/
|
|
491
|
+
defaultActive?: boolean;
|
|
492
|
+
/**
|
|
493
|
+
* Adjust how the loadout is presented to the model while this tool is active. Called whenever
|
|
494
|
+
* the active tools change. Tools that orchestrate other tools use it, for example to list the
|
|
495
|
+
* callable tools in their own description.
|
|
496
|
+
*/
|
|
497
|
+
prepareLoadout?: (loadout: ToolLoadout) => ToolLoadoutChanges | undefined;
|
|
380
498
|
/**
|
|
381
499
|
* Per-tool execution mode override.
|
|
382
500
|
* - "sequential": this tool must execute one at a time with other tool calls.
|
|
@@ -386,7 +504,7 @@ export interface ToolDefinition<TParams extends TSchema = TSchema, TDetails = un
|
|
|
386
504
|
*/
|
|
387
505
|
executionMode?: ToolExecutionMode;
|
|
388
506
|
/** Execute the tool. */
|
|
389
|
-
execute(toolCallId: string, params: Static<TParams>, signal: AbortSignal | undefined, onUpdate: AgentToolUpdateCallback<TDetails> | undefined, ctx:
|
|
507
|
+
execute(toolCallId: string, params: Static<TParams>, signal: AbortSignal | undefined, onUpdate: AgentToolUpdateCallback<TDetails> | undefined, ctx: ExtensionToolContext): Promise<AgentToolResult<TDetails>>;
|
|
390
508
|
/** Custom rendering for tool call display */
|
|
391
509
|
renderCall?: (args: Static<TParams>, theme: Theme, context: ToolRenderContext<TState, Static<TParams>, TDetails>) => Component;
|
|
392
510
|
/** Custom rendering for tool result display */
|
|
@@ -429,6 +547,17 @@ export interface ResourcesDiscoverResult {
|
|
|
429
547
|
promptPaths?: string[];
|
|
430
548
|
themePaths?: string[];
|
|
431
549
|
}
|
|
550
|
+
/**
|
|
551
|
+
* Fired when an extension registers or unregisters an MCP server after the extensions are bound
|
|
552
|
+
* (see {@link ExtensionAPI.registerMcpServer}). Servers registered while extensions load are read
|
|
553
|
+
* with `pi.getMcpServers()` on `session_start`. Handling this event marks an extension as the one
|
|
554
|
+
* that connects registered servers.
|
|
555
|
+
*/
|
|
556
|
+
export interface McpServersChangeEvent {
|
|
557
|
+
type: "mcp_servers_change";
|
|
558
|
+
/** Every registered server after the change. */
|
|
559
|
+
servers: RegisteredMcpServer[];
|
|
560
|
+
}
|
|
432
561
|
/** Fired when a session is started, loaded, or reloaded */
|
|
433
562
|
export interface SessionStartEvent {
|
|
434
563
|
type: "session_start";
|
|
@@ -567,6 +696,14 @@ export interface AfterProviderResponseEvent {
|
|
|
567
696
|
status: number;
|
|
568
697
|
headers: Record<string, string>;
|
|
569
698
|
}
|
|
699
|
+
/** Fired for a parsed provider stream event before Pi normalizes it. */
|
|
700
|
+
export interface ProviderStreamEvent {
|
|
701
|
+
type: "provider_stream_event";
|
|
702
|
+
provider: ProviderId;
|
|
703
|
+
api: Api;
|
|
704
|
+
model: string;
|
|
705
|
+
data: unknown;
|
|
706
|
+
}
|
|
570
707
|
/** Fired after user submits prompt but before agent loop. */
|
|
571
708
|
export interface BeforeAgentStartEvent {
|
|
572
709
|
type: "before_agent_start";
|
|
@@ -692,6 +829,8 @@ export interface ToolExecutionStartEvent {
|
|
|
692
829
|
toolCallId: string;
|
|
693
830
|
toolName: string;
|
|
694
831
|
args: any;
|
|
832
|
+
/** Set when another tool (for example a codemode script) made this call. */
|
|
833
|
+
parentToolCallId?: string;
|
|
695
834
|
}
|
|
696
835
|
/** Fired during tool execution with partial/streaming output */
|
|
697
836
|
export interface ToolExecutionUpdateEvent {
|
|
@@ -700,6 +839,8 @@ export interface ToolExecutionUpdateEvent {
|
|
|
700
839
|
toolName: string;
|
|
701
840
|
args: any;
|
|
702
841
|
partialResult: any;
|
|
842
|
+
/** Set when another tool (for example a codemode script) made this call. */
|
|
843
|
+
parentToolCallId?: string;
|
|
703
844
|
}
|
|
704
845
|
/** Fired when a tool finishes executing */
|
|
705
846
|
export interface ToolExecutionEndEvent {
|
|
@@ -708,6 +849,8 @@ export interface ToolExecutionEndEvent {
|
|
|
708
849
|
toolName: string;
|
|
709
850
|
result: any;
|
|
710
851
|
isError: boolean;
|
|
852
|
+
/** Set when another tool (for example a codemode script) made this call. */
|
|
853
|
+
parentToolCallId?: string;
|
|
711
854
|
}
|
|
712
855
|
export type ModelSelectSource = "set" | "cycle" | "restore";
|
|
713
856
|
/** Fired when a new model is selected */
|
|
@@ -759,7 +902,14 @@ export type InputEventResult = {
|
|
|
759
902
|
};
|
|
760
903
|
interface ToolCallEventBase {
|
|
761
904
|
type: "tool_call";
|
|
905
|
+
/**
|
|
906
|
+
* The call's id. For calls another tool made (with `parentToolCallId` set), pi assigns
|
|
907
|
+
* `<parent id>/<n>`; such ids never appear as tool calls or tool results in the transcript, only
|
|
908
|
+
* in the parent result's `nestedCalls` record.
|
|
909
|
+
*/
|
|
762
910
|
toolCallId: string;
|
|
911
|
+
/** Set when another tool (for example a codemode script) issued this call. */
|
|
912
|
+
parentToolCallId?: string;
|
|
763
913
|
}
|
|
764
914
|
export interface BashToolCallEvent extends ToolCallEventBase {
|
|
765
915
|
toolName: "bash";
|
|
@@ -806,9 +956,17 @@ export interface CustomToolCallEvent extends ToolCallEventBase {
|
|
|
806
956
|
export type ToolCallEvent = BashToolCallEvent | PowerShellToolCallEvent | ReadToolCallEvent | EditToolCallEvent | WriteToolCallEvent | GrepToolCallEvent | FindToolCallEvent | LsToolCallEvent | CustomToolCallEvent;
|
|
807
957
|
interface ToolResultEventBase {
|
|
808
958
|
type: "tool_result";
|
|
959
|
+
/** The call's id; `<parent id>/<n>` for nested calls, see `ToolCallEvent`. */
|
|
809
960
|
toolCallId: string;
|
|
961
|
+
/** Set when another tool (for example a codemode script) issued this call. */
|
|
962
|
+
parentToolCallId?: string;
|
|
810
963
|
input: Record<string, unknown>;
|
|
811
964
|
content: (TextContent | ImageContent)[];
|
|
965
|
+
/**
|
|
966
|
+
* Machine-readable result for tools that declare an `outputSchema`. Handlers that redact
|
|
967
|
+
* `content` should also replace this; replacing `content` alone drops it.
|
|
968
|
+
*/
|
|
969
|
+
structuredContent?: JsonValue;
|
|
812
970
|
isError: boolean;
|
|
813
971
|
/** Usage from the tool execution itself, if available. */
|
|
814
972
|
usage?: Usage;
|
|
@@ -892,7 +1050,7 @@ export declare function isToolCallEventType<TName extends string, TInput extends
|
|
|
892
1050
|
input: TInput;
|
|
893
1051
|
};
|
|
894
1052
|
/** Union of all event types */
|
|
895
|
-
export type ExtensionEvent = ProjectTrustEvent | ResourcesDiscoverEvent | SessionEvent | ContextEvent | ContextWithSystemEvent | CacheWarmingDecisionEvent | BeforeProviderRequestEvent | BeforeProviderHeadersEvent | AfterProviderResponseEvent | BeforeAgentStartEvent | AgentStartEvent | AgentEndEvent | AgentBeforeSettleEvent | AgentSettledEvent | UIPromptStartEvent | UIPromptEndEvent | TurnStartEvent | TurnEndEvent | MessageStartEvent | MessageUpdateEvent | MessageEndEvent | ToolExecutionStartEvent | ToolExecutionUpdateEvent | ToolExecutionEndEvent | ModelSelectEvent | ThinkingLevelSelectEvent | UserBashEvent | InputEvent | ToolCallEvent | ToolResultEvent;
|
|
1053
|
+
export type ExtensionEvent = ProjectTrustEvent | ResourcesDiscoverEvent | McpServersChangeEvent | SessionEvent | ContextEvent | ContextWithSystemEvent | CacheWarmingDecisionEvent | BeforeProviderRequestEvent | BeforeProviderHeadersEvent | AfterProviderResponseEvent | ProviderStreamEvent | BeforeAgentStartEvent | AgentStartEvent | AgentEndEvent | AgentBeforeSettleEvent | AgentSettledEvent | UIPromptStartEvent | UIPromptEndEvent | TurnStartEvent | TurnEndEvent | MessageStartEvent | MessageUpdateEvent | MessageEndEvent | ToolExecutionStartEvent | ToolExecutionUpdateEvent | ToolExecutionEndEvent | ModelSelectEvent | ThinkingLevelSelectEvent | UserBashEvent | InputEvent | ToolCallEvent | ToolResultEvent;
|
|
896
1054
|
export interface ContextEventResult {
|
|
897
1055
|
messages?: AgentMessage[];
|
|
898
1056
|
}
|
|
@@ -920,9 +1078,15 @@ export type UserBashEventResult = {
|
|
|
920
1078
|
/** Full replacement: extension handled execution, use this result */
|
|
921
1079
|
result: BashResult;
|
|
922
1080
|
};
|
|
1081
|
+
/**
|
|
1082
|
+
* Changes a `tool_result` handler makes. Omitted fields stay as they are, except that replacing
|
|
1083
|
+
* `content` without returning `structuredContent` drops the structured content, because it may no
|
|
1084
|
+
* longer match. Return it along with `content` to keep it.
|
|
1085
|
+
*/
|
|
923
1086
|
export interface ToolResultEventResult {
|
|
924
1087
|
content?: (TextContent | ImageContent)[];
|
|
925
1088
|
details?: unknown;
|
|
1089
|
+
structuredContent?: JsonValue;
|
|
926
1090
|
isError?: boolean;
|
|
927
1091
|
usage?: Usage;
|
|
928
1092
|
}
|
|
@@ -1002,6 +1166,7 @@ export interface ExtensionAPI {
|
|
|
1002
1166
|
on(event: "session_compact", handler: ExtensionHandler<SessionCompactEvent>): () => void;
|
|
1003
1167
|
on(event: "session_compact_failed", handler: ExtensionHandler<SessionCompactFailedEvent>): () => void;
|
|
1004
1168
|
on(event: "session_shutdown", handler: ExtensionHandler<SessionShutdownEvent>): () => void;
|
|
1169
|
+
on(event: "mcp_servers_change", handler: ExtensionHandler<McpServersChangeEvent>): () => void;
|
|
1005
1170
|
on(event: "session_before_tree", handler: ExtensionHandler<SessionBeforeTreeEvent, SessionBeforeTreeResult>): () => void;
|
|
1006
1171
|
on(event: "session_tree", handler: ExtensionHandler<SessionTreeEvent>): () => void;
|
|
1007
1172
|
on(event: "context", handler: ExtensionHandler<ContextEvent, ContextEventResult>): () => void;
|
|
@@ -1010,6 +1175,7 @@ export interface ExtensionAPI {
|
|
|
1010
1175
|
on(event: "before_provider_request", handler: ExtensionHandler<BeforeProviderRequestEvent, BeforeProviderRequestEventResult>): () => void;
|
|
1011
1176
|
on(event: "before_provider_headers", handler: ExtensionHandler<BeforeProviderHeadersEvent>): () => void;
|
|
1012
1177
|
on(event: "after_provider_response", handler: ExtensionHandler<AfterProviderResponseEvent>): () => void;
|
|
1178
|
+
on(event: "provider_stream_event", handler: ExtensionHandler<ProviderStreamEvent>): () => void;
|
|
1013
1179
|
on(event: "before_agent_start", handler: ExtensionHandler<BeforeAgentStartEvent, BeforeAgentStartEventResult>): () => void;
|
|
1014
1180
|
on(event: "agent_start", handler: ExtensionHandler<AgentStartEvent>): () => void;
|
|
1015
1181
|
on(event: "agent_end", handler: ExtensionHandler<AgentEndEvent>): () => void;
|
|
@@ -1082,11 +1248,16 @@ export interface ExtensionAPI {
|
|
|
1082
1248
|
setLabel(entryId: string, label: string | undefined): void;
|
|
1083
1249
|
/** Execute a shell command. */
|
|
1084
1250
|
exec(command: string, args: string[], options?: ExecOptions): Promise<ExecResult>;
|
|
1085
|
-
/** Get the
|
|
1251
|
+
/** Get the names of the active tools, which are the tools declared to the model. */
|
|
1086
1252
|
getActiveTools(): string[];
|
|
1087
|
-
/** Get all configured tools with parameter schema, prompt guidelines, and source metadata. */
|
|
1253
|
+
/** Get all configured tools with parameter schema, prompt guidelines, exposure, and source metadata. */
|
|
1088
1254
|
getAllTools(): ToolInfo[];
|
|
1089
|
-
/**
|
|
1255
|
+
/** Get a copy of the effective settings (global and project settings merged, with overrides). */
|
|
1256
|
+
getSettings(): Settings;
|
|
1257
|
+
/**
|
|
1258
|
+
* Set the active tools by name. Unknown and `hidden` tools are ignored. Tools with `codemode` or
|
|
1259
|
+
* `deferred` exposure stay callable from codemode scripts whether active or not.
|
|
1260
|
+
*/
|
|
1090
1261
|
setActiveTools(toolNames: string[]): void;
|
|
1091
1262
|
/** Get available slash commands in the current session. */
|
|
1092
1263
|
getCommands(): SlashCommandInfo[];
|
|
@@ -1170,9 +1341,45 @@ export interface ExtensionAPI {
|
|
|
1170
1341
|
* pi.unregisterProvider("my-proxy");
|
|
1171
1342
|
*/
|
|
1172
1343
|
unregisterProvider(name: string): void;
|
|
1344
|
+
/**
|
|
1345
|
+
* Register an MCP server for this session, with the same config as an `mcpServers` entry in
|
|
1346
|
+
* `mcp.json`. The server connects next to the configured servers: on `session_start` when
|
|
1347
|
+
* registered during extension load, right away when registered later. Registering a name again
|
|
1348
|
+
* replaces the extension's earlier registration.
|
|
1349
|
+
*
|
|
1350
|
+
* The registration is not saved; register again on every load. A server of the same name in
|
|
1351
|
+
* `mcp.json` takes precedence. Throws for invalid configs and for names another extension
|
|
1352
|
+
* registered. When no loaded extension handles MCP servers (for example because another MCP
|
|
1353
|
+
* extension replaced the built-in one), the registration is reported as an extension error.
|
|
1354
|
+
*
|
|
1355
|
+
* @example
|
|
1356
|
+
* pi.registerMcpServer("jira", { url: "https://mcp.example.com/jira" });
|
|
1357
|
+
*/
|
|
1358
|
+
registerMcpServer(name: string, config: McpServerConfig): void;
|
|
1359
|
+
/** Remove an MCP server this extension registered and close its connection. */
|
|
1360
|
+
unregisterMcpServer(name: string): void;
|
|
1361
|
+
/** Every MCP server registered by extensions. For extensions that connect MCP servers. */
|
|
1362
|
+
getMcpServers(): RegisteredMcpServer[];
|
|
1363
|
+
/**
|
|
1364
|
+
* Register a virtual model: a selectable catalog entry that routes each request to a physical
|
|
1365
|
+
* model. The selection (`ctx.model`, `model_change` entries) names the virtual model; assistant
|
|
1366
|
+
* messages record the physical model and thinking level the router picked.
|
|
1367
|
+
*
|
|
1368
|
+
* `provider` may be any provider id, including one with physical models, and may list several
|
|
1369
|
+
* virtual models. Registering the same provider and id again replaces the virtual model. See
|
|
1370
|
+
* docs/virtual-models.md.
|
|
1371
|
+
*/
|
|
1372
|
+
registerVirtualModel<TState = unknown>(model: ExtensionVirtualModel<TState>): void;
|
|
1373
|
+
/** Remove a virtual model registered with `registerVirtualModel()`. */
|
|
1374
|
+
unregisterVirtualModel(provider: string, id: string): void;
|
|
1173
1375
|
/** Shared event bus for extension communication. */
|
|
1174
1376
|
events: EventBus;
|
|
1175
1377
|
}
|
|
1378
|
+
/** Virtual model registered via pi.registerVirtualModel(). */
|
|
1379
|
+
export interface ExtensionVirtualModel<TState = unknown> extends Omit<VirtualModelDefinition<TState>, "route"> {
|
|
1380
|
+
/** Like `VirtualModelDefinition.route`, with an extension context. */
|
|
1381
|
+
route(request: ModelRouteRequest<TState>, ctx: ExtensionContext): ModelRoute<TState> | Promise<ModelRoute<TState>>;
|
|
1382
|
+
}
|
|
1176
1383
|
/** Configuration for registering a provider via pi.registerProvider(). */
|
|
1177
1384
|
export interface ProviderConfig {
|
|
1178
1385
|
/** Display name for the provider in UI. */
|
|
@@ -1189,9 +1396,15 @@ export interface ProviderConfig {
|
|
|
1189
1396
|
* (`getCurrentSystemPrompt(context.messages)`, `getCurrentTools(context.messages)`).
|
|
1190
1397
|
* Implementations must invoke `options.onPayload` before sending the provider request and use any
|
|
1191
1398
|
* returned replacement payload. They must invoke `options.onResponse` after receiving the response
|
|
1192
|
-
* and before consuming its body, matching built-in providers.
|
|
1399
|
+
* and before consuming its body, matching built-in providers. Implementations may invoke
|
|
1400
|
+
* `options.onProviderStreamEvent(data, model)` with parsed stream events before normalization.
|
|
1401
|
+
* Event data is adapter-owned and must be treated as read-only.
|
|
1193
1402
|
*/
|
|
1194
1403
|
streamSimple?: (model: Model<Api>, context: TranscriptContext, options?: SimpleStreamOptions) => AssistantMessageEventStream;
|
|
1404
|
+
/** Image-generation implementations keyed by image API. */
|
|
1405
|
+
images?: Partial<Record<ImageApi, ProviderImages>>;
|
|
1406
|
+
/** Classifier implementations keyed by classifier API. */
|
|
1407
|
+
classifiers?: Partial<Record<ClassifierApi, ProviderClassifier>>;
|
|
1195
1408
|
/** Custom headers to include in requests. */
|
|
1196
1409
|
headers?: Record<string, string>;
|
|
1197
1410
|
/** If true, adds Authorization: Bearer header with the resolved API key. */
|
|
@@ -1221,45 +1434,84 @@ export interface ProviderConfig {
|
|
|
1221
1434
|
modifyModels?(models: Model<Api>[], credentials: OAuthCredentials): Model<Api>[];
|
|
1222
1435
|
};
|
|
1223
1436
|
}
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
/** Model ID (e.g., "claude-sonnet-4-20250514"). */
|
|
1437
|
+
interface ProviderModelConfigBase {
|
|
1438
|
+
/** Model ID. */
|
|
1227
1439
|
id: string;
|
|
1228
|
-
/** Display name
|
|
1440
|
+
/** Display name. */
|
|
1229
1441
|
name: string;
|
|
1230
1442
|
/** API type override for this model. */
|
|
1231
|
-
api?:
|
|
1443
|
+
api?: string;
|
|
1232
1444
|
/** API endpoint URL override for this model. */
|
|
1233
1445
|
baseUrl?: string;
|
|
1234
|
-
/** Whether the model supports extended thinking. */
|
|
1235
|
-
reasoning: boolean;
|
|
1236
|
-
/** Maps pi thinking levels to provider/model-specific values; null marks a level unsupported. */
|
|
1237
|
-
thinkingLevelMap?: Model<Api>["thinkingLevelMap"];
|
|
1238
1446
|
/** Supported input types. */
|
|
1239
1447
|
input: ("text" | "image")[];
|
|
1240
1448
|
/** Provider input limits and cache-safe image preprocessing metadata. */
|
|
1241
|
-
inputLimits?:
|
|
1449
|
+
inputLimits?: AnyModel["inputLimits"];
|
|
1242
1450
|
/** Per-million-token cost rates and optional request-wide input pricing tiers. */
|
|
1243
|
-
cost:
|
|
1451
|
+
cost: AnyModel["cost"];
|
|
1452
|
+
/** Custom headers for this model. */
|
|
1453
|
+
headers?: Record<string, string>;
|
|
1454
|
+
}
|
|
1455
|
+
/** Chat model configuration. Omitted `type` is normalized to `"chat"`. */
|
|
1456
|
+
export interface ProviderChatModelConfig extends ProviderModelConfigBase {
|
|
1457
|
+
type?: "chat";
|
|
1458
|
+
api?: Api;
|
|
1459
|
+
/** Whether the model supports extended thinking. */
|
|
1460
|
+
reasoning: boolean;
|
|
1461
|
+
/** Maps pi thinking levels to provider/model-specific values; null marks a level unsupported. */
|
|
1462
|
+
thinkingLevelMap?: Model<Api>["thinkingLevelMap"];
|
|
1244
1463
|
/** Best-effort prompt cache lifetime in seconds per retention tier. Unset disables cache warming. */
|
|
1245
1464
|
promptCache?: Model<Api>["promptCache"];
|
|
1246
1465
|
/** Maximum context window size in tokens. */
|
|
1247
1466
|
contextWindow: number;
|
|
1248
1467
|
/** Maximum output tokens. */
|
|
1249
1468
|
maxTokens: number;
|
|
1250
|
-
|
|
1251
|
-
headers?: Record<string, string>;
|
|
1469
|
+
samplingParams?: Record<string, unknown>;
|
|
1252
1470
|
/** OpenAI compatibility settings. */
|
|
1253
1471
|
compat?: Model<Api>["compat"];
|
|
1254
1472
|
}
|
|
1473
|
+
/** Image-generation model configuration. */
|
|
1474
|
+
export interface ProviderImageModelConfig extends ProviderModelConfigBase {
|
|
1475
|
+
type: "image";
|
|
1476
|
+
api?: ImageApi;
|
|
1477
|
+
output: ("text" | "image")[];
|
|
1478
|
+
}
|
|
1479
|
+
/** Structured classifier model configuration. */
|
|
1480
|
+
export interface ProviderClassifierModelConfig extends ProviderModelConfigBase {
|
|
1481
|
+
type: "classifier";
|
|
1482
|
+
api?: ClassifierApi;
|
|
1483
|
+
contextWindow: number;
|
|
1484
|
+
}
|
|
1485
|
+
/** Configuration for a model within a provider. */
|
|
1486
|
+
export type ProviderModelConfig = ProviderChatModelConfig | ProviderImageModelConfig | ProviderClassifierModelConfig;
|
|
1255
1487
|
/** Extension factory function type. Supports both sync and async initialization. */
|
|
1256
1488
|
export type ExtensionFactory = (pi: ExtensionAPI) => void | Promise<void>;
|
|
1257
1489
|
export type InlineExtension = ExtensionFactory | {
|
|
1258
|
-
/**
|
|
1490
|
+
/**
|
|
1491
|
+
* Display name shown as `<inline:name>` in the startup Extensions list and errors. With
|
|
1492
|
+
* `builtin`, the extension is named `builtin:name` in errors and diagnostics.
|
|
1493
|
+
*/
|
|
1259
1494
|
name: string;
|
|
1260
1495
|
factory: ExtensionFactory;
|
|
1261
1496
|
/** Omit this extension from the startup Extensions list. */
|
|
1262
1497
|
hidden?: boolean;
|
|
1498
|
+
/**
|
|
1499
|
+
* Leave this extension out when another extension registers a tool, command, or flag with a
|
|
1500
|
+
* name it registers during loading, instead of reporting a conflict. The CLI's built-in MCP,
|
|
1501
|
+
* codemode, and tool search extensions use it, so for example an MCP extension that registers
|
|
1502
|
+
* `/mcp` replaces the built-in MCP support. The factory still runs, so it should only register
|
|
1503
|
+
* tools, commands, flags, and event handlers.
|
|
1504
|
+
*/
|
|
1505
|
+
replaceable?: boolean;
|
|
1506
|
+
/**
|
|
1507
|
+
* Supply the code of the `builtin:<name>` extension instead of loading as an inline extension.
|
|
1508
|
+
* `builtin:<name>` is an extension resource like a file: it loads by default, `pi config` lists
|
|
1509
|
+
* it, `-builtin:<name>` in the `extensions` setting and `--no-extensions` disable it, and
|
|
1510
|
+
* `-e builtin:<name>` loads it explicitly. It is hidden from the startup Extensions list and
|
|
1511
|
+
* loads after project trust is resolved, so it cannot handle `project_trust`. The CLI's built-in
|
|
1512
|
+
* extensions use it.
|
|
1513
|
+
*/
|
|
1514
|
+
builtin?: boolean;
|
|
1263
1515
|
};
|
|
1264
1516
|
export interface RegisteredTool {
|
|
1265
1517
|
definition: ToolDefinition;
|
|
@@ -1293,9 +1545,13 @@ export type GetSessionNameHandler = () => string | undefined;
|
|
|
1293
1545
|
export type GetActiveToolsHandler = () => string[];
|
|
1294
1546
|
/** Tool info with name, description, parameter schema, prompt guidelines, and source metadata. */
|
|
1295
1547
|
export type ToolInfo = Pick<ToolDefinition, "name" | "description" | "parameters" | "promptGuidelines"> & {
|
|
1548
|
+
exposure: ToolExposure;
|
|
1549
|
+
namespace?: ToolNamespace;
|
|
1550
|
+
annotations?: ToolAnnotations;
|
|
1296
1551
|
sourceInfo: SourceInfo;
|
|
1297
1552
|
};
|
|
1298
1553
|
export type GetAllToolsHandler = () => ToolInfo[];
|
|
1554
|
+
export type GetSettingsHandler = () => Settings;
|
|
1299
1555
|
export type GetCommandsHandler = () => SlashCommandInfo[];
|
|
1300
1556
|
export type SetActiveToolsHandler = (toolNames: string[]) => void;
|
|
1301
1557
|
export type RefreshToolsHandler = () => void;
|
|
@@ -1320,6 +1576,13 @@ export interface ExtensionRuntimeState {
|
|
|
1320
1576
|
provider: Provider;
|
|
1321
1577
|
extensionPath: string;
|
|
1322
1578
|
}>;
|
|
1579
|
+
/** Virtual model registrations queued during extension loading, processed when runner binds. */
|
|
1580
|
+
pendingVirtualModelRegistrations: Array<{
|
|
1581
|
+
definition: VirtualModelDefinition;
|
|
1582
|
+
extensionPath: string;
|
|
1583
|
+
}>;
|
|
1584
|
+
/** Create an extension context. Throws before the runner binds. */
|
|
1585
|
+
createContext: () => ExtensionContext;
|
|
1323
1586
|
/** Throws when this extension instance is stale after runtime replacement. */
|
|
1324
1587
|
assertActive: () => void;
|
|
1325
1588
|
/** Marks this extension instance as stale after runtime replacement or reload. */
|
|
@@ -1335,6 +1598,10 @@ export interface ExtensionRuntimeState {
|
|
|
1335
1598
|
registerProvider: (name: string, config: ProviderConfig, extensionPath?: string) => void;
|
|
1336
1599
|
registerNativeProvider: (provider: Provider, extensionPath?: string) => void;
|
|
1337
1600
|
unregisterProvider: (name: string, extensionPath?: string) => void;
|
|
1601
|
+
/** Servers registered with `pi.registerMcpServer()`. */
|
|
1602
|
+
mcpServers: McpServerRegistry;
|
|
1603
|
+
registerVirtualModel: (definition: VirtualModelDefinition, extensionPath?: string) => void;
|
|
1604
|
+
unregisterVirtualModel: (provider: string, id: string) => void;
|
|
1338
1605
|
}
|
|
1339
1606
|
/**
|
|
1340
1607
|
* Action implementations for pi.* API methods.
|
|
@@ -1349,6 +1616,7 @@ export interface ExtensionActions {
|
|
|
1349
1616
|
setLabel: SetLabelHandler;
|
|
1350
1617
|
getActiveTools: GetActiveToolsHandler;
|
|
1351
1618
|
getAllTools: GetAllToolsHandler;
|
|
1619
|
+
getSettings: GetSettingsHandler;
|
|
1352
1620
|
setActiveTools: SetActiveToolsHandler;
|
|
1353
1621
|
refreshTools: RefreshToolsHandler;
|
|
1354
1622
|
getCommands: GetCommandsHandler;
|
|
@@ -1361,7 +1629,9 @@ export interface ExtensionActions {
|
|
|
1361
1629
|
* Required by all modes.
|
|
1362
1630
|
*/
|
|
1363
1631
|
export interface ExtensionContextActions {
|
|
1364
|
-
|
|
1632
|
+
getExtensionSettings?: ExtensionContext["getExtensionSettings"];
|
|
1633
|
+
setExtensionSettings?: ExtensionContext["setExtensionSettings"];
|
|
1634
|
+
getTasks?: () => TasksContext;
|
|
1365
1635
|
getModel: () => Model<any> | undefined;
|
|
1366
1636
|
getScopedModels: () => readonly ScopedModel[];
|
|
1367
1637
|
isIdle: () => boolean;
|
|
@@ -1375,6 +1645,10 @@ export interface ExtensionContextActions {
|
|
|
1375
1645
|
compact: (options?: CompactOptions) => void;
|
|
1376
1646
|
getSystemPrompt: () => string;
|
|
1377
1647
|
getSystemPromptOptions?: () => BuildSystemPromptOptions;
|
|
1648
|
+
/** Backs `ExtensionToolContext.executeTool()`. Without it, nested calls fail. */
|
|
1649
|
+
executeTool?: (callerId: string, name: string, args: unknown, options: ExecuteToolOptions) => Promise<AgentToolCallOutcome>;
|
|
1650
|
+
/** Backs `ExtensionToolContext.tools`. */
|
|
1651
|
+
getCallableTools?: () => readonly AgentTool[];
|
|
1378
1652
|
}
|
|
1379
1653
|
/**
|
|
1380
1654
|
* Actions for ExtensionCommandContext (ctx.* in command handlers).
|
|
@@ -1421,6 +1695,8 @@ export interface Extension {
|
|
|
1421
1695
|
path: string;
|
|
1422
1696
|
resolvedPath: string;
|
|
1423
1697
|
hidden?: boolean;
|
|
1698
|
+
/** See {@link InlineExtension}. */
|
|
1699
|
+
replaceable?: boolean;
|
|
1424
1700
|
sourceInfo: SourceInfo;
|
|
1425
1701
|
handlers: Map<string, HandlerFn[]>;
|
|
1426
1702
|
tools: Map<string, RegisteredTool>;
|
|
@@ -1438,6 +1714,10 @@ export interface LoadExtensionsResult {
|
|
|
1438
1714
|
path: string;
|
|
1439
1715
|
error: string;
|
|
1440
1716
|
}>;
|
|
1717
|
+
warnings?: Array<{
|
|
1718
|
+
path: string;
|
|
1719
|
+
warning: string;
|
|
1720
|
+
}>;
|
|
1441
1721
|
/** Shared runtime - actions are throwing stubs until runner.initialize() */
|
|
1442
1722
|
runtime: ExtensionRuntime;
|
|
1443
1723
|
}
|