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,432 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* client.ts — the Anthropic wire layer.
|
|
3
|
+
*
|
|
4
|
+
* The single place that knows how to talk to Anthropic's Messages API. Nothing
|
|
5
|
+
* above the driver knows about URLs, headers, or keys.
|
|
6
|
+
*
|
|
7
|
+
* This is a bigger translation than an OpenAI-compatible provider needs, because
|
|
8
|
+
* the stored transcript and Anthropic's wire format disagree in five places:
|
|
9
|
+
*
|
|
10
|
+
* 1. `system` is a top-level request field, not the first message.
|
|
11
|
+
* 2. Assistant tool calls are `tool_use` content BLOCKS, and their arguments are
|
|
12
|
+
* a parsed object — the transcript stores them as a JSON string.
|
|
13
|
+
* 3. Tool results are `tool_result` blocks inside a USER message; there is no
|
|
14
|
+
* `role: "tool"`.
|
|
15
|
+
* 4. All results from one assistant turn must arrive in a SINGLE user message.
|
|
16
|
+
* The transcript records them as consecutive `role: "tool"` entries, so runs
|
|
17
|
+
* of them are coalesced here. Splitting them would quietly teach the model to
|
|
18
|
+
* stop making parallel tool calls.
|
|
19
|
+
* 5. Caching is explicit: `cache_control` breakpoints mark the stable prefix,
|
|
20
|
+
* where an OpenAI-compatible provider just caches the longest identical one.
|
|
21
|
+
*
|
|
22
|
+
* All of that is format. None of it changes what the model is asked to do — the
|
|
23
|
+
* system prompt is the same bytes here as on any other provider.
|
|
24
|
+
*/
|
|
25
|
+
import Anthropic from "@anthropic-ai/sdk";
|
|
26
|
+
import { basename } from "node:path";
|
|
27
|
+
import { clientId } from "../clientId.js";
|
|
28
|
+
import { RETRY_MAX_ATTEMPTS } from "../retryPolicy.js";
|
|
29
|
+
import { isAbortLike } from "../retryPolicy.js";
|
|
30
|
+
import { salvagePartialTurn } from "../partialTurn.js";
|
|
31
|
+
import { extractSearch, SEARCH_MAX_USES, SEARCH_SYSTEM } from "../searchBlocks.js";
|
|
32
|
+
import { cacheBreakpoints, needsLadder } from "./cachePoints.js";
|
|
33
|
+
import { BUFFERED_OUTPUT_TOKENS, DEFAULT_MODEL, surfaceOf } from "./manifest.js";
|
|
34
|
+
const MODEL = process.env.MINDWEAVE_MODEL ?? DEFAULT_MODEL;
|
|
35
|
+
/** Output ceiling. This caps thinking AND answer together, so it needs headroom
|
|
36
|
+
* at the higher effort levels. The current-surface models accept up to 128K when
|
|
37
|
+
* streaming; Haiku 4.5 caps at exactly this number, which is why it is the value
|
|
38
|
+
* chosen rather than anything larger — one ceiling that is legal on all of them. */
|
|
39
|
+
const MAX_TOKENS_STREAM = 64_000;
|
|
40
|
+
/** Buffered calls are the small internal ones (summaries, page distillation), and
|
|
41
|
+
* a non-streaming request that runs long risks an HTTP timeout. The value lives
|
|
42
|
+
* in the manifest because core reserves room for it when setting the compaction
|
|
43
|
+
* bars — one constant, so the request and the reservation can't drift apart. */
|
|
44
|
+
const MAX_TOKENS_BUFFERED = BUFFERED_OUTPUT_TOKENS;
|
|
45
|
+
let client = null;
|
|
46
|
+
/** The shared SDK client, or a clear setup error if no key is configured yet. */
|
|
47
|
+
function api() {
|
|
48
|
+
if (!client) {
|
|
49
|
+
const apiKey = process.env.ANTHROPIC_API_KEY;
|
|
50
|
+
if (!apiKey) {
|
|
51
|
+
throw new Error("No ANTHROPIC_API_KEY found. Add your key to the global config so Mindweave works " +
|
|
52
|
+
"in every project:\n" +
|
|
53
|
+
" ~/.mindweave/.env → ANTHROPIC_API_KEY=your-key-here\n" +
|
|
54
|
+
"(A per-project .env or an exported shell variable also works.)");
|
|
55
|
+
}
|
|
56
|
+
// Retries made explicit rather than inherited. These two drivers reach their
|
|
57
|
+
// provider through a vendor SDK that retries on its own, while the other eleven
|
|
58
|
+
// go through `openaiCompat/wire.ts` and use `retryPolicy.ts`. Pinning the count
|
|
59
|
+
// here means a session behaves the same way whichever provider it is pointed at,
|
|
60
|
+
// and that an SDK upgrade changing its default cannot quietly change ours.
|
|
61
|
+
client = new Anthropic({ apiKey, maxRetries: RETRY_MAX_ATTEMPTS - 1, defaultHeaders: { "User-Agent": clientId() } });
|
|
62
|
+
}
|
|
63
|
+
return client;
|
|
64
|
+
}
|
|
65
|
+
/** Parse a tool call's stored JSON-string arguments into the object the API wants.
|
|
66
|
+
* A malformed string becomes an empty object rather than failing the whole turn. */
|
|
67
|
+
function parseArgs(raw) {
|
|
68
|
+
try {
|
|
69
|
+
const parsed = JSON.parse(raw || "{}");
|
|
70
|
+
return parsed && typeof parsed === "object" && !Array.isArray(parsed)
|
|
71
|
+
? parsed
|
|
72
|
+
: {};
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return {};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Convert the stored transcript into Anthropic messages, coalescing each run of
|
|
80
|
+
* tool results into one user message (see note 4 in the header).
|
|
81
|
+
*
|
|
82
|
+
* Any system message that sneaks into the conversation is pulled out and returned
|
|
83
|
+
* separately: Anthropic has no in-conversation system role, and dropping it would
|
|
84
|
+
* silently lose instructions.
|
|
85
|
+
*/
|
|
86
|
+
export function renderMessages(req) {
|
|
87
|
+
const messages = [];
|
|
88
|
+
const extraSystem = [];
|
|
89
|
+
let pendingResults = [];
|
|
90
|
+
const flushResults = () => {
|
|
91
|
+
if (pendingResults.length === 0)
|
|
92
|
+
return;
|
|
93
|
+
messages.push({ role: "user", content: pendingResults });
|
|
94
|
+
pendingResults = [];
|
|
95
|
+
};
|
|
96
|
+
for (const msg of req.messages) {
|
|
97
|
+
if (msg.role === "tool") {
|
|
98
|
+
pendingResults.push({
|
|
99
|
+
type: "tool_result",
|
|
100
|
+
tool_use_id: msg.tool_call_id ?? "",
|
|
101
|
+
content: msg.content || "(no output)",
|
|
102
|
+
});
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
flushResults();
|
|
106
|
+
if (msg.role === "system") {
|
|
107
|
+
if (msg.content.trim())
|
|
108
|
+
extraSystem.push(msg.content);
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
if (msg.role === "user") {
|
|
112
|
+
// Images first: the model reads an image-then-text message more reliably than
|
|
113
|
+
// the reverse, and each one is labelled so a later turn can refer to it by name.
|
|
114
|
+
const blocks = [];
|
|
115
|
+
for (const img of msg.images ?? []) {
|
|
116
|
+
blocks.push({ type: "text", text: `Image (${basename(img.path)}):` });
|
|
117
|
+
blocks.push({
|
|
118
|
+
type: "image",
|
|
119
|
+
source: { type: "base64", media_type: img.mediaType, data: img.data },
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
if (msg.content.trim())
|
|
123
|
+
blocks.push({ type: "text", text: msg.content });
|
|
124
|
+
if (blocks.length > 0)
|
|
125
|
+
messages.push({ role: "user", content: blocks });
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
// Assistant: prose and/or tool calls, in that order.
|
|
129
|
+
const blocks = [];
|
|
130
|
+
if (msg.content.trim())
|
|
131
|
+
blocks.push({ type: "text", text: msg.content });
|
|
132
|
+
for (const call of msg.tool_calls ?? []) {
|
|
133
|
+
blocks.push({
|
|
134
|
+
type: "tool_use",
|
|
135
|
+
id: call.id,
|
|
136
|
+
name: call.function.name,
|
|
137
|
+
input: parseArgs(call.function.arguments),
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
if (blocks.length > 0)
|
|
141
|
+
messages.push({ role: "assistant", content: blocks });
|
|
142
|
+
}
|
|
143
|
+
flushResults();
|
|
144
|
+
return { messages, extraSystem };
|
|
145
|
+
}
|
|
146
|
+
/** Mark one message's last content block as a cache breakpoint. */
|
|
147
|
+
function markAt(messages, idx) {
|
|
148
|
+
const msg = messages[idx];
|
|
149
|
+
if (!msg || typeof msg.content === "string")
|
|
150
|
+
return;
|
|
151
|
+
const block = msg.content[msg.content.length - 1];
|
|
152
|
+
if (block && typeof block === "object") {
|
|
153
|
+
block.cache_control = { type: "ephemeral" };
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Attach cache breakpoints so the conversation so far is served from cache next turn.
|
|
158
|
+
*
|
|
159
|
+
* A LADDER, not a single mark, and that is a bug fix rather than a refinement. A
|
|
160
|
+
* breakpoint searches backward only 20 content blocks for a prior entry; an agentic
|
|
161
|
+
* round with a few parallel tool calls adds `tool_use` + `tool_result` blocks fast
|
|
162
|
+
* enough to push the previous entry out of that window, after which every request
|
|
163
|
+
* silently re-pays for the whole conversation. See `cachePoints.ts`.
|
|
164
|
+
*
|
|
165
|
+
* Short conversations still get exactly one mark: below the spacing there is nowhere
|
|
166
|
+
* else useful to put one, and the budget is better left unspent than spent inside a
|
|
167
|
+
* window a single breakpoint already covers.
|
|
168
|
+
*/
|
|
169
|
+
function markStablePrefix(messages) {
|
|
170
|
+
const blockCounts = messages.map((m) => (typeof m.content === "string" ? 1 : m.content.length));
|
|
171
|
+
if (!needsLadder(blockCounts)) {
|
|
172
|
+
markAt(messages, messages.length - 1);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
for (const idx of cacheBreakpoints(blockCounts))
|
|
176
|
+
markAt(messages, idx);
|
|
177
|
+
}
|
|
178
|
+
/** Translate the tool schemas from their stored OpenAI shape. */
|
|
179
|
+
function renderTools(req) {
|
|
180
|
+
return (req.tools ?? []).map((t) => ({
|
|
181
|
+
name: t.function.name,
|
|
182
|
+
description: t.function.description,
|
|
183
|
+
input_schema: t.function.parameters,
|
|
184
|
+
}));
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Build the request body shared by both paths.
|
|
188
|
+
*
|
|
189
|
+
* Cache breakpoints go in two places, well under the four allowed: one on the last
|
|
190
|
+
* system block (which covers the tools rendered before it) and one on the last
|
|
191
|
+
* stable message. The volatile `context` is appended AFTER both, so a changing code
|
|
192
|
+
* map or todo list never invalidates the prefix — the property the ModelRequest
|
|
193
|
+
* split exists to guarantee.
|
|
194
|
+
*/
|
|
195
|
+
/**
|
|
196
|
+
* The thinking budget sent on the LEGACY surface (Haiku 4.5), which asks for a
|
|
197
|
+
* token count instead of an effort rung.
|
|
198
|
+
*
|
|
199
|
+
* Half the output ceiling, and the API's own two constraints decide the shape: the
|
|
200
|
+
* budget must be strictly below `max_tokens` (it is spent from the same allowance
|
|
201
|
+
* as the answer, so an equal budget leaves nothing to answer with) and at least
|
|
202
|
+
* 1024. Deriving it from the ceiling rather than fixing it means the small buffered
|
|
203
|
+
* calls get a small budget and a streamed turn gets a real one.
|
|
204
|
+
*
|
|
205
|
+
* Those two constraints can contradict each other: below a ceiling of 1025 there is
|
|
206
|
+
* no number that satisfies both. That returns 0, meaning "no room to think here",
|
|
207
|
+
* and the caller omits the field rather than sending a value the API would reject.
|
|
208
|
+
* Neither of this driver's real ceilings is anywhere near that, but a caller passing
|
|
209
|
+
* a small one should get a working request, not a 400.
|
|
210
|
+
*/
|
|
211
|
+
export function thinkingBudget(maxTokens) {
|
|
212
|
+
const budget = Math.max(1024, Math.floor(maxTokens / 2));
|
|
213
|
+
return budget < maxTokens ? budget : 0;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Put the reasoning selection on the body in the shape THIS model accepts.
|
|
217
|
+
*
|
|
218
|
+
* The three branches are the three wire surfaces described in `manifest.ts`, and
|
|
219
|
+
* each rejects the other two's shape outright rather than ignoring it:
|
|
220
|
+
*
|
|
221
|
+
* - Fable 5 thinks unconditionally and rejects any explicit `thinking` config,
|
|
222
|
+
* `{type:"disabled"}` included, so the field is simply omitted.
|
|
223
|
+
* - Haiku 4.5 predates adaptive thinking and `effort` both: it takes a token
|
|
224
|
+
* budget, and sending `output_config` is an error.
|
|
225
|
+
* - Everything else takes adaptive thinking plus an effort rung.
|
|
226
|
+
*
|
|
227
|
+
* `normalize` has already made the config legal for the model (Fable never arrives
|
|
228
|
+
* here with thinking off, Opus 5 never with no-thinking above `high`), so this only
|
|
229
|
+
* has to render it.
|
|
230
|
+
*/
|
|
231
|
+
function applyReasoning(body, model, cfg, maxTokens) {
|
|
232
|
+
const surface = surfaceOf(model);
|
|
233
|
+
if (!surface.canDisableThinking) {
|
|
234
|
+
// Omit `thinking` entirely — the model is always thinking regardless.
|
|
235
|
+
}
|
|
236
|
+
else if (!surface.takesEffort) {
|
|
237
|
+
const budget = thinkingBudget(maxTokens);
|
|
238
|
+
if (cfg?.thinking && budget > 0)
|
|
239
|
+
body.thinking = { type: "enabled", budget_tokens: budget };
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
body.thinking = cfg?.thinking ? { type: "adaptive" } : { type: "disabled" };
|
|
243
|
+
}
|
|
244
|
+
if (surface.takesEffort)
|
|
245
|
+
body.output_config = { effort: cfg?.effort ?? "high" };
|
|
246
|
+
}
|
|
247
|
+
export function buildBody(req, maxTokens) {
|
|
248
|
+
const cfg = req.model;
|
|
249
|
+
const { messages, extraSystem } = renderMessages(req);
|
|
250
|
+
const systemText = [req.system, ...extraSystem].filter((s) => s.trim()).join("\n\n");
|
|
251
|
+
const system = [
|
|
252
|
+
{ type: "text", text: systemText, cache_control: { type: "ephemeral" } },
|
|
253
|
+
];
|
|
254
|
+
markStablePrefix(messages);
|
|
255
|
+
if (req.context && req.context.trim()) {
|
|
256
|
+
messages.push({
|
|
257
|
+
role: "user",
|
|
258
|
+
content: [{ type: "text", text: `<current_context>\n${req.context}\n</current_context>` }],
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
// Anthropic rejects an empty conversation; the engine never sends one, but a
|
|
262
|
+
// tool-less internal call could in principle.
|
|
263
|
+
if (messages.length === 0) {
|
|
264
|
+
messages.push({ role: "user", content: [{ type: "text", text: "(no input)" }] });
|
|
265
|
+
}
|
|
266
|
+
const model = cfg?.model ?? MODEL;
|
|
267
|
+
const body = {
|
|
268
|
+
model,
|
|
269
|
+
max_tokens: maxTokens,
|
|
270
|
+
system,
|
|
271
|
+
messages,
|
|
272
|
+
};
|
|
273
|
+
// How reasoning is expressed differs by model; the sampling parameters do not —
|
|
274
|
+
// `temperature`, `top_p` and `top_k` are rejected across this lineup, so none of
|
|
275
|
+
// them is ever sent on any path.
|
|
276
|
+
applyReasoning(body, model, cfg, maxTokens);
|
|
277
|
+
const tools = renderTools(req);
|
|
278
|
+
if (tools.length > 0) {
|
|
279
|
+
body.tools = tools;
|
|
280
|
+
body.tool_choice = { type: "auto" };
|
|
281
|
+
}
|
|
282
|
+
return body;
|
|
283
|
+
}
|
|
284
|
+
/** Fold Anthropic's usage into the shared shape. Note `input_tokens` is only the
|
|
285
|
+
* UNCACHED remainder — the full prompt is that plus both cache figures, which is
|
|
286
|
+
* what the cost summary needs to avoid under-reporting. */
|
|
287
|
+
export function toUsage(usage) {
|
|
288
|
+
if (!usage)
|
|
289
|
+
return undefined;
|
|
290
|
+
const cacheHit = usage.cache_read_input_tokens ?? 0;
|
|
291
|
+
const cacheWrite = usage.cache_creation_input_tokens ?? 0;
|
|
292
|
+
const fresh = usage.input_tokens ?? 0;
|
|
293
|
+
const promptTokens = fresh + cacheWrite + cacheHit;
|
|
294
|
+
const completionTokens = usage.output_tokens ?? 0;
|
|
295
|
+
return {
|
|
296
|
+
promptTokens,
|
|
297
|
+
completionTokens,
|
|
298
|
+
totalTokens: promptTokens + completionTokens,
|
|
299
|
+
cacheHitTokens: cacheHit,
|
|
300
|
+
// Cache writes are fresh input, so they belong on the miss side — but they are not
|
|
301
|
+
// priced like it. Anthropic bills a write at 1.25x base input (the tokens are
|
|
302
|
+
// processed AND stored), and reporting the total alone under-stated every turn of
|
|
303
|
+
// an agentic loop, which writes a new prefix segment constantly. The slice is
|
|
304
|
+
// carried alongside so pricing can charge it at the right rate; the total stays
|
|
305
|
+
// inclusive so nothing that only reads `cacheMissTokens` becomes wrong.
|
|
306
|
+
cacheMissTokens: fresh + cacheWrite,
|
|
307
|
+
cacheWriteTokens: cacheWrite,
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
/** Map Anthropic's stop reason onto the shared one. `tool_use` and `end_turn` are
|
|
311
|
+
* both a normal finish; the rest are conditions the engine has to know about. */
|
|
312
|
+
export function toStop(reason) {
|
|
313
|
+
switch (reason) {
|
|
314
|
+
case "max_tokens":
|
|
315
|
+
return "truncated";
|
|
316
|
+
case "refusal":
|
|
317
|
+
return "refused";
|
|
318
|
+
case "model_context_window_exceeded":
|
|
319
|
+
return "overflow";
|
|
320
|
+
default:
|
|
321
|
+
return "end";
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
/** Pull the assembled reply and tool calls out of a finished message. */
|
|
325
|
+
export function toTurn(message) {
|
|
326
|
+
let content = "";
|
|
327
|
+
const toolCalls = [];
|
|
328
|
+
for (const block of message.content) {
|
|
329
|
+
if (block.type === "text") {
|
|
330
|
+
content += block.text;
|
|
331
|
+
}
|
|
332
|
+
else if (block.type === "tool_use") {
|
|
333
|
+
toolCalls.push({
|
|
334
|
+
id: block.id,
|
|
335
|
+
name: block.name,
|
|
336
|
+
// Back to the JSON string the transcript stores.
|
|
337
|
+
arguments: JSON.stringify(block.input ?? {}),
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
// `thinking` blocks are deliberately dropped: reasoning reaches the live UI as
|
|
341
|
+
// deltas, never the stored transcript.
|
|
342
|
+
}
|
|
343
|
+
return { content, toolCalls, stop: toStop(message.stop_reason) };
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Search the web.
|
|
347
|
+
*
|
|
348
|
+
* The parsing lives in `../searchBlocks.ts` because it is the PROTOCOL's shape, not
|
|
349
|
+
* this provider's: other providers serve their own native search over the same
|
|
350
|
+
* Messages protocol, and one parser shared beats two that drift.
|
|
351
|
+
*/
|
|
352
|
+
export async function webSearch(query, options = {}) {
|
|
353
|
+
const message = await api().messages.create({
|
|
354
|
+
model: MODEL,
|
|
355
|
+
max_tokens: MAX_TOKENS_BUFFERED,
|
|
356
|
+
system: SEARCH_SYSTEM,
|
|
357
|
+
messages: [{ role: "user", content: query }],
|
|
358
|
+
// The dated variant is the tool VERSION, not a date to keep current, and
|
|
359
|
+
// which one is legal depends on the model — the manifest holds that fact.
|
|
360
|
+
// The newer one filters results before they reach the context window, and it
|
|
361
|
+
// runs code execution internally to do it, which is why `code_execution` must
|
|
362
|
+
// NOT also be declared here: two execution environments confuse the model.
|
|
363
|
+
tools: [{ type: surfaceOf(MODEL).searchTool, name: "web_search", max_uses: SEARCH_MAX_USES }],
|
|
364
|
+
}, { signal: options.signal });
|
|
365
|
+
return extractSearch(message);
|
|
366
|
+
}
|
|
367
|
+
/** Ask the model for one turn. Usage rides back with it: these are core's internal
|
|
368
|
+
* calls, and they spend real tokens that the meter would otherwise never see. */
|
|
369
|
+
export async function toolTurn(req, options = {}) {
|
|
370
|
+
const message = await api().messages.create(buildBody(req, MAX_TOKENS_BUFFERED), {
|
|
371
|
+
signal: options.signal,
|
|
372
|
+
});
|
|
373
|
+
return { ...toTurn(message), usage: toUsage(message.usage) };
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Ask the model for one turn, STREAMING. Deltas go to `options.onEvent` for the
|
|
377
|
+
* live UI; the assembled turn is the return value, in the same shape the engine
|
|
378
|
+
* records either way. The SDK assembles the final message (including each tool
|
|
379
|
+
* call's JSON), so nothing here has to reassemble fragmented arguments by hand.
|
|
380
|
+
*/
|
|
381
|
+
export async function streamTurn(req, options = {}) {
|
|
382
|
+
const stream = api().messages.stream(buildBody(req, MAX_TOKENS_STREAM), {
|
|
383
|
+
signal: options.signal,
|
|
384
|
+
});
|
|
385
|
+
// Accumulated alongside the emit so a stream that dies partway can still hand back
|
|
386
|
+
// what the user watched arrive. Only the onEvent path needs it: with no sink nothing
|
|
387
|
+
// reached the screen, so there is no visible reply to keep in step with.
|
|
388
|
+
let seen = "";
|
|
389
|
+
try {
|
|
390
|
+
if (options.onEvent) {
|
|
391
|
+
for await (const event of stream) {
|
|
392
|
+
if (event.type === "content_block_delta" && event.delta.type === "text_delta")
|
|
393
|
+
seen += event.delta.text;
|
|
394
|
+
emit(event, options.onEvent);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
const message = await stream.finalMessage();
|
|
398
|
+
return { ...toTurn(message), usage: toUsage(message.usage) };
|
|
399
|
+
}
|
|
400
|
+
catch (error) {
|
|
401
|
+
if (isAbortLike(error))
|
|
402
|
+
throw error;
|
|
403
|
+
return salvagePartialTurn(seen, error);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Map one streaming event onto the shared event shape. Anthropic streams blocks
|
|
408
|
+
* rather than a flat delta channel, so a tool call announces itself with a
|
|
409
|
+
* `content_block_start` and then streams its arguments as `input_json_delta`.
|
|
410
|
+
*/
|
|
411
|
+
export function emit(event, onEvent) {
|
|
412
|
+
if (event.type === "content_block_start") {
|
|
413
|
+
const block = event.content_block;
|
|
414
|
+
if (block.type === "tool_use") {
|
|
415
|
+
onEvent({ type: "tool_start", index: event.index, id: block.id, name: block.name });
|
|
416
|
+
}
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
if (event.type !== "content_block_delta")
|
|
420
|
+
return;
|
|
421
|
+
const delta = event.delta;
|
|
422
|
+
if (delta.type === "text_delta" && delta.text) {
|
|
423
|
+
onEvent({ type: "text", delta: delta.text });
|
|
424
|
+
}
|
|
425
|
+
else if (delta.type === "thinking_delta" && delta.thinking) {
|
|
426
|
+
onEvent({ type: "reasoning", delta: delta.thinking });
|
|
427
|
+
}
|
|
428
|
+
else if (delta.type === "input_json_delta" && delta.partial_json) {
|
|
429
|
+
onEvent({ type: "tool_args", index: event.index, delta: delta.partial_json });
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/drivers/anthropic/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { streamTurn, toolTurn, webSearch } from "./client.js";
|
|
2
|
+
import { anthropicManifest } from "./manifest.js";
|
|
3
|
+
export const anthropicDriver = {
|
|
4
|
+
...anthropicManifest,
|
|
5
|
+
toolTurn,
|
|
6
|
+
streamTurn,
|
|
7
|
+
webSearch,
|
|
8
|
+
};
|
|
9
|
+
export default anthropicDriver;
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/drivers/anthropic/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,CAAC,MAAM,eAAe,GAAW;IACrC,GAAG,iBAAiB;IACpB,QAAQ;IACR,UAAU;IACV,SAAS;CACV,CAAC;AAEF,eAAe,eAAe,CAAC"}
|