@earendil-works/pi-coding-agent 0.87.1 → 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 +79 -0
- package/dist/bun/cli.d.ts.map +1 -1
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -1
- package/dist/bun/restore-sandbox-env.js.map +1 -1
- package/dist/bun/runtime-setup.d.ts.map +1 -1
- package/dist/bun/runtime-setup.js +4 -1
- package/dist/bun/runtime-setup.js.map +1 -1
- package/dist/bun/sandbox-env-setup.d.ts.map +1 -1
- package/dist/bundle/chunks/anthropic-messages-A6EXUBG6.js +6 -0
- package/dist/bundle/chunks/anthropic.js +2 -2
- package/dist/bundle/chunks/azure-openai-responses-EN5WOBET.js +2 -0
- package/dist/bundle/chunks/bedrock-converse-stream.js +2 -2
- package/dist/bundle/chunks/chunk-4CSSZFEW.js +1435 -0
- package/dist/bundle/chunks/chunk-7JGR3GZN.js +11 -0
- package/dist/bundle/chunks/chunk-AXPY26X7.js +146 -0
- package/dist/bundle/chunks/chunk-EPDRUIU6.js +2 -0
- package/dist/bundle/chunks/chunk-GOPCREV2.js +4 -0
- package/dist/bundle/chunks/chunk-H3QXYIF7.js +31 -0
- package/dist/bundle/chunks/{chunk-S7SZN6Z3.js → chunk-HSPCVFST.js} +1 -1
- package/dist/bundle/chunks/chunk-IMTXZUO7.js +82 -0
- package/dist/bundle/chunks/chunk-J4CWPC4N.js +2 -0
- package/dist/bundle/chunks/chunk-LLMKQWZS.js +21 -0
- package/dist/bundle/chunks/{chunk-WIUZI2CJ.js → chunk-LRS5S6EK.js} +3 -3
- package/dist/bundle/chunks/chunk-PEHWOV5U.js +187 -0
- package/dist/bundle/chunks/{chunk-XDUWOHPL.js → chunk-S3GGRYIO.js} +2 -2
- package/dist/bundle/chunks/chunk-UTB4DTYQ.js +2 -0
- package/dist/bundle/chunks/{chunk-FUXEF6JQ.js → chunk-W2DOMZSC.js} +1 -1
- package/dist/bundle/chunks/cli-AZXNGIZH.js +49 -0
- package/dist/bundle/chunks/cloudflare-workers-ai-system-one-XJQQYGGU.js +2 -0
- package/dist/bundle/chunks/codemode-worker.js +295 -0
- package/dist/bundle/chunks/execute-7XXPZAWW.js +308 -0
- package/dist/bundle/chunks/github-copilot.js +1 -1
- package/dist/bundle/chunks/google-generative-ai-CQAKKJTA.js +2 -0
- package/dist/bundle/chunks/google-vertex-AE36YXJU.js +2 -0
- package/dist/bundle/chunks/{lib-HGQMNYVT.js → lib-TEDK3E5I.js} +2 -2
- package/dist/bundle/chunks/llama-cpp-classify-PJJYKPLD.js +22 -0
- package/dist/bundle/chunks/mistral-conversations-KEYTXJM7.js +5 -0
- package/dist/bundle/chunks/{openai-codex-responses-QDSOTBBO.js → openai-codex-responses-JQTCOVEG.js} +2 -2
- package/dist/bundle/chunks/openai-codex.js +2 -2
- package/dist/bundle/chunks/{openai-completions-OBX42CLD.js → openai-completions-XW2Q5HVC.js} +2 -2
- package/dist/bundle/chunks/openai-responses-6AXWFL75.js +3 -0
- package/dist/bundle/chunks/{openrouter-images-N4XVVFSD.js → openrouter-images-TPQ4V6OR.js} +1 -1
- package/dist/bundle/chunks/openrouter.js +2 -2
- package/dist/bundle/chunks/{pi-messages-GFKBWJHZ.js → pi-messages-TM5SOOIW.js} +2 -2
- package/dist/bundle/chunks/radius.js +2 -2
- package/dist/bundle/chunks/runtime-G5WJPRBM.js +2 -0
- package/dist/bundle/chunks/typesafe-system-one-E7A4HNJI.js +2 -0
- package/dist/bundle/chunks/virtual-modules-AQ3FLU6H.js +2 -0
- package/dist/bundle/cli-runtime.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/auth-check.d.ts.map +1 -1
- package/dist/cli/auth-check.js.map +1 -1
- package/dist/cli/auth-command.d.ts.map +1 -1
- package/dist/cli/auth-command.js.map +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/credential-print.d.ts.map +1 -1
- package/dist/cli/credential-print.js.map +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/initial-message.d.ts +1 -1
- package/dist/cli/initial-message.d.ts.map +1 -1
- package/dist/cli/initial-message.js.map +1 -1
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/project-trust.d.ts.map +1 -1
- package/dist/cli/project-trust.js.map +1 -1
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.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/cli.d.ts.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.map +1 -1
- package/dist/core/agent-session-runtime.js +1 -1
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +13 -0
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +135 -11
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +509 -253
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-guidance.d.ts.map +1 -1
- package/dist/core/auth-guidance.js.map +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/bug-report-upload.d.ts.map +1 -1
- package/dist/core/bug-report-upload.js.map +1 -1
- package/dist/core/bug-report.d.ts +1 -1
- package/dist/core/bug-report.d.ts.map +1 -1
- package/dist/core/bug-report.js +1 -1
- package/dist/core/bug-report.js.map +1 -1
- package/dist/core/cache-stats.d.ts.map +1 -1
- package/dist/core/cache-stats.js.map +1 -1
- package/dist/core/cache-warmer.d.ts.map +1 -1
- package/dist/core/cache-warmer.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.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/index.d.ts.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/defaults.d.ts.map +1 -1
- package/dist/core/diagnostics.d.ts.map +1 -1
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/exec.d.ts.map +1 -1
- package/dist/core/exec.js.map +1 -1
- package/dist/core/experimental.d.ts.map +1 -1
- package/dist/core/experimental.js.map +1 -1
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
- package/dist/core/export-html/ansi-to-html.js.map +1 -1
- package/dist/core/export-html/index.d.ts.map +1 -1
- package/dist/core/export-html/index.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/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/jiti-loader.d.ts.map +1 -1
- package/dist/core/extensions/jiti-static-loader.d.ts.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 +18 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +99 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +296 -22
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/extensions/virtual-modules.d.ts.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/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/keybindings.d.ts +1 -1
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +1 -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 +157 -0
- package/dist/core/mcp-servers.js.map +1 -0
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js.map +1 -1
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js.map +1 -1
- 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 +4 -4
- 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/models-store.d.ts.map +1 -1
- package/dist/core/models-store.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 +178 -0
- package/dist/core/nested-tool-calls.js.map +1 -0
- package/dist/core/output-guard.d.ts.map +1 -1
- package/dist/core/output-guard.js.map +1 -1
- 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 +59 -12
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/pi-manifest.d.ts.map +1 -1
- package/dist/core/pi-manifest.js.map +1 -1
- package/dist/core/project-trust.d.ts.map +1 -1
- package/dist/core/project-trust.js.map +1 -1
- package/dist/core/prompt-templates.d.ts.map +1 -1
- package/dist/core/prompt-templates.js.map +1 -1
- package/dist/core/provider-attribution.d.ts.map +1 -1
- package/dist/core/provider-attribution.js.map +1 -1
- package/dist/core/provider-composer.d.ts +40 -21
- package/dist/core/provider-composer.d.ts.map +1 -1
- package/dist/core/provider-composer.js +92 -40
- package/dist/core/provider-composer.js.map +1 -1
- package/dist/core/radius.d.ts.map +1 -1
- package/dist/core/radius.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts +8 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +18 -3
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resolve-config-value.d.ts.map +1 -1
- package/dist/core/resolve-config-value.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 +161 -35
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/runtime-credentials.d.ts.map +1 -1
- package/dist/core/runtime-credentials.js.map +1 -1
- package/dist/core/sdk.d.ts +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +24 -6
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-cwd.d.ts.map +1 -1
- package/dist/core/session-cwd.js.map +1 -1
- package/dist/core/session-export.d.ts.map +1 -1
- package/dist/core/session-export.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-diagnostics.d.ts.map +1 -1
- package/dist/core/settings-diagnostics.js.map +1 -1
- package/dist/core/settings-manager.d.ts +31 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +72 -2
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.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.d.ts.map +1 -1
- package/dist/core/system-prompt.js +1 -1
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/telemetry.d.ts.map +1 -1
- package/dist/core/telemetry.js.map +1 -1
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js.map +1 -1
- package/dist/core/tools/bash.d.ts +12 -0
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +35 -2
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/dist/core/tools/edit-diff.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
- package/dist/core/tools/file-mutation-queue.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.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/path-utils.d.ts.map +1 -1
- package/dist/core/tools/path-utils.js.map +1 -1
- package/dist/core/tools/powershell.d.ts.map +1 -1
- package/dist/core/tools/powershell.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js.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.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/edit.d.ts.map +1 -1
- package/dist/core/tools/renderers/edit.js.map +1 -1
- package/dist/core/tools/renderers/find.d.ts.map +1 -1
- package/dist/core/tools/renderers/find.js.map +1 -1
- package/dist/core/tools/renderers/grep.d.ts.map +1 -1
- package/dist/core/tools/renderers/grep.js.map +1 -1
- package/dist/core/tools/renderers/index.d.ts.map +1 -1
- package/dist/core/tools/renderers/index.js.map +1 -1
- package/dist/core/tools/renderers/ls.d.ts.map +1 -1
- package/dist/core/tools/renderers/ls.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/write.d.ts.map +1 -1
- package/dist/core/tools/renderers/write.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts +5 -3
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js +3 -1
- 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/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.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 +2 -0
- package/dist/core/usage-totals.d.ts.map +1 -1
- package/dist/core/usage-totals.js +23 -0
- 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 +31 -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/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/index.d.ts.map +1 -1
- package/dist/extensions/index.js +11 -1
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/llama/client.d.ts.map +1 -1
- package/dist/extensions/llama/client.js.map +1 -1
- package/dist/extensions/llama/huggingface.d.ts.map +1 -1
- package/dist/extensions/llama/huggingface.js.map +1 -1
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/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/llama/ui.d.ts.map +1 -1
- package/dist/extensions/llama/ui.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 +902 -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 +66 -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 +333 -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 +388 -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 +172 -0
- package/dist/extensions/mcp/ui.js.map +1 -0
- package/dist/extensions/tool-search/index.d.ts +12 -0
- package/dist/extensions/tool-search/index.d.ts.map +1 -0
- package/dist/extensions/tool-search/index.js +15 -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 +210 -0
- package/dist/extensions/tool-search/tool.js.map +1 -0
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- 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/migrations.d.ts.map +1 -1
- package/dist/migrations.js.map +1 -1
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/interactive/bug-report.d.ts.map +1 -1
- package/dist/modes/interactive/bug-report.js.map +1 -1
- package/dist/modes/interactive/chat-viewport.d.ts.map +1 -1
- package/dist/modes/interactive/chat-viewport.js.map +1 -1
- package/dist/modes/interactive/components/armin.d.ts.map +1 -1
- package/dist/modes/interactive/components/armin.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.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/countdown-timer.d.ts.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-entry.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
- package/dist/modes/interactive/components/daxnuts.js.map +1 -1
- package/dist/modes/interactive/components/diff.d.ts.map +1 -1
- package/dist/modes/interactive/components/diff.js.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-input.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.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 +43 -3
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -1
- package/dist/modes/interactive/components/markdown-transform.js.map +1 -1
- package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
- package/dist/modes/interactive/components/mermaid.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.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/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- 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/settings-submenu.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
- package/dist/modes/interactive/components/status-indicator.js.map +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.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 +29 -0
- package/dist/modes/interactive/components/themed-text.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +2 -2
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/trust-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts.map +1 -1
- package/dist/modes/interactive/external-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +11 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +199 -161
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -1
- package/dist/modes/interactive/model-catalog-refresh.js.map +1 -1
- package/dist/modes/interactive/model-search.d.ts.map +1 -1
- package/dist/modes/interactive/model-search.js.map +1 -1
- package/dist/modes/interactive/session-share.d.ts.map +1 -1
- package/dist/modes/interactive/session-share.js.map +1 -1
- 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 +127 -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 +66 -39
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +238 -317
- package/dist/modes/interactive/theme/theme.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/json-event.d.ts.map +1 -1
- package/dist/modes/json-event.js.map +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/jsonl.d.ts.map +1 -1
- package/dist/modes/rpc/jsonl.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/rpc-entry.d.ts.map +1 -1
- package/dist/rpc-entry.js.map +1 -1
- package/dist/utils/abort.d.ts.map +1 -1
- package/dist/utils/abort.js.map +1 -1
- package/dist/utils/ansi.d.ts.map +1 -1
- package/dist/utils/ansi.js.map +1 -1
- package/dist/utils/changelog.d.ts.map +1 -1
- package/dist/utils/changelog.js.map +1 -1
- package/dist/utils/child-process.d.ts.map +1 -1
- package/dist/utils/child-process.js.map +1 -1
- package/dist/utils/clipboard-command.d.ts.map +1 -1
- package/dist/utils/clipboard-command.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/deprecation.d.ts.map +1 -1
- package/dist/utils/deprecation.js.map +1 -1
- package/dist/utils/exif-orientation.d.ts.map +1 -1
- package/dist/utils/exif-orientation.js.map +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/fs-watch.d.ts.map +1 -1
- package/dist/utils/fs-watch.js.map +1 -1
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/html.d.ts.map +1 -1
- package/dist/utils/html.js.map +1 -1
- package/dist/utils/image-convert.d.ts.map +1 -1
- package/dist/utils/image-convert.js.map +1 -1
- package/dist/utils/image-process.d.ts.map +1 -1
- package/dist/utils/image-process.js.map +1 -1
- package/dist/utils/image-resize-core.d.ts.map +1 -1
- package/dist/utils/image-resize-core.js.map +1 -1
- package/dist/utils/image-resize-worker.d.ts.map +1 -1
- package/dist/utils/image-resize-worker.js.map +1 -1
- package/dist/utils/image-resize.d.ts.map +1 -1
- package/dist/utils/image-resize.js.map +1 -1
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/management-http.d.ts.map +1 -1
- package/dist/utils/management-http.js.map +1 -1
- package/dist/utils/mime.d.ts.map +1 -1
- package/dist/utils/mime.js.map +1 -1
- package/dist/utils/open-browser.d.ts.map +1 -1
- package/dist/utils/open-browser.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/photon.d.ts.map +1 -1
- package/dist/utils/photon.js.map +1 -1
- package/dist/utils/pi-user-agent.d.ts.map +1 -1
- package/dist/utils/pi-user-agent.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/dist/utils/sleep.d.ts.map +1 -1
- package/dist/utils/sleep.js.map +1 -1
- package/dist/utils/syntax-highlight.d.ts.map +1 -1
- package/dist/utils/syntax-highlight.js +2 -0
- package/dist/utils/syntax-highlight.js.map +1 -1
- package/dist/utils/text.d.ts.map +1 -1
- package/dist/utils/text.js.map +1 -1
- package/dist/utils/tool-result-images.d.ts.map +1 -1
- package/dist/utils/tool-result-images.js.map +1 -1
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js.map +1 -1
- package/dist/utils/windows-self-update.d.ts.map +1 -1
- package/dist/utils/windows-self-update.js.map +1 -1
- package/dist/utils/wsl.d.ts.map +1 -1
- package/dist/utils/wsl.js.map +1 -1
- package/dist/utils/zip.d.ts.map +1 -1
- package/dist/utils/zip.js.map +1 -1
- package/docs/cli.md +64 -3
- package/docs/configuration.md +2 -0
- package/docs/custom-provider.md +43 -4
- package/docs/docs.json +8 -0
- package/docs/extensions.md +55 -0
- package/docs/keybindings.md +1 -1
- package/docs/llama-cpp.md +13 -0
- package/docs/mcp.md +188 -0
- package/docs/models.md +35 -0
- package/docs/packages.md +4 -2
- package/docs/providers.md +1 -0
- package/docs/rpc-commands.md +9 -3
- package/docs/rpc.md +3 -1
- package/docs/sdk.md +7 -2
- package/docs/security.md +2 -0
- package/docs/session-format.md +5 -1
- package/docs/settings.md +20 -3
- package/docs/themes.md +33 -7
- package/docs/tui.md +18 -0
- 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 +5 -5
- 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 +2 -1
- package/npm-shrinkwrap.json +89 -39
- package/package.json +14 -12
- package/dist/bundle/chunks/anthropic-messages-J5WXPPPC.js +0 -6
- package/dist/bundle/chunks/azure-openai-responses-HUSQ3GP2.js +0 -2
- package/dist/bundle/chunks/chunk-65HAU2C5.js +0 -2
- package/dist/bundle/chunks/chunk-6R7UI4IY.js +0 -2
- package/dist/bundle/chunks/chunk-NUHFSC37.js +0 -25
- package/dist/bundle/chunks/chunk-OJP47DM6.js +0 -1568
- package/dist/bundle/chunks/chunk-RCZIEVGO.js +0 -11
- package/dist/bundle/chunks/google-generative-ai-IMS5EK2Y.js +0 -2
- package/dist/bundle/chunks/google-vertex-O4YJEQUW.js +0 -2
- package/dist/bundle/chunks/mistral-conversations-NOSQHBEY.js +0 -5
- package/dist/bundle/chunks/openai-responses-HWEUZ6WZ.js +0 -2
- package/dist/bundle/chunks/virtual-modules-VHMJYYWQ.js +0 -2
|
@@ -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,16 +19,19 @@ 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";
|
|
34
|
+
import type { ModelRoute, ModelRouteRequest, VirtualModelDefinition } from "../virtual-models.ts";
|
|
32
35
|
export type { ExecOptions, ExecResult } from "../exec.ts";
|
|
33
36
|
export type { BuildSystemPromptOptions, NormalizedBuildSystemPromptOptions } from "../system-prompt.ts";
|
|
34
37
|
export type { AgentToolResult, AgentToolUpdateCallback, ToolExecutionMode };
|
|
@@ -248,6 +251,34 @@ export interface ExtensionContext {
|
|
|
248
251
|
/** Get the current effective system prompt. */
|
|
249
252
|
getSystemPrompt(): string;
|
|
250
253
|
}
|
|
254
|
+
/** Options for {@link ExtensionToolContext.executeTool}. */
|
|
255
|
+
export interface ExecuteToolOptions {
|
|
256
|
+
/** Defaults to the calling tool's signal. */
|
|
257
|
+
signal?: AbortSignal;
|
|
258
|
+
/** Receives partial results of the nested tool, in addition to `tool_execution_update` events. */
|
|
259
|
+
onUpdate?: AgentToolUpdateCallback;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Context passed to tool `execute()` in a session: the extension context plus `executeTool()`
|
|
263
|
+
* for running other tools through the same validation, hooks, and permission checks as
|
|
264
|
+
* model-issued calls.
|
|
265
|
+
*
|
|
266
|
+
* A tool wrapped with `wrapToolDefinition()` without a context factory, such as a built-in tool
|
|
267
|
+
* created with `createBashTool()` and run in a plain `Agent` or called directly, gets no context.
|
|
268
|
+
*/
|
|
269
|
+
export interface ExtensionToolContext extends ExtensionContext {
|
|
270
|
+
/** Tools {@link executeTool} can call. */
|
|
271
|
+
readonly tools: readonly AgentTool[];
|
|
272
|
+
/**
|
|
273
|
+
* Run another tool. The call gets the id `<calling id>/<n>`, and the `tool_call`, `tool_result`,
|
|
274
|
+
* and `tool_execution_*` events carry `parentToolCallId`. It does not appear in the transcript;
|
|
275
|
+
* a bounded record of it is kept as `nestedCalls` on the calling tool's result message.
|
|
276
|
+
*
|
|
277
|
+
* Never rejects for tool failures: unknown tools, validation errors, blocked calls, and thrown
|
|
278
|
+
* errors come back as `isError: true`.
|
|
279
|
+
*/
|
|
280
|
+
executeTool(name: string, args: unknown, options?: ExecuteToolOptions): Promise<AgentToolCallOutcome>;
|
|
281
|
+
}
|
|
251
282
|
/**
|
|
252
283
|
* Extended context for command handlers.
|
|
253
284
|
* Includes session control methods only safe in user-initiated commands.
|
|
@@ -339,6 +370,64 @@ export interface ToolRenderContext<TState = any, TArgs = any> {
|
|
|
339
370
|
/** Whether the current result is an error. */
|
|
340
371
|
isError: boolean;
|
|
341
372
|
}
|
|
373
|
+
/**
|
|
374
|
+
* How the model reaches a tool. "Callable" means callable from other tools through
|
|
375
|
+
* `ctx.executeTool()`, as the `codemode` tool does.
|
|
376
|
+
*
|
|
377
|
+
* - `direct`: declared to the model while active, and callable while active.
|
|
378
|
+
* - `model-only`: declared to the model while active, never callable. Use it for orchestrating or
|
|
379
|
+
* interactive tools.
|
|
380
|
+
* - `codemode`: callable whenever registered. Not declared to the model unless explicitly
|
|
381
|
+
* activated. Codemode tools list it in their description.
|
|
382
|
+
* - `deferred`: like `codemode`, but codemode tools do not list it; tool search can find it.
|
|
383
|
+
* - `hidden`: registered but unreachable. Activating it has no effect.
|
|
384
|
+
*
|
|
385
|
+
* `direct` and `model-only` tools are activated when they are registered; the others are not.
|
|
386
|
+
* The active tool set (`getActiveTools`/`setActiveTools`) is the set declared to the model.
|
|
387
|
+
*/
|
|
388
|
+
export type ToolExposure = "direct" | "model-only" | "codemode" | "deferred" | "hidden";
|
|
389
|
+
/**
|
|
390
|
+
* Hints about what a tool does, with the meaning of MCP tool annotations. They come from the tool's
|
|
391
|
+
* author and are not verified; permission extensions can use them to decide which calls to confirm.
|
|
392
|
+
*/
|
|
393
|
+
export interface ToolAnnotations {
|
|
394
|
+
/** The tool does not modify its environment. */
|
|
395
|
+
readOnlyHint?: boolean;
|
|
396
|
+
/** The tool may delete or overwrite data, rather than only add to it. Meaningful when not read-only. */
|
|
397
|
+
destructiveHint?: boolean;
|
|
398
|
+
/** Repeating a call with the same arguments has no further effect. Meaningful when not read-only. */
|
|
399
|
+
idempotentHint?: boolean;
|
|
400
|
+
/** The tool reaches an open world of external entities, such as the web, rather than a closed domain. */
|
|
401
|
+
openWorldHint?: boolean;
|
|
402
|
+
}
|
|
403
|
+
/** A group of related tools, such as the tools of one MCP server. Codemode tools list them together. */
|
|
404
|
+
export interface ToolNamespace {
|
|
405
|
+
/** For example `mcp__docs`. */
|
|
406
|
+
name: string;
|
|
407
|
+
/** Shown once above the group's tools. */
|
|
408
|
+
description?: string;
|
|
409
|
+
}
|
|
410
|
+
/** The tools of a session as {@link ToolDefinition.prepareLoadout} sees them. */
|
|
411
|
+
export interface ToolLoadout {
|
|
412
|
+
/** Tools declared to the model (the active tools), in order, with their original descriptions. */
|
|
413
|
+
readonly declared: readonly AgentTool[];
|
|
414
|
+
/** Tools callable through `ctx.executeTool()`. */
|
|
415
|
+
readonly callable: readonly AgentTool[];
|
|
416
|
+
/** Every registered tool. */
|
|
417
|
+
readonly registered: readonly AgentTool[];
|
|
418
|
+
getExposure(name: string): ToolExposure;
|
|
419
|
+
getNamespace(name: string): ToolNamespace | undefined;
|
|
420
|
+
}
|
|
421
|
+
/** Changes {@link ToolDefinition.prepareLoadout} makes to what the model sees. */
|
|
422
|
+
export interface ToolLoadoutChanges {
|
|
423
|
+
/** Model-facing descriptions of declared tools, by tool name. */
|
|
424
|
+
descriptions?: Readonly<Record<string, string>>;
|
|
425
|
+
/**
|
|
426
|
+
* Declared tools whose declarations requests leave out. They stay active and callable, and the
|
|
427
|
+
* transcript still declares them, so the active set survives `/tree` and resume.
|
|
428
|
+
*/
|
|
429
|
+
hiddenDeclarations?: readonly string[];
|
|
430
|
+
}
|
|
342
431
|
/**
|
|
343
432
|
* Tool definition for registerTool().
|
|
344
433
|
*/
|
|
@@ -361,6 +450,31 @@ export interface ToolDefinition<TParams extends TSchema = TSchema, TDetails = un
|
|
|
361
450
|
renderShell?: "default" | "self";
|
|
362
451
|
/** Optional compatibility shim to prepare raw tool call arguments before schema validation. Must return an object conforming to TParams. */
|
|
363
452
|
prepareArguments?: (args: unknown) => Static<TParams>;
|
|
453
|
+
/**
|
|
454
|
+
* JSON Schema of `structuredContent` in successful results. Tools that declare it should always
|
|
455
|
+
* set `structuredContent`; codemode scripts then receive it instead of the text content.
|
|
456
|
+
*/
|
|
457
|
+
outputSchema?: TSchema;
|
|
458
|
+
/**
|
|
459
|
+
* How the model reaches the tool. Default: `"direct"`. See {@link ToolExposure}.
|
|
460
|
+
*/
|
|
461
|
+
exposure?: ToolExposure;
|
|
462
|
+
/** Group the tool belongs to, for example its MCP server. */
|
|
463
|
+
namespace?: ToolNamespace;
|
|
464
|
+
/** Hints about what the tool does, for example from an MCP server. */
|
|
465
|
+
annotations?: ToolAnnotations;
|
|
466
|
+
/**
|
|
467
|
+
* Whether registering the tool activates it. Default: `true` for `direct` and `model-only` tools;
|
|
468
|
+
* other exposures are never activated on registration. A tool with `defaultActive: false` is
|
|
469
|
+
* activated by naming it in `--tools` or the `defaultTools` setting, or with `setActiveTools()`.
|
|
470
|
+
*/
|
|
471
|
+
defaultActive?: boolean;
|
|
472
|
+
/**
|
|
473
|
+
* Adjust how the loadout is presented to the model while this tool is active. Called whenever
|
|
474
|
+
* the active tools change. Tools that orchestrate other tools use it, for example to list the
|
|
475
|
+
* callable tools in their own description.
|
|
476
|
+
*/
|
|
477
|
+
prepareLoadout?: (loadout: ToolLoadout) => ToolLoadoutChanges | undefined;
|
|
364
478
|
/**
|
|
365
479
|
* Per-tool execution mode override.
|
|
366
480
|
* - "sequential": this tool must execute one at a time with other tool calls.
|
|
@@ -370,7 +484,7 @@ export interface ToolDefinition<TParams extends TSchema = TSchema, TDetails = un
|
|
|
370
484
|
*/
|
|
371
485
|
executionMode?: ToolExecutionMode;
|
|
372
486
|
/** Execute the tool. */
|
|
373
|
-
execute(toolCallId: string, params: Static<TParams>, signal: AbortSignal | undefined, onUpdate: AgentToolUpdateCallback<TDetails> | undefined, ctx:
|
|
487
|
+
execute(toolCallId: string, params: Static<TParams>, signal: AbortSignal | undefined, onUpdate: AgentToolUpdateCallback<TDetails> | undefined, ctx: ExtensionToolContext): Promise<AgentToolResult<TDetails>>;
|
|
374
488
|
/** Custom rendering for tool call display */
|
|
375
489
|
renderCall?: (args: Static<TParams>, theme: Theme, context: ToolRenderContext<TState, Static<TParams>>) => Component;
|
|
376
490
|
/** Custom rendering for tool result display */
|
|
@@ -413,6 +527,17 @@ export interface ResourcesDiscoverResult {
|
|
|
413
527
|
promptPaths?: string[];
|
|
414
528
|
themePaths?: string[];
|
|
415
529
|
}
|
|
530
|
+
/**
|
|
531
|
+
* Fired when an extension registers or unregisters an MCP server after the extensions are bound
|
|
532
|
+
* (see {@link ExtensionAPI.registerMcpServer}). Servers registered while extensions load are read
|
|
533
|
+
* with `pi.getMcpServers()` on `session_start`. Handling this event marks an extension as the one
|
|
534
|
+
* that connects registered servers.
|
|
535
|
+
*/
|
|
536
|
+
export interface McpServersChangeEvent {
|
|
537
|
+
type: "mcp_servers_change";
|
|
538
|
+
/** Every registered server after the change. */
|
|
539
|
+
servers: RegisteredMcpServer[];
|
|
540
|
+
}
|
|
416
541
|
/** Fired when a session is started, loaded, or reloaded */
|
|
417
542
|
export interface SessionStartEvent {
|
|
418
543
|
type: "session_start";
|
|
@@ -551,6 +676,14 @@ export interface AfterProviderResponseEvent {
|
|
|
551
676
|
status: number;
|
|
552
677
|
headers: Record<string, string>;
|
|
553
678
|
}
|
|
679
|
+
/** Fired for a parsed provider stream event before Pi normalizes it. */
|
|
680
|
+
export interface ProviderStreamEvent {
|
|
681
|
+
type: "provider_stream_event";
|
|
682
|
+
provider: ProviderId;
|
|
683
|
+
api: Api;
|
|
684
|
+
model: string;
|
|
685
|
+
data: unknown;
|
|
686
|
+
}
|
|
554
687
|
/** Fired after user submits prompt but before agent loop. */
|
|
555
688
|
export interface BeforeAgentStartEvent {
|
|
556
689
|
type: "before_agent_start";
|
|
@@ -676,6 +809,8 @@ export interface ToolExecutionStartEvent {
|
|
|
676
809
|
toolCallId: string;
|
|
677
810
|
toolName: string;
|
|
678
811
|
args: any;
|
|
812
|
+
/** Set when another tool (for example a codemode script) made this call. */
|
|
813
|
+
parentToolCallId?: string;
|
|
679
814
|
}
|
|
680
815
|
/** Fired during tool execution with partial/streaming output */
|
|
681
816
|
export interface ToolExecutionUpdateEvent {
|
|
@@ -684,6 +819,8 @@ export interface ToolExecutionUpdateEvent {
|
|
|
684
819
|
toolName: string;
|
|
685
820
|
args: any;
|
|
686
821
|
partialResult: any;
|
|
822
|
+
/** Set when another tool (for example a codemode script) made this call. */
|
|
823
|
+
parentToolCallId?: string;
|
|
687
824
|
}
|
|
688
825
|
/** Fired when a tool finishes executing */
|
|
689
826
|
export interface ToolExecutionEndEvent {
|
|
@@ -692,6 +829,8 @@ export interface ToolExecutionEndEvent {
|
|
|
692
829
|
toolName: string;
|
|
693
830
|
result: any;
|
|
694
831
|
isError: boolean;
|
|
832
|
+
/** Set when another tool (for example a codemode script) made this call. */
|
|
833
|
+
parentToolCallId?: string;
|
|
695
834
|
}
|
|
696
835
|
export type ModelSelectSource = "set" | "cycle" | "restore";
|
|
697
836
|
/** Fired when a new model is selected */
|
|
@@ -743,7 +882,14 @@ export type InputEventResult = {
|
|
|
743
882
|
};
|
|
744
883
|
interface ToolCallEventBase {
|
|
745
884
|
type: "tool_call";
|
|
885
|
+
/**
|
|
886
|
+
* The call's id. For calls another tool made (with `parentToolCallId` set), pi assigns
|
|
887
|
+
* `<parent id>/<n>`; such ids never appear as tool calls or tool results in the transcript, only
|
|
888
|
+
* in the parent result's `nestedCalls` record.
|
|
889
|
+
*/
|
|
746
890
|
toolCallId: string;
|
|
891
|
+
/** Set when another tool (for example a codemode script) issued this call. */
|
|
892
|
+
parentToolCallId?: string;
|
|
747
893
|
}
|
|
748
894
|
export interface BashToolCallEvent extends ToolCallEventBase {
|
|
749
895
|
toolName: "bash";
|
|
@@ -790,9 +936,17 @@ export interface CustomToolCallEvent extends ToolCallEventBase {
|
|
|
790
936
|
export type ToolCallEvent = BashToolCallEvent | PowerShellToolCallEvent | ReadToolCallEvent | EditToolCallEvent | WriteToolCallEvent | GrepToolCallEvent | FindToolCallEvent | LsToolCallEvent | CustomToolCallEvent;
|
|
791
937
|
interface ToolResultEventBase {
|
|
792
938
|
type: "tool_result";
|
|
939
|
+
/** The call's id; `<parent id>/<n>` for nested calls, see `ToolCallEvent`. */
|
|
793
940
|
toolCallId: string;
|
|
941
|
+
/** Set when another tool (for example a codemode script) issued this call. */
|
|
942
|
+
parentToolCallId?: string;
|
|
794
943
|
input: Record<string, unknown>;
|
|
795
944
|
content: (TextContent | ImageContent)[];
|
|
945
|
+
/**
|
|
946
|
+
* Machine-readable result for tools that declare an `outputSchema`. Handlers that redact
|
|
947
|
+
* `content` should also replace this; replacing `content` alone drops it.
|
|
948
|
+
*/
|
|
949
|
+
structuredContent?: JsonValue;
|
|
796
950
|
isError: boolean;
|
|
797
951
|
/** Usage from the tool execution itself, if available. */
|
|
798
952
|
usage?: Usage;
|
|
@@ -876,7 +1030,7 @@ export declare function isToolCallEventType<TName extends string, TInput extends
|
|
|
876
1030
|
input: TInput;
|
|
877
1031
|
};
|
|
878
1032
|
/** Union of all event types */
|
|
879
|
-
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;
|
|
1033
|
+
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;
|
|
880
1034
|
export interface ContextEventResult {
|
|
881
1035
|
messages?: AgentMessage[];
|
|
882
1036
|
}
|
|
@@ -904,9 +1058,15 @@ export type UserBashEventResult = {
|
|
|
904
1058
|
/** Full replacement: extension handled execution, use this result */
|
|
905
1059
|
result: BashResult;
|
|
906
1060
|
};
|
|
1061
|
+
/**
|
|
1062
|
+
* Changes a `tool_result` handler makes. Omitted fields stay as they are, except that replacing
|
|
1063
|
+
* `content` without returning `structuredContent` drops the structured content, because it may no
|
|
1064
|
+
* longer match. Return it along with `content` to keep it.
|
|
1065
|
+
*/
|
|
907
1066
|
export interface ToolResultEventResult {
|
|
908
1067
|
content?: (TextContent | ImageContent)[];
|
|
909
1068
|
details?: unknown;
|
|
1069
|
+
structuredContent?: JsonValue;
|
|
910
1070
|
isError?: boolean;
|
|
911
1071
|
usage?: Usage;
|
|
912
1072
|
}
|
|
@@ -986,6 +1146,7 @@ export interface ExtensionAPI {
|
|
|
986
1146
|
on(event: "session_compact", handler: ExtensionHandler<SessionCompactEvent>): () => void;
|
|
987
1147
|
on(event: "session_compact_failed", handler: ExtensionHandler<SessionCompactFailedEvent>): () => void;
|
|
988
1148
|
on(event: "session_shutdown", handler: ExtensionHandler<SessionShutdownEvent>): () => void;
|
|
1149
|
+
on(event: "mcp_servers_change", handler: ExtensionHandler<McpServersChangeEvent>): () => void;
|
|
989
1150
|
on(event: "session_before_tree", handler: ExtensionHandler<SessionBeforeTreeEvent, SessionBeforeTreeResult>): () => void;
|
|
990
1151
|
on(event: "session_tree", handler: ExtensionHandler<SessionTreeEvent>): () => void;
|
|
991
1152
|
on(event: "context", handler: ExtensionHandler<ContextEvent, ContextEventResult>): () => void;
|
|
@@ -994,6 +1155,7 @@ export interface ExtensionAPI {
|
|
|
994
1155
|
on(event: "before_provider_request", handler: ExtensionHandler<BeforeProviderRequestEvent, BeforeProviderRequestEventResult>): () => void;
|
|
995
1156
|
on(event: "before_provider_headers", handler: ExtensionHandler<BeforeProviderHeadersEvent>): () => void;
|
|
996
1157
|
on(event: "after_provider_response", handler: ExtensionHandler<AfterProviderResponseEvent>): () => void;
|
|
1158
|
+
on(event: "provider_stream_event", handler: ExtensionHandler<ProviderStreamEvent>): () => void;
|
|
997
1159
|
on(event: "before_agent_start", handler: ExtensionHandler<BeforeAgentStartEvent, BeforeAgentStartEventResult>): () => void;
|
|
998
1160
|
on(event: "agent_start", handler: ExtensionHandler<AgentStartEvent>): () => void;
|
|
999
1161
|
on(event: "agent_end", handler: ExtensionHandler<AgentEndEvent>): () => void;
|
|
@@ -1066,11 +1228,16 @@ export interface ExtensionAPI {
|
|
|
1066
1228
|
setLabel(entryId: string, label: string | undefined): void;
|
|
1067
1229
|
/** Execute a shell command. */
|
|
1068
1230
|
exec(command: string, args: string[], options?: ExecOptions): Promise<ExecResult>;
|
|
1069
|
-
/** Get the
|
|
1231
|
+
/** Get the names of the active tools, which are the tools declared to the model. */
|
|
1070
1232
|
getActiveTools(): string[];
|
|
1071
|
-
/** Get all configured tools with parameter schema, prompt guidelines, and source metadata. */
|
|
1233
|
+
/** Get all configured tools with parameter schema, prompt guidelines, exposure, and source metadata. */
|
|
1072
1234
|
getAllTools(): ToolInfo[];
|
|
1073
|
-
/**
|
|
1235
|
+
/** Get a copy of the effective settings (global and project settings merged, with overrides). */
|
|
1236
|
+
getSettings(): Settings;
|
|
1237
|
+
/**
|
|
1238
|
+
* Set the active tools by name. Unknown and `hidden` tools are ignored. Tools with `codemode` or
|
|
1239
|
+
* `deferred` exposure stay callable from codemode scripts whether active or not.
|
|
1240
|
+
*/
|
|
1074
1241
|
setActiveTools(toolNames: string[]): void;
|
|
1075
1242
|
/** Get available slash commands in the current session. */
|
|
1076
1243
|
getCommands(): SlashCommandInfo[];
|
|
@@ -1154,9 +1321,45 @@ export interface ExtensionAPI {
|
|
|
1154
1321
|
* pi.unregisterProvider("my-proxy");
|
|
1155
1322
|
*/
|
|
1156
1323
|
unregisterProvider(name: string): void;
|
|
1324
|
+
/**
|
|
1325
|
+
* Register an MCP server for this session, with the same config as an `mcpServers` entry in
|
|
1326
|
+
* `mcp.json`. The server connects next to the configured servers: on `session_start` when
|
|
1327
|
+
* registered during extension load, right away when registered later. Registering a name again
|
|
1328
|
+
* replaces the extension's earlier registration.
|
|
1329
|
+
*
|
|
1330
|
+
* The registration is not saved; register again on every load. A server of the same name in
|
|
1331
|
+
* `mcp.json` takes precedence. Throws for invalid configs and for names another extension
|
|
1332
|
+
* registered. When no loaded extension handles MCP servers (for example because another MCP
|
|
1333
|
+
* extension replaced the built-in one), the registration is reported as an extension error.
|
|
1334
|
+
*
|
|
1335
|
+
* @example
|
|
1336
|
+
* pi.registerMcpServer("jira", { url: "https://mcp.example.com/jira" });
|
|
1337
|
+
*/
|
|
1338
|
+
registerMcpServer(name: string, config: McpServerConfig): void;
|
|
1339
|
+
/** Remove an MCP server this extension registered and close its connection. */
|
|
1340
|
+
unregisterMcpServer(name: string): void;
|
|
1341
|
+
/** Every MCP server registered by extensions. For extensions that connect MCP servers. */
|
|
1342
|
+
getMcpServers(): RegisteredMcpServer[];
|
|
1343
|
+
/**
|
|
1344
|
+
* Register a virtual model: a selectable catalog entry that routes each request to a physical
|
|
1345
|
+
* model. The selection (`ctx.model`, `model_change` entries) names the virtual model; assistant
|
|
1346
|
+
* messages record the physical model and thinking level the router picked.
|
|
1347
|
+
*
|
|
1348
|
+
* `provider` may be any provider id, including one with physical models, and may list several
|
|
1349
|
+
* virtual models. Registering the same provider and id again replaces the virtual model. See
|
|
1350
|
+
* docs/virtual-models.md.
|
|
1351
|
+
*/
|
|
1352
|
+
registerVirtualModel<TState = unknown>(model: ExtensionVirtualModel<TState>): void;
|
|
1353
|
+
/** Remove a virtual model registered with `registerVirtualModel()`. */
|
|
1354
|
+
unregisterVirtualModel(provider: string, id: string): void;
|
|
1157
1355
|
/** Shared event bus for extension communication. */
|
|
1158
1356
|
events: EventBus;
|
|
1159
1357
|
}
|
|
1358
|
+
/** Virtual model registered via pi.registerVirtualModel(). */
|
|
1359
|
+
export interface ExtensionVirtualModel<TState = unknown> extends Omit<VirtualModelDefinition<TState>, "route"> {
|
|
1360
|
+
/** Like `VirtualModelDefinition.route`, with an extension context. */
|
|
1361
|
+
route(request: ModelRouteRequest<TState>, ctx: ExtensionContext): ModelRoute<TState> | Promise<ModelRoute<TState>>;
|
|
1362
|
+
}
|
|
1160
1363
|
/** Configuration for registering a provider via pi.registerProvider(). */
|
|
1161
1364
|
export interface ProviderConfig {
|
|
1162
1365
|
/** Display name for the provider in UI. */
|
|
@@ -1173,9 +1376,15 @@ export interface ProviderConfig {
|
|
|
1173
1376
|
* (`getCurrentSystemPrompt(context.messages)`, `getCurrentTools(context.messages)`).
|
|
1174
1377
|
* Implementations must invoke `options.onPayload` before sending the provider request and use any
|
|
1175
1378
|
* returned replacement payload. They must invoke `options.onResponse` after receiving the response
|
|
1176
|
-
* and before consuming its body, matching built-in providers.
|
|
1379
|
+
* and before consuming its body, matching built-in providers. Implementations may invoke
|
|
1380
|
+
* `options.onProviderStreamEvent(data, model)` with parsed stream events before normalization.
|
|
1381
|
+
* Event data is adapter-owned and must be treated as read-only.
|
|
1177
1382
|
*/
|
|
1178
1383
|
streamSimple?: (model: Model<Api>, context: TranscriptContext, options?: SimpleStreamOptions) => AssistantMessageEventStream;
|
|
1384
|
+
/** Image-generation implementations keyed by image API. */
|
|
1385
|
+
images?: Partial<Record<ImageApi, ProviderImages>>;
|
|
1386
|
+
/** Classifier implementations keyed by classifier API. */
|
|
1387
|
+
classifiers?: Partial<Record<ClassifierApi, ProviderClassifier>>;
|
|
1179
1388
|
/** Custom headers to include in requests. */
|
|
1180
1389
|
headers?: Record<string, string>;
|
|
1181
1390
|
/** If true, adds Authorization: Bearer header with the resolved API key. */
|
|
@@ -1205,45 +1414,84 @@ export interface ProviderConfig {
|
|
|
1205
1414
|
modifyModels?(models: Model<Api>[], credentials: OAuthCredentials): Model<Api>[];
|
|
1206
1415
|
};
|
|
1207
1416
|
}
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
/** Model ID (e.g., "claude-sonnet-4-20250514"). */
|
|
1417
|
+
interface ProviderModelConfigBase {
|
|
1418
|
+
/** Model ID. */
|
|
1211
1419
|
id: string;
|
|
1212
|
-
/** Display name
|
|
1420
|
+
/** Display name. */
|
|
1213
1421
|
name: string;
|
|
1214
1422
|
/** API type override for this model. */
|
|
1215
|
-
api?:
|
|
1423
|
+
api?: string;
|
|
1216
1424
|
/** API endpoint URL override for this model. */
|
|
1217
1425
|
baseUrl?: string;
|
|
1218
|
-
/** Whether the model supports extended thinking. */
|
|
1219
|
-
reasoning: boolean;
|
|
1220
|
-
/** Maps pi thinking levels to provider/model-specific values; null marks a level unsupported. */
|
|
1221
|
-
thinkingLevelMap?: Model<Api>["thinkingLevelMap"];
|
|
1222
1426
|
/** Supported input types. */
|
|
1223
1427
|
input: ("text" | "image")[];
|
|
1224
1428
|
/** Provider input limits and cache-safe image preprocessing metadata. */
|
|
1225
|
-
inputLimits?:
|
|
1429
|
+
inputLimits?: AnyModel["inputLimits"];
|
|
1226
1430
|
/** Per-million-token cost rates and optional request-wide input pricing tiers. */
|
|
1227
|
-
cost:
|
|
1431
|
+
cost: AnyModel["cost"];
|
|
1432
|
+
/** Custom headers for this model. */
|
|
1433
|
+
headers?: Record<string, string>;
|
|
1434
|
+
}
|
|
1435
|
+
/** Chat model configuration. Omitted `type` is normalized to `"chat"`. */
|
|
1436
|
+
export interface ProviderChatModelConfig extends ProviderModelConfigBase {
|
|
1437
|
+
type?: "chat";
|
|
1438
|
+
api?: Api;
|
|
1439
|
+
/** Whether the model supports extended thinking. */
|
|
1440
|
+
reasoning: boolean;
|
|
1441
|
+
/** Maps pi thinking levels to provider/model-specific values; null marks a level unsupported. */
|
|
1442
|
+
thinkingLevelMap?: Model<Api>["thinkingLevelMap"];
|
|
1228
1443
|
/** Best-effort prompt cache lifetime in seconds per retention tier. Unset disables cache warming. */
|
|
1229
1444
|
promptCache?: Model<Api>["promptCache"];
|
|
1230
1445
|
/** Maximum context window size in tokens. */
|
|
1231
1446
|
contextWindow: number;
|
|
1232
1447
|
/** Maximum output tokens. */
|
|
1233
1448
|
maxTokens: number;
|
|
1234
|
-
|
|
1235
|
-
headers?: Record<string, string>;
|
|
1449
|
+
samplingParams?: Record<string, unknown>;
|
|
1236
1450
|
/** OpenAI compatibility settings. */
|
|
1237
1451
|
compat?: Model<Api>["compat"];
|
|
1238
1452
|
}
|
|
1453
|
+
/** Image-generation model configuration. */
|
|
1454
|
+
export interface ProviderImageModelConfig extends ProviderModelConfigBase {
|
|
1455
|
+
type: "image";
|
|
1456
|
+
api?: ImageApi;
|
|
1457
|
+
output: ("text" | "image")[];
|
|
1458
|
+
}
|
|
1459
|
+
/** Structured classifier model configuration. */
|
|
1460
|
+
export interface ProviderClassifierModelConfig extends ProviderModelConfigBase {
|
|
1461
|
+
type: "classifier";
|
|
1462
|
+
api?: ClassifierApi;
|
|
1463
|
+
contextWindow: number;
|
|
1464
|
+
}
|
|
1465
|
+
/** Configuration for a model within a provider. */
|
|
1466
|
+
export type ProviderModelConfig = ProviderChatModelConfig | ProviderImageModelConfig | ProviderClassifierModelConfig;
|
|
1239
1467
|
/** Extension factory function type. Supports both sync and async initialization. */
|
|
1240
1468
|
export type ExtensionFactory = (pi: ExtensionAPI) => void | Promise<void>;
|
|
1241
1469
|
export type InlineExtension = ExtensionFactory | {
|
|
1242
|
-
/**
|
|
1470
|
+
/**
|
|
1471
|
+
* Display name shown as `<inline:name>` in the startup Extensions list and errors. With
|
|
1472
|
+
* `builtin`, the extension is named `builtin:name` in errors and diagnostics.
|
|
1473
|
+
*/
|
|
1243
1474
|
name: string;
|
|
1244
1475
|
factory: ExtensionFactory;
|
|
1245
1476
|
/** Omit this extension from the startup Extensions list. */
|
|
1246
1477
|
hidden?: boolean;
|
|
1478
|
+
/**
|
|
1479
|
+
* Leave this extension out when another extension registers a tool, command, or flag with a
|
|
1480
|
+
* name it registers during loading, instead of reporting a conflict. The CLI's built-in MCP,
|
|
1481
|
+
* codemode, and tool search extensions use it, so for example an MCP extension that registers
|
|
1482
|
+
* `/mcp` replaces the built-in MCP support. The factory still runs, so it should only register
|
|
1483
|
+
* tools, commands, flags, and event handlers.
|
|
1484
|
+
*/
|
|
1485
|
+
replaceable?: boolean;
|
|
1486
|
+
/**
|
|
1487
|
+
* Supply the code of the `builtin:<name>` extension instead of loading as an inline extension.
|
|
1488
|
+
* `builtin:<name>` is an extension resource like a file: it loads by default, `pi config` lists
|
|
1489
|
+
* it, `-builtin:<name>` in the `extensions` setting and `--no-extensions` disable it, and
|
|
1490
|
+
* `-e builtin:<name>` loads it explicitly. It is hidden from the startup Extensions list and
|
|
1491
|
+
* loads after project trust is resolved, so it cannot handle `project_trust`. The CLI's built-in
|
|
1492
|
+
* extensions use it.
|
|
1493
|
+
*/
|
|
1494
|
+
builtin?: boolean;
|
|
1247
1495
|
};
|
|
1248
1496
|
export interface RegisteredTool {
|
|
1249
1497
|
definition: ToolDefinition;
|
|
@@ -1277,9 +1525,13 @@ export type GetSessionNameHandler = () => string | undefined;
|
|
|
1277
1525
|
export type GetActiveToolsHandler = () => string[];
|
|
1278
1526
|
/** Tool info with name, description, parameter schema, prompt guidelines, and source metadata. */
|
|
1279
1527
|
export type ToolInfo = Pick<ToolDefinition, "name" | "description" | "parameters" | "promptGuidelines"> & {
|
|
1528
|
+
exposure: ToolExposure;
|
|
1529
|
+
namespace?: ToolNamespace;
|
|
1530
|
+
annotations?: ToolAnnotations;
|
|
1280
1531
|
sourceInfo: SourceInfo;
|
|
1281
1532
|
};
|
|
1282
1533
|
export type GetAllToolsHandler = () => ToolInfo[];
|
|
1534
|
+
export type GetSettingsHandler = () => Settings;
|
|
1283
1535
|
export type GetCommandsHandler = () => SlashCommandInfo[];
|
|
1284
1536
|
export type SetActiveToolsHandler = (toolNames: string[]) => void;
|
|
1285
1537
|
export type RefreshToolsHandler = () => void;
|
|
@@ -1304,6 +1556,13 @@ export interface ExtensionRuntimeState {
|
|
|
1304
1556
|
provider: Provider;
|
|
1305
1557
|
extensionPath: string;
|
|
1306
1558
|
}>;
|
|
1559
|
+
/** Virtual model registrations queued during extension loading, processed when runner binds. */
|
|
1560
|
+
pendingVirtualModelRegistrations: Array<{
|
|
1561
|
+
definition: VirtualModelDefinition;
|
|
1562
|
+
extensionPath: string;
|
|
1563
|
+
}>;
|
|
1564
|
+
/** Create an extension context. Throws before the runner binds. */
|
|
1565
|
+
createContext: () => ExtensionContext;
|
|
1307
1566
|
/** Throws when this extension instance is stale after runtime replacement. */
|
|
1308
1567
|
assertActive: () => void;
|
|
1309
1568
|
/** Marks this extension instance as stale after runtime replacement or reload. */
|
|
@@ -1319,6 +1578,10 @@ export interface ExtensionRuntimeState {
|
|
|
1319
1578
|
registerProvider: (name: string, config: ProviderConfig, extensionPath?: string) => void;
|
|
1320
1579
|
registerNativeProvider: (provider: Provider, extensionPath?: string) => void;
|
|
1321
1580
|
unregisterProvider: (name: string, extensionPath?: string) => void;
|
|
1581
|
+
/** Servers registered with `pi.registerMcpServer()`. */
|
|
1582
|
+
mcpServers: McpServerRegistry;
|
|
1583
|
+
registerVirtualModel: (definition: VirtualModelDefinition, extensionPath?: string) => void;
|
|
1584
|
+
unregisterVirtualModel: (provider: string, id: string) => void;
|
|
1322
1585
|
}
|
|
1323
1586
|
/**
|
|
1324
1587
|
* Action implementations for pi.* API methods.
|
|
@@ -1333,6 +1596,7 @@ export interface ExtensionActions {
|
|
|
1333
1596
|
setLabel: SetLabelHandler;
|
|
1334
1597
|
getActiveTools: GetActiveToolsHandler;
|
|
1335
1598
|
getAllTools: GetAllToolsHandler;
|
|
1599
|
+
getSettings: GetSettingsHandler;
|
|
1336
1600
|
setActiveTools: SetActiveToolsHandler;
|
|
1337
1601
|
refreshTools: RefreshToolsHandler;
|
|
1338
1602
|
getCommands: GetCommandsHandler;
|
|
@@ -1357,6 +1621,10 @@ export interface ExtensionContextActions {
|
|
|
1357
1621
|
compact: (options?: CompactOptions) => void;
|
|
1358
1622
|
getSystemPrompt: () => string;
|
|
1359
1623
|
getSystemPromptOptions?: () => BuildSystemPromptOptions;
|
|
1624
|
+
/** Backs `ExtensionToolContext.executeTool()`. Without it, nested calls fail. */
|
|
1625
|
+
executeTool?: (callerId: string, name: string, args: unknown, options: ExecuteToolOptions) => Promise<AgentToolCallOutcome>;
|
|
1626
|
+
/** Backs `ExtensionToolContext.tools`. */
|
|
1627
|
+
getCallableTools?: () => readonly AgentTool[];
|
|
1360
1628
|
}
|
|
1361
1629
|
/**
|
|
1362
1630
|
* Actions for ExtensionCommandContext (ctx.* in command handlers).
|
|
@@ -1403,6 +1671,8 @@ export interface Extension {
|
|
|
1403
1671
|
path: string;
|
|
1404
1672
|
resolvedPath: string;
|
|
1405
1673
|
hidden?: boolean;
|
|
1674
|
+
/** See {@link InlineExtension}. */
|
|
1675
|
+
replaceable?: boolean;
|
|
1406
1676
|
sourceInfo: SourceInfo;
|
|
1407
1677
|
handlers: Map<string, HandlerFn[]>;
|
|
1408
1678
|
tools: Map<string, RegisteredTool>;
|
|
@@ -1420,6 +1690,10 @@ export interface LoadExtensionsResult {
|
|
|
1420
1690
|
path: string;
|
|
1421
1691
|
error: string;
|
|
1422
1692
|
}>;
|
|
1693
|
+
warnings?: Array<{
|
|
1694
|
+
path: string;
|
|
1695
|
+
warning: string;
|
|
1696
|
+
}>;
|
|
1423
1697
|
/** Shared runtime - actions are throwing stubs until runner.initialize() */
|
|
1424
1698
|
runtime: ExtensionRuntime;
|
|
1425
1699
|
}
|