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":"engine.js","sourceRoot":"","sources":["../../src/dynamo/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* guard.ts — the pure decision logic for Sentinel mode (ask-before-acting).
|
|
3
|
+
*
|
|
4
|
+
* Sentinel gates every MUTATING tool call behind a human yes/no in the CLI. The
|
|
5
|
+
* mechanics live in the engine's tool-execution choke point; this module holds only
|
|
6
|
+
* the parts worth unit-testing: how a call is described to the user, the three
|
|
7
|
+
* choices offered, and how the chosen answer maps to an action. Keeping it pure
|
|
8
|
+
* means the gate's behavior is verified, not blind-shipped — and the engine stays
|
|
9
|
+
* mode-agnostic (it acts on the decision, never on a mode name).
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* The answers a Sentinel prompt offers, in order.
|
|
13
|
+
*
|
|
14
|
+
* The middle one is SCOPED TO THE KIND OF ACTION, and that is the whole point of it.
|
|
15
|
+
* It used to read "Yes, and stop asking this session" and did exactly that: approving
|
|
16
|
+
* one file edit turned the gate off for shell commands, sub-agents and writes as well,
|
|
17
|
+
* for the rest of the session. Someone agreeing to an edit has agreed to an edit.
|
|
18
|
+
*
|
|
19
|
+
* The scoped form is the useful one — "don't ask again for {tool} commands in
|
|
20
|
+
* {directory}" — and a blanket off-switch does not belong in the dialog at all.
|
|
21
|
+
* Neither do we now: turning the gate off entirely is a mode change, and shift-tab is
|
|
22
|
+
* where modes are chosen, deliberately and visibly.
|
|
23
|
+
*/
|
|
24
|
+
export function guardOptions(name) {
|
|
25
|
+
return ["Yes, do it", `Yes, and don't ask again for ${actionLabel(name)} this session`];
|
|
26
|
+
}
|
|
27
|
+
/** The refusal, offered as a typed answer so the user can say what to do instead. */
|
|
28
|
+
export const GUARD_REFUSAL_INPUT = {
|
|
29
|
+
label: "No",
|
|
30
|
+
placeholder: "and tell it what to do instead",
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Map the user's chosen option to an action. Anything unrecognized — including a
|
|
34
|
+
* cancel/Esc (the overlay resolves those to a decline) — is treated as `refuse`, so
|
|
35
|
+
* the gate fails safe: an unclear answer never runs the action.
|
|
36
|
+
*
|
|
37
|
+
* Matched on the STABLE prefix rather than the whole string, because the second
|
|
38
|
+
* option now names the action it covers and so differs from call to call.
|
|
39
|
+
*/
|
|
40
|
+
export function interpretGuardChoice(choice, name = "") {
|
|
41
|
+
const options = guardOptions(name);
|
|
42
|
+
if (choice === options[0])
|
|
43
|
+
return "proceed";
|
|
44
|
+
if (choice === options[1])
|
|
45
|
+
return "allow-kind";
|
|
46
|
+
return "refuse";
|
|
47
|
+
}
|
|
48
|
+
/** What each kind of call is called in the user's terms. Shared by the prompt and
|
|
49
|
+
* the permission block so a grant reads the same as the thing it was granted for. */
|
|
50
|
+
function actionLabel(name) {
|
|
51
|
+
return ACTION_LABEL[name] ?? name;
|
|
52
|
+
}
|
|
53
|
+
/** What the model is told when the user declines and says what they want instead. */
|
|
54
|
+
export function guardRefusalWith(feedback) {
|
|
55
|
+
return ("Stopped: the user declined this action in Sentinel mode and said what they want " +
|
|
56
|
+
`instead:
|
|
57
|
+
|
|
58
|
+
${feedback}
|
|
59
|
+
|
|
60
|
+
Follow that. Do not retry the action they declined.`);
|
|
61
|
+
}
|
|
62
|
+
/** What the model is told when the user declines an action in Sentinel mode. */
|
|
63
|
+
export const GUARD_REFUSAL = "Stopped: the user declined this action in Sentinel mode. Do not retry it — briefly say what you " +
|
|
64
|
+
"were about to do and wait for the user's direction on how to proceed.";
|
|
65
|
+
/** A short, human-readable description of a mutating call, for the approval prompt. */
|
|
66
|
+
export function describeCall(name, args) {
|
|
67
|
+
const path = typeof args.path === "string" ? args.path : undefined;
|
|
68
|
+
switch (name) {
|
|
69
|
+
case "edit":
|
|
70
|
+
case "write_file":
|
|
71
|
+
case "replace_symbol_body":
|
|
72
|
+
return `${name} — ${path ?? "?"}`;
|
|
73
|
+
case "run_command":
|
|
74
|
+
return `run_command — ${clip(strArg(args.command), 80)}`;
|
|
75
|
+
case "spawn_subagent":
|
|
76
|
+
return `spawn_subagent — ${clip(strArg(args.task), 80)}`;
|
|
77
|
+
default:
|
|
78
|
+
// Anything else: the name, plus a path if the call carries one.
|
|
79
|
+
return path ? `${name} — ${path}` : name;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** The question shown atop the Sentinel approval prompt. ONE line: it renders inside a
|
|
83
|
+
* height-bounded box, and what the call actually is goes in `guardDetail` instead. */
|
|
84
|
+
export function guardQuestion() {
|
|
85
|
+
return "Sentinel — approve this action?";
|
|
86
|
+
}
|
|
87
|
+
/** What each kind of call is called in the permission block, in the user's terms
|
|
88
|
+
* rather than the tool's. Anything unlisted falls back to the tool name. */
|
|
89
|
+
const ACTION_LABEL = {
|
|
90
|
+
run_command: "Shell execution",
|
|
91
|
+
edit: "File edit",
|
|
92
|
+
replace_symbol_body: "File edit",
|
|
93
|
+
write_file: "File write",
|
|
94
|
+
spawn_subagent: "Sub-agent spawn",
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* The block printed above a Sentinel prompt: what is about to happen, spelled out.
|
|
98
|
+
*
|
|
99
|
+
* Rendered into the TRANSCRIPT (as approval `detail`), not into the prompt — the prompt
|
|
100
|
+
* is height-bounded and this is the part that can run long. Reading it is the whole
|
|
101
|
+
* point of the gate: a prompt that says only "approve this action?" is one the user
|
|
102
|
+
* learns to answer without looking.
|
|
103
|
+
*
|
|
104
|
+
* Deliberately NOT a risk rating. The reference design shows a "Risk: High" line, and
|
|
105
|
+
* there is nothing in Mindweave that knows which commands are dangerous — inventing a
|
|
106
|
+
* severity here would be a guess presented as an assessment, and a wrong "Low" is worse
|
|
107
|
+
* than no line at all. What IS shown is fact: the kind of action, and its exact target.
|
|
108
|
+
*/
|
|
109
|
+
export function guardDetail(name, args) {
|
|
110
|
+
const lines = [`Action: ${ACTION_LABEL[name] ?? name}`];
|
|
111
|
+
const command = strArg(args.command);
|
|
112
|
+
const path = strArg(args.path);
|
|
113
|
+
const task = strArg(args.task);
|
|
114
|
+
// The command is shown UNCLIPPED. It is the thing being agreed to, and a truncated
|
|
115
|
+
// one hides the tail — which on a shell command is exactly where the damage lives.
|
|
116
|
+
if (command)
|
|
117
|
+
lines.push(`Command: $ ${command}`);
|
|
118
|
+
if (path)
|
|
119
|
+
lines.push(`File: ${path}`);
|
|
120
|
+
if (task)
|
|
121
|
+
lines.push(`Task: ${clip(task, 200)}`);
|
|
122
|
+
lines.push(`Tool: ${name}`);
|
|
123
|
+
return lines.join("\n");
|
|
124
|
+
}
|
|
125
|
+
function strArg(v) {
|
|
126
|
+
return typeof v === "string" ? v : "";
|
|
127
|
+
}
|
|
128
|
+
function clip(s, max) {
|
|
129
|
+
const one = s.replace(/\s+/g, " ").trim();
|
|
130
|
+
return one.length > max ? `${one.slice(0, max - 1)}…` : one;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../../src/dynamo/guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,CAAC,YAAY,EAAE,gCAAgC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC1F,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,EAAE,IAAI;IACX,WAAW,EAAE,gCAAgC;CAC9C,CAAC;AAIF;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAA0B,EAAE,IAAI,GAAG,EAAE;IACxE,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,YAAY,CAAC;IAC/C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;sFACsF;AACtF,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACpC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,CACL,kFAAkF;QAClF;;EAEF,QAAQ;;oDAE0C,CACjD,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,aAAa,GACxB,kGAAkG;IAClG,uEAAuE,CAAC;AAE1E,uFAAuF;AACvF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,IAA6B;IACtE,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,YAAY,CAAC;QAClB,KAAK,qBAAqB;YACxB,OAAO,GAAG,IAAI,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACpC,KAAK,aAAa;YAChB,OAAO,iBAAiB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC3D,KAAK,gBAAgB;YACnB,OAAO,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC3D;YACE,gEAAgE;YAChE,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;AACH,CAAC;AAED;uFACuF;AACvF,MAAM,UAAU,aAAa;IAC3B,OAAO,iCAAiC,CAAC;AAC3C,CAAC;AAED;6EAC6E;AAC7E,MAAM,YAAY,GAA2B;IAC3C,WAAW,EAAE,iBAAiB;IAC9B,IAAI,EAAE,WAAW;IACjB,mBAAmB,EAAE,WAAW;IAChC,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,iBAAiB;CAClC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,IAA6B;IACrE,MAAM,KAAK,GAAG,CAAC,WAAW,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,mFAAmF;IACnF,mFAAmF;IACnF,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;IACjD,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACtC,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,MAAM,CAAC,CAAU;IACxB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,IAAI,CAAC,CAAS,EAAE,GAAW;IAClC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* liveMeter.ts — the token figure that moves while a turn is working.
|
|
3
|
+
*
|
|
4
|
+
* Shaped by how the best terminal agents do it, and by a previous attempt here that was
|
|
5
|
+
* worse in a way worth recording.
|
|
6
|
+
*
|
|
7
|
+
* THE QUANTITY IS OUTPUT ONLY, estimated from the characters that have streamed back, and
|
|
8
|
+
* accumulated across the whole task (reset only at task start). It is the task's OWN work.
|
|
9
|
+
* Not the prompt, not the context, not a billed total: the conversation is re-sent on every
|
|
10
|
+
* tool round, so a running billed figure counts the whole session's context once per round
|
|
11
|
+
* and reports the session, not the task — the very thing the display must not do.
|
|
12
|
+
*
|
|
13
|
+
* What streams is what moves. Output is the only quantity that grows continuously while a
|
|
14
|
+
* turn runs, so it is the only honest thing to animate; input does not "arrive". How full
|
|
15
|
+
* the context is — the last prompt's size, which drives compaction — is a separate measure,
|
|
16
|
+
* not this one.
|
|
17
|
+
*
|
|
18
|
+
* THE COUNTER IS EASED. Deltas arrive in lumps — a provider may deliver a whole sentence
|
|
19
|
+
* in one chunk — so a counter that renders the raw total ticks in visible jerks. The
|
|
20
|
+
* displayed value chases the real one a step at a time on the render clock, moving
|
|
21
|
+
* faster the further behind it is, so it reads as counting rather than as stuttering.
|
|
22
|
+
* It always converges: the step is never smaller than the gap's own growth for the
|
|
23
|
+
* lumps a stream actually produces, and it is clamped so it can never overshoot.
|
|
24
|
+
*/
|
|
25
|
+
/** Characters per token. Deliberately the crude ratio rather than a tokenizer: this is a
|
|
26
|
+
* moving indicator, and being 10% off is invisible where being slow is not. */
|
|
27
|
+
const CHARS_PER_TOKEN = 4;
|
|
28
|
+
export function meterReset() {
|
|
29
|
+
return { chars: 0, shownChars: 0 };
|
|
30
|
+
}
|
|
31
|
+
/** `count` more characters of model output have streamed in. */
|
|
32
|
+
export function meterDelta(s, count) {
|
|
33
|
+
return count > 0 ? { ...s, chars: s.chars + count } : s;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Advance the displayed counter one render frame toward the real total.
|
|
37
|
+
*
|
|
38
|
+
* The three bands are the shape that reads as smooth: a near-caught-up counter creeps
|
|
39
|
+
* so the last few characters do not snap into place, a moderate gap closes
|
|
40
|
+
* proportionally so it never crawls behind a steady stream, and a large gap moves at a
|
|
41
|
+
* flat ceiling so a big lump is absorbed over a handful of frames instead of one.
|
|
42
|
+
*/
|
|
43
|
+
export function meterTick(s) {
|
|
44
|
+
const gap = s.chars - s.shownChars;
|
|
45
|
+
if (gap <= 0)
|
|
46
|
+
return s;
|
|
47
|
+
const step = gap < 70 ? 3 : gap < 200 ? Math.max(8, Math.ceil(gap * 0.15)) : 50;
|
|
48
|
+
return { ...s, shownChars: Math.min(s.shownChars + step, s.chars) };
|
|
49
|
+
}
|
|
50
|
+
/** The figure to render: estimated output tokens, as far as the counter has caught up. */
|
|
51
|
+
export function meterValue(s) {
|
|
52
|
+
return Math.round(s.shownChars / CHARS_PER_TOKEN);
|
|
53
|
+
}
|
|
54
|
+
/** Has the counter finished catching up? Lets the UI stop ticking when nothing moves. */
|
|
55
|
+
export function meterSettled(s) {
|
|
56
|
+
return s.shownChars >= s.chars;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=liveMeter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liveMeter.js","sourceRoot":"","sources":["../../src/dynamo/liveMeter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;gFACgF;AAChF,MAAM,eAAe,GAAG,CAAC,CAAC;AAU1B,MAAM,UAAU,UAAU;IACxB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;AACrC,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,UAAU,CAAC,CAAa,EAAE,KAAa;IACrD,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,CAAa;IACrC,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC;IACnC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACvB,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,OAAO,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,UAAU,CAAC,CAAa;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,eAAe,CAAC,CAAC;AACpD,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,CAAa;IACxC,OAAO,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* model.ts — which model answers, and how hard it thinks.
|
|
3
|
+
*
|
|
4
|
+
* One small config object decides both: `/model` picks the model, `/think` picks
|
|
5
|
+
* the reasoning level for that model. What those choices ARE is the driver's
|
|
6
|
+
* business (each provider exposes reasoning differently); this module owns only
|
|
7
|
+
* the parts that are the same for every provider — the shape of the config, the
|
|
8
|
+
* labels the UI renders, and making the choice sticky.
|
|
9
|
+
*
|
|
10
|
+
* The choice is sticky PER PROJECT (saved under the project's state dir, like
|
|
11
|
+
* sessions and the governor), so it carries across sessions in that project.
|
|
12
|
+
* Loading a config also selects the driver that serves it, so the rest of the
|
|
13
|
+
* session talks to the right provider without ever naming one.
|
|
14
|
+
*/
|
|
15
|
+
import { promises as fs } from "node:fs";
|
|
16
|
+
import { join } from "node:path";
|
|
17
|
+
import { projectDir } from "../memory/store.js";
|
|
18
|
+
import { allModels, allProviders, ensureDriver, manifestForModel, modelsOf, normalizeConfig, refreshModels, } from "../drivers/registry.js";
|
|
19
|
+
export { refreshModels };
|
|
20
|
+
/**
|
|
21
|
+
* The models offered by `/model`, across every installed provider.
|
|
22
|
+
*
|
|
23
|
+
* A FUNCTION rather than the module-level constant it used to be. That constant was
|
|
24
|
+
* a snapshot taken at import time, which was correct while every provider declared a
|
|
25
|
+
* fixed lineup and silently wrong the moment one discovers its models at runtime: a
|
|
26
|
+
* locally-served model would never appear in a label lookup, however many times the
|
|
27
|
+
* list refreshed. Nothing may cache this result.
|
|
28
|
+
*/
|
|
29
|
+
export function models() {
|
|
30
|
+
return allModels();
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The out-of-the-box choice: the first offered model, NO thinking.
|
|
34
|
+
*
|
|
35
|
+
* Thinking stays off unless the user turns it on with `/think`. It costs reasoning
|
|
36
|
+
* tokens on every request, and that is the user's call to make, not a default to
|
|
37
|
+
* inherit. Over-narration is NOT solved by paying for a reasoning channel — it is
|
|
38
|
+
* solved by not emitting the deliberation at all, which `narrationBudget` enforces
|
|
39
|
+
* mechanically and the prompt states as a rule.
|
|
40
|
+
*/
|
|
41
|
+
export const DEFAULT_MODEL_CONFIG = normalizeConfig({
|
|
42
|
+
// The first model of the first provider. Read at import time on purpose: this is
|
|
43
|
+
// the out-of-the-box fallback, so it must resolve without any provider having been
|
|
44
|
+
// reached, which rules out anything a discovered provider could contribute.
|
|
45
|
+
model: allModels()[0].id,
|
|
46
|
+
thinking: false,
|
|
47
|
+
effort: "high",
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* The provider serving a model. The active provider is always DERIVED from the
|
|
51
|
+
* current model rather than stored beside it: a second copy of the same fact is a
|
|
52
|
+
* second thing to keep in sync, and the two disagreeing is the bug nobody notices.
|
|
53
|
+
*/
|
|
54
|
+
export function providerOf(model) {
|
|
55
|
+
const { id, label } = manifestForModel(model);
|
|
56
|
+
return { id, label };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The models `/model` offers: those of the provider currently in use, not every
|
|
60
|
+
* model everywhere. Picking a provider is `/provider`'s job.
|
|
61
|
+
*/
|
|
62
|
+
export function modelsOfProvider(model) {
|
|
63
|
+
return modelsOf(manifestForModel(model));
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* A model we can actually run, when the configured one's provider has no key.
|
|
67
|
+
*
|
|
68
|
+
* A saved config outlives the key that made it usable — a key can be removed, or
|
|
69
|
+
* (as happened) written by a version that persisted a provider switch before
|
|
70
|
+
* checking. Without a way back, the project reopens straight into the key prompt on
|
|
71
|
+
* every launch and there is nothing the user can do from inside the app. Returns
|
|
72
|
+
* null when the current provider is fine, or when no installed provider has a key
|
|
73
|
+
* (genuine first run — the prompt is then the right answer).
|
|
74
|
+
*
|
|
75
|
+
* `hasKey` is injected so this stays pure and testable.
|
|
76
|
+
*/
|
|
77
|
+
export function usableFallback(model, hasKey) {
|
|
78
|
+
if (hasKey(manifestForModel(model).apiKeyEnv))
|
|
79
|
+
return null;
|
|
80
|
+
for (const provider of allProviders()) {
|
|
81
|
+
const first = modelsOf(provider)[0];
|
|
82
|
+
if (first && hasKey(provider.apiKeyEnv))
|
|
83
|
+
return first.id;
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Does this machine need a key BEFORE anything can run?
|
|
89
|
+
*
|
|
90
|
+
* True only when no installed provider has one. The first-run gate used to ask about
|
|
91
|
+
* the DEFAULT provider alone, so someone arriving with a key for any of the other twelve
|
|
92
|
+
* was shown a prompt for a provider they had not chosen and could not dismiss — the
|
|
93
|
+
* escape is only offered when a switch is pending mid-session. The session loader would
|
|
94
|
+
* meanwhile move them onto the provider they could actually run, underneath a screen
|
|
95
|
+
* still demanding a different one.
|
|
96
|
+
*
|
|
97
|
+
* `hasKey` is injected for the same reason as above: this decides whether the app opens
|
|
98
|
+
* at all, so it is worth being able to test.
|
|
99
|
+
*/
|
|
100
|
+
export function needsKeySetup(model, hasKey) {
|
|
101
|
+
if (hasKey(manifestForModel(model).apiKeyEnv))
|
|
102
|
+
return false;
|
|
103
|
+
return usableFallback(model, hasKey) === null;
|
|
104
|
+
}
|
|
105
|
+
/** The reasoning levels offered by `/think` for a model. */
|
|
106
|
+
export function thinkLevels(model) {
|
|
107
|
+
return manifestForModel(model).thinkLevels(model);
|
|
108
|
+
}
|
|
109
|
+
/** The label of the reasoning level a config currently represents. */
|
|
110
|
+
export function thinkLabel(cfg) {
|
|
111
|
+
const match = thinkLevels(cfg.model).find((l) => l.thinking === cfg.thinking && (!l.thinking || l.effort === cfg.effort));
|
|
112
|
+
return match?.label ?? "Standard";
|
|
113
|
+
}
|
|
114
|
+
/** The model's display name (for status lines / confirmations). Reads the list
|
|
115
|
+
* live, so a model that only exists after discovery still gets its real name
|
|
116
|
+
* rather than falling back to its raw id. */
|
|
117
|
+
export function modelLabel(model) {
|
|
118
|
+
return allModels().find((m) => m.id === model)?.label ?? model;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Switch the model, letting the owning provider keep the reasoning intent valid
|
|
122
|
+
* (a level the target model doesn't offer is clamped down rather than sent and
|
|
123
|
+
* rejected). Synchronous: it consults only manifests. The provider's wire code is
|
|
124
|
+
* loaded separately, by `ensureDriver`, before the next turn runs.
|
|
125
|
+
*/
|
|
126
|
+
export function withModel(cfg, model) {
|
|
127
|
+
return normalizeConfig({ ...cfg, model });
|
|
128
|
+
}
|
|
129
|
+
function configPath(projectCwd) {
|
|
130
|
+
return join(projectDir(projectCwd), "model.json");
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Load the project's saved model config, or the default when none is saved, and
|
|
134
|
+
* load the provider that serves it — this is where a session's provider gets
|
|
135
|
+
* decided, and the only place its wire code comes off disk.
|
|
136
|
+
*
|
|
137
|
+
* Discovery runs FIRST, and the order is load-bearing. A discovered provider's
|
|
138
|
+
* models are unknown until it is asked, so normalizing a saved config before that
|
|
139
|
+
* would coerce a perfectly valid local model onto some other provider's default,
|
|
140
|
+
* and the user would find their choice silently changed on every launch. Discovery
|
|
141
|
+
* failing is harmless here: `ownsModel` still attributes the id correctly, and the
|
|
142
|
+
* config survives to be normalized against a list that arrives later.
|
|
143
|
+
*/
|
|
144
|
+
export async function loadModelConfig(projectCwd) {
|
|
145
|
+
await refreshModels();
|
|
146
|
+
let config;
|
|
147
|
+
try {
|
|
148
|
+
const raw = await fs.readFile(configPath(projectCwd), "utf8");
|
|
149
|
+
const parsed = JSON.parse(raw);
|
|
150
|
+
config = normalizeConfig({
|
|
151
|
+
model: parsed.model ?? DEFAULT_MODEL_CONFIG.model,
|
|
152
|
+
thinking: parsed.thinking === true,
|
|
153
|
+
effort: parsed.effort ?? "high",
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
config = { ...DEFAULT_MODEL_CONFIG };
|
|
158
|
+
}
|
|
159
|
+
await ensureDriver(config.model);
|
|
160
|
+
return config;
|
|
161
|
+
}
|
|
162
|
+
/** Persist the project's model config (best-effort; never throws). */
|
|
163
|
+
export async function saveModelConfig(projectCwd, cfg) {
|
|
164
|
+
try {
|
|
165
|
+
await fs.mkdir(projectDir(projectCwd), { recursive: true });
|
|
166
|
+
await fs.writeFile(configPath(projectCwd), JSON.stringify(cfg, null, 2), "utf8");
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
/* best-effort */
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/dynamo/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* planArtifact.ts — an approved plan is a commitment, so it lives on disk.
|
|
3
|
+
*
|
|
4
|
+
* Before this, an approved plan existed only in the transcript. Two things were
|
|
5
|
+
* wrong with that. First, compaction: the plan sat in exactly the region of the
|
|
6
|
+
* conversation that summarization rewrites, so the longer the approved work ran —
|
|
7
|
+
* the case where fidelity to the plan matters MOST — the more mangled the record
|
|
8
|
+
* of what was agreed became. Second, divergence: nothing distinguished "the plan"
|
|
9
|
+
* from any other prose the model once wrote, so when reality disagreed with it,
|
|
10
|
+
* improvising past it and following it looked identical.
|
|
11
|
+
*
|
|
12
|
+
* The fix follows BOUNDARY.md's own taxonomy: an approved plan is STANDING
|
|
13
|
+
* KNOWLEDGE — a small, load-bearing fact injected whole every request — not a
|
|
14
|
+
* transcript record. On approval the plan is written to `.mindweave/plan.md`
|
|
15
|
+
* (user-visible, user-editable, survives the process), and the engine renders it
|
|
16
|
+
* into the volatile tail each request the way rules and the task list already
|
|
17
|
+
* are. Compaction cannot touch it because it is not in the transcript at all:
|
|
18
|
+
* durability by construction, not by re-injection bookkeeping.
|
|
19
|
+
*
|
|
20
|
+
* Divergence gets a CONTRACT, in two layers:
|
|
21
|
+
* - The rendered block binds the model: work must follow the plan, and if
|
|
22
|
+
* reality makes a step impossible or wrong, the model must STOP and say so —
|
|
23
|
+
* the turn ends, and the agreement ends with it — the user decides whether to
|
|
24
|
+
* plan again — and unagreed work never silently replaces the agreed plan.
|
|
25
|
+
* Improvising past the agreed plan is named as the specific failure to avoid.
|
|
26
|
+
* - Mechanically: when the repeat-failure breaker trips DURING an approved
|
|
27
|
+
* plan's execution, the engine's interrupt names the plan and orders the stop
|
|
28
|
+
* — the one signal we can detect without a model call ("the plan's step is
|
|
29
|
+
* not working") escalates to "stop and replan", never "keep improvising".
|
|
30
|
+
*
|
|
31
|
+
* The file format is markdown with a small comment header, so the user can read
|
|
32
|
+
* it, edit it, or delete it (deleting deactivates it — the user always wins).
|
|
33
|
+
*/
|
|
34
|
+
import { promises as fs } from "node:fs";
|
|
35
|
+
import { writeFileAtomic } from "../tools/atomicWrite.js";
|
|
36
|
+
import { dirname, join } from "node:path";
|
|
37
|
+
export const PLAN_DIR = ".mindweave";
|
|
38
|
+
export const PLAN_FILE = "plan.md";
|
|
39
|
+
function planPath(root) {
|
|
40
|
+
return join(root, PLAN_DIR, PLAN_FILE);
|
|
41
|
+
}
|
|
42
|
+
/** Write the artifact on approval. Overwrites any previous plan — a newly
|
|
43
|
+
* approved plan IS the current agreement; there is only ever one. */
|
|
44
|
+
export async function savePlanArtifact(root, plan, mode) {
|
|
45
|
+
const approvedAt = new Date().toISOString();
|
|
46
|
+
const body = [
|
|
47
|
+
`<!-- mindweave:plan status=active approved=${approvedAt} mode=${mode} -->`,
|
|
48
|
+
"",
|
|
49
|
+
"# Approved plan",
|
|
50
|
+
"",
|
|
51
|
+
plan.trim(),
|
|
52
|
+
"",
|
|
53
|
+
].join("\n");
|
|
54
|
+
const path = planPath(root);
|
|
55
|
+
await fs.mkdir(dirname(path), { recursive: true });
|
|
56
|
+
// Atomic: an approved plan is a decision the user made once, and the engine
|
|
57
|
+
// refuses to improvise around a plan it cannot read.
|
|
58
|
+
await writeFileAtomic(path, body);
|
|
59
|
+
}
|
|
60
|
+
/** Load the current artifact. Null when there is none, the file was deleted, or
|
|
61
|
+
* its status is no longer active — absence deactivates, so the user's `rm` (or
|
|
62
|
+
* edit of the status word) is a complete off switch with no other UI needed. */
|
|
63
|
+
export async function loadPlanArtifact(root) {
|
|
64
|
+
let text;
|
|
65
|
+
try {
|
|
66
|
+
text = await fs.readFile(planPath(root), "utf8");
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
const header = text.match(/<!--\s*mindweave:plan\s+status=(\S+)\s+approved=(\S+)\s+mode=(\S+)\s*-->/);
|
|
72
|
+
if (!header || header[1] !== "active")
|
|
73
|
+
return null;
|
|
74
|
+
const mode = header[3] === "sentinel" ? "sentinel" : "lightning";
|
|
75
|
+
// The body is everything after the generated heading; tolerate user edits by
|
|
76
|
+
// falling back to everything after the header line.
|
|
77
|
+
const afterHeading = text.split(/^# Approved plan\s*$/m)[1];
|
|
78
|
+
const plan = (afterHeading ?? text.slice(header.index + header[0].length)).trim();
|
|
79
|
+
if (!plan)
|
|
80
|
+
return null;
|
|
81
|
+
return { plan, approvedAt: header[2], mode };
|
|
82
|
+
}
|
|
83
|
+
/** Flip the artifact to done in place. Kept, not deleted: the last agreed plan
|
|
84
|
+
* is useful history, and status is what injection keys on. */
|
|
85
|
+
export async function completePlanArtifact(root) {
|
|
86
|
+
const path = planPath(root);
|
|
87
|
+
try {
|
|
88
|
+
const text = await fs.readFile(path, "utf8");
|
|
89
|
+
await writeFileAtomic(path, text.replace("status=active", "status=done"));
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
// No artifact is already the desired end state.
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The standing-knowledge block the engine injects while a plan is active.
|
|
97
|
+
* Binding language, same register as the rules block — this is an agreement the
|
|
98
|
+
* user personally approved, which outranks the model's own judgment about scope.
|
|
99
|
+
*/
|
|
100
|
+
export function renderPlanBlock(artifact) {
|
|
101
|
+
return ("The user APPROVED this plan (" +
|
|
102
|
+
artifact.approvedAt +
|
|
103
|
+
"). It is the agreed scope of the current work — follow it in order, and do not " +
|
|
104
|
+
"silently do something else. If a step turns out to be impossible, wrong, or " +
|
|
105
|
+
"overtaken by what you find, do NOT improvise past it: STOP, state plainly which " +
|
|
106
|
+
"step diverged and why, and end your turn. The agreement ends there, and the user " +
|
|
107
|
+
"decides what happens next. Divergence is normal; unagreed work is not. " +
|
|
108
|
+
"When every step is genuinely complete, say so in your final reply.\n" +
|
|
109
|
+
"<approved_plan>\n" +
|
|
110
|
+
artifact.plan.trim() +
|
|
111
|
+
"\n</approved_plan>");
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* The interrupt used when the repeat-failure breaker trips while an approved plan
|
|
115
|
+
* is active: the mechanical divergence signal. Same shape as the ordinary breaker
|
|
116
|
+
* text but names the contract — stop and replan, do not push sideways.
|
|
117
|
+
*/
|
|
118
|
+
export function planDivergenceStop(failedLabel) {
|
|
119
|
+
return (`You are executing a plan the user approved, and \`${failedLabel}\` has now failed ` +
|
|
120
|
+
"repeatedly — the plan's current step is not working as agreed. Do not keep " +
|
|
121
|
+
"retrying it, and do not improvise around it: that would replace the agreed plan " +
|
|
122
|
+
"with unagreed work. Stop here, state which step diverged and what you found, and " +
|
|
123
|
+
"end your turn so the user can decide whether to replan.");
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=planArtifact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planArtifact.js","sourceRoot":"","sources":["../../src/dynamo/planArtifact.ts"],"names":[],"mappings":"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"}
|