@sammorrowdrums/mcpi 0.70.9 → 0.85.0-bootstrap.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 +1621 -0
- package/LICENSE +21 -0
- package/README.md +196 -141
- package/dist/bun/cli.d.ts.map +1 -1
- package/dist/bun/cli.js +4 -0
- package/dist/bun/cli.js.map +1 -1
- package/dist/bun/register-bedrock.d.ts.map +1 -1
- package/dist/bun/register-bedrock.js +1 -1
- package/dist/bun/register-bedrock.js.map +1 -1
- package/dist/bun/restore-sandbox-env.d.ts +17 -0
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
- package/dist/bun/restore-sandbox-env.js +36 -0
- package/dist/bun/restore-sandbox-env.js.map +1 -0
- package/dist/cli/args.d.ts +9 -2
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +116 -16
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/auth-check.d.ts +19 -0
- package/dist/cli/auth-check.d.ts.map +1 -0
- package/dist/cli/auth-check.js +50 -0
- package/dist/cli/auth-check.js.map +1 -0
- package/dist/cli/auth-command.d.ts +24 -0
- package/dist/cli/auth-command.d.ts.map +1 -0
- package/dist/cli/auth-command.js +103 -0
- package/dist/cli/auth-command.js.map +1 -0
- package/dist/cli/config-selector.d.ts +6 -4
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +4 -4
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/credential-print.d.ts +13 -0
- package/dist/cli/credential-print.d.ts.map +1 -0
- package/dist/cli/credential-print.js +76 -0
- package/dist/cli/credential-print.js.map +1 -0
- package/dist/cli/experimental/auth.d.ts +16 -0
- package/dist/cli/experimental/auth.d.ts.map +1 -0
- package/dist/cli/experimental/auth.js +13 -0
- package/dist/cli/experimental/auth.js.map +1 -0
- package/dist/cli/experimental/cli.d.ts +6 -0
- package/dist/cli/experimental/cli.d.ts.map +1 -0
- package/dist/cli/experimental/cli.js +5 -0
- package/dist/cli/experimental/cli.js.map +1 -0
- package/dist/cli/experimental/command-options.d.ts +17 -0
- package/dist/cli/experimental/command-options.d.ts.map +1 -0
- package/dist/cli/experimental/command-options.js +35 -0
- package/dist/cli/experimental/command-options.js.map +1 -0
- package/dist/cli/experimental/command.d.ts +63 -0
- package/dist/cli/experimental/command.d.ts.map +1 -0
- package/dist/cli/experimental/command.js +130 -0
- package/dist/cli/experimental/command.js.map +1 -0
- package/dist/cli/experimental/commands/client.d.ts +13 -0
- package/dist/cli/experimental/commands/client.d.ts.map +1 -0
- package/dist/cli/experimental/commands/client.js +25 -0
- package/dist/cli/experimental/commands/client.js.map +1 -0
- package/dist/cli/experimental/commands/mcpi.d.ts +15 -0
- package/dist/cli/experimental/commands/mcpi.d.ts.map +1 -0
- package/dist/cli/experimental/commands/mcpi.js +28 -0
- package/dist/cli/experimental/commands/mcpi.js.map +1 -0
- package/dist/cli/experimental/commands/server.d.ts +13 -0
- package/dist/cli/experimental/commands/server.d.ts.map +1 -0
- package/dist/cli/experimental/commands/server.js +25 -0
- package/dist/cli/experimental/commands/server.js.map +1 -0
- package/dist/cli/experimental/transport-address.d.ts +10 -0
- package/dist/cli/experimental/transport-address.d.ts.map +1 -0
- package/dist/cli/experimental/transport-address.js +38 -0
- package/dist/cli/experimental/transport-address.js.map +1 -0
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +13 -26
- 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 +2 -2
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js +4 -4
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/project-trust.d.ts +10 -0
- package/dist/cli/project-trust.d.ts.map +1 -0
- package/dist/cli/project-trust.js +48 -0
- package/dist/cli/project-trust.js.map +1 -0
- package/dist/cli/session-picker.d.ts +3 -2
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js +5 -4
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/cli/startup-ui.d.ts +20 -0
- package/dist/cli/startup-ui.d.ts.map +1 -0
- package/dist/cli/startup-ui.js +184 -0
- package/dist/cli/startup-ui.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -3
- package/dist/cli.js.map +1 -1
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/remote-session.d.ts +53 -0
- package/dist/client/remote-session.d.ts.map +1 -0
- package/dist/client/remote-session.js +340 -0
- package/dist/client/remote-session.js.map +1 -0
- package/dist/client/transcript.d.ts +12 -0
- package/dist/client/transcript.d.ts.map +1 -0
- package/dist/client/transcript.js +98 -0
- package/dist/client/transcript.js.map +1 -0
- package/dist/config.d.ts +34 -12
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +312 -61
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts +11 -9
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +16 -7
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +13 -12
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +34 -14
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +110 -53
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +658 -488
- 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 +35 -104
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +272 -286
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +11 -8
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/cache-stats.d.ts +49 -0
- package/dist/core/cache-stats.d.ts.map +1 -0
- package/dist/core/cache-stats.js +101 -0
- package/dist/core/cache-stats.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts +16 -6
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +13 -10
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +25 -9
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +163 -133
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/index.d.ts +3 -3
- package/dist/core/compaction/index.d.ts.map +1 -1
- package/dist/core/compaction/index.js.map +1 -1
- package/dist/core/compaction/utils.d.ts +3 -3
- package/dist/core/compaction/utils.d.ts.map +1 -1
- package/dist/core/compaction/utils.js +7 -18
- package/dist/core/compaction/utils.js.map +1 -1
- package/dist/core/defaults.d.ts +1 -1
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/defaults.js.map +1 -1
- package/dist/core/env-overlay.d.ts +21 -0
- package/dist/core/env-overlay.d.ts.map +1 -0
- package/dist/core/env-overlay.js +25 -0
- package/dist/core/env-overlay.js.map +1 -0
- package/dist/core/exec.d.ts +8 -1
- package/dist/core/exec.d.ts.map +1 -1
- package/dist/core/exec.js +7 -1
- package/dist/core/exec.js.map +1 -1
- package/dist/core/experimental.d.ts +6 -0
- package/dist/core/experimental.d.ts.map +1 -0
- package/dist/core/experimental.js +8 -0
- package/dist/core/experimental.js.map +1 -0
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
- package/dist/core/export-html/ansi-to-html.js +1 -1
- package/dist/core/export-html/ansi-to-html.js.map +1 -1
- package/dist/core/export-html/index.d.ts +2 -2
- package/dist/core/export-html/index.d.ts.map +1 -1
- package/dist/core/export-html/index.js +8 -6
- package/dist/core/export-html/index.js.map +1 -1
- package/dist/core/export-html/template.css +53 -4
- package/dist/core/export-html/template.js +129 -35
- package/dist/core/export-html/tool-renderer.d.ts +2 -8
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js +15 -2
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/export-html/vendor/marked.min.js +75 -3
- package/dist/core/extensions/index.d.ts +8 -8
- 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 +5 -7
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +160 -87
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +32 -13
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +192 -4
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +217 -69
- 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 +3 -3
- package/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/dist/core/extensions/wrapper.js +22 -3
- package/dist/core/extensions/wrapper.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +12 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +30 -2
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/http-dispatcher.d.ts +22 -0
- package/dist/core/http-dispatcher.d.ts.map +1 -0
- package/dist/core/http-dispatcher.js +96 -0
- package/dist/core/http-dispatcher.js.map +1 -0
- package/dist/core/index.d.ts +9 -8
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/keybindings.d.ts +79 -10
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +11 -10
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/messages.d.ts +2 -2
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js.map +1 -1
- package/dist/core/model-config.d.ts +571 -0
- package/dist/core/model-config.d.ts.map +1 -0
- package/dist/core/model-config.js +254 -0
- package/dist/core/model-config.js.map +1 -0
- package/dist/core/model-registry.d.ts +23 -110
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +65 -616
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +20 -7
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +139 -43
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-runtime.d.ts +100 -0
- package/dist/core/model-runtime.d.ts.map +1 -0
- package/dist/core/model-runtime.js +602 -0
- package/dist/core/model-runtime.js.map +1 -0
- package/dist/core/models-store.d.ts +22 -0
- package/dist/core/models-store.d.ts.map +1 -0
- package/dist/core/models-store.js +113 -0
- package/dist/core/models-store.js.map +1 -0
- package/dist/core/output-guard.d.ts +1 -0
- package/dist/core/output-guard.d.ts.map +1 -1
- package/dist/core/output-guard.js +52 -22
- package/dist/core/output-guard.js.map +1 -1
- package/dist/core/package-manager.d.ts +21 -4
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +428 -191
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/pi-manifest.d.ts +8 -0
- package/dist/core/pi-manifest.d.ts.map +1 -0
- package/dist/core/pi-manifest.js +25 -0
- package/dist/core/pi-manifest.js.map +1 -0
- package/dist/core/project-trust.d.ts +15 -0
- package/dist/core/project-trust.d.ts.map +1 -0
- package/dist/core/project-trust.js +59 -0
- package/dist/core/project-trust.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +4 -2
- package/dist/core/prompt-templates.d.ts.map +1 -1
- package/dist/core/prompt-templates.js +36 -50
- package/dist/core/prompt-templates.js.map +1 -1
- package/dist/core/provider-attribution.d.ts +4 -0
- package/dist/core/provider-attribution.d.ts.map +1 -0
- package/dist/core/provider-attribution.js +72 -0
- package/dist/core/provider-attribution.js.map +1 -0
- package/dist/core/provider-composer.d.ts +58 -0
- package/dist/core/provider-composer.d.ts.map +1 -0
- package/dist/core/provider-composer.js +396 -0
- package/dist/core/provider-composer.js.map +1 -0
- package/dist/core/radius.d.ts +2 -0
- package/dist/core/radius.d.ts.map +1 -0
- package/dist/core/radius.js +2 -0
- package/dist/core/radius.js.map +1 -0
- package/dist/core/remote-catalog-provider.d.ts +17 -0
- package/dist/core/remote-catalog-provider.d.ts.map +1 -0
- package/dist/core/remote-catalog-provider.js +137 -0
- package/dist/core/remote-catalog-provider.js.map +1 -0
- package/dist/core/resolve-config-value.d.ts +13 -6
- package/dist/core/resolve-config-value.d.ts.map +1 -1
- package/dist/core/resolve-config-value.js +143 -22
- package/dist/core/resolve-config-value.js.map +1 -1
- package/dist/core/resource-loader.d.ts +40 -12
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +236 -87
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/runtime-credentials.d.ts +15 -0
- package/dist/core/runtime-credentials.d.ts.map +1 -0
- package/dist/core/runtime-credentials.js +39 -0
- package/dist/core/runtime-credentials.js.map +1 -0
- package/dist/core/sdk.d.ts +26 -25
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +56 -49
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +42 -19
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +454 -223
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +77 -8
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +255 -67
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts +2 -2
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +12 -34
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts +2 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +4 -3
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/source-info.d.ts +1 -1
- package/dist/core/source-info.d.ts.map +1 -1
- package/dist/core/source-info.js.map +1 -1
- package/dist/core/system-prompt.d.ts +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +15 -25
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/telemetry.d.ts +7 -1
- package/dist/core/telemetry.d.ts.map +1 -1
- package/dist/core/telemetry.js +7 -1
- package/dist/core/telemetry.js.map +1 -1
- package/dist/core/timings.d.ts +5 -3
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js +26 -16
- package/dist/core/timings.js.map +1 -1
- package/dist/core/tools/bash.d.ts +11 -7
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +220 -188
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit-diff.d.ts +26 -5
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/dist/core/tools/edit-diff.js +110 -23
- package/dist/core/tools/edit-diff.js.map +1 -1
- package/dist/core/tools/edit.d.ts +11 -5
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +67 -100
- 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 +27 -12
- package/dist/core/tools/file-mutation-queue.js.map +1 -1
- package/dist/core/tools/find.d.ts +10 -3
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +41 -37
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts +7 -3
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +12 -8
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts +18 -18
- 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 +7 -3
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +17 -15
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts +52 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -0
- package/dist/core/tools/output-accumulator.js +184 -0
- package/dist/core/tools/output-accumulator.js.map +1 -0
- package/dist/core/tools/path-utils.d.ts +2 -0
- package/dist/core/tools/path-utils.d.ts.map +1 -1
- package/dist/core/tools/path-utils.js +39 -21
- package/dist/core/tools/path-utils.js.map +1 -1
- package/dist/core/tools/read.d.ts +7 -3
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +101 -51
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/render-utils.d.ts +5 -2
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js +18 -2
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts +2 -2
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js +3 -3
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/core/tools/truncate.d.ts.map +1 -1
- package/dist/core/tools/truncate.js +12 -2
- package/dist/core/tools/truncate.js.map +1 -1
- package/dist/core/tools/write.d.ts +6 -2
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +35 -45
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/trust-manager.d.ts +36 -0
- package/dist/core/trust-manager.d.ts.map +1 -0
- package/dist/core/trust-manager.js +202 -0
- package/dist/core/trust-manager.js.map +1 -0
- package/dist/core/usage-totals.d.ts +19 -0
- package/dist/core/usage-totals.d.ts.map +1 -0
- package/dist/core/usage-totals.js +52 -0
- package/dist/core/usage-totals.js.map +1 -0
- package/dist/extensions/index.d.ts +3 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +3 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/llama/client.d.ts +61 -0
- package/dist/extensions/llama/client.d.ts.map +1 -0
- package/dist/extensions/llama/client.js +302 -0
- package/dist/extensions/llama/client.js.map +1 -0
- package/dist/extensions/llama/huggingface.d.ts +23 -0
- package/dist/extensions/llama/huggingface.d.ts.map +1 -0
- package/dist/extensions/llama/huggingface.js +141 -0
- package/dist/extensions/llama/huggingface.js.map +1 -0
- package/dist/extensions/llama/index.d.ts +3 -0
- package/dist/extensions/llama/index.d.ts.map +1 -0
- package/dist/extensions/llama/index.js +217 -0
- package/dist/extensions/llama/index.js.map +1 -0
- package/dist/extensions/llama/provider.d.ts +10 -0
- package/dist/extensions/llama/provider.d.ts.map +1 -0
- package/dist/extensions/llama/provider.js +121 -0
- package/dist/extensions/llama/provider.js.map +1 -0
- package/dist/extensions/llama/ui.d.ts +42 -0
- package/dist/extensions/llama/ui.d.ts.map +1 -0
- package/dist/extensions/llama/ui.js +416 -0
- package/dist/extensions/llama/ui.js.map +1 -0
- package/dist/index.d.ts +34 -27
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -5
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +2 -2
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +311 -101
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts +5 -5
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +10 -10
- package/dist/migrations.js.map +1 -1
- package/dist/modes/index.d.ts +6 -5
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/index.js.map +1 -1
- package/dist/modes/interactive/components/armin.d.ts +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 +8 -3
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +55 -26
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts +2 -2
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +4 -4
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts +2 -2
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js +1 -1
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts +2 -2
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +2 -2
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts +37 -6
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +318 -34
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.d.ts +3 -3
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.js +2 -2
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts +2 -2
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +9 -2
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/custom-entry.d.ts +19 -0
- package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-entry.js +52 -0
- package/dist/modes/interactive/components/custom-entry.js.map +1 -0
- package/dist/modes/interactive/components/custom-message.d.ts +6 -4
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +11 -3
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts +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 +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/extension-editor.d.ts +5 -4
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +19 -32
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-input.js +1 -1
- package/dist/modes/interactive/components/extension-input.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts +3 -1
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js +7 -2
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
- package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
- package/dist/modes/interactive/components/first-time-setup.js +103 -0
- package/dist/modes/interactive/components/first-time-setup.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts +9 -4
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +52 -31
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +33 -31
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js +2 -0
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts +6 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js +20 -6
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts +12 -6
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +46 -17
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/markdown-transform.d.ts +3 -0
- package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
- package/dist/modes/interactive/components/markdown-transform.js +19 -0
- package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
- package/dist/modes/interactive/components/mermaid.d.ts +11 -0
- package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
- package/dist/modes/interactive/components/mermaid.js +75 -0
- package/dist/modes/interactive/components/mermaid.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +13 -6
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +92 -44
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts +7 -4
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +32 -28
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +5 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +52 -14
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.d.ts +1 -1
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.js +1 -1
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts +4 -5
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +18 -16
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +23 -2
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +322 -22
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.js +1 -1
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +2 -2
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/status-indicator.d.ts +28 -0
- package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -0
- package/dist/modes/interactive/components/status-indicator.js +60 -0
- package/dist/modes/interactive/components/status-indicator.js.map +1 -0
- package/dist/modes/interactive/components/theme-selector.d.ts +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.js +1 -1
- package/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts +2 -2
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +3 -2
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +2 -2
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +33 -2
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts +7 -2
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +179 -26
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/trust-selector.d.ts +23 -0
- package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/trust-selector.js +91 -0
- package/dist/modes/interactive/components/trust-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.js +1 -1
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +9 -3
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +26 -6
- 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 +1 -1
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts +12 -0
- package/dist/modes/interactive/external-editor.d.ts.map +1 -0
- package/dist/modes/interactive/external-editor.js +37 -0
- package/dist/modes/interactive/external-editor.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +104 -26
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +1565 -692
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/model-catalog-refresh.d.ts +7 -0
- package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -0
- package/dist/modes/interactive/model-catalog-refresh.js +34 -0
- package/dist/modes/interactive/model-catalog-refresh.js.map +1 -0
- package/dist/modes/interactive/model-search.d.ts +12 -0
- package/dist/modes/interactive/model-search.d.ts.map +1 -0
- package/dist/modes/interactive/model-search.js +15 -0
- package/dist/modes/interactive/model-search.js.map +1 -0
- package/dist/modes/interactive/theme/dark.json +10 -5
- package/dist/modes/interactive/theme/light.json +10 -5
- package/dist/modes/interactive/theme/theme-controller.d.ts +40 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme-controller.js +125 -0
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -0
- package/dist/modes/interactive/theme/theme-schema.json +22 -5
- package/dist/modes/interactive/theme/theme.d.ts +48 -7
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +194 -76
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/json-event.d.ts +31 -0
- package/dist/modes/json-event.d.ts.map +1 -0
- package/dist/modes/json-event.js +15 -0
- package/dist/modes/json-event.js.map +1 -0
- package/dist/modes/print-mode.d.ts +3 -3
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +16 -5
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +33 -10
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +89 -11
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts +2 -2
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +69 -9
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +43 -5
- 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 +6 -2
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +527 -25
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/path-migration.d.ts +13 -0
- package/dist/path-migration.d.ts.map +1 -0
- package/dist/path-migration.js +52 -0
- package/dist/path-migration.js.map +1 -0
- package/dist/rpc-entry.d.ts +3 -0
- package/dist/rpc-entry.d.ts.map +1 -0
- package/dist/rpc-entry.js +11 -0
- package/dist/rpc-entry.js.map +1 -0
- package/dist/server/create-harness.d.ts +26 -0
- package/dist/server/create-harness.d.ts.map +1 -0
- package/dist/server/create-harness.js +106 -0
- package/dist/server/create-harness.js.map +1 -0
- package/dist/utils/abort.d.ts +5 -0
- package/dist/utils/abort.d.ts.map +1 -0
- package/dist/utils/abort.js +48 -0
- package/dist/utils/abort.js.map +1 -0
- package/dist/utils/ansi.d.ts +2 -0
- package/dist/utils/ansi.d.ts.map +1 -0
- package/dist/utils/ansi.js +52 -0
- package/dist/utils/ansi.js.map +1 -0
- package/dist/utils/changelog.d.ts +2 -1
- package/dist/utils/changelog.d.ts.map +1 -1
- package/dist/utils/changelog.js +85 -0
- package/dist/utils/changelog.js.map +1 -1
- package/dist/utils/child-process.d.ts +12 -5
- package/dist/utils/child-process.d.ts.map +1 -1
- package/dist/utils/child-process.js +33 -5
- package/dist/utils/child-process.js.map +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +4 -4
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard-native.d.ts +4 -1
- package/dist/utils/clipboard-native.d.ts.map +1 -1
- package/dist/utils/clipboard-native.js +14 -8
- package/dist/utils/clipboard-native.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 +129 -46
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/deprecation.d.ts +4 -0
- package/dist/utils/deprecation.d.ts.map +1 -0
- package/dist/utils/deprecation.js +13 -0
- package/dist/utils/deprecation.js.map +1 -0
- package/dist/utils/exif-orientation.d.ts +1 -1
- package/dist/utils/exif-orientation.d.ts.map +1 -1
- package/dist/utils/exif-orientation.js.map +1 -1
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +54 -22
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/html.d.ts +7 -0
- package/dist/utils/html.d.ts.map +1 -0
- package/dist/utils/html.js +40 -0
- package/dist/utils/html.js.map +1 -0
- package/dist/utils/image-convert.d.ts +1 -0
- package/dist/utils/image-convert.d.ts.map +1 -1
- package/dist/utils/image-convert.js +21 -15
- package/dist/utils/image-convert.js.map +1 -1
- package/dist/utils/image-process.d.ts +18 -0
- package/dist/utils/image-process.d.ts.map +1 -0
- package/dist/utils/image-process.js +83 -0
- package/dist/utils/image-process.js.map +1 -0
- package/dist/utils/image-resize-core.d.ts +30 -0
- package/dist/utils/image-resize-core.d.ts.map +1 -0
- package/dist/utils/image-resize-core.js +124 -0
- package/dist/utils/image-resize-core.js.map +1 -0
- package/dist/utils/image-resize-worker.d.ts +2 -0
- package/dist/utils/image-resize-worker.d.ts.map +1 -0
- package/dist/utils/image-resize-worker.js +31 -0
- package/dist/utils/image-resize-worker.js.map +1 -0
- package/dist/utils/image-resize.d.ts +7 -27
- package/dist/utils/image-resize.d.ts.map +1 -1
- package/dist/utils/image-resize.js +75 -115
- package/dist/utils/image-resize.js.map +1 -1
- package/dist/utils/json.d.ts +3 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +7 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/management-http.d.ts +23 -0
- package/dist/utils/management-http.d.ts.map +1 -0
- package/dist/utils/management-http.js +50 -0
- package/dist/utils/management-http.js.map +1 -0
- package/dist/utils/mime.d.ts +1 -0
- package/dist/utils/mime.d.ts.map +1 -1
- package/dist/utils/mime.js +100 -16
- package/dist/utils/mime.js.map +1 -1
- package/dist/utils/open-browser.d.ts +9 -0
- package/dist/utils/open-browser.d.ts.map +1 -0
- package/dist/utils/open-browser.js +22 -0
- package/dist/utils/open-browser.js.map +1 -0
- package/dist/utils/paths.d.ts +28 -1
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +97 -2
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/pi-user-agent.d.ts +2 -0
- package/dist/utils/pi-user-agent.d.ts.map +1 -0
- package/dist/utils/pi-user-agent.js +5 -0
- package/dist/utils/pi-user-agent.js.map +1 -0
- package/dist/utils/shell.d.ts +1 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +18 -6
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/syntax-highlight.d.ts +12 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -0
- package/dist/utils/syntax-highlight.js +118 -0
- package/dist/utils/syntax-highlight.js.map +1 -0
- package/dist/utils/tool-result-images.d.ts +19 -0
- package/dist/utils/tool-result-images.d.ts.map +1 -0
- package/dist/utils/tool-result-images.js +45 -0
- package/dist/utils/tool-result-images.js.map +1 -0
- package/dist/utils/tools-manager.d.ts +10 -1
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +105 -36
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/version-check.d.ts +19 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +85 -0
- package/dist/utils/version-check.js.map +1 -0
- package/dist/utils/windows-self-update.d.ts +3 -0
- package/dist/utils/windows-self-update.d.ts.map +1 -0
- package/dist/utils/windows-self-update.js +77 -0
- package/dist/utils/windows-self-update.js.map +1 -0
- package/docs/compaction.md +39 -32
- package/docs/containerization.md +113 -0
- package/docs/custom-provider.md +212 -75
- package/docs/development.md +9 -9
- package/docs/docs.json +156 -0
- package/docs/environment-variables.md +186 -0
- package/docs/extensions.md +652 -140
- package/docs/index.md +81 -0
- package/docs/json.md +26 -15
- package/docs/keybindings.md +60 -21
- package/docs/llama-cpp.md +99 -0
- package/docs/models.md +168 -34
- package/docs/packages.md +46 -36
- package/docs/prompt-templates.md +13 -5
- package/docs/providers.md +147 -26
- package/docs/quickstart.md +167 -0
- package/docs/rpc.md +218 -36
- package/docs/sdk.md +190 -125
- package/docs/security.md +59 -0
- package/docs/{session.md → session-format.md} +48 -22
- package/docs/sessions.md +145 -0
- package/docs/settings.md +130 -25
- package/docs/shell-aliases.md +2 -2
- package/docs/skills.md +13 -14
- package/docs/terminal-setup.md +73 -16
- package/docs/termux.md +10 -10
- package/docs/themes.md +41 -16
- package/docs/tmux.md +6 -4
- package/docs/tui.md +85 -61
- package/docs/usage.md +302 -0
- package/docs/windows.md +2 -2
- package/examples/README.md +1 -1
- package/examples/extensions/README.md +12 -9
- package/examples/extensions/bash-spawn-hook.ts +2 -2
- package/examples/extensions/border-status-editor.ts +145 -0
- package/examples/extensions/built-in-tool-renderer.ts +2 -2
- package/examples/extensions/claude-rules.ts +1 -1
- package/examples/extensions/commands.ts +1 -1
- package/examples/extensions/custom-compaction.ts +6 -16
- package/examples/extensions/custom-footer.ts +1 -1
- package/examples/extensions/custom-header.ts +7 -7
- package/examples/extensions/custom-provider-anthropic/index.ts +15 -8
- package/examples/extensions/custom-provider-anthropic/package-lock.json +4 -4
- package/examples/extensions/custom-provider-anthropic/package.json +3 -3
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +65 -9
- package/examples/extensions/custom-provider-gitlab-duo/package.json +2 -2
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +2 -2
- package/examples/extensions/doom-overlay/README.md +1 -1
- package/examples/extensions/doom-overlay/doom-component.ts +4 -4
- package/examples/extensions/doom-overlay/doom-keys.ts +1 -1
- package/examples/extensions/doom-overlay/index.ts +5 -5
- package/examples/extensions/doom-overlay/wad-finder.ts +7 -3
- package/examples/extensions/dynamic-resources/dynamic.json +1 -1
- package/examples/extensions/entry-renderer.ts +41 -0
- package/examples/extensions/git-merge-and-resolve.ts +115 -0
- package/examples/extensions/github-issue-autocomplete.ts +2 -2
- package/examples/extensions/gondolin/index.ts +531 -0
- package/examples/extensions/gondolin/package-lock.json +185 -0
- package/examples/extensions/gondolin/package.json +19 -0
- package/examples/extensions/handoff.ts +50 -14
- package/examples/extensions/hidden-thinking-label.ts +1 -1
- package/examples/extensions/inline-bash.ts +2 -2
- package/examples/extensions/input-transform-streaming.ts +39 -0
- package/examples/extensions/input-transform.ts +2 -2
- package/examples/extensions/interactive-shell.ts +2 -2
- package/examples/extensions/kimi-deferred-tools.ts +61 -0
- package/examples/extensions/mac-system-theme.ts +2 -2
- package/examples/extensions/message-renderer.ts +3 -3
- package/examples/extensions/minimal-mode.ts +2 -2
- package/examples/extensions/modal-editor.ts +2 -2
- package/examples/extensions/model-status.ts +1 -1
- package/examples/extensions/notify.ts +3 -3
- package/examples/extensions/overlay-qa-tests.ts +242 -140
- package/examples/extensions/overlay-test.ts +9 -6
- package/examples/extensions/pirate.ts +1 -1
- package/examples/extensions/plan-mode/README.md +3 -2
- package/examples/extensions/plan-mode/index.ts +90 -40
- package/examples/extensions/preset.ts +16 -10
- package/examples/extensions/project-trust.ts +64 -0
- package/examples/extensions/prompt-customizer.ts +1 -1
- package/examples/extensions/provider-payload.ts +5 -5
- package/examples/extensions/qna.ts +4 -8
- package/examples/extensions/question.ts +41 -19
- package/examples/extensions/questionnaire.ts +50 -29
- package/examples/extensions/rainbow-editor.ts +1 -1
- package/examples/extensions/reload-runtime.ts +2 -2
- package/examples/extensions/rpc-demo.ts +1 -1
- package/examples/extensions/sandbox/index.ts +9 -9
- package/examples/extensions/sandbox/package-lock.json +7 -7
- package/examples/extensions/sandbox/package.json +3 -3
- package/examples/extensions/shutdown-command.ts +5 -5
- package/examples/extensions/snake.ts +2 -2
- package/examples/extensions/space-invaders.ts +2 -2
- package/examples/extensions/ssh.ts +2 -2
- package/examples/extensions/structured-output.ts +1 -1
- package/examples/extensions/subagent/README.md +18 -13
- package/examples/extensions/subagent/agents.ts +42 -11
- package/examples/extensions/subagent/index.ts +76 -30
- package/examples/extensions/summarize.ts +12 -19
- package/examples/extensions/tic-tac-toe.ts +2 -2
- package/examples/extensions/titlebar-spinner.ts +3 -3
- package/examples/extensions/todo.ts +2 -2
- package/examples/extensions/tool-override.ts +1 -1
- package/examples/extensions/tools.ts +7 -2
- package/examples/extensions/truncated-tool.ts +2 -2
- package/examples/extensions/with-deps/package-lock.json +4 -4
- package/examples/extensions/with-deps/package.json +4 -4
- package/examples/extensions/working-indicator.ts +4 -4
- package/examples/extensions/working-message-test.ts +1 -1
- package/examples/rpc-extension-ui.ts +11 -2
- package/examples/sdk/01-minimal.ts +15 -11
- package/examples/sdk/02-custom-model.ts +18 -18
- package/examples/sdk/03-custom-prompt.ts +25 -17
- package/examples/sdk/04-skills.ts +3 -3
- package/examples/sdk/05-tools.ts +8 -4
- package/examples/sdk/06-extensions.ts +13 -9
- package/examples/sdk/07-context-files.ts +2 -2
- package/examples/sdk/08-prompt-templates.ts +3 -3
- package/examples/sdk/09-api-keys-and-oauth.ts +19 -33
- package/examples/sdk/10-settings.ts +4 -4
- package/examples/sdk/11-sessions.ts +4 -0
- package/examples/sdk/12-full-control.ts +22 -21
- package/examples/sdk/README.md +23 -30
- package/npm-shrinkwrap.json +1818 -0
- package/package.json +117 -99
- package/dist/modes/interactive/assets/clankolas.png +0 -0
- package/dist/modes/interactive/components/auth-selector-status.d.ts +0 -20
- package/dist/modes/interactive/components/auth-selector-status.d.ts.map +0 -1
- package/dist/modes/interactive/components/auth-selector-status.js +0 -23
- package/dist/modes/interactive/components/auth-selector-status.js.map +0 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
- package/dist/modes/interactive/components/earendil-announcement.js +0 -40
- package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
- package/docs/images/exy.png +0 -0
- package/docs/tree.md +0 -233
- package/examples/extensions/antigravity-image-gen.ts +0 -418
- package/examples/extensions/custom-provider-qwen-cli/index.ts +0 -345
- package/examples/extensions/custom-provider-qwen-cli/package.json +0 -16
|
@@ -7,30 +7,31 @@
|
|
|
7
7
|
* - Register commands, keyboard shortcuts, and CLI flags
|
|
8
8
|
* - Interact with the user via UI primitives
|
|
9
9
|
*/
|
|
10
|
-
import type {
|
|
11
|
-
import type {
|
|
12
|
-
import type {
|
|
10
|
+
import type { AgentMessage, AgentToolResult, AgentToolUpdateCallback, ThinkingLevel, ToolExecutionMode } from "@sammorrowdrums/mcpi-agent-core";
|
|
11
|
+
import type { Api, AssistantMessageEvent, AssistantMessageEventStream, ConstrainedSamplingConfig, Context, ImageContent, Model, OAuthCredentials, OAuthLoginCallbacks, Provider, ProviderHeaders, RefreshModelsContext, SimpleStreamOptions, TextContent, ToolResultMessage, Usage } from "@sammorrowdrums/mcpi-ai";
|
|
12
|
+
import type { AutocompleteItem, AutocompleteProvider, Component, EditorComponent, EditorTheme, KeyId, OverlayHandle, OverlayOptions, TUI } from "@sammorrowdrums/mcpi-tui";
|
|
13
13
|
import type { Static, TSchema } from "typebox";
|
|
14
|
-
import type { Theme } from "../../modes/interactive/theme/theme.
|
|
15
|
-
import type { BashResult } from "../bash-executor.
|
|
16
|
-
import type { CompactionPreparation, CompactionResult } from "../compaction/index.
|
|
17
|
-
import type { EventBus } from "../event-bus.
|
|
18
|
-
import type { ExecOptions, ExecResult } from "../exec.
|
|
19
|
-
import type { ReadonlyFooterDataProvider } from "../footer-data-provider.
|
|
20
|
-
import type { KeybindingsManager } from "../keybindings.
|
|
21
|
-
import type { CustomMessage } from "../messages.
|
|
22
|
-
import type { ModelRegistry } from "../model-registry.
|
|
23
|
-
import type {
|
|
24
|
-
import type {
|
|
25
|
-
import type {
|
|
26
|
-
import type {
|
|
27
|
-
import type {
|
|
28
|
-
import type {
|
|
29
|
-
import type {
|
|
30
|
-
|
|
31
|
-
export type {
|
|
14
|
+
import type { Theme } from "../../modes/interactive/theme/theme.ts";
|
|
15
|
+
import type { BashResult } from "../bash-executor.ts";
|
|
16
|
+
import type { CompactionPreparation, CompactionResult } from "../compaction/index.ts";
|
|
17
|
+
import type { EventBus } from "../event-bus.ts";
|
|
18
|
+
import type { ExecOptions, ExecResult } from "../exec.ts";
|
|
19
|
+
import type { ReadonlyFooterDataProvider } from "../footer-data-provider.ts";
|
|
20
|
+
import type { KeybindingsManager } from "../keybindings.ts";
|
|
21
|
+
import type { CustomMessage } from "../messages.ts";
|
|
22
|
+
import type { ModelRegistry } from "../model-registry.ts";
|
|
23
|
+
import type { ScopedModel } from "../model-resolver.ts";
|
|
24
|
+
import type { BranchSummaryEntry, CompactionEntry, CustomEntry, ReadonlySessionManager, SessionEntry, SessionManager } from "../session-manager.ts";
|
|
25
|
+
import type { SlashCommandInfo } from "../slash-commands.ts";
|
|
26
|
+
import type { SourceInfo } from "../source-info.ts";
|
|
27
|
+
import type { BuildSystemPromptOptions } from "../system-prompt.ts";
|
|
28
|
+
import type { BashOperations } from "../tools/bash.ts";
|
|
29
|
+
import type { EditToolDetails } from "../tools/edit.ts";
|
|
30
|
+
import type { BashToolDetails, BashToolInput, EditToolInput, FindToolDetails, FindToolInput, GrepToolDetails, GrepToolInput, LsToolDetails, LsToolInput, ReadToolDetails, ReadToolInput, WriteToolInput } from "../tools/index.ts";
|
|
31
|
+
export type { ExecOptions, ExecResult } from "../exec.ts";
|
|
32
|
+
export type { BuildSystemPromptOptions } from "../system-prompt.ts";
|
|
32
33
|
export type { AgentToolResult, AgentToolUpdateCallback, ToolExecutionMode };
|
|
33
|
-
export type { AppKeybinding, KeybindingsManager } from "../keybindings.
|
|
34
|
+
export type { AppKeybinding, KeybindingsManager } from "../keybindings.ts";
|
|
34
35
|
/** Options for extension UI dialogs. */
|
|
35
36
|
export interface ExtensionUIDialogOptions {
|
|
36
37
|
/** AbortSignal to programmatically dismiss the dialog. */
|
|
@@ -59,6 +60,7 @@ export interface WorkingIndicatorOptions {
|
|
|
59
60
|
}
|
|
60
61
|
/** Wrap the current autocomplete provider with additional behavior. */
|
|
61
62
|
export type AutocompleteProviderFactory = (current: AutocompleteProvider) => AutocompleteProvider;
|
|
63
|
+
export type EditorFactory = (tui: TUI, theme: EditorTheme, keybindings: KeybindingsManager) => EditorComponent;
|
|
62
64
|
/**
|
|
63
65
|
* UI context for extensions to request interactive UI.
|
|
64
66
|
* Each mode (interactive, RPC, print) provides its own implementation.
|
|
@@ -78,6 +80,8 @@ export interface ExtensionUIContext {
|
|
|
78
80
|
setStatus(key: string, text: string | undefined): void;
|
|
79
81
|
/** Set the working/loading message shown during streaming. Call with no argument to restore default. */
|
|
80
82
|
setWorkingMessage(message?: string): void;
|
|
83
|
+
/** Show or hide the built-in interactive working loader row during streaming. */
|
|
84
|
+
setWorkingVisible(visible: boolean): void;
|
|
81
85
|
/**
|
|
82
86
|
* Configure the interactive working indicator shown during streaming.
|
|
83
87
|
*
|
|
@@ -140,7 +144,7 @@ export interface ExtensionUIContext {
|
|
|
140
144
|
* - `keybindings`: KeybindingsManager for app-level keybindings
|
|
141
145
|
*
|
|
142
146
|
* For full app keybinding support (escape, ctrl+d, model switching, etc.),
|
|
143
|
-
* extend `CustomEditor` from
|
|
147
|
+
* extend `CustomEditor` from `@sammorrowdrums/mcpi` and call
|
|
144
148
|
* `super.handleInput(data)` for keys you don't handle.
|
|
145
149
|
*
|
|
146
150
|
* @example
|
|
@@ -164,7 +168,9 @@ export interface ExtensionUIContext {
|
|
|
164
168
|
* );
|
|
165
169
|
* ```
|
|
166
170
|
*/
|
|
167
|
-
setEditorComponent(factory:
|
|
171
|
+
setEditorComponent(factory: EditorFactory | undefined): void;
|
|
172
|
+
/** Get the currently configured custom editor factory, or undefined when using the default editor. */
|
|
173
|
+
getEditorComponent(): EditorFactory | undefined;
|
|
168
174
|
/** Get the current theme for styling. */
|
|
169
175
|
readonly theme: Theme;
|
|
170
176
|
/** Get all available themes with their names and file paths. */
|
|
@@ -199,10 +205,13 @@ export interface CompactOptions {
|
|
|
199
205
|
/**
|
|
200
206
|
* Context passed to extension event handlers.
|
|
201
207
|
*/
|
|
208
|
+
export type ExtensionMode = "tui" | "rpc" | "json" | "print";
|
|
202
209
|
export interface ExtensionContext {
|
|
203
210
|
/** UI methods for user interaction */
|
|
204
211
|
ui: ExtensionUIContext;
|
|
205
|
-
/**
|
|
212
|
+
/** Current run mode. Use "tui" to guard terminal-only UI such as custom components. */
|
|
213
|
+
mode: ExtensionMode;
|
|
214
|
+
/** Whether dialog-capable UI is available (true in TUI and RPC modes) */
|
|
206
215
|
hasUI: boolean;
|
|
207
216
|
/** Current working directory */
|
|
208
217
|
cwd: string;
|
|
@@ -212,15 +221,24 @@ export interface ExtensionContext {
|
|
|
212
221
|
modelRegistry: ModelRegistry;
|
|
213
222
|
/** Current model (may be undefined) */
|
|
214
223
|
model: Model<any> | undefined;
|
|
224
|
+
/** Models scoped to this session (resolved from `--models` /
|
|
225
|
+
* `enabledModels` settings against the available catalogue). Same set
|
|
226
|
+
* the `/scoped-models` command shows. Empty when no scoping is
|
|
227
|
+
* configured (all available models are usable). Read-only snapshot. */
|
|
228
|
+
scopedModels: readonly ScopedModel[];
|
|
229
|
+
/** Current thinking level, when provided by the session runtime. */
|
|
230
|
+
thinkingLevel?: ThinkingLevel;
|
|
215
231
|
/** Whether the agent is idle (not streaming) */
|
|
216
232
|
isIdle(): boolean;
|
|
233
|
+
/** Whether project-local trust is active for this context. */
|
|
234
|
+
isProjectTrusted(): boolean;
|
|
217
235
|
/** The current abort signal, or undefined when the agent is not streaming. */
|
|
218
236
|
signal: AbortSignal | undefined;
|
|
219
237
|
/** Abort the current agent operation */
|
|
220
238
|
abort(): void;
|
|
221
239
|
/** Whether there are queued messages waiting */
|
|
222
240
|
hasPendingMessages(): boolean;
|
|
223
|
-
/** Gracefully
|
|
241
|
+
/** Gracefully shut down mcpi and exit. Available in all contexts. */
|
|
224
242
|
shutdown(): void;
|
|
225
243
|
/** Get current context usage for the active model. */
|
|
226
244
|
getContextUsage(): ContextUsage | undefined;
|
|
@@ -234,6 +252,8 @@ export interface ExtensionContext {
|
|
|
234
252
|
* Includes session control methods only safe in user-initiated commands.
|
|
235
253
|
*/
|
|
236
254
|
export interface ExtensionCommandContext extends ExtensionContext {
|
|
255
|
+
/** Get the current base system-prompt construction options. */
|
|
256
|
+
getSystemPromptOptions(): BuildSystemPromptOptions;
|
|
237
257
|
/** Wait for the agent to finish streaming */
|
|
238
258
|
waitForIdle(): Promise<void>;
|
|
239
259
|
/** Start a new session, optionally with initialization. */
|
|
@@ -266,7 +286,7 @@ export interface ExtensionCommandContext extends ExtensionContext {
|
|
|
266
286
|
}): Promise<{
|
|
267
287
|
cancelled: boolean;
|
|
268
288
|
}>;
|
|
269
|
-
/** Reload extensions, skills, prompts, and
|
|
289
|
+
/** Reload extensions, skills, prompts, themes, and context files. */
|
|
270
290
|
reload(): Promise<void>;
|
|
271
291
|
}
|
|
272
292
|
/**
|
|
@@ -281,6 +301,7 @@ export interface ReplacedSessionContext extends ExtensionCommandContext {
|
|
|
281
301
|
}): Promise<void>;
|
|
282
302
|
sendUserMessage(content: string | (TextContent | ImageContent)[], options?: {
|
|
283
303
|
deliverAs?: "steer" | "followUp";
|
|
304
|
+
expandPromptTemplates?: boolean;
|
|
284
305
|
}): Promise<void>;
|
|
285
306
|
}
|
|
286
307
|
/** Rendering options for tool results */
|
|
@@ -333,6 +354,8 @@ export interface ToolDefinition<TParams extends TSchema = TSchema, TDetails = un
|
|
|
333
354
|
promptGuidelines?: string[];
|
|
334
355
|
/** Parameter schema (TypeBox) */
|
|
335
356
|
parameters: TParams;
|
|
357
|
+
/** Optional provider-side constrained sampling request for this tool. Set false to explicitly disable it, equivalent to leaving it undefined. */
|
|
358
|
+
constrainedSampling?: false | ConstrainedSamplingConfig;
|
|
336
359
|
/** Controls whether ToolExecutionComponent renders the standard colored shell or the tool renders its own framing. */
|
|
337
360
|
renderShell?: "default" | "self";
|
|
338
361
|
/** Optional compatibility shim to prepare raw tool call arguments before schema validation. Must return an object conforming to TParams. */
|
|
@@ -345,18 +368,6 @@ export interface ToolDefinition<TParams extends TSchema = TSchema, TDetails = un
|
|
|
345
368
|
* If omitted, the default execution mode applies.
|
|
346
369
|
*/
|
|
347
370
|
executionMode?: ToolExecutionMode;
|
|
348
|
-
/**
|
|
349
|
-
* When true, the tool is registered for execution but excluded from the
|
|
350
|
-
* system prompt. The model discovers it through conversation content
|
|
351
|
-
* (e.g. a skill's tool_result) rather than up-front tool descriptions.
|
|
352
|
-
*
|
|
353
|
-
* This enables progressive tool disclosure without changing the tools
|
|
354
|
-
* array sent to the provider, preserving prompt cache across turns.
|
|
355
|
-
*
|
|
356
|
-
* Experimental — ideally model providers would explicitly support
|
|
357
|
-
* deferred tool loading (e.g. Anthropic's `defer_loading`).
|
|
358
|
-
*/
|
|
359
|
-
deferred?: boolean;
|
|
360
371
|
/** Execute the tool. */
|
|
361
372
|
execute(toolCallId: string, params: Static<TParams>, signal: AbortSignal | undefined, onUpdate: AgentToolUpdateCallback<TDetails> | undefined, ctx: ExtensionContext): Promise<AgentToolResult<TDetails>>;
|
|
362
373
|
/** Custom rendering for tool call display */
|
|
@@ -373,6 +384,22 @@ type AnyToolDefinition = ToolDefinition<any, any, any>;
|
|
|
373
384
|
* `unknown`.
|
|
374
385
|
*/
|
|
375
386
|
export declare function defineTool<TParams extends TSchema, TDetails = unknown, TState = any>(tool: ToolDefinition<TParams, TDetails, TState>): ToolDefinition<TParams, TDetails, TState> & AnyToolDefinition;
|
|
387
|
+
export interface ProjectTrustEvent {
|
|
388
|
+
type: "project_trust";
|
|
389
|
+
cwd: string;
|
|
390
|
+
}
|
|
391
|
+
export type ProjectTrustEventDecision = "yes" | "no" | "undecided";
|
|
392
|
+
export interface ProjectTrustEventResult {
|
|
393
|
+
trusted: ProjectTrustEventDecision;
|
|
394
|
+
remember?: boolean;
|
|
395
|
+
}
|
|
396
|
+
export interface ProjectTrustContext {
|
|
397
|
+
cwd: string;
|
|
398
|
+
mode: ExtensionMode;
|
|
399
|
+
hasUI: boolean;
|
|
400
|
+
ui: Pick<ExtensionUIContext, "select" | "confirm" | "input" | "notify">;
|
|
401
|
+
}
|
|
402
|
+
export type ProjectTrustHandler = (event: ProjectTrustEvent, ctx: ProjectTrustContext) => Promise<ProjectTrustEventResult> | ProjectTrustEventResult;
|
|
376
403
|
/** Fired after session_start to allow extensions to provide additional resource paths. */
|
|
377
404
|
export interface ResourcesDiscoverEvent {
|
|
378
405
|
type: "resources_discover";
|
|
@@ -393,6 +420,12 @@ export interface SessionStartEvent {
|
|
|
393
420
|
/** Previously active session file. Present for "new", "resume", and "fork". */
|
|
394
421
|
previousSessionFile?: string;
|
|
395
422
|
}
|
|
423
|
+
/** Fired when the current session metadata changes. */
|
|
424
|
+
export interface SessionInfoChangedEvent {
|
|
425
|
+
type: "session_info_changed";
|
|
426
|
+
/** Current normalized session name. Undefined when the name is cleared. */
|
|
427
|
+
name: string | undefined;
|
|
428
|
+
}
|
|
396
429
|
/** Fired before switching to another session (can be cancelled) */
|
|
397
430
|
export interface SessionBeforeSwitchEvent {
|
|
398
431
|
type: "session_before_switch";
|
|
@@ -411,6 +444,10 @@ export interface SessionBeforeCompactEvent {
|
|
|
411
444
|
preparation: CompactionPreparation;
|
|
412
445
|
branchEntries: SessionEntry[];
|
|
413
446
|
customInstructions?: string;
|
|
447
|
+
/** What triggered the compaction: manual /compact, the context threshold, or context overflow recovery */
|
|
448
|
+
reason: "manual" | "threshold" | "overflow";
|
|
449
|
+
/** True when the aborted turn is retried after this compaction (overflow recovery) */
|
|
450
|
+
willRetry: boolean;
|
|
414
451
|
signal: AbortSignal;
|
|
415
452
|
}
|
|
416
453
|
/** Fired after context compaction */
|
|
@@ -418,6 +455,10 @@ export interface SessionCompactEvent {
|
|
|
418
455
|
type: "session_compact";
|
|
419
456
|
compactionEntry: CompactionEntry;
|
|
420
457
|
fromExtension: boolean;
|
|
458
|
+
/** What triggered the compaction: manual /compact, the context threshold, or context overflow recovery */
|
|
459
|
+
reason: "manual" | "threshold" | "overflow";
|
|
460
|
+
/** True when the aborted turn is retried after this compaction (overflow recovery) */
|
|
461
|
+
willRetry: boolean;
|
|
421
462
|
}
|
|
422
463
|
/** Fired before an extension runtime is torn down due to quit, reload, or session replacement. */
|
|
423
464
|
export interface SessionShutdownEvent {
|
|
@@ -454,7 +495,7 @@ export interface SessionTreeEvent {
|
|
|
454
495
|
summaryEntry?: BranchSummaryEntry;
|
|
455
496
|
fromExtension?: boolean;
|
|
456
497
|
}
|
|
457
|
-
export type SessionEvent = SessionStartEvent | SessionBeforeSwitchEvent | SessionBeforeForkEvent | SessionBeforeCompactEvent | SessionCompactEvent | SessionShutdownEvent | SessionBeforeTreeEvent | SessionTreeEvent;
|
|
498
|
+
export type SessionEvent = SessionStartEvent | SessionInfoChangedEvent | SessionBeforeSwitchEvent | SessionBeforeForkEvent | SessionBeforeCompactEvent | SessionCompactEvent | SessionShutdownEvent | SessionBeforeTreeEvent | SessionTreeEvent;
|
|
458
499
|
/** Fired before each LLM call. Can modify messages. */
|
|
459
500
|
export interface ContextEvent {
|
|
460
501
|
type: "context";
|
|
@@ -465,6 +506,15 @@ export interface BeforeProviderRequestEvent {
|
|
|
465
506
|
type: "before_provider_request";
|
|
466
507
|
payload: unknown;
|
|
467
508
|
}
|
|
509
|
+
/**
|
|
510
|
+
* Fired after request headers are assembled, before the provider HTTP call.
|
|
511
|
+
* Handlers mutate `headers` in place (e.g. to inject tracing/session headers);
|
|
512
|
+
* the return value is ignored. A `null` value deletes that header.
|
|
513
|
+
*/
|
|
514
|
+
export interface BeforeProviderHeadersEvent {
|
|
515
|
+
type: "before_provider_headers";
|
|
516
|
+
headers: ProviderHeaders;
|
|
517
|
+
}
|
|
468
518
|
/** Fired after a provider response is received and before the response stream is consumed. */
|
|
469
519
|
export interface AfterProviderResponseEvent {
|
|
470
520
|
type: "after_provider_response";
|
|
@@ -480,7 +530,7 @@ export interface BeforeAgentStartEvent {
|
|
|
480
530
|
images?: ImageContent[];
|
|
481
531
|
/** The fully assembled system prompt string. */
|
|
482
532
|
systemPrompt: string;
|
|
483
|
-
/** Structured options used to build the system prompt. Extensions can inspect this to understand what
|
|
533
|
+
/** Structured options used to build the system prompt. Extensions can inspect this to understand what mcpi loaded without re-discovering resources. */
|
|
484
534
|
systemPromptOptions: BuildSystemPromptOptions;
|
|
485
535
|
}
|
|
486
536
|
/** Fired when an agent loop starts */
|
|
@@ -492,6 +542,10 @@ export interface AgentEndEvent {
|
|
|
492
542
|
type: "agent_end";
|
|
493
543
|
messages: AgentMessage[];
|
|
494
544
|
}
|
|
545
|
+
/** Fired after an agent run has fully settled and no automatic retry, compaction, or queued continuation will run. */
|
|
546
|
+
export interface AgentSettledEvent {
|
|
547
|
+
type: "agent_settled";
|
|
548
|
+
}
|
|
495
549
|
/** Fired at the start of each turn */
|
|
496
550
|
export interface TurnStartEvent {
|
|
497
551
|
type: "turn_start";
|
|
@@ -552,6 +606,12 @@ export interface ModelSelectEvent {
|
|
|
552
606
|
previousModel: Model<any> | undefined;
|
|
553
607
|
source: ModelSelectSource;
|
|
554
608
|
}
|
|
609
|
+
/** Fired when a new thinking level is selected */
|
|
610
|
+
export interface ThinkingLevelSelectEvent {
|
|
611
|
+
type: "thinking_level_select";
|
|
612
|
+
level: ThinkingLevel;
|
|
613
|
+
previousLevel: ThinkingLevel;
|
|
614
|
+
}
|
|
555
615
|
/** Fired when user executes a bash command via ! or !! prefix */
|
|
556
616
|
export interface UserBashEvent {
|
|
557
617
|
type: "user_bash";
|
|
@@ -573,6 +633,8 @@ export interface InputEvent {
|
|
|
573
633
|
images?: ImageContent[];
|
|
574
634
|
/** Where the input came from */
|
|
575
635
|
source: InputSource;
|
|
636
|
+
/** How the input will be delivered during streaming, or undefined when idle */
|
|
637
|
+
streamingBehavior?: "steer" | "followUp";
|
|
576
638
|
}
|
|
577
639
|
/** Result from input event handler */
|
|
578
640
|
export type InputEventResult = {
|
|
@@ -633,6 +695,8 @@ interface ToolResultEventBase {
|
|
|
633
695
|
input: Record<string, unknown>;
|
|
634
696
|
content: (TextContent | ImageContent)[];
|
|
635
697
|
isError: boolean;
|
|
698
|
+
/** Usage from the tool execution itself, if available. */
|
|
699
|
+
usage?: Usage;
|
|
636
700
|
}
|
|
637
701
|
export interface BashToolResultEvent extends ToolResultEventBase {
|
|
638
702
|
toolName: "bash";
|
|
@@ -707,7 +771,7 @@ export declare function isToolCallEventType<TName extends string, TInput extends
|
|
|
707
771
|
input: TInput;
|
|
708
772
|
};
|
|
709
773
|
/** Union of all event types */
|
|
710
|
-
export type ExtensionEvent = ResourcesDiscoverEvent | SessionEvent | ContextEvent | BeforeProviderRequestEvent | AfterProviderResponseEvent | BeforeAgentStartEvent | AgentStartEvent | AgentEndEvent | TurnStartEvent | TurnEndEvent | MessageStartEvent | MessageUpdateEvent | MessageEndEvent | ToolExecutionStartEvent | ToolExecutionUpdateEvent | ToolExecutionEndEvent | ModelSelectEvent | UserBashEvent | InputEvent | ToolCallEvent | ToolResultEvent;
|
|
774
|
+
export type ExtensionEvent = ProjectTrustEvent | ResourcesDiscoverEvent | SessionEvent | ContextEvent | BeforeProviderRequestEvent | BeforeProviderHeadersEvent | AfterProviderResponseEvent | BeforeAgentStartEvent | AgentStartEvent | AgentEndEvent | AgentSettledEvent | TurnStartEvent | TurnEndEvent | MessageStartEvent | MessageUpdateEvent | MessageEndEvent | ToolExecutionStartEvent | ToolExecutionUpdateEvent | ToolExecutionEndEvent | ModelSelectEvent | ThinkingLevelSelectEvent | UserBashEvent | InputEvent | ToolCallEvent | ToolResultEvent;
|
|
711
775
|
export interface ContextEventResult {
|
|
712
776
|
messages?: AgentMessage[];
|
|
713
777
|
}
|
|
@@ -716,6 +780,11 @@ export interface ToolCallEventResult {
|
|
|
716
780
|
/** Block tool execution. To modify arguments, mutate `event.input` in place instead. */
|
|
717
781
|
block?: boolean;
|
|
718
782
|
reason?: string;
|
|
783
|
+
/**
|
|
784
|
+
* Hint that the agent should stop after the current tool batch when this call is blocked.
|
|
785
|
+
* Early termination only happens when every finalized tool result in the batch sets this to true.
|
|
786
|
+
*/
|
|
787
|
+
terminate?: boolean;
|
|
719
788
|
}
|
|
720
789
|
/** Result from user_bash event handler */
|
|
721
790
|
export interface UserBashEventResult {
|
|
@@ -728,6 +797,11 @@ export interface ToolResultEventResult {
|
|
|
728
797
|
content?: (TextContent | ImageContent)[];
|
|
729
798
|
details?: unknown;
|
|
730
799
|
isError?: boolean;
|
|
800
|
+
usage?: Usage;
|
|
801
|
+
}
|
|
802
|
+
export interface MessageEndEventResult {
|
|
803
|
+
/** Replace the finalized message. The replacement must keep the original message role. */
|
|
804
|
+
message?: AgentMessage;
|
|
731
805
|
}
|
|
732
806
|
export interface BeforeAgentStartEventResult {
|
|
733
807
|
message?: Pick<CustomMessage, "customType" | "content" | "display" | "details">;
|
|
@@ -750,6 +824,7 @@ export interface SessionBeforeTreeResult {
|
|
|
750
824
|
summary?: {
|
|
751
825
|
summary: string;
|
|
752
826
|
details?: unknown;
|
|
827
|
+
usage?: Usage;
|
|
753
828
|
};
|
|
754
829
|
/** Override custom instructions for summarization */
|
|
755
830
|
customInstructions?: string;
|
|
@@ -760,8 +835,20 @@ export interface SessionBeforeTreeResult {
|
|
|
760
835
|
}
|
|
761
836
|
export interface MessageRenderOptions {
|
|
762
837
|
expanded: boolean;
|
|
838
|
+
/** Horizontal padding configured by the outputPad setting. */
|
|
839
|
+
outputPad: number;
|
|
840
|
+
}
|
|
841
|
+
export interface MarkdownTransformContext {
|
|
842
|
+
messageType: "user" | "assistant" | "assistant-thinking";
|
|
843
|
+
isStreaming: boolean;
|
|
844
|
+
availableWidth: number;
|
|
845
|
+
}
|
|
846
|
+
export type MarkdownTransformer = (markdown: string, context: MarkdownTransformContext) => string;
|
|
847
|
+
export interface EntryRenderOptions {
|
|
848
|
+
expanded: boolean;
|
|
763
849
|
}
|
|
764
850
|
export type MessageRenderer<T = unknown> = (message: CustomMessage<T>, options: MessageRenderOptions, theme: Theme) => Component | undefined;
|
|
851
|
+
export type EntryRenderer<T = unknown> = (entry: CustomEntry<T>, options: EntryRenderOptions, theme: Theme) => Component | undefined;
|
|
765
852
|
export interface RegisteredCommand {
|
|
766
853
|
name: string;
|
|
767
854
|
sourceInfo: SourceInfo;
|
|
@@ -778,8 +865,10 @@ export type ExtensionHandler<E, R = undefined> = (event: E, ctx: ExtensionContex
|
|
|
778
865
|
* ExtensionAPI passed to extension factory functions.
|
|
779
866
|
*/
|
|
780
867
|
export interface ExtensionAPI {
|
|
868
|
+
on(event: "project_trust", handler: ProjectTrustHandler): void;
|
|
781
869
|
on(event: "resources_discover", handler: ExtensionHandler<ResourcesDiscoverEvent, ResourcesDiscoverResult>): void;
|
|
782
870
|
on(event: "session_start", handler: ExtensionHandler<SessionStartEvent>): void;
|
|
871
|
+
on(event: "session_info_changed", handler: ExtensionHandler<SessionInfoChangedEvent>): void;
|
|
783
872
|
on(event: "session_before_switch", handler: ExtensionHandler<SessionBeforeSwitchEvent, SessionBeforeSwitchResult>): void;
|
|
784
873
|
on(event: "session_before_fork", handler: ExtensionHandler<SessionBeforeForkEvent, SessionBeforeForkResult>): void;
|
|
785
874
|
on(event: "session_before_compact", handler: ExtensionHandler<SessionBeforeCompactEvent, SessionBeforeCompactResult>): void;
|
|
@@ -789,19 +878,22 @@ export interface ExtensionAPI {
|
|
|
789
878
|
on(event: "session_tree", handler: ExtensionHandler<SessionTreeEvent>): void;
|
|
790
879
|
on(event: "context", handler: ExtensionHandler<ContextEvent, ContextEventResult>): void;
|
|
791
880
|
on(event: "before_provider_request", handler: ExtensionHandler<BeforeProviderRequestEvent, BeforeProviderRequestEventResult>): void;
|
|
881
|
+
on(event: "before_provider_headers", handler: ExtensionHandler<BeforeProviderHeadersEvent>): void;
|
|
792
882
|
on(event: "after_provider_response", handler: ExtensionHandler<AfterProviderResponseEvent>): void;
|
|
793
883
|
on(event: "before_agent_start", handler: ExtensionHandler<BeforeAgentStartEvent, BeforeAgentStartEventResult>): void;
|
|
794
884
|
on(event: "agent_start", handler: ExtensionHandler<AgentStartEvent>): void;
|
|
795
885
|
on(event: "agent_end", handler: ExtensionHandler<AgentEndEvent>): void;
|
|
886
|
+
on(event: "agent_settled", handler: ExtensionHandler<AgentSettledEvent>): void;
|
|
796
887
|
on(event: "turn_start", handler: ExtensionHandler<TurnStartEvent>): void;
|
|
797
888
|
on(event: "turn_end", handler: ExtensionHandler<TurnEndEvent>): void;
|
|
798
889
|
on(event: "message_start", handler: ExtensionHandler<MessageStartEvent>): void;
|
|
799
890
|
on(event: "message_update", handler: ExtensionHandler<MessageUpdateEvent>): void;
|
|
800
|
-
on(event: "message_end", handler: ExtensionHandler<MessageEndEvent>): void;
|
|
891
|
+
on(event: "message_end", handler: ExtensionHandler<MessageEndEvent, MessageEndEventResult>): void;
|
|
801
892
|
on(event: "tool_execution_start", handler: ExtensionHandler<ToolExecutionStartEvent>): void;
|
|
802
893
|
on(event: "tool_execution_update", handler: ExtensionHandler<ToolExecutionUpdateEvent>): void;
|
|
803
894
|
on(event: "tool_execution_end", handler: ExtensionHandler<ToolExecutionEndEvent>): void;
|
|
804
895
|
on(event: "model_select", handler: ExtensionHandler<ModelSelectEvent>): void;
|
|
896
|
+
on(event: "thinking_level_select", handler: ExtensionHandler<ThinkingLevelSelectEvent>): void;
|
|
805
897
|
on(event: "tool_call", handler: ExtensionHandler<ToolCallEvent, ToolCallEventResult>): void;
|
|
806
898
|
on(event: "tool_result", handler: ExtensionHandler<ToolResultEvent, ToolResultEventResult>): void;
|
|
807
899
|
on(event: "user_bash", handler: ExtensionHandler<UserBashEvent, UserBashEventResult>): void;
|
|
@@ -823,16 +915,12 @@ export interface ExtensionAPI {
|
|
|
823
915
|
}): void;
|
|
824
916
|
/** Get the value of a registered CLI flag. */
|
|
825
917
|
getFlag(name: string): boolean | string | undefined;
|
|
826
|
-
/**
|
|
827
|
-
* Set a session-scoped environment variable for agent-spawned subprocesses.
|
|
828
|
-
* These are merged into the environment of bash tool invocations and exec() calls.
|
|
829
|
-
* Does not modify `process.env`.
|
|
830
|
-
*/
|
|
831
|
-
setEnv(key: string, value: string): void;
|
|
832
|
-
/** Remove a session-scoped environment variable. */
|
|
833
|
-
unsetEnv(key: string): void;
|
|
834
918
|
/** Register a custom renderer for CustomMessageEntry. */
|
|
835
919
|
registerMessageRenderer<T = unknown>(customType: string, renderer: MessageRenderer<T>): void;
|
|
920
|
+
/** Register a transformer for user and assistant Markdown before mcpi renders it in the interactive transcript. */
|
|
921
|
+
registerMarkdownTransformer(transformer: MarkdownTransformer): void;
|
|
922
|
+
/** Register a custom renderer for CustomEntry. Custom entries do not participate in LLM context. */
|
|
923
|
+
registerEntryRenderer<T = unknown>(customType: string, renderer: EntryRenderer<T>): void;
|
|
836
924
|
/** Send a custom message to the session. */
|
|
837
925
|
sendMessage<T = unknown>(message: Pick<CustomMessage<T>, "customType" | "content" | "display" | "details">, options?: {
|
|
838
926
|
triggerTurn?: boolean;
|
|
@@ -841,9 +929,11 @@ export interface ExtensionAPI {
|
|
|
841
929
|
/**
|
|
842
930
|
* Send a user message to the agent. Always triggers a turn.
|
|
843
931
|
* When the agent is streaming, use deliverAs to specify how to queue the message.
|
|
932
|
+
* Set expandPromptTemplates to dispatch extension commands and expand skill commands and prompt templates.
|
|
844
933
|
*/
|
|
845
934
|
sendUserMessage(content: string | (TextContent | ImageContent)[], options?: {
|
|
846
935
|
deliverAs?: "steer" | "followUp";
|
|
936
|
+
expandPromptTemplates?: boolean;
|
|
847
937
|
}): void;
|
|
848
938
|
/** Append a custom entry to the session for state persistence (not sent to LLM). */
|
|
849
939
|
appendEntry<T = unknown>(customType: string, data?: T): void;
|
|
@@ -855,9 +945,25 @@ export interface ExtensionAPI {
|
|
|
855
945
|
setLabel(entryId: string, label: string | undefined): void;
|
|
856
946
|
/** Execute a shell command. */
|
|
857
947
|
exec(command: string, args: string[], options?: ExecOptions): Promise<ExecResult>;
|
|
948
|
+
/**
|
|
949
|
+
* Set an environment variable for subprocesses spawned by this session.
|
|
950
|
+
*
|
|
951
|
+
* Applies to the `bash` tool and to `pi.exec()`. The value is scoped to the
|
|
952
|
+
* session and is never written to `process.env`, so it cannot leak into
|
|
953
|
+
* other sessions or into mcpi itself.
|
|
954
|
+
*/
|
|
955
|
+
setEnv(key: string, value: string): void;
|
|
956
|
+
/**
|
|
957
|
+
* Remove an environment variable from subprocesses spawned by this session.
|
|
958
|
+
*
|
|
959
|
+
* This masks the variable even when it is inherited from mcpi's own
|
|
960
|
+
* environment, so it can be used to keep a variable out of subprocesses
|
|
961
|
+
* entirely rather than only undoing a previous `setEnv()`.
|
|
962
|
+
*/
|
|
963
|
+
unsetEnv(key: string): void;
|
|
858
964
|
/** Get the list of currently active tool names. */
|
|
859
965
|
getActiveTools(): string[];
|
|
860
|
-
/** Get all configured tools with parameter schema and source metadata. */
|
|
966
|
+
/** Get all configured tools with parameter schema, prompt guidelines, and source metadata. */
|
|
861
967
|
getAllTools(): ToolInfo[];
|
|
862
968
|
/** Set the active tools by name. */
|
|
863
969
|
setActiveTools(toolNames: string[]): void;
|
|
@@ -886,7 +992,7 @@ export interface ExtensionAPI {
|
|
|
886
992
|
* // Register a new provider with custom models
|
|
887
993
|
* pi.registerProvider("my-proxy", {
|
|
888
994
|
* baseUrl: "https://proxy.example.com",
|
|
889
|
-
* apiKey: "PROXY_API_KEY",
|
|
995
|
+
* apiKey: "$PROXY_API_KEY",
|
|
890
996
|
* api: "anthropic-messages",
|
|
891
997
|
* models: [
|
|
892
998
|
* {
|
|
@@ -921,6 +1027,7 @@ export interface ExtensionAPI {
|
|
|
921
1027
|
* }
|
|
922
1028
|
* });
|
|
923
1029
|
*/
|
|
1030
|
+
registerProvider(provider: Provider): void;
|
|
924
1031
|
registerProvider(name: string, config: ProviderConfig): void;
|
|
925
1032
|
/**
|
|
926
1033
|
* Unregister a previously registered provider.
|
|
@@ -941,13 +1048,20 @@ export interface ExtensionAPI {
|
|
|
941
1048
|
}
|
|
942
1049
|
/** Configuration for registering a provider via pi.registerProvider(). */
|
|
943
1050
|
export interface ProviderConfig {
|
|
1051
|
+
/** Display name for the provider in UI. */
|
|
1052
|
+
name?: string;
|
|
944
1053
|
/** Base URL for the API endpoint. Required when defining models. */
|
|
945
1054
|
baseUrl?: string;
|
|
946
|
-
/** API key or
|
|
1055
|
+
/** API key literal, env interpolation ($ENV_VAR or ${ENV_VAR}), or leading !command. Required when defining models (unless oauth provided). */
|
|
947
1056
|
apiKey?: string;
|
|
948
1057
|
/** API type. Required at provider or model level when defining models. */
|
|
949
1058
|
api?: Api;
|
|
950
|
-
/**
|
|
1059
|
+
/**
|
|
1060
|
+
* Optional streamSimple handler for custom APIs.
|
|
1061
|
+
* Implementations must invoke `options.onPayload` before sending the provider request and use any
|
|
1062
|
+
* returned replacement payload. They must invoke `options.onResponse` after receiving the response
|
|
1063
|
+
* and before consuming its body, matching built-in providers.
|
|
1064
|
+
*/
|
|
951
1065
|
streamSimple?: (model: Model<Api>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStream;
|
|
952
1066
|
/** Custom headers to include in requests. */
|
|
953
1067
|
headers?: Record<string, string>;
|
|
@@ -955,17 +1069,26 @@ export interface ProviderConfig {
|
|
|
955
1069
|
authHeader?: boolean;
|
|
956
1070
|
/** Models to register. If provided, replaces all existing models for this provider. */
|
|
957
1071
|
models?: ProviderModelConfig[];
|
|
1072
|
+
/**
|
|
1073
|
+
* Refresh this provider's model list. The returned list replaces extension-provided models.
|
|
1074
|
+
* Use context.publish({ persist: entry }) when the catalog should persist across sessions.
|
|
1075
|
+
*/
|
|
1076
|
+
refreshModels?(context: RefreshModelsContext): Promise<ProviderModelConfig[]>;
|
|
958
1077
|
/** OAuth provider for /login support. The `id` is set automatically from the provider name. */
|
|
959
1078
|
oauth?: {
|
|
960
1079
|
/** Display name for the provider in login UI. */
|
|
961
1080
|
name: string;
|
|
1081
|
+
/** Whether access through this auth method is backed by a provider subscription. */
|
|
1082
|
+
isSubscription?: boolean;
|
|
1083
|
+
/** @deprecated Retained for source compatibility; canonical auth flows ignore it. */
|
|
1084
|
+
usesCallbackServer?: boolean;
|
|
962
1085
|
/** Run the login flow, return credentials to persist. */
|
|
963
1086
|
login(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials>;
|
|
964
1087
|
/** Refresh expired credentials, return updated credentials to persist. */
|
|
965
|
-
refreshToken(credentials: OAuthCredentials): Promise<OAuthCredentials>;
|
|
1088
|
+
refreshToken(credentials: OAuthCredentials, signal: AbortSignal): Promise<OAuthCredentials>;
|
|
966
1089
|
/** Convert credentials to API key string for the provider. */
|
|
967
1090
|
getApiKey(credentials: OAuthCredentials): string;
|
|
968
|
-
/**
|
|
1091
|
+
/** Legacy synchronous credential-dependent model projection. */
|
|
969
1092
|
modifyModels?(models: Model<Api>[], credentials: OAuthCredentials): Model<Api>[];
|
|
970
1093
|
};
|
|
971
1094
|
}
|
|
@@ -977,17 +1100,16 @@ export interface ProviderModelConfig {
|
|
|
977
1100
|
name: string;
|
|
978
1101
|
/** API type override for this model. */
|
|
979
1102
|
api?: Api;
|
|
1103
|
+
/** API endpoint URL override for this model. */
|
|
1104
|
+
baseUrl?: string;
|
|
980
1105
|
/** Whether the model supports extended thinking. */
|
|
981
1106
|
reasoning: boolean;
|
|
1107
|
+
/** Maps mcpi thinking levels to provider/model-specific values; null marks a level unsupported. */
|
|
1108
|
+
thinkingLevelMap?: Model<Api>["thinkingLevelMap"];
|
|
982
1109
|
/** Supported input types. */
|
|
983
1110
|
input: ("text" | "image")[];
|
|
984
|
-
/**
|
|
985
|
-
cost:
|
|
986
|
-
input: number;
|
|
987
|
-
output: number;
|
|
988
|
-
cacheRead: number;
|
|
989
|
-
cacheWrite: number;
|
|
990
|
-
};
|
|
1111
|
+
/** Per-million-token cost rates and optional request-wide input pricing tiers. */
|
|
1112
|
+
cost: Model<Api>["cost"];
|
|
991
1113
|
/** Maximum context window size in tokens. */
|
|
992
1114
|
contextWindow: number;
|
|
993
1115
|
/** Maximum output tokens. */
|
|
@@ -999,6 +1121,13 @@ export interface ProviderModelConfig {
|
|
|
999
1121
|
}
|
|
1000
1122
|
/** Extension factory function type. Supports both sync and async initialization. */
|
|
1001
1123
|
export type ExtensionFactory = (pi: ExtensionAPI) => void | Promise<void>;
|
|
1124
|
+
export type InlineExtension = ExtensionFactory | {
|
|
1125
|
+
/** Display name shown as `<inline:name>` in the startup Extensions list. */
|
|
1126
|
+
name: string;
|
|
1127
|
+
factory: ExtensionFactory;
|
|
1128
|
+
/** Omit this extension from the startup Extensions list. */
|
|
1129
|
+
hidden?: boolean;
|
|
1130
|
+
};
|
|
1002
1131
|
export interface RegisteredTool {
|
|
1003
1132
|
definition: ToolDefinition;
|
|
1004
1133
|
sourceInfo: SourceInfo;
|
|
@@ -1023,13 +1152,14 @@ export type SendMessageHandler = <T = unknown>(message: Pick<CustomMessage<T>, "
|
|
|
1023
1152
|
}) => void;
|
|
1024
1153
|
export type SendUserMessageHandler = (content: string | (TextContent | ImageContent)[], options?: {
|
|
1025
1154
|
deliverAs?: "steer" | "followUp";
|
|
1155
|
+
expandPromptTemplates?: boolean;
|
|
1026
1156
|
}) => void;
|
|
1027
1157
|
export type AppendEntryHandler = <T = unknown>(customType: string, data?: T) => void;
|
|
1028
1158
|
export type SetSessionNameHandler = (name: string) => void;
|
|
1029
1159
|
export type GetSessionNameHandler = () => string | undefined;
|
|
1030
1160
|
export type GetActiveToolsHandler = () => string[];
|
|
1031
|
-
/** Tool info with name, description, parameter schema, and source metadata */
|
|
1032
|
-
export type ToolInfo = Pick<ToolDefinition, "name" | "description" | "parameters"> & {
|
|
1161
|
+
/** Tool info with name, description, parameter schema, prompt guidelines, and source metadata. */
|
|
1162
|
+
export type ToolInfo = Pick<ToolDefinition, "name" | "description" | "parameters" | "promptGuidelines"> & {
|
|
1033
1163
|
sourceInfo: SourceInfo;
|
|
1034
1164
|
};
|
|
1035
1165
|
export type GetAllToolsHandler = () => ToolInfo[];
|
|
@@ -1046,18 +1176,29 @@ export type SetLabelHandler = (entryId: string, label: string | undefined) => vo
|
|
|
1046
1176
|
*/
|
|
1047
1177
|
export interface ExtensionRuntimeState {
|
|
1048
1178
|
flagValues: Map<string, boolean | string>;
|
|
1049
|
-
/**
|
|
1050
|
-
|
|
1051
|
-
|
|
1179
|
+
/**
|
|
1180
|
+
* Session-scoped environment mutations applied to spawned subprocesses.
|
|
1181
|
+
* `null` masks a variable inherited from mcpi's own environment.
|
|
1182
|
+
* Shared across all extensions loaded into the session.
|
|
1183
|
+
*/
|
|
1184
|
+
sessionEnv: Map<string, string | null>;
|
|
1185
|
+
/** Legacy provider-config registrations queued during extension loading, processed when runner binds. */
|
|
1052
1186
|
pendingProviderRegistrations: Array<{
|
|
1053
1187
|
name: string;
|
|
1054
1188
|
config: ProviderConfig;
|
|
1055
1189
|
extensionPath: string;
|
|
1056
1190
|
}>;
|
|
1191
|
+
/** Native mcpi-ai provider registrations queued during extension loading, processed when runner binds. */
|
|
1192
|
+
pendingNativeProviderRegistrations: Array<{
|
|
1193
|
+
provider: Provider;
|
|
1194
|
+
extensionPath: string;
|
|
1195
|
+
}>;
|
|
1057
1196
|
/** Throws when this extension instance is stale after runtime replacement. */
|
|
1058
1197
|
assertActive: () => void;
|
|
1059
1198
|
/** Marks this extension instance as stale after runtime replacement or reload. */
|
|
1060
1199
|
invalidate: (message?: string) => void;
|
|
1200
|
+
/** Retain an event-bus subscription until this runtime is invalidated. */
|
|
1201
|
+
trackEventBusSubscription: (unsubscribe: () => void) => () => void;
|
|
1061
1202
|
/**
|
|
1062
1203
|
* Register or unregister a provider.
|
|
1063
1204
|
*
|
|
@@ -1065,6 +1206,7 @@ export interface ExtensionRuntimeState {
|
|
|
1065
1206
|
* After bindCore(): calls ModelRegistry directly for immediate effect.
|
|
1066
1207
|
*/
|
|
1067
1208
|
registerProvider: (name: string, config: ProviderConfig, extensionPath?: string) => void;
|
|
1209
|
+
registerNativeProvider: (provider: Provider, extensionPath?: string) => void;
|
|
1068
1210
|
unregisterProvider: (name: string, extensionPath?: string) => void;
|
|
1069
1211
|
}
|
|
1070
1212
|
/**
|
|
@@ -1093,7 +1235,9 @@ export interface ExtensionActions {
|
|
|
1093
1235
|
*/
|
|
1094
1236
|
export interface ExtensionContextActions {
|
|
1095
1237
|
getModel: () => Model<any> | undefined;
|
|
1238
|
+
getScopedModels: () => readonly ScopedModel[];
|
|
1096
1239
|
isIdle: () => boolean;
|
|
1240
|
+
isProjectTrusted: () => boolean;
|
|
1097
1241
|
getSignal: () => AbortSignal | undefined;
|
|
1098
1242
|
abort: () => void;
|
|
1099
1243
|
hasPendingMessages: () => boolean;
|
|
@@ -1101,6 +1245,7 @@ export interface ExtensionContextActions {
|
|
|
1101
1245
|
getContextUsage: () => ContextUsage | undefined;
|
|
1102
1246
|
compact: (options?: CompactOptions) => void;
|
|
1103
1247
|
getSystemPrompt: () => string;
|
|
1248
|
+
getSystemPromptOptions?: () => BuildSystemPromptOptions;
|
|
1104
1249
|
}
|
|
1105
1250
|
/**
|
|
1106
1251
|
* Actions for ExtensionCommandContext (ctx.* in command handlers).
|
|
@@ -1146,10 +1291,13 @@ export interface ExtensionRuntime extends ExtensionRuntimeState, ExtensionAction
|
|
|
1146
1291
|
export interface Extension {
|
|
1147
1292
|
path: string;
|
|
1148
1293
|
resolvedPath: string;
|
|
1294
|
+
hidden?: boolean;
|
|
1149
1295
|
sourceInfo: SourceInfo;
|
|
1150
1296
|
handlers: Map<string, HandlerFn[]>;
|
|
1151
1297
|
tools: Map<string, RegisteredTool>;
|
|
1152
1298
|
messageRenderers: Map<string, MessageRenderer>;
|
|
1299
|
+
markdownTransformer?: MarkdownTransformer;
|
|
1300
|
+
entryRenderers?: Map<string, EntryRenderer>;
|
|
1153
1301
|
commands: Map<string, RegisteredCommand>;
|
|
1154
1302
|
flags: Map<string, ExtensionFlag>;
|
|
1155
1303
|
shortcuts: Map<KeyId, ExtensionShortcut>;
|