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,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* contextWindow.ts — model-anchored compaction thresholds (pure).
|
|
3
|
+
*
|
|
4
|
+
* Compaction is anchored to the model's REAL context window rather than a fixed
|
|
5
|
+
* number: reserve room for the summary output plus a safety buffer, then compact
|
|
6
|
+
* when usage crosses what's left. That keeps the thresholds correct per model, and
|
|
7
|
+
* automatically right when a stronger or longer model is wired in, instead of a
|
|
8
|
+
* single hard-coded ceiling.
|
|
9
|
+
*
|
|
10
|
+
* The window itself is the driver's answer, and it is each model's SHARP window —
|
|
11
|
+
* the span where attention stays reliable — not its storage maximum. A model that
|
|
12
|
+
* stores 1M tokens can still degrade from tool-noise dilution long before that, and
|
|
13
|
+
* on BYOK every token is the user's money, so compacting to the sharp window is
|
|
14
|
+
* both more accurate and cheaper.
|
|
15
|
+
*
|
|
16
|
+
* THE DIVISION OF LABOUR. A driver reports facts it can measure — its window, and
|
|
17
|
+
* the ceiling it puts on a buffered call. This module owns every decision made on
|
|
18
|
+
* top of them: how much headroom to leave, where the bars land, and the invariant
|
|
19
|
+
* that ties them together. A driver returning its own bars would be a decision in
|
|
20
|
+
* the driver, which is the line this project doesn't cross; see BOUNDARY.md.
|
|
21
|
+
*/
|
|
22
|
+
import { manifestForModel } from "../drivers/registry.js";
|
|
23
|
+
/**
|
|
24
|
+
* Reserve used when a driver declares no buffered ceiling of its own — it sends no
|
|
25
|
+
* `max_tokens` and lets the provider's default apply, as the DeepSeek driver does.
|
|
26
|
+
* With no number to reserve, core keeps the conservative one it has always used.
|
|
27
|
+
*/
|
|
28
|
+
const DEFAULT_SUMMARY_RESERVE = 20_000;
|
|
29
|
+
/** Headroom below the window so one turn's growth can't blow past it. */
|
|
30
|
+
const TURN_HEADROOM = 13_000;
|
|
31
|
+
/** Floor for the auto bar, so a tiny window still leaves a usable transcript. */
|
|
32
|
+
const MIN_AUTO_BAR = 20_000;
|
|
33
|
+
/** Share of the window micro-compaction aims at on an ordinary model. */
|
|
34
|
+
const MICRO_SHARE = 0.3;
|
|
35
|
+
/**
|
|
36
|
+
* Absolute cap on the micro bar.
|
|
37
|
+
*
|
|
38
|
+
* A flat share of the window stops making sense once windows get large: at 30% a
|
|
39
|
+
* 500K model would carry 150K of stale tool output on every turn, which is not a
|
|
40
|
+
* lean working set on any model and is the user's money on BYOK. The purpose of
|
|
41
|
+
* micro-compaction is a lean working set, and that purpose is absolute rather than
|
|
42
|
+
* proportional, so the share gets a ceiling.
|
|
43
|
+
*
|
|
44
|
+
* 96K is a judgment call under absent data, chosen so it sits ABOVE the share for
|
|
45
|
+
* every window we ship today (30% of 256K is 76.8K) and only engages past ~320K.
|
|
46
|
+
* That is deliberate: no shipped model changes behaviour, and the cap exists for
|
|
47
|
+
* the longer models it was written for. Revisit it if anyone measures where a
|
|
48
|
+
* working set actually stops paying for itself.
|
|
49
|
+
*/
|
|
50
|
+
const MICRO_CEILING = 96_000;
|
|
51
|
+
/**
|
|
52
|
+
* Hard guard: micro never rises above this share of the auto bar.
|
|
53
|
+
*
|
|
54
|
+
* The two bars are computed from different inputs, so a large enough reserve on a
|
|
55
|
+
* small enough window could otherwise push micro past auto and invert them —
|
|
56
|
+
* clearing tool bodies at the same moment we summarize. This keeps the ordering a
|
|
57
|
+
* property of the arithmetic rather than something the numbers happen to satisfy.
|
|
58
|
+
*/
|
|
59
|
+
const MICRO_MAX_SHARE_OF_AUTO = 0.6;
|
|
60
|
+
/**
|
|
61
|
+
* The part of the prompt that is NOT the transcript, measured rather than assumed:
|
|
62
|
+
* what the provider said the whole prompt was, minus what we measured the transcript
|
|
63
|
+
* to be on the way out. That remainder is the system prompt, every tool schema, the
|
|
64
|
+
* working-set block, the relevance map, todos and the governor — none of which the
|
|
65
|
+
* bars could see when they counted only the transcript.
|
|
66
|
+
*
|
|
67
|
+
* Clamped at zero. The transcript estimator is deliberately conservative and can read
|
|
68
|
+
* HIGHER than the provider's real count; a negative overhead would then push the bars
|
|
69
|
+
* later, which is precisely the failure this removes.
|
|
70
|
+
*/
|
|
71
|
+
export function measuredOverhead(promptTokens, transcriptTokens) {
|
|
72
|
+
return Math.max(0, promptTokens - transcriptTokens);
|
|
73
|
+
}
|
|
74
|
+
export function sharpContextWindow(model) {
|
|
75
|
+
return manifestForModel(model).contextWindow(model);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* How much room to keep free for a compaction summary, as the model's driver
|
|
79
|
+
* reports it. A driver that declares no buffered ceiling falls back to core's
|
|
80
|
+
* conservative default rather than reserving nothing.
|
|
81
|
+
*/
|
|
82
|
+
export function summaryReserveFor(model) {
|
|
83
|
+
const declared = manifestForModel(model).bufferedOutputTokens?.(model);
|
|
84
|
+
return declared !== undefined && declared > 0 ? declared : DEFAULT_SUMMARY_RESERVE;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Autocompact bar: summarize once the transcript crosses
|
|
88
|
+
* (window − summary reserve − turn headroom). For a 256K window reserving 20K
|
|
89
|
+
* that's 223K.
|
|
90
|
+
*/
|
|
91
|
+
export function autoBarFor(window, summaryReserve = DEFAULT_SUMMARY_RESERVE) {
|
|
92
|
+
return Math.max(MIN_AUTO_BAR, window - summaryReserve - TURN_HEADROOM);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Microcompact bar: clear old tool-result bodies well before the autocompact bar,
|
|
96
|
+
* so the working set stays lean continuously rather than only at the summary point.
|
|
97
|
+
* A share of the window, capped in absolute terms, and always kept clear of the
|
|
98
|
+
* auto bar.
|
|
99
|
+
*/
|
|
100
|
+
export function microBarFor(window, summaryReserve = DEFAULT_SUMMARY_RESERVE) {
|
|
101
|
+
return Math.min(Math.round(window * MICRO_SHARE), MICRO_CEILING, Math.round(autoBarFor(window, summaryReserve) * MICRO_MAX_SHARE_OF_AUTO));
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* How far below the auto bar to start telling the user context is filling up.
|
|
105
|
+
*
|
|
106
|
+
* A share rather than a fixed number, so it scales with the model the way every other
|
|
107
|
+
* bar here does: 20K of warning is most of a small window's usable transcript and a
|
|
108
|
+
* rounding error on a large one. The point is to give roughly a turn or two of notice,
|
|
109
|
+
* and a turn is proportional to the window.
|
|
110
|
+
*/
|
|
111
|
+
const WARN_SHARE_OF_AUTO = 0.9;
|
|
112
|
+
/**
|
|
113
|
+
* The point at which the user should be told, once, that a compaction is coming.
|
|
114
|
+
*
|
|
115
|
+
* Compaction rewrites the conversation. It is not a failure and it does not need
|
|
116
|
+
* permission, but arriving with no notice is how a user ends up wondering why the
|
|
117
|
+
* model forgot the middle of their session.
|
|
118
|
+
*/
|
|
119
|
+
export function warnBarFor(autoBar) {
|
|
120
|
+
return Math.round(autoBar * WARN_SHARE_OF_AUTO);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Turn a measured context size into the proactive "a compaction is coming" notice.
|
|
124
|
+
*
|
|
125
|
+
* Nothing shows until context crosses the warn bar (`warnBarFor`, 90% of the auto bar), so
|
|
126
|
+
* an ordinary session never sees it — it appears only for the turn or two of notice before
|
|
127
|
+
* the summarizing pass rewrites the conversation, which is the one thing a user should not
|
|
128
|
+
* meet by surprise. The arithmetic is the SAME auto bar the compaction decision runs on, so
|
|
129
|
+
* what the notice says and what actually happens cannot disagree.
|
|
130
|
+
*/
|
|
131
|
+
export function contextPressure(used, model) {
|
|
132
|
+
const auto = autoCompactThreshold(model);
|
|
133
|
+
const percentLeft = auto > 0 ? Math.max(0, Math.round(((auto - used) / auto) * 100)) : 0;
|
|
134
|
+
return { warn: used >= warnBarFor(auto), percentLeft };
|
|
135
|
+
}
|
|
136
|
+
/** Autocompact bar for a model, anchored to its driver's numbers. */
|
|
137
|
+
export function autoCompactThreshold(model) {
|
|
138
|
+
return autoBarFor(sharpContextWindow(model), summaryReserveFor(model));
|
|
139
|
+
}
|
|
140
|
+
/** Microcompact bar for a model, anchored to its driver's numbers. */
|
|
141
|
+
export function microCompactThreshold(model) {
|
|
142
|
+
return microBarFor(sharpContextWindow(model), summaryReserveFor(model));
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* How long a provider's prompt cache is assumed to survive between requests.
|
|
146
|
+
*
|
|
147
|
+
* 60 minutes, and the size matters more than it looks. This was 5 minutes — Anthropic's
|
|
148
|
+
* default ephemeral TTL — on the reasoning that anything past it is certainly gone. That
|
|
149
|
+
* is wrong in the DANGEROUS direction: the number decides when we clear tool bodies, and
|
|
150
|
+
* clearing rewrites the cached prefix. Guess too SHORT and we destroy an entry that was
|
|
151
|
+
* still alive, forcing a full-price rewrite that would never have happened. Guess too
|
|
152
|
+
* long and we merely miss a saving.
|
|
153
|
+
*
|
|
154
|
+
* Five minutes is only Anthropic's default tier. Its 1h tier exists, DeepSeek's context
|
|
155
|
+
* cache persists for hours, and several providers publish nothing at all — so a 5-minute
|
|
156
|
+
* assumption would have been actively wrong on most of the lineup.
|
|
157
|
+
*
|
|
158
|
+
* 60 minutes is the smallest value that is safe everywhere: past an hour no provider in
|
|
159
|
+
* the lineup is documented to still be holding the prefix, so clearing can only be
|
|
160
|
+
* reclaiming something already lost. Being wrong is then free rather than expensive.
|
|
161
|
+
*/
|
|
162
|
+
export const CACHE_TTL_MS = (() => {
|
|
163
|
+
const raw = Number(process.env.MINDWEAVE_CACHE_TTL_MS);
|
|
164
|
+
return Number.isFinite(raw) && raw > 0 ? raw : 60 * 60 * 1000;
|
|
165
|
+
})();
|
|
166
|
+
/**
|
|
167
|
+
* Below this share of the micro bar, a cold cache is not worth compacting for. A
|
|
168
|
+
* session holding almost nothing has almost nothing to save, and clearing tool bodies
|
|
169
|
+
* early costs real detail.
|
|
170
|
+
*/
|
|
171
|
+
const COLD_COMPACT_FLOOR = 0.5;
|
|
172
|
+
/**
|
|
173
|
+
* Whether to microcompact because the provider's cache has gone cold, rather than
|
|
174
|
+
* because context is filling up.
|
|
175
|
+
*
|
|
176
|
+
* The normal gate exists for a specific reason: clearing an old tool body REWRITES the
|
|
177
|
+
* transcript, and the transcript is the cached half of the request, so on a warm cache
|
|
178
|
+
* it trades a cheap cached read for a full prefix rewrite at 1.25x. That is a loss, and
|
|
179
|
+
* it is why microcompaction waits for real pressure.
|
|
180
|
+
*
|
|
181
|
+
* None of that argument survives the cache expiring. Once the gap since the last call
|
|
182
|
+
* exceeds the TTL there is no entry left to invalidate — the next request pays to write
|
|
183
|
+
* the whole prefix no matter what it contains. Clearing stale tool bodies first is then
|
|
184
|
+
* strictly free, and the tokens never have to be paid for again.
|
|
185
|
+
*
|
|
186
|
+
* `lastCallAt` of 0 means no call has been made yet (a fresh session), which is not a
|
|
187
|
+
* cold cache — it is no cache, with nothing yet worth clearing.
|
|
188
|
+
*/
|
|
189
|
+
export function cacheLikelyCold(lastCallAt, now, used, microBar, ttlMs = CACHE_TTL_MS) {
|
|
190
|
+
if (lastCallAt <= 0)
|
|
191
|
+
return false;
|
|
192
|
+
if (now - lastCallAt <= ttlMs)
|
|
193
|
+
return false;
|
|
194
|
+
return used >= microBar * COLD_COMPACT_FLOOR;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Fraction of the prefix a clear must reclaim to pay for the cache rewrite it causes.
|
|
198
|
+
*
|
|
199
|
+
* Clearing an old tool body is not free on a warm cache: it changes the cached prefix,
|
|
200
|
+
* so the next request rewrites what remains at 1.25x instead of reading it at 0.1x.
|
|
201
|
+
* Writing out the break-even, with P the prefix and R what the clear reclaims:
|
|
202
|
+
*
|
|
203
|
+
* keep for N steps = N * 0.1P
|
|
204
|
+
* clear, then N-1 = 1.25(P-R) + (N-1) * 0.1(P-R)
|
|
205
|
+
* break-even at N = 11.5 * (P - R) / R
|
|
206
|
+
*
|
|
207
|
+
* which is brutal at small R: reclaiming 10% of a 40K prefix needs ~103 further steps
|
|
208
|
+
* to pay off, 50% needs ~12, and 75% needs ~4. A turn does not have 103 steps. So a
|
|
209
|
+
* clear that frees a little is not a small win, it is a real loss, and the only clears
|
|
210
|
+
* worth making on a warm cache are the big ones.
|
|
211
|
+
*
|
|
212
|
+
* 0.35 sits where the break-even (~21 steps) is still optimistic but no longer absurd,
|
|
213
|
+
* and it is deliberately a FRACTION rather than a token count: the thing being paid for
|
|
214
|
+
* is proportional to the prefix, so the threshold has to be too.
|
|
215
|
+
*/
|
|
216
|
+
const CLEAR_WORTH_FRACTION = 0.35;
|
|
217
|
+
/**
|
|
218
|
+
* Whether a proposed microcompaction should actually be committed.
|
|
219
|
+
*
|
|
220
|
+
* Three ways to say yes, and they are different kinds of reason:
|
|
221
|
+
*
|
|
222
|
+
* - `cold`: the provider's cache has expired, so there is no entry to invalidate and
|
|
223
|
+
* the rewrite is free. Any reclaim at all is profit.
|
|
224
|
+
* - `urgent`: context is close enough to the autocompact bar that FITTING matters more
|
|
225
|
+
* than cost. A request that does not fit cannot be sent at any price.
|
|
226
|
+
* - otherwise: only when the clear reclaims enough of the prefix to out-earn the cache
|
|
227
|
+
* write it forces, per the arithmetic above.
|
|
228
|
+
*
|
|
229
|
+
* Pure, because the alternative is discovering the economics were wrong from a bill.
|
|
230
|
+
*/
|
|
231
|
+
export function clearIsWorthIt(opts) {
|
|
232
|
+
const reclaimed = opts.before - opts.after;
|
|
233
|
+
if (reclaimed <= 0)
|
|
234
|
+
return false;
|
|
235
|
+
if (opts.cold)
|
|
236
|
+
return true;
|
|
237
|
+
// Close to the bar, fitting beats saving: clearing here is what defers a far more
|
|
238
|
+
// expensive summarization, and a prompt that overflows is not a cost question.
|
|
239
|
+
if (opts.before >= opts.autoBar * 0.9)
|
|
240
|
+
return true;
|
|
241
|
+
return reclaimed >= opts.before * CLEAR_WORTH_FRACTION;
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=contextWindow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextWindow.js","sourceRoot":"","sources":["../../src/dynamo/contextWindow.ts"],"names":[],"mappings":"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"}
|