mindweave 0.0.1 → 2.1.2
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/LICENSE +190 -0
- package/README.md +171 -14
- package/dist/alternator/chassis/cache.js +47 -0
- package/dist/alternator/chassis/cache.js.map +1 -0
- package/dist/alternator/chassis/domRefs.js +53 -0
- package/dist/alternator/chassis/domRefs.js.map +1 -0
- package/dist/alternator/chassis/extractWorker.js +65 -0
- package/dist/alternator/chassis/extractWorker.js.map +1 -0
- package/dist/alternator/chassis/graph.js +221 -0
- package/dist/alternator/chassis/graph.js.map +1 -0
- package/dist/alternator/chassis/index.js +463 -0
- package/dist/alternator/chassis/index.js.map +1 -0
- package/dist/alternator/chassis/isolation.js +336 -0
- package/dist/alternator/chassis/isolation.js.map +1 -0
- package/dist/alternator/chassis/langCases.js +69 -0
- package/dist/alternator/chassis/langCases.js.map +1 -0
- package/dist/alternator/chassis/lsp.js +469 -0
- package/dist/alternator/chassis/lsp.js.map +1 -0
- package/dist/alternator/chassis/markup.js +262 -0
- package/dist/alternator/chassis/markup.js.map +1 -0
- package/dist/alternator/chassis/provision.js +198 -0
- package/dist/alternator/chassis/provision.js.map +1 -0
- package/dist/alternator/chassis/rank.js +72 -0
- package/dist/alternator/chassis/rank.js.map +1 -0
- package/dist/alternator/chassis/servers.js +215 -0
- package/dist/alternator/chassis/servers.js.map +1 -0
- package/dist/alternator/chassis/treesitter.js +608 -0
- package/dist/alternator/chassis/treesitter.js.map +1 -0
- package/dist/alternator/chassis/types.js +24 -0
- package/dist/alternator/chassis/types.js.map +1 -0
- package/dist/alternator/lane.js +67 -0
- package/dist/alternator/lane.js.map +1 -0
- package/dist/cli/App.js +2586 -0
- package/dist/cli/App.js.map +1 -0
- package/dist/cli/altScreen.js +67 -0
- package/dist/cli/altScreen.js.map +1 -0
- package/dist/cli/approvalChannel.js +72 -0
- package/dist/cli/approvalChannel.js.map +1 -0
- package/dist/cli/attachments.js +188 -0
- package/dist/cli/attachments.js.map +1 -0
- package/dist/cli/bootstrap.js +279 -0
- package/dist/cli/bootstrap.js.map +1 -0
- package/dist/cli/chatAnchor.js +94 -0
- package/dist/cli/chatAnchor.js.map +1 -0
- package/dist/cli/commandArgs.js +79 -0
- package/dist/cli/commandArgs.js.map +1 -0
- package/dist/cli/commandRoute.js +78 -0
- package/dist/cli/commandRoute.js.map +1 -0
- package/dist/cli/compaction.js +69 -0
- package/dist/cli/compaction.js.map +1 -0
- package/dist/cli/components/ApprovalBox.js +100 -0
- package/dist/cli/components/ApprovalBox.js.map +1 -0
- package/dist/cli/components/BlockView.js +128 -0
- package/dist/cli/components/BlockView.js.map +1 -0
- package/dist/cli/components/FirstRunFrame.js +41 -0
- package/dist/cli/components/FirstRunFrame.js.map +1 -0
- package/dist/cli/components/KeyManager.js +197 -0
- package/dist/cli/components/KeyManager.js.map +1 -0
- package/dist/cli/components/KeySetup.js +125 -0
- package/dist/cli/components/KeySetup.js.map +1 -0
- package/dist/cli/components/MenuFrame.js +24 -0
- package/dist/cli/components/MenuFrame.js.map +1 -0
- package/dist/cli/components/Picker.js +82 -0
- package/dist/cli/components/Picker.js.map +1 -0
- package/dist/cli/components/PromptInput.js +509 -0
- package/dist/cli/components/PromptInput.js.map +1 -0
- package/dist/cli/components/SubagentView.js +86 -0
- package/dist/cli/components/SubagentView.js.map +1 -0
- package/dist/cli/components/ToolGroup.js +60 -0
- package/dist/cli/components/ToolGroup.js.map +1 -0
- package/dist/cli/components/ToolLine.js +123 -0
- package/dist/cli/components/ToolLine.js.map +1 -0
- package/dist/cli/components/TrustGate.js +37 -0
- package/dist/cli/components/TrustGate.js.map +1 -0
- package/dist/cli/costView.js +40 -0
- package/dist/cli/costView.js.map +1 -0
- package/dist/cli/frameRate.js +30 -0
- package/dist/cli/frameRate.js.map +1 -0
- package/dist/cli/framebuffer/paint.js +165 -0
- package/dist/cli/framebuffer/paint.js.map +1 -0
- package/dist/cli/framebuffer/parse.js +266 -0
- package/dist/cli/framebuffer/parse.js.map +1 -0
- package/dist/cli/framebuffer/screen.js +196 -0
- package/dist/cli/framebuffer/screen.js.map +1 -0
- package/dist/cli/framebuffer/writer.js +139 -0
- package/dist/cli/framebuffer/writer.js.map +1 -0
- package/dist/cli/groupReveal.js +51 -0
- package/dist/cli/groupReveal.js.map +1 -0
- package/dist/cli/help.js +55 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/inputView.js +105 -0
- package/dist/cli/inputView.js.map +1 -0
- package/dist/cli/keyManager.js +65 -0
- package/dist/cli/keyManager.js.map +1 -0
- package/dist/cli/keySetup.js +35 -0
- package/dist/cli/keySetup.js.map +1 -0
- package/dist/cli/keyStore.js +73 -0
- package/dist/cli/keyStore.js.map +1 -0
- package/dist/cli/markdown.js +460 -0
- package/dist/cli/markdown.js.map +1 -0
- package/dist/cli/messageQueue.js +96 -0
- package/dist/cli/messageQueue.js.map +1 -0
- package/dist/cli/modes.js +90 -0
- package/dist/cli/modes.js.map +1 -0
- package/dist/cli/mouse.js +78 -0
- package/dist/cli/mouse.js.map +1 -0
- package/dist/cli/pasteAssembler.js +44 -0
- package/dist/cli/pasteAssembler.js.map +1 -0
- package/dist/cli/pathComplete.js +39 -0
- package/dist/cli/pathComplete.js.map +1 -0
- package/dist/cli/perfLog.js +90 -0
- package/dist/cli/perfLog.js.map +1 -0
- package/dist/cli/reveal.js +32 -0
- package/dist/cli/reveal.js.map +1 -0
- package/dist/cli/revealPace.js +59 -0
- package/dist/cli/revealPace.js.map +1 -0
- package/dist/cli/sessionCarry.js +19 -0
- package/dist/cli/sessionCarry.js.map +1 -0
- package/dist/cli/smoothScroll.js +74 -0
- package/dist/cli/smoothScroll.js.map +1 -0
- package/dist/cli/startupArgs.js +96 -0
- package/dist/cli/startupArgs.js.map +1 -0
- package/dist/cli/terminalRestore.js +34 -0
- package/dist/cli/terminalRestore.js.map +1 -0
- package/dist/cli/toolDisplay.js +219 -0
- package/dist/cli/toolDisplay.js.map +1 -0
- package/dist/cli/toolItems.js +65 -0
- package/dist/cli/toolItems.js.map +1 -0
- package/dist/cli/transcript.js +351 -0
- package/dist/cli/transcript.js.map +1 -0
- package/dist/cli/trust.js +79 -0
- package/dist/cli/trust.js.map +1 -0
- package/dist/cli/updateCheck.js +107 -0
- package/dist/cli/updateCheck.js.map +1 -0
- package/dist/cli/version.js +39 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/cli/viewport.js +179 -0
- package/dist/cli/viewport.js.map +1 -0
- package/dist/cli/virtualWindow.js +103 -0
- package/dist/cli/virtualWindow.js.map +1 -0
- package/dist/cli/workingVerb.js +37 -0
- package/dist/cli/workingVerb.js.map +1 -0
- package/dist/cli/wrap.js +145 -0
- package/dist/cli/wrap.js.map +1 -0
- package/dist/drivers/anthropic/cachePoints.js +77 -0
- package/dist/drivers/anthropic/cachePoints.js.map +1 -0
- package/dist/drivers/anthropic/client.js +432 -0
- package/dist/drivers/anthropic/client.js.map +1 -0
- package/dist/drivers/anthropic/index.js +10 -0
- package/dist/drivers/anthropic/index.js.map +1 -0
- package/dist/drivers/anthropic/manifest.js +221 -0
- package/dist/drivers/anthropic/manifest.js.map +1 -0
- package/dist/drivers/cerebras/client.js +69 -0
- package/dist/drivers/cerebras/client.js.map +1 -0
- package/dist/drivers/cerebras/index.js +5 -0
- package/dist/drivers/cerebras/index.js.map +1 -0
- package/dist/drivers/cerebras/manifest.js +140 -0
- package/dist/drivers/cerebras/manifest.js.map +1 -0
- package/dist/drivers/clientId.js +41 -0
- package/dist/drivers/clientId.js.map +1 -0
- package/dist/drivers/contextOverflow.js +77 -0
- package/dist/drivers/contextOverflow.js.map +1 -0
- package/dist/drivers/deepseek/client.js +168 -0
- package/dist/drivers/deepseek/client.js.map +1 -0
- package/dist/drivers/deepseek/index.js +16 -0
- package/dist/drivers/deepseek/index.js.map +1 -0
- package/dist/drivers/deepseek/inlineTools.js +46 -0
- package/dist/drivers/deepseek/inlineTools.js.map +1 -0
- package/dist/drivers/deepseek/manifest.js +166 -0
- package/dist/drivers/deepseek/manifest.js.map +1 -0
- package/dist/drivers/gemini/client.js +38 -0
- package/dist/drivers/gemini/client.js.map +1 -0
- package/dist/drivers/gemini/index.js +5 -0
- package/dist/drivers/gemini/index.js.map +1 -0
- package/dist/drivers/gemini/manifest.js +150 -0
- package/dist/drivers/gemini/manifest.js.map +1 -0
- package/dist/drivers/glm/client.js +90 -0
- package/dist/drivers/glm/client.js.map +1 -0
- package/dist/drivers/glm/index.js +9 -0
- package/dist/drivers/glm/index.js.map +1 -0
- package/dist/drivers/glm/manifest.js +183 -0
- package/dist/drivers/glm/manifest.js.map +1 -0
- package/dist/drivers/groq/client.js +80 -0
- package/dist/drivers/groq/client.js.map +1 -0
- package/dist/drivers/groq/index.js +5 -0
- package/dist/drivers/groq/index.js.map +1 -0
- package/dist/drivers/groq/manifest.js +160 -0
- package/dist/drivers/groq/manifest.js.map +1 -0
- package/dist/drivers/kimi/client.js +82 -0
- package/dist/drivers/kimi/client.js.map +1 -0
- package/dist/drivers/kimi/index.js +9 -0
- package/dist/drivers/kimi/index.js.map +1 -0
- package/dist/drivers/kimi/manifest.js +168 -0
- package/dist/drivers/kimi/manifest.js.map +1 -0
- package/dist/drivers/meta/client.js +30 -0
- package/dist/drivers/meta/client.js.map +1 -0
- package/dist/drivers/meta/index.js +5 -0
- package/dist/drivers/meta/index.js.map +1 -0
- package/dist/drivers/meta/manifest.js +101 -0
- package/dist/drivers/meta/manifest.js.map +1 -0
- package/dist/drivers/minimax/client.js +36 -0
- package/dist/drivers/minimax/client.js.map +1 -0
- package/dist/drivers/minimax/index.js +5 -0
- package/dist/drivers/minimax/index.js.map +1 -0
- package/dist/drivers/minimax/manifest.js +120 -0
- package/dist/drivers/minimax/manifest.js.map +1 -0
- package/dist/drivers/mistral/client.js +54 -0
- package/dist/drivers/mistral/client.js.map +1 -0
- package/dist/drivers/mistral/index.js +5 -0
- package/dist/drivers/mistral/index.js.map +1 -0
- package/dist/drivers/mistral/manifest.js +118 -0
- package/dist/drivers/mistral/manifest.js.map +1 -0
- package/dist/drivers/openai/client.js +290 -0
- package/dist/drivers/openai/client.js.map +1 -0
- package/dist/drivers/openai/index.js +9 -0
- package/dist/drivers/openai/index.js.map +1 -0
- package/dist/drivers/openai/manifest.js +133 -0
- package/dist/drivers/openai/manifest.js.map +1 -0
- package/dist/drivers/openaiCompat/wire.js +493 -0
- package/dist/drivers/openaiCompat/wire.js.map +1 -0
- package/dist/drivers/partialTurn.js +23 -0
- package/dist/drivers/partialTurn.js.map +1 -0
- package/dist/drivers/providerError.js +181 -0
- package/dist/drivers/providerError.js.map +1 -0
- package/dist/drivers/qwen/client.js +93 -0
- package/dist/drivers/qwen/client.js.map +1 -0
- package/dist/drivers/qwen/index.js +9 -0
- package/dist/drivers/qwen/index.js.map +1 -0
- package/dist/drivers/qwen/manifest.js +146 -0
- package/dist/drivers/qwen/manifest.js.map +1 -0
- package/dist/drivers/registry.js +177 -0
- package/dist/drivers/registry.js.map +1 -0
- package/dist/drivers/retryPolicy.js +129 -0
- package/dist/drivers/retryPolicy.js.map +1 -0
- package/dist/drivers/searchBlocks.js +61 -0
- package/dist/drivers/searchBlocks.js.map +1 -0
- package/dist/drivers/types.js +2 -0
- package/dist/drivers/types.js.map +1 -0
- package/dist/drivers/xai/client.js +63 -0
- package/dist/drivers/xai/client.js.map +1 -0
- package/dist/drivers/xai/index.js +5 -0
- package/dist/drivers/xai/index.js.map +1 -0
- package/dist/drivers/xai/manifest.js +137 -0
- package/dist/drivers/xai/manifest.js.map +1 -0
- package/dist/dynamo/_probe.tmp.js +20 -0
- package/dist/dynamo/_probe.tmp.js.map +1 -0
- package/dist/dynamo/cacheBreak.js +88 -0
- package/dist/dynamo/cacheBreak.js.map +1 -0
- package/dist/dynamo/contextWindow.js +243 -0
- package/dist/dynamo/contextWindow.js.map +1 -0
- package/dist/dynamo/engine.js +2011 -0
- package/dist/dynamo/engine.js.map +1 -0
- package/dist/dynamo/guard.js +132 -0
- package/dist/dynamo/guard.js.map +1 -0
- package/dist/dynamo/liveMeter.js +58 -0
- package/dist/dynamo/liveMeter.js.map +1 -0
- package/dist/dynamo/model.js +172 -0
- package/dist/dynamo/model.js.map +1 -0
- package/dist/dynamo/planArtifact.js +125 -0
- package/dist/dynamo/planArtifact.js.map +1 -0
- package/dist/dynamo/pricing.js +140 -0
- package/dist/dynamo/pricing.js.map +1 -0
- package/dist/dynamo/prompt.js +264 -0
- package/dist/dynamo/prompt.js.map +1 -0
- package/dist/dynamo/spend.js +45 -0
- package/dist/dynamo/spend.js.map +1 -0
- package/dist/dynamo/verify.js +483 -0
- package/dist/dynamo/verify.js.map +1 -0
- package/dist/governor/forbidden.js +181 -0
- package/dist/governor/forbidden.js.map +1 -0
- package/dist/governor/freshness.js +83 -0
- package/dist/governor/freshness.js.map +1 -0
- package/dist/governor/frontmatter.js +38 -0
- package/dist/governor/frontmatter.js.map +1 -0
- package/dist/governor/glob.js +75 -0
- package/dist/governor/glob.js.map +1 -0
- package/dist/governor/index.js +87 -0
- package/dist/governor/index.js.map +1 -0
- package/dist/governor/rules.js +80 -0
- package/dist/governor/rules.js.map +1 -0
- package/dist/governor/scope.js +91 -0
- package/dist/governor/scope.js.map +1 -0
- package/dist/governor/skills.js +176 -0
- package/dist/governor/skills.js.map +1 -0
- package/dist/governor/types.js +16 -0
- package/dist/governor/types.js.map +1 -0
- package/dist/governor/write.js +182 -0
- package/dist/governor/write.js.map +1 -0
- package/dist/index.js +89 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/catalog.js +232 -0
- package/dist/mcp/catalog.js.map +1 -0
- package/dist/mcp/config.js +116 -0
- package/dist/mcp/config.js.map +1 -0
- package/dist/mcp/configWrite.js +254 -0
- package/dist/mcp/configWrite.js.map +1 -0
- package/dist/mcp/connection.js +504 -0
- package/dist/mcp/connection.js.map +1 -0
- package/dist/mcp/deferred.js +104 -0
- package/dist/mcp/deferred.js.map +1 -0
- package/dist/mcp/discover.js +128 -0
- package/dist/mcp/discover.js.map +1 -0
- package/dist/mcp/manager.js +679 -0
- package/dist/mcp/manager.js.map +1 -0
- package/dist/mcp/paramHeaders.js +163 -0
- package/dist/mcp/paramHeaders.js.map +1 -0
- package/dist/mcp/prompts.js +136 -0
- package/dist/mcp/prompts.js.map +1 -0
- package/dist/mcp/protocol.js +171 -0
- package/dist/mcp/protocol.js.map +1 -0
- package/dist/mcp/resources.js +119 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/resultStore.js +180 -0
- package/dist/mcp/resultStore.js.map +1 -0
- package/dist/mcp/subscriptions.js +74 -0
- package/dist/mcp/subscriptions.js.map +1 -0
- package/dist/mcp/transport/headerValue.js +40 -0
- package/dist/mcp/transport/headerValue.js.map +1 -0
- package/dist/mcp/transport/http.js +321 -0
- package/dist/mcp/transport/http.js.map +1 -0
- package/dist/mcp/transport/stdio.js +234 -0
- package/dist/mcp/transport/stdio.js.map +1 -0
- package/dist/mcp/transport/types.js +27 -0
- package/dist/mcp/transport/types.js.map +1 -0
- package/dist/mcp/trust.js +98 -0
- package/dist/mcp/trust.js.map +1 -0
- package/dist/mcp/trustStore.js +55 -0
- package/dist/mcp/trustStore.js.map +1 -0
- package/dist/memory/autoMemory.js +340 -0
- package/dist/memory/autoMemory.js.map +1 -0
- package/dist/memory/compaction.js +513 -0
- package/dist/memory/compaction.js.map +1 -0
- package/dist/memory/images.js +173 -0
- package/dist/memory/images.js.map +1 -0
- package/dist/memory/presence.js +59 -0
- package/dist/memory/presence.js.map +1 -0
- package/dist/memory/projectNotes.js +247 -0
- package/dist/memory/projectNotes.js.map +1 -0
- package/dist/memory/restore.js +72 -0
- package/dist/memory/restore.js.map +1 -0
- package/dist/memory/session.js +472 -0
- package/dist/memory/session.js.map +1 -0
- package/dist/memory/sessionMemory.js +142 -0
- package/dist/memory/sessionMemory.js.map +1 -0
- package/dist/memory/sessionMemoryCompact.js +136 -0
- package/dist/memory/sessionMemoryCompact.js.map +1 -0
- package/dist/memory/store.js +217 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/memory/types.js +14 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/memory/workingSet.js +383 -0
- package/dist/memory/workingSet.js.map +1 -0
- package/dist/project/context.js +425 -0
- package/dist/project/context.js.map +1 -0
- package/dist/tools/approval.js +189 -0
- package/dist/tools/approval.js.map +1 -0
- package/dist/tools/askUser.js +103 -0
- package/dist/tools/askUser.js.map +1 -0
- package/dist/tools/atomicWrite.js +151 -0
- package/dist/tools/atomicWrite.js.map +1 -0
- package/dist/tools/backgroundShells.js +468 -0
- package/dist/tools/backgroundShells.js.map +1 -0
- package/dist/tools/captureSweep.js +77 -0
- package/dist/tools/captureSweep.js.map +1 -0
- package/dist/tools/chassisMux.js +92 -0
- package/dist/tools/chassisMux.js.map +1 -0
- package/dist/tools/checkpoints.js +328 -0
- package/dist/tools/checkpoints.js.map +1 -0
- package/dist/tools/codeIntel.js +267 -0
- package/dist/tools/codeIntel.js.map +1 -0
- package/dist/tools/deferredNative.js +121 -0
- package/dist/tools/deferredNative.js.map +1 -0
- package/dist/tools/detail.js +135 -0
- package/dist/tools/detail.js.map +1 -0
- package/dist/tools/diagnostics.js +174 -0
- package/dist/tools/diagnostics.js.map +1 -0
- package/dist/tools/edit.js +167 -0
- package/dist/tools/edit.js.map +1 -0
- package/dist/tools/editCore.js +283 -0
- package/dist/tools/editCore.js.map +1 -0
- package/dist/tools/editFile.js +183 -0
- package/dist/tools/editFile.js.map +1 -0
- package/dist/tools/editRipple.js +126 -0
- package/dist/tools/editRipple.js.map +1 -0
- package/dist/tools/editTarget.js +131 -0
- package/dist/tools/editTarget.js.map +1 -0
- package/dist/tools/editWindow.js +49 -0
- package/dist/tools/editWindow.js.map +1 -0
- package/dist/tools/eol.js +56 -0
- package/dist/tools/eol.js.map +1 -0
- package/dist/tools/exitPlan.js +175 -0
- package/dist/tools/exitPlan.js.map +1 -0
- package/dist/tools/focus.js +42 -0
- package/dist/tools/focus.js.map +1 -0
- package/dist/tools/gitignore.js +148 -0
- package/dist/tools/gitignore.js.map +1 -0
- package/dist/tools/glob.js +134 -0
- package/dist/tools/glob.js.map +1 -0
- package/dist/tools/governorTools.js +258 -0
- package/dist/tools/governorTools.js.map +1 -0
- package/dist/tools/grep.js +450 -0
- package/dist/tools/grep.js.map +1 -0
- package/dist/tools/guard.js +220 -0
- package/dist/tools/guard.js.map +1 -0
- package/dist/tools/killTree.js +215 -0
- package/dist/tools/killTree.js.map +1 -0
- package/dist/tools/listDir.js +143 -0
- package/dist/tools/listDir.js.map +1 -0
- package/dist/tools/mcpAdd.js +176 -0
- package/dist/tools/mcpAdd.js.map +1 -0
- package/dist/tools/mcpResources.js +116 -0
- package/dist/tools/mcpResources.js.map +1 -0
- package/dist/tools/mcpSearch.js +123 -0
- package/dist/tools/mcpSearch.js.map +1 -0
- package/dist/tools/multiEdit.js +168 -0
- package/dist/tools/multiEdit.js.map +1 -0
- package/dist/tools/paths.js +225 -0
- package/dist/tools/paths.js.map +1 -0
- package/dist/tools/posixShell.js +123 -0
- package/dist/tools/posixShell.js.map +1 -0
- package/dist/tools/readFile.js +371 -0
- package/dist/tools/readFile.js.map +1 -0
- package/dist/tools/readSymbol.js +145 -0
- package/dist/tools/readSymbol.js.map +1 -0
- package/dist/tools/registry.js +120 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/replaceSymbol.js +141 -0
- package/dist/tools/replaceSymbol.js.map +1 -0
- package/dist/tools/results.js +15 -0
- package/dist/tools/results.js.map +1 -0
- package/dist/tools/ripgrep.js +145 -0
- package/dist/tools/ripgrep.js.map +1 -0
- package/dist/tools/runCommand.js +633 -0
- package/dist/tools/runCommand.js.map +1 -0
- package/dist/tools/saveMemory.js +102 -0
- package/dist/tools/saveMemory.js.map +1 -0
- package/dist/tools/screenshot.js +200 -0
- package/dist/tools/screenshot.js.map +1 -0
- package/dist/tools/screenshotWin.js +227 -0
- package/dist/tools/screenshotWin.js.map +1 -0
- package/dist/tools/search.js +121 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/sessionTools.js +187 -0
- package/dist/tools/sessionTools.js.map +1 -0
- package/dist/tools/shellCheckpoint.js +123 -0
- package/dist/tools/shellCheckpoint.js.map +1 -0
- package/dist/tools/shellLint.js +102 -0
- package/dist/tools/shellLint.js.map +1 -0
- package/dist/tools/shellTools.js +203 -0
- package/dist/tools/shellTools.js.map +1 -0
- package/dist/tools/spanCore.js +78 -0
- package/dist/tools/spanCore.js.map +1 -0
- package/dist/tools/subagent.js +224 -0
- package/dist/tools/subagent.js.map +1 -0
- package/dist/tools/subagentReport.js +114 -0
- package/dist/tools/subagentReport.js.map +1 -0
- package/dist/tools/tempSweep.js +118 -0
- package/dist/tools/tempSweep.js.map +1 -0
- package/dist/tools/todo.js +117 -0
- package/dist/tools/todo.js.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/untrusted.js +46 -0
- package/dist/tools/untrusted.js.map +1 -0
- package/dist/tools/useSkill.js +62 -0
- package/dist/tools/useSkill.js.map +1 -0
- package/dist/tools/walk.js +152 -0
- package/dist/tools/walk.js.map +1 -0
- package/dist/tools/web.js +61 -0
- package/dist/tools/web.js.map +1 -0
- package/dist/tools/webFetch.js +444 -0
- package/dist/tools/webFetch.js.map +1 -0
- package/dist/tools/webSearch.js +130 -0
- package/dist/tools/webSearch.js.map +1 -0
- package/dist/tools/workspace.js +212 -0
- package/dist/tools/workspace.js.map +1 -0
- package/dist/tools/workspaceDiscover.js +216 -0
- package/dist/tools/workspaceDiscover.js.map +1 -0
- package/dist/tools/writeFile.js +162 -0
- package/dist/tools/writeFile.js.map +1 -0
- package/package.json +74 -28
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/mcp/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* paramHeaders.ts — mirroring annotated tool arguments into `Mcp-Param-*` headers.
|
|
3
|
+
*
|
|
4
|
+
* A server may mark individual parameters in a tool's `inputSchema` with `x-mcp-header`,
|
|
5
|
+
* asking for their values to be repeated in HTTP headers so that a gateway can route or
|
|
6
|
+
* rate-limit on them without reading the body. Supporting this is not optional for a
|
|
7
|
+
* Streamable HTTP client, and skipping it does not degrade gracefully: a server MUST
|
|
8
|
+
* reject a call whose annotated value is present in the body but missing from the
|
|
9
|
+
* headers, with 400 and `-32020`. An ignored annotation makes the tool uncallable, not
|
|
10
|
+
* merely unoptimised.
|
|
11
|
+
*
|
|
12
|
+
* The constraints enforced here are the spec's, and they are strict for a reason: these
|
|
13
|
+
* strings are chosen by a third party and become header NAMES. Nothing is clamped,
|
|
14
|
+
* escaped, or repaired into shape — a definition that violates any of them takes the
|
|
15
|
+
* whole tool out of the catalog, because a tool we cannot mirror exactly is one we
|
|
16
|
+
* cannot call correctly either. Reporting the tool while silently mis-calling it would
|
|
17
|
+
* be the worse failure.
|
|
18
|
+
*/
|
|
19
|
+
import { encodeHeaderValue } from "./transport/headerValue.js";
|
|
20
|
+
/** The schema property a server annotates a parameter with. */
|
|
21
|
+
const ANNOTATION = "x-mcp-header";
|
|
22
|
+
/**
|
|
23
|
+
* HTTP field-name token characters (RFC 9110 5.1). Control characters, CR and LF are
|
|
24
|
+
* excluded by construction rather than by a separate check — they are simply not tchar.
|
|
25
|
+
*/
|
|
26
|
+
const TCHAR = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
|
|
27
|
+
/** Only these carry a single unambiguous text form. `number` is excluded by the spec:
|
|
28
|
+
* `42.0` and `42` are the same value and not the same header. */
|
|
29
|
+
const PRIMITIVES = new Set(["string", "integer", "boolean"]);
|
|
30
|
+
function isPlainObject(value) {
|
|
31
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Every occurrence of the annotation key anywhere in the schema, reachable or not.
|
|
35
|
+
*
|
|
36
|
+
* Needed because "unreachable annotations are ignored" is NOT the rule. An annotation
|
|
37
|
+
* under `items`, `oneOf`, `if`, or a `$ref` invalidates the whole tool definition, so
|
|
38
|
+
* they have to be counted where they should not be, not just collected where they
|
|
39
|
+
* should. Comparing this total against the reachable ones is what detects the
|
|
40
|
+
* difference without teaching the reachable walk about every keyword it must avoid.
|
|
41
|
+
*/
|
|
42
|
+
function countAnnotations(node) {
|
|
43
|
+
if (Array.isArray(node))
|
|
44
|
+
return node.reduce((n, v) => n + countAnnotations(v), 0);
|
|
45
|
+
if (!isPlainObject(node))
|
|
46
|
+
return 0;
|
|
47
|
+
let total = 0;
|
|
48
|
+
for (const [key, value] of Object.entries(node)) {
|
|
49
|
+
// The annotation's own value is a string; there is nothing beneath it to visit.
|
|
50
|
+
if (key === ANNOTATION)
|
|
51
|
+
total += 1;
|
|
52
|
+
else
|
|
53
|
+
total += countAnnotations(value);
|
|
54
|
+
}
|
|
55
|
+
return total;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Validate a tool's `x-mcp-header` annotations and return the reachable ones (pure).
|
|
59
|
+
*
|
|
60
|
+
* A tool with no annotations at all scans clean with an empty list, which is the
|
|
61
|
+
* overwhelmingly common case and costs one walk of a small object.
|
|
62
|
+
*/
|
|
63
|
+
export function scanParamHeaders(inputSchema) {
|
|
64
|
+
const annotations = [];
|
|
65
|
+
// Lowercased header name -> the path that claimed it, so a clash can name both sides.
|
|
66
|
+
const claimed = new Map();
|
|
67
|
+
let failure = null;
|
|
68
|
+
const fail = (reason) => {
|
|
69
|
+
failure ??= reason;
|
|
70
|
+
};
|
|
71
|
+
const visit = (node, path) => {
|
|
72
|
+
const properties = node.properties;
|
|
73
|
+
if (!isPlainObject(properties))
|
|
74
|
+
return;
|
|
75
|
+
for (const [key, child] of Object.entries(properties)) {
|
|
76
|
+
if (!isPlainObject(child))
|
|
77
|
+
continue;
|
|
78
|
+
const here = [...path, key];
|
|
79
|
+
const raw = child[ANNOTATION];
|
|
80
|
+
if (raw !== undefined)
|
|
81
|
+
inspect(raw, child, here);
|
|
82
|
+
// Nested objects are reachable as long as every step is a `properties` key, so the
|
|
83
|
+
// descent is unconditional here and simply finds nothing under a leaf.
|
|
84
|
+
visit(child, here);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
const inspect = (raw, child, path) => {
|
|
88
|
+
const where = path.join(".");
|
|
89
|
+
if (typeof raw !== "string" || raw === "")
|
|
90
|
+
return fail(`'${where}' has an empty ${ANNOTATION}`);
|
|
91
|
+
if (!TCHAR.test(raw))
|
|
92
|
+
return fail(`'${where}' has ${ANNOTATION} '${raw}', which is not a valid header name`);
|
|
93
|
+
const type = child.type;
|
|
94
|
+
if (typeof type !== "string" || !PRIMITIVES.has(type)) {
|
|
95
|
+
return fail(`'${where}' is annotated but its type is '${String(type)}', not string, integer or boolean`);
|
|
96
|
+
}
|
|
97
|
+
const key = raw.toLowerCase();
|
|
98
|
+
const previous = claimed.get(key);
|
|
99
|
+
// Case-insensitive, because header names are. Two properties asking for the same
|
|
100
|
+
// header cannot both be honoured and there is no basis for choosing.
|
|
101
|
+
if (previous)
|
|
102
|
+
return fail(`'${where}' and '${previous}' both claim the header '${raw}'`);
|
|
103
|
+
claimed.set(key, where);
|
|
104
|
+
annotations.push({ path, header: raw, type: type });
|
|
105
|
+
};
|
|
106
|
+
if (isPlainObject(inputSchema))
|
|
107
|
+
visit(inputSchema, []);
|
|
108
|
+
if (failure)
|
|
109
|
+
return { ok: false, reason: failure };
|
|
110
|
+
const total = countAnnotations(inputSchema);
|
|
111
|
+
if (total !== annotations.length) {
|
|
112
|
+
return {
|
|
113
|
+
ok: false,
|
|
114
|
+
reason: `${total - annotations.length} ${ANNOTATION} annotation(s) sit where they cannot be reached by a chain of 'properties' keys`,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
return { ok: true, annotations };
|
|
118
|
+
}
|
|
119
|
+
/** The single text form of one value, or null if it has none we may send. */
|
|
120
|
+
function render(value, type) {
|
|
121
|
+
if (type === "string")
|
|
122
|
+
return typeof value === "string" ? value : null;
|
|
123
|
+
if (type === "boolean")
|
|
124
|
+
return typeof value === "boolean" ? String(value) : null;
|
|
125
|
+
// Outside the safe range the decimal form is already a different number than the one
|
|
126
|
+
// JSON carried, so there is no faithful header to send.
|
|
127
|
+
return typeof value === "number" && Number.isSafeInteger(value) ? String(value) : null;
|
|
128
|
+
}
|
|
129
|
+
/** Read the value at an exact property path, or undefined if the chain breaks. */
|
|
130
|
+
function valueAt(args, path) {
|
|
131
|
+
let node = args;
|
|
132
|
+
for (const key of path) {
|
|
133
|
+
// Own properties only: the path comes from a third-party schema, and inherited
|
|
134
|
+
// members like `constructor` are not values the caller passed.
|
|
135
|
+
if (!isPlainObject(node) || !Object.prototype.hasOwnProperty.call(node, key))
|
|
136
|
+
return undefined;
|
|
137
|
+
node = node[key];
|
|
138
|
+
}
|
|
139
|
+
return node;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* The `Mcp-Param-*` headers for one call (pure).
|
|
143
|
+
*
|
|
144
|
+
* A parameter that was not supplied is omitted rather than sent empty — the spec pairs
|
|
145
|
+
* "client omits the header" with "server must not expect it", so an absent value and an
|
|
146
|
+
* absent header agree. A value we cannot represent faithfully is also omitted: both
|
|
147
|
+
* omitting and sending a lossy value get the call rejected, and only one of them is
|
|
148
|
+
* honest about why.
|
|
149
|
+
*/
|
|
150
|
+
export function paramHeaders(annotations, args) {
|
|
151
|
+
const out = {};
|
|
152
|
+
for (const annotation of annotations) {
|
|
153
|
+
const value = valueAt(args, annotation.path);
|
|
154
|
+
if (value === undefined || value === null)
|
|
155
|
+
continue;
|
|
156
|
+
const text = render(value, annotation.type);
|
|
157
|
+
if (text === null)
|
|
158
|
+
continue;
|
|
159
|
+
out[`mcp-param-${annotation.header}`] = encodeHeaderValue(text);
|
|
160
|
+
}
|
|
161
|
+
return out;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=paramHeaders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paramHeaders.js","sourceRoot":"","sources":["../../src/mcp/paramHeaders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* prompts.ts — a server's own canned instructions, offered as slash commands.
|
|
3
|
+
*
|
|
4
|
+
* The third thing an MCP server can expose. A tool is something the agent decides to
|
|
5
|
+
* call; a PROMPT is something the USER picks — "summarise this PR", "write the release
|
|
6
|
+
* notes the way we write them" — authored by whoever wrote the server and invoked
|
|
7
|
+
* deliberately. The spec is explicit that prompts are user-initiated, which settles where
|
|
8
|
+
* they belong in the UI: they are slash commands, not tools. Advertising them as tools
|
|
9
|
+
* would also put them in the cached prefix, and they are the least deserving thing there
|
|
10
|
+
* — the model does not choose them.
|
|
11
|
+
*
|
|
12
|
+
* That lands them on a seam this codebase already has. Project skills are already listed
|
|
13
|
+
* alongside the built-in commands and, when run, push a user message and take a turn.
|
|
14
|
+
* A server prompt does exactly that, so it reuses the mechanism rather than inventing one.
|
|
15
|
+
*
|
|
16
|
+
* Naming: `/server:prompt`. Tool names have to survive provider constraints, which is why
|
|
17
|
+
* those are `mcp__server__tool`; a slash command only has to be read by a person, and
|
|
18
|
+
* `/github:review` is a name you can type.
|
|
19
|
+
*
|
|
20
|
+
* Pure. `connection.ts` fetches, `App.tsx` renders and runs.
|
|
21
|
+
*/
|
|
22
|
+
/** Longest prompt description we carry into the command list. */
|
|
23
|
+
export const MAX_PROMPT_DESCRIPTION = 256;
|
|
24
|
+
/** Does this server say it has prompts at all? */
|
|
25
|
+
export function hasPrompts(capabilities) {
|
|
26
|
+
return Boolean(capabilities?.prompts);
|
|
27
|
+
}
|
|
28
|
+
/** The slash command for a prompt. */
|
|
29
|
+
export function promptCommand(prompt) {
|
|
30
|
+
return `/${prompt.server}:${prompt.name}`;
|
|
31
|
+
}
|
|
32
|
+
/** Split `/server:name` back into its parts, or null if it is not one. */
|
|
33
|
+
export function parsePromptCommand(command) {
|
|
34
|
+
const m = /^\/([^\s:]+):([^\s:]+)$/.exec(command.trim());
|
|
35
|
+
return m ? { server: m[1], name: m[2] } : null;
|
|
36
|
+
}
|
|
37
|
+
function text(value, max) {
|
|
38
|
+
const s = typeof value === "string" ? value.trim() : "";
|
|
39
|
+
return s.length > max ? s.slice(0, max - 1) + "…" : s;
|
|
40
|
+
}
|
|
41
|
+
/** Parse a `prompts/list` payload, dropping what cannot be used (pure). */
|
|
42
|
+
export function parsePromptList(server, result) {
|
|
43
|
+
const raw = result?.prompts;
|
|
44
|
+
if (!Array.isArray(raw))
|
|
45
|
+
return [];
|
|
46
|
+
const out = [];
|
|
47
|
+
const seen = new Set();
|
|
48
|
+
for (const item of raw) {
|
|
49
|
+
const p = item;
|
|
50
|
+
const name = typeof p?.name === "string" ? p.name.trim() : "";
|
|
51
|
+
// A name with a space or a colon could not be typed as a command, and a colon would
|
|
52
|
+
// make `parsePromptCommand` split in the wrong place.
|
|
53
|
+
if (!name || seen.has(name) || /[\s:/]/.test(name))
|
|
54
|
+
continue;
|
|
55
|
+
seen.add(name);
|
|
56
|
+
const args = Array.isArray(p?.arguments) ? p.arguments : [];
|
|
57
|
+
out.push({
|
|
58
|
+
server,
|
|
59
|
+
name,
|
|
60
|
+
description: text(p?.description, MAX_PROMPT_DESCRIPTION),
|
|
61
|
+
arguments: args
|
|
62
|
+
.map((a) => {
|
|
63
|
+
const arg = a;
|
|
64
|
+
const argName = typeof arg?.name === "string" ? arg.name.trim() : "";
|
|
65
|
+
return argName ? { name: argName, description: text(arg?.description, 160), required: arg?.required === true } : null;
|
|
66
|
+
})
|
|
67
|
+
.filter((a) => a !== null),
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return [...out].sort((a, b) => a.server.localeCompare(b.server) || a.name.localeCompare(b.name));
|
|
71
|
+
}
|
|
72
|
+
/** The usage line shown when a prompt is invoked without the arguments it needs. */
|
|
73
|
+
export function promptUsage(prompt) {
|
|
74
|
+
const args = prompt.arguments.map((a) => (a.required ? `<${a.name}>` : `[${a.name}]`)).join(" ");
|
|
75
|
+
const detail = prompt.arguments.filter((a) => a.description).map((a) => ` ${a.name} — ${a.description}`);
|
|
76
|
+
return [`Usage: ${promptCommand(prompt)}${args ? ` ${args}` : ""}`, ...detail].join("\n");
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Map positional command arguments onto a prompt's declared ones (pure).
|
|
80
|
+
*
|
|
81
|
+
* Positional, because a slash command is typed by a person in a hurry and
|
|
82
|
+
* `key=value key=value` is not that. The LAST declared argument soaks up whatever is
|
|
83
|
+
* left over, so `/github:review 123 be harsh about tests` puts the whole trailing phrase
|
|
84
|
+
* in one argument instead of silently dropping everything after the first space — which
|
|
85
|
+
* is the failure a naive split produces and nobody notices.
|
|
86
|
+
*/
|
|
87
|
+
export function mapPromptArguments(prompt, tokens) {
|
|
88
|
+
const values = {};
|
|
89
|
+
const declared = prompt.arguments;
|
|
90
|
+
for (let i = 0; i < declared.length; i++) {
|
|
91
|
+
const arg = declared[i];
|
|
92
|
+
const isLast = i === declared.length - 1;
|
|
93
|
+
const value = isLast ? tokens.slice(i).join(" ") : (tokens[i] ?? "");
|
|
94
|
+
if (value)
|
|
95
|
+
values[arg.name] = value;
|
|
96
|
+
}
|
|
97
|
+
const missing = declared.filter((a) => a.required && !values[a.name]).map((a) => a.name);
|
|
98
|
+
return { values, missing };
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Flatten a `prompts/get` result into the text of one user turn (pure).
|
|
102
|
+
*
|
|
103
|
+
* A prompt may come back as several messages with roles. Our transcript takes a plain
|
|
104
|
+
* user message, and inventing assistant turns the model never produced would be putting
|
|
105
|
+
* words in its mouth — so a multi-message prompt is rendered as a labelled transcript
|
|
106
|
+
* inside one message. Single-message prompts, which is nearly all of them, come through
|
|
107
|
+
* as their own text with no decoration at all.
|
|
108
|
+
*/
|
|
109
|
+
export function renderPromptMessages(result) {
|
|
110
|
+
const raw = result?.messages;
|
|
111
|
+
if (!Array.isArray(raw))
|
|
112
|
+
return "";
|
|
113
|
+
const parts = [];
|
|
114
|
+
for (const item of raw) {
|
|
115
|
+
const m = item;
|
|
116
|
+
const role = typeof m?.role === "string" ? m.role : "user";
|
|
117
|
+
const content = m?.content;
|
|
118
|
+
let body = "";
|
|
119
|
+
if (typeof content === "string")
|
|
120
|
+
body = content;
|
|
121
|
+
else if (Array.isArray(content)) {
|
|
122
|
+
body = content.map((c) => (typeof c?.text === "string" ? c.text : "")).filter(Boolean).join("\n");
|
|
123
|
+
}
|
|
124
|
+
else if (content && typeof content === "object" && typeof content.text === "string") {
|
|
125
|
+
body = content.text;
|
|
126
|
+
}
|
|
127
|
+
if (body.trim())
|
|
128
|
+
parts.push({ role, text: body });
|
|
129
|
+
}
|
|
130
|
+
if (parts.length === 0)
|
|
131
|
+
return "";
|
|
132
|
+
if (parts.length === 1)
|
|
133
|
+
return parts[0].text;
|
|
134
|
+
return parts.map((p) => `[${p.role}]\n${p.text}`).join("\n\n");
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/mcp/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* protocol.ts — the MCP wire, as data and pure functions.
|
|
3
|
+
*
|
|
4
|
+
* MCP went STATELESS in revision 2026-07-28. That is not a tweak: the
|
|
5
|
+
* `initialize`/`notifications/initialized` handshake is gone, protocol-level sessions
|
|
6
|
+
* are gone, and every single request now carries its own protocol version and client
|
|
7
|
+
* capabilities in a `_meta` envelope. A client written against the old shape does not
|
|
8
|
+
* "mostly work" against a new server; it never introduces itself at all.
|
|
9
|
+
*
|
|
10
|
+
* The catch is that the ecosystem did not move on the same day. Most servers in the
|
|
11
|
+
* wild still speak a 2024/2025 revision and still expect the handshake. So this module
|
|
12
|
+
* describes BOTH shapes and keeps the difference in one place: a `Dialect` picked once
|
|
13
|
+
* per connection (see `discover.ts`), which every request builder then respects.
|
|
14
|
+
*
|
|
15
|
+
* Everything here is PURE — types, envelope construction, result classification, error
|
|
16
|
+
* mapping. No sockets, no processes, no clock. The transports and the connection state
|
|
17
|
+
* machine are the only parts that touch the world, which keeps the fiddly protocol
|
|
18
|
+
* decisions unit-testable rather than smoke-testable.
|
|
19
|
+
*/
|
|
20
|
+
/** Protocol revisions this client understands, newest first. */
|
|
21
|
+
export const SUPPORTED_VERSIONS = ["2026-07-28", "2025-11-25", "2025-06-18", "2025-03-26", "2024-11-05"];
|
|
22
|
+
/** The revision we prefer and implement natively. */
|
|
23
|
+
export const PREFERRED_VERSION = "2026-07-28";
|
|
24
|
+
/** The revision at which MCP became stateless. At or after this, no handshake. */
|
|
25
|
+
export const STATELESS_SINCE = "2026-07-28";
|
|
26
|
+
/** Which dialect a negotiated version implies. */
|
|
27
|
+
export function dialectFor(version) {
|
|
28
|
+
return version >= STATELESS_SINCE ? "stateless" : "handshake";
|
|
29
|
+
}
|
|
30
|
+
// ─── _meta keys (2026-07-28) ────────────────────────────────────────────────────
|
|
31
|
+
// Reverse-DNS namespaced by the spec. Written out rather than templated so a typo
|
|
32
|
+
// is a visible diff and not a silently-ignored field.
|
|
33
|
+
export const META_PROTOCOL_VERSION = "io.modelcontextprotocol/protocolVersion";
|
|
34
|
+
export const META_CLIENT_CAPABILITIES = "io.modelcontextprotocol/clientCapabilities";
|
|
35
|
+
export const META_CLIENT_INFO = "io.modelcontextprotocol/clientInfo";
|
|
36
|
+
export const META_SERVER_INFO = "io.modelcontextprotocol/serverInfo";
|
|
37
|
+
export const META_LOG_LEVEL = "io.modelcontextprotocol/logLevel";
|
|
38
|
+
export const META_SUBSCRIPTION_ID = "io.modelcontextprotocol/subscriptionId";
|
|
39
|
+
export const DEFAULT_CLIENT_CAPABILITIES = {};
|
|
40
|
+
/**
|
|
41
|
+
* Build the `_meta` envelope for one request. Empty on the handshake dialect, where
|
|
42
|
+
* this information travelled once in `initialize` instead.
|
|
43
|
+
*/
|
|
44
|
+
export function buildMeta(dialect, version, identity, capabilities = DEFAULT_CLIENT_CAPABILITIES) {
|
|
45
|
+
if (dialect !== "stateless")
|
|
46
|
+
return undefined;
|
|
47
|
+
return {
|
|
48
|
+
[META_PROTOCOL_VERSION]: version,
|
|
49
|
+
[META_CLIENT_CAPABILITIES]: capabilities,
|
|
50
|
+
[META_CLIENT_INFO]: { name: identity.name, version: identity.version },
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/** Compose a request frame. `_meta` rides inside `params`, per the spec. */
|
|
54
|
+
export function buildRequest(id, method, params, meta) {
|
|
55
|
+
const body = meta ? { ...(params ?? {}), _meta: meta } : params;
|
|
56
|
+
return { jsonrpc: "2.0", id, method, ...(body ? { params: body } : {}) };
|
|
57
|
+
}
|
|
58
|
+
export function resultTypeOf(result) {
|
|
59
|
+
const t = result?.resultType;
|
|
60
|
+
return t === "input_required" ? "input_required" : "complete";
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The three methods a server may answer with `input_required`.
|
|
64
|
+
*
|
|
65
|
+
* Closed by the spec — "Servers MUST NOT send InputRequiredResult responses on any other
|
|
66
|
+
* client requests" — which is why this is a list and not a flag on every call. A
|
|
67
|
+
* `tools/list` that claimed to need input would be a broken server, and treating it as a
|
|
68
|
+
* continuation rather than as a catalog would hide that.
|
|
69
|
+
*/
|
|
70
|
+
export const MRTR_METHODS = ["tools/call", "resources/read", "prompts/get"];
|
|
71
|
+
/**
|
|
72
|
+
* Read an `InputRequiredResult`, or null if this result is simply complete (pure).
|
|
73
|
+
*
|
|
74
|
+
* Nothing is inspected beyond the shape: `requestState` is the server's private
|
|
75
|
+
* business and the spec forbids parsing it, so it is passed through as the string it
|
|
76
|
+
* arrived as. From `inputRequests` only the method names are lifted, and only so a
|
|
77
|
+
* failure can say what was asked for — the params belong to whoever can answer them.
|
|
78
|
+
*/
|
|
79
|
+
export function readInputRequired(result) {
|
|
80
|
+
if (resultTypeOf(result) !== "input_required")
|
|
81
|
+
return null;
|
|
82
|
+
const r = result;
|
|
83
|
+
const requests = {};
|
|
84
|
+
if (r.inputRequests && typeof r.inputRequests === "object" && !Array.isArray(r.inputRequests)) {
|
|
85
|
+
for (const [key, value] of Object.entries(r.inputRequests)) {
|
|
86
|
+
const method = value?.method;
|
|
87
|
+
requests[key] = { method: typeof method === "string" ? method : "unknown" };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
inputRequests: requests,
|
|
92
|
+
...(typeof r.requestState === "string" ? { requestState: r.requestState } : {}),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
export function cacheDirectiveOf(result) {
|
|
96
|
+
const r = result;
|
|
97
|
+
const ttl = typeof r?.ttlMs === "number" && Number.isFinite(r.ttlMs) && r.ttlMs >= 0 ? r.ttlMs : undefined;
|
|
98
|
+
const scope = r?.cacheScope === "public" || r?.cacheScope === "private" ? r.cacheScope : undefined;
|
|
99
|
+
return { ...(ttl !== undefined ? { ttlMs: ttl } : {}), ...(scope ? { cacheScope: scope } : {}) };
|
|
100
|
+
}
|
|
101
|
+
// ─── Errors ─────────────────────────────────────────────────────────────────────
|
|
102
|
+
/**
|
|
103
|
+
* The 2026-07-28 error-code partition. `-32000`–`-32019` stays implementation-defined
|
|
104
|
+
* (existing SDK usage is grandfathered); `-32020`–`-32099` is reserved for the spec.
|
|
105
|
+
*
|
|
106
|
+
* The three MCP codes were RENUMBERED out of the implementation-defined range in this
|
|
107
|
+
* revision, so the old values still appear in the wild and both have to be recognised.
|
|
108
|
+
* Resource-not-found also moved, from `-32002` to plain JSON-RPC `-32602`.
|
|
109
|
+
*/
|
|
110
|
+
export const ERROR_CODES = {
|
|
111
|
+
parse: -32700,
|
|
112
|
+
invalidRequest: -32600,
|
|
113
|
+
methodNotFound: -32601,
|
|
114
|
+
invalidParams: -32602,
|
|
115
|
+
internal: -32603,
|
|
116
|
+
headerMismatch: -32020,
|
|
117
|
+
missingRequiredClientCapability: -32021,
|
|
118
|
+
unsupportedProtocolVersion: -32022,
|
|
119
|
+
};
|
|
120
|
+
/** Pre-renumbering values, still sent by servers on older revisions. */
|
|
121
|
+
const LEGACY_ERROR_CODES = {
|
|
122
|
+
headerMismatch: -32001,
|
|
123
|
+
resourceNotFound: -32002,
|
|
124
|
+
missingRequiredClientCapability: -32003,
|
|
125
|
+
unsupportedProtocolVersion: -32004,
|
|
126
|
+
};
|
|
127
|
+
/** Classify a JSON-RPC error code, accepting both the new and pre-renumbering values. */
|
|
128
|
+
export function errorKind(code) {
|
|
129
|
+
switch (code) {
|
|
130
|
+
case ERROR_CODES.parse:
|
|
131
|
+
return "parse";
|
|
132
|
+
case ERROR_CODES.invalidRequest:
|
|
133
|
+
return "invalid-request";
|
|
134
|
+
case ERROR_CODES.methodNotFound:
|
|
135
|
+
return "method-not-found";
|
|
136
|
+
case ERROR_CODES.invalidParams:
|
|
137
|
+
return "invalid-params";
|
|
138
|
+
case ERROR_CODES.internal:
|
|
139
|
+
return "internal";
|
|
140
|
+
case ERROR_CODES.headerMismatch:
|
|
141
|
+
case LEGACY_ERROR_CODES.headerMismatch:
|
|
142
|
+
return "header-mismatch";
|
|
143
|
+
case ERROR_CODES.missingRequiredClientCapability:
|
|
144
|
+
case LEGACY_ERROR_CODES.missingRequiredClientCapability:
|
|
145
|
+
return "missing-capability";
|
|
146
|
+
case ERROR_CODES.unsupportedProtocolVersion:
|
|
147
|
+
case LEGACY_ERROR_CODES.unsupportedProtocolVersion:
|
|
148
|
+
return "unsupported-version";
|
|
149
|
+
default:
|
|
150
|
+
return "unknown";
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Does this error mean "that method does not exist here"?
|
|
155
|
+
*
|
|
156
|
+
* Load-bearing for version detection: a pre-2026 server has never heard of
|
|
157
|
+
* `server/discover`, and how it says so is not consistent. Most return
|
|
158
|
+
* `-32601 Method not found`; some return an internal error whose message says the
|
|
159
|
+
* same thing. Both have to count, or the backwards-compatibility probe reads a
|
|
160
|
+
* legacy server as simply broken and drops it.
|
|
161
|
+
*/
|
|
162
|
+
export function isMethodNotFound(code, message = "") {
|
|
163
|
+
if (errorKind(code) === "method-not-found")
|
|
164
|
+
return true;
|
|
165
|
+
return /method not found|unknown method|not supported|unsupported method/i.test(message);
|
|
166
|
+
}
|
|
167
|
+
/** Resource-not-found, across the code change (`-32002` → `-32602`). */
|
|
168
|
+
export function isResourceNotFound(code) {
|
|
169
|
+
return code === ERROR_CODES.invalidParams || code === LEGACY_ERROR_CODES.resourceNotFound;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/mcp/protocol.ts"],"names":[],"mappings":"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"}
|