@sammorrowdrums/mcpi 0.70.9 → 0.85.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 +1623 -1
- 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 +29 -1
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +102 -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
package/docs/sdk.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
>
|
|
1
|
+
> mcpi can help you use the SDK. Ask it to build an integration for your use case.
|
|
2
2
|
|
|
3
3
|
# SDK
|
|
4
4
|
|
|
5
|
-
The SDK provides programmatic access to
|
|
5
|
+
The SDK provides programmatic access to mcpi's agent capabilities. Use it to embed mcpi in other applications, build custom interfaces, or integrate with automated workflows.
|
|
6
6
|
|
|
7
7
|
**Example use cases:**
|
|
8
8
|
- Build a custom UI (web, desktop, mobile)
|
|
@@ -16,16 +16,12 @@ See [examples/sdk/](../examples/sdk/) for working examples from minimal to full
|
|
|
16
16
|
## Quick Start
|
|
17
17
|
|
|
18
18
|
```typescript
|
|
19
|
-
import {
|
|
20
|
-
|
|
21
|
-
// Set up credential storage and model registry
|
|
22
|
-
const authStorage = AuthStorage.create();
|
|
23
|
-
const modelRegistry = ModelRegistry.create(authStorage);
|
|
19
|
+
import { createAgentSession, ModelRuntime, SessionManager } from "@sammorrowdrums/mcpi";
|
|
24
20
|
|
|
21
|
+
const modelRuntime = await ModelRuntime.create();
|
|
25
22
|
const { session } = await createAgentSession({
|
|
26
23
|
sessionManager: SessionManager.inMemory(),
|
|
27
|
-
|
|
28
|
-
modelRegistry,
|
|
24
|
+
modelRuntime,
|
|
29
25
|
});
|
|
30
26
|
|
|
31
27
|
session.subscribe((event) => {
|
|
@@ -40,7 +36,7 @@ await session.prompt("What files are in the current directory?");
|
|
|
40
36
|
## Installation
|
|
41
37
|
|
|
42
38
|
```bash
|
|
43
|
-
npm install @
|
|
39
|
+
npm install @sammorrowdrums/mcpi
|
|
44
40
|
```
|
|
45
41
|
|
|
46
42
|
The SDK is included in the main package. No separate installation needed.
|
|
@@ -54,7 +50,7 @@ The main factory function for a single `AgentSession`.
|
|
|
54
50
|
`createAgentSession()` uses a `ResourceLoader` to supply extensions, skills, prompt templates, themes, and context files. If you do not provide one, it uses `DefaultResourceLoader` with standard discovery.
|
|
55
51
|
|
|
56
52
|
```typescript
|
|
57
|
-
import { createAgentSession } from "@
|
|
53
|
+
import { createAgentSession, SessionManager } from "@sammorrowdrums/mcpi";
|
|
58
54
|
|
|
59
55
|
// Minimal: defaults with DefaultResourceLoader
|
|
60
56
|
const { session } = await createAgentSession();
|
|
@@ -62,7 +58,7 @@ const { session } = await createAgentSession();
|
|
|
62
58
|
// Custom: override specific options
|
|
63
59
|
const { session } = await createAgentSession({
|
|
64
60
|
model: myModel,
|
|
65
|
-
tools: [
|
|
61
|
+
tools: ["read", "bash"],
|
|
66
62
|
sessionManager: SessionManager.inMemory(),
|
|
67
63
|
});
|
|
68
64
|
```
|
|
@@ -132,7 +128,7 @@ import {
|
|
|
132
128
|
createAgentSessionServices,
|
|
133
129
|
getAgentDir,
|
|
134
130
|
SessionManager,
|
|
135
|
-
} from "@
|
|
131
|
+
} from "@sammorrowdrums/mcpi";
|
|
136
132
|
|
|
137
133
|
const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => {
|
|
138
134
|
const services = await createAgentSessionServices({ cwd });
|
|
@@ -239,7 +235,7 @@ Both `steer()` and `followUp()` expand file-based prompt templates but error on
|
|
|
239
235
|
|
|
240
236
|
### Agent and AgentState
|
|
241
237
|
|
|
242
|
-
The `Agent` class (from `@
|
|
238
|
+
The `Agent` class (from `@sammorrowdrums/mcpi-agent-core`) handles the core LLM interaction. Access it via `session.agent`.
|
|
243
239
|
|
|
244
240
|
```typescript
|
|
245
241
|
// Access current state
|
|
@@ -323,6 +319,9 @@ session.subscribe((event) => {
|
|
|
323
319
|
case "compaction_end":
|
|
324
320
|
case "auto_retry_start":
|
|
325
321
|
case "auto_retry_end":
|
|
322
|
+
case "summarization_retry_scheduled":
|
|
323
|
+
case "summarization_retry_attempt_start":
|
|
324
|
+
case "summarization_retry_finished":
|
|
326
325
|
break;
|
|
327
326
|
}
|
|
328
327
|
});
|
|
@@ -338,23 +337,23 @@ const { session } = await createAgentSession({
|
|
|
338
337
|
cwd: process.cwd(), // default
|
|
339
338
|
|
|
340
339
|
// Global config directory
|
|
341
|
-
agentDir: "~/.
|
|
340
|
+
agentDir: "~/.config/mcpi", // explicit config root (expands ~)
|
|
342
341
|
});
|
|
343
342
|
```
|
|
344
343
|
|
|
345
344
|
`cwd` is used by `DefaultResourceLoader` for:
|
|
346
|
-
- Project extensions (`.
|
|
345
|
+
- Project extensions (`.mcpi/extensions/`)
|
|
347
346
|
- Project skills:
|
|
348
|
-
- `.
|
|
347
|
+
- `.mcpi/skills/`
|
|
349
348
|
- `.agents/skills/` in `cwd` and ancestor directories (up to git repo root, or filesystem root when not in a repo)
|
|
350
|
-
- Project prompts (`.
|
|
349
|
+
- Project prompts (`.mcpi/prompts/`)
|
|
351
350
|
- Context files (`AGENTS.md` walking up from cwd)
|
|
352
351
|
- Session directory naming
|
|
353
352
|
|
|
354
353
|
`agentDir` is used by `DefaultResourceLoader` for:
|
|
355
354
|
- Global extensions (`extensions/`)
|
|
356
355
|
- Global skills:
|
|
357
|
-
- `skills/` under `agentDir` (for example `~/.
|
|
356
|
+
- `skills/` under `agentDir` (for example `~/.config/mcpi/skills/`)
|
|
358
357
|
- `~/.agents/skills/`
|
|
359
358
|
- Global prompts (`prompts/`)
|
|
360
359
|
- Global context file (`AGENTS.md`)
|
|
@@ -368,11 +367,17 @@ When you pass a custom `ResourceLoader`, `cwd` and `agentDir` no longer control
|
|
|
368
367
|
### Model
|
|
369
368
|
|
|
370
369
|
```typescript
|
|
371
|
-
import { getModel } from "@
|
|
372
|
-
import {
|
|
370
|
+
import { getModel } from "@sammorrowdrums/mcpi-ai";
|
|
371
|
+
import { ModelRuntime } from "@sammorrowdrums/mcpi";
|
|
372
|
+
|
|
373
|
+
const modelRuntime = await ModelRuntime.create();
|
|
373
374
|
|
|
374
|
-
|
|
375
|
-
|
|
375
|
+
// create() restores cached catalogs but does not refresh them over the network by default.
|
|
376
|
+
// Opt in to a create-time network refresh and bound how long it may take:
|
|
377
|
+
const refreshedRuntime = await ModelRuntime.create({
|
|
378
|
+
allowModelNetwork: true,
|
|
379
|
+
modelRefreshTimeoutMs: 15_000,
|
|
380
|
+
});
|
|
376
381
|
|
|
377
382
|
// Find specific built-in model (doesn't check if API key exists)
|
|
378
383
|
const opus = getModel("anthropic", "claude-opus-4-5");
|
|
@@ -380,14 +385,14 @@ if (!opus) throw new Error("Model not found");
|
|
|
380
385
|
|
|
381
386
|
// Find any model by provider/id, including custom models from models.json
|
|
382
387
|
// (doesn't check if API key exists)
|
|
383
|
-
const customModel =
|
|
388
|
+
const customModel = modelRuntime.getModel("my-provider", "my-model");
|
|
384
389
|
|
|
385
|
-
// Get only models that have valid
|
|
386
|
-
const available = await
|
|
390
|
+
// Get only models that have valid authentication configured
|
|
391
|
+
const available = await modelRuntime.getAvailable();
|
|
387
392
|
|
|
388
393
|
const { session } = await createAgentSession({
|
|
389
394
|
model: opus,
|
|
390
|
-
thinkingLevel: "medium", // off, minimal, low, medium, high, xhigh
|
|
395
|
+
thinkingLevel: "medium", // off, minimal, low, medium, high, xhigh, max
|
|
391
396
|
|
|
392
397
|
// Models for cycling (Ctrl+P in interactive mode)
|
|
393
398
|
scopedModels: [
|
|
@@ -395,8 +400,7 @@ const { session } = await createAgentSession({
|
|
|
395
400
|
{ model: haiku, thinkingLevel: "off" },
|
|
396
401
|
],
|
|
397
402
|
|
|
398
|
-
|
|
399
|
-
modelRegistry,
|
|
403
|
+
modelRuntime,
|
|
400
404
|
});
|
|
401
405
|
```
|
|
402
406
|
|
|
@@ -405,46 +409,93 @@ If no model is provided:
|
|
|
405
409
|
2. Uses default from settings
|
|
406
410
|
3. Falls back to first available model
|
|
407
411
|
|
|
412
|
+
Remote catalogs are persisted locally so later runtimes can restore them without a network request. The default file is the cache directory's `models-store.json`; set `modelsStorePath` to choose another location, or inject `modelsStore` to control persistence. Network refreshes are throttled to once per provider every four hours unless forced. To force an immediate refresh, call `await modelRuntime.refresh({ allowNetwork: true, force: true, signal })`. Setting `MCPI_OFFLINE` disables model network access.
|
|
413
|
+
|
|
414
|
+
To match CLI model parsing, use the exported resolver helpers:
|
|
415
|
+
|
|
416
|
+
```typescript
|
|
417
|
+
import {
|
|
418
|
+
resolveCliModel,
|
|
419
|
+
resolveModelScopeWithDiagnostics,
|
|
420
|
+
} from "@sammorrowdrums/mcpi";
|
|
421
|
+
|
|
422
|
+
const cliModel = resolveCliModel({
|
|
423
|
+
cliModel: "anthropic/claude-opus-4-5:high",
|
|
424
|
+
modelRuntime,
|
|
425
|
+
});
|
|
426
|
+
if (cliModel.error) throw new Error(cliModel.error);
|
|
427
|
+
if (cliModel.warning) console.warn(cliModel.warning);
|
|
428
|
+
|
|
429
|
+
const { scopedModels, diagnostics } = await resolveModelScopeWithDiagnostics(
|
|
430
|
+
["anthropic/*:high", "gpt-5"],
|
|
431
|
+
modelRuntime,
|
|
432
|
+
);
|
|
433
|
+
for (const diagnostic of diagnostics) {
|
|
434
|
+
console.warn(diagnostic.message);
|
|
435
|
+
}
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
`resolveCliModel()` uses all registered models so `--api-key` style first-time setup can resolve a model before stored auth exists. `resolveModelScopeWithDiagnostics()` matches `--models` and `enabledModels` semantics while returning warnings instead of printing them.
|
|
439
|
+
|
|
408
440
|
> See [examples/sdk/02-custom-model.ts](../examples/sdk/02-custom-model.ts)
|
|
409
441
|
|
|
410
442
|
### API Keys and OAuth
|
|
411
443
|
|
|
412
|
-
|
|
444
|
+
Authentication resolution priority (handled by `ModelRuntime`):
|
|
413
445
|
1. Runtime overrides (via `setRuntimeApiKey`, not persisted)
|
|
414
446
|
2. Stored credentials in `auth.json` (API keys or OAuth tokens)
|
|
415
447
|
3. Environment variables (`ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, etc.)
|
|
416
448
|
4. Fallback resolver (for custom provider keys from `models.json`)
|
|
417
449
|
|
|
418
450
|
```typescript
|
|
419
|
-
import {
|
|
451
|
+
import { InMemoryCredentialStore } from "@sammorrowdrums/mcpi-ai";
|
|
452
|
+
import { createAgentSession, ModelRuntime } from "@sammorrowdrums/mcpi";
|
|
420
453
|
|
|
421
|
-
// Default: uses
|
|
422
|
-
const
|
|
423
|
-
const modelRegistry = ModelRegistry.create(authStorage);
|
|
454
|
+
// Default: uses auth.json and models.json under the mcpi config directory
|
|
455
|
+
const modelRuntime = await ModelRuntime.create();
|
|
424
456
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
}
|
|
457
|
+
// Provider-owned auth methods and current status
|
|
458
|
+
for (const provider of modelRuntime.getProviders()) {
|
|
459
|
+
const status = await modelRuntime.checkAuth(provider.id);
|
|
460
|
+
console.log(provider.name, provider.auth, status);
|
|
461
|
+
}
|
|
430
462
|
|
|
431
463
|
// Runtime API key override (not persisted to disk)
|
|
432
|
-
|
|
464
|
+
await modelRuntime.setRuntimeApiKey("anthropic", "sk-my-temp-key");
|
|
433
465
|
|
|
434
|
-
// Custom
|
|
435
|
-
const
|
|
436
|
-
|
|
466
|
+
// Custom credential and model locations
|
|
467
|
+
const customRuntime = await ModelRuntime.create({
|
|
468
|
+
authPath: "/my/app/auth.json",
|
|
469
|
+
modelsPath: "/my/app/models.json",
|
|
470
|
+
});
|
|
471
|
+
|
|
472
|
+
// Or inject any pi-ai CredentialStore
|
|
473
|
+
const credentials = new InMemoryCredentialStore();
|
|
474
|
+
const inMemoryRuntime = await ModelRuntime.create({ credentials });
|
|
437
475
|
|
|
438
476
|
const { session } = await createAgentSession({
|
|
439
|
-
|
|
440
|
-
authStorage: customAuth,
|
|
441
|
-
modelRegistry: customRegistry,
|
|
477
|
+
modelRuntime: customRuntime,
|
|
442
478
|
});
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
`login()`, `logout()`, `setRuntimeApiKey()`, and `removeRuntimeApiKey()` resolve after the affected provider's cached/built-in catalog, composition, and availability snapshot are locally consistent. They do not wait for remote catalog freshness. If credentials were committed but local synchronization fails, they reject with the exported `CredentialSynchronizationError`; inspect its `providerId`, `operation`, `credential`, and `cause` fields instead of retrying the credential mutation blindly.
|
|
482
|
+
|
|
483
|
+
Public model/auth operations and `ModelRuntime.create({ signal })` accept optional abort signals and are unbounded when omitted. SDK applications own deadline policy for remote catalog freshness:
|
|
443
484
|
|
|
444
|
-
|
|
445
|
-
const
|
|
485
|
+
```typescript
|
|
486
|
+
const signal = AbortSignal.timeout(15_000);
|
|
487
|
+
const result = await modelRuntime.refresh({
|
|
488
|
+
providers: ["anthropic"],
|
|
489
|
+
signal,
|
|
490
|
+
});
|
|
491
|
+
if (result.aborted) console.warn("Catalog refresh timed out; using cached models");
|
|
492
|
+
for (const [providerId, error] of result.errors) {
|
|
493
|
+
console.warn(`Could not refresh ${providerId}:`, error);
|
|
494
|
+
}
|
|
446
495
|
```
|
|
447
496
|
|
|
497
|
+
A failed or timed-out network refresh does not undo a successful credential operation. `refresh()` starts a new provider generation, so it does not wait behind an older stalled refresh and stale generations cannot publish afterward.
|
|
498
|
+
|
|
448
499
|
> See [examples/sdk/09-api-keys-and-oauth.ts](../examples/sdk/09-api-keys-and-oauth.ts)
|
|
449
500
|
|
|
450
501
|
### System Prompt
|
|
@@ -452,7 +503,7 @@ const simpleRegistry = ModelRegistry.inMemory(authStorage);
|
|
|
452
503
|
Use a `ResourceLoader` to override the system prompt:
|
|
453
504
|
|
|
454
505
|
```typescript
|
|
455
|
-
import { createAgentSession, DefaultResourceLoader } from "@
|
|
506
|
+
import { createAgentSession, DefaultResourceLoader } from "@sammorrowdrums/mcpi";
|
|
456
507
|
|
|
457
508
|
const loader = new DefaultResourceLoader({
|
|
458
509
|
systemPromptOverride: () => "You are a helpful assistant.",
|
|
@@ -466,71 +517,65 @@ const { session } = await createAgentSession({ resourceLoader: loader });
|
|
|
466
517
|
|
|
467
518
|
### Tools
|
|
468
519
|
|
|
520
|
+
Specify which built-in tools to enable:
|
|
521
|
+
|
|
522
|
+
- Built-in tool names: `read`, `bash`, `edit`, `write`, `grep`, `find`, `ls`
|
|
523
|
+
- Default built-ins: `read`, `bash`, `edit`, `write`
|
|
524
|
+
- `noTools: "all"` disables all tools
|
|
525
|
+
- `noTools: "builtin"` disables default built-ins while keeping extension and custom tools enabled
|
|
526
|
+
- `excludeTools` disables specific built-in, extension, or custom tool names after any `tools` allowlist is applied
|
|
527
|
+
|
|
528
|
+
The `edit` tool returns `details.diff` for mcpi's TUI display and `details.patch` as a standard unified patch for SDK consumers.
|
|
529
|
+
|
|
469
530
|
```typescript
|
|
470
|
-
import {
|
|
471
|
-
codingTools, // read, bash, edit, write (default)
|
|
472
|
-
readOnlyTools, // read, grep, find, ls
|
|
473
|
-
readTool, bashTool, editTool, writeTool,
|
|
474
|
-
grepTool, findTool, lsTool,
|
|
475
|
-
} from "@mariozechner/pi-coding-agent";
|
|
531
|
+
import { createAgentSession } from "@sammorrowdrums/mcpi";
|
|
476
532
|
|
|
477
|
-
//
|
|
533
|
+
// Read-only mode
|
|
478
534
|
const { session } = await createAgentSession({
|
|
479
|
-
tools:
|
|
535
|
+
tools: ["read", "grep", "find", "ls"],
|
|
480
536
|
});
|
|
481
537
|
|
|
482
538
|
// Pick specific tools
|
|
483
539
|
const { session } = await createAgentSession({
|
|
484
|
-
tools: [
|
|
540
|
+
tools: ["read", "bash", "grep"],
|
|
541
|
+
});
|
|
542
|
+
|
|
543
|
+
// Disable one tool while keeping the rest available
|
|
544
|
+
const { session } = await createAgentSession({
|
|
545
|
+
excludeTools: ["ask_question"],
|
|
485
546
|
});
|
|
486
547
|
```
|
|
487
548
|
|
|
488
549
|
#### Tools with Custom cwd
|
|
489
550
|
|
|
490
|
-
|
|
551
|
+
When you pass a custom `cwd`, `createAgentSession()` builds selected built-in tools for that cwd.
|
|
491
552
|
|
|
492
553
|
```typescript
|
|
493
|
-
import {
|
|
494
|
-
createCodingTools, // Creates [read, bash, edit, write] for specific cwd
|
|
495
|
-
createReadOnlyTools, // Creates [read, grep, find, ls] for specific cwd
|
|
496
|
-
createReadTool,
|
|
497
|
-
createBashTool,
|
|
498
|
-
createEditTool,
|
|
499
|
-
createWriteTool,
|
|
500
|
-
createGrepTool,
|
|
501
|
-
createFindTool,
|
|
502
|
-
createLsTool,
|
|
503
|
-
} from "@mariozechner/pi-coding-agent";
|
|
554
|
+
import { createAgentSession, SessionManager } from "@sammorrowdrums/mcpi";
|
|
504
555
|
|
|
505
556
|
const cwd = "/path/to/project";
|
|
506
557
|
|
|
507
|
-
// Use
|
|
558
|
+
// Use default tools for custom cwd
|
|
508
559
|
const { session } = await createAgentSession({
|
|
509
560
|
cwd,
|
|
510
|
-
|
|
561
|
+
sessionManager: SessionManager.inMemory(cwd),
|
|
511
562
|
});
|
|
512
563
|
|
|
513
|
-
// Or pick specific tools
|
|
564
|
+
// Or pick specific tools for custom cwd
|
|
514
565
|
const { session } = await createAgentSession({
|
|
515
566
|
cwd,
|
|
516
|
-
tools: [
|
|
567
|
+
tools: ["read", "bash", "grep"],
|
|
568
|
+
sessionManager: SessionManager.inMemory(cwd),
|
|
517
569
|
});
|
|
518
570
|
```
|
|
519
571
|
|
|
520
|
-
**When you don't need factories:**
|
|
521
|
-
- If you omit `tools`, pi automatically creates them with the correct `cwd`
|
|
522
|
-
- If you use `process.cwd()` as your `cwd`, the pre-built instances work fine
|
|
523
|
-
|
|
524
|
-
**When you must use factories:**
|
|
525
|
-
- When you specify both `cwd` (different from `process.cwd()`) AND `tools`
|
|
526
|
-
|
|
527
572
|
> See [examples/sdk/05-tools.ts](../examples/sdk/05-tools.ts)
|
|
528
573
|
|
|
529
574
|
### Custom Tools
|
|
530
575
|
|
|
531
576
|
```typescript
|
|
532
577
|
import { Type } from "typebox";
|
|
533
|
-
import { createAgentSession, defineTool } from "@
|
|
578
|
+
import { createAgentSession, defineTool } from "@sammorrowdrums/mcpi";
|
|
534
579
|
|
|
535
580
|
// Inline custom tool
|
|
536
581
|
const myTool = defineTool({
|
|
@@ -556,14 +601,16 @@ Use `defineTool()` for standalone definitions and arrays like `customTools: [myT
|
|
|
556
601
|
|
|
557
602
|
Custom tools passed via `customTools` are combined with extension-registered tools. Extensions loaded by the ResourceLoader can also register tools via `pi.registerTool()`.
|
|
558
603
|
|
|
604
|
+
If you pass `tools`, include each custom or extension tool name you want enabled, for example `tools: ["read", "bash", "my_tool"]`.
|
|
605
|
+
|
|
559
606
|
> See [examples/sdk/05-tools.ts](../examples/sdk/05-tools.ts)
|
|
560
607
|
|
|
561
608
|
### Extensions
|
|
562
609
|
|
|
563
|
-
Extensions are loaded by the `ResourceLoader`. `DefaultResourceLoader` discovers extensions from
|
|
610
|
+
Extensions are loaded by the `ResourceLoader`. `DefaultResourceLoader` discovers extensions from the config directory's `extensions/`, `.mcpi/extensions/`, and settings.json extension sources.
|
|
564
611
|
|
|
565
612
|
```typescript
|
|
566
|
-
import { createAgentSession, DefaultResourceLoader } from "@
|
|
613
|
+
import { createAgentSession, DefaultResourceLoader } from "@sammorrowdrums/mcpi";
|
|
567
614
|
|
|
568
615
|
const loader = new DefaultResourceLoader({
|
|
569
616
|
additionalExtensionPaths: ["/path/to/my-extension.ts"],
|
|
@@ -582,10 +629,31 @@ const { session } = await createAgentSession({ resourceLoader: loader });
|
|
|
582
629
|
|
|
583
630
|
Extensions can register tools, subscribe to events, add commands, and more. See [extensions.md](extensions.md) for the full API.
|
|
584
631
|
|
|
632
|
+
**Named inline extensions:** By default, inline factories display as `<inline:1>`, `<inline:2>`, etc. in the startup Extensions list. To show a descriptive name instead, wrap the factory:
|
|
633
|
+
|
|
634
|
+
```typescript
|
|
635
|
+
import type { InlineExtension } from "@sammorrowdrums/mcpi";
|
|
636
|
+
|
|
637
|
+
const myProvider: InlineExtension = {
|
|
638
|
+
name: "my-provider",
|
|
639
|
+
factory: (pi) => {
|
|
640
|
+
pi.on("agent_start", () => {
|
|
641
|
+
console.log("[my-provider] Agent starting");
|
|
642
|
+
});
|
|
643
|
+
},
|
|
644
|
+
};
|
|
645
|
+
|
|
646
|
+
const loader = new DefaultResourceLoader({
|
|
647
|
+
extensionFactories: [myProvider],
|
|
648
|
+
});
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
This displays as `<inline:my-provider>` instead of `<inline:1>`. Bare factory functions are still accepted for backward compatibility.
|
|
652
|
+
|
|
585
653
|
**Event Bus:** Extensions can communicate via `pi.events`. Pass a shared `eventBus` to `DefaultResourceLoader` if you need to emit or listen from outside:
|
|
586
654
|
|
|
587
655
|
```typescript
|
|
588
|
-
import { createEventBus, DefaultResourceLoader } from "@
|
|
656
|
+
import { createEventBus, DefaultResourceLoader } from "@sammorrowdrums/mcpi";
|
|
589
657
|
|
|
590
658
|
const eventBus = createEventBus();
|
|
591
659
|
const loader = new DefaultResourceLoader({
|
|
@@ -605,7 +673,7 @@ import {
|
|
|
605
673
|
createAgentSession,
|
|
606
674
|
DefaultResourceLoader,
|
|
607
675
|
type Skill,
|
|
608
|
-
} from "@
|
|
676
|
+
} from "@sammorrowdrums/mcpi";
|
|
609
677
|
|
|
610
678
|
const customSkill: Skill = {
|
|
611
679
|
name: "my-skill",
|
|
@@ -631,7 +699,7 @@ const { session } = await createAgentSession({ resourceLoader: loader });
|
|
|
631
699
|
### Context Files
|
|
632
700
|
|
|
633
701
|
```typescript
|
|
634
|
-
import { createAgentSession, DefaultResourceLoader } from "@
|
|
702
|
+
import { createAgentSession, DefaultResourceLoader } from "@sammorrowdrums/mcpi";
|
|
635
703
|
|
|
636
704
|
const loader = new DefaultResourceLoader({
|
|
637
705
|
agentsFilesOverride: (current) => ({
|
|
@@ -655,7 +723,7 @@ import {
|
|
|
655
723
|
createAgentSession,
|
|
656
724
|
DefaultResourceLoader,
|
|
657
725
|
type PromptTemplate,
|
|
658
|
-
} from "@
|
|
726
|
+
} from "@sammorrowdrums/mcpi";
|
|
659
727
|
|
|
660
728
|
const customCommand: PromptTemplate = {
|
|
661
729
|
name: "deploy",
|
|
@@ -690,7 +758,7 @@ import {
|
|
|
690
758
|
createAgentSessionServices,
|
|
691
759
|
getAgentDir,
|
|
692
760
|
SessionManager,
|
|
693
|
-
} from "@
|
|
761
|
+
} from "@sammorrowdrums/mcpi";
|
|
694
762
|
|
|
695
763
|
// In-memory (no persistence)
|
|
696
764
|
const { session } = await createAgentSession({
|
|
@@ -779,12 +847,12 @@ sm.branchWithSummary(id, "Summary..."); // Branch with context summary
|
|
|
779
847
|
sm.createBranchedSession(leafId); // Extract path to new file
|
|
780
848
|
```
|
|
781
849
|
|
|
782
|
-
> See [examples/sdk/11-sessions.ts](../examples/sdk/11-sessions.ts) and [
|
|
850
|
+
> See [examples/sdk/11-sessions.ts](../examples/sdk/11-sessions.ts) and [Session Format](session-format.md)
|
|
783
851
|
|
|
784
852
|
### Settings Management
|
|
785
853
|
|
|
786
854
|
```typescript
|
|
787
|
-
import { createAgentSession, SettingsManager, SessionManager } from "@
|
|
855
|
+
import { createAgentSession, SettingsManager, SessionManager } from "@sammorrowdrums/mcpi";
|
|
788
856
|
|
|
789
857
|
// Default: loads from files (global + project merged)
|
|
790
858
|
const { session } = await createAgentSession({
|
|
@@ -818,8 +886,8 @@ const { session } = await createAgentSession({
|
|
|
818
886
|
**Project-specific settings:**
|
|
819
887
|
|
|
820
888
|
Settings load from two locations and merge:
|
|
821
|
-
1. Global:
|
|
822
|
-
2. Project: `<cwd>/.
|
|
889
|
+
1. Global: the config directory's `settings.json`
|
|
890
|
+
2. Project: `<cwd>/.mcpi/settings.json`
|
|
823
891
|
|
|
824
892
|
Project overrides global. Nested objects merge keys. Setters modify global settings by default.
|
|
825
893
|
|
|
@@ -840,7 +908,7 @@ Use `DefaultResourceLoader` to discover extensions, skills, prompts, themes, and
|
|
|
840
908
|
import {
|
|
841
909
|
DefaultResourceLoader,
|
|
842
910
|
getAgentDir,
|
|
843
|
-
} from "@
|
|
911
|
+
} from "@sammorrowdrums/mcpi";
|
|
844
912
|
|
|
845
913
|
const loader = new DefaultResourceLoader({
|
|
846
914
|
cwd,
|
|
@@ -881,31 +949,25 @@ interface LoadExtensionsResult {
|
|
|
881
949
|
## Complete Example
|
|
882
950
|
|
|
883
951
|
```typescript
|
|
884
|
-
import { getModel } from "@
|
|
952
|
+
import { getModel } from "@sammorrowdrums/mcpi-ai";
|
|
885
953
|
import { Type } from "typebox";
|
|
886
954
|
import {
|
|
887
|
-
AuthStorage,
|
|
888
|
-
bashTool,
|
|
889
955
|
createAgentSession,
|
|
890
956
|
DefaultResourceLoader,
|
|
891
957
|
defineTool,
|
|
892
|
-
|
|
893
|
-
readTool,
|
|
958
|
+
ModelRuntime,
|
|
894
959
|
SessionManager,
|
|
895
960
|
SettingsManager,
|
|
896
|
-
} from "@
|
|
897
|
-
|
|
898
|
-
// Set up auth storage (custom location)
|
|
899
|
-
const authStorage = AuthStorage.create("/custom/agent/auth.json");
|
|
961
|
+
} from "@sammorrowdrums/mcpi";
|
|
900
962
|
|
|
901
|
-
|
|
963
|
+
const modelRuntime = await ModelRuntime.create({
|
|
964
|
+
authPath: "/custom/agent/auth.json",
|
|
965
|
+
modelsPath: "/custom/agent/models.json",
|
|
966
|
+
});
|
|
902
967
|
if (process.env.MY_KEY) {
|
|
903
|
-
|
|
968
|
+
await modelRuntime.setRuntimeApiKey("anthropic", process.env.MY_KEY);
|
|
904
969
|
}
|
|
905
970
|
|
|
906
|
-
// Model registry (no custom models.json)
|
|
907
|
-
const modelRegistry = ModelRegistry.create(authStorage);
|
|
908
|
-
|
|
909
971
|
// Inline tool
|
|
910
972
|
const statusTool = defineTool({
|
|
911
973
|
name: "status",
|
|
@@ -941,10 +1003,9 @@ const { session } = await createAgentSession({
|
|
|
941
1003
|
|
|
942
1004
|
model,
|
|
943
1005
|
thinkingLevel: "off",
|
|
944
|
-
|
|
945
|
-
modelRegistry,
|
|
1006
|
+
modelRuntime,
|
|
946
1007
|
|
|
947
|
-
tools: [
|
|
1008
|
+
tools: ["read", "bash", "status"],
|
|
948
1009
|
customTools: [statusTool],
|
|
949
1010
|
resourceLoader: loader,
|
|
950
1011
|
|
|
@@ -978,7 +1039,7 @@ import {
|
|
|
978
1039
|
getAgentDir,
|
|
979
1040
|
InteractiveMode,
|
|
980
1041
|
SessionManager,
|
|
981
|
-
} from "@
|
|
1042
|
+
} from "@sammorrowdrums/mcpi";
|
|
982
1043
|
|
|
983
1044
|
const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => {
|
|
984
1045
|
const services = await createAgentSessionServices({ cwd });
|
|
@@ -1018,7 +1079,7 @@ import {
|
|
|
1018
1079
|
getAgentDir,
|
|
1019
1080
|
runPrintMode,
|
|
1020
1081
|
SessionManager,
|
|
1021
|
-
} from "@
|
|
1082
|
+
} from "@sammorrowdrums/mcpi";
|
|
1022
1083
|
|
|
1023
1084
|
const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => {
|
|
1024
1085
|
const services = await createAgentSessionServices({ cwd });
|
|
@@ -1055,7 +1116,7 @@ import {
|
|
|
1055
1116
|
getAgentDir,
|
|
1056
1117
|
runRpcMode,
|
|
1057
1118
|
SessionManager,
|
|
1058
|
-
} from "@
|
|
1119
|
+
} from "@sammorrowdrums/mcpi";
|
|
1059
1120
|
|
|
1060
1121
|
const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => {
|
|
1061
1122
|
const services = await createAgentSessionServices({ cwd });
|
|
@@ -1081,7 +1142,7 @@ See [RPC documentation](rpc.md) for the JSON protocol.
|
|
|
1081
1142
|
For subprocess-based integration without building with the SDK, use the CLI directly:
|
|
1082
1143
|
|
|
1083
1144
|
```bash
|
|
1084
|
-
|
|
1145
|
+
mcpi --mode rpc --no-session
|
|
1085
1146
|
```
|
|
1086
1147
|
|
|
1087
1148
|
See [RPC documentation](rpc.md) for the JSON protocol.
|
|
@@ -1108,28 +1169,31 @@ createAgentSessionRuntime
|
|
|
1108
1169
|
AgentSessionRuntime
|
|
1109
1170
|
|
|
1110
1171
|
// Auth and Models
|
|
1111
|
-
|
|
1112
|
-
ModelRegistry
|
|
1172
|
+
ModelRuntime // implements pi-ai Models and owns credential storage
|
|
1173
|
+
ModelRegistry // synchronous extension compatibility facade
|
|
1174
|
+
CredentialSynchronizationError
|
|
1175
|
+
resolveCliModel
|
|
1176
|
+
resolveModelScopeWithDiagnostics
|
|
1113
1177
|
|
|
1114
1178
|
// Resource loading
|
|
1115
1179
|
DefaultResourceLoader
|
|
1116
1180
|
type ResourceLoader
|
|
1117
1181
|
createEventBus
|
|
1118
1182
|
|
|
1119
|
-
//
|
|
1183
|
+
// Constants and helpers
|
|
1184
|
+
CONFIG_DIR_NAME
|
|
1120
1185
|
defineTool
|
|
1186
|
+
getAgentDir
|
|
1187
|
+
getPackageDir
|
|
1188
|
+
getReadmePath
|
|
1189
|
+
getDocsPath
|
|
1190
|
+
getExamplesPath
|
|
1121
1191
|
|
|
1122
1192
|
// Session management
|
|
1123
1193
|
SessionManager
|
|
1124
1194
|
SettingsManager
|
|
1125
1195
|
|
|
1126
|
-
//
|
|
1127
|
-
codingTools
|
|
1128
|
-
readOnlyTools
|
|
1129
|
-
readTool, bashTool, editTool, writeTool
|
|
1130
|
-
grepTool, findTool, lsTool
|
|
1131
|
-
|
|
1132
|
-
// Tool factories (for custom cwd)
|
|
1196
|
+
// Tool factories
|
|
1133
1197
|
createCodingTools
|
|
1134
1198
|
createReadOnlyTools
|
|
1135
1199
|
createReadTool, createBashTool, createEditTool, createWriteTool
|
|
@@ -1139,6 +1203,7 @@ createGrepTool, createFindTool, createLsTool
|
|
|
1139
1203
|
type CreateAgentSessionOptions
|
|
1140
1204
|
type CreateAgentSessionResult
|
|
1141
1205
|
type ExtensionFactory
|
|
1206
|
+
type InlineExtension
|
|
1142
1207
|
type ExtensionAPI
|
|
1143
1208
|
type ToolDefinition
|
|
1144
1209
|
type Skill
|