@hansjm10/volt-coding-agent 0.0.0-bootstrap.0 → 0.1.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/BINARY-CAPABILITIES.md +28 -0
- package/CHANGELOG.md +4845 -0
- package/LICENSE +1 -1
- package/README.md +716 -3
- package/THIRD-PARTY-NOTICES.md +55 -0
- package/dist/LICENSES/clipboard-image-MIT.txt +9 -0
- package/dist/LICENSES/highlight.js-10.7.3-BSD-3-Clause.txt +29 -0
- package/dist/LICENSES/highlight.js-11.9.0-BSD-3-Clause.txt +29 -0
- package/dist/LICENSES/marked-18.0.5-LICENSE.txt +44 -0
- package/dist/LICENSES/run-jxa-MIT.txt +9 -0
- package/dist/cli/args.d.ts +60 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +414 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/config-selector.d.ts +14 -0
- package/dist/cli/config-selector.d.ts.map +1 -0
- package/dist/cli/config-selector.js +31 -0
- package/dist/cli/config-selector.js.map +1 -0
- package/dist/cli/file-processor.d.ts +15 -0
- package/dist/cli/file-processor.d.ts.map +1 -0
- package/dist/cli/file-processor.js +85 -0
- package/dist/cli/file-processor.js.map +1 -0
- package/dist/cli/initial-message.d.ts +18 -0
- package/dist/cli/initial-message.d.ts.map +1 -0
- package/dist/cli/initial-message.js +22 -0
- package/dist/cli/initial-message.js.map +1 -0
- package/dist/cli/list-models.d.ts +9 -0
- package/dist/cli/list-models.d.ts.map +1 -0
- package/dist/cli/list-models.js +98 -0
- package/dist/cli/list-models.js.map +1 -0
- 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 +9 -0
- package/dist/cli/session-picker.d.ts.map +1 -0
- package/dist/cli/session-picker.js +35 -0
- package/dist/cli/session-picker.js.map +1 -0
- package/dist/cli/startup-ui.d.ts +17 -0
- package/dist/cli/startup-ui.d.ts.map +1 -0
- package/dist/cli/startup-ui.js +133 -0
- package/dist/cli/startup-ui.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +18 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +85 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +487 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-session-runtime.d.ts +160 -0
- package/dist/core/agent-session-runtime.d.ts.map +1 -0
- package/dist/core/agent-session-runtime.js +397 -0
- package/dist/core/agent-session-runtime.js.map +1 -0
- package/dist/core/agent-session-services.d.ts +98 -0
- package/dist/core/agent-session-services.d.ts.map +1 -0
- package/dist/core/agent-session-services.js +125 -0
- package/dist/core/agent-session-services.js.map +1 -0
- package/dist/core/agent-session.d.ts +739 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +3158 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/auth-guidance.d.ts +5 -0
- package/dist/core/auth-guidance.d.ts.map +1 -0
- package/dist/core/auth-guidance.js +21 -0
- package/dist/core/auth-guidance.js.map +1 -0
- package/dist/core/auth-storage.d.ts +159 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +509 -0
- package/dist/core/auth-storage.js.map +1 -0
- package/dist/core/bash-executor.d.ts +32 -0
- package/dist/core/bash-executor.d.ts.map +1 -0
- package/dist/core/bash-executor.js +111 -0
- package/dist/core/bash-executor.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts +92 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/core/compaction/branch-summarization.js +257 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -0
- package/dist/core/compaction/compaction.d.ts +121 -0
- package/dist/core/compaction/compaction.d.ts.map +1 -0
- package/dist/core/compaction/compaction.js +658 -0
- package/dist/core/compaction/compaction.js.map +1 -0
- package/dist/core/compaction/index.d.ts +7 -0
- package/dist/core/compaction/index.d.ts.map +1 -0
- package/dist/core/compaction/index.js +7 -0
- package/dist/core/compaction/index.js.map +1 -0
- package/dist/core/compaction/utils.d.ts +56 -0
- package/dist/core/compaction/utils.d.ts.map +1 -0
- package/dist/core/compaction/utils.js +271 -0
- package/dist/core/compaction/utils.js.map +1 -0
- package/dist/core/defaults.d.ts +3 -0
- package/dist/core/defaults.d.ts.map +1 -0
- package/dist/core/defaults.js +2 -0
- package/dist/core/defaults.js.map +1 -0
- package/dist/core/diagnostics.d.ts +15 -0
- package/dist/core/diagnostics.d.ts.map +1 -0
- package/dist/core/diagnostics.js +2 -0
- package/dist/core/diagnostics.js.map +1 -0
- package/dist/core/event-bus.d.ts +9 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +25 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/exec.d.ts +29 -0
- package/dist/core/exec.d.ts.map +1 -0
- package/dist/core/exec.js +75 -0
- package/dist/core/exec.js.map +1 -0
- package/dist/core/experimental.d.ts +2 -0
- package/dist/core/experimental.d.ts.map +1 -0
- package/dist/core/experimental.js +4 -0
- package/dist/core/experimental.js.map +1 -0
- package/dist/core/export-html/ansi-to-html.d.ts +22 -0
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
- package/dist/core/export-html/ansi-to-html.js +249 -0
- package/dist/core/export-html/ansi-to-html.js.map +1 -0
- package/dist/core/export-html/index.d.ts +37 -0
- package/dist/core/export-html/index.d.ts.map +1 -0
- package/dist/core/export-html/index.js +234 -0
- package/dist/core/export-html/index.js.map +1 -0
- package/dist/core/export-html/template.css +1066 -0
- package/dist/core/export-html/template.html +55 -0
- package/dist/core/export-html/template.js +1864 -0
- package/dist/core/export-html/tool-renderer.d.ts +34 -0
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
- package/dist/core/export-html/tool-renderer.js +108 -0
- package/dist/core/export-html/tool-renderer.js.map +1 -0
- package/dist/core/export-html/vendor/highlight.min.js +1213 -0
- package/dist/core/export-html/vendor/marked.min.js +78 -0
- package/dist/core/extensions/index.d.ts +12 -0
- package/dist/core/extensions/index.d.ts.map +1 -0
- package/dist/core/extensions/index.js +9 -0
- package/dist/core/extensions/index.js.map +1 -0
- package/dist/core/extensions/loader.d.ts +25 -0
- package/dist/core/extensions/loader.d.ts.map +1 -0
- package/dist/core/extensions/loader.js +516 -0
- package/dist/core/extensions/loader.js.map +1 -0
- package/dist/core/extensions/runner.d.ts +180 -0
- package/dist/core/extensions/runner.d.ts.map +1 -0
- package/dist/core/extensions/runner.js +938 -0
- package/dist/core/extensions/runner.js.map +1 -0
- package/dist/core/extensions/types.d.ts +1215 -0
- package/dist/core/extensions/types.d.ts.map +1 -0
- package/dist/core/extensions/types.js +48 -0
- package/dist/core/extensions/types.js.map +1 -0
- package/dist/core/extensions/wrapper.d.ts +20 -0
- package/dist/core/extensions/wrapper.d.ts.map +1 -0
- package/dist/core/extensions/wrapper.js +22 -0
- package/dist/core/extensions/wrapper.js.map +1 -0
- package/dist/core/footer-data-provider.d.ts +54 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -0
- package/dist/core/footer-data-provider.js +338 -0
- package/dist/core/footer-data-provider.js.map +1 -0
- package/dist/core/host-actions.d.ts +107 -0
- package/dist/core/host-actions.d.ts.map +1 -0
- package/dist/core/host-actions.js +632 -0
- package/dist/core/host-actions.js.map +1 -0
- package/dist/core/host-interaction.d.ts +35 -0
- package/dist/core/host-interaction.d.ts.map +1 -0
- package/dist/core/host-interaction.js +2 -0
- package/dist/core/host-interaction.js.map +1 -0
- 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 +64 -0
- package/dist/core/http-dispatcher.js.map +1 -0
- package/dist/core/index.d.ts +18 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +17 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/keybindings.d.ts +373 -0
- package/dist/core/keybindings.d.ts.map +1 -0
- package/dist/core/keybindings.js +303 -0
- package/dist/core/keybindings.js.map +1 -0
- package/dist/core/lsp/client.d.ts +119 -0
- package/dist/core/lsp/client.d.ts.map +1 -0
- package/dist/core/lsp/client.js +711 -0
- package/dist/core/lsp/client.js.map +1 -0
- package/dist/core/lsp/config.d.ts +96 -0
- package/dist/core/lsp/config.d.ts.map +1 -0
- package/dist/core/lsp/config.js +206 -0
- package/dist/core/lsp/config.js.map +1 -0
- package/dist/core/lsp/index.d.ts +6 -0
- package/dist/core/lsp/index.d.ts.map +1 -0
- package/dist/core/lsp/index.js +6 -0
- package/dist/core/lsp/index.js.map +1 -0
- package/dist/core/lsp/manager.d.ts +122 -0
- package/dist/core/lsp/manager.d.ts.map +1 -0
- package/dist/core/lsp/manager.js +1136 -0
- package/dist/core/lsp/manager.js.map +1 -0
- package/dist/core/lsp/trace.d.ts +26 -0
- package/dist/core/lsp/trace.d.ts.map +1 -0
- package/dist/core/lsp/trace.js +98 -0
- package/dist/core/lsp/trace.js.map +1 -0
- package/dist/core/lsp/workspace-edit.d.ts +60 -0
- package/dist/core/lsp/workspace-edit.d.ts.map +1 -0
- package/dist/core/lsp/workspace-edit.js +71 -0
- package/dist/core/lsp/workspace-edit.js.map +1 -0
- package/dist/core/mcp/audit.d.ts +39 -0
- package/dist/core/mcp/audit.d.ts.map +1 -0
- package/dist/core/mcp/audit.js +35 -0
- package/dist/core/mcp/audit.js.map +1 -0
- package/dist/core/mcp/auth.d.ts +7 -0
- package/dist/core/mcp/auth.d.ts.map +1 -0
- package/dist/core/mcp/auth.js +56 -0
- package/dist/core/mcp/auth.js.map +1 -0
- package/dist/core/mcp/client-factory.d.ts +20 -0
- package/dist/core/mcp/client-factory.d.ts.map +1 -0
- package/dist/core/mcp/client-factory.js +200 -0
- package/dist/core/mcp/client-factory.js.map +1 -0
- package/dist/core/mcp/config-loader.d.ts +9 -0
- package/dist/core/mcp/config-loader.d.ts.map +1 -0
- package/dist/core/mcp/config-loader.js +104 -0
- package/dist/core/mcp/config-loader.js.map +1 -0
- package/dist/core/mcp/config-writer.d.ts +21 -0
- package/dist/core/mcp/config-writer.d.ts.map +1 -0
- package/dist/core/mcp/config-writer.js +124 -0
- package/dist/core/mcp/config-writer.js.map +1 -0
- package/dist/core/mcp/config.d.ts +32 -0
- package/dist/core/mcp/config.d.ts.map +1 -0
- package/dist/core/mcp/config.js +385 -0
- package/dist/core/mcp/config.js.map +1 -0
- package/dist/core/mcp/direct-tools.d.ts +11 -0
- package/dist/core/mcp/direct-tools.d.ts.map +1 -0
- package/dist/core/mcp/direct-tools.js +47 -0
- package/dist/core/mcp/direct-tools.js.map +1 -0
- package/dist/core/mcp/gateway-tool.d.ts +29 -0
- package/dist/core/mcp/gateway-tool.d.ts.map +1 -0
- package/dist/core/mcp/gateway-tool.js +108 -0
- package/dist/core/mcp/gateway-tool.js.map +1 -0
- package/dist/core/mcp/index.d.ts +19 -0
- package/dist/core/mcp/index.d.ts.map +1 -0
- package/dist/core/mcp/index.js +18 -0
- package/dist/core/mcp/index.js.map +1 -0
- package/dist/core/mcp/manager.d.ts +117 -0
- package/dist/core/mcp/manager.d.ts.map +1 -0
- package/dist/core/mcp/manager.js +819 -0
- package/dist/core/mcp/manager.js.map +1 -0
- package/dist/core/mcp/metadata-cache.d.ts +27 -0
- package/dist/core/mcp/metadata-cache.d.ts.map +1 -0
- package/dist/core/mcp/metadata-cache.js +152 -0
- package/dist/core/mcp/metadata-cache.js.map +1 -0
- package/dist/core/mcp/oauth-flow.d.ts +94 -0
- package/dist/core/mcp/oauth-flow.d.ts.map +1 -0
- package/dist/core/mcp/oauth-flow.js +473 -0
- package/dist/core/mcp/oauth-flow.js.map +1 -0
- package/dist/core/mcp/oauth-provider.d.ts +39 -0
- package/dist/core/mcp/oauth-provider.d.ts.map +1 -0
- package/dist/core/mcp/oauth-provider.js +149 -0
- package/dist/core/mcp/oauth-provider.js.map +1 -0
- package/dist/core/mcp/oauth-store.d.ts +27 -0
- package/dist/core/mcp/oauth-store.d.ts.map +1 -0
- package/dist/core/mcp/oauth-store.js +111 -0
- package/dist/core/mcp/oauth-store.js.map +1 -0
- package/dist/core/mcp/output-store.d.ts +55 -0
- package/dist/core/mcp/output-store.d.ts.map +1 -0
- package/dist/core/mcp/output-store.js +206 -0
- package/dist/core/mcp/output-store.js.map +1 -0
- package/dist/core/mcp/rpc.d.ts +13 -0
- package/dist/core/mcp/rpc.d.ts.map +1 -0
- package/dist/core/mcp/rpc.js +29 -0
- package/dist/core/mcp/rpc.js.map +1 -0
- package/dist/core/mcp/safety.d.ts +6 -0
- package/dist/core/mcp/safety.d.ts.map +1 -0
- package/dist/core/mcp/safety.js +65 -0
- package/dist/core/mcp/safety.js.map +1 -0
- package/dist/core/mcp/search.d.ts +8 -0
- package/dist/core/mcp/search.d.ts.map +1 -0
- package/dist/core/mcp/search.js +85 -0
- package/dist/core/mcp/search.js.map +1 -0
- package/dist/core/mcp/server-supervisor.d.ts +59 -0
- package/dist/core/mcp/server-supervisor.d.ts.map +1 -0
- package/dist/core/mcp/server-supervisor.js +331 -0
- package/dist/core/mcp/server-supervisor.js.map +1 -0
- package/dist/core/mcp/types.d.ts +321 -0
- package/dist/core/mcp/types.d.ts.map +1 -0
- package/dist/core/mcp/types.js +2 -0
- package/dist/core/mcp/types.js.map +1 -0
- package/dist/core/messages.d.ts +78 -0
- package/dist/core/messages.d.ts.map +1 -0
- package/dist/core/messages.js +138 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/model-catalog-watcher.d.ts +36 -0
- package/dist/core/model-catalog-watcher.d.ts.map +1 -0
- package/dist/core/model-catalog-watcher.js +101 -0
- package/dist/core/model-catalog-watcher.js.map +1 -0
- package/dist/core/model-registry.d.ts +160 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +754 -0
- package/dist/core/model-registry.js.map +1 -0
- package/dist/core/model-resolver.d.ts +111 -0
- package/dist/core/model-resolver.d.ts.map +1 -0
- package/dist/core/model-resolver.js +534 -0
- package/dist/core/model-resolver.js.map +1 -0
- package/dist/core/output-guard.d.ts +7 -0
- package/dist/core/output-guard.d.ts.map +1 -0
- package/dist/core/output-guard.js +89 -0
- package/dist/core/output-guard.js.map +1 -0
- package/dist/core/package-manager.d.ts +220 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +2217 -0
- package/dist/core/package-manager.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 +58 -0
- package/dist/core/project-trust.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +53 -0
- package/dist/core/prompt-templates.d.ts.map +1 -0
- package/dist/core/prompt-templates.js +236 -0
- package/dist/core/prompt-templates.js.map +1 -0
- 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 +81 -0
- package/dist/core/provider-attribution.js.map +1 -0
- package/dist/core/provider-display-names.d.ts +2 -0
- package/dist/core/provider-display-names.d.ts.map +1 -0
- package/dist/core/provider-display-names.js +36 -0
- package/dist/core/provider-display-names.js.map +1 -0
- package/dist/core/remote/iroh/access-grant.d.ts +40 -0
- package/dist/core/remote/iroh/access-grant.d.ts.map +1 -0
- package/dist/core/remote/iroh/access-grant.js +199 -0
- package/dist/core/remote/iroh/access-grant.js.map +1 -0
- package/dist/core/remote/iroh/active-stream-registry.d.ts +39 -0
- package/dist/core/remote/iroh/active-stream-registry.d.ts.map +1 -0
- package/dist/core/remote/iroh/active-stream-registry.js +109 -0
- package/dist/core/remote/iroh/active-stream-registry.js.map +1 -0
- package/dist/core/remote/iroh/audit.d.ts +67 -0
- package/dist/core/remote/iroh/audit.d.ts.map +1 -0
- package/dist/core/remote/iroh/audit.js +274 -0
- package/dist/core/remote/iroh/audit.js.map +1 -0
- package/dist/core/remote/iroh/authorization.d.ts +46 -0
- package/dist/core/remote/iroh/authorization.d.ts.map +1 -0
- package/dist/core/remote/iroh/authorization.js +327 -0
- package/dist/core/remote/iroh/authorization.js.map +1 -0
- package/dist/core/remote/iroh/control.d.ts +64 -0
- package/dist/core/remote/iroh/control.d.ts.map +1 -0
- package/dist/core/remote/iroh/control.js +326 -0
- package/dist/core/remote/iroh/control.js.map +1 -0
- package/dist/core/remote/iroh/device-log-rpc.d.ts +22 -0
- package/dist/core/remote/iroh/device-log-rpc.d.ts.map +1 -0
- package/dist/core/remote/iroh/device-log-rpc.js +152 -0
- package/dist/core/remote/iroh/device-log-rpc.js.map +1 -0
- package/dist/core/remote/iroh/engine.d.ts +148 -0
- package/dist/core/remote/iroh/engine.d.ts.map +1 -0
- package/dist/core/remote/iroh/engine.js +499 -0
- package/dist/core/remote/iroh/engine.js.map +1 -0
- package/dist/core/remote/iroh/handshake-reader.d.ts +19 -0
- package/dist/core/remote/iroh/handshake-reader.d.ts.map +1 -0
- package/dist/core/remote/iroh/handshake-reader.js +91 -0
- package/dist/core/remote/iroh/handshake-reader.js.map +1 -0
- package/dist/core/remote/iroh/handshake.d.ts +119 -0
- package/dist/core/remote/iroh/handshake.d.ts.map +1 -0
- package/dist/core/remote/iroh/handshake.js +621 -0
- package/dist/core/remote/iroh/handshake.js.map +1 -0
- package/dist/core/remote/iroh/host-policy.d.ts +13 -0
- package/dist/core/remote/iroh/host-policy.d.ts.map +1 -0
- package/dist/core/remote/iroh/host-policy.js +15 -0
- package/dist/core/remote/iroh/host-policy.js.map +1 -0
- package/dist/core/remote/iroh/index.d.ts +25 -0
- package/dist/core/remote/iroh/index.d.ts.map +1 -0
- package/dist/core/remote/iroh/index.js +25 -0
- package/dist/core/remote/iroh/index.js.map +1 -0
- package/dist/core/remote/iroh/metadata.d.ts +28 -0
- package/dist/core/remote/iroh/metadata.d.ts.map +1 -0
- package/dist/core/remote/iroh/metadata.js +16 -0
- package/dist/core/remote/iroh/metadata.js.map +1 -0
- package/dist/core/remote/iroh/outbound-filter.d.ts +29 -0
- package/dist/core/remote/iroh/outbound-filter.d.ts.map +1 -0
- package/dist/core/remote/iroh/outbound-filter.js +692 -0
- package/dist/core/remote/iroh/outbound-filter.js.map +1 -0
- package/dist/core/remote/iroh/protocol.d.ts +60 -0
- package/dist/core/remote/iroh/protocol.d.ts.map +1 -0
- package/dist/core/remote/iroh/protocol.js +204 -0
- package/dist/core/remote/iroh/protocol.js.map +1 -0
- package/dist/core/remote/iroh/push.d.ts +179 -0
- package/dist/core/remote/iroh/push.d.ts.map +1 -0
- package/dist/core/remote/iroh/push.js +662 -0
- package/dist/core/remote/iroh/push.js.map +1 -0
- package/dist/core/remote/iroh/qr.d.ts +12 -0
- package/dist/core/remote/iroh/qr.d.ts.map +1 -0
- package/dist/core/remote/iroh/qr.js +27 -0
- package/dist/core/remote/iroh/qr.js.map +1 -0
- package/dist/core/remote/iroh/rpc-command-filter.d.ts +47 -0
- package/dist/core/remote/iroh/rpc-command-filter.d.ts.map +1 -0
- package/dist/core/remote/iroh/rpc-command-filter.js +188 -0
- package/dist/core/remote/iroh/rpc-command-filter.js.map +1 -0
- package/dist/core/remote/iroh/rpc-transport.d.ts +21 -0
- package/dist/core/remote/iroh/rpc-transport.d.ts.map +1 -0
- package/dist/core/remote/iroh/rpc-transport.js +106 -0
- package/dist/core/remote/iroh/rpc-transport.js.map +1 -0
- package/dist/core/remote/iroh/state-manager.d.ts +141 -0
- package/dist/core/remote/iroh/state-manager.d.ts.map +1 -0
- package/dist/core/remote/iroh/state-manager.js +744 -0
- package/dist/core/remote/iroh/state-manager.js.map +1 -0
- package/dist/core/remote/iroh/state.d.ts +141 -0
- package/dist/core/remote/iroh/state.d.ts.map +1 -0
- package/dist/core/remote/iroh/state.js +433 -0
- package/dist/core/remote/iroh/state.js.map +1 -0
- package/dist/core/remote/iroh/ticket.d.ts +46 -0
- package/dist/core/remote/iroh/ticket.d.ts.map +1 -0
- package/dist/core/remote/iroh/ticket.js +267 -0
- package/dist/core/remote/iroh/ticket.js.map +1 -0
- package/dist/core/remote/iroh/transcript-text.d.ts +8 -0
- package/dist/core/remote/iroh/transcript-text.d.ts.map +1 -0
- package/dist/core/remote/iroh/transcript-text.js +26 -0
- package/dist/core/remote/iroh/transcript-text.js.map +1 -0
- package/dist/core/remote/iroh/workspace-rpc.d.ts +31 -0
- package/dist/core/remote/iroh/workspace-rpc.d.ts.map +1 -0
- package/dist/core/remote/iroh/workspace-rpc.js +73 -0
- package/dist/core/remote/iroh/workspace-rpc.js.map +1 -0
- package/dist/core/remote/iroh/workspace.d.ts +16 -0
- package/dist/core/remote/iroh/workspace.d.ts.map +1 -0
- package/dist/core/remote/iroh/workspace.js +104 -0
- package/dist/core/remote/iroh/workspace.js.map +1 -0
- package/dist/core/remote/iroh/worktree-rpc.d.ts +83 -0
- package/dist/core/remote/iroh/worktree-rpc.d.ts.map +1 -0
- package/dist/core/remote/iroh/worktree-rpc.js +148 -0
- package/dist/core/remote/iroh/worktree-rpc.js.map +1 -0
- package/dist/core/resolve-config-value.d.ts +30 -0
- package/dist/core/resolve-config-value.d.ts.map +1 -0
- package/dist/core/resolve-config-value.js +245 -0
- package/dist/core/resolve-config-value.js.map +1 -0
- package/dist/core/resource-loader.d.ts +214 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +824 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/review.d.ts +318 -0
- package/dist/core/review.d.ts.map +1 -0
- package/dist/core/review.js +1271 -0
- package/dist/core/review.js.map +1 -0
- package/dist/core/rpc/duplex-write-gate.d.ts +29 -0
- package/dist/core/rpc/duplex-write-gate.d.ts.map +1 -0
- package/dist/core/rpc/duplex-write-gate.js +124 -0
- package/dist/core/rpc/duplex-write-gate.js.map +1 -0
- package/dist/core/rpc/index.d.ts +6 -0
- package/dist/core/rpc/index.d.ts.map +1 -0
- package/dist/core/rpc/index.js +5 -0
- package/dist/core/rpc/index.js.map +1 -0
- package/dist/core/rpc/iroh-transport.d.ts +58 -0
- package/dist/core/rpc/iroh-transport.d.ts.map +1 -0
- package/dist/core/rpc/iroh-transport.js +278 -0
- package/dist/core/rpc/iroh-transport.js.map +1 -0
- package/dist/core/rpc/jsonl.d.ts +17 -0
- package/dist/core/rpc/jsonl.d.ts.map +1 -0
- package/dist/core/rpc/jsonl.js +49 -0
- package/dist/core/rpc/jsonl.js.map +1 -0
- package/dist/core/rpc/loopback-transport.d.ts +14 -0
- package/dist/core/rpc/loopback-transport.d.ts.map +1 -0
- package/dist/core/rpc/loopback-transport.js +120 -0
- package/dist/core/rpc/loopback-transport.js.map +1 -0
- package/dist/core/rpc/transcript.d.ts +37 -0
- package/dist/core/rpc/transcript.d.ts.map +1 -0
- package/dist/core/rpc/transcript.js +624 -0
- package/dist/core/rpc/transcript.js.map +1 -0
- package/dist/core/rpc/transport.d.ts +41 -0
- package/dist/core/rpc/transport.d.ts.map +1 -0
- package/dist/core/rpc/transport.js +155 -0
- package/dist/core/rpc/transport.js.map +1 -0
- package/dist/core/rpc/types.d.ts +1254 -0
- package/dist/core/rpc/types.d.ts.map +1 -0
- package/dist/core/rpc/types.js +8 -0
- package/dist/core/rpc/types.js.map +1 -0
- package/dist/core/rpc/ui-action-args.d.ts +3 -0
- package/dist/core/rpc/ui-action-args.d.ts.map +1 -0
- package/dist/core/rpc/ui-action-args.js +66 -0
- package/dist/core/rpc/ui-action-args.js.map +1 -0
- package/dist/core/rpc/ui-actions.d.ts +43 -0
- package/dist/core/rpc/ui-actions.d.ts.map +1 -0
- package/dist/core/rpc/ui-actions.js +362 -0
- package/dist/core/rpc/ui-actions.js.map +1 -0
- package/dist/core/sdk.d.ts +138 -0
- package/dist/core/sdk.d.ts.map +1 -0
- package/dist/core/sdk.js +324 -0
- package/dist/core/sdk.js.map +1 -0
- package/dist/core/session-cwd.d.ts +19 -0
- package/dist/core/session-cwd.d.ts.map +1 -0
- package/dist/core/session-cwd.js +38 -0
- package/dist/core/session-cwd.js.map +1 -0
- package/dist/core/session-manager.d.ts +346 -0
- package/dist/core/session-manager.d.ts.map +1 -0
- package/dist/core/session-manager.js +1280 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/settings-manager.d.ts +359 -0
- package/dist/core/settings-manager.d.ts.map +1 -0
- package/dist/core/settings-manager.js +1277 -0
- package/dist/core/settings-manager.js.map +1 -0
- package/dist/core/skills.d.ts +60 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +387 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/slash-commands.d.ts +14 -0
- package/dist/core/slash-commands.d.ts.map +1 -0
- package/dist/core/slash-commands.js +51 -0
- package/dist/core/slash-commands.js.map +1 -0
- package/dist/core/source-info.d.ts +18 -0
- package/dist/core/source-info.d.ts.map +1 -0
- package/dist/core/source-info.js +19 -0
- package/dist/core/source-info.js.map +1 -0
- package/dist/core/subagents/delegation-scope.d.ts +47 -0
- package/dist/core/subagents/delegation-scope.d.ts.map +1 -0
- package/dist/core/subagents/delegation-scope.js +134 -0
- package/dist/core/subagents/delegation-scope.js.map +1 -0
- package/dist/core/subagents/index.d.ts +46 -0
- package/dist/core/subagents/index.d.ts.map +1 -0
- package/dist/core/subagents/index.js +369 -0
- package/dist/core/subagents/index.js.map +1 -0
- package/dist/core/subagents/manager.d.ts +183 -0
- package/dist/core/subagents/manager.d.ts.map +1 -0
- package/dist/core/subagents/manager.js +820 -0
- package/dist/core/subagents/manager.js.map +1 -0
- package/dist/core/system-prompt.d.ts +28 -0
- package/dist/core/system-prompt.d.ts.map +1 -0
- package/dist/core/system-prompt.js +180 -0
- package/dist/core/system-prompt.js.map +1 -0
- package/dist/core/telemetry.d.ts +3 -0
- package/dist/core/telemetry.d.ts.map +1 -0
- package/dist/core/telemetry.js +9 -0
- package/dist/core/telemetry.js.map +1 -0
- package/dist/core/theme/dark.json +86 -0
- package/dist/core/theme/discovery.d.ts +48 -0
- package/dist/core/theme/discovery.d.ts.map +1 -0
- package/dist/core/theme/discovery.js +239 -0
- package/dist/core/theme/discovery.js.map +1 -0
- package/dist/core/theme/index.d.ts +6 -0
- package/dist/core/theme/index.d.ts.map +1 -0
- package/dist/core/theme/index.js +5 -0
- package/dist/core/theme/index.js.map +1 -0
- package/dist/core/theme/light.json +85 -0
- package/dist/core/theme/runtime.d.ts +55 -0
- package/dist/core/theme/runtime.d.ts.map +1 -0
- package/dist/core/theme/runtime.js +555 -0
- package/dist/core/theme/runtime.js.map +1 -0
- package/dist/core/theme/theme-schema.json +335 -0
- package/dist/core/theme/theme-service.d.ts +37 -0
- package/dist/core/theme/theme-service.d.ts.map +1 -0
- package/dist/core/theme/theme-service.js +222 -0
- package/dist/core/theme/theme-service.js.map +1 -0
- package/dist/core/theme/theme.d.ts +100 -0
- package/dist/core/theme/theme.d.ts.map +1 -0
- package/dist/core/theme/theme.js +243 -0
- package/dist/core/theme/theme.js.map +1 -0
- package/dist/core/theme/tokens.d.ts +20 -0
- package/dist/core/theme/tokens.d.ts.map +1 -0
- package/dist/core/theme/tokens.js +178 -0
- package/dist/core/theme/tokens.js.map +1 -0
- package/dist/core/theme/types.d.ts +21 -0
- package/dist/core/theme/types.d.ts.map +1 -0
- package/dist/core/theme/types.js +2 -0
- package/dist/core/theme/types.js.map +1 -0
- package/dist/core/timings.d.ts +8 -0
- package/dist/core/timings.d.ts.map +1 -0
- package/dist/core/timings.js +31 -0
- package/dist/core/timings.js.map +1 -0
- package/dist/core/tools/bash.d.ts +68 -0
- package/dist/core/tools/bash.d.ts.map +1 -0
- package/dist/core/tools/bash.js +345 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/diagnostics-provider.d.ts +12 -0
- package/dist/core/tools/diagnostics-provider.d.ts.map +1 -0
- package/dist/core/tools/diagnostics-provider.js +2 -0
- package/dist/core/tools/diagnostics-provider.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +77 -0
- package/dist/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/core/tools/edit-diff.js +506 -0
- package/dist/core/tools/edit-diff.js.map +1 -0
- package/dist/core/tools/edit.d.ts +56 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +300 -0
- package/dist/core/tools/edit.js.map +1 -0
- package/dist/core/tools/file-mutation-queue.d.ts +6 -0
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
- package/dist/core/tools/file-mutation-queue.js +52 -0
- package/dist/core/tools/file-mutation-queue.js.map +1 -0
- package/dist/core/tools/find.d.ts +35 -0
- package/dist/core/tools/find.d.ts.map +1 -0
- package/dist/core/tools/find.js +337 -0
- package/dist/core/tools/find.js.map +1 -0
- package/dist/core/tools/grep.d.ts +37 -0
- package/dist/core/tools/grep.d.ts.map +1 -0
- package/dist/core/tools/grep.js +305 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/index.d.ts +56 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +174 -0
- package/dist/core/tools/index.js.map +1 -0
- package/dist/core/tools/ls.d.ts +37 -0
- package/dist/core/tools/ls.d.ts.map +1 -0
- package/dist/core/tools/ls.js +167 -0
- package/dist/core/tools/ls.js.map +1 -0
- package/dist/core/tools/lsp.d.ts +59 -0
- package/dist/core/tools/lsp.d.ts.map +1 -0
- package/dist/core/tools/lsp.js +157 -0
- package/dist/core/tools/lsp.js.map +1 -0
- 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 +10 -0
- package/dist/core/tools/path-utils.d.ts.map +1 -0
- package/dist/core/tools/path-utils.js +99 -0
- package/dist/core/tools/path-utils.js.map +1 -0
- package/dist/core/tools/read.d.ts +35 -0
- package/dist/core/tools/read.d.ts.map +1 -0
- package/dist/core/tools/read.js +292 -0
- package/dist/core/tools/read.js.map +1 -0
- package/dist/core/tools/render-utils.d.ts +26 -0
- package/dist/core/tools/render-utils.d.ts.map +1 -0
- package/dist/core/tools/render-utils.js +69 -0
- package/dist/core/tools/render-utils.js.map +1 -0
- package/dist/core/tools/subagent.d.ts +219 -0
- package/dist/core/tools/subagent.d.ts.map +1 -0
- package/dist/core/tools/subagent.js +1445 -0
- package/dist/core/tools/subagent.js.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.js +34 -0
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
- package/dist/core/tools/truncate.d.ts +70 -0
- package/dist/core/tools/truncate.d.ts.map +1 -0
- package/dist/core/tools/truncate.js +215 -0
- package/dist/core/tools/truncate.js.map +1 -0
- package/dist/core/tools/web-search.d.ts +69 -0
- package/dist/core/tools/web-search.d.ts.map +1 -0
- package/dist/core/tools/web-search.js +634 -0
- package/dist/core/tools/web-search.js.map +1 -0
- package/dist/core/tools/write.d.ts +33 -0
- package/dist/core/tools/write.d.ts.map +1 -0
- package/dist/core/tools/write.js +210 -0
- package/dist/core/tools/write.js.map +1 -0
- 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 +220 -0
- package/dist/core/trust-manager.js.map +1 -0
- package/dist/daemon/cli.d.ts +8 -0
- package/dist/daemon/cli.d.ts.map +1 -0
- package/dist/daemon/cli.js +468 -0
- package/dist/daemon/cli.js.map +1 -0
- package/dist/daemon/control-client.d.ts +60 -0
- package/dist/daemon/control-client.d.ts.map +1 -0
- package/dist/daemon/control-client.js +411 -0
- package/dist/daemon/control-client.js.map +1 -0
- package/dist/daemon/control-protocol.d.ts +507 -0
- package/dist/daemon/control-protocol.d.ts.map +1 -0
- package/dist/daemon/control-protocol.js +395 -0
- package/dist/daemon/control-protocol.js.map +1 -0
- package/dist/daemon/control-server.d.ts +77 -0
- package/dist/daemon/control-server.d.ts.map +1 -0
- package/dist/daemon/control-server.js +327 -0
- package/dist/daemon/control-server.js.map +1 -0
- package/dist/daemon/conversation-commands.d.ts +176 -0
- package/dist/daemon/conversation-commands.d.ts.map +1 -0
- package/dist/daemon/conversation-commands.js +1268 -0
- package/dist/daemon/conversation-commands.js.map +1 -0
- package/dist/daemon/daemon-lock.d.ts +27 -0
- package/dist/daemon/daemon-lock.d.ts.map +1 -0
- package/dist/daemon/daemon-lock.js +238 -0
- package/dist/daemon/daemon-lock.js.map +1 -0
- package/dist/daemon/handshake-responses.d.ts +47 -0
- package/dist/daemon/handshake-responses.d.ts.map +1 -0
- package/dist/daemon/handshake-responses.js +113 -0
- package/dist/daemon/handshake-responses.js.map +1 -0
- package/dist/daemon/integrated-runtimes.d.ts +137 -0
- package/dist/daemon/integrated-runtimes.d.ts.map +1 -0
- package/dist/daemon/integrated-runtimes.js +763 -0
- package/dist/daemon/integrated-runtimes.js.map +1 -0
- package/dist/daemon/iroh-native.d.ts +76 -0
- package/dist/daemon/iroh-native.d.ts.map +1 -0
- package/dist/daemon/iroh-native.js +18 -0
- package/dist/daemon/iroh-native.js.map +1 -0
- package/dist/daemon/iroh-resource-guard.d.ts +57 -0
- package/dist/daemon/iroh-resource-guard.d.ts.map +1 -0
- package/dist/daemon/iroh-resource-guard.js +134 -0
- package/dist/daemon/iroh-resource-guard.js.map +1 -0
- package/dist/daemon/iroh-service.d.ts +51 -0
- package/dist/daemon/iroh-service.d.ts.map +1 -0
- package/dist/daemon/iroh-service.js +2604 -0
- package/dist/daemon/iroh-service.js.map +1 -0
- package/dist/daemon/keep-awake.d.ts +62 -0
- package/dist/daemon/keep-awake.d.ts.map +1 -0
- package/dist/daemon/keep-awake.js +190 -0
- package/dist/daemon/keep-awake.js.map +1 -0
- package/dist/daemon/lease-broker.d.ts +139 -0
- package/dist/daemon/lease-broker.d.ts.map +1 -0
- package/dist/daemon/lease-broker.js +504 -0
- package/dist/daemon/lease-broker.js.map +1 -0
- package/dist/daemon/log.d.ts +16 -0
- package/dist/daemon/log.d.ts.map +1 -0
- package/dist/daemon/log.js +40 -0
- package/dist/daemon/log.js.map +1 -0
- package/dist/daemon/main.d.ts +70 -0
- package/dist/daemon/main.d.ts.map +1 -0
- package/dist/daemon/main.js +781 -0
- package/dist/daemon/main.js.map +1 -0
- package/dist/daemon/paths.d.ts +32 -0
- package/dist/daemon/paths.d.ts.map +1 -0
- package/dist/daemon/paths.js +208 -0
- package/dist/daemon/paths.js.map +1 -0
- package/dist/daemon/process-identity.d.ts +58 -0
- package/dist/daemon/process-identity.d.ts.map +1 -0
- package/dist/daemon/process-identity.js +185 -0
- package/dist/daemon/process-identity.js.map +1 -0
- package/dist/daemon/relay-stream.d.ts +89 -0
- package/dist/daemon/relay-stream.d.ts.map +1 -0
- package/dist/daemon/relay-stream.js +202 -0
- package/dist/daemon/relay-stream.js.map +1 -0
- package/dist/daemon/remote-cli.d.ts +7 -0
- package/dist/daemon/remote-cli.d.ts.map +1 -0
- package/dist/daemon/remote-cli.js +774 -0
- package/dist/daemon/remote-cli.js.map +1 -0
- package/dist/daemon/service-install.d.ts +43 -0
- package/dist/daemon/service-install.d.ts.map +1 -0
- package/dist/daemon/service-install.js +198 -0
- package/dist/daemon/service-install.js.map +1 -0
- package/dist/daemon/session-target.d.ts +62 -0
- package/dist/daemon/session-target.d.ts.map +1 -0
- package/dist/daemon/session-target.js +66 -0
- package/dist/daemon/session-target.js.map +1 -0
- package/dist/daemon/spawn.d.ts +53 -0
- package/dist/daemon/spawn.d.ts.map +1 -0
- package/dist/daemon/spawn.js +205 -0
- package/dist/daemon/spawn.js.map +1 -0
- package/dist/daemon/state.d.ts +145 -0
- package/dist/daemon/state.d.ts.map +1 -0
- package/dist/daemon/state.js +454 -0
- package/dist/daemon/state.js.map +1 -0
- package/dist/daemon/theme-push.d.ts +23 -0
- package/dist/daemon/theme-push.d.ts.map +1 -0
- package/dist/daemon/theme-push.js +30 -0
- package/dist/daemon/theme-push.js.map +1 -0
- package/dist/daemon/viewer-feed.d.ts +42 -0
- package/dist/daemon/viewer-feed.d.ts.map +1 -0
- package/dist/daemon/viewer-feed.js +138 -0
- package/dist/daemon/viewer-feed.js.map +1 -0
- package/dist/daemon/workspace-directory.d.ts +35 -0
- package/dist/daemon/workspace-directory.d.ts.map +1 -0
- package/dist/daemon/workspace-directory.js +105 -0
- package/dist/daemon/workspace-directory.js.map +1 -0
- package/dist/daemon/workspace-streams.d.ts +70 -0
- package/dist/daemon/workspace-streams.d.ts.map +1 -0
- package/dist/daemon/workspace-streams.js +289 -0
- package/dist/daemon/workspace-streams.js.map +1 -0
- package/dist/daemon/worktree-manager.d.ts +219 -0
- package/dist/daemon/worktree-manager.d.ts.map +1 -0
- package/dist/daemon/worktree-manager.js +1204 -0
- package/dist/daemon/worktree-manager.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +12 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +773 -0
- package/dist/main.js.map +1 -0
- package/dist/mcp-cli.d.ts +6 -0
- package/dist/mcp-cli.d.ts.map +1 -0
- package/dist/mcp-cli.js +347 -0
- package/dist/mcp-cli.js.map +1 -0
- package/dist/migrations.d.ts +33 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +281 -0
- package/dist/migrations.js.map +1 -0
- package/dist/modes/index.d.ts +13 -0
- package/dist/modes/index.d.ts.map +1 -0
- package/dist/modes/index.js +12 -0
- package/dist/modes/index.js.map +1 -0
- package/dist/modes/interactive/components/armin.d.ts +34 -0
- package/dist/modes/interactive/components/armin.d.ts.map +1 -0
- package/dist/modes/interactive/components/armin.js +333 -0
- package/dist/modes/interactive/components/armin.js.map +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts +22 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/assistant-message.js +129 -0
- package/dist/modes/interactive/components/assistant-message.js.map +1 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +39 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/bash-execution.js +212 -0
- package/dist/modes/interactive/components/bash-execution.js.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts +17 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.js +57 -0
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.js +44 -0
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/config-selector.d.ts +71 -0
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/config-selector.js +510 -0
- package/dist/modes/interactive/components/config-selector.js.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.js +33 -0
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
- package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-editor.js +70 -0
- package/dist/modes/interactive/components/custom-editor.js.map +1 -0
- package/dist/modes/interactive/components/custom-message.d.ts +20 -0
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-message.js +76 -0
- package/dist/modes/interactive/components/custom-message.js.map +1 -0
- package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
- package/dist/modes/interactive/components/daxnuts.js +140 -0
- package/dist/modes/interactive/components/daxnuts.js.map +1 -0
- package/dist/modes/interactive/components/diff.d.ts +12 -0
- package/dist/modes/interactive/components/diff.d.ts.map +1 -0
- package/dist/modes/interactive/components/diff.js +133 -0
- package/dist/modes/interactive/components/diff.js.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.js +21 -0
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +20 -0
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-editor.js +116 -0
- package/dist/modes/interactive/components/extension-editor.js.map +1 -0
- package/dist/modes/interactive/components/extension-input.d.ts +23 -0
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-input.js +61 -0
- package/dist/modes/interactive/components/extension-input.js.map +1 -0
- package/dist/modes/interactive/components/extension-selector.d.ts +27 -0
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-selector.js +98 -0
- package/dist/modes/interactive/components/extension-selector.js.map +1 -0
- 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 +27 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -0
- package/dist/modes/interactive/components/footer.js +180 -0
- package/dist/modes/interactive/components/footer.js.map +1 -0
- package/dist/modes/interactive/components/hotkeys.d.ts +24 -0
- package/dist/modes/interactive/components/hotkeys.d.ts.map +1 -0
- package/dist/modes/interactive/components/hotkeys.js +97 -0
- package/dist/modes/interactive/components/hotkeys.js.map +1 -0
- package/dist/modes/interactive/components/index.d.ts +35 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -0
- package/dist/modes/interactive/components/index.js +36 -0
- package/dist/modes/interactive/components/index.js.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts +19 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.js +48 -0
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +52 -0
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
- package/dist/modes/interactive/components/login-dialog.js +179 -0
- package/dist/modes/interactive/components/login-dialog.js.map +1 -0
- package/dist/modes/interactive/components/logo.d.ts +25 -0
- package/dist/modes/interactive/components/logo.d.ts.map +1 -0
- package/dist/modes/interactive/components/logo.js +89 -0
- package/dist/modes/interactive/components/logo.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +47 -0
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/model-selector.js +278 -0
- package/dist/modes/interactive/components/model-selector.js.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts +31 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.js +165 -0
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
- package/dist/modes/interactive/components/remote-control-center.d.ts +110 -0
- package/dist/modes/interactive/components/remote-control-center.d.ts.map +1 -0
- package/dist/modes/interactive/components/remote-control-center.js +1217 -0
- package/dist/modes/interactive/components/remote-control-center.js.map +1 -0
- package/dist/modes/interactive/components/review-tools-selector.d.ts +24 -0
- package/dist/modes/interactive/components/review-tools-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/review-tools-selector.js +93 -0
- package/dist/modes/interactive/components/review-tools-selector.js.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.js +290 -0
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.js +155 -0
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
- package/dist/modes/interactive/components/session-selector.d.ts +95 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector.js +856 -0
- package/dist/modes/interactive/components/session-selector.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +77 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-selector.js +484 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.js +39 -0
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
- package/dist/modes/interactive/components/streaming-render-coalescer.d.ts +29 -0
- package/dist/modes/interactive/components/streaming-render-coalescer.d.ts.map +1 -0
- package/dist/modes/interactive/components/streaming-render-coalescer.js +98 -0
- package/dist/modes/interactive/components/streaming-render-coalescer.js.map +1 -0
- package/dist/modes/interactive/components/subagent-inspector.d.ts +32 -0
- package/dist/modes/interactive/components/subagent-inspector.d.ts.map +1 -0
- package/dist/modes/interactive/components/subagent-inspector.js +439 -0
- package/dist/modes/interactive/components/subagent-inspector.js.map +1 -0
- package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/theme-selector.js +50 -0
- package/dist/modes/interactive/components/theme-selector.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.js +52 -0
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +83 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-execution.js +421 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +89 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-selector.js +1208 -0
- package/dist/modes/interactive/components/tree-selector.js.map +1 -0
- 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 +30 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.js +114 -0
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +9 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message.js +42 -0
- package/dist/modes/interactive/components/user-message.js.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.js +33 -0
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
- package/dist/modes/interactive/components/volt-announcement.d.ts +5 -0
- package/dist/modes/interactive/components/volt-announcement.d.ts.map +1 -0
- package/dist/modes/interactive/components/volt-announcement.js +15 -0
- package/dist/modes/interactive/components/volt-announcement.js.map +1 -0
- package/dist/modes/interactive/daemon-attach.d.ts +154 -0
- package/dist/modes/interactive/daemon-attach.d.ts.map +1 -0
- package/dist/modes/interactive/daemon-attach.js +552 -0
- package/dist/modes/interactive/daemon-attach.js.map +1 -0
- package/dist/modes/interactive/drain-viewer.d.ts +31 -0
- package/dist/modes/interactive/drain-viewer.d.ts.map +1 -0
- package/dist/modes/interactive/drain-viewer.js +166 -0
- package/dist/modes/interactive/drain-viewer.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +502 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-mode.js +7007 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -0
- package/dist/modes/interactive/prompt-image-attachments.d.ts +34 -0
- package/dist/modes/interactive/prompt-image-attachments.d.ts.map +1 -0
- package/dist/modes/interactive/prompt-image-attachments.js +120 -0
- package/dist/modes/interactive/prompt-image-attachments.js.map +1 -0
- package/dist/modes/interactive/relay-stream-adapter.d.ts +19 -0
- package/dist/modes/interactive/relay-stream-adapter.d.ts.map +1 -0
- package/dist/modes/interactive/relay-stream-adapter.js +107 -0
- package/dist/modes/interactive/relay-stream-adapter.js.map +1 -0
- package/dist/modes/print-mode.d.ts +28 -0
- package/dist/modes/print-mode.d.ts.map +1 -0
- package/dist/modes/print-mode.js +132 -0
- package/dist/modes/print-mode.js.map +1 -0
- package/dist/modes/rpc/in-process-rpc-client.d.ts +31 -0
- package/dist/modes/rpc/in-process-rpc-client.d.ts.map +1 -0
- package/dist/modes/rpc/in-process-rpc-client.js +63 -0
- package/dist/modes/rpc/in-process-rpc-client.js.map +1 -0
- package/dist/modes/rpc/iroh-remote-agent-runtime.d.ts +61 -0
- package/dist/modes/rpc/iroh-remote-agent-runtime.d.ts.map +1 -0
- package/dist/modes/rpc/iroh-remote-agent-runtime.js +155 -0
- package/dist/modes/rpc/iroh-remote-agent-runtime.js.map +1 -0
- package/dist/modes/rpc/iroh-remote-rpc-mode.d.ts +69 -0
- package/dist/modes/rpc/iroh-remote-rpc-mode.d.ts.map +1 -0
- package/dist/modes/rpc/iroh-remote-rpc-mode.js +1223 -0
- package/dist/modes/rpc/iroh-remote-rpc-mode.js.map +1 -0
- package/dist/modes/rpc/jsonl.d.ts +2 -0
- package/dist/modes/rpc/jsonl.d.ts.map +1 -0
- package/dist/modes/rpc/jsonl.js +2 -0
- package/dist/modes/rpc/jsonl.js.map +1 -0
- package/dist/modes/rpc/rpc-client-base.d.ts +209 -0
- package/dist/modes/rpc/rpc-client-base.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-client-base.js +530 -0
- package/dist/modes/rpc/rpc-client-base.js.map +1 -0
- package/dist/modes/rpc/rpc-client.d.ts +50 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-client.js +190 -0
- package/dist/modes/rpc/rpc-client.js.map +1 -0
- package/dist/modes/rpc/rpc-command-dispatcher.d.ts +43 -0
- package/dist/modes/rpc/rpc-command-dispatcher.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-command-dispatcher.js +613 -0
- package/dist/modes/rpc/rpc-command-dispatcher.js.map +1 -0
- package/dist/modes/rpc/rpc-command-validation.d.ts +2 -0
- package/dist/modes/rpc/rpc-command-validation.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-command-validation.js +207 -0
- package/dist/modes/rpc/rpc-command-validation.js.map +1 -0
- package/dist/modes/rpc/rpc-mode.d.ts +48 -0
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-mode.js +1089 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-transport-client.d.ts +26 -0
- package/dist/modes/rpc/rpc-transport-client.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-transport-client.js +76 -0
- package/dist/modes/rpc/rpc-transport-client.js.map +1 -0
- package/dist/modes/rpc/rpc-types.d.ts +2 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-types.js +2 -0
- package/dist/modes/rpc/rpc-types.js.map +1 -0
- package/dist/package-manager-cli.d.ts +28 -0
- package/dist/package-manager-cli.d.ts.map +1 -0
- package/dist/package-manager-cli.js +667 -0
- package/dist/package-manager-cli.js.map +1 -0
- package/dist/remote/integrated-runtime-retention.d.ts +17 -0
- package/dist/remote/integrated-runtime-retention.d.ts.map +1 -0
- package/dist/remote/integrated-runtime-retention.js +62 -0
- package/dist/remote/integrated-runtime-retention.js.map +1 -0
- package/dist/remote/iroh-native-adapter.cjs +19 -0
- package/dist/sea/cli.d.ts +4 -0
- package/dist/sea/cli.d.ts.map +1 -0
- package/dist/sea/cli.js +4 -0
- package/dist/sea/cli.js.map +1 -0
- package/dist/sea/register-bedrock.d.ts +2 -0
- package/dist/sea/register-bedrock.d.ts.map +1 -0
- package/dist/sea/register-bedrock.js +4 -0
- package/dist/sea/register-bedrock.js.map +1 -0
- package/dist/store/catalog.d.ts +57 -0
- package/dist/store/catalog.d.ts.map +1 -0
- package/dist/store/catalog.js +331 -0
- package/dist/store/catalog.js.map +1 -0
- package/dist/store/inspector.d.ts +36 -0
- package/dist/store/inspector.d.ts.map +1 -0
- package/dist/store/inspector.js +578 -0
- package/dist/store/inspector.js.map +1 -0
- package/dist/store/install-plan.d.ts +26 -0
- package/dist/store/install-plan.d.ts.map +1 -0
- package/dist/store/install-plan.js +80 -0
- package/dist/store/install-plan.js.map +1 -0
- package/dist/store/render.d.ts +11 -0
- package/dist/store/render.d.ts.map +1 -0
- package/dist/store/render.js +153 -0
- package/dist/store/render.js.map +1 -0
- package/dist/store/resolver.d.ts +22 -0
- package/dist/store/resolver.d.ts.map +1 -0
- package/dist/store/resolver.js +207 -0
- package/dist/store/resolver.js.map +1 -0
- package/dist/store/store-cli.d.ts +7 -0
- package/dist/store/store-cli.d.ts.map +1 -0
- package/dist/store/store-cli.js +636 -0
- package/dist/store/store-cli.js.map +1 -0
- package/dist/store/targets.d.ts +21 -0
- package/dist/store/targets.d.ts.map +1 -0
- package/dist/store/targets.js +55 -0
- package/dist/store/targets.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 +22 -0
- package/dist/utils/changelog.d.ts.map +1 -0
- package/dist/utils/changelog.js +165 -0
- package/dist/utils/changelog.js.map +1 -0
- package/dist/utils/child-process.d.ts +18 -0
- package/dist/utils/child-process.d.ts.map +1 -0
- package/dist/utils/child-process.js +106 -0
- package/dist/utils/child-process.js.map +1 -0
- package/dist/utils/clipboard-image.d.ts +11 -0
- package/dist/utils/clipboard-image.d.ts.map +1 -0
- package/dist/utils/clipboard-image.js +245 -0
- package/dist/utils/clipboard-image.js.map +1 -0
- package/dist/utils/clipboard.d.ts +2 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +94 -0
- package/dist/utils/clipboard.js.map +1 -0
- 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/durable-atomic-write.d.ts +46 -0
- package/dist/utils/durable-atomic-write.d.ts.map +1 -0
- package/dist/utils/durable-atomic-write.js +104 -0
- package/dist/utils/durable-atomic-write.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +8 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +26 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/fs-watch.d.ts +5 -0
- package/dist/utils/fs-watch.d.ts.map +1 -0
- package/dist/utils/fs-watch.js +25 -0
- package/dist/utils/fs-watch.js.map +1 -0
- package/dist/utils/git.d.ts +26 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +195 -0
- package/dist/utils/git.js.map +1 -0
- 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/ignore-files.d.ts +5 -0
- package/dist/utils/ignore-files.d.ts.map +1 -0
- package/dist/utils/ignore-files.js +58 -0
- package/dist/utils/ignore-files.js.map +1 -0
- package/dist/utils/image-codec.d.ts +22 -0
- package/dist/utils/image-codec.d.ts.map +1 -0
- package/dist/utils/image-codec.js +35 -0
- package/dist/utils/image-codec.js.map +1 -0
- package/dist/utils/image-convert.d.ts +9 -0
- package/dist/utils/image-convert.d.ts.map +1 -0
- package/dist/utils/image-convert.js +26 -0
- package/dist/utils/image-convert.js.map +1 -0
- package/dist/utils/image-resize-core.d.ts +31 -0
- package/dist/utils/image-resize-core.d.ts.map +1 -0
- package/dist/utils/image-resize-core.js +181 -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 +15 -0
- package/dist/utils/image-resize.d.ts.map +1 -0
- package/dist/utils/image-resize.js +92 -0
- package/dist/utils/image-resize.js.map +1 -0
- 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/mime.d.ts +3 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +69 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/npm-spec.d.ts +9 -0
- package/dist/utils/npm-spec.d.ts.map +1 -0
- package/dist/utils/npm-spec.js +15 -0
- package/dist/utils/npm-spec.js.map +1 -0
- 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 +31 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +92 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/private-files.d.ts +21 -0
- package/dist/utils/private-files.d.ts.map +1 -0
- package/dist/utils/private-files.js +103 -0
- package/dist/utils/private-files.js.map +1 -0
- package/dist/utils/process-env.d.ts +2 -0
- package/dist/utils/process-env.d.ts.map +1 -0
- package/dist/utils/process-env.js +31 -0
- package/dist/utils/process-env.js.map +1 -0
- package/dist/utils/shell.d.ts +30 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +195 -0
- package/dist/utils/shell.js.map +1 -0
- package/dist/utils/sleep.d.ts +5 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/sleep.js +17 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/utils/syntax-highlight.d.ts +18 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -0
- package/dist/utils/syntax-highlight.js +139 -0
- package/dist/utils/syntax-highlight.js.map +1 -0
- package/dist/utils/tools-manager.d.ts +3 -0
- package/dist/utils/tools-manager.d.ts.map +1 -0
- package/dist/utils/tools-manager.js +328 -0
- package/dist/utils/tools-manager.js.map +1 -0
- package/dist/utils/version-check.d.ts +15 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +61 -0
- package/dist/utils/version-check.js.map +1 -0
- package/dist/utils/volt-user-agent.d.ts +2 -0
- package/dist/utils/volt-user-agent.d.ts.map +1 -0
- package/dist/utils/volt-user-agent.js +5 -0
- package/dist/utils/volt-user-agent.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 +394 -0
- package/docs/containerization.md +111 -0
- package/docs/custom-provider.md +737 -0
- package/docs/daemon.md +190 -0
- package/docs/development.md +70 -0
- package/docs/docs.json +176 -0
- package/docs/extensions.md +2692 -0
- package/docs/images/exy.png +0 -0
- package/docs/images/interactive-mode.png +0 -0
- package/docs/images/tree-view.png +0 -0
- package/docs/index.md +82 -0
- package/docs/iroh-remote-access-design.md +340 -0
- package/docs/iroh-remote-protocol.md +431 -0
- package/docs/json.md +87 -0
- package/docs/keybindings.md +200 -0
- package/docs/live-shared-session-daemon-design.md +1090 -0
- package/docs/lsp.md +143 -0
- package/docs/mcp.md +1044 -0
- package/docs/models.md +495 -0
- package/docs/packages.md +230 -0
- package/docs/prompt-templates.md +108 -0
- package/docs/providers.md +274 -0
- package/docs/quickstart.md +165 -0
- package/docs/rpc.md +2050 -0
- package/docs/sdk.md +1267 -0
- package/docs/security.md +139 -0
- package/docs/session-format.md +412 -0
- package/docs/sessions.md +145 -0
- package/docs/settings.md +371 -0
- package/docs/shell-aliases.md +13 -0
- package/docs/skills.md +243 -0
- package/docs/subagents-design.md +419 -0
- package/docs/terminal-setup.md +148 -0
- package/docs/termux.md +127 -0
- package/docs/themes.md +295 -0
- package/docs/tla/ClientAuth.cfg +16 -0
- package/docs/tla/ClientAuth.tla +205 -0
- package/docs/tla/ClientConn.cfg +16 -0
- package/docs/tla/ClientConn.tla +265 -0
- package/docs/tla/LeaseBroker.cfg +43 -0
- package/docs/tla/LeaseBroker.tla +563 -0
- package/docs/tla/PLAN.md +240 -0
- package/docs/tla/PushOrdering.cfg +17 -0
- package/docs/tla/PushOrdering.tla +183 -0
- package/docs/tla/README.md +205 -0
- package/docs/tla/RelayViewer.cfg +26 -0
- package/docs/tla/RelayViewer.tla +299 -0
- package/docs/tla/SessionTarget.cfg +18 -0
- package/docs/tla/SessionTarget.tla +192 -0
- package/docs/tla/check.sh +34 -0
- package/docs/tmux.md +63 -0
- package/docs/tui.md +949 -0
- package/docs/usage.md +482 -0
- package/docs/windows.md +17 -0
- package/docs/worktrees-design.md +605 -0
- package/examples/README.md +28 -0
- package/examples/extensions/README.md +211 -0
- package/examples/extensions/auto-commit-on-exit.ts +49 -0
- package/examples/extensions/bash-spawn-hook.ts +30 -0
- package/examples/extensions/bookmark.ts +50 -0
- package/examples/extensions/border-status-editor.ts +150 -0
- package/examples/extensions/built-in-tool-renderer.ts +249 -0
- package/examples/extensions/claude-rules.ts +86 -0
- package/examples/extensions/commands.ts +72 -0
- package/examples/extensions/confirm-destructive.ts +59 -0
- package/examples/extensions/custom-compaction.ts +127 -0
- package/examples/extensions/custom-footer.ts +64 -0
- package/examples/extensions/custom-header.ts +72 -0
- package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
- package/examples/extensions/custom-provider-anthropic/package.json +19 -0
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +400 -0
- package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
- package/examples/extensions/dirty-repo-guard.ts +56 -0
- package/examples/extensions/dynamic-resources/SKILL.md +8 -0
- package/examples/extensions/dynamic-resources/dynamic.json +79 -0
- package/examples/extensions/dynamic-resources/dynamic.md +5 -0
- package/examples/extensions/dynamic-resources/index.ts +15 -0
- package/examples/extensions/dynamic-tools.ts +74 -0
- package/examples/extensions/event-bus.ts +43 -0
- package/examples/extensions/file-trigger.ts +41 -0
- package/examples/extensions/git-checkpoint.ts +53 -0
- package/examples/extensions/git-merge-and-resolve.ts +115 -0
- package/examples/extensions/github-issue-autocomplete.ts +185 -0
- 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 +191 -0
- package/examples/extensions/hello.ts +26 -0
- package/examples/extensions/hidden-thinking-label.ts +53 -0
- package/examples/extensions/inline-bash.ts +94 -0
- package/examples/extensions/input-transform-streaming.ts +39 -0
- package/examples/extensions/input-transform.ts +43 -0
- package/examples/extensions/interactive-shell.ts +196 -0
- package/examples/extensions/mac-system-theme.ts +47 -0
- package/examples/extensions/message-renderer.ts +59 -0
- package/examples/extensions/minimal-mode.ts +426 -0
- package/examples/extensions/modal-editor.ts +85 -0
- package/examples/extensions/model-status.ts +31 -0
- package/examples/extensions/notify.ts +55 -0
- package/examples/extensions/overlay-qa-tests.ts +1450 -0
- package/examples/extensions/overlay-test.ts +153 -0
- package/examples/extensions/permission-gate.ts +34 -0
- package/examples/extensions/pirate.ts +47 -0
- package/examples/extensions/plan-mode/README.md +65 -0
- package/examples/extensions/plan-mode/index.ts +340 -0
- package/examples/extensions/plan-mode/utils.ts +168 -0
- package/examples/extensions/preset.ts +436 -0
- package/examples/extensions/project-trust.ts +64 -0
- package/examples/extensions/prompt-customizer.ts +97 -0
- package/examples/extensions/protected-paths.ts +30 -0
- package/examples/extensions/provider-payload.ts +18 -0
- package/examples/extensions/qna.ts +122 -0
- package/examples/extensions/question.ts +277 -0
- package/examples/extensions/questionnaire.ts +440 -0
- package/examples/extensions/rainbow-editor.ts +88 -0
- package/examples/extensions/reload-runtime.ts +37 -0
- package/examples/extensions/rpc-demo.ts +118 -0
- package/examples/extensions/sandbox/index.ts +321 -0
- package/examples/extensions/sandbox/package-lock.json +92 -0
- package/examples/extensions/sandbox/package.json +19 -0
- package/examples/extensions/send-user-message.ts +97 -0
- package/examples/extensions/session-name.ts +27 -0
- package/examples/extensions/shutdown-command.ts +63 -0
- package/examples/extensions/snake.ts +343 -0
- package/examples/extensions/space-invaders.ts +560 -0
- package/examples/extensions/ssh.ts +220 -0
- package/examples/extensions/status-line.ts +32 -0
- package/examples/extensions/structured-output.ts +65 -0
- package/examples/extensions/subagent/README.md +175 -0
- package/examples/extensions/subagent/agents/planner.md +37 -0
- package/examples/extensions/subagent/agents/reviewer.md +35 -0
- package/examples/extensions/subagent/agents/scout.md +50 -0
- package/examples/extensions/subagent/agents/worker.md +24 -0
- package/examples/extensions/subagent/agents.ts +126 -0
- package/examples/extensions/subagent/index.ts +1009 -0
- package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
- package/examples/extensions/subagent/prompts/implement.md +10 -0
- package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
- package/examples/extensions/summarize.ts +206 -0
- package/examples/extensions/system-prompt-header.ts +17 -0
- package/examples/extensions/tic-tac-toe.ts +1008 -0
- package/examples/extensions/timed-confirm.ts +70 -0
- package/examples/extensions/titlebar-spinner.ts +58 -0
- package/examples/extensions/todo.ts +297 -0
- package/examples/extensions/tool-override.ts +144 -0
- package/examples/extensions/tools.ts +146 -0
- package/examples/extensions/trigger-compact.ts +50 -0
- package/examples/extensions/truncated-tool.ts +195 -0
- package/examples/extensions/widget-placement.ts +9 -0
- package/examples/extensions/with-deps/index.ts +32 -0
- package/examples/extensions/with-deps/package-lock.json +31 -0
- package/examples/extensions/with-deps/package.json +22 -0
- package/examples/extensions/working-indicator.ts +123 -0
- package/examples/extensions/working-message-test.ts +25 -0
- package/examples/remote/firebase-push-relay/README.md +79 -0
- package/examples/remote/firebase-push-relay/firebase.json +12 -0
- package/examples/remote/firebase-push-relay/firestore.indexes.json +11 -0
- package/examples/remote/firebase-push-relay/firestore.rules +9 -0
- package/examples/remote/firebase-push-relay/functions/core.js +511 -0
- package/examples/remote/firebase-push-relay/functions/core.test.js +273 -0
- package/examples/remote/firebase-push-relay/functions/index.js +413 -0
- package/examples/remote/firebase-push-relay/functions/package-lock.json +2974 -0
- package/examples/remote/firebase-push-relay/functions/package.json +18 -0
- package/examples/remote/iroh-sidecar/README.md +211 -0
- package/examples/remote/iroh-sidecar/client.mjs +554 -0
- package/examples/remote/iroh-sidecar/common.mjs +195 -0
- package/examples/remote/iroh-sidecar/host.mjs +4 -0
- package/examples/remote/iroh-sidecar/package-lock.json +213 -0
- package/examples/remote/iroh-sidecar/package.json +13 -0
- package/examples/remote/iroh-sidecar/source-aware-run.mjs +41 -0
- package/examples/rpc-extension-ui.ts +632 -0
- package/examples/sdk/01-minimal.ts +26 -0
- package/examples/sdk/02-custom-model.ts +53 -0
- package/examples/sdk/03-custom-prompt.ts +70 -0
- package/examples/sdk/04-skills.ts +55 -0
- package/examples/sdk/05-tools.ts +48 -0
- package/examples/sdk/06-extensions.ts +94 -0
- package/examples/sdk/07-context-files.ts +42 -0
- package/examples/sdk/08-prompt-templates.ts +51 -0
- package/examples/sdk/09-api-keys-and-oauth.ts +52 -0
- package/examples/sdk/10-settings.ts +53 -0
- package/examples/sdk/11-sessions.ts +52 -0
- package/examples/sdk/12-full-control.ts +78 -0
- package/examples/sdk/13-session-runtime.ts +67 -0
- package/examples/sdk/README.md +147 -0
- package/npm-shrinkwrap.json +3442 -0
- package/package.json +125 -19
package/docs/mcp.md
ADDED
|
@@ -0,0 +1,1044 @@
|
|
|
1
|
+
# Native MCP support
|
|
2
|
+
|
|
3
|
+
Status: native gateway MVP implemented; this document also captures the intended feature-complete direction for remaining UI, auth, and management work.
|
|
4
|
+
|
|
5
|
+
Implemented today:
|
|
6
|
+
|
|
7
|
+
- config loading from `~/.config/mcp/mcp.json`, `~/.volt/agent/mcp.json`, trusted project `.mcp.json`, and trusted project `.volt/mcp.json`
|
|
8
|
+
- one model-visible `mcp` gateway tool for status, server listing, cached search/describe, tool calls, resources, prompts (when enabled), and large-output cache reads
|
|
9
|
+
- stdio, Streamable HTTP, and legacy SSE transports through the official TypeScript MCP SDK
|
|
10
|
+
- project trust gating, restricted stdio env inheritance, include/exclude tool filters, output truncation/cache, metadata cache with stale refresh on detail/call paths, recent calls, audit logs, and local/RPC server status management
|
|
11
|
+
- `volt mcp` CLI inspection/management commands and lightweight `/mcp` interactive status/actions
|
|
12
|
+
- browser OAuth authorization-code + PKCE and OAuth device-code auth for HTTP/SSE MCP servers, with host-side token storage
|
|
13
|
+
- persisted enable/disable overlays in Volt-owned MCP config files
|
|
14
|
+
- optional direct tool promotion from fresh cached metadata via `directTools`
|
|
15
|
+
- MCP lifecycle event streaming (`mcp_events.v1`): the manager emits `mcp_servers_changed`, `mcp_server_status_changed`, `mcp_auth_request`, `mcp_auth_update`, and `mcp_call_start`/`mcp_call_update`/`mcp_call_end` through the AgentSession event stream, so TUI, RPC, daemon, and mobile clients observe MCP state without polling; the iOS app routes these into live server/auth/call state
|
|
16
|
+
- iOS MCP surfaces: a host-approval card for pushed auth requests (mirroring LSP install approvals), live active-call display in the MCP servers view, and chat transcript tool cards that render gateway and direct-tool calls as `mcp <server>.<tool>` with risk, truncation, and cache-id visibility
|
|
17
|
+
|
|
18
|
+
Not yet implemented from the roadmap sections below: full-screen `/mcp` TUI manager and direct-tool metadata demotion UI.
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
|
|
22
|
+
Volt should ship MCP as a core capability, not as a third-party extension. The default model is a token-efficient gateway: Volt exposes one native `mcp` tool to the model, manages configured MCP servers itself, and lets the model search, inspect, and call MCP tools through that gateway. Volt should not register every upstream MCP tool directly by default.
|
|
23
|
+
|
|
24
|
+
This gives Volt MCP support that works across all tool-capable providers. It avoids provider-specific lazy-tool features such as Claude Code Tool Search, while preserving the same core benefit: upstream tool definitions are loaded only when needed.
|
|
25
|
+
|
|
26
|
+
Prior art:
|
|
27
|
+
|
|
28
|
+
- Pi `pi-mcp-adapter` uses one proxy tool with search, describe, call, lazy server startup, cached metadata, and optional direct tools: <https://pi.dev/packages/pi-mcp-adapter>
|
|
29
|
+
- `@spences10/pi-mcp` emphasizes project trust, restricted child environments, large-output handling, status UI, and server management: <https://pi.dev/packages/%40spences10/pi-mcp>
|
|
30
|
+
- Claude Code Tool Search defers MCP tools and loads only needed definitions, but relies on provider/model support for `tool_reference`: <https://code.claude.com/docs/en/mcp>
|
|
31
|
+
- Goose Code Mode uses a small set of meta-tools for on-demand discovery and programmatic execution: <https://goose-docs.ai/docs/guides/managing-tools/code-mode/>
|
|
32
|
+
- MCPProxy's retrieve/call routing modes validate the proxy pattern for large tool sets: <https://docs.mcpproxy.app/features/routing-modes/>
|
|
33
|
+
- Official TypeScript SDK v1 provides `Client`, `StdioClientTransport`, `StreamableHTTPClientTransport`, and legacy `SSEClientTransport`: <https://ts.sdk.modelcontextprotocol.io/client>
|
|
34
|
+
|
|
35
|
+
## Goals
|
|
36
|
+
|
|
37
|
+
- Add native MCP server support to Volt.
|
|
38
|
+
- Make the default integration token-efficient by exposing one `mcp` gateway tool, not all MCP tools.
|
|
39
|
+
- Support local stdio MCP servers and remote Streamable HTTP MCP servers.
|
|
40
|
+
- Support legacy SSE only as a compatibility path.
|
|
41
|
+
- Let TUI, print/json, RPC, daemon, and mobile clients understand MCP state.
|
|
42
|
+
- Let mobile clients see and manage MCP servers connected to the selected agent/session.
|
|
43
|
+
- Respect Volt project trust before loading project-local executable MCP configuration.
|
|
44
|
+
- Treat MCP tool metadata, results, resources, and prompts as untrusted content.
|
|
45
|
+
- Provide first-class auth, tool filtering, audit, output truncation, and large-output retrieval.
|
|
46
|
+
|
|
47
|
+
## Non-goals
|
|
48
|
+
|
|
49
|
+
- Do not require users to install a separate MCP extension.
|
|
50
|
+
- Do not register every upstream MCP tool directly by default.
|
|
51
|
+
- Do not make provider-specific tool search a requirement.
|
|
52
|
+
- Do not let mobile clients add arbitrary local stdio commands.
|
|
53
|
+
- Do not treat MCP resources or prompts as trusted instructions.
|
|
54
|
+
- Do not silently inherit ambient host secrets into MCP stdio processes.
|
|
55
|
+
|
|
56
|
+
## Product UX
|
|
57
|
+
|
|
58
|
+
### TUI
|
|
59
|
+
|
|
60
|
+
Add a native `/mcp` command that opens a server manager.
|
|
61
|
+
|
|
62
|
+
The server manager shows:
|
|
63
|
+
|
|
64
|
+
- configured server id and display name
|
|
65
|
+
- config source: user shared, user Volt, project shared, project Volt
|
|
66
|
+
- enabled or disabled
|
|
67
|
+
- transport: stdio, Streamable HTTP, or SSE
|
|
68
|
+
- lifecycle: lazy, eager, or keep-alive
|
|
69
|
+
- status: untrusted, cold, connecting, connected, ready, needs auth, error, disconnected
|
|
70
|
+
- cached and live tool counts
|
|
71
|
+
- resource and prompt counts
|
|
72
|
+
- last error
|
|
73
|
+
- last connected time
|
|
74
|
+
- recent calls
|
|
75
|
+
- available actions
|
|
76
|
+
|
|
77
|
+
Actions:
|
|
78
|
+
|
|
79
|
+
- enable or disable server
|
|
80
|
+
- connect or disconnect
|
|
81
|
+
- refresh metadata
|
|
82
|
+
- start auth
|
|
83
|
+
- inspect tools/resources/prompts
|
|
84
|
+
- view recent calls
|
|
85
|
+
- open config file
|
|
86
|
+
- promote selected tools to direct native tools only after an explicit token-budget warning
|
|
87
|
+
|
|
88
|
+
Startup/header behavior:
|
|
89
|
+
|
|
90
|
+
- Show that MCP is enabled when configured.
|
|
91
|
+
- Show ignored project-local MCP config when project trust is not granted.
|
|
92
|
+
- Show auth/error counts compactly.
|
|
93
|
+
|
|
94
|
+
Footer/status behavior:
|
|
95
|
+
|
|
96
|
+
```text
|
|
97
|
+
MCP 4 configured / 1 connected / 1 auth
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Tool rendering:
|
|
101
|
+
|
|
102
|
+
- `mcp` calls render as `mcp <server>.<tool>` when the action is a tool call.
|
|
103
|
+
- Search and describe calls render as compact discovery events.
|
|
104
|
+
- Results default to a small summary with expandable details.
|
|
105
|
+
- Truncation and sidecar/cache ids are visible.
|
|
106
|
+
|
|
107
|
+
### Print, JSON, and RPC modes
|
|
108
|
+
|
|
109
|
+
- Load global MCP config and trusted project MCP config only.
|
|
110
|
+
- Do not prompt for project trust in non-interactive modes; follow existing `defaultProjectTrust`, `--approve`, and `--no-approve` behavior.
|
|
111
|
+
- Do not apply nested MCP tool approvals. If the top-level `mcp` tool is available and the exact server/tool passes include/exclude filters, the call executes.
|
|
112
|
+
- JSON/RPC event streams include MCP status, auth, and call lifecycle events.
|
|
113
|
+
|
|
114
|
+
### Daemon and mobile
|
|
115
|
+
|
|
116
|
+
The mobile app should be able to inspect and manage MCP for a selected workspace/session through RPC/daemon APIs.
|
|
117
|
+
|
|
118
|
+
Mobile views:
|
|
119
|
+
|
|
120
|
+
- MCP server list for the selected agent/session
|
|
121
|
+
- server details with sanitized command/URL display
|
|
122
|
+
- enabled/disabled state
|
|
123
|
+
- connection/auth/error state
|
|
124
|
+
- tool/resource/prompt counts
|
|
125
|
+
- recent calls and audit summaries
|
|
126
|
+
- connect/disconnect/refresh/auth actions where allowed
|
|
127
|
+
|
|
128
|
+
Mobile must not store MCP credentials. OAuth tokens, bearer tokens, and env secrets stay on the host. Mobile can participate in auth flows by displaying a URL/device code and sending completion/cancel events back to the host.
|
|
129
|
+
|
|
130
|
+
Mobile must not add or edit arbitrary stdio commands by default. It can enable, disable, connect, disconnect, refresh, and authenticate servers already present in trusted host config, subject to the remote-safe command allowlist.
|
|
131
|
+
|
|
132
|
+
## Config model
|
|
133
|
+
|
|
134
|
+
### File locations
|
|
135
|
+
|
|
136
|
+
Support shared ecosystem config plus Volt-owned config. Load in this precedence order, lowest to highest:
|
|
137
|
+
|
|
138
|
+
1. `~/.config/mcp/mcp.json` — shared user MCP config.
|
|
139
|
+
2. `~/.volt/agent/mcp.json` — Volt user MCP config.
|
|
140
|
+
3. `.mcp.json` — shared project MCP config.
|
|
141
|
+
4. `.volt/mcp.json` — Volt project MCP config.
|
|
142
|
+
|
|
143
|
+
Volt should write only Volt-owned files by default:
|
|
144
|
+
|
|
145
|
+
- user writes go to `~/.volt/agent/mcp.json`
|
|
146
|
+
- project writes go to `.volt/mcp.json`
|
|
147
|
+
|
|
148
|
+
Editing shared files requires an explicit command or UI choice.
|
|
149
|
+
|
|
150
|
+
### Example
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"version": 1,
|
|
155
|
+
"settings": {
|
|
156
|
+
"enabled": true,
|
|
157
|
+
"mode": "proxy",
|
|
158
|
+
"idleTimeoutMs": 600000,
|
|
159
|
+
"connectTimeoutMs": 15000,
|
|
160
|
+
"callTimeoutMs": 600000,
|
|
161
|
+
"maxOutputBytes": 51200,
|
|
162
|
+
"maxOutputLines": 2000,
|
|
163
|
+
"directTools": false,
|
|
164
|
+
"resources": "explicit",
|
|
165
|
+
"prompts": "user-preview"
|
|
166
|
+
},
|
|
167
|
+
"servers": {
|
|
168
|
+
"github": {
|
|
169
|
+
"enabled": true,
|
|
170
|
+
"transport": "stdio",
|
|
171
|
+
"command": "npx",
|
|
172
|
+
"args": ["-y", "@modelcontextprotocol/server-github"],
|
|
173
|
+
"cwd": ".",
|
|
174
|
+
"env": {
|
|
175
|
+
"GITHUB_TOKEN": "${env:GITHUB_TOKEN}"
|
|
176
|
+
},
|
|
177
|
+
"lifecycle": "lazy",
|
|
178
|
+
"includeTools": [],
|
|
179
|
+
"excludeTools": []
|
|
180
|
+
},
|
|
181
|
+
"linear": {
|
|
182
|
+
"enabled": true,
|
|
183
|
+
"transport": "streamable-http",
|
|
184
|
+
"url": "https://mcp.linear.app/mcp",
|
|
185
|
+
"auth": { "type": "oauth" },
|
|
186
|
+
"lifecycle": "lazy"
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Server fields
|
|
193
|
+
|
|
194
|
+
Common fields:
|
|
195
|
+
|
|
196
|
+
- `enabled?: boolean`
|
|
197
|
+
- `transport?: "stdio" | "streamable-http" | "sse"`
|
|
198
|
+
- `lifecycle?: "lazy" | "eager" | "keep-alive"`
|
|
199
|
+
- `includeTools?: string[]`
|
|
200
|
+
- `excludeTools?: string[]`
|
|
201
|
+
- `directTools?: boolean | string[]`
|
|
202
|
+
- `connectTimeoutMs?: number`
|
|
203
|
+
- `callTimeoutMs?: number`
|
|
204
|
+
- `idleTimeoutMs?: number`
|
|
205
|
+
- `metadataRefreshMs?: number`
|
|
206
|
+
|
|
207
|
+
Stdio fields:
|
|
208
|
+
|
|
209
|
+
- `command: string`
|
|
210
|
+
- `args?: string[]`
|
|
211
|
+
- `cwd?: string`
|
|
212
|
+
- `env?: Record<string, string>`
|
|
213
|
+
- `envAllowlist?: string[]`
|
|
214
|
+
|
|
215
|
+
HTTP/SSE fields:
|
|
216
|
+
|
|
217
|
+
- `url: string`
|
|
218
|
+
- `headers?: Record<string, string>`
|
|
219
|
+
- `auth?: { type: "none" | "bearer" | "oauth" | "env"; ... }`
|
|
220
|
+
- OAuth auth also supports `flow?: "browser" | "device" | "auto"`, `scope?: string`, `clientId?: string`, `clientSecret?: string`, `clientMetadataUrl?: string`, `resourceMetadataUrl?: string`, and `tokenEndpointAuthMethod?: "client_secret_basic" | "client_secret_post" | "none"`.
|
|
221
|
+
|
|
222
|
+
### Merge rules
|
|
223
|
+
|
|
224
|
+
- `settings` merge like Volt settings: nested objects merge, arrays replace.
|
|
225
|
+
- `servers` merge by server id within the same trust scope (user-to-user, project-to-project).
|
|
226
|
+
- A project server definition with the same id as a user server replaces the user-scope definition instead of inheriting auth, headers, or env.
|
|
227
|
+
- A higher-precedence `enabled: false` disables an inherited server.
|
|
228
|
+
- `null` removes an inherited field.
|
|
229
|
+
- Arrays replace rather than append.
|
|
230
|
+
- Server ids are normalized to a safe stable id and collisions are diagnostics.
|
|
231
|
+
|
|
232
|
+
### Trust rules
|
|
233
|
+
|
|
234
|
+
Project MCP files are executable configuration because stdio servers can spawn local commands. Loading `.mcp.json` or `.volt/mcp.json` requires project trust.
|
|
235
|
+
|
|
236
|
+
Without project trust:
|
|
237
|
+
|
|
238
|
+
- ignore project MCP config
|
|
239
|
+
- emit diagnostics/status saying project MCP config was ignored
|
|
240
|
+
- continue to load user MCP config
|
|
241
|
+
|
|
242
|
+
Non-interactive modes follow existing Volt project trust behavior:
|
|
243
|
+
|
|
244
|
+
- `defaultProjectTrust: "ask"` behaves like not trusted
|
|
245
|
+
- `defaultProjectTrust: "never"` ignores project MCP
|
|
246
|
+
- `defaultProjectTrust: "always"` trusts project MCP
|
|
247
|
+
- `--approve` trusts for this run
|
|
248
|
+
- `--no-approve` ignores project MCP
|
|
249
|
+
|
|
250
|
+
## Runtime architecture
|
|
251
|
+
|
|
252
|
+
Add a new core package area:
|
|
253
|
+
|
|
254
|
+
```text
|
|
255
|
+
packages/coding-agent/src/core/mcp/
|
|
256
|
+
audit.ts
|
|
257
|
+
auth.ts
|
|
258
|
+
client-factory.ts
|
|
259
|
+
config-loader.ts
|
|
260
|
+
config.ts
|
|
261
|
+
gateway-tool.ts
|
|
262
|
+
manager.ts
|
|
263
|
+
metadata-cache.ts
|
|
264
|
+
output-store.ts
|
|
265
|
+
rpc.ts
|
|
266
|
+
safety.ts
|
|
267
|
+
search.ts
|
|
268
|
+
server-supervisor.ts
|
|
269
|
+
types.ts
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### Responsibilities
|
|
273
|
+
|
|
274
|
+
`config.ts`
|
|
275
|
+
|
|
276
|
+
- TypeScript config types.
|
|
277
|
+
- Validation helpers.
|
|
278
|
+
- Normalization of server ids and paths.
|
|
279
|
+
|
|
280
|
+
`config-loader.ts`
|
|
281
|
+
|
|
282
|
+
- Load all config files.
|
|
283
|
+
- Apply trust filtering.
|
|
284
|
+
- Merge sources.
|
|
285
|
+
- Produce diagnostics with source metadata.
|
|
286
|
+
|
|
287
|
+
`manager.ts`
|
|
288
|
+
|
|
289
|
+
- Owns session/workspace MCP runtime.
|
|
290
|
+
- Provides methods used by the gateway tool, TUI, RPC, and daemon.
|
|
291
|
+
- Emits status/auth/call events.
|
|
292
|
+
|
|
293
|
+
`server-supervisor.ts`
|
|
294
|
+
|
|
295
|
+
- Maintains one logical server runtime.
|
|
296
|
+
- Handles lazy/eager/keep-alive lifecycle.
|
|
297
|
+
- Tracks state, reconnects, idle timeout, and shutdown.
|
|
298
|
+
|
|
299
|
+
`client-factory.ts`
|
|
300
|
+
|
|
301
|
+
- Creates SDK `Client` and transports.
|
|
302
|
+
- Uses `StdioClientTransport` for local commands.
|
|
303
|
+
- Uses `StreamableHTTPClientTransport` for remote HTTP.
|
|
304
|
+
- Uses `SSEClientTransport` only as fallback/compatibility.
|
|
305
|
+
|
|
306
|
+
`metadata-cache.ts`
|
|
307
|
+
|
|
308
|
+
- Caches tools/resources/prompts per server.
|
|
309
|
+
- Stores metadata hash, server version, last seen time, and schema snippets.
|
|
310
|
+
- Supports search without connecting at startup.
|
|
311
|
+
|
|
312
|
+
`search.ts`
|
|
313
|
+
|
|
314
|
+
- Local lexical/BM25-style search over cached metadata.
|
|
315
|
+
- Must be deterministic, fast, and dependency-light unless a stronger search dependency is justified.
|
|
316
|
+
|
|
317
|
+
`gateway-tool.ts`
|
|
318
|
+
|
|
319
|
+
- Provides the native `mcp` `ToolDefinition`.
|
|
320
|
+
- Handles action validation, result shaping, rendering, and truncation notices.
|
|
321
|
+
|
|
322
|
+
`safety.ts`
|
|
323
|
+
|
|
324
|
+
- Classifies tools as read/write/destructive/unknown for display, search, recent calls, and audit metadata.
|
|
325
|
+
- Redacts secret-looking arguments and text before audit/log presentation.
|
|
326
|
+
|
|
327
|
+
`auth.ts`
|
|
328
|
+
|
|
329
|
+
- Handles OAuth/bearer/env-missing auth flows.
|
|
330
|
+
- Emits first-class auth events for TUI/RPC/mobile.
|
|
331
|
+
- Stores host-side tokens securely where Volt auth storage supports it.
|
|
332
|
+
|
|
333
|
+
`output-store.ts`
|
|
334
|
+
|
|
335
|
+
- Stores large MCP outputs in a local sidecar.
|
|
336
|
+
- Returns opaque ids, never host-local paths to mobile.
|
|
337
|
+
|
|
338
|
+
`audit.ts`
|
|
339
|
+
|
|
340
|
+
- Writes MCP audit events.
|
|
341
|
+
- Redacts secrets and full outputs.
|
|
342
|
+
|
|
343
|
+
`rpc.ts`
|
|
344
|
+
|
|
345
|
+
- Projects manager state into RPC-safe DTOs.
|
|
346
|
+
- Sanitizes command, env, URL, headers, and auth data.
|
|
347
|
+
|
|
348
|
+
### Lifecycle
|
|
349
|
+
|
|
350
|
+
Startup:
|
|
351
|
+
|
|
352
|
+
1. Load trusted MCP config.
|
|
353
|
+
2. Load metadata cache.
|
|
354
|
+
3. Construct MCP manager.
|
|
355
|
+
4. Register only the native `mcp` tool when MCP is enabled.
|
|
356
|
+
5. Start eager/keep-alive servers from trusted config.
|
|
357
|
+
6. Lazy servers remain cold.
|
|
358
|
+
|
|
359
|
+
Search/describe:
|
|
360
|
+
|
|
361
|
+
1. Use cached metadata first.
|
|
362
|
+
2. If metadata is missing or stale, return a clear result with suggested `connect`/`refresh` action.
|
|
363
|
+
3. Do not start arbitrary stdio processes merely because the model searched, unless config permits background discovery.
|
|
364
|
+
|
|
365
|
+
Call:
|
|
366
|
+
|
|
367
|
+
1. Resolve exact server and tool.
|
|
368
|
+
2. Ensure server is connected.
|
|
369
|
+
3. Refresh metadata if needed.
|
|
370
|
+
4. Call tool with timeout and cancellation.
|
|
371
|
+
5. Truncate/cache output.
|
|
372
|
+
6. Emit events and audit.
|
|
373
|
+
7. Reset idle timer.
|
|
374
|
+
|
|
375
|
+
Shutdown:
|
|
376
|
+
|
|
377
|
+
- Close clients.
|
|
378
|
+
- Stop stdio processes gracefully.
|
|
379
|
+
- Emit final status.
|
|
380
|
+
|
|
381
|
+
## Native `mcp` tool contract
|
|
382
|
+
|
|
383
|
+
### Tool name
|
|
384
|
+
|
|
385
|
+
```text
|
|
386
|
+
mcp
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
### Actions
|
|
390
|
+
|
|
391
|
+
```text
|
|
392
|
+
status
|
|
393
|
+
list_servers
|
|
394
|
+
search
|
|
395
|
+
describe
|
|
396
|
+
call
|
|
397
|
+
connect
|
|
398
|
+
disconnect
|
|
399
|
+
list_resources
|
|
400
|
+
read_resource
|
|
401
|
+
list_prompts
|
|
402
|
+
get_prompt
|
|
403
|
+
read_cache
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
### Input shape
|
|
407
|
+
|
|
408
|
+
```ts
|
|
409
|
+
interface McpGatewayInput {
|
|
410
|
+
action:
|
|
411
|
+
| "status"
|
|
412
|
+
| "list_servers"
|
|
413
|
+
| "search"
|
|
414
|
+
| "describe"
|
|
415
|
+
| "call"
|
|
416
|
+
| "connect"
|
|
417
|
+
| "disconnect"
|
|
418
|
+
| "list_resources"
|
|
419
|
+
| "read_resource"
|
|
420
|
+
| "list_prompts"
|
|
421
|
+
| "get_prompt"
|
|
422
|
+
| "read_cache";
|
|
423
|
+
server?: string;
|
|
424
|
+
query?: string;
|
|
425
|
+
tool?: string;
|
|
426
|
+
arguments?: Record<string, unknown>;
|
|
427
|
+
argumentsJson?: string;
|
|
428
|
+
resourceUri?: string;
|
|
429
|
+
prompt?: string;
|
|
430
|
+
cacheId?: string;
|
|
431
|
+
limit?: number;
|
|
432
|
+
cursor?: string;
|
|
433
|
+
}
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
`arguments` is preferred. `argumentsJson` exists for provider compatibility if a model struggles with nested arbitrary JSON.
|
|
437
|
+
|
|
438
|
+
### Search result
|
|
439
|
+
|
|
440
|
+
Search returns compact routing information, not full schemas.
|
|
441
|
+
|
|
442
|
+
```json
|
|
443
|
+
{
|
|
444
|
+
"action": "search",
|
|
445
|
+
"query": "search github issues",
|
|
446
|
+
"matches": [
|
|
447
|
+
{
|
|
448
|
+
"server": "github",
|
|
449
|
+
"tool": "search_issues",
|
|
450
|
+
"title": "Search issues",
|
|
451
|
+
"summary": "Search GitHub issues and pull requests.",
|
|
452
|
+
"risk": "read",
|
|
453
|
+
"call": "mcp({\"action\":\"call\",\"server\":\"github\",\"tool\":\"search_issues\",\"arguments\":{...}})",
|
|
454
|
+
"describe": "mcp({\"action\":\"describe\",\"server\":\"github\",\"tool\":\"search_issues\"})"
|
|
455
|
+
}
|
|
456
|
+
]
|
|
457
|
+
}
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
Defaults:
|
|
461
|
+
|
|
462
|
+
- return 8 matches
|
|
463
|
+
- cap at 20 matches
|
|
464
|
+
- each match summary is bounded
|
|
465
|
+
- include risk and exact call target
|
|
466
|
+
|
|
467
|
+
### Describe result
|
|
468
|
+
|
|
469
|
+
`describe` returns full enough schema for the selected tool only:
|
|
470
|
+
|
|
471
|
+
```json
|
|
472
|
+
{
|
|
473
|
+
"server": "github",
|
|
474
|
+
"tool": "search_issues",
|
|
475
|
+
"description": "Search GitHub issues and pull requests.",
|
|
476
|
+
"risk": "read",
|
|
477
|
+
"inputSchema": { "type": "object", "properties": { "query": { "type": "string" } } },
|
|
478
|
+
"annotations": { "readOnlyHint": true },
|
|
479
|
+
"metadataHash": "sha256:..."
|
|
480
|
+
}
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
Schemas are bounded. If a schema is too large, return a compact schema plus an elision warning.
|
|
484
|
+
|
|
485
|
+
### Call result
|
|
486
|
+
|
|
487
|
+
```json
|
|
488
|
+
{
|
|
489
|
+
"action": "call",
|
|
490
|
+
"server": "github",
|
|
491
|
+
"tool": "search_issues",
|
|
492
|
+
"status": "completed",
|
|
493
|
+
"risk": "read",
|
|
494
|
+
"content": "Found 12 issues...",
|
|
495
|
+
"truncation": {
|
|
496
|
+
"truncated": true,
|
|
497
|
+
"returnedBytes": 51200,
|
|
498
|
+
"totalBytes": 482991
|
|
499
|
+
},
|
|
500
|
+
"cache": {
|
|
501
|
+
"id": "mcpout_01HX...",
|
|
502
|
+
"read": "mcp({\"action\":\"read_cache\",\"cacheId\":\"mcpout_01HX...\"})"
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
Errors from MCP tool execution are returned as tool results with a clear `isError` result to the model when the protocol reports a tool-level error. Transport/protocol/permission failures are reported as gateway errors.
|
|
508
|
+
|
|
509
|
+
## Token budget strategy
|
|
510
|
+
|
|
511
|
+
- One native tool is always visible.
|
|
512
|
+
- MCP tool schemas are absent from the base system prompt by default.
|
|
513
|
+
- Search results are compact and limited.
|
|
514
|
+
- Describe returns one tool schema at a time.
|
|
515
|
+
- Results are truncated to Volt's existing extension guidance: 50KB / 2000 lines.
|
|
516
|
+
- Full results go to a sidecar and are retrieved by `read_cache`.
|
|
517
|
+
- Direct tools are off by default.
|
|
518
|
+
|
|
519
|
+
Optional direct tools:
|
|
520
|
+
|
|
521
|
+
```json
|
|
522
|
+
{
|
|
523
|
+
"settings": { "directTools": false },
|
|
524
|
+
"servers": {
|
|
525
|
+
"github": {
|
|
526
|
+
"directTools": ["search_issues", "get_file_contents"]
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
Direct tools must:
|
|
533
|
+
|
|
534
|
+
- be sourced from cached metadata
|
|
535
|
+
- include a token estimate before enabling in TUI/mobile
|
|
536
|
+
- be pinned to a metadata hash
|
|
537
|
+
- be demoted when metadata changes
|
|
538
|
+
- use names like `mcp__github__search_issues`
|
|
539
|
+
|
|
540
|
+
## RPC, daemon, and mobile API
|
|
541
|
+
|
|
542
|
+
### RPC commands
|
|
543
|
+
|
|
544
|
+
Add typed RPC commands:
|
|
545
|
+
|
|
546
|
+
```text
|
|
547
|
+
get_mcp_capabilities
|
|
548
|
+
list_mcp_servers
|
|
549
|
+
get_mcp_server
|
|
550
|
+
set_mcp_server_enabled
|
|
551
|
+
connect_mcp_server
|
|
552
|
+
disconnect_mcp_server
|
|
553
|
+
refresh_mcp_server
|
|
554
|
+
list_mcp_tools
|
|
555
|
+
get_mcp_tool
|
|
556
|
+
list_mcp_resources
|
|
557
|
+
read_mcp_resource
|
|
558
|
+
list_mcp_prompts
|
|
559
|
+
get_mcp_prompt
|
|
560
|
+
list_mcp_recent_calls
|
|
561
|
+
start_mcp_server_auth
|
|
562
|
+
poll_mcp_server_auth
|
|
563
|
+
cancel_mcp_server_auth
|
|
564
|
+
complete_mcp_server_auth
|
|
565
|
+
logout_mcp_server
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
### Events
|
|
569
|
+
|
|
570
|
+
```text
|
|
571
|
+
mcp_servers_changed
|
|
572
|
+
mcp_server_status_changed
|
|
573
|
+
mcp_auth_request
|
|
574
|
+
mcp_auth_update
|
|
575
|
+
mcp_call_start
|
|
576
|
+
mcp_call_update
|
|
577
|
+
mcp_call_end
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
### DTOs
|
|
581
|
+
|
|
582
|
+
```ts
|
|
583
|
+
interface McpServerSummary {
|
|
584
|
+
id: string;
|
|
585
|
+
displayName: string;
|
|
586
|
+
sourceScope: "user" | "project" | "temporary";
|
|
587
|
+
sourceLabel: string;
|
|
588
|
+
enabled: boolean;
|
|
589
|
+
activeInSession: boolean;
|
|
590
|
+
transport: "stdio" | "streamable_http" | "sse";
|
|
591
|
+
lifecycle: "lazy" | "eager" | "keep_alive";
|
|
592
|
+
status:
|
|
593
|
+
| "disabled"
|
|
594
|
+
| "untrusted"
|
|
595
|
+
| "cold"
|
|
596
|
+
| "connecting"
|
|
597
|
+
| "connected"
|
|
598
|
+
| "ready"
|
|
599
|
+
| "needs_auth"
|
|
600
|
+
| "error"
|
|
601
|
+
| "disconnected";
|
|
602
|
+
authState: "none" | "required" | "pending" | "authenticated" | "failed";
|
|
603
|
+
toolCounts: { cached: number; live?: number; enabled?: number };
|
|
604
|
+
resourceCount?: number;
|
|
605
|
+
promptCount?: number;
|
|
606
|
+
recentCalls: McpRecentCallSummary[];
|
|
607
|
+
lastError?: string;
|
|
608
|
+
lastConnectedAt?: string;
|
|
609
|
+
capabilities: {
|
|
610
|
+
canEnable: boolean;
|
|
611
|
+
canConnect: boolean;
|
|
612
|
+
canDisconnect: boolean;
|
|
613
|
+
canRefresh: boolean;
|
|
614
|
+
canAuthenticate: boolean;
|
|
615
|
+
canPersistChanges: boolean;
|
|
616
|
+
};
|
|
617
|
+
}
|
|
618
|
+
```
|
|
619
|
+
|
|
620
|
+
```ts
|
|
621
|
+
interface McpRecentCallSummary {
|
|
622
|
+
id: string;
|
|
623
|
+
timestamp: string;
|
|
624
|
+
server: string;
|
|
625
|
+
tool: string;
|
|
626
|
+
risk: "read" | "write" | "destructive" | "unknown";
|
|
627
|
+
status: "started" | "completed" | "failed" | "cancelled";
|
|
628
|
+
durationMs?: number;
|
|
629
|
+
outputBytes?: number;
|
|
630
|
+
truncated?: boolean;
|
|
631
|
+
}
|
|
632
|
+
```
|
|
633
|
+
|
|
634
|
+
### Mobile app integration points
|
|
635
|
+
|
|
636
|
+
Likely app-side files to add or change:
|
|
637
|
+
|
|
638
|
+
- `volt-app/Packages/VoltClient/Sources/VoltRPC/` for MCP RPC commands and DTOs.
|
|
639
|
+
- `volt-app/Packages/VoltClient/Sources/VoltCore/VoltSession+MCP.swift` for session state/actions.
|
|
640
|
+
- `volt-app/Packages/VoltClient/Sources/VoltCore/VoltSession+EventRouting.swift` for MCP event handling.
|
|
641
|
+
- `volt-app/Volt/Settings/MCPServersView.swift` for server management UI.
|
|
642
|
+
- `volt-app/Volt/HostAction/` or a new MCP auth sheet for auth prompts.
|
|
643
|
+
- `volt-app/Volt/Chat/ToolEvents/` for MCP call card presentation.
|
|
644
|
+
- `volt-app/Packages/VoltClient/Tests/VoltCoreTests/` for command/event routing tests.
|
|
645
|
+
|
|
646
|
+
### Daemon and remote access
|
|
647
|
+
|
|
648
|
+
Add an Iroh/daemon feature flag:
|
|
649
|
+
|
|
650
|
+
```text
|
|
651
|
+
mcp_management.v1
|
|
652
|
+
```
|
|
653
|
+
|
|
654
|
+
Remote-safe MCP commands should be allowlisted deliberately. Management commands that do not add or edit arbitrary stdio commands are remote-safe when the server already exists in trusted config.
|
|
655
|
+
|
|
656
|
+
Remote-safe by default:
|
|
657
|
+
|
|
658
|
+
- list servers
|
|
659
|
+
- get server
|
|
660
|
+
- connect existing configured servers
|
|
661
|
+
- refresh metadata for existing configured servers
|
|
662
|
+
- enable/disable existing configured servers through persisted Volt-owned overlays
|
|
663
|
+
- list recent calls
|
|
664
|
+
- list/get tools
|
|
665
|
+
- list/read resources
|
|
666
|
+
- list/get prompts
|
|
667
|
+
- disconnect
|
|
668
|
+
- start device-code auth
|
|
669
|
+
- poll/cancel auth
|
|
670
|
+
- logout
|
|
671
|
+
|
|
672
|
+
Conditionally remote-safe:
|
|
673
|
+
|
|
674
|
+
- browser redirect auth completion, only for local/same-device RPC flows with explicit redirect handling
|
|
675
|
+
|
|
676
|
+
Not remote-safe by default:
|
|
677
|
+
|
|
678
|
+
- adding arbitrary stdio server commands
|
|
679
|
+
- editing command/args/env
|
|
680
|
+
- changing env allowlists
|
|
681
|
+
|
|
682
|
+
## Security
|
|
683
|
+
|
|
684
|
+
### Threat model
|
|
685
|
+
|
|
686
|
+
MCP introduces these risks:
|
|
687
|
+
|
|
688
|
+
- stdio config can execute arbitrary local commands
|
|
689
|
+
- project config can be malicious
|
|
690
|
+
- server metadata can contain prompt injection
|
|
691
|
+
- tool outputs/resources/prompts can contain prompt injection
|
|
692
|
+
- remote MCP servers can exfiltrate data or ask for broad OAuth scopes
|
|
693
|
+
- mobile/daemon control can start host-local processes if not constrained
|
|
694
|
+
|
|
695
|
+
### Child process safety
|
|
696
|
+
|
|
697
|
+
For stdio servers:
|
|
698
|
+
|
|
699
|
+
- spawn argv directly, no shell
|
|
700
|
+
- resolve command and cwd safely
|
|
701
|
+
- do not pass full ambient environment by default
|
|
702
|
+
- pass baseline environment only:
|
|
703
|
+
- `PATH`, `HOME`, `TMPDIR`, platform essentials
|
|
704
|
+
- explicit `env` entries
|
|
705
|
+
- explicit allowlisted ambient env vars
|
|
706
|
+
- redact env values in UI/RPC/mobile
|
|
707
|
+
- show command preview before first start when interactive
|
|
708
|
+
|
|
709
|
+
### Risk classification
|
|
710
|
+
|
|
711
|
+
Classify each MCP tool for display, search ranking context, recent calls, and audit metadata:
|
|
712
|
+
|
|
713
|
+
1. MCP annotations, such as `readOnlyHint` and `destructiveHint`
|
|
714
|
+
2. name/description heuristics
|
|
715
|
+
3. `unknown` fallback
|
|
716
|
+
|
|
717
|
+
Risk classes:
|
|
718
|
+
|
|
719
|
+
- `read`
|
|
720
|
+
- `write`
|
|
721
|
+
- `destructive`
|
|
722
|
+
- `unknown`
|
|
723
|
+
|
|
724
|
+
Risk is informational only. Volt does not apply nested MCP tool permissions or approval prompts; availability is controlled by the top-level `mcp` tool plus server `includeTools`/`excludeTools`, project trust, auth, and transport/remote-safety rules.
|
|
725
|
+
|
|
726
|
+
### Audit
|
|
727
|
+
|
|
728
|
+
Write JSONL audit entries under the Volt agent dir.
|
|
729
|
+
|
|
730
|
+
Fields:
|
|
731
|
+
|
|
732
|
+
- timestamp
|
|
733
|
+
- workspace/session id
|
|
734
|
+
- caller surface
|
|
735
|
+
- server id
|
|
736
|
+
- tool/resource/prompt id
|
|
737
|
+
- risk class
|
|
738
|
+
- status
|
|
739
|
+
- duration
|
|
740
|
+
- result size
|
|
741
|
+
- result hash
|
|
742
|
+
- truncation/cache id
|
|
743
|
+
- sanitized argument summary
|
|
744
|
+
|
|
745
|
+
Do not log secrets or full outputs by default.
|
|
746
|
+
|
|
747
|
+
## Resources and prompts
|
|
748
|
+
|
|
749
|
+
### Resources
|
|
750
|
+
|
|
751
|
+
Support resources in the product, but expose them explicitly.
|
|
752
|
+
|
|
753
|
+
Gateway actions:
|
|
754
|
+
|
|
755
|
+
- `list_resources`
|
|
756
|
+
- `read_resource`
|
|
757
|
+
|
|
758
|
+
Rules:
|
|
759
|
+
|
|
760
|
+
- never auto-inject resource contents
|
|
761
|
+
- return bounded content
|
|
762
|
+
- cache large resources
|
|
763
|
+
- treat contents as untrusted
|
|
764
|
+
- mobile/TUI can preview resources
|
|
765
|
+
|
|
766
|
+
### Prompts
|
|
767
|
+
|
|
768
|
+
Support prompt listing and preview, but do not auto-register MCP prompts as Volt slash commands by default.
|
|
769
|
+
|
|
770
|
+
Gateway actions:
|
|
771
|
+
|
|
772
|
+
- `list_prompts`
|
|
773
|
+
- `get_prompt`
|
|
774
|
+
|
|
775
|
+
Rules:
|
|
776
|
+
|
|
777
|
+
- prompt content is untrusted data
|
|
778
|
+
- user confirmation required before inserting or sending a prompt from UI
|
|
779
|
+
- model can call `get_prompt` only if config allows prompt exposure
|
|
780
|
+
- no prompt content gets system-prompt priority
|
|
781
|
+
|
|
782
|
+
Recommended default:
|
|
783
|
+
|
|
784
|
+
```json
|
|
785
|
+
{
|
|
786
|
+
"settings": {
|
|
787
|
+
"resources": "explicit",
|
|
788
|
+
"prompts": "user-preview"
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
```
|
|
792
|
+
|
|
793
|
+
## Error handling, timeouts, and cancellation
|
|
794
|
+
|
|
795
|
+
### Status values
|
|
796
|
+
|
|
797
|
+
Use a stable status vocabulary:
|
|
798
|
+
|
|
799
|
+
```text
|
|
800
|
+
disabled
|
|
801
|
+
untrusted
|
|
802
|
+
cold
|
|
803
|
+
discovering
|
|
804
|
+
connecting
|
|
805
|
+
connected
|
|
806
|
+
ready
|
|
807
|
+
needs_auth
|
|
808
|
+
authenticating
|
|
809
|
+
error
|
|
810
|
+
disconnecting
|
|
811
|
+
disconnected
|
|
812
|
+
```
|
|
813
|
+
|
|
814
|
+
### Timeouts
|
|
815
|
+
|
|
816
|
+
Default timeouts:
|
|
817
|
+
|
|
818
|
+
- connect: 15 seconds
|
|
819
|
+
- metadata discovery: 10 seconds
|
|
820
|
+
- tool call: 10 minutes
|
|
821
|
+
- auth prompt: 5 minutes
|
|
822
|
+
- idle disconnect: 10 minutes
|
|
823
|
+
|
|
824
|
+
Each server can override within safe bounds.
|
|
825
|
+
|
|
826
|
+
### Cancellation
|
|
827
|
+
|
|
828
|
+
- Agent abort signal cancels active gateway operations.
|
|
829
|
+
- RPC abort cancels active MCP management operations.
|
|
830
|
+
- On stdio shutdown:
|
|
831
|
+
1. close stdin
|
|
832
|
+
2. send SIGTERM
|
|
833
|
+
3. send SIGKILL after grace period
|
|
834
|
+
- On session shutdown, disconnect session-owned MCP clients.
|
|
835
|
+
- On daemon/TUI handoff, reconnect as needed and emit status changes.
|
|
836
|
+
|
|
837
|
+
## Output truncation and sidecar
|
|
838
|
+
|
|
839
|
+
Inline output cap:
|
|
840
|
+
|
|
841
|
+
- 50KB
|
|
842
|
+
- 2000 lines
|
|
843
|
+
|
|
844
|
+
When output exceeds limits:
|
|
845
|
+
|
|
846
|
+
- return a compact summary
|
|
847
|
+
- store full output in local sidecar
|
|
848
|
+
- return opaque `cacheId`
|
|
849
|
+
- allow retrieval with `mcp({ "action": "read_cache", "cacheId": "..." })`
|
|
850
|
+
|
|
851
|
+
Sidecar rules:
|
|
852
|
+
|
|
853
|
+
- local file permissions 0600 where applicable
|
|
854
|
+
- retention/TTL setting
|
|
855
|
+
- mobile sees opaque ids only, not host paths
|
|
856
|
+
- cache ids scoped to workspace/session ownership
|
|
857
|
+
- binary/image outputs require explicit product handling before model exposure
|
|
858
|
+
|
|
859
|
+
## Implementation plan
|
|
860
|
+
|
|
861
|
+
### 1. Dependency and config foundation
|
|
862
|
+
|
|
863
|
+
- Add pinned `@modelcontextprotocol/sdk` dependency.
|
|
864
|
+
- Add MCP config types and loader.
|
|
865
|
+
- Add file discovery for global/shared and project-local MCP config.
|
|
866
|
+
- Add project-trust diagnostics for `.mcp.json` and `.volt/mcp.json`.
|
|
867
|
+
- Add unit tests for merge, precedence, and trust filtering.
|
|
868
|
+
|
|
869
|
+
Likely files:
|
|
870
|
+
|
|
871
|
+
- `packages/coding-agent/package.json`
|
|
872
|
+
- `packages/coding-agent/src/core/mcp/config.ts`
|
|
873
|
+
- `packages/coding-agent/src/core/mcp/config-loader.ts`
|
|
874
|
+
- `packages/coding-agent/src/core/resource-loader.ts`
|
|
875
|
+
- `packages/coding-agent/src/core/settings-manager.ts`
|
|
876
|
+
|
|
877
|
+
### 2. Runtime manager and transports
|
|
878
|
+
|
|
879
|
+
- Implement MCP manager and server supervisor.
|
|
880
|
+
- Implement SDK client factory.
|
|
881
|
+
- Support stdio and Streamable HTTP.
|
|
882
|
+
- Add SSE fallback for legacy servers.
|
|
883
|
+
- Implement restricted child env builder.
|
|
884
|
+
- Add fake stdio/http MCP server tests.
|
|
885
|
+
|
|
886
|
+
Likely files:
|
|
887
|
+
|
|
888
|
+
- `packages/coding-agent/src/core/mcp/manager.ts`
|
|
889
|
+
- `packages/coding-agent/src/core/mcp/server-supervisor.ts`
|
|
890
|
+
- `packages/coding-agent/src/core/mcp/client-factory.ts`
|
|
891
|
+
|
|
892
|
+
### 3. Metadata cache and search
|
|
893
|
+
|
|
894
|
+
- Cache tools/resources/prompts.
|
|
895
|
+
- Include server version, capability hash, metadata hash, and timestamps.
|
|
896
|
+
- Add local search over cached tool metadata.
|
|
897
|
+
- Add refresh behavior and stale-cache diagnostics.
|
|
898
|
+
|
|
899
|
+
Likely files:
|
|
900
|
+
|
|
901
|
+
- `packages/coding-agent/src/core/mcp/metadata-cache.ts`
|
|
902
|
+
- `packages/coding-agent/src/core/mcp/search.ts`
|
|
903
|
+
|
|
904
|
+
### 4. Native gateway tool
|
|
905
|
+
|
|
906
|
+
- Add built-in `mcp` tool definition.
|
|
907
|
+
- Wire manager into `AgentSession` runtime.
|
|
908
|
+
- Add custom renderer for MCP gateway calls.
|
|
909
|
+
- Ensure `--tools` and excluded tools can enable/disable `mcp` like other built-ins.
|
|
910
|
+
|
|
911
|
+
Likely files:
|
|
912
|
+
|
|
913
|
+
- `packages/coding-agent/src/core/mcp/gateway-tool.ts`
|
|
914
|
+
- `packages/coding-agent/src/core/tools/index.ts`
|
|
915
|
+
- `packages/coding-agent/src/core/agent-session.ts`
|
|
916
|
+
- `packages/coding-agent/src/modes/interactive/components/tool-execution.ts`
|
|
917
|
+
|
|
918
|
+
### 5. Risk metadata, audit, output store
|
|
919
|
+
|
|
920
|
+
- Add risk classification for metadata/audit.
|
|
921
|
+
- Add audit log.
|
|
922
|
+
- Add output truncation and sidecar storage.
|
|
923
|
+
- Add tests for risk classification and redaction.
|
|
924
|
+
|
|
925
|
+
Likely files:
|
|
926
|
+
|
|
927
|
+
- `packages/coding-agent/src/core/mcp/safety.ts`
|
|
928
|
+
- `packages/coding-agent/src/core/mcp/audit.ts`
|
|
929
|
+
- `packages/coding-agent/src/core/mcp/output-store.ts`
|
|
930
|
+
|
|
931
|
+
### 6. Auth
|
|
932
|
+
|
|
933
|
+
Implemented:
|
|
934
|
+
|
|
935
|
+
- OAuth/bearer/env-missing auth states.
|
|
936
|
+
- Host-side OAuth token/client/discovery storage in `~/.volt/agent/mcp-auth.json` with owner-only file permissions.
|
|
937
|
+
- Browser authorization-code + PKCE auth via `volt mcp auth <server>` and local RPC `start_mcp_server_auth` / `complete_mcp_server_auth`.
|
|
938
|
+
- OAuth device-code auth via `volt mcp auth-device <server>` and local/remote-safe RPC `start_mcp_server_auth` with `flow: "device"`, `poll_mcp_server_auth`, and `cancel_mcp_server_auth`.
|
|
939
|
+
- Logout/credential clearing via `volt mcp logout <server>` and local RPC `logout_mcp_server`.
|
|
940
|
+
|
|
941
|
+
Implemented since: first-class streaming auth events (`mcp_auth_request` / `mcp_auth_update`) for TUI/RPC/mobile via `mcp_events.v1`.
|
|
942
|
+
|
|
943
|
+
Still to do:
|
|
944
|
+
|
|
945
|
+
- Rich interactive `/mcp` auth UX beyond the lightweight command surface.
|
|
946
|
+
|
|
947
|
+
Likely files:
|
|
948
|
+
|
|
949
|
+
- `packages/coding-agent/src/core/mcp/auth.ts`
|
|
950
|
+
- `packages/coding-agent/src/core/rpc/types.ts`
|
|
951
|
+
- `packages/coding-agent/src/modes/interactive/interactive-mode.ts`
|
|
952
|
+
|
|
953
|
+
### 7. TUI and CLI UX
|
|
954
|
+
|
|
955
|
+
- Implement `/mcp` server manager.
|
|
956
|
+
- Add CLI commands such as `volt mcp list`, `connect`, `disconnect`, `refresh`, `auth`.
|
|
957
|
+
- Add startup/footer status.
|
|
958
|
+
- Add docs.
|
|
959
|
+
|
|
960
|
+
Likely files:
|
|
961
|
+
|
|
962
|
+
- `packages/coding-agent/src/modes/interactive/interactive-mode.ts`
|
|
963
|
+
- `packages/coding-agent/src/core/slash-commands.ts`
|
|
964
|
+
- `packages/coding-agent/src/main.ts`
|
|
965
|
+
- `packages/coding-agent/docs/mcp.md`
|
|
966
|
+
|
|
967
|
+
### 8. RPC and daemon
|
|
968
|
+
|
|
969
|
+
- Add MCP RPC command/response/event types.
|
|
970
|
+
- Add dispatch handlers.
|
|
971
|
+
- Add daemon/Iroh allowlist updates and `mcp_management.v1` feature.
|
|
972
|
+
- Add remote-safe allowlist tests.
|
|
973
|
+
|
|
974
|
+
Likely files:
|
|
975
|
+
|
|
976
|
+
- `packages/coding-agent/src/core/rpc/types.ts`
|
|
977
|
+
- `packages/coding-agent/src/modes/rpc/rpc-mode.ts`
|
|
978
|
+
- `packages/coding-agent/src/core/remote/iroh/rpc-command-filter.ts`
|
|
979
|
+
- `packages/coding-agent/src/core/remote/iroh/control.ts`
|
|
980
|
+
|
|
981
|
+
### 9. Mobile app
|
|
982
|
+
|
|
983
|
+
- Add Swift DTOs and RPC commands.
|
|
984
|
+
- Add `VoltSession` MCP state and event routing.
|
|
985
|
+
- Add MCP server settings view.
|
|
986
|
+
- Add auth sheets.
|
|
987
|
+
- Add tool event presentation for MCP gateway calls.
|
|
988
|
+
- Add mock transport tests.
|
|
989
|
+
|
|
990
|
+
Likely files:
|
|
991
|
+
|
|
992
|
+
- `volt-app/Packages/VoltClient/Sources/VoltRPC/`
|
|
993
|
+
- `volt-app/Packages/VoltClient/Sources/VoltCore/VoltSession+MCP.swift`
|
|
994
|
+
- `volt-app/Packages/VoltClient/Sources/VoltCore/VoltSession+EventRouting.swift`
|
|
995
|
+
- `volt-app/Volt/Settings/MCPServersView.swift`
|
|
996
|
+
- `volt-app/Volt/Chat/ToolEvents/`
|
|
997
|
+
- `volt-app/Packages/VoltClient/Tests/VoltCoreTests/`
|
|
998
|
+
|
|
999
|
+
### 10. Resources, prompts, direct-tool promotion
|
|
1000
|
+
|
|
1001
|
+
- Add explicit resource actions.
|
|
1002
|
+
- Add prompt list/preview actions.
|
|
1003
|
+
- Add user-confirmed prompt insertion in TUI/mobile.
|
|
1004
|
+
- Add optional direct-tool promotion with metadata hash review.
|
|
1005
|
+
- Add token estimate UI.
|
|
1006
|
+
|
|
1007
|
+
### 11. Documentation and verification
|
|
1008
|
+
|
|
1009
|
+
Docs to update:
|
|
1010
|
+
|
|
1011
|
+
- `README.md`
|
|
1012
|
+
- `docs/settings.md`
|
|
1013
|
+
- `docs/rpc.md`
|
|
1014
|
+
- `docs/daemon.md`
|
|
1015
|
+
- `docs/security.md`
|
|
1016
|
+
- `docs/mcp.md`
|
|
1017
|
+
|
|
1018
|
+
Verification:
|
|
1019
|
+
|
|
1020
|
+
- `npm run check` after implementation changes.
|
|
1021
|
+
- Specific MCP unit/integration tests with fake servers.
|
|
1022
|
+
- iOS tests for RPC model parsing and event routing.
|
|
1023
|
+
|
|
1024
|
+
## Recommended decisions
|
|
1025
|
+
|
|
1026
|
+
1. Default mode is pure proxy.
|
|
1027
|
+
2. Direct tools are available but off by default.
|
|
1028
|
+
3. Volt writes only Volt-owned MCP config by default.
|
|
1029
|
+
4. Project-local MCP config requires project trust.
|
|
1030
|
+
5. Stdio servers get restricted env by default.
|
|
1031
|
+
6. Mobile can manage existing trusted servers, not author arbitrary local commands by default.
|
|
1032
|
+
7. Resources are explicit-read by default.
|
|
1033
|
+
8. Prompts are user-preview by default.
|
|
1034
|
+
9. All MCP metadata/results/resources/prompts are untrusted.
|
|
1035
|
+
10. Large MCP outputs always use Volt truncation plus sidecar retrieval.
|
|
1036
|
+
11. Session-owned MCP processes are the first product behavior; cross-session process sharing can be revisited later.
|
|
1037
|
+
|
|
1038
|
+
## Open questions
|
|
1039
|
+
|
|
1040
|
+
- Should OAuth token storage live in the existing Volt auth storage or a separate MCP token store?
|
|
1041
|
+
- Should metadata discovery for cold lazy servers ever auto-start stdio servers, or should it require explicit refresh/connect?
|
|
1042
|
+
- What is the exact mobile affordance for auth redirects on iOS?
|
|
1043
|
+
- How should direct-tool token estimates be calculated consistently across providers?
|
|
1044
|
+
- Should MCP audit logs be shown in the mobile app or only summarized as recent calls?
|