@sammorrowdrums/mcpi 0.70.8 → 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 +662 -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 +161 -79
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +32 -12
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +194 -3
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +217 -59
- 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 -5
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +224 -185
- 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
|
@@ -1,39 +1,50 @@
|
|
|
1
|
+
import { randomUUID } from "crypto";
|
|
1
2
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
2
|
-
import { homedir } from "os";
|
|
3
3
|
import { dirname, join } from "path";
|
|
4
4
|
import lockfile from "proper-lockfile";
|
|
5
5
|
import { CONFIG_DIR_NAME, getAgentDir } from "../config.js";
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import { normalizePath, resolvePath } from "../utils/paths.js";
|
|
7
|
+
import { DEFAULT_HTTP_IDLE_TIMEOUT_MS, parseHttpIdleTimeoutMs } from "./http-dispatcher.js";
|
|
8
|
+
function isMergeableObject(value) {
|
|
9
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
10
|
+
}
|
|
11
|
+
function deepMergeObjects(base, overrides) {
|
|
8
12
|
const result = { ...base };
|
|
9
13
|
for (const key of Object.keys(overrides)) {
|
|
10
14
|
const overrideValue = overrides[key];
|
|
11
|
-
const baseValue = base[key];
|
|
12
15
|
if (overrideValue === undefined) {
|
|
13
16
|
continue;
|
|
14
17
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
baseValue !== null &&
|
|
21
|
-
!Array.isArray(baseValue)) {
|
|
22
|
-
result[key] = { ...baseValue, ...overrideValue };
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
// For primitives and arrays, override value wins
|
|
26
|
-
result[key] = overrideValue;
|
|
27
|
-
}
|
|
18
|
+
const baseValue = base[key];
|
|
19
|
+
result[key] =
|
|
20
|
+
isMergeableObject(baseValue) && isMergeableObject(overrideValue)
|
|
21
|
+
? deepMergeObjects(baseValue, overrideValue)
|
|
22
|
+
: overrideValue;
|
|
28
23
|
}
|
|
29
24
|
return result;
|
|
30
25
|
}
|
|
26
|
+
/** Deep merge settings: project/overrides take precedence, nested objects merge recursively */
|
|
27
|
+
function deepMergeSettings(base, overrides) {
|
|
28
|
+
return deepMergeObjects(base, overrides);
|
|
29
|
+
}
|
|
30
|
+
function parseTimeoutSetting(value, settingName) {
|
|
31
|
+
const timeoutMs = parseHttpIdleTimeoutMs(value);
|
|
32
|
+
if (timeoutMs !== undefined) {
|
|
33
|
+
return timeoutMs;
|
|
34
|
+
}
|
|
35
|
+
if (value !== undefined) {
|
|
36
|
+
throw new Error(`Invalid ${settingName} setting: ${String(value)}`);
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
31
40
|
export class FileSettingsStorage {
|
|
32
41
|
globalSettingsPath;
|
|
33
42
|
projectSettingsPath;
|
|
34
43
|
constructor(cwd, agentDir) {
|
|
35
|
-
|
|
36
|
-
|
|
44
|
+
const resolvedCwd = resolvePath(cwd);
|
|
45
|
+
const resolvedAgentDir = resolvePath(agentDir);
|
|
46
|
+
this.globalSettingsPath = join(resolvedAgentDir, "settings.json");
|
|
47
|
+
this.projectSettingsPath = join(resolvedCwd, CONFIG_DIR_NAME, "settings.json");
|
|
37
48
|
}
|
|
38
49
|
acquireLockSyncWithRetry(path) {
|
|
39
50
|
const maxAttempts = 10;
|
|
@@ -110,6 +121,7 @@ export class SettingsManager {
|
|
|
110
121
|
globalSettings;
|
|
111
122
|
projectSettings;
|
|
112
123
|
settings;
|
|
124
|
+
projectTrusted;
|
|
113
125
|
modifiedFields = new Set(); // Track global fields modified during session
|
|
114
126
|
modifiedNestedFields = new Map(); // Track global nested field modifications
|
|
115
127
|
modifiedProjectFields = new Set(); // Track project fields modified during session
|
|
@@ -118,24 +130,26 @@ export class SettingsManager {
|
|
|
118
130
|
projectSettingsLoadError = null; // Track if project settings file had parse errors
|
|
119
131
|
writeQueue = Promise.resolve();
|
|
120
132
|
errors;
|
|
121
|
-
constructor(storage, initialGlobal, initialProject, globalLoadError = null, projectLoadError = null, initialErrors = []) {
|
|
133
|
+
constructor(storage, initialGlobal, initialProject, globalLoadError = null, projectLoadError = null, initialErrors = [], projectTrusted = true) {
|
|
122
134
|
this.storage = storage;
|
|
123
135
|
this.globalSettings = initialGlobal;
|
|
124
136
|
this.projectSettings = initialProject;
|
|
137
|
+
this.projectTrusted = projectTrusted;
|
|
125
138
|
this.globalSettingsLoadError = globalLoadError;
|
|
126
139
|
this.projectSettingsLoadError = projectLoadError;
|
|
127
140
|
this.errors = [...initialErrors];
|
|
128
141
|
this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
|
|
129
142
|
}
|
|
130
143
|
/** Create a SettingsManager that loads from files */
|
|
131
|
-
static create(cwd, agentDir = getAgentDir()) {
|
|
144
|
+
static create(cwd, agentDir = getAgentDir(), options = {}) {
|
|
132
145
|
const storage = new FileSettingsStorage(cwd, agentDir);
|
|
133
|
-
return SettingsManager.fromStorage(storage);
|
|
146
|
+
return SettingsManager.fromStorage(storage, options);
|
|
134
147
|
}
|
|
135
148
|
/** Create a SettingsManager from an arbitrary storage backend */
|
|
136
|
-
static fromStorage(storage) {
|
|
149
|
+
static fromStorage(storage, options = {}) {
|
|
150
|
+
const projectTrusted = options.projectTrusted ?? true;
|
|
137
151
|
const globalLoad = SettingsManager.tryLoadFromStorage(storage, "global");
|
|
138
|
-
const projectLoad = SettingsManager.tryLoadFromStorage(storage, "project");
|
|
152
|
+
const projectLoad = SettingsManager.tryLoadFromStorage(storage, "project", projectTrusted);
|
|
139
153
|
const initialErrors = [];
|
|
140
154
|
if (globalLoad.error) {
|
|
141
155
|
initialErrors.push({ scope: "global", error: globalLoad.error });
|
|
@@ -143,16 +157,19 @@ export class SettingsManager {
|
|
|
143
157
|
if (projectLoad.error) {
|
|
144
158
|
initialErrors.push({ scope: "project", error: projectLoad.error });
|
|
145
159
|
}
|
|
146
|
-
return new SettingsManager(storage, globalLoad.settings, projectLoad.settings, globalLoad.error, projectLoad.error, initialErrors);
|
|
160
|
+
return new SettingsManager(storage, globalLoad.settings, projectLoad.settings, globalLoad.error, projectLoad.error, initialErrors, projectTrusted);
|
|
147
161
|
}
|
|
148
162
|
/** Create an in-memory SettingsManager (no file I/O) */
|
|
149
|
-
static inMemory(settings = {}) {
|
|
163
|
+
static inMemory(settings = {}, options = {}) {
|
|
150
164
|
const storage = new InMemorySettingsStorage();
|
|
151
165
|
const initialSettings = SettingsManager.migrateSettings(structuredClone(settings));
|
|
152
166
|
storage.withLock("global", () => JSON.stringify(initialSettings, null, 2));
|
|
153
|
-
return SettingsManager.fromStorage(storage);
|
|
167
|
+
return SettingsManager.fromStorage(storage, options);
|
|
154
168
|
}
|
|
155
|
-
static loadFromStorage(storage, scope) {
|
|
169
|
+
static loadFromStorage(storage, scope, projectTrusted = true) {
|
|
170
|
+
if (scope === "project" && !projectTrusted) {
|
|
171
|
+
return {};
|
|
172
|
+
}
|
|
156
173
|
let content;
|
|
157
174
|
storage.withLock(scope, (current) => {
|
|
158
175
|
content = current;
|
|
@@ -164,9 +181,9 @@ export class SettingsManager {
|
|
|
164
181
|
const settings = JSON.parse(content);
|
|
165
182
|
return SettingsManager.migrateSettings(settings);
|
|
166
183
|
}
|
|
167
|
-
static tryLoadFromStorage(storage, scope) {
|
|
184
|
+
static tryLoadFromStorage(storage, scope, projectTrusted = true) {
|
|
168
185
|
try {
|
|
169
|
-
return { settings: SettingsManager.loadFromStorage(storage, scope), error: null };
|
|
186
|
+
return { settings: SettingsManager.loadFromStorage(storage, scope, projectTrusted), error: null };
|
|
170
187
|
}
|
|
171
188
|
catch (error) {
|
|
172
189
|
return { settings: {}, error: error };
|
|
@@ -200,6 +217,24 @@ export class SettingsManager {
|
|
|
200
217
|
delete settings.skills;
|
|
201
218
|
}
|
|
202
219
|
}
|
|
220
|
+
// Migrate retry.maxDelayMs -> retry.provider.maxRetryDelayMs
|
|
221
|
+
if ("retry" in settings &&
|
|
222
|
+
typeof settings.retry === "object" &&
|
|
223
|
+
settings.retry !== null &&
|
|
224
|
+
!Array.isArray(settings.retry)) {
|
|
225
|
+
const retrySettings = settings.retry;
|
|
226
|
+
const providerSettings = typeof retrySettings.provider === "object" && retrySettings.provider !== null
|
|
227
|
+
? retrySettings.provider
|
|
228
|
+
: undefined;
|
|
229
|
+
if (typeof retrySettings.maxDelayMs === "number" &&
|
|
230
|
+
(providerSettings?.maxRetryDelayMs === undefined || providerSettings?.maxRetryDelayMs === null)) {
|
|
231
|
+
retrySettings.provider = {
|
|
232
|
+
...(providerSettings ?? {}),
|
|
233
|
+
maxRetryDelayMs: retrySettings.maxDelayMs,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
delete retrySettings.maxDelayMs;
|
|
237
|
+
}
|
|
203
238
|
return settings;
|
|
204
239
|
}
|
|
205
240
|
getGlobalSettings() {
|
|
@@ -208,6 +243,30 @@ export class SettingsManager {
|
|
|
208
243
|
getProjectSettings() {
|
|
209
244
|
return structuredClone(this.projectSettings);
|
|
210
245
|
}
|
|
246
|
+
isProjectTrusted() {
|
|
247
|
+
return this.projectTrusted;
|
|
248
|
+
}
|
|
249
|
+
setProjectTrusted(trusted) {
|
|
250
|
+
if (this.projectTrusted === trusted) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
this.projectTrusted = trusted;
|
|
254
|
+
this.modifiedProjectFields.clear();
|
|
255
|
+
this.modifiedProjectNestedFields.clear();
|
|
256
|
+
if (!trusted) {
|
|
257
|
+
this.projectSettings = {};
|
|
258
|
+
this.projectSettingsLoadError = null;
|
|
259
|
+
this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
const projectLoad = SettingsManager.tryLoadFromStorage(this.storage, "project", trusted);
|
|
263
|
+
this.projectSettings = projectLoad.settings;
|
|
264
|
+
this.projectSettingsLoadError = projectLoad.error;
|
|
265
|
+
if (projectLoad.error) {
|
|
266
|
+
this.recordError("project", projectLoad.error);
|
|
267
|
+
}
|
|
268
|
+
this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
|
|
269
|
+
}
|
|
211
270
|
async reload() {
|
|
212
271
|
await this.writeQueue;
|
|
213
272
|
const globalLoad = SettingsManager.tryLoadFromStorage(this.storage, "global");
|
|
@@ -223,7 +282,7 @@ export class SettingsManager {
|
|
|
223
282
|
this.modifiedNestedFields.clear();
|
|
224
283
|
this.modifiedProjectFields.clear();
|
|
225
284
|
this.modifiedProjectNestedFields.clear();
|
|
226
|
-
const projectLoad = SettingsManager.tryLoadFromStorage(this.storage, "project");
|
|
285
|
+
const projectLoad = SettingsManager.tryLoadFromStorage(this.storage, "project", this.projectTrusted);
|
|
227
286
|
if (!projectLoad.error) {
|
|
228
287
|
this.projectSettings = projectLoad.settings;
|
|
229
288
|
this.projectSettingsLoadError = null;
|
|
@@ -258,6 +317,11 @@ export class SettingsManager {
|
|
|
258
317
|
this.modifiedProjectNestedFields.get(field).add(nestedKey);
|
|
259
318
|
}
|
|
260
319
|
}
|
|
320
|
+
assertProjectTrustedForWrite() {
|
|
321
|
+
if (!this.projectTrusted) {
|
|
322
|
+
throw new Error("Project is not trusted; refusing to write project settings");
|
|
323
|
+
}
|
|
324
|
+
}
|
|
261
325
|
recordError(scope, error) {
|
|
262
326
|
const normalizedError = error instanceof Error ? error : new Error(String(error));
|
|
263
327
|
this.errors.push({ scope, error: normalizedError });
|
|
@@ -274,6 +338,9 @@ export class SettingsManager {
|
|
|
274
338
|
enqueueWrite(scope, task) {
|
|
275
339
|
this.writeQueue = this.writeQueue
|
|
276
340
|
.then(() => {
|
|
341
|
+
if (scope === "project") {
|
|
342
|
+
this.assertProjectTrustedForWrite();
|
|
343
|
+
}
|
|
277
344
|
task();
|
|
278
345
|
this.clearModifiedScope(scope);
|
|
279
346
|
})
|
|
@@ -326,6 +393,7 @@ export class SettingsManager {
|
|
|
326
393
|
});
|
|
327
394
|
}
|
|
328
395
|
saveProjectSettings(settings) {
|
|
396
|
+
this.assertProjectTrustedForWrite();
|
|
329
397
|
this.projectSettings = structuredClone(settings);
|
|
330
398
|
this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
|
|
331
399
|
if (this.projectSettingsLoadError) {
|
|
@@ -338,6 +406,13 @@ export class SettingsManager {
|
|
|
338
406
|
this.persistScopedSettings("project", snapshotProjectSettings, modifiedFields, modifiedNestedFields);
|
|
339
407
|
});
|
|
340
408
|
}
|
|
409
|
+
updateProjectSettings(field, update) {
|
|
410
|
+
this.assertProjectTrustedForWrite();
|
|
411
|
+
const projectSettings = structuredClone(this.projectSettings);
|
|
412
|
+
update(projectSettings);
|
|
413
|
+
this.markProjectModified(field);
|
|
414
|
+
this.saveProjectSettings(projectSettings);
|
|
415
|
+
}
|
|
341
416
|
async flush() {
|
|
342
417
|
await this.writeQueue;
|
|
343
418
|
}
|
|
@@ -356,16 +431,7 @@ export class SettingsManager {
|
|
|
356
431
|
}
|
|
357
432
|
getSessionDir() {
|
|
358
433
|
const sessionDir = this.settings.sessionDir;
|
|
359
|
-
|
|
360
|
-
return sessionDir;
|
|
361
|
-
}
|
|
362
|
-
if (sessionDir === "~") {
|
|
363
|
-
return homedir();
|
|
364
|
-
}
|
|
365
|
-
if (sessionDir.startsWith("~/")) {
|
|
366
|
-
return join(homedir(), sessionDir.slice(2));
|
|
367
|
-
}
|
|
368
|
-
return sessionDir;
|
|
434
|
+
return sessionDir ? normalizePath(sessionDir) : sessionDir;
|
|
369
435
|
}
|
|
370
436
|
getDefaultProvider() {
|
|
371
437
|
return this.settings.defaultProvider;
|
|
@@ -406,8 +472,15 @@ export class SettingsManager {
|
|
|
406
472
|
this.markModified("followUpMode");
|
|
407
473
|
this.save();
|
|
408
474
|
}
|
|
475
|
+
getThemeSetting() {
|
|
476
|
+
const value = this.settings.theme;
|
|
477
|
+
if (typeof value === "string")
|
|
478
|
+
return value;
|
|
479
|
+
return undefined;
|
|
480
|
+
}
|
|
409
481
|
getTheme() {
|
|
410
|
-
|
|
482
|
+
const theme = this.getThemeSetting();
|
|
483
|
+
return theme?.includes("/") ? undefined : theme;
|
|
411
484
|
}
|
|
412
485
|
setTheme(theme) {
|
|
413
486
|
this.globalSettings.theme = theme;
|
|
@@ -423,7 +496,7 @@ export class SettingsManager {
|
|
|
423
496
|
this.save();
|
|
424
497
|
}
|
|
425
498
|
getTransport() {
|
|
426
|
-
return this.settings.transport ?? "
|
|
499
|
+
return this.settings.transport ?? "auto";
|
|
427
500
|
}
|
|
428
501
|
setTransport(transport) {
|
|
429
502
|
this.globalSettings.transport = transport;
|
|
@@ -479,19 +552,59 @@ export class SettingsManager {
|
|
|
479
552
|
enabled: this.getRetryEnabled(),
|
|
480
553
|
maxRetries: this.settings.retry?.maxRetries ?? 3,
|
|
481
554
|
baseDelayMs: this.settings.retry?.baseDelayMs ?? 2000,
|
|
482
|
-
maxDelayMs: this.settings.retry?.maxDelayMs ?? 60000,
|
|
483
555
|
};
|
|
484
556
|
}
|
|
557
|
+
getHttpIdleTimeoutMs() {
|
|
558
|
+
return parseTimeoutSetting(this.settings.httpIdleTimeoutMs, "httpIdleTimeoutMs") ?? DEFAULT_HTTP_IDLE_TIMEOUT_MS;
|
|
559
|
+
}
|
|
560
|
+
setHttpIdleTimeoutMs(timeoutMs) {
|
|
561
|
+
if (!Number.isFinite(timeoutMs) || timeoutMs < 0) {
|
|
562
|
+
throw new Error(`Invalid httpIdleTimeoutMs setting: ${String(timeoutMs)}`);
|
|
563
|
+
}
|
|
564
|
+
this.globalSettings.httpIdleTimeoutMs = Math.floor(timeoutMs);
|
|
565
|
+
this.markModified("httpIdleTimeoutMs");
|
|
566
|
+
this.save();
|
|
567
|
+
}
|
|
568
|
+
getProviderRetrySettings() {
|
|
569
|
+
return {
|
|
570
|
+
timeoutMs: this.settings.retry?.provider?.timeoutMs,
|
|
571
|
+
maxRetries: this.settings.retry?.provider?.maxRetries,
|
|
572
|
+
maxRetryDelayMs: this.settings.retry?.provider?.maxRetryDelayMs ?? 60000,
|
|
573
|
+
};
|
|
574
|
+
}
|
|
575
|
+
getWebSocketConnectTimeoutMs() {
|
|
576
|
+
return parseTimeoutSetting(this.settings.websocketConnectTimeoutMs, "websocketConnectTimeoutMs");
|
|
577
|
+
}
|
|
485
578
|
getHideThinkingBlock() {
|
|
486
579
|
return this.settings.hideThinkingBlock ?? false;
|
|
487
580
|
}
|
|
581
|
+
getShowCacheMissNotices() {
|
|
582
|
+
return this.settings.showCacheMissNotices ?? false;
|
|
583
|
+
}
|
|
584
|
+
getExternalEditorCommand() {
|
|
585
|
+
const configuredEditor = this.settings.externalEditor;
|
|
586
|
+
if (typeof configuredEditor === "string" && configuredEditor.trim() !== "") {
|
|
587
|
+
return configuredEditor;
|
|
588
|
+
}
|
|
589
|
+
const environmentEditor = process.env.VISUAL || process.env.EDITOR;
|
|
590
|
+
if (environmentEditor) {
|
|
591
|
+
return environmentEditor;
|
|
592
|
+
}
|
|
593
|
+
return process.platform === "win32" ? "notepad" : "nano";
|
|
594
|
+
}
|
|
488
595
|
setHideThinkingBlock(hide) {
|
|
489
596
|
this.globalSettings.hideThinkingBlock = hide;
|
|
490
597
|
this.markModified("hideThinkingBlock");
|
|
491
598
|
this.save();
|
|
492
599
|
}
|
|
600
|
+
setShowCacheMissNotices(show) {
|
|
601
|
+
this.globalSettings.showCacheMissNotices = show;
|
|
602
|
+
this.markModified("showCacheMissNotices");
|
|
603
|
+
this.save();
|
|
604
|
+
}
|
|
493
605
|
getShellPath() {
|
|
494
|
-
|
|
606
|
+
const shellPath = this.settings.shellPath;
|
|
607
|
+
return shellPath ? normalizePath(shellPath) : shellPath;
|
|
495
608
|
}
|
|
496
609
|
setShellPath(path) {
|
|
497
610
|
this.globalSettings.shellPath = path;
|
|
@@ -506,6 +619,15 @@ export class SettingsManager {
|
|
|
506
619
|
this.markModified("quietStartup");
|
|
507
620
|
this.save();
|
|
508
621
|
}
|
|
622
|
+
getDefaultProjectTrust() {
|
|
623
|
+
const value = this.globalSettings.defaultProjectTrust;
|
|
624
|
+
return value === "always" || value === "never" ? value : "ask";
|
|
625
|
+
}
|
|
626
|
+
setDefaultProjectTrust(defaultProjectTrust) {
|
|
627
|
+
this.globalSettings.defaultProjectTrust = defaultProjectTrust;
|
|
628
|
+
this.markModified("defaultProjectTrust");
|
|
629
|
+
this.save();
|
|
630
|
+
}
|
|
509
631
|
getShellCommandPrefix() {
|
|
510
632
|
return this.settings.shellCommandPrefix;
|
|
511
633
|
}
|
|
@@ -538,6 +660,22 @@ export class SettingsManager {
|
|
|
538
660
|
this.markModified("enableInstallTelemetry");
|
|
539
661
|
this.save();
|
|
540
662
|
}
|
|
663
|
+
getEnableAnalytics() {
|
|
664
|
+
return this.settings.enableAnalytics ?? false;
|
|
665
|
+
}
|
|
666
|
+
getTrackingId() {
|
|
667
|
+
return this.settings.trackingId;
|
|
668
|
+
}
|
|
669
|
+
/** Set the analytics opt-in preference; generates a tracking identifier on first opt-in */
|
|
670
|
+
setEnableAnalytics(enabled) {
|
|
671
|
+
this.globalSettings.enableAnalytics = enabled;
|
|
672
|
+
this.markModified("enableAnalytics");
|
|
673
|
+
if (enabled && !this.globalSettings.trackingId) {
|
|
674
|
+
this.globalSettings.trackingId = randomUUID();
|
|
675
|
+
this.markModified("trackingId");
|
|
676
|
+
}
|
|
677
|
+
this.save();
|
|
678
|
+
}
|
|
541
679
|
getPackages() {
|
|
542
680
|
return [...(this.settings.packages ?? [])];
|
|
543
681
|
}
|
|
@@ -547,10 +685,9 @@ export class SettingsManager {
|
|
|
547
685
|
this.save();
|
|
548
686
|
}
|
|
549
687
|
setProjectPackages(packages) {
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
this.saveProjectSettings(projectSettings);
|
|
688
|
+
this.updateProjectSettings("packages", (settings) => {
|
|
689
|
+
settings.packages = packages;
|
|
690
|
+
});
|
|
554
691
|
}
|
|
555
692
|
getExtensionPaths() {
|
|
556
693
|
return [...(this.settings.extensions ?? [])];
|
|
@@ -561,10 +698,9 @@ export class SettingsManager {
|
|
|
561
698
|
this.save();
|
|
562
699
|
}
|
|
563
700
|
setProjectExtensionPaths(paths) {
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
this.saveProjectSettings(projectSettings);
|
|
701
|
+
this.updateProjectSettings("extensions", (settings) => {
|
|
702
|
+
settings.extensions = paths;
|
|
703
|
+
});
|
|
568
704
|
}
|
|
569
705
|
getSkillPaths() {
|
|
570
706
|
return [...(this.settings.skills ?? [])];
|
|
@@ -575,10 +711,9 @@ export class SettingsManager {
|
|
|
575
711
|
this.save();
|
|
576
712
|
}
|
|
577
713
|
setProjectSkillPaths(paths) {
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
this.saveProjectSettings(projectSettings);
|
|
714
|
+
this.updateProjectSettings("skills", (settings) => {
|
|
715
|
+
settings.skills = paths;
|
|
716
|
+
});
|
|
582
717
|
}
|
|
583
718
|
getPromptTemplatePaths() {
|
|
584
719
|
return [...(this.settings.prompts ?? [])];
|
|
@@ -589,10 +724,9 @@ export class SettingsManager {
|
|
|
589
724
|
this.save();
|
|
590
725
|
}
|
|
591
726
|
setProjectPromptTemplatePaths(paths) {
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
this.saveProjectSettings(projectSettings);
|
|
727
|
+
this.updateProjectSettings("prompts", (settings) => {
|
|
728
|
+
settings.prompts = paths;
|
|
729
|
+
});
|
|
596
730
|
}
|
|
597
731
|
getThemePaths() {
|
|
598
732
|
return [...(this.settings.themes ?? [])];
|
|
@@ -603,10 +737,9 @@ export class SettingsManager {
|
|
|
603
737
|
this.save();
|
|
604
738
|
}
|
|
605
739
|
setProjectThemePaths(paths) {
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
this.saveProjectSettings(projectSettings);
|
|
740
|
+
this.updateProjectSettings("themes", (settings) => {
|
|
741
|
+
settings.themes = paths;
|
|
742
|
+
});
|
|
610
743
|
}
|
|
611
744
|
getEnableSkillCommands() {
|
|
612
745
|
return this.settings.enableSkillCommands ?? true;
|
|
@@ -650,7 +783,7 @@ export class SettingsManager {
|
|
|
650
783
|
if (this.settings.terminal?.clearOnShrink !== undefined) {
|
|
651
784
|
return this.settings.terminal.clearOnShrink;
|
|
652
785
|
}
|
|
653
|
-
return process.env.
|
|
786
|
+
return process.env.MCPI_CLEAR_ON_SHRINK === "1";
|
|
654
787
|
}
|
|
655
788
|
setClearOnShrink(enabled) {
|
|
656
789
|
if (!this.globalSettings.terminal) {
|
|
@@ -671,6 +804,31 @@ export class SettingsManager {
|
|
|
671
804
|
this.markModified("terminal", "showTerminalProgress");
|
|
672
805
|
this.save();
|
|
673
806
|
}
|
|
807
|
+
getTuiMode() {
|
|
808
|
+
return this.settings.tuiMode === "fullscreen" ? "fullscreen" : "regular";
|
|
809
|
+
}
|
|
810
|
+
setTuiMode(mode) {
|
|
811
|
+
this.globalSettings.tuiMode = mode;
|
|
812
|
+
this.markModified("tuiMode");
|
|
813
|
+
this.save();
|
|
814
|
+
}
|
|
815
|
+
getFullscreenExitOutput() {
|
|
816
|
+
return this.settings.fullscreenExitOutput === "resume-hint" ? "resume-hint" : "transcript";
|
|
817
|
+
}
|
|
818
|
+
setFullscreenExitOutput(output) {
|
|
819
|
+
this.globalSettings.fullscreenExitOutput = output;
|
|
820
|
+
this.markModified("fullscreenExitOutput");
|
|
821
|
+
this.save();
|
|
822
|
+
}
|
|
823
|
+
getFullscreenScrollbar() {
|
|
824
|
+
const mode = this.settings.fullscreenScrollbar;
|
|
825
|
+
return mode === "always" || mode === "hidden" ? mode : "auto";
|
|
826
|
+
}
|
|
827
|
+
setFullscreenScrollbar(mode) {
|
|
828
|
+
this.globalSettings.fullscreenScrollbar = mode;
|
|
829
|
+
this.markModified("fullscreenScrollbar");
|
|
830
|
+
this.save();
|
|
831
|
+
}
|
|
674
832
|
getImageAutoResize() {
|
|
675
833
|
return this.settings.images?.autoResize ?? true;
|
|
676
834
|
}
|
|
@@ -696,6 +854,10 @@ export class SettingsManager {
|
|
|
696
854
|
getEnabledModels() {
|
|
697
855
|
return this.settings.enabledModels;
|
|
698
856
|
}
|
|
857
|
+
getDefaultTools() {
|
|
858
|
+
const tools = this.settings.defaultTools;
|
|
859
|
+
return tools ? [...tools] : undefined;
|
|
860
|
+
}
|
|
699
861
|
setEnabledModels(patterns) {
|
|
700
862
|
this.globalSettings.enabledModels = patterns;
|
|
701
863
|
this.markModified("enabledModels");
|
|
@@ -720,7 +882,7 @@ export class SettingsManager {
|
|
|
720
882
|
this.save();
|
|
721
883
|
}
|
|
722
884
|
getShowHardwareCursor() {
|
|
723
|
-
return this.settings.showHardwareCursor ?? process.env.
|
|
885
|
+
return this.settings.showHardwareCursor ?? process.env.MCPI_HARDWARE_CURSOR === "1";
|
|
724
886
|
}
|
|
725
887
|
setShowHardwareCursor(enabled) {
|
|
726
888
|
this.globalSettings.showHardwareCursor = enabled;
|
|
@@ -735,6 +897,14 @@ export class SettingsManager {
|
|
|
735
897
|
this.markModified("editorPaddingX");
|
|
736
898
|
this.save();
|
|
737
899
|
}
|
|
900
|
+
getOutputPad() {
|
|
901
|
+
return this.settings.outputPad === 0 ? 0 : 1;
|
|
902
|
+
}
|
|
903
|
+
setOutputPad(padding) {
|
|
904
|
+
this.globalSettings.outputPad = padding;
|
|
905
|
+
this.markModified("outputPad");
|
|
906
|
+
this.save();
|
|
907
|
+
}
|
|
738
908
|
getAutocompleteMaxVisible() {
|
|
739
909
|
return this.settings.autocompleteMaxVisible ?? 5;
|
|
740
910
|
}
|
|
@@ -746,5 +916,23 @@ export class SettingsManager {
|
|
|
746
916
|
getCodeBlockIndent() {
|
|
747
917
|
return this.settings.markdown?.codeBlockIndent ?? " ";
|
|
748
918
|
}
|
|
919
|
+
getMermaidRenderingMode() {
|
|
920
|
+
const mode = this.settings.markdown?.mermaid;
|
|
921
|
+
return mode === "off" || mode === "final" ? mode : "streaming";
|
|
922
|
+
}
|
|
923
|
+
setMermaidRenderingMode(mode) {
|
|
924
|
+
this.globalSettings.markdown ??= {};
|
|
925
|
+
this.globalSettings.markdown.mermaid = mode;
|
|
926
|
+
this.markModified("markdown", "mermaid");
|
|
927
|
+
this.save();
|
|
928
|
+
}
|
|
929
|
+
getWarnings() {
|
|
930
|
+
return { ...(this.settings.warnings ?? {}) };
|
|
931
|
+
}
|
|
932
|
+
setWarnings(warnings) {
|
|
933
|
+
this.globalSettings.warnings = { ...warnings };
|
|
934
|
+
this.markModified("warnings");
|
|
935
|
+
this.save();
|
|
936
|
+
}
|
|
749
937
|
}
|
|
750
938
|
//# sourceMappingURL=settings-manager.js.map
|