@machina.ai/cell-cli-core 1.38.1-rc2 → 1.40.1-rc2
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/dist/docs/AFTER_MERGE_PROMPT.md +1 -1
- package/dist/docs/admin/enterprise-controls.md +1 -1
- package/dist/docs/changelogs/index.md +42 -0
- package/dist/docs/changelogs/latest.md +254 -361
- package/dist/docs/changelogs/preview.md +237 -406
- package/dist/docs/cli/acp-mode.md +6 -6
- package/dist/docs/cli/auto-memory.md +143 -0
- package/dist/docs/cli/checkpointing.md +5 -5
- package/dist/docs/cli/cli-reference.md +12 -11
- package/dist/docs/cli/creating-skills.md +2 -2
- package/dist/docs/cli/custom-commands.md +15 -14
- package/dist/docs/cli/enterprise.md +17 -14
- package/dist/docs/cli/gemini-ignore.md +2 -2
- package/dist/docs/cli/generation-settings.md +21 -20
- package/dist/docs/cli/model-routing.md +2 -2
- package/dist/docs/cli/model-steering.md +1 -1
- package/dist/docs/cli/plan-mode.md +11 -6
- package/dist/docs/cli/sandbox.md +7 -5
- package/dist/docs/cli/settings.md +32 -28
- package/dist/docs/cli/system-prompt.md +8 -8
- package/dist/docs/cli/telemetry.md +18 -11
- package/dist/docs/cli/themes.md +2 -2
- package/dist/docs/cli/trusted-folders.md +41 -13
- package/dist/docs/cli/tutorials/mcp-setup.md +1 -1
- package/dist/docs/cli/tutorials/memory-management.md +3 -1
- package/dist/docs/cli/tutorials/plan-mode-steering.md +2 -2
- package/dist/docs/cli/tutorials/session-management.md +1 -1
- package/dist/docs/cli/tutorials/shell-commands.md +1 -1
- package/dist/docs/cli/tutorials/task-planning.md +3 -3
- package/dist/docs/core/index.md +5 -6
- package/dist/docs/core/local-model-routing.md +1 -1
- package/dist/docs/core/remote-agents.md +1 -1
- package/dist/docs/core/subagents.md +38 -8
- package/dist/docs/extensions/best-practices.md +5 -4
- package/dist/docs/extensions/reference.md +6 -5
- package/dist/docs/extensions/releasing.md +6 -5
- package/dist/docs/extensions/writing-extensions.md +11 -11
- package/dist/docs/get-started/{authentication.md → authentication.mdx} +139 -93
- package/dist/docs/get-started/gemini-3.md +1 -1
- package/dist/docs/get-started/index.md +4 -4
- package/dist/docs/get-started/installation.mdx +201 -0
- package/dist/docs/hooks/best-practices.md +18 -17
- package/dist/docs/hooks/index.md +10 -8
- package/dist/docs/hooks/reference.md +10 -10
- package/dist/docs/ide-integration/ide-companion-spec.md +14 -14
- package/dist/docs/ide-integration/index.md +4 -4
- package/dist/docs/index.md +2 -2
- package/dist/docs/integration-tests.md +84 -2
- package/dist/docs/issue-and-pr-automation.md +8 -7
- package/dist/docs/npm.md +2 -2
- package/dist/docs/reference/commands.md +11 -11
- package/dist/docs/reference/configuration.md +150 -47
- package/dist/docs/reference/keyboard-shortcuts.md +79 -2
- package/dist/docs/reference/memport.md +2 -3
- package/dist/docs/reference/policy-engine.md +60 -26
- package/dist/docs/reference/tools.md +38 -4
- package/dist/docs/release-confidence.md +1 -1
- package/dist/docs/releases.md +19 -19
- package/dist/docs/resources/faq.md +5 -5
- package/dist/docs/resources/tos-privacy.md +10 -9
- package/dist/docs/resources/troubleshooting.md +17 -16
- package/dist/docs/resources/uninstall.md +5 -4
- package/dist/docs/sidebar.json +13 -1
- package/dist/docs/tools/ask-user.md +3 -3
- package/dist/docs/tools/file-system.md +7 -7
- package/dist/docs/tools/mcp-resources.md +44 -0
- package/dist/docs/tools/mcp-server.md +42 -39
- package/dist/docs/tools/shell.md +5 -5
- package/dist/docs/tools/tracker.md +61 -0
- package/dist/package.json +5 -4
- package/dist/src/agent/content-utils.d.ts +0 -6
- package/dist/src/agent/content-utils.js +0 -14
- package/dist/src/agent/content-utils.js.map +1 -1
- package/dist/src/agent/content-utils.test.js +1 -18
- package/dist/src/agent/content-utils.test.js.map +1 -1
- package/dist/src/agent/event-translator.js +8 -3
- package/dist/src/agent/event-translator.js.map +1 -1
- package/dist/src/agent/event-translator.test.js +14 -9
- package/dist/src/agent/event-translator.test.js.map +1 -1
- package/dist/src/agent/legacy-agent-session.js +9 -3
- package/dist/src/agent/legacy-agent-session.js.map +1 -1
- package/dist/src/agent/legacy-agent-session.test.js +4 -3
- package/dist/src/agent/legacy-agent-session.test.js.map +1 -1
- package/dist/src/agent/tool-display-utils.d.ts +30 -0
- package/dist/src/agent/tool-display-utils.js +69 -0
- package/dist/src/agent/tool-display-utils.js.map +1 -0
- package/dist/src/agent/tool-display-utils.test.js +101 -0
- package/dist/src/agent/tool-display-utils.test.js.map +1 -0
- package/dist/src/agent/types.d.ts +25 -5
- package/dist/src/agents/a2aUtils.js +28 -15
- package/dist/src/agents/a2aUtils.js.map +1 -1
- package/dist/src/agents/a2aUtils.test.js +43 -0
- package/dist/src/agents/a2aUtils.test.js.map +1 -1
- package/dist/src/agents/agent-tool.d.ts +31 -0
- package/dist/src/agents/agent-tool.js +155 -0
- package/dist/src/agents/agent-tool.js.map +1 -0
- package/dist/src/agents/agent-tool.test.js +110 -0
- package/dist/src/agents/agent-tool.test.js.map +1 -0
- package/dist/src/agents/agentLoader.d.ts +79 -4
- package/dist/src/agents/agentLoader.js +40 -2
- package/dist/src/agents/agentLoader.js.map +1 -1
- package/dist/src/agents/agentLoader.test.js +32 -0
- package/dist/src/agents/agentLoader.test.js.map +1 -1
- package/dist/src/agents/browser/analyzeScreenshot.js +1 -1
- package/dist/src/agents/browser/analyzeScreenshot.js.map +1 -1
- package/dist/src/agents/browser/analyzeScreenshot.test.js +19 -7
- package/dist/src/agents/browser/analyzeScreenshot.test.js.map +1 -1
- package/dist/src/agents/browser/browserAgentInvocation.d.ts +2 -2
- package/dist/src/agents/browser/browserAgentInvocation.js +2 -1
- package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
- package/dist/src/agents/browser/browserAgentInvocation.test.js +61 -17
- package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -1
- package/dist/src/agents/browser/mcpToolWrapper.js +1 -1
- package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -1
- package/dist/src/agents/browser/mcpToolWrapper.test.js +22 -10
- package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -1
- package/dist/src/agents/codebase-investigator.js +2 -2
- package/dist/src/agents/codebase-investigator.js.map +1 -1
- package/dist/src/agents/generalist-agent.js +3 -2
- package/dist/src/agents/generalist-agent.js.map +1 -1
- package/dist/src/agents/generalist-agent.test.js +1 -0
- package/dist/src/agents/generalist-agent.test.js.map +1 -1
- package/dist/src/agents/local-executor.d.ts +1 -1
- package/dist/src/agents/local-executor.js +10 -7
- package/dist/src/agents/local-executor.js.map +1 -1
- package/dist/src/agents/local-executor.test.js +5 -3
- package/dist/src/agents/local-executor.test.js.map +1 -1
- package/dist/src/agents/local-invocation.d.ts +2 -2
- package/dist/src/agents/local-invocation.js +8 -2
- package/dist/src/agents/local-invocation.js.map +1 -1
- package/dist/src/agents/local-invocation.test.js +29 -13
- package/dist/src/agents/local-invocation.test.js.map +1 -1
- package/dist/src/agents/registry.d.ts +2 -0
- package/dist/src/agents/registry.js +20 -19
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +19 -30
- package/dist/src/agents/registry.test.js.map +1 -1
- package/dist/src/agents/remote-invocation.d.ts +3 -4
- package/dist/src/agents/remote-invocation.js +2 -1
- package/dist/src/agents/remote-invocation.js.map +1 -1
- package/dist/src/agents/remote-invocation.test.js +45 -18
- package/dist/src/agents/remote-invocation.test.js.map +1 -1
- package/dist/src/agents/skill-extraction-agent.d.ts +3 -2
- package/dist/src/agents/skill-extraction-agent.js +99 -56
- package/dist/src/agents/skill-extraction-agent.js.map +1 -1
- package/dist/src/agents/skill-extraction-agent.test.js +54 -0
- package/dist/src/agents/skill-extraction-agent.test.js.map +1 -0
- package/dist/src/availability/policyCatalog.js +1 -1
- package/dist/src/availability/policyCatalog.js.map +1 -1
- package/dist/src/availability/policyCatalog.test.js +1 -1
- package/dist/src/availability/policyCatalog.test.js.map +1 -1
- package/dist/src/code_assist/oauth2.js +14 -4
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/commands/memory.d.ts +77 -0
- package/dist/src/commands/memory.js +494 -0
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/memory.test.js +720 -1
- package/dist/src/commands/memory.test.js.map +1 -1
- package/dist/src/config/config-agents-reload.test.js +26 -31
- package/dist/src/config/config-agents-reload.test.js.map +1 -1
- package/dist/src/config/config.d.ts +24 -10
- package/dist/src/config/config.js +148 -82
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +373 -10
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/constants.d.ts +1 -0
- package/dist/src/config/constants.js +2 -0
- package/dist/src/config/constants.js.map +1 -1
- package/dist/src/config/defaultModelConfigs.js +7 -7
- package/dist/src/config/defaultModelConfigs.js.map +1 -1
- package/dist/src/config/memory.js +1 -1
- package/dist/src/config/memory.js.map +1 -1
- package/dist/src/config/path-validation.test.js +15 -6
- package/dist/src/config/path-validation.test.js.map +1 -1
- package/dist/src/config/projectRegistry.js +113 -32
- package/dist/src/config/projectRegistry.js.map +1 -1
- package/dist/src/config/projectRegistry.test.js +51 -0
- package/dist/src/config/projectRegistry.test.js.map +1 -1
- package/dist/src/config/storage.d.ts +5 -1
- package/dist/src/config/storage.js +14 -1
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/config/storage.test.js +12 -0
- package/dist/src/config/storage.test.js.map +1 -1
- package/dist/src/confirmation-bus/message-bus.d.ts +4 -1
- package/dist/src/confirmation-bus/message-bus.js +39 -1
- package/dist/src/confirmation-bus/message-bus.js.map +1 -1
- package/dist/src/confirmation-bus/message-bus.test.js +43 -0
- package/dist/src/confirmation-bus/message-bus.test.js.map +1 -1
- package/dist/src/context/config/configLoader.d.ts +13 -0
- package/dist/src/context/config/configLoader.js +65 -0
- package/dist/src/context/config/configLoader.js.map +1 -0
- package/dist/src/context/config/configLoader.test.d.ts +6 -0
- package/dist/src/context/config/configLoader.test.js +79 -0
- package/dist/src/context/config/configLoader.test.js.map +1 -0
- package/dist/src/context/config/profiles.d.ts +17 -0
- package/dist/src/context/config/profiles.js +93 -0
- package/dist/src/context/config/profiles.js.map +1 -0
- package/dist/src/context/config/registry.d.ts +21 -0
- package/dist/src/context/config/registry.js +32 -0
- package/dist/src/context/config/registry.js.map +1 -0
- package/dist/src/context/config/schema.d.ts +45 -0
- package/dist/src/context/config/schema.js +47 -0
- package/dist/src/context/config/schema.js.map +1 -0
- package/dist/src/context/config/types.d.ts +39 -0
- package/dist/src/context/config/types.js +7 -0
- package/dist/src/context/config/types.js.map +1 -0
- package/dist/src/context/contextManager.barrier.test.d.ts +6 -0
- package/dist/src/context/contextManager.barrier.test.js +56 -0
- package/dist/src/context/contextManager.barrier.test.js.map +1 -0
- package/dist/src/context/contextManager.d.ts +49 -0
- package/dist/src/context/contextManager.js +120 -0
- package/dist/src/context/contextManager.js.map +1 -0
- package/dist/src/context/eventBus.d.ts +28 -0
- package/dist/src/context/eventBus.js +27 -0
- package/dist/src/context/eventBus.js.map +1 -0
- package/dist/src/context/graph/behaviorRegistry.d.ts +28 -0
- package/dist/src/context/graph/behaviorRegistry.js +14 -0
- package/dist/src/context/graph/behaviorRegistry.js.map +1 -0
- package/dist/src/context/graph/builtinBehaviors.d.ts +11 -0
- package/dist/src/context/graph/builtinBehaviors.js +145 -0
- package/dist/src/context/graph/builtinBehaviors.js.map +1 -0
- package/dist/src/context/graph/fromGraph.d.ts +9 -0
- package/dist/src/context/graph/fromGraph.js +34 -0
- package/dist/src/context/graph/fromGraph.js.map +1 -0
- package/dist/src/context/graph/mapper.d.ts +16 -0
- package/dist/src/context/graph/mapper.js +16 -0
- package/dist/src/context/graph/mapper.js.map +1 -0
- package/dist/src/context/graph/render.d.ts +15 -0
- package/dist/src/context/graph/render.js +72 -0
- package/dist/src/context/graph/render.js.map +1 -0
- package/dist/src/context/graph/toGraph.d.ts +10 -0
- package/dist/src/context/graph/toGraph.js +172 -0
- package/dist/src/context/graph/toGraph.js.map +1 -0
- package/dist/src/context/graph/types.d.ts +139 -0
- package/dist/src/context/graph/types.js +36 -0
- package/dist/src/context/graph/types.js.map +1 -0
- package/dist/src/context/historyObserver.d.ts +27 -0
- package/dist/src/context/historyObserver.js +64 -0
- package/dist/src/context/historyObserver.js.map +1 -0
- package/dist/src/context/pipeline/contextWorkingBuffer.d.ts +33 -0
- package/dist/src/context/pipeline/contextWorkingBuffer.js +197 -0
- package/dist/src/context/pipeline/contextWorkingBuffer.js.map +1 -0
- package/dist/src/context/pipeline/contextWorkingBuffer.test.d.ts +6 -0
- package/dist/src/context/pipeline/contextWorkingBuffer.test.js +89 -0
- package/dist/src/context/pipeline/contextWorkingBuffer.test.js.map +1 -0
- package/dist/src/context/pipeline/environment.d.ts +27 -0
- package/dist/src/context/pipeline/environment.js +2 -0
- package/dist/src/context/pipeline/environment.js.map +1 -0
- package/dist/src/context/pipeline/environmentImpl.d.ts +28 -0
- package/dist/src/context/pipeline/environmentImpl.js +40 -0
- package/dist/src/context/pipeline/environmentImpl.js.map +1 -0
- package/dist/src/context/pipeline/environmentImpl.test.d.ts +1 -0
- package/dist/src/context/pipeline/environmentImpl.test.js +32 -0
- package/dist/src/context/pipeline/environmentImpl.test.js.map +1 -0
- package/dist/src/context/pipeline/inbox.d.ts +15 -0
- package/dist/src/context/pipeline/inbox.js +52 -0
- package/dist/src/context/pipeline/inbox.js.map +1 -0
- package/dist/src/context/pipeline/inbox.test.d.ts +1 -0
- package/dist/src/context/pipeline/inbox.test.js +36 -0
- package/dist/src/context/pipeline/inbox.test.js.map +1 -0
- package/dist/src/context/pipeline/orchestrator.d.ts +22 -0
- package/dist/src/context/pipeline/orchestrator.js +126 -0
- package/dist/src/context/pipeline/orchestrator.js.map +1 -0
- package/dist/src/context/pipeline/orchestrator.test.d.ts +6 -0
- package/dist/src/context/pipeline/orchestrator.test.js +154 -0
- package/dist/src/context/pipeline/orchestrator.test.js.map +1 -0
- package/dist/src/context/pipeline.d.ts +52 -0
- package/dist/src/context/pipeline.js +7 -0
- package/dist/src/context/pipeline.js.map +1 -0
- package/dist/src/context/processors/blobDegradationProcessor.d.ts +6 -0
- package/dist/src/context/processors/blobDegradationProcessor.js +127 -0
- package/dist/src/context/processors/blobDegradationProcessor.js.map +1 -0
- package/dist/src/context/processors/blobDegradationProcessor.test.d.ts +6 -0
- package/dist/src/context/processors/blobDegradationProcessor.test.js +72 -0
- package/dist/src/context/processors/blobDegradationProcessor.test.js.map +1 -0
- package/dist/src/context/processors/historyTruncationProcessor.d.ts +11 -0
- package/dist/src/context/processors/historyTruncationProcessor.js +61 -0
- package/dist/src/context/processors/historyTruncationProcessor.js.map +1 -0
- package/dist/src/context/processors/nodeDistillationProcessor.d.ts +8 -0
- package/dist/src/context/processors/nodeDistillationProcessor.js +167 -0
- package/dist/src/context/processors/nodeDistillationProcessor.js.map +1 -0
- package/dist/src/context/processors/nodeDistillationProcessor.test.d.ts +6 -0
- package/dist/src/context/processors/nodeDistillationProcessor.test.js +77 -0
- package/dist/src/context/processors/nodeDistillationProcessor.test.js.map +1 -0
- package/dist/src/context/processors/nodeTruncationProcessor.d.ts +8 -0
- package/dist/src/context/processors/nodeTruncationProcessor.js +109 -0
- package/dist/src/context/processors/nodeTruncationProcessor.js.map +1 -0
- package/dist/src/context/processors/nodeTruncationProcessor.test.d.ts +6 -0
- package/dist/src/context/processors/nodeTruncationProcessor.test.js +71 -0
- package/dist/src/context/processors/nodeTruncationProcessor.test.js.map +1 -0
- package/dist/src/context/processors/rollingSummaryProcessor.d.ts +8 -0
- package/dist/src/context/processors/rollingSummaryProcessor.js +129 -0
- package/dist/src/context/processors/rollingSummaryProcessor.js.map +1 -0
- package/dist/src/context/processors/rollingSummaryProcessor.test.d.ts +1 -0
- package/dist/src/context/processors/rollingSummaryProcessor.test.js +60 -0
- package/dist/src/context/processors/rollingSummaryProcessor.test.js.map +1 -0
- package/dist/src/context/processors/stateSnapshotAsyncProcessor.d.ts +9 -0
- package/dist/src/context/processors/stateSnapshotAsyncProcessor.js +75 -0
- package/dist/src/context/processors/stateSnapshotAsyncProcessor.js.map +1 -0
- package/dist/src/context/processors/stateSnapshotAsyncProcessor.test.d.ts +1 -0
- package/dist/src/context/processors/stateSnapshotAsyncProcessor.test.js +80 -0
- package/dist/src/context/processors/stateSnapshotAsyncProcessor.test.js.map +1 -0
- package/dist/src/context/processors/stateSnapshotProcessor.d.ts +9 -0
- package/dist/src/context/processors/stateSnapshotProcessor.js +130 -0
- package/dist/src/context/processors/stateSnapshotProcessor.js.map +1 -0
- package/dist/src/context/processors/stateSnapshotProcessor.test.d.ts +1 -0
- package/dist/src/context/processors/stateSnapshotProcessor.test.js +91 -0
- package/dist/src/context/processors/stateSnapshotProcessor.test.js.map +1 -0
- package/dist/src/context/processors/toolMaskingProcessor.d.ts +8 -0
- package/dist/src/context/processors/toolMaskingProcessor.js +194 -0
- package/dist/src/context/processors/toolMaskingProcessor.js.map +1 -0
- package/dist/src/context/processors/toolMaskingProcessor.test.d.ts +1 -0
- package/dist/src/context/processors/toolMaskingProcessor.test.js +50 -0
- package/dist/src/context/processors/toolMaskingProcessor.test.js.map +1 -0
- package/dist/src/context/system-tests/lifecycle.golden.test.d.ts +6 -0
- package/dist/src/context/system-tests/lifecycle.golden.test.js +195 -0
- package/dist/src/context/system-tests/lifecycle.golden.test.js.map +1 -0
- package/dist/src/context/system-tests/simulationHarness.d.ts +41 -0
- package/dist/src/context/system-tests/simulationHarness.js +88 -0
- package/dist/src/context/system-tests/simulationHarness.js.map +1 -0
- package/dist/src/context/testing/contextTestUtils.d.ts +44 -0
- package/dist/src/context/testing/contextTestUtils.js +176 -0
- package/dist/src/context/testing/contextTestUtils.js.map +1 -0
- package/dist/src/context/testing/testProfile.d.ts +7 -0
- package/dist/src/context/testing/testProfile.js +20 -0
- package/dist/src/context/testing/testProfile.js.map +1 -0
- package/dist/src/context/tracer.d.ts +19 -0
- package/dist/src/context/tracer.js +79 -0
- package/dist/src/context/tracer.js.map +1 -0
- package/dist/src/context/tracer.test.d.ts +6 -0
- package/dist/src/context/tracer.test.js +71 -0
- package/dist/src/context/tracer.test.js.map +1 -0
- package/dist/src/context/utils/contextTokenCalculator.d.ts +53 -0
- package/dist/src/context/utils/contextTokenCalculator.js +97 -0
- package/dist/src/context/utils/contextTokenCalculator.js.map +1 -0
- package/dist/src/context/utils/snapshotGenerator.d.ts +12 -0
- package/dist/src/context/utils/snapshotGenerator.js +43 -0
- package/dist/src/context/utils/snapshotGenerator.js.map +1 -0
- package/dist/src/core/agentChatHistory.d.ts +26 -0
- package/dist/src/core/agentChatHistory.js +50 -0
- package/dist/src/core/agentChatHistory.js.map +1 -0
- package/dist/src/core/client.js +3 -1
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +4 -0
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +8 -1
- package/dist/src/core/contentGenerator.js +46 -4
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +174 -8
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/coreToolHookTriggers.d.ts +1 -1
- package/dist/src/core/coreToolHookTriggers.js +5 -1
- package/dist/src/core/coreToolHookTriggers.js.map +1 -1
- package/dist/src/core/coreToolHookTriggers.test.js +1 -1
- package/dist/src/core/coreToolHookTriggers.test.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +2 -1
- package/dist/src/core/geminiChat.js +7 -2
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +19 -6
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/geminiChat_network_retry.test.js +42 -0
- package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
- package/dist/src/core/localLiteRtLmClient.js +2 -0
- package/dist/src/core/localLiteRtLmClient.js.map +1 -1
- package/dist/src/core/localLiteRtLmClient.test.js +7 -0
- package/dist/src/core/localLiteRtLmClient.test.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.js +19 -6
- package/dist/src/core/loggingContentGenerator.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.test.js +55 -0
- package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
- package/dist/src/core/prompts-substitution.test.js +1 -0
- package/dist/src/core/prompts-substitution.test.js.map +1 -1
- package/dist/src/core/prompts.d.ts +1 -1
- package/dist/src/core/prompts.js +2 -2
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +39 -8
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/hooks/hookRunner.js +8 -0
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +23 -0
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/ide/ide-client.js +3 -4
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/index.d.ts +7 -3
- package/dist/src/index.js +7 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/mcpLauncher.js +1 -1
- package/dist/src/mcp/mcpLauncher.js.map +1 -1
- package/dist/src/mcp/oauth-provider.test.js +24 -17
- package/dist/src/mcp/oauth-provider.test.js.map +1 -1
- package/dist/src/policy/config.d.ts +2 -0
- package/dist/src/policy/config.js +67 -12
- package/dist/src/policy/config.js.map +1 -1
- package/dist/src/policy/core-tools-mapping.test.d.ts +6 -0
- package/dist/src/policy/core-tools-mapping.test.js +44 -0
- package/dist/src/policy/core-tools-mapping.test.js.map +1 -0
- package/dist/src/policy/policies/agents.toml +10 -0
- package/dist/src/policy/policies/plan.toml +17 -43
- package/dist/src/policy/policies/read-only.toml +24 -38
- package/dist/src/policy/policy-engine.d.ts +1 -1
- package/dist/src/policy/policy-engine.js +72 -67
- package/dist/src/policy/policy-engine.js.map +1 -1
- package/dist/src/policy/policy-engine.test.js +71 -4
- package/dist/src/policy/policy-engine.test.js.map +1 -1
- package/dist/src/policy/sandboxPolicyManager.js +4 -4
- package/dist/src/policy/sandboxPolicyManager.js.map +1 -1
- package/dist/src/policy/shell-safety-regression.test.d.ts +6 -0
- package/dist/src/policy/shell-safety-regression.test.js +86 -0
- package/dist/src/policy/shell-safety-regression.test.js.map +1 -0
- package/dist/src/policy/shell-safety.test.js +24 -0
- package/dist/src/policy/shell-safety.test.js.map +1 -1
- package/dist/src/policy/shell-substitution.test.d.ts +6 -0
- package/dist/src/policy/shell-substitution.test.js +75 -0
- package/dist/src/policy/shell-substitution.test.js.map +1 -0
- package/dist/src/policy/toml-loader.test.js +25 -11
- package/dist/src/policy/toml-loader.test.js.map +1 -1
- package/dist/src/policy/types.d.ts +6 -2
- package/dist/src/policy/types.js +4 -2
- package/dist/src/policy/types.js.map +1 -1
- package/dist/src/prompts/promptProvider.d.ts +1 -1
- package/dist/src/prompts/promptProvider.js +41 -24
- package/dist/src/prompts/promptProvider.js.map +1 -1
- package/dist/src/prompts/promptProvider.test.js +36 -2
- package/dist/src/prompts/promptProvider.test.js.map +1 -1
- package/dist/src/prompts/snippets-memory-v2.test.d.ts +6 -0
- package/dist/src/prompts/snippets-memory-v2.test.js +94 -0
- package/dist/src/prompts/snippets-memory-v2.test.js.map +1 -0
- package/dist/src/prompts/snippets.d.ts +19 -1
- package/dist/src/prompts/snippets.js +33 -6
- package/dist/src/prompts/snippets.js.map +1 -1
- package/dist/src/prompts/snippets.legacy.d.ts +6 -1
- package/dist/src/prompts/snippets.legacy.js +14 -7
- package/dist/src/prompts/snippets.legacy.js.map +1 -1
- package/dist/src/prompts/utils.test.js +1 -0
- package/dist/src/prompts/utils.test.js.map +1 -1
- package/dist/src/routing/modelRouterService.js +1 -1
- package/dist/src/routing/modelRouterService.js.map +1 -1
- package/dist/src/sandbox/linux/LinuxSandboxManager.d.ts +2 -0
- package/dist/src/sandbox/linux/LinuxSandboxManager.js +43 -19
- package/dist/src/sandbox/linux/LinuxSandboxManager.js.map +1 -1
- package/dist/src/sandbox/linux/LinuxSandboxManager.test.js +16 -0
- package/dist/src/sandbox/linux/LinuxSandboxManager.test.js.map +1 -1
- package/dist/src/sandbox/linux/bwrapArgsBuilder.d.ts +3 -7
- package/dist/src/sandbox/linux/bwrapArgsBuilder.js +96 -105
- package/dist/src/sandbox/linux/bwrapArgsBuilder.js.map +1 -1
- package/dist/src/sandbox/linux/bwrapArgsBuilder.test.js +144 -41
- package/dist/src/sandbox/linux/bwrapArgsBuilder.test.js.map +1 -1
- package/dist/src/sandbox/macos/MacOsSandboxManager.js +19 -10
- package/dist/src/sandbox/macos/MacOsSandboxManager.js.map +1 -1
- package/dist/src/sandbox/macos/MacOsSandboxManager.test.js +24 -37
- package/dist/src/sandbox/macos/MacOsSandboxManager.test.js.map +1 -1
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.d.ts +3 -9
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.js +129 -96
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.js.map +1 -1
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js +78 -77
- package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js.map +1 -1
- package/dist/src/sandbox/utils/fsUtils.d.ts +2 -3
- package/dist/src/sandbox/utils/fsUtils.js +12 -27
- package/dist/src/sandbox/utils/fsUtils.js.map +1 -1
- package/dist/src/sandbox/utils/fsUtils.test.js +87 -29
- package/dist/src/sandbox/utils/fsUtils.test.js.map +1 -1
- package/dist/src/sandbox/windows/GeminiSandbox.cs +186 -77
- package/dist/src/sandbox/windows/WindowsSandboxManager.d.ts +4 -16
- package/dist/src/sandbox/windows/WindowsSandboxManager.js +138 -204
- package/dist/src/sandbox/windows/WindowsSandboxManager.js.map +1 -1
- package/dist/src/sandbox/windows/WindowsSandboxManager.test.js +105 -122
- package/dist/src/sandbox/windows/WindowsSandboxManager.test.js.map +1 -1
- package/dist/src/scheduler/policy.js +1 -2
- package/dist/src/scheduler/policy.js.map +1 -1
- package/dist/src/scheduler/policy.test.js +58 -2
- package/dist/src/scheduler/policy.test.js.map +1 -1
- package/dist/src/scheduler/scheduler.d.ts +2 -1
- package/dist/src/scheduler/scheduler.js +13 -14
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/scheduler/scheduler.test.js +66 -0
- package/dist/src/scheduler/scheduler.test.js.map +1 -1
- package/dist/src/scheduler/scheduler_hooks.test.js +1 -0
- package/dist/src/scheduler/scheduler_hooks.test.js.map +1 -1
- package/dist/src/scheduler/scheduler_parallel.test.js +2 -0
- package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -1
- package/dist/src/scheduler/tool-executor.js +2 -0
- package/dist/src/scheduler/tool-executor.js.map +1 -1
- package/dist/src/services/chatRecordingService.d.ts +12 -153
- package/dist/src/services/chatRecordingService.js +444 -350
- package/dist/src/services/chatRecordingService.js.map +1 -1
- package/dist/src/services/chatRecordingService.test.js +174 -128
- package/dist/src/services/chatRecordingService.test.js.map +1 -1
- package/dist/src/services/chatRecordingTypes.d.ts +111 -0
- package/dist/src/services/chatRecordingTypes.js +10 -0
- package/dist/src/services/chatRecordingTypes.js.map +1 -0
- package/dist/src/services/gitService.d.ts +2 -0
- package/dist/src/services/gitService.js +10 -1
- package/dist/src/services/gitService.js.map +1 -1
- package/dist/src/services/gitService.test.js +6 -2
- package/dist/src/services/gitService.test.js.map +1 -1
- package/dist/src/services/keychainService.d.ts +2 -2
- package/dist/src/services/keychainService.js +9 -9
- package/dist/src/services/keychainService.js.map +1 -1
- package/dist/src/services/keychainService.test.js +7 -7
- package/dist/src/services/keychainService.test.js.map +1 -1
- package/dist/src/services/keychainTypes.d.ts +1 -1
- package/dist/src/services/memoryPatchUtils.d.ts +42 -0
- package/dist/src/services/memoryPatchUtils.js +216 -0
- package/dist/src/services/memoryPatchUtils.js.map +1 -0
- package/dist/src/services/memoryService.d.ts +21 -1
- package/dist/src/services/memoryService.js +405 -64
- package/dist/src/services/memoryService.js.map +1 -1
- package/dist/src/services/memoryService.test.js +686 -2
- package/dist/src/services/memoryService.test.js.map +1 -1
- package/dist/src/services/sandboxManager.d.ts +33 -19
- package/dist/src/services/sandboxManager.integration.test.js +728 -266
- package/dist/src/services/sandboxManager.integration.test.js.map +1 -1
- package/dist/src/services/sandboxManager.js +65 -62
- package/dist/src/services/sandboxManager.js.map +1 -1
- package/dist/src/services/sandboxManager.test.js +17 -114
- package/dist/src/services/sandboxManager.test.js.map +1 -1
- package/dist/src/services/sandboxedFileSystemService.js +72 -62
- package/dist/src/services/sandboxedFileSystemService.js.map +1 -1
- package/dist/src/services/sessionSummaryUtils.d.ts +1 -1
- package/dist/src/services/sessionSummaryUtils.js +111 -38
- package/dist/src/services/sessionSummaryUtils.js.map +1 -1
- package/dist/src/services/sessionSummaryUtils.test.js +204 -51
- package/dist/src/services/sessionSummaryUtils.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.d.ts +19 -0
- package/dist/src/services/shellExecutionService.js +88 -34
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +38 -4
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/telemetry/activity-monitor.js +1 -0
- package/dist/src/telemetry/activity-monitor.js.map +1 -1
- package/dist/src/telemetry/config.js +3 -0
- package/dist/src/telemetry/config.js.map +1 -1
- package/dist/src/telemetry/conseca-logger.js +18 -20
- package/dist/src/telemetry/conseca-logger.js.map +1 -1
- package/dist/src/telemetry/conseca-logger.test.js +100 -0
- package/dist/src/telemetry/conseca-logger.test.js.map +1 -1
- package/dist/src/telemetry/event-loop-monitor.d.ts +17 -0
- package/dist/src/telemetry/event-loop-monitor.js +76 -0
- package/dist/src/telemetry/event-loop-monitor.js.map +1 -0
- package/dist/src/telemetry/index.d.ts +2 -1
- package/dist/src/telemetry/index.js +2 -1
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/llmRole.d.ts +2 -1
- package/dist/src/telemetry/llmRole.js +1 -0
- package/dist/src/telemetry/llmRole.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +184 -8
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/memory-monitor.d.ts +1 -0
- package/dist/src/telemetry/memory-monitor.js +8 -1
- package/dist/src/telemetry/memory-monitor.js.map +1 -1
- package/dist/src/telemetry/memory-monitor.test.js +6 -1
- package/dist/src/telemetry/memory-monitor.test.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +12 -0
- package/dist/src/telemetry/metrics.js +19 -0
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/sdk.js +20 -1
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/telemetry/trace.d.ts +23 -6
- package/dist/src/telemetry/trace.js +71 -22
- package/dist/src/telemetry/trace.js.map +1 -1
- package/dist/src/telemetry/trace.test.js +79 -15
- package/dist/src/telemetry/trace.test.js.map +1 -1
- package/dist/src/telemetry/types.js +61 -15
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/test-utils/mock-tool.d.ts +3 -2
- package/dist/src/test-utils/mock-tool.js +4 -3
- package/dist/src/test-utils/mock-tool.js.map +1 -1
- package/dist/src/tools/activate-skill.js +1 -1
- package/dist/src/tools/activate-skill.js.map +1 -1
- package/dist/src/tools/activate-skill.test.js +6 -2
- package/dist/src/tools/activate-skill.test.js.map +1 -1
- package/dist/src/tools/ask-user.d.ts +2 -2
- package/dist/src/tools/ask-user.js +1 -1
- package/dist/src/tools/ask-user.js.map +1 -1
- package/dist/src/tools/ask-user.test.js +9 -3
- package/dist/src/tools/ask-user.test.js.map +1 -1
- package/dist/src/tools/complete-task.d.ts +2 -2
- package/dist/src/tools/complete-task.js +1 -1
- package/dist/src/tools/complete-task.js.map +1 -1
- package/dist/src/tools/complete-task.test.js +9 -3
- package/dist/src/tools/complete-task.test.js.map +1 -1
- package/dist/src/tools/definitions/base-declarations.d.ts +2 -0
- package/dist/src/tools/definitions/base-declarations.js +3 -0
- package/dist/src/tools/definitions/base-declarations.js.map +1 -1
- package/dist/src/tools/definitions/coreTools.d.ts +3 -1
- package/dist/src/tools/definitions/coreTools.js +13 -1
- package/dist/src/tools/definitions/coreTools.js.map +1 -1
- package/dist/src/tools/definitions/model-family-sets/default-legacy.js +29 -1
- package/dist/src/tools/definitions/model-family-sets/default-legacy.js.map +1 -1
- package/dist/src/tools/definitions/model-family-sets/gemini-3.js +29 -1
- package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
- package/dist/src/tools/definitions/types.d.ts +2 -0
- package/dist/src/tools/edit.js +20 -4
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +41 -18
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/enter-plan-mode.d.ts +2 -2
- package/dist/src/tools/enter-plan-mode.js +1 -1
- package/dist/src/tools/enter-plan-mode.js.map +1 -1
- package/dist/src/tools/enter-plan-mode.test.js +10 -4
- package/dist/src/tools/enter-plan-mode.test.js.map +1 -1
- package/dist/src/tools/exit-plan-mode.d.ts +2 -2
- package/dist/src/tools/exit-plan-mode.js +9 -12
- package/dist/src/tools/exit-plan-mode.js.map +1 -1
- package/dist/src/tools/exit-plan-mode.test.js +44 -17
- package/dist/src/tools/exit-plan-mode.test.js.map +1 -1
- package/dist/src/tools/get-internal-docs.js +6 -3
- package/dist/src/tools/get-internal-docs.js.map +1 -1
- package/dist/src/tools/get-internal-docs.test.js +4 -4
- package/dist/src/tools/get-internal-docs.test.js.map +1 -1
- package/dist/src/tools/glob.js +1 -1
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/glob.test.js +16 -16
- package/dist/src/tools/glob.test.js.map +1 -1
- package/dist/src/tools/grep.js +21 -12
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/grep.test.js +18 -18
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/line-endings.test.js +3 -3
- package/dist/src/tools/line-endings.test.js.map +1 -1
- package/dist/src/tools/list-mcp-resources.d.ts +24 -0
- package/dist/src/tools/list-mcp-resources.js +74 -0
- package/dist/src/tools/list-mcp-resources.js.map +1 -0
- package/dist/src/tools/list-mcp-resources.test.d.ts +6 -0
- package/dist/src/tools/list-mcp-resources.test.js +79 -0
- package/dist/src/tools/list-mcp-resources.test.js.map +1 -0
- package/dist/src/tools/ls.js +2 -2
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/ls.test.js +21 -21
- package/dist/src/tools/ls.test.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.d.ts +3 -1
- package/dist/src/tools/mcp-client-manager.js +24 -1
- package/dist/src/tools/mcp-client-manager.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.test.js +43 -0
- package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
- package/dist/src/tools/mcp-client.js +10 -12
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +14 -2
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +2 -2
- package/dist/src/tools/mcp-tool.js +1 -1
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +51 -21
- package/dist/src/tools/mcp-tool.test.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +4 -3
- package/dist/src/tools/memoryTool.js +43 -14
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/memoryTool.test.js +29 -9
- package/dist/src/tools/memoryTool.test.js.map +1 -1
- package/dist/src/tools/read-file.js +1 -1
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +17 -17
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.js +4 -4
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +70 -24
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/read-mcp-resource.d.ts +25 -0
- package/dist/src/tools/read-mcp-resource.js +120 -0
- package/dist/src/tools/read-mcp-resource.js.map +1 -0
- package/dist/src/tools/read-mcp-resource.test.d.ts +6 -0
- package/dist/src/tools/read-mcp-resource.test.js +110 -0
- package/dist/src/tools/read-mcp-resource.test.js.map +1 -0
- package/dist/src/tools/ripGrep.d.ts +3 -2
- package/dist/src/tools/ripGrep.js +26 -55
- package/dist/src/tools/ripGrep.js.map +1 -1
- package/dist/src/tools/ripGrep.test.js +113 -167
- package/dist/src/tools/ripGrep.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +2 -2
- package/dist/src/tools/shell.js +51 -21
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +479 -76
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/shellBackgroundTools.d.ts +3 -3
- package/dist/src/tools/shellBackgroundTools.integration.test.js +6 -2
- package/dist/src/tools/shellBackgroundTools.integration.test.js.map +1 -1
- package/dist/src/tools/shellBackgroundTools.js +2 -2
- package/dist/src/tools/shellBackgroundTools.js.map +1 -1
- package/dist/src/tools/shellBackgroundTools.test.js +30 -10
- package/dist/src/tools/shellBackgroundTools.test.js.map +1 -1
- package/dist/src/tools/tool-error.d.ts +1 -0
- package/dist/src/tools/tool-error.js +1 -0
- package/dist/src/tools/tool-error.js.map +1 -1
- package/dist/src/tools/tool-names.d.ts +5 -4
- package/dist/src/tools/tool-names.js +8 -2
- package/dist/src/tools/tool-names.js.map +1 -1
- package/dist/src/tools/tool-registry.js +137 -114
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +3 -1
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +6 -6
- package/dist/src/tools/tools.js +6 -2
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/topicTool.d.ts +2 -2
- package/dist/src/tools/topicTool.js +1 -1
- package/dist/src/tools/topicTool.js.map +1 -1
- package/dist/src/tools/topicTool.test.js +6 -2
- package/dist/src/tools/topicTool.test.js.map +1 -1
- package/dist/src/tools/trackerTools.d.ts +7 -7
- package/dist/src/tools/trackerTools.js +6 -6
- package/dist/src/tools/trackerTools.js.map +1 -1
- package/dist/src/tools/web-fetch.js +1 -1
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-fetch.test.js +59 -23
- package/dist/src/tools/web-fetch.test.js.map +1 -1
- package/dist/src/tools/web-search.js +1 -1
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/web-search.test.js +5 -5
- package/dist/src/tools/web-search.test.js.map +1 -1
- package/dist/src/tools/write-file.js +22 -4
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +29 -11
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/tools/write-todos.js +1 -1
- package/dist/src/tools/write-todos.js.map +1 -1
- package/dist/src/utils/compatibility.js +6 -1
- package/dist/src/utils/compatibility.js.map +1 -1
- package/dist/src/utils/compatibility.test.js +23 -0
- package/dist/src/utils/compatibility.test.js.map +1 -1
- package/dist/src/utils/errors.d.ts +3 -0
- package/dist/src/utils/errors.js +6 -0
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/fileUtils.d.ts +1 -2
- package/dist/src/utils/fileUtils.js +80 -40
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +61 -0
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.d.ts +2 -0
- package/dist/src/utils/filesearch/fileSearch.js +97 -6
- package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.test.js +54 -0
- package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -1
- package/dist/src/utils/filesearch/fileWatcher.d.ts +25 -0
- package/dist/src/utils/filesearch/fileWatcher.js +86 -0
- package/dist/src/utils/filesearch/fileWatcher.js.map +1 -0
- package/dist/src/utils/filesearch/fileWatcher.test.js +142 -0
- package/dist/src/utils/filesearch/fileWatcher.test.js.map +1 -0
- package/dist/src/utils/getFolderStructure.js +4 -2
- package/dist/src/utils/getFolderStructure.js.map +1 -1
- package/dist/src/utils/gitIgnoreParser.js +1 -1
- package/dist/src/utils/gitIgnoreParser.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.d.ts +2 -1
- package/dist/src/utils/googleQuotaErrors.js +30 -35
- package/dist/src/utils/googleQuotaErrors.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.test.js +24 -0
- package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
- package/dist/src/utils/ignoreFileParser.js +1 -1
- package/dist/src/utils/ignoreFileParser.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.js +15 -5
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/oauth-flow.js +17 -5
- package/dist/src/utils/oauth-flow.js.map +1 -1
- package/dist/src/utils/oauth-flow.test.js +20 -0
- package/dist/src/utils/oauth-flow.test.js.map +1 -1
- package/dist/src/utils/paths.d.ts +9 -0
- package/dist/src/utils/paths.js +37 -0
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/paths.test.js +45 -1
- package/dist/src/utils/paths.test.js.map +1 -1
- package/dist/src/utils/planUtils.d.ts +11 -2
- package/dist/src/utils/planUtils.js +43 -11
- package/dist/src/utils/planUtils.js.map +1 -1
- package/dist/src/utils/planUtils.test.js +10 -9
- package/dist/src/utils/planUtils.test.js.map +1 -1
- package/dist/src/utils/process-utils.d.ts +2 -1
- package/dist/src/utils/process-utils.js +64 -33
- package/dist/src/utils/process-utils.js.map +1 -1
- package/dist/src/utils/process-utils.test.js +9 -0
- package/dist/src/utils/process-utils.test.js.map +1 -1
- package/dist/src/utils/retry.js +18 -6
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +30 -0
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/sessionOperations.js +3 -2
- package/dist/src/utils/sessionOperations.js.map +1 -1
- package/dist/src/utils/shell-utils.d.ts +2 -0
- package/dist/src/utils/shell-utils.js +237 -107
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/tool-utils.d.ts +1 -29
- package/dist/src/utils/tool-utils.js +0 -39
- package/dist/src/utils/tool-utils.js.map +1 -1
- package/dist/src/utils/tool-utils.test.js +2 -76
- package/dist/src/utils/tool-utils.test.js.map +1 -1
- package/dist/src/utils/tool-visibility.d.ts +40 -0
- package/dist/src/utils/tool-visibility.js +111 -0
- package/dist/src/utils/tool-visibility.js.map +1 -0
- package/dist/src/utils/tool-visibility.test.d.ts +6 -0
- package/dist/src/utils/tool-visibility.test.js +96 -0
- package/dist/src/utils/tool-visibility.test.js.map +1 -0
- package/dist/src/utils/trust.d.ts +64 -0
- package/dist/src/utils/trust.js +276 -0
- package/dist/src/utils/trust.js.map +1 -0
- package/dist/src/utils/trust.test.d.ts +6 -0
- package/dist/src/utils/trust.test.js +159 -0
- package/dist/src/utils/trust.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -4
- package/dist/docs/get-started/installation.md +0 -181
- package/dist/src/agents/memory-manager-agent.d.ts +0 -25
- package/dist/src/agents/memory-manager-agent.js +0 -138
- package/dist/src/agents/memory-manager-agent.js.map +0 -1
- package/dist/src/agents/memory-manager-agent.test.js +0 -123
- package/dist/src/agents/memory-manager-agent.test.js.map +0 -1
- package/dist/src/agents/subagent-tool-wrapper.d.ts +0 -38
- package/dist/src/agents/subagent-tool-wrapper.js +0 -58
- package/dist/src/agents/subagent-tool-wrapper.js.map +0 -1
- package/dist/src/agents/subagent-tool-wrapper.test.js +0 -123
- package/dist/src/agents/subagent-tool-wrapper.test.js.map +0 -1
- package/dist/src/agents/subagent-tool.d.ts +0 -18
- package/dist/src/agents/subagent-tool.js +0 -134
- package/dist/src/agents/subagent-tool.js.map +0 -1
- package/dist/src/agents/subagent-tool.test.js +0 -287
- package/dist/src/agents/subagent-tool.test.js.map +0 -1
- package/dist/src/policy/policies/tracker.toml +0 -34
- package/dist/src/prompts/snippets-memory-manager.test.js +0 -31
- package/dist/src/prompts/snippets-memory-manager.test.js.map +0 -1
- /package/dist/src/{agents/memory-manager-agent.test.d.ts → agent/tool-display-utils.test.d.ts} +0 -0
- /package/dist/src/agents/{subagent-tool.test.d.ts → agent-tool.test.d.ts} +0 -0
- /package/dist/src/{prompts/snippets-memory-manager.test.d.ts → agents/skill-extraction-agent.test.d.ts} +0 -0
- /package/dist/src/{agents/subagent-tool-wrapper.test.d.ts → utils/filesearch/fileWatcher.test.d.ts} +0 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { Part } from '@google/genai';
|
|
7
|
+
export type NodeType = 'USER_PROMPT' | 'SYSTEM_EVENT' | 'AGENT_THOUGHT' | 'TOOL_EXECUTION' | 'AGENT_YIELD' | 'SNAPSHOT' | 'ROLLING_SUMMARY' | 'MASKED_TOOL' | 'TASK' | 'EPISODE';
|
|
8
|
+
/** Base interface for all nodes in the Episodic Context Graph */
|
|
9
|
+
export interface Node {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
readonly type: NodeType;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Concrete Nodes: The atomic, renderable pieces of data.
|
|
15
|
+
* These are the actual "planks" of the Nodes of Theseus.
|
|
16
|
+
*/
|
|
17
|
+
export interface BaseConcreteNode extends Node {
|
|
18
|
+
readonly timestamp: number;
|
|
19
|
+
/** The ID of the Logical Node (e.g., Episode) that structurally owns this node */
|
|
20
|
+
readonly logicalParentId?: string;
|
|
21
|
+
/** If this node replaced a single node 1:1 (e.g., masking), this points to the original */
|
|
22
|
+
readonly replacesId?: string;
|
|
23
|
+
/** If this node is a synthetic summary of N nodes, this points to the original IDs */
|
|
24
|
+
readonly abstractsIds?: readonly string[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Semantic Parts for User Prompts
|
|
28
|
+
*/
|
|
29
|
+
export interface SemanticTextPart {
|
|
30
|
+
readonly type: 'text';
|
|
31
|
+
readonly text: string;
|
|
32
|
+
}
|
|
33
|
+
export interface SemanticInlineDataPart {
|
|
34
|
+
readonly type: 'inline_data';
|
|
35
|
+
readonly mimeType: string;
|
|
36
|
+
readonly data: string;
|
|
37
|
+
}
|
|
38
|
+
export interface SemanticFileDataPart {
|
|
39
|
+
readonly type: 'file_data';
|
|
40
|
+
readonly mimeType: string;
|
|
41
|
+
readonly fileUri: string;
|
|
42
|
+
}
|
|
43
|
+
export interface SemanticRawPart {
|
|
44
|
+
readonly type: 'raw_part';
|
|
45
|
+
readonly part: Part;
|
|
46
|
+
}
|
|
47
|
+
export type SemanticPart = SemanticTextPart | SemanticInlineDataPart | SemanticFileDataPart | SemanticRawPart;
|
|
48
|
+
/**
|
|
49
|
+
* Trigger Nodes
|
|
50
|
+
* Events that wake the agent up and initiate an Episode.
|
|
51
|
+
*/
|
|
52
|
+
export interface UserPrompt extends BaseConcreteNode {
|
|
53
|
+
readonly type: 'USER_PROMPT';
|
|
54
|
+
readonly semanticParts: readonly SemanticPart[];
|
|
55
|
+
}
|
|
56
|
+
export interface SystemEvent extends BaseConcreteNode {
|
|
57
|
+
readonly type: 'SYSTEM_EVENT';
|
|
58
|
+
readonly name: string;
|
|
59
|
+
readonly payload: Record<string, unknown>;
|
|
60
|
+
}
|
|
61
|
+
export type EpisodeTrigger = UserPrompt | SystemEvent;
|
|
62
|
+
/**
|
|
63
|
+
* Step Nodes
|
|
64
|
+
* The internal autonomous actions taken by the agent during its loop.
|
|
65
|
+
*/
|
|
66
|
+
export interface AgentThought extends BaseConcreteNode {
|
|
67
|
+
readonly type: 'AGENT_THOUGHT';
|
|
68
|
+
readonly text: string;
|
|
69
|
+
}
|
|
70
|
+
export interface ToolExecution extends BaseConcreteNode {
|
|
71
|
+
readonly type: 'TOOL_EXECUTION';
|
|
72
|
+
readonly toolName: string;
|
|
73
|
+
readonly intent: Record<string, unknown>;
|
|
74
|
+
readonly observation: string | Record<string, unknown>;
|
|
75
|
+
readonly tokens: {
|
|
76
|
+
readonly intent: number;
|
|
77
|
+
readonly observation: number;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export interface MaskedTool extends BaseConcreteNode {
|
|
81
|
+
readonly type: 'MASKED_TOOL';
|
|
82
|
+
readonly toolName: string;
|
|
83
|
+
readonly intent?: Record<string, unknown>;
|
|
84
|
+
readonly observation?: string | Record<string, unknown>;
|
|
85
|
+
readonly tokens: {
|
|
86
|
+
readonly intent: number;
|
|
87
|
+
readonly observation: number;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export type EpisodeStep = AgentThought | ToolExecution | MaskedTool;
|
|
91
|
+
/**
|
|
92
|
+
* Resolution Node
|
|
93
|
+
* The final message where the agent yields control back to the user.
|
|
94
|
+
*/
|
|
95
|
+
export interface AgentYield extends BaseConcreteNode {
|
|
96
|
+
readonly type: 'AGENT_YIELD';
|
|
97
|
+
readonly text: string;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Synthetic Leaf Interfaces
|
|
101
|
+
* Processors that generate summaries emit explicit synthetic nodes.
|
|
102
|
+
*/
|
|
103
|
+
export interface Snapshot extends BaseConcreteNode {
|
|
104
|
+
readonly type: 'SNAPSHOT';
|
|
105
|
+
readonly text: string;
|
|
106
|
+
}
|
|
107
|
+
export interface RollingSummary extends BaseConcreteNode {
|
|
108
|
+
readonly type: 'ROLLING_SUMMARY';
|
|
109
|
+
readonly text: string;
|
|
110
|
+
}
|
|
111
|
+
export type SyntheticLeaf = Snapshot | RollingSummary;
|
|
112
|
+
export type ConcreteNode = UserPrompt | SystemEvent | AgentThought | ToolExecution | MaskedTool | AgentYield | Snapshot | RollingSummary;
|
|
113
|
+
/**
|
|
114
|
+
* Logical Nodes
|
|
115
|
+
* These define hierarchy and grouping. They do not directly render to Gemini.
|
|
116
|
+
*/
|
|
117
|
+
export interface Episode extends Node {
|
|
118
|
+
readonly type: 'EPISODE';
|
|
119
|
+
/** References to the Concrete Node IDs that conceptually belong to this Episode. */
|
|
120
|
+
concreteNodes: readonly ConcreteNode[];
|
|
121
|
+
}
|
|
122
|
+
export interface Task extends Node {
|
|
123
|
+
readonly type: 'TASK';
|
|
124
|
+
readonly goal: string;
|
|
125
|
+
readonly status: 'active' | 'completed' | 'failed';
|
|
126
|
+
/** References to the Episode IDs that belong to this task */
|
|
127
|
+
readonly episodeIds: readonly string[];
|
|
128
|
+
}
|
|
129
|
+
export type LogicalNode = Task | Episode;
|
|
130
|
+
export declare function isEpisode(node: Node): node is Episode;
|
|
131
|
+
export declare function isTask(node: Node): node is Task;
|
|
132
|
+
export declare function isAgentThought(node: Node): node is AgentThought;
|
|
133
|
+
export declare function isAgentYield(node: Node): node is AgentYield;
|
|
134
|
+
export declare function isToolExecution(node: Node): node is ToolExecution;
|
|
135
|
+
export declare function isMaskedTool(node: Node): node is MaskedTool;
|
|
136
|
+
export declare function isUserPrompt(node: Node): node is UserPrompt;
|
|
137
|
+
export declare function isSystemEvent(node: Node): node is SystemEvent;
|
|
138
|
+
export declare function isSnapshot(node: Node): node is Snapshot;
|
|
139
|
+
export declare function isRollingSummary(node: Node): node is RollingSummary;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export function isEpisode(node) {
|
|
7
|
+
return node.type === 'EPISODE';
|
|
8
|
+
}
|
|
9
|
+
export function isTask(node) {
|
|
10
|
+
return node.type === 'TASK';
|
|
11
|
+
}
|
|
12
|
+
export function isAgentThought(node) {
|
|
13
|
+
return node.type === 'AGENT_THOUGHT';
|
|
14
|
+
}
|
|
15
|
+
export function isAgentYield(node) {
|
|
16
|
+
return node.type === 'AGENT_YIELD';
|
|
17
|
+
}
|
|
18
|
+
export function isToolExecution(node) {
|
|
19
|
+
return node.type === 'TOOL_EXECUTION';
|
|
20
|
+
}
|
|
21
|
+
export function isMaskedTool(node) {
|
|
22
|
+
return node.type === 'MASKED_TOOL';
|
|
23
|
+
}
|
|
24
|
+
export function isUserPrompt(node) {
|
|
25
|
+
return node.type === 'USER_PROMPT';
|
|
26
|
+
}
|
|
27
|
+
export function isSystemEvent(node) {
|
|
28
|
+
return node.type === 'SYSTEM_EVENT';
|
|
29
|
+
}
|
|
30
|
+
export function isSnapshot(node) {
|
|
31
|
+
return node.type === 'SNAPSHOT';
|
|
32
|
+
}
|
|
33
|
+
export function isRollingSummary(node) {
|
|
34
|
+
return node.type === 'ROLLING_SUMMARY';
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/context/graph/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmLH,MAAM,UAAU,SAAS,CAAC,IAAU;IAClC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAU;IAC/B,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAU;IACvC,OAAO,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAU;IACrC,OAAO,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAU;IACxC,OAAO,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAU;IACrC,OAAO,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAU;IACrC,OAAO,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAU;IACtC,OAAO,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAU;IACzC,OAAO,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { AgentChatHistory } from '../core/agentChatHistory.js';
|
|
7
|
+
import type { ContextGraphMapper } from './graph/mapper.js';
|
|
8
|
+
import type { ContextTokenCalculator } from './utils/contextTokenCalculator.js';
|
|
9
|
+
import type { ContextEventBus } from './eventBus.js';
|
|
10
|
+
import type { ContextTracer } from './tracer.js';
|
|
11
|
+
/**
|
|
12
|
+
* Connects the raw AgentChatHistory to the ContextManager.
|
|
13
|
+
* It maps raw messages into Episodic Intermediate Representation (Context Graph)
|
|
14
|
+
* and evaluates background triggers whenever history changes.
|
|
15
|
+
*/
|
|
16
|
+
export declare class HistoryObserver {
|
|
17
|
+
private readonly chatHistory;
|
|
18
|
+
private readonly eventBus;
|
|
19
|
+
private readonly tracer;
|
|
20
|
+
private readonly tokenCalculator;
|
|
21
|
+
private readonly graphMapper;
|
|
22
|
+
private unsubscribeHistory?;
|
|
23
|
+
private readonly seenNodeIds;
|
|
24
|
+
constructor(chatHistory: AgentChatHistory, eventBus: ContextEventBus, tracer: ContextTracer, tokenCalculator: ContextTokenCalculator, graphMapper: ContextGraphMapper);
|
|
25
|
+
start(): void;
|
|
26
|
+
stop(): void;
|
|
27
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Connects the raw AgentChatHistory to the ContextManager.
|
|
8
|
+
* It maps raw messages into Episodic Intermediate Representation (Context Graph)
|
|
9
|
+
* and evaluates background triggers whenever history changes.
|
|
10
|
+
*/
|
|
11
|
+
export class HistoryObserver {
|
|
12
|
+
chatHistory;
|
|
13
|
+
eventBus;
|
|
14
|
+
tracer;
|
|
15
|
+
tokenCalculator;
|
|
16
|
+
graphMapper;
|
|
17
|
+
unsubscribeHistory;
|
|
18
|
+
seenNodeIds = new Set();
|
|
19
|
+
constructor(chatHistory, eventBus, tracer, tokenCalculator, graphMapper) {
|
|
20
|
+
this.chatHistory = chatHistory;
|
|
21
|
+
this.eventBus = eventBus;
|
|
22
|
+
this.tracer = tracer;
|
|
23
|
+
this.tokenCalculator = tokenCalculator;
|
|
24
|
+
this.graphMapper = graphMapper;
|
|
25
|
+
}
|
|
26
|
+
start() {
|
|
27
|
+
if (this.unsubscribeHistory) {
|
|
28
|
+
this.unsubscribeHistory();
|
|
29
|
+
}
|
|
30
|
+
this.unsubscribeHistory = this.chatHistory.subscribe((_event) => {
|
|
31
|
+
// Rebuild the pristine Context Graph graph from the full source history on every change.
|
|
32
|
+
// Wait, toGraph still returns an Episode[].
|
|
33
|
+
// We actually need to map the Episode[] to a flat ConcreteNode[] here to form the 'nodes'.
|
|
34
|
+
const pristineEpisodes = this.graphMapper.toGraph(this.chatHistory.get(), this.tokenCalculator);
|
|
35
|
+
const nodes = [];
|
|
36
|
+
for (const ep of pristineEpisodes) {
|
|
37
|
+
if (ep.concreteNodes) {
|
|
38
|
+
for (const child of ep.concreteNodes) {
|
|
39
|
+
nodes.push(child);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const newNodes = new Set();
|
|
44
|
+
for (const node of nodes) {
|
|
45
|
+
if (!this.seenNodeIds.has(node.id)) {
|
|
46
|
+
newNodes.add(node.id);
|
|
47
|
+
this.seenNodeIds.add(node.id);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
this.tracer.logEvent('HistoryObserver', 'Rebuilt pristine graph from chat history update', { nodesSize: nodes.length, newNodesCount: newNodes.size });
|
|
51
|
+
this.eventBus.emitPristineHistoryUpdated({
|
|
52
|
+
nodes,
|
|
53
|
+
newNodes,
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
stop() {
|
|
58
|
+
if (this.unsubscribeHistory) {
|
|
59
|
+
this.unsubscribeHistory();
|
|
60
|
+
this.unsubscribeHistory = undefined;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=historyObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"historyObserver.js","sourceRoot":"","sources":["../../../src/context/historyObserver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAMP;IACA;IACA;IACA;IACA;IATX,kBAAkB,CAAc;IAEvB,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEjD,YACmB,WAA6B,EAC7B,QAAyB,EACzB,MAAqB,EACrB,eAAuC,EACvC,WAA+B;QAJ/B,gBAAW,GAAX,WAAW,CAAkB;QAC7B,aAAQ,GAAR,QAAQ,CAAiB;QACzB,WAAM,GAAN,MAAM,CAAe;QACrB,oBAAe,GAAf,eAAe,CAAwB;QACvC,gBAAW,GAAX,WAAW,CAAoB;IAC/C,CAAC;IAEJ,KAAK;QACH,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAClD,CAAC,MAAoB,EAAE,EAAE;YACvB,yFAAyF;YACzF,4CAA4C;YAC5C,2FAA2F;YAC3F,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EACtB,IAAI,CAAC,eAAe,CACrB,CAAC;YAEF,MAAM,KAAK,GAAmB,EAAE,CAAC;YACjC,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;gBAClC,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;oBACrB,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;wBACrC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACpB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;YACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;oBACnC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACtB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAClB,iBAAiB,EACjB,iDAAiD,EACjD,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAC1D,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;gBACvC,KAAK;gBACL,QAAQ;aACT,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACtC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { ContextWorkingBuffer, GraphMutation } from '../pipeline.js';
|
|
7
|
+
import type { ConcreteNode } from '../graph/types.js';
|
|
8
|
+
export declare class ContextWorkingBufferImpl implements ContextWorkingBuffer {
|
|
9
|
+
readonly nodes: readonly ConcreteNode[];
|
|
10
|
+
private readonly provenanceMap;
|
|
11
|
+
private readonly pristineNodesMap;
|
|
12
|
+
private readonly history;
|
|
13
|
+
private constructor();
|
|
14
|
+
/**
|
|
15
|
+
* Initializes a brand new ContextWorkingBuffer from a pristine graph.
|
|
16
|
+
* Every node's provenance points to itself.
|
|
17
|
+
*/
|
|
18
|
+
static initialize(pristineNodes: readonly ConcreteNode[]): ContextWorkingBufferImpl;
|
|
19
|
+
/**
|
|
20
|
+
* Appends newly observed pristine nodes (e.g. from a user message) to the working buffer.
|
|
21
|
+
* Ensures they are tracked in the pristine map and point to themselves in provenance.
|
|
22
|
+
*/
|
|
23
|
+
appendPristineNodes(newNodes: readonly ConcreteNode[]): ContextWorkingBufferImpl;
|
|
24
|
+
/**
|
|
25
|
+
* Generates an entirely new buffer instance by calculating the delta between the processor's input and output.
|
|
26
|
+
*/
|
|
27
|
+
applyProcessorResult(processorId: string, inputTargets: readonly ConcreteNode[], outputNodes: readonly ConcreteNode[]): ContextWorkingBufferImpl;
|
|
28
|
+
/** Removes nodes from the working buffer that were completely dropped from the upstream pristine history */
|
|
29
|
+
prunePristineNodes(retainedIds: ReadonlySet<string>): ContextWorkingBufferImpl;
|
|
30
|
+
getPristineNodes(id: string): readonly ConcreteNode[];
|
|
31
|
+
getAuditLog(): readonly GraphMutation[];
|
|
32
|
+
getLineage(id: string): readonly ConcreteNode[];
|
|
33
|
+
}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export class ContextWorkingBufferImpl {
|
|
7
|
+
// The current active graph
|
|
8
|
+
nodes;
|
|
9
|
+
// The AOT pre-calculated provenance index (Current ID -> Pristine IDs)
|
|
10
|
+
provenanceMap;
|
|
11
|
+
// The original immutable pristine nodes mapping
|
|
12
|
+
pristineNodesMap;
|
|
13
|
+
// The historical linked list of changes
|
|
14
|
+
history;
|
|
15
|
+
constructor(nodes, pristineNodesMap, provenanceMap, history) {
|
|
16
|
+
this.nodes = nodes;
|
|
17
|
+
this.pristineNodesMap = pristineNodesMap;
|
|
18
|
+
this.provenanceMap = provenanceMap;
|
|
19
|
+
this.history = history;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Initializes a brand new ContextWorkingBuffer from a pristine graph.
|
|
23
|
+
* Every node's provenance points to itself.
|
|
24
|
+
*/
|
|
25
|
+
static initialize(pristineNodes) {
|
|
26
|
+
const pristineMap = new Map();
|
|
27
|
+
const initialProvenance = new Map();
|
|
28
|
+
for (const node of pristineNodes) {
|
|
29
|
+
pristineMap.set(node.id, node);
|
|
30
|
+
initialProvenance.set(node.id, new Set([node.id]));
|
|
31
|
+
}
|
|
32
|
+
return new ContextWorkingBufferImpl(pristineNodes, pristineMap, initialProvenance, []);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Appends newly observed pristine nodes (e.g. from a user message) to the working buffer.
|
|
36
|
+
* Ensures they are tracked in the pristine map and point to themselves in provenance.
|
|
37
|
+
*/
|
|
38
|
+
appendPristineNodes(newNodes) {
|
|
39
|
+
if (newNodes.length === 0)
|
|
40
|
+
return this;
|
|
41
|
+
const newPristineMap = new Map(this.pristineNodesMap);
|
|
42
|
+
const newProvenanceMap = new Map(this.provenanceMap);
|
|
43
|
+
for (const node of newNodes) {
|
|
44
|
+
newPristineMap.set(node.id, node);
|
|
45
|
+
newProvenanceMap.set(node.id, new Set([node.id]));
|
|
46
|
+
}
|
|
47
|
+
return new ContextWorkingBufferImpl([...this.nodes, ...newNodes], newPristineMap, newProvenanceMap, [...this.history]);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Generates an entirely new buffer instance by calculating the delta between the processor's input and output.
|
|
51
|
+
*/
|
|
52
|
+
applyProcessorResult(processorId, inputTargets, outputNodes) {
|
|
53
|
+
const outputIds = new Set(outputNodes.map((n) => n.id));
|
|
54
|
+
const inputIds = new Set(inputTargets.map((n) => n.id));
|
|
55
|
+
// Calculate diffs
|
|
56
|
+
const removedIds = inputTargets
|
|
57
|
+
.filter((n) => !outputIds.has(n.id))
|
|
58
|
+
.map((n) => n.id);
|
|
59
|
+
const addedNodes = outputNodes.filter((n) => !inputIds.has(n.id));
|
|
60
|
+
// Create mutation record
|
|
61
|
+
const mutation = {
|
|
62
|
+
processorId,
|
|
63
|
+
timestamp: Date.now(),
|
|
64
|
+
removedIds,
|
|
65
|
+
addedNodes,
|
|
66
|
+
};
|
|
67
|
+
// Calculate new node array
|
|
68
|
+
const removedSet = new Set(removedIds);
|
|
69
|
+
const retainedNodes = this.nodes.filter((n) => !removedSet.has(n.id));
|
|
70
|
+
const newGraph = [...retainedNodes];
|
|
71
|
+
// We append the output nodes in the same general position if possible,
|
|
72
|
+
// but in a complex graph we just ensure they exist. V2 graph uses timestamps for order.
|
|
73
|
+
// For simplicity, we just push added nodes to the end of the retained array
|
|
74
|
+
newGraph.push(...addedNodes);
|
|
75
|
+
// Calculate new provenance map
|
|
76
|
+
const newProvenanceMap = new Map(this.provenanceMap);
|
|
77
|
+
let finalPristineMap = this.pristineNodesMap;
|
|
78
|
+
// Map the new synthetic nodes back to their pristine roots
|
|
79
|
+
for (const added of addedNodes) {
|
|
80
|
+
const roots = new Set();
|
|
81
|
+
// 1:1 Replacement (e.g. Masked Node)
|
|
82
|
+
if (added.replacesId) {
|
|
83
|
+
const inheritedRoots = this.provenanceMap.get(added.replacesId);
|
|
84
|
+
if (inheritedRoots) {
|
|
85
|
+
for (const rootId of inheritedRoots)
|
|
86
|
+
roots.add(rootId);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// N:1 Abstraction (e.g. Rolling Summary)
|
|
90
|
+
if (added.abstractsIds) {
|
|
91
|
+
for (const abstractId of added.abstractsIds) {
|
|
92
|
+
const inheritedRoots = this.provenanceMap.get(abstractId);
|
|
93
|
+
if (inheritedRoots) {
|
|
94
|
+
for (const rootId of inheritedRoots)
|
|
95
|
+
roots.add(rootId);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// If it has no links back to the original graph, it is its own root
|
|
100
|
+
// (e.g., a system-injected instruction)
|
|
101
|
+
if (roots.size === 0) {
|
|
102
|
+
roots.add(added.id);
|
|
103
|
+
// It acts as a net-new pristine root.
|
|
104
|
+
if (!finalPristineMap.has(added.id)) {
|
|
105
|
+
const mutableMap = new Map(finalPristineMap);
|
|
106
|
+
mutableMap.set(added.id, added);
|
|
107
|
+
finalPristineMap = mutableMap;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
newProvenanceMap.set(added.id, roots);
|
|
111
|
+
}
|
|
112
|
+
// GC the Caches
|
|
113
|
+
// We only want to keep provenance and pristine entries that are reachable
|
|
114
|
+
// from the nodes in 'newGraph'.
|
|
115
|
+
const reachablePristineIds = new Set();
|
|
116
|
+
const reachableCurrentIds = new Set();
|
|
117
|
+
for (const node of newGraph) {
|
|
118
|
+
reachableCurrentIds.add(node.id);
|
|
119
|
+
const roots = newProvenanceMap.get(node.id);
|
|
120
|
+
if (roots) {
|
|
121
|
+
for (const root of roots) {
|
|
122
|
+
reachablePristineIds.add(root);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// Prune Provenance Map
|
|
127
|
+
for (const [id] of newProvenanceMap) {
|
|
128
|
+
if (!reachableCurrentIds.has(id)) {
|
|
129
|
+
newProvenanceMap.delete(id);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Prune Pristine Map
|
|
133
|
+
const prunedPristineMap = new Map();
|
|
134
|
+
for (const id of reachablePristineIds) {
|
|
135
|
+
const node = finalPristineMap.get(id);
|
|
136
|
+
if (node)
|
|
137
|
+
prunedPristineMap.set(id, node);
|
|
138
|
+
}
|
|
139
|
+
finalPristineMap = prunedPristineMap;
|
|
140
|
+
return new ContextWorkingBufferImpl(newGraph, finalPristineMap, newProvenanceMap, [...this.history, mutation]);
|
|
141
|
+
}
|
|
142
|
+
/** Removes nodes from the working buffer that were completely dropped from the upstream pristine history */
|
|
143
|
+
prunePristineNodes(retainedIds) {
|
|
144
|
+
const newGraph = this.nodes.filter((n) => retainedIds.has(n.id) || !this.pristineNodesMap.has(n.id));
|
|
145
|
+
const newProvenanceMap = new Map(this.provenanceMap);
|
|
146
|
+
const reachablePristineIds = new Set();
|
|
147
|
+
const reachableCurrentIds = new Set();
|
|
148
|
+
for (const node of newGraph) {
|
|
149
|
+
reachableCurrentIds.add(node.id);
|
|
150
|
+
const roots = newProvenanceMap.get(node.id);
|
|
151
|
+
if (roots) {
|
|
152
|
+
for (const root of roots) {
|
|
153
|
+
if (retainedIds.has(root) || !this.pristineNodesMap.has(root)) {
|
|
154
|
+
reachablePristineIds.add(root);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
for (const [id] of newProvenanceMap) {
|
|
160
|
+
if (!reachableCurrentIds.has(id)) {
|
|
161
|
+
newProvenanceMap.delete(id);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const prunedPristineMap = new Map();
|
|
165
|
+
for (const id of reachablePristineIds) {
|
|
166
|
+
const node = this.pristineNodesMap.get(id);
|
|
167
|
+
if (node)
|
|
168
|
+
prunedPristineMap.set(id, node);
|
|
169
|
+
}
|
|
170
|
+
return new ContextWorkingBufferImpl(newGraph, prunedPristineMap, newProvenanceMap, [...this.history]);
|
|
171
|
+
}
|
|
172
|
+
getPristineNodes(id) {
|
|
173
|
+
const pristineIds = this.provenanceMap.get(id);
|
|
174
|
+
if (!pristineIds)
|
|
175
|
+
return [];
|
|
176
|
+
return Array.from(pristineIds).map((pid) => this.pristineNodesMap.get(pid));
|
|
177
|
+
}
|
|
178
|
+
getAuditLog() {
|
|
179
|
+
return this.history;
|
|
180
|
+
}
|
|
181
|
+
getLineage(id) {
|
|
182
|
+
const lineage = [];
|
|
183
|
+
const currentNodesMap = new Map(this.nodes.map((n) => [n.id, n]));
|
|
184
|
+
let current = currentNodesMap.get(id);
|
|
185
|
+
while (current) {
|
|
186
|
+
lineage.push(current);
|
|
187
|
+
if (current.logicalParentId && current.logicalParentId !== current.id) {
|
|
188
|
+
current = currentNodesMap.get(current.logicalParentId);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return lineage;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=contextWorkingBuffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextWorkingBuffer.js","sourceRoot":"","sources":["../../../../src/context/pipeline/contextWorkingBuffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect } from 'vitest';
|
|
7
|
+
import { ContextWorkingBufferImpl } from './contextWorkingBuffer.js';
|
|
8
|
+
import { createDummyNode } from '../testing/contextTestUtils.js';
|
|
9
|
+
describe('ContextWorkingBufferImpl', () => {
|
|
10
|
+
it('should initialize with a pristine graph correctly', () => {
|
|
11
|
+
const pristine1 = createDummyNode('ep1', 'USER_PROMPT', 10, undefined, 'p1');
|
|
12
|
+
const pristine2 = createDummyNode('ep1', 'AGENT_THOUGHT', 10, undefined, 'p2');
|
|
13
|
+
const buffer = ContextWorkingBufferImpl.initialize([pristine1, pristine2]);
|
|
14
|
+
expect(buffer.nodes).toHaveLength(2);
|
|
15
|
+
expect(buffer.getAuditLog()).toHaveLength(0);
|
|
16
|
+
// Pristine nodes should point to themselves
|
|
17
|
+
expect(buffer.getPristineNodes('p1')).toEqual([pristine1]);
|
|
18
|
+
expect(buffer.getPristineNodes('p2')).toEqual([pristine2]);
|
|
19
|
+
});
|
|
20
|
+
it('should track 1:1 replacements (e.g., masking) and append to audit log', () => {
|
|
21
|
+
const pristine1 = createDummyNode('ep1', 'USER_PROMPT', 10, undefined, 'p1');
|
|
22
|
+
let buffer = ContextWorkingBufferImpl.initialize([pristine1]);
|
|
23
|
+
const maskedNode = createDummyNode('ep1', 'USER_PROMPT', 5, undefined, 'm1');
|
|
24
|
+
// Simulate what a processor does
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26
|
+
maskedNode.replacesId = 'p1';
|
|
27
|
+
buffer = buffer.applyProcessorResult('ToolMasking', [pristine1], [maskedNode]);
|
|
28
|
+
expect(buffer.nodes).toHaveLength(1);
|
|
29
|
+
expect(buffer.nodes[0].id).toBe('m1');
|
|
30
|
+
const log = buffer.getAuditLog();
|
|
31
|
+
expect(log).toHaveLength(1);
|
|
32
|
+
expect(log[0].processorId).toBe('ToolMasking');
|
|
33
|
+
expect(log[0].removedIds).toEqual(['p1']);
|
|
34
|
+
expect(log[0].addedNodes[0].id).toBe('m1');
|
|
35
|
+
// Provenance lookup: the masked node should resolve back to the pristine root
|
|
36
|
+
expect(buffer.getPristineNodes('m1')).toEqual([pristine1]);
|
|
37
|
+
});
|
|
38
|
+
it('should track N:1 abstractions (e.g., rolling summaries)', () => {
|
|
39
|
+
const p1 = createDummyNode('ep1', 'USER_PROMPT', 10, undefined, 'p1');
|
|
40
|
+
const p2 = createDummyNode('ep1', 'AGENT_THOUGHT', 10, undefined, 'p2');
|
|
41
|
+
const p3 = createDummyNode('ep1', 'USER_PROMPT', 10, undefined, 'p3');
|
|
42
|
+
let buffer = ContextWorkingBufferImpl.initialize([p1, p2, p3]);
|
|
43
|
+
const summaryNode = createDummyNode('ep1', 'ROLLING_SUMMARY', 15, undefined, 's1');
|
|
44
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
45
|
+
summaryNode.abstractsIds = ['p1', 'p2'];
|
|
46
|
+
buffer = buffer.applyProcessorResult('Summarizer', [p1, p2], [summaryNode]);
|
|
47
|
+
// p1 and p2 are removed, p3 remains, s1 is added
|
|
48
|
+
expect(buffer.nodes.map((n) => n.id)).toEqual(['p3', 's1']);
|
|
49
|
+
// Provenance lookup: The summary node should resolve to both p1 and p2!
|
|
50
|
+
const roots = buffer.getPristineNodes('s1');
|
|
51
|
+
expect(roots).toHaveLength(2);
|
|
52
|
+
expect(roots).toContain(p1);
|
|
53
|
+
expect(roots).toContain(p2);
|
|
54
|
+
});
|
|
55
|
+
it('should track multi-generation provenance correctly', () => {
|
|
56
|
+
const p1 = createDummyNode('ep1', 'USER_PROMPT', 10, undefined, 'p1');
|
|
57
|
+
let buffer = ContextWorkingBufferImpl.initialize([p1]);
|
|
58
|
+
// Gen 1: Masked
|
|
59
|
+
const gen1 = createDummyNode('ep1', 'USER_PROMPT', 8, undefined, 'gen1');
|
|
60
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
61
|
+
gen1.replacesId = 'p1';
|
|
62
|
+
buffer = buffer.applyProcessorResult('Masking', [p1], [gen1]);
|
|
63
|
+
// Gen 2: Summarized
|
|
64
|
+
const gen2 = createDummyNode('ep1', 'ROLLING_SUMMARY', 5, undefined, 'gen2');
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
66
|
+
gen2.abstractsIds = ['gen1'];
|
|
67
|
+
buffer = buffer.applyProcessorResult('Summarizer', [gen1], [gen2]);
|
|
68
|
+
expect(buffer.nodes).toHaveLength(1);
|
|
69
|
+
expect(buffer.nodes[0].id).toBe('gen2');
|
|
70
|
+
// Audit log should show sequence
|
|
71
|
+
const log = buffer.getAuditLog();
|
|
72
|
+
expect(log).toHaveLength(2);
|
|
73
|
+
expect(log[0].processorId).toBe('Masking');
|
|
74
|
+
expect(log[1].processorId).toBe('Summarizer');
|
|
75
|
+
// Multi-gen Provenance lookup: gen2 -> gen1 -> p1
|
|
76
|
+
expect(buffer.getPristineNodes('gen2')).toEqual([p1]);
|
|
77
|
+
});
|
|
78
|
+
it('should handle net-new injected nodes without throwing', () => {
|
|
79
|
+
const p1 = createDummyNode('ep1', 'USER_PROMPT', 10, undefined, 'p1');
|
|
80
|
+
let buffer = ContextWorkingBufferImpl.initialize([p1]);
|
|
81
|
+
const injected = createDummyNode('ep1', 'SYSTEM_EVENT', 5, undefined, 'injected1');
|
|
82
|
+
// No replacesId or abstractsIds
|
|
83
|
+
buffer = buffer.applyProcessorResult('Injector', [], [injected]);
|
|
84
|
+
expect(buffer.nodes.map((n) => n.id)).toEqual(['p1', 'injected1']);
|
|
85
|
+
// It should root to itself
|
|
86
|
+
expect(buffer.getPristineNodes('injected1')).toEqual([injected]);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=contextWorkingBuffer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextWorkingBuffer.test.js","sourceRoot":"","sources":["../../../../src/context/pipeline/contextWorkingBuffer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { BaseLlmClient } from '../../core/baseLlmClient.js';
|
|
7
|
+
import type { ContextEventBus } from '../eventBus.js';
|
|
8
|
+
import type { ContextTokenCalculator } from '../utils/contextTokenCalculator.js';
|
|
9
|
+
import type { ContextTracer } from '../tracer.js';
|
|
10
|
+
import type { LiveInbox } from './inbox.js';
|
|
11
|
+
import type { NodeBehaviorRegistry } from '../graph/behaviorRegistry.js';
|
|
12
|
+
import type { ContextGraphMapper } from '../graph/mapper.js';
|
|
13
|
+
export type { ContextTracer, ContextEventBus };
|
|
14
|
+
export interface ContextEnvironment {
|
|
15
|
+
readonly llmClient: BaseLlmClient;
|
|
16
|
+
readonly promptId: string;
|
|
17
|
+
readonly sessionId: string;
|
|
18
|
+
readonly traceDir: string;
|
|
19
|
+
readonly projectTempDir: string;
|
|
20
|
+
readonly tracer: ContextTracer;
|
|
21
|
+
readonly charsPerToken: number;
|
|
22
|
+
readonly tokenCalculator: ContextTokenCalculator;
|
|
23
|
+
readonly eventBus: ContextEventBus;
|
|
24
|
+
readonly inbox: LiveInbox;
|
|
25
|
+
readonly behaviorRegistry: NodeBehaviorRegistry;
|
|
26
|
+
readonly graphMapper: ContextGraphMapper;
|
|
27
|
+
}
|