@machina.ai/cell-cli-core 1.41.1-rc2 → 1.45.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/changelogs/index.md +63 -0
- package/dist/docs/changelogs/latest.md +200 -244
- package/dist/docs/changelogs/preview.md +198 -385
- package/dist/docs/cli/auto-memory.md +61 -40
- package/dist/docs/cli/cli-reference.md +2 -1
- package/dist/docs/cli/creating-skills.md +165 -38
- package/dist/docs/cli/custom-commands.md +1 -0
- package/dist/docs/cli/gemini-md.md +0 -3
- package/dist/docs/cli/model-routing.md +3 -3
- package/dist/docs/cli/plan-mode.md +2 -2
- package/dist/docs/cli/settings.md +20 -19
- package/dist/docs/cli/skills-best-practices.md +78 -0
- package/dist/docs/cli/skills.md +98 -176
- package/dist/docs/cli/tutorials/memory-management.md +3 -3
- package/dist/docs/cli/tutorials/session-management.md +13 -0
- package/dist/docs/cli/tutorials/skills-getting-started.md +140 -92
- package/dist/docs/cli/using-agent-skills.md +90 -0
- package/dist/docs/core/gemma-setup.md +83 -0
- package/dist/docs/core/index.md +3 -2
- package/dist/docs/core/local-model-routing.md +14 -7
- package/dist/docs/extensions/reference.md +16 -0
- package/dist/docs/extensions/releasing.md +58 -24
- package/dist/docs/extensions/writing-extensions.md +7 -0
- package/dist/docs/get-started/installation.mdx +2 -2
- package/dist/docs/model-routing-spec.md +683 -0
- package/dist/docs/reference/commands.md +14 -7
- package/dist/docs/reference/configuration.md +264 -88
- package/dist/docs/reference/keyboard-shortcuts.md +24 -1
- package/dist/docs/reference/policy-engine.md +14 -3
- package/dist/docs/reference/tools.md +48 -1
- package/dist/docs/releases.md +2 -2
- package/dist/docs/sidebar.json +24 -2
- package/dist/docs/tools/activate-skill.md +1 -1
- package/dist/docs/tools/mcp-server.md +24 -3
- package/dist/docs/tools/memory.md +10 -13
- package/dist/docs/tools/shell.md +17 -0
- package/dist/package.json +18 -18
- package/dist/src/agent/content-utils.js +6 -1
- package/dist/src/agent/content-utils.js.map +1 -1
- package/dist/src/agent/content-utils.test.js +5 -1
- package/dist/src/agent/content-utils.test.js.map +1 -1
- package/dist/src/agent/event-translator.js +8 -7
- package/dist/src/agent/event-translator.js.map +1 -1
- package/dist/src/agent/event-translator.test.js +2 -2
- package/dist/src/agent/event-translator.test.js.map +1 -1
- package/dist/src/agent/legacy-agent-session.js +5 -1
- package/dist/src/agent/legacy-agent-session.js.map +1 -1
- package/dist/src/agent/legacy-agent-session.test.js +11 -3
- package/dist/src/agent/legacy-agent-session.test.js.map +1 -1
- package/dist/src/agent/tool-display-utils.d.ts +3 -2
- package/dist/src/agent/tool-display-utils.js +3 -2
- package/dist/src/agent/tool-display-utils.js.map +1 -1
- package/dist/src/agent/types.d.ts +33 -3
- package/dist/src/agents/a2aUtils.d.ts +1 -1
- package/dist/src/agents/a2aUtils.js +5 -4
- package/dist/src/agents/a2aUtils.js.map +1 -1
- package/dist/src/agents/a2aUtils.test.js +18 -0
- package/dist/src/agents/a2aUtils.test.js.map +1 -1
- package/dist/src/agents/agent-tool.d.ts +3 -1
- package/dist/src/agents/agent-tool.js +19 -3
- package/dist/src/agents/agent-tool.js.map +1 -1
- package/dist/src/agents/agent-tool.test.js +76 -0
- package/dist/src/agents/agent-tool.test.js.map +1 -1
- package/dist/src/agents/agentLoader.d.ts +127 -22
- package/dist/src/agents/agentLoader.js +20 -0
- package/dist/src/agents/agentLoader.js.map +1 -1
- package/dist/src/agents/agentLoader.test.js +60 -0
- package/dist/src/agents/agentLoader.test.js.map +1 -1
- package/dist/src/agents/auth-provider/types.d.ts +5 -0
- package/dist/src/agents/browser/browserAgentInvocation.js +24 -19
- package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
- package/dist/src/agents/browser/snapshotSuperseder.js +11 -8
- package/dist/src/agents/browser/snapshotSuperseder.js.map +1 -1
- package/dist/src/agents/browser/snapshotSuperseder.test.js +6 -1
- package/dist/src/agents/browser/snapshotSuperseder.test.js.map +1 -1
- package/dist/src/agents/generalist-agent.js +8 -1
- package/dist/src/agents/generalist-agent.js.map +1 -1
- package/dist/src/agents/generalist-agent.test.js +24 -0
- package/dist/src/agents/generalist-agent.test.js.map +1 -1
- package/dist/src/agents/local-executor.d.ts +1 -0
- package/dist/src/agents/local-executor.js +76 -45
- package/dist/src/agents/local-executor.js.map +1 -1
- package/dist/src/agents/local-executor.test.js +199 -27
- package/dist/src/agents/local-executor.test.js.map +1 -1
- package/dist/src/agents/local-invocation.d.ts +1 -1
- package/dist/src/agents/local-invocation.js +47 -48
- package/dist/src/agents/local-invocation.js.map +1 -1
- package/dist/src/agents/local-invocation.test.js +13 -15
- package/dist/src/agents/local-invocation.test.js.map +1 -1
- package/dist/src/agents/local-session-invocation.d.ts +51 -0
- package/dist/src/agents/local-session-invocation.js +320 -0
- package/dist/src/agents/local-session-invocation.js.map +1 -0
- package/dist/src/agents/local-session-invocation.test.js +512 -0
- package/dist/src/agents/local-session-invocation.test.js.map +1 -0
- package/dist/src/agents/local-subagent-protocol.d.ts +18 -0
- package/dist/src/agents/local-subagent-protocol.js +357 -0
- package/dist/src/agents/local-subagent-protocol.js.map +1 -0
- package/dist/src/agents/local-subagent-protocol.test.js +676 -0
- package/dist/src/agents/local-subagent-protocol.test.js.map +1 -0
- package/dist/src/agents/registry.d.ts +8 -4
- package/dist/src/agents/registry.js +112 -47
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +9 -20
- package/dist/src/agents/registry.test.js.map +1 -1
- package/dist/src/agents/remote-invocation.js +6 -6
- package/dist/src/agents/remote-invocation.js.map +1 -1
- package/dist/src/agents/remote-invocation.test.js +23 -12
- package/dist/src/agents/remote-invocation.test.js.map +1 -1
- package/dist/src/agents/remote-session-invocation.d.ts +48 -0
- package/dist/src/agents/remote-session-invocation.js +193 -0
- package/dist/src/agents/remote-session-invocation.js.map +1 -0
- package/dist/src/agents/remote-session-invocation.test.d.ts +6 -0
- package/dist/src/agents/remote-session-invocation.test.js +405 -0
- package/dist/src/agents/remote-session-invocation.test.js.map +1 -0
- package/dist/src/agents/remote-subagent-protocol.d.ts +42 -0
- package/dist/src/agents/remote-subagent-protocol.js +348 -0
- package/dist/src/agents/remote-subagent-protocol.js.map +1 -0
- package/dist/src/agents/remote-subagent-protocol.test.d.ts +6 -0
- package/dist/src/agents/remote-subagent-protocol.test.js +652 -0
- package/dist/src/agents/remote-subagent-protocol.test.js.map +1 -0
- package/dist/src/agents/skill-extraction-agent.d.ts +8 -1
- package/dist/src/agents/skill-extraction-agent.js +171 -21
- package/dist/src/agents/skill-extraction-agent.js.map +1 -1
- package/dist/src/agents/skill-extraction-agent.test.js +66 -2
- package/dist/src/agents/skill-extraction-agent.test.js.map +1 -1
- package/dist/src/agents/types.d.ts +38 -2
- package/dist/src/agents/types.js +7 -0
- package/dist/src/agents/types.js.map +1 -1
- package/dist/src/availability/autoRoutingFallback.integration.test.d.ts +6 -0
- package/dist/src/availability/autoRoutingFallback.integration.test.js +288 -0
- package/dist/src/availability/autoRoutingFallback.integration.test.js.map +1 -0
- package/dist/src/availability/fallbackIntegration.test.js +29 -0
- package/dist/src/availability/fallbackIntegration.test.js.map +1 -1
- package/dist/src/availability/modelAvailabilityService.d.ts +6 -6
- package/dist/src/availability/modelAvailabilityService.js +16 -8
- package/dist/src/availability/modelAvailabilityService.js.map +1 -1
- package/dist/src/availability/modelAvailabilityService.test.js +39 -0
- package/dist/src/availability/modelAvailabilityService.test.js.map +1 -1
- package/dist/src/availability/modelPolicy.d.ts +1 -0
- package/dist/src/availability/policyCatalog.d.ts +2 -0
- package/dist/src/availability/policyCatalog.js +38 -9
- package/dist/src/availability/policyCatalog.js.map +1 -1
- package/dist/src/availability/policyCatalog.test.js +5 -4
- package/dist/src/availability/policyCatalog.test.js.map +1 -1
- package/dist/src/availability/policyHelpers.js +42 -27
- package/dist/src/availability/policyHelpers.js.map +1 -1
- package/dist/src/availability/policyHelpers.test.js +47 -7
- package/dist/src/availability/policyHelpers.test.js.map +1 -1
- package/dist/src/availability/testUtils.js +1 -1
- package/dist/src/availability/testUtils.js.map +1 -1
- package/dist/src/code_assist/admin/admin_controls.js +3 -1
- package/dist/src/code_assist/admin/admin_controls.js.map +1 -1
- package/dist/src/code_assist/experiments/flagNames.d.ts +1 -1
- package/dist/src/code_assist/experiments/flagNames.js +1 -1
- package/dist/src/code_assist/experiments/flagNames.js.map +1 -1
- package/dist/src/code_assist/oauth-credential-storage.js +12 -3
- package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
- package/dist/src/code_assist/oauth-credential-storage.test.js +29 -2
- package/dist/src/code_assist/oauth-credential-storage.test.js.map +1 -1
- package/dist/src/code_assist/oauth2.js +12 -3
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +38 -0
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/setup.d.ts +3 -0
- package/dist/src/code_assist/setup.js +9 -0
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/code_assist/setup.test.js +10 -1
- package/dist/src/code_assist/setup.test.js.map +1 -1
- package/dist/src/commands/memory.d.ts +83 -2
- package/dist/src/commands/memory.js +479 -28
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/memory.test.js +414 -58
- package/dist/src/commands/memory.test.js.map +1 -1
- package/dist/src/config/config.d.ts +61 -37
- package/dist/src/config/config.js +294 -101
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +365 -113
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/defaultModelConfigs.js +185 -61
- package/dist/src/config/defaultModelConfigs.js.map +1 -1
- package/dist/src/config/flashFallback.test.js +31 -0
- package/dist/src/config/flashFallback.test.js.map +1 -1
- package/dist/src/config/models.d.ts +20 -10
- package/dist/src/config/models.js +105 -34
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.js +204 -47
- package/dist/src/config/models.test.js.map +1 -1
- package/dist/src/config/projectRegistry.d.ts +1 -0
- package/dist/src/config/projectRegistry.js +14 -3
- package/dist/src/config/projectRegistry.js.map +1 -1
- package/dist/src/config/projectRegistry.test.js +43 -0
- package/dist/src/config/projectRegistry.test.js.map +1 -1
- package/dist/src/config/scoped-config.d.ts +22 -0
- package/dist/src/config/scoped-config.js +32 -0
- package/dist/src/config/scoped-config.js.map +1 -1
- package/dist/src/config/storage.d.ts +0 -1
- package/dist/src/config/storage.js +0 -3
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/confirmation-bus/message-bus.d.ts +3 -1
- package/dist/src/confirmation-bus/message-bus.js +14 -5
- package/dist/src/confirmation-bus/message-bus.js.map +1 -1
- package/dist/src/confirmation-bus/message-bus.test.js +34 -0
- package/dist/src/confirmation-bus/message-bus.test.js.map +1 -1
- package/dist/src/context/chatCompressionService.js +7 -5
- package/dist/src/context/chatCompressionService.js.map +1 -1
- package/dist/src/context/chatCompressionService.test.js +1 -1
- package/dist/src/context/chatCompressionService.test.js.map +1 -1
- package/dist/src/context/config/configLoader.js +4 -1
- package/dist/src/context/config/configLoader.js.map +1 -1
- package/dist/src/context/config/profiles.d.ts +10 -0
- package/dist/src/context/config/profiles.js +98 -3
- package/dist/src/context/config/profiles.js.map +1 -1
- package/dist/src/context/config/schema.d.ts +4 -0
- package/dist/src/context/config/schema.js +4 -0
- package/dist/src/context/config/schema.js.map +1 -1
- package/dist/src/context/config/types.d.ts +13 -1
- package/dist/src/context/contextCompressionService.test.js +7 -3
- package/dist/src/context/contextCompressionService.test.js.map +1 -1
- package/dist/src/context/contextManager.barrier.test.js +39 -16
- package/dist/src/context/contextManager.barrier.test.js.map +1 -1
- package/dist/src/context/contextManager.d.ts +25 -28
- package/dist/src/context/contextManager.hotstart.test.d.ts +6 -0
- package/dist/src/context/contextManager.hotstart.test.js +65 -0
- package/dist/src/context/contextManager.hotstart.test.js.map +1 -0
- package/dist/src/context/contextManager.incremental.test.d.ts +6 -0
- package/dist/src/context/contextManager.incremental.test.js +101 -0
- package/dist/src/context/contextManager.incremental.test.js.map +1 -0
- package/dist/src/context/contextManager.js +276 -79
- package/dist/src/context/contextManager.js.map +1 -1
- package/dist/src/context/contextManager.test.d.ts +6 -0
- package/dist/src/context/contextManager.test.js +142 -0
- package/dist/src/context/contextManager.test.js.map +1 -0
- package/dist/src/context/eventBus.d.ts +13 -0
- package/dist/src/context/eventBus.js +12 -0
- package/dist/src/context/eventBus.js.map +1 -1
- package/dist/src/context/graph/behaviorRegistry.d.ts +4 -12
- package/dist/src/context/graph/behaviorRegistry.js.map +1 -1
- package/dist/src/context/graph/builtinBehaviors.d.ts +6 -1
- package/dist/src/context/graph/builtinBehaviors.js +23 -108
- package/dist/src/context/graph/builtinBehaviors.js.map +1 -1
- package/dist/src/context/graph/fromGraph.d.ts +8 -3
- package/dist/src/context/graph/fromGraph.js +46 -30
- package/dist/src/context/graph/fromGraph.js.map +1 -1
- package/dist/src/context/graph/fromGraph.test.d.ts +6 -0
- package/dist/src/context/graph/fromGraph.test.js +186 -0
- package/dist/src/context/graph/fromGraph.test.js.map +1 -0
- package/dist/src/context/graph/mapper.d.ts +8 -10
- package/dist/src/context/graph/mapper.js +11 -19
- package/dist/src/context/graph/mapper.js.map +1 -1
- package/dist/src/context/graph/mapper.test.d.ts +6 -0
- package/dist/src/context/graph/mapper.test.js +101 -0
- package/dist/src/context/graph/mapper.test.js.map +1 -0
- package/dist/src/context/graph/nodeIdService.d.ts +17 -0
- package/dist/src/context/graph/nodeIdService.js +24 -0
- package/dist/src/context/graph/nodeIdService.js.map +1 -0
- package/dist/src/context/graph/render.d.ts +24 -5
- package/dist/src/context/graph/render.js +129 -34
- package/dist/src/context/graph/render.js.map +1 -1
- package/dist/src/context/graph/render.test.d.ts +6 -0
- package/dist/src/context/graph/render.test.js +280 -0
- package/dist/src/context/graph/render.test.js.map +1 -0
- package/dist/src/context/graph/toGraph.d.ts +16 -14
- package/dist/src/context/graph/toGraph.js +180 -202
- package/dist/src/context/graph/toGraph.js.map +1 -1
- package/dist/src/context/graph/toGraph.test.d.ts +6 -0
- package/dist/src/context/graph/toGraph.test.js +116 -0
- package/dist/src/context/graph/toGraph.test.js.map +1 -0
- package/dist/src/context/graph/types.d.ts +36 -73
- package/dist/src/context/graph/types.js +23 -14
- package/dist/src/context/graph/types.js.map +1 -1
- package/dist/src/context/initializer.js +26 -5
- package/dist/src/context/initializer.js.map +1 -1
- package/dist/src/context/pipeline/contextWorkingBuffer.d.ts +5 -8
- package/dist/src/context/pipeline/contextWorkingBuffer.js +105 -35
- package/dist/src/context/pipeline/contextWorkingBuffer.js.map +1 -1
- package/dist/src/context/pipeline/contextWorkingBuffer.test.js +81 -13
- package/dist/src/context/pipeline/contextWorkingBuffer.test.js.map +1 -1
- package/dist/src/context/pipeline/environment.d.ts +4 -0
- package/dist/src/context/pipeline/environmentImpl.d.ts +6 -5
- package/dist/src/context/pipeline/environmentImpl.js +7 -9
- package/dist/src/context/pipeline/environmentImpl.js.map +1 -1
- package/dist/src/context/pipeline/environmentImpl.test.js +5 -1
- package/dist/src/context/pipeline/environmentImpl.test.js.map +1 -1
- package/dist/src/context/pipeline/orchestrator.d.ts +20 -6
- package/dist/src/context/pipeline/orchestrator.js +97 -80
- package/dist/src/context/pipeline/orchestrator.js.map +1 -1
- package/dist/src/context/pipeline/orchestrator.test.js +33 -36
- package/dist/src/context/pipeline/orchestrator.test.js.map +1 -1
- package/dist/src/context/pipeline.d.ts +0 -1
- package/dist/src/context/processors/blobDegradationProcessor.js +43 -84
- package/dist/src/context/processors/blobDegradationProcessor.js.map +1 -1
- package/dist/src/context/processors/blobDegradationProcessor.test.js +33 -37
- package/dist/src/context/processors/blobDegradationProcessor.test.js.map +1 -1
- package/dist/src/context/processors/nodeDistillationProcessor.js +58 -80
- package/dist/src/context/processors/nodeDistillationProcessor.js.map +1 -1
- package/dist/src/context/processors/nodeDistillationProcessor.test.js +21 -15
- package/dist/src/context/processors/nodeDistillationProcessor.test.js.map +1 -1
- package/dist/src/context/processors/nodeTruncationProcessor.js +16 -60
- package/dist/src/context/processors/nodeTruncationProcessor.js.map +1 -1
- package/dist/src/context/processors/nodeTruncationProcessor.test.js +16 -19
- package/dist/src/context/processors/nodeTruncationProcessor.test.js.map +1 -1
- package/dist/src/context/processors/rollingSummaryProcessor.js +12 -25
- package/dist/src/context/processors/rollingSummaryProcessor.js.map +1 -1
- package/dist/src/context/processors/rollingSummaryProcessor.test.js +10 -9
- package/dist/src/context/processors/rollingSummaryProcessor.test.js.map +1 -1
- package/dist/src/context/processors/stateSnapshotAsyncProcessor.d.ts +7 -0
- package/dist/src/context/processors/stateSnapshotAsyncProcessor.js +37 -19
- package/dist/src/context/processors/stateSnapshotAsyncProcessor.js.map +1 -1
- package/dist/src/context/processors/stateSnapshotAsyncProcessor.test.js +35 -10
- package/dist/src/context/processors/stateSnapshotAsyncProcessor.test.js.map +1 -1
- package/dist/src/context/processors/stateSnapshotProcessor.d.ts +2 -0
- package/dist/src/context/processors/stateSnapshotProcessor.js +53 -21
- package/dist/src/context/processors/stateSnapshotProcessor.js.map +1 -1
- package/dist/src/context/processors/stateSnapshotProcessor.test.js +52 -12
- package/dist/src/context/processors/stateSnapshotProcessor.test.js.map +1 -1
- package/dist/src/context/processors/toolMaskingProcessor.js +96 -117
- package/dist/src/context/processors/toolMaskingProcessor.js.map +1 -1
- package/dist/src/context/processors/toolMaskingProcessor.test.js +50 -17
- package/dist/src/context/processors/toolMaskingProcessor.test.js.map +1 -1
- package/dist/src/context/system-tests/hysteresis.test.d.ts +6 -0
- package/dist/src/context/system-tests/hysteresis.test.js +100 -0
- package/dist/src/context/system-tests/hysteresis.test.js.map +1 -0
- package/dist/src/context/system-tests/lifecycle.golden.test.js +107 -72
- package/dist/src/context/system-tests/lifecycle.golden.test.js.map +1 -1
- package/dist/src/context/system-tests/powerUserLifecycle.test.d.ts +6 -0
- package/dist/src/context/system-tests/powerUserLifecycle.test.js +91 -0
- package/dist/src/context/system-tests/powerUserLifecycle.test.js.map +1 -0
- package/dist/src/context/system-tests/simulationHarness.d.ts +2 -5
- package/dist/src/context/system-tests/simulationHarness.js +34 -35
- package/dist/src/context/system-tests/simulationHarness.js.map +1 -1
- package/dist/src/context/testing/contextTestUtils.d.ts +5 -3
- package/dist/src/context/testing/contextTestUtils.js +74 -53
- package/dist/src/context/testing/contextTestUtils.js.map +1 -1
- package/dist/src/context/testing/testProfile.js +1 -0
- package/dist/src/context/testing/testProfile.js.map +1 -1
- package/dist/src/context/toolOutputMaskingService.js +1 -2
- package/dist/src/context/toolOutputMaskingService.js.map +1 -1
- package/dist/src/context/toolOutputMaskingService.test.js +5 -20
- package/dist/src/context/toolOutputMaskingService.test.js.map +1 -1
- package/dist/src/context/utils/adaptiveTokenCalculator.d.ts +70 -0
- package/dist/src/context/utils/adaptiveTokenCalculator.js +138 -0
- package/dist/src/context/utils/adaptiveTokenCalculator.js.map +1 -0
- package/dist/src/context/utils/adaptiveTokenCalculator.test.d.ts +6 -0
- package/dist/src/context/utils/adaptiveTokenCalculator.test.js +129 -0
- package/dist/src/context/utils/adaptiveTokenCalculator.test.js.map +1 -0
- package/dist/src/context/utils/contextTokenCalculator.d.ts +63 -2
- package/dist/src/context/utils/contextTokenCalculator.js +80 -5
- package/dist/src/context/utils/contextTokenCalculator.js.map +1 -1
- package/dist/src/context/utils/contextTokenCalculator.test.d.ts +6 -0
- package/dist/src/context/utils/contextTokenCalculator.test.js +54 -0
- package/dist/src/context/utils/contextTokenCalculator.test.js.map +1 -0
- package/dist/src/context/utils/formatNodesForLlm.d.ts +21 -0
- package/dist/src/context/utils/formatNodesForLlm.js +69 -0
- package/dist/src/context/utils/formatNodesForLlm.js.map +1 -0
- package/dist/src/context/utils/formatNodesForLlm.test.d.ts +6 -0
- package/dist/src/context/utils/formatNodesForLlm.test.js +110 -0
- package/dist/src/context/utils/formatNodesForLlm.test.js.map +1 -0
- package/dist/src/context/utils/invariantChecker.d.ts +11 -0
- package/dist/src/context/utils/invariantChecker.js +36 -0
- package/dist/src/context/utils/invariantChecker.js.map +1 -0
- package/dist/src/context/utils/snapshotGenerator.d.ts +43 -1
- package/dist/src/context/utils/snapshotGenerator.js +332 -33
- package/dist/src/context/utils/snapshotGenerator.js.map +1 -1
- package/dist/src/context/utils/snapshotGenerator.test.d.ts +6 -0
- package/dist/src/context/utils/snapshotGenerator.test.js +362 -0
- package/dist/src/context/utils/snapshotGenerator.test.js.map +1 -0
- package/dist/src/context/utils/tokenCalibration.d.ts +9 -0
- package/dist/src/context/utils/tokenCalibration.js +30 -0
- package/dist/src/context/utils/tokenCalibration.js.map +1 -0
- package/dist/src/core/agentChatHistory.d.ts +29 -14
- package/dist/src/core/agentChatHistory.js +27 -27
- package/dist/src/core/agentChatHistory.js.map +1 -1
- package/dist/src/core/baseLlmClient.d.ts +8 -0
- package/dist/src/core/baseLlmClient.js +23 -3
- package/dist/src/core/baseLlmClient.js.map +1 -1
- package/dist/src/core/baseLlmClient.test.js +27 -23
- package/dist/src/core/baseLlmClient.test.js.map +1 -1
- package/dist/src/core/client.d.ts +7 -5
- package/dist/src/core/client.js +65 -40
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +35 -131
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.js +46 -21
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +191 -13
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/fakeContentGenerator.d.ts +15 -3
- package/dist/src/core/fakeContentGenerator.js +29 -9
- package/dist/src/core/fakeContentGenerator.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +18 -7
- package/dist/src/core/geminiChat.js +312 -54
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +448 -54
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/geminiChat_network_retry.test.js +39 -0
- package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
- package/dist/src/core/localLiteRtLmClient.js +6 -2
- package/dist/src/core/localLiteRtLmClient.js.map +1 -1
- package/dist/src/core/prompts.test.js +12 -7
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/turn.d.ts +7 -2
- package/dist/src/core/turn.js +61 -4
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/core/turn.test.js +19 -10
- package/dist/src/core/turn.test.js.map +1 -1
- package/dist/src/fallback/handler.js +16 -6
- package/dist/src/fallback/handler.js.map +1 -1
- package/dist/src/fallback/handler.test.js +8 -2
- package/dist/src/fallback/handler.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/hookEventHandler.js +3 -2
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.test.js +80 -0
- package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +3 -3
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/hooks/hookTranslator.js +95 -5
- package/dist/src/hooks/hookTranslator.js.map +1 -1
- package/dist/src/hooks/hookTranslator.test.js +171 -0
- package/dist/src/hooks/hookTranslator.test.js.map +1 -1
- package/dist/src/ide/ide-client.js +5 -3
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-connection-utils.js +12 -10
- package/dist/src/ide/ide-connection-utils.js.map +1 -1
- package/dist/src/ide/ide-connection-utils.test.js +25 -2
- package/dist/src/ide/ide-connection-utils.test.js.map +1 -1
- package/dist/src/ide/types.d.ts +16 -16
- package/dist/src/index.d.ts +5 -2
- package/dist/src/index.js +5 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.d.ts +8 -0
- package/dist/src/mcp/oauth-provider.js +41 -0
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-token-storage.js +7 -1
- package/dist/src/mcp/oauth-token-storage.js.map +1 -1
- package/dist/src/mcp/oauth-token-storage.test.js +55 -0
- package/dist/src/mcp/oauth-token-storage.test.js.map +1 -1
- package/dist/src/mcp/stored-token-provider.d.ts +27 -0
- package/dist/src/mcp/stored-token-provider.js +76 -0
- package/dist/src/mcp/stored-token-provider.js.map +1 -0
- package/dist/src/mcp/token-storage/keychain-token-storage.js +2 -2
- package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
- package/dist/src/mcp/token-storage/keychain-token-storage.test.js +14 -1
- package/dist/src/mcp/token-storage/keychain-token-storage.test.js.map +1 -1
- package/dist/src/output/json-formatter.d.ts +1 -1
- package/dist/src/output/json-formatter.js +4 -1
- package/dist/src/output/json-formatter.js.map +1 -1
- package/dist/src/output/json-formatter.test.js +7 -0
- package/dist/src/output/json-formatter.test.js.map +1 -1
- package/dist/src/output/types.d.ts +1 -0
- package/dist/src/output/types.js.map +1 -1
- package/dist/src/policy/config.js +25 -0
- package/dist/src/policy/config.js.map +1 -1
- package/dist/src/policy/config.test.js +80 -0
- package/dist/src/policy/config.test.js.map +1 -1
- package/dist/src/policy/core-tools-mapping.test.js +9 -1
- package/dist/src/policy/core-tools-mapping.test.js.map +1 -1
- package/dist/src/policy/policies/plan.toml +1 -1
- package/dist/src/policy/policies/write.toml +0 -7
- package/dist/src/policy/policy-engine.test.js +0 -8
- package/dist/src/policy/policy-engine.test.js.map +1 -1
- package/dist/src/policy/sandboxPolicyManager.d.ts +20 -20
- package/dist/src/policy/stable-stringify.js +10 -6
- package/dist/src/policy/stable-stringify.js.map +1 -1
- package/dist/src/policy/stable-stringify.test.js +157 -0
- package/dist/src/policy/stable-stringify.test.js.map +1 -0
- package/dist/src/policy/types.d.ts +1 -0
- package/dist/src/policy/types.js.map +1 -1
- package/dist/src/prompts/promptProvider.js +8 -9
- package/dist/src/prompts/promptProvider.js.map +1 -1
- package/dist/src/prompts/promptProvider.test.js +3 -1
- package/dist/src/prompts/promptProvider.test.js.map +1 -1
- package/dist/src/prompts/snippets-memory.test.d.ts +6 -0
- package/dist/src/prompts/{snippets-memory-v2.test.js → snippets-memory.test.js} +5 -23
- package/dist/src/prompts/snippets-memory.test.js.map +1 -0
- package/dist/src/prompts/snippets.d.ts +6 -11
- package/dist/src/prompts/snippets.js +28 -30
- package/dist/src/prompts/snippets.js.map +1 -1
- package/dist/src/prompts/snippets.legacy.d.ts +0 -1
- package/dist/src/prompts/snippets.legacy.js +8 -15
- package/dist/src/prompts/snippets.legacy.js.map +1 -1
- package/dist/src/routing/strategies/approvalModeStrategy.js +5 -3
- package/dist/src/routing/strategies/approvalModeStrategy.js.map +1 -1
- package/dist/src/routing/strategies/approvalModeStrategy.test.js +9 -0
- package/dist/src/routing/strategies/approvalModeStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.js +18 -4
- package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js +77 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/defaultStrategy.js +1 -1
- package/dist/src/routing/strategies/defaultStrategy.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.js +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
- package/dist/src/routing/strategies/gemmaClassifierStrategy.js +7 -1
- package/dist/src/routing/strategies/gemmaClassifierStrategy.js.map +1 -1
- package/dist/src/routing/strategies/gemmaClassifierStrategy.test.js +15 -1
- package/dist/src/routing/strategies/gemmaClassifierStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/numericalClassifierStrategy.d.ts +1 -0
- package/dist/src/routing/strategies/numericalClassifierStrategy.js +32 -5
- package/dist/src/routing/strategies/numericalClassifierStrategy.js.map +1 -1
- package/dist/src/routing/strategies/numericalClassifierStrategy.test.js +247 -25
- package/dist/src/routing/strategies/numericalClassifierStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/overrideStrategy.js +1 -1
- package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
- package/dist/src/sandbox/utils/commandSafety.js +22 -2
- package/dist/src/sandbox/utils/commandSafety.js.map +1 -1
- package/dist/src/sandbox/utils/commandSafety.test.d.ts +6 -0
- package/dist/src/sandbox/utils/commandSafety.test.js +85 -0
- package/dist/src/sandbox/utils/commandSafety.test.js.map +1 -0
- package/dist/src/scheduler/confirmation.test.js +29 -0
- package/dist/src/scheduler/confirmation.test.js.map +1 -1
- package/dist/src/scheduler/scheduler.js +15 -0
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/scheduler/scheduler.test.js +1 -1
- package/dist/src/scheduler/scheduler.test.js.map +1 -1
- package/dist/src/scheduler/scheduler_parallel.test.js +37 -0
- package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -1
- package/dist/src/scheduler/state-manager.js +5 -1
- package/dist/src/scheduler/state-manager.js.map +1 -1
- package/dist/src/scheduler/tool-executor.js +7 -4
- package/dist/src/scheduler/tool-executor.js.map +1 -1
- package/dist/src/scheduler/types.d.ts +5 -1
- package/dist/src/scheduler/types.js.map +1 -1
- package/dist/src/services/chatRecordingService.d.ts +14 -7
- package/dist/src/services/chatRecordingService.js +157 -133
- package/dist/src/services/chatRecordingService.js.map +1 -1
- package/dist/src/services/chatRecordingService.test.js +189 -52
- package/dist/src/services/chatRecordingService.test.js.map +1 -1
- package/dist/src/services/fileDiscoveryService.js +2 -1
- package/dist/src/services/fileDiscoveryService.js.map +1 -1
- package/dist/src/services/fileDiscoveryService.test.js +36 -0
- package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
- package/dist/src/services/gitService.js +43 -4
- package/dist/src/services/gitService.js.map +1 -1
- package/dist/src/services/gitService.test.js +105 -1
- package/dist/src/services/gitService.test.js.map +1 -1
- package/dist/src/services/keychainService.js +14 -5
- package/dist/src/services/keychainService.js.map +1 -1
- package/dist/src/services/memoryPatchUtils.d.ts +93 -0
- package/dist/src/services/memoryPatchUtils.js +310 -2
- package/dist/src/services/memoryPatchUtils.js.map +1 -1
- package/dist/src/services/memoryService.d.ts +2 -0
- package/dist/src/services/memoryService.js +214 -9
- package/dist/src/services/memoryService.js.map +1 -1
- package/dist/src/services/memoryService.test.js +133 -0
- package/dist/src/services/memoryService.test.js.map +1 -1
- package/dist/src/services/modelConfigService.d.ts +3 -0
- package/dist/src/services/modelConfigService.js +22 -13
- package/dist/src/services/modelConfigService.js.map +1 -1
- package/dist/src/services/modelConfigService.test.js +73 -0
- package/dist/src/services/modelConfigService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.js +88 -41
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +22 -9
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.windows.integration.test.d.ts +6 -0
- package/dist/src/services/shellExecutionService.windows.integration.test.js +63 -0
- package/dist/src/services/shellExecutionService.windows.integration.test.js.map +1 -0
- package/dist/src/services/test-data/resolved-aliases-retry.golden.json +85 -7
- package/dist/src/services/test-data/resolved-aliases.golden.json +85 -7
- package/dist/src/services/trackerTypes.d.ts +4 -4
- package/dist/src/skills/skillManager.d.ts +4 -0
- package/dist/src/skills/skillManager.js +6 -0
- package/dist/src/skills/skillManager.js.map +1 -1
- package/dist/src/skills/skillManager.test.js +10 -0
- package/dist/src/skills/skillManager.test.js.map +1 -1
- package/dist/src/telemetry/file-exporters.d.ts +4 -1
- package/dist/src/telemetry/file-exporters.js +21 -3
- package/dist/src/telemetry/file-exporters.js.map +1 -1
- package/dist/src/telemetry/file-exporters.test.js +32 -2
- package/dist/src/telemetry/file-exporters.test.js.map +1 -1
- package/dist/src/telemetry/gcp-exporters.d.ts +3 -0
- package/dist/src/telemetry/gcp-exporters.js +72 -5
- package/dist/src/telemetry/gcp-exporters.js.map +1 -1
- package/dist/src/telemetry/gcp-exporters.test.js +52 -0
- package/dist/src/telemetry/gcp-exporters.test.js.map +1 -1
- package/dist/src/telemetry/heap-snapshot.d.ts +12 -0
- package/dist/src/telemetry/heap-snapshot.js +35 -0
- package/dist/src/telemetry/heap-snapshot.js.map +1 -0
- package/dist/src/telemetry/heap-snapshot.test.d.ts +6 -0
- package/dist/src/telemetry/heap-snapshot.test.js +38 -0
- package/dist/src/telemetry/heap-snapshot.test.js.map +1 -0
- package/dist/src/telemetry/index.d.ts +1 -0
- package/dist/src/telemetry/index.js +1 -0
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +1 -0
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/memory-monitor.d.ts +5 -0
- package/dist/src/telemetry/memory-monitor.js +8 -0
- package/dist/src/telemetry/memory-monitor.js.map +1 -1
- package/dist/src/telemetry/metrics.js +13 -2
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/metrics.test.js +61 -1
- package/dist/src/telemetry/metrics.test.js.map +1 -1
- package/dist/src/test-utils/config.js +10 -1
- package/dist/src/test-utils/config.js.map +1 -1
- package/dist/src/tools/ask-user.js +25 -1
- package/dist/src/tools/ask-user.js.map +1 -1
- package/dist/src/tools/ask-user.test.js +46 -1
- package/dist/src/tools/ask-user.test.js.map +1 -1
- package/dist/src/tools/definitions/base-declarations.d.ts +0 -3
- package/dist/src/tools/definitions/base-declarations.js +0 -4
- package/dist/src/tools/definitions/base-declarations.js.map +1 -1
- package/dist/src/tools/definitions/coreTools.d.ts +1 -2
- package/dist/src/tools/definitions/coreTools.js +2 -8
- package/dist/src/tools/definitions/coreTools.js.map +1 -1
- package/dist/src/tools/definitions/coreToolsModelSnapshots.test.js +1 -2
- package/dist/src/tools/definitions/coreToolsModelSnapshots.test.js.map +1 -1
- package/dist/src/tools/definitions/model-family-sets/default-legacy.js +7 -31
- 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 +9 -26
- package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
- package/dist/src/tools/definitions/types.d.ts +0 -1
- package/dist/src/tools/edit.js +27 -5
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +37 -0
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/grep.js +14 -2
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/grep.test.js +17 -0
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/jit-context.d.ts +1 -1
- package/dist/src/tools/jit-context.js +1 -4
- package/dist/src/tools/jit-context.js.map +1 -1
- package/dist/src/tools/jit-context.test.js +1 -13
- package/dist/src/tools/jit-context.test.js.map +1 -1
- package/dist/src/tools/ls.js +5 -0
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.js +2 -1
- package/dist/src/tools/mcp-client-manager.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.test.js +29 -0
- package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
- package/dist/src/tools/mcp-client.js +89 -50
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +353 -59
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/{xcode-mcp-fix-transport.d.ts → mcp-compliance-transport.d.ts} +6 -6
- package/dist/src/tools/{xcode-mcp-fix-transport.js → mcp-compliance-transport.js} +6 -6
- package/dist/src/tools/mcp-compliance-transport.js.map +1 -0
- package/dist/src/tools/mcp-compliance-transport.test.d.ts +6 -0
- package/dist/src/tools/mcp-compliance-transport.test.js +162 -0
- package/dist/src/tools/mcp-compliance-transport.test.js.map +1 -0
- package/dist/src/tools/memoryTool.d.ts +9 -31
- package/dist/src/tools/memoryTool.js +47 -262
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/memoryTool.test.js +41 -312
- package/dist/src/tools/memoryTool.test.js.map +1 -1
- package/dist/src/tools/read-file.js +11 -6
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +20 -8
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.js +2 -2
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/ripGrep.d.ts +3 -7
- package/dist/src/tools/ripGrep.js +57 -35
- package/dist/src/tools/ripGrep.js.map +1 -1
- package/dist/src/tools/ripGrep.test.js +197 -276
- package/dist/src/tools/ripGrep.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +5 -3
- package/dist/src/tools/shell.js +130 -36
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +186 -14
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/shell_proactive.test.js +1 -0
- package/dist/src/tools/shell_proactive.test.js.map +1 -1
- package/dist/src/tools/tool-names.d.ts +3 -3
- package/dist/src/tools/tool-names.js +4 -5
- package/dist/src/tools/tool-names.js.map +1 -1
- package/dist/src/tools/tool-registry.js +1 -1
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tools.d.ts +6 -0
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/topicTool.js +5 -0
- package/dist/src/tools/topicTool.js.map +1 -1
- package/dist/src/tools/write-file.js +13 -0
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +8 -0
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/utils/atCommandUtils.d.ts +35 -0
- package/dist/src/utils/atCommandUtils.js +163 -0
- package/dist/src/utils/atCommandUtils.js.map +1 -0
- package/dist/src/utils/atCommandUtils.test.d.ts +6 -0
- package/dist/src/utils/atCommandUtils.test.js +292 -0
- package/dist/src/utils/atCommandUtils.test.js.map +1 -0
- package/dist/src/utils/channel.d.ts +8 -0
- package/dist/src/utils/channel.js +21 -10
- package/dist/src/utils/channel.js.map +1 -1
- package/dist/src/utils/cryptoUtils.d.ts +11 -0
- package/dist/src/utils/cryptoUtils.js +19 -0
- package/dist/src/utils/cryptoUtils.js.map +1 -0
- package/dist/src/utils/cryptoUtils.test.d.ts +6 -0
- package/dist/src/utils/cryptoUtils.test.js +31 -0
- package/dist/src/utils/cryptoUtils.test.js.map +1 -0
- package/dist/src/utils/editor.d.ts +29 -3
- package/dist/src/utils/editor.js +94 -3
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/editor.test.js +176 -2
- package/dist/src/utils/editor.test.js.map +1 -1
- package/dist/src/utils/environmentContext.d.ts +2 -1
- package/dist/src/utils/environmentContext.js +15 -8
- package/dist/src/utils/environmentContext.js.map +1 -1
- package/dist/src/utils/environmentContext.test.js +4 -14
- package/dist/src/utils/environmentContext.test.js.map +1 -1
- package/dist/src/utils/errors.js +3 -8
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/events.d.ts +26 -1
- package/dist/src/utils/events.js +21 -2
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/events.test.js +39 -0
- package/dist/src/utils/events.test.js.map +1 -1
- package/dist/src/utils/extensionLoader.js +2 -2
- package/dist/src/utils/extensionLoader.js.map +1 -1
- package/dist/src/utils/extensionLoader.test.js +22 -15
- package/dist/src/utils/extensionLoader.test.js.map +1 -1
- package/dist/src/utils/fetch.d.ts +3 -3
- package/dist/src/utils/fetch.js +44 -20
- package/dist/src/utils/fetch.js.map +1 -1
- package/dist/src/utils/fetch.test.js +93 -17
- package/dist/src/utils/fetch.test.js.map +1 -1
- package/dist/src/utils/fileUtils.js +4 -1
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.js +20 -9
- package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
- package/dist/src/utils/filesearch/ignore.js +4 -1
- package/dist/src/utils/filesearch/ignore.js.map +1 -1
- package/dist/src/utils/generateContentResponseUtilities.d.ts +1 -0
- package/dist/src/utils/generateContentResponseUtilities.js +37 -7
- package/dist/src/utils/generateContentResponseUtilities.js.map +1 -1
- package/dist/src/utils/generateContentResponseUtilities.test.js +33 -0
- package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -1
- package/dist/src/utils/gitUtils.d.ts +5 -0
- package/dist/src/utils/gitUtils.js +11 -0
- package/dist/src/utils/gitUtils.js.map +1 -1
- package/dist/src/utils/historyHardening.d.ts +37 -0
- package/dist/src/utils/historyHardening.js +332 -0
- package/dist/src/utils/historyHardening.js.map +1 -0
- package/dist/src/utils/historyHardening.test.d.ts +6 -0
- package/dist/src/utils/historyHardening.test.js +317 -0
- package/dist/src/utils/historyHardening.test.js.map +1 -0
- package/dist/src/utils/ignoreFileParser.js +1 -1
- package/dist/src/utils/ignoreFileParser.js.map +1 -1
- package/dist/src/utils/ignorePatterns.js +2 -0
- package/dist/src/utils/ignorePatterns.js.map +1 -1
- package/dist/src/utils/ignorePatterns.test.js +1 -0
- package/dist/src/utils/ignorePatterns.test.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.d.ts +0 -20
- package/dist/src/utils/memoryDiscovery.js +57 -220
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.test.js +112 -403
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/modelUtils.d.ts +14 -0
- package/dist/src/utils/modelUtils.js +17 -0
- package/dist/src/utils/modelUtils.js.map +1 -0
- package/dist/src/utils/modelUtils.test.d.ts +6 -0
- package/dist/src/utils/modelUtils.test.js +23 -0
- package/dist/src/utils/modelUtils.test.js.map +1 -0
- package/dist/src/utils/partUtils.d.ts +26 -1
- package/dist/src/utils/partUtils.js +37 -0
- package/dist/src/utils/partUtils.js.map +1 -1
- package/dist/src/utils/path-validator.d.ts +17 -0
- package/dist/src/utils/path-validator.js +76 -0
- package/dist/src/utils/path-validator.js.map +1 -0
- package/dist/src/utils/path-validator.test.d.ts +6 -0
- package/dist/src/utils/path-validator.test.js +91 -0
- package/dist/src/utils/path-validator.test.js.map +1 -0
- package/dist/src/utils/pathReader.js +12 -0
- package/dist/src/utils/pathReader.js.map +1 -1
- package/dist/src/utils/pathReader.test.js +95 -0
- package/dist/src/utils/pathReader.test.js.map +1 -1
- package/dist/src/utils/paths.d.ts +19 -1
- package/dist/src/utils/paths.js +74 -9
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/paths.test.js +111 -1
- package/dist/src/utils/paths.test.js.map +1 -1
- package/dist/src/utils/quotaErrorDetection.js +23 -12
- package/dist/src/utils/quotaErrorDetection.js.map +1 -1
- package/dist/src/utils/ragLogger.d.ts +32 -0
- package/dist/src/utils/ragLogger.js +56 -0
- package/dist/src/utils/ragLogger.js.map +1 -0
- package/dist/src/utils/ragLogger.test.d.ts +6 -0
- package/dist/src/utils/ragLogger.test.js +97 -0
- package/dist/src/utils/ragLogger.test.js.map +1 -0
- package/dist/src/utils/retry.js +8 -3
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +17 -0
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/safeJsonStringify.js +0 -2
- package/dist/src/utils/safeJsonStringify.js.map +1 -1
- package/dist/src/utils/sessionOperations.d.ts +26 -0
- package/dist/src/utils/sessionOperations.js +177 -8
- package/dist/src/utils/sessionOperations.js.map +1 -1
- package/dist/src/utils/sessionUtils.d.ts +11 -5
- package/dist/src/utils/sessionUtils.js +139 -68
- package/dist/src/utils/sessionUtils.js.map +1 -1
- package/dist/src/utils/sessionUtils.test.js +31 -5
- package/dist/src/utils/sessionUtils.test.js.map +1 -1
- package/dist/src/utils/shell-utils.d.ts +9 -1
- package/dist/src/utils/shell-utils.js +51 -20
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/shell-utils.test.js +87 -46
- package/dist/src/utils/shell-utils.test.js.map +1 -1
- package/dist/src/utils/textUtils.d.ts +12 -2
- package/dist/src/utils/textUtils.js +30 -3
- package/dist/src/utils/textUtils.js.map +1 -1
- package/dist/src/utils/textUtils.test.js +96 -1
- package/dist/src/utils/textUtils.test.js.map +1 -1
- package/dist/src/utils/tokenCalculation.d.ts +3 -2
- package/dist/src/utils/tokenCalculation.js +9 -5
- package/dist/src/utils/tokenCalculation.js.map +1 -1
- package/dist/src/utils/tokenCalculation.test.js +15 -0
- package/dist/src/utils/tokenCalculation.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +18 -18
- package/dist/src/context/historyObserver.d.ts +0 -28
- package/dist/src/context/historyObserver.js +0 -63
- package/dist/src/context/historyObserver.js.map +0 -1
- package/dist/src/policy/memory-manager-policy.test.js +0 -80
- package/dist/src/policy/memory-manager-policy.test.js.map +0 -1
- package/dist/src/policy/policies/memory-manager.toml +0 -20
- package/dist/src/prompts/snippets-memory-v2.test.js.map +0 -1
- package/dist/src/tools/xcode-mcp-fix-transport.js.map +0 -1
- package/dist/src/tools/xcode-mcp-fix-transport.test.d.ts +0 -1
- package/dist/src/tools/xcode-mcp-fix-transport.test.js +0 -98
- package/dist/src/tools/xcode-mcp-fix-transport.test.js.map +0 -1
- package/dist/src/utils/systemEncoding.d.ts +0 -40
- package/dist/src/utils/systemEncoding.js +0 -150
- package/dist/src/utils/systemEncoding.js.map +0 -1
- package/dist/src/utils/systemEncoding.test.js +0 -369
- package/dist/src/utils/systemEncoding.test.js.map +0 -1
- /package/dist/src/{policy/memory-manager-policy.test.d.ts → agents/local-session-invocation.test.d.ts} +0 -0
- /package/dist/src/{prompts/snippets-memory-v2.test.d.ts → agents/local-subagent-protocol.test.d.ts} +0 -0
- /package/dist/src/{utils/systemEncoding.test.d.ts → policy/stable-stringify.test.d.ts} +0 -0
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
import { describe, it, expect } from 'vitest';
|
|
7
7
|
import { ContextWorkingBufferImpl } from './contextWorkingBuffer.js';
|
|
8
8
|
import { createDummyNode } from '../testing/contextTestUtils.js';
|
|
9
|
+
import { NodeType } from '../graph/types.js';
|
|
9
10
|
describe('ContextWorkingBufferImpl', () => {
|
|
10
11
|
it('should initialize with a pristine graph correctly', () => {
|
|
11
|
-
const pristine1 = createDummyNode('ep1',
|
|
12
|
-
const pristine2 = createDummyNode('ep1',
|
|
12
|
+
const pristine1 = createDummyNode('ep1', NodeType.USER_PROMPT, 10, undefined, 'p1');
|
|
13
|
+
const pristine2 = createDummyNode('ep1', NodeType.AGENT_THOUGHT, 10, undefined, 'p2');
|
|
13
14
|
const buffer = ContextWorkingBufferImpl.initialize([pristine1, pristine2]);
|
|
14
15
|
expect(buffer.nodes).toHaveLength(2);
|
|
15
16
|
expect(buffer.getAuditLog()).toHaveLength(0);
|
|
@@ -18,9 +19,9 @@ describe('ContextWorkingBufferImpl', () => {
|
|
|
18
19
|
expect(buffer.getPristineNodes('p2')).toEqual([pristine2]);
|
|
19
20
|
});
|
|
20
21
|
it('should track 1:1 replacements (e.g., masking) and append to audit log', () => {
|
|
21
|
-
const pristine1 = createDummyNode('ep1',
|
|
22
|
+
const pristine1 = createDummyNode('ep1', NodeType.USER_PROMPT, 10, undefined, 'p1');
|
|
22
23
|
let buffer = ContextWorkingBufferImpl.initialize([pristine1]);
|
|
23
|
-
const maskedNode = createDummyNode('ep1',
|
|
24
|
+
const maskedNode = createDummyNode('ep1', NodeType.USER_PROMPT, 5, undefined, 'm1');
|
|
24
25
|
// Simulate what a processor does
|
|
25
26
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26
27
|
maskedNode.replacesId = 'p1';
|
|
@@ -36,11 +37,11 @@ describe('ContextWorkingBufferImpl', () => {
|
|
|
36
37
|
expect(buffer.getPristineNodes('m1')).toEqual([pristine1]);
|
|
37
38
|
});
|
|
38
39
|
it('should track N:1 abstractions (e.g., rolling summaries)', () => {
|
|
39
|
-
const p1 = createDummyNode('ep1',
|
|
40
|
-
const p2 = createDummyNode('ep1',
|
|
41
|
-
const p3 = createDummyNode('ep1',
|
|
40
|
+
const p1 = createDummyNode('ep1', NodeType.USER_PROMPT, 10, undefined, 'p1');
|
|
41
|
+
const p2 = createDummyNode('ep1', NodeType.AGENT_THOUGHT, 10, undefined, 'p2');
|
|
42
|
+
const p3 = createDummyNode('ep1', NodeType.USER_PROMPT, 10, undefined, 'p3');
|
|
42
43
|
let buffer = ContextWorkingBufferImpl.initialize([p1, p2, p3]);
|
|
43
|
-
const summaryNode = createDummyNode('ep1',
|
|
44
|
+
const summaryNode = createDummyNode('ep1', NodeType.ROLLING_SUMMARY, 15, undefined, 's1');
|
|
44
45
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
45
46
|
summaryNode.abstractsIds = ['p1', 'p2'];
|
|
46
47
|
buffer = buffer.applyProcessorResult('Summarizer', [p1, p2], [summaryNode]);
|
|
@@ -53,15 +54,15 @@ describe('ContextWorkingBufferImpl', () => {
|
|
|
53
54
|
expect(roots).toContain(p2);
|
|
54
55
|
});
|
|
55
56
|
it('should track multi-generation provenance correctly', () => {
|
|
56
|
-
const p1 = createDummyNode('ep1',
|
|
57
|
+
const p1 = createDummyNode('ep1', NodeType.USER_PROMPT, 10, undefined, 'p1');
|
|
57
58
|
let buffer = ContextWorkingBufferImpl.initialize([p1]);
|
|
58
59
|
// Gen 1: Masked
|
|
59
|
-
const gen1 = createDummyNode('ep1',
|
|
60
|
+
const gen1 = createDummyNode('ep1', NodeType.USER_PROMPT, 8, undefined, 'gen1');
|
|
60
61
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
61
62
|
gen1.replacesId = 'p1';
|
|
62
63
|
buffer = buffer.applyProcessorResult('Masking', [p1], [gen1]);
|
|
63
64
|
// Gen 2: Summarized
|
|
64
|
-
const gen2 = createDummyNode('ep1',
|
|
65
|
+
const gen2 = createDummyNode('ep1', NodeType.ROLLING_SUMMARY, 5, undefined, 'gen2');
|
|
65
66
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
66
67
|
gen2.abstractsIds = ['gen1'];
|
|
67
68
|
buffer = buffer.applyProcessorResult('Summarizer', [gen1], [gen2]);
|
|
@@ -76,14 +77,81 @@ describe('ContextWorkingBufferImpl', () => {
|
|
|
76
77
|
expect(buffer.getPristineNodes('gen2')).toEqual([p1]);
|
|
77
78
|
});
|
|
78
79
|
it('should handle net-new injected nodes without throwing', () => {
|
|
79
|
-
const p1 = createDummyNode('ep1',
|
|
80
|
+
const p1 = createDummyNode('ep1', NodeType.USER_PROMPT, 10, undefined, 'p1');
|
|
80
81
|
let buffer = ContextWorkingBufferImpl.initialize([p1]);
|
|
81
|
-
const injected = createDummyNode('ep1',
|
|
82
|
+
const injected = createDummyNode('ep1', NodeType.SYSTEM_EVENT, 5, undefined, 'injected1');
|
|
82
83
|
// No replacesId or abstractsIds
|
|
83
84
|
buffer = buffer.applyProcessorResult('Injector', [], [injected]);
|
|
84
85
|
expect(buffer.nodes.map((n) => n.id)).toEqual(['p1', 'injected1']);
|
|
85
86
|
// It should root to itself
|
|
86
87
|
expect(buffer.getPristineNodes('injected1')).toEqual([injected]);
|
|
87
88
|
});
|
|
89
|
+
describe('syncPristineHistory', () => {
|
|
90
|
+
it('should append newly discovered pristine nodes to the end of the buffer', () => {
|
|
91
|
+
const p1 = createDummyNode('ep1', NodeType.USER_PROMPT, 10, undefined, 'p1');
|
|
92
|
+
let buffer = ContextWorkingBufferImpl.initialize([p1]);
|
|
93
|
+
const p2 = createDummyNode('ep1', NodeType.AGENT_THOUGHT, 10, undefined, 'p2');
|
|
94
|
+
const p3 = createDummyNode('ep1', NodeType.USER_PROMPT, 10, undefined, 'p3');
|
|
95
|
+
buffer = buffer.syncPristineHistory([p1, p2, p3]);
|
|
96
|
+
expect(buffer.nodes.map((n) => n.id)).toEqual(['p1', 'p2', 'p3']);
|
|
97
|
+
expect(buffer.getPristineNodes('p3')).toEqual([p3]);
|
|
98
|
+
});
|
|
99
|
+
it('should drop working nodes if their pristine root is dropped from authoritative history', () => {
|
|
100
|
+
const p1 = createDummyNode('ep1', NodeType.USER_PROMPT, 10, undefined, 'p1');
|
|
101
|
+
const p2 = createDummyNode('ep1', NodeType.AGENT_THOUGHT, 10, undefined, 'p2');
|
|
102
|
+
let buffer = ContextWorkingBufferImpl.initialize([p1, p2]);
|
|
103
|
+
// Mutate p2 into m2
|
|
104
|
+
const m2 = createDummyNode('ep1', NodeType.AGENT_THOUGHT, 5, undefined, 'm2');
|
|
105
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
106
|
+
m2.replacesId = 'p2';
|
|
107
|
+
buffer = buffer.applyProcessorResult('Masking', [p2], [m2]);
|
|
108
|
+
expect(buffer.nodes.map((n) => n.id)).toEqual(['p1', 'm2']);
|
|
109
|
+
// Upstream graph drops p2 entirely
|
|
110
|
+
buffer = buffer.syncPristineHistory([p1]);
|
|
111
|
+
// m2 should be gone because its root p2 is gone
|
|
112
|
+
expect(buffer.nodes.map((n) => n.id)).toEqual(['p1']);
|
|
113
|
+
});
|
|
114
|
+
it('should correctly weave summarized and mutated nodes into their chronological spots when new nodes arrive', () => {
|
|
115
|
+
// Step 1: Initial state
|
|
116
|
+
const p1 = createDummyNode('ep1', NodeType.USER_PROMPT, 10, undefined, 'p1');
|
|
117
|
+
const p2 = createDummyNode('ep1', NodeType.AGENT_THOUGHT, 10, undefined, 'p2');
|
|
118
|
+
const p3 = createDummyNode('ep1', NodeType.USER_PROMPT, 10, undefined, 'p3');
|
|
119
|
+
let buffer = ContextWorkingBufferImpl.initialize([p1, p2, p3]);
|
|
120
|
+
// Step 2: Mutate p2 into m2
|
|
121
|
+
const m2 = createDummyNode('ep1', NodeType.AGENT_THOUGHT, 5, undefined, 'm2');
|
|
122
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
123
|
+
m2.replacesId = 'p2';
|
|
124
|
+
buffer = buffer.applyProcessorResult('Masking', [p2], [m2]);
|
|
125
|
+
expect(buffer.nodes.map((n) => n.id)).toEqual(['p1', 'm2', 'p3']);
|
|
126
|
+
// Step 3: Upstream adds new nodes (p4, p5)
|
|
127
|
+
const p4 = createDummyNode('ep1', NodeType.AGENT_THOUGHT, 10, undefined, 'p4');
|
|
128
|
+
const p5 = createDummyNode('ep1', NodeType.USER_PROMPT, 10, undefined, 'p5');
|
|
129
|
+
buffer = buffer.syncPristineHistory([p1, p2, p3, p4, p5]);
|
|
130
|
+
// The working buffer should re-order to match the authoritative pristine history (p1, p2, p3, p4, p5)
|
|
131
|
+
// but retain the mutated state (m2 instead of p2).
|
|
132
|
+
// So expected order: p1, m2, p3, p4, p5
|
|
133
|
+
expect(buffer.nodes.map((n) => n.id)).toEqual([
|
|
134
|
+
'p1',
|
|
135
|
+
'm2',
|
|
136
|
+
'p3',
|
|
137
|
+
'p4',
|
|
138
|
+
'p5',
|
|
139
|
+
]);
|
|
140
|
+
});
|
|
141
|
+
it('should drop a non-pristine node if ANY of its multiple pristine roots are dropped from authoritative history', () => {
|
|
142
|
+
const p1 = createDummyNode('ep1', NodeType.USER_PROMPT, 10, undefined, 'p1');
|
|
143
|
+
const p2 = createDummyNode('ep1', NodeType.AGENT_THOUGHT, 10, undefined, 'p2');
|
|
144
|
+
let buffer = ContextWorkingBufferImpl.initialize([p1, p2]);
|
|
145
|
+
const s1 = createDummyNode('ep1', NodeType.ROLLING_SUMMARY, 5, undefined, 's1');
|
|
146
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
147
|
+
s1.abstractsIds = ['p1', 'p2'];
|
|
148
|
+
buffer = buffer.applyProcessorResult('Summarizer', [p1, p2], [s1]);
|
|
149
|
+
expect(buffer.nodes.map((n) => n.id)).toEqual(['s1']);
|
|
150
|
+
// Upstream graph drops p1 but keeps p2
|
|
151
|
+
buffer = buffer.syncPristineHistory([p2]);
|
|
152
|
+
// s1 should be gone because one of its roots (p1) is gone
|
|
153
|
+
expect(buffer.nodes.map((n) => n.id)).toEqual(['p2']);
|
|
154
|
+
});
|
|
155
|
+
});
|
|
88
156
|
});
|
|
89
157
|
//# sourceMappingURL=contextWorkingBuffer.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextWorkingBuffer.test.js","sourceRoot":"","sources":["../../../../src/context/pipeline/contextWorkingBuffer.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"contextWorkingBuffer.test.js","sourceRoot":"","sources":["../../../../src/context/pipeline/contextWorkingBuffer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,9 @@ import type { LiveInbox } from './inbox.js';
|
|
|
11
11
|
import type { NodeBehaviorRegistry } from '../graph/behaviorRegistry.js';
|
|
12
12
|
import type { ContextGraphMapper } from '../graph/mapper.js';
|
|
13
13
|
export type { ContextTracer, ContextEventBus };
|
|
14
|
+
export interface RenderOptions {
|
|
15
|
+
calibrateTokenCalculation?: boolean;
|
|
16
|
+
}
|
|
14
17
|
export interface ContextEnvironment {
|
|
15
18
|
readonly llmClient: BaseLlmClient;
|
|
16
19
|
readonly promptId: string;
|
|
@@ -24,4 +27,5 @@ export interface ContextEnvironment {
|
|
|
24
27
|
readonly inbox: LiveInbox;
|
|
25
28
|
readonly behaviorRegistry: NodeBehaviorRegistry;
|
|
26
29
|
readonly graphMapper: ContextGraphMapper;
|
|
30
|
+
readonly renderOptions?: RenderOptions;
|
|
27
31
|
}
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { BaseLlmClient } from '../../core/baseLlmClient.js';
|
|
7
7
|
import type { ContextTracer } from '../tracer.js';
|
|
8
|
-
import type { ContextEnvironment } from './environment.js';
|
|
8
|
+
import type { ContextEnvironment, RenderOptions } from './environment.js';
|
|
9
9
|
import type { ContextEventBus } from '../eventBus.js';
|
|
10
|
-
import { ContextTokenCalculator } from '../utils/contextTokenCalculator.js';
|
|
10
|
+
import type { ContextTokenCalculator } from '../utils/contextTokenCalculator.js';
|
|
11
11
|
import { LiveInbox } from './inbox.js';
|
|
12
|
-
import { NodeBehaviorRegistry } from '../graph/behaviorRegistry.js';
|
|
12
|
+
import type { NodeBehaviorRegistry } from '../graph/behaviorRegistry.js';
|
|
13
13
|
import { ContextGraphMapper } from '../graph/mapper.js';
|
|
14
14
|
export declare class ContextEnvironmentImpl implements ContextEnvironment {
|
|
15
15
|
private readonly llmClientProvider;
|
|
@@ -21,9 +21,10 @@ export declare class ContextEnvironmentImpl implements ContextEnvironment {
|
|
|
21
21
|
readonly charsPerToken: number;
|
|
22
22
|
readonly eventBus: ContextEventBus;
|
|
23
23
|
readonly tokenCalculator: ContextTokenCalculator;
|
|
24
|
-
readonly inbox: LiveInbox;
|
|
25
24
|
readonly behaviorRegistry: NodeBehaviorRegistry;
|
|
25
|
+
readonly renderOptions?: RenderOptions | undefined;
|
|
26
|
+
readonly inbox: LiveInbox;
|
|
26
27
|
readonly graphMapper: ContextGraphMapper;
|
|
27
|
-
constructor(llmClientProvider: () => BaseLlmClient, sessionId: string, promptId: string, traceDir: string, projectTempDir: string, tracer: ContextTracer, charsPerToken: number, eventBus: ContextEventBus);
|
|
28
|
+
constructor(llmClientProvider: () => BaseLlmClient, sessionId: string, promptId: string, traceDir: string, projectTempDir: string, tracer: ContextTracer, charsPerToken: number, eventBus: ContextEventBus, tokenCalculator: ContextTokenCalculator, behaviorRegistry: NodeBehaviorRegistry, renderOptions?: RenderOptions | undefined);
|
|
28
29
|
get llmClient(): BaseLlmClient;
|
|
29
30
|
}
|
|
@@ -3,10 +3,7 @@
|
|
|
3
3
|
* Copyright 2026 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { ContextTokenCalculator } from '../utils/contextTokenCalculator.js';
|
|
7
6
|
import { LiveInbox } from './inbox.js';
|
|
8
|
-
import { NodeBehaviorRegistry } from '../graph/behaviorRegistry.js';
|
|
9
|
-
import { registerBuiltInBehaviors } from '../graph/builtinBehaviors.js';
|
|
10
7
|
import { ContextGraphMapper } from '../graph/mapper.js';
|
|
11
8
|
export class ContextEnvironmentImpl {
|
|
12
9
|
llmClientProvider;
|
|
@@ -18,10 +15,11 @@ export class ContextEnvironmentImpl {
|
|
|
18
15
|
charsPerToken;
|
|
19
16
|
eventBus;
|
|
20
17
|
tokenCalculator;
|
|
21
|
-
inbox;
|
|
22
18
|
behaviorRegistry;
|
|
19
|
+
renderOptions;
|
|
20
|
+
inbox;
|
|
23
21
|
graphMapper;
|
|
24
|
-
constructor(llmClientProvider, sessionId, promptId, traceDir, projectTempDir, tracer, charsPerToken, eventBus) {
|
|
22
|
+
constructor(llmClientProvider, sessionId, promptId, traceDir, projectTempDir, tracer, charsPerToken, eventBus, tokenCalculator, behaviorRegistry, renderOptions) {
|
|
25
23
|
this.llmClientProvider = llmClientProvider;
|
|
26
24
|
this.sessionId = sessionId;
|
|
27
25
|
this.promptId = promptId;
|
|
@@ -30,11 +28,11 @@ export class ContextEnvironmentImpl {
|
|
|
30
28
|
this.tracer = tracer;
|
|
31
29
|
this.charsPerToken = charsPerToken;
|
|
32
30
|
this.eventBus = eventBus;
|
|
33
|
-
this.
|
|
34
|
-
|
|
35
|
-
this.
|
|
31
|
+
this.tokenCalculator = tokenCalculator;
|
|
32
|
+
this.behaviorRegistry = behaviorRegistry;
|
|
33
|
+
this.renderOptions = renderOptions;
|
|
36
34
|
this.inbox = new LiveInbox();
|
|
37
|
-
this.graphMapper = new ContextGraphMapper(
|
|
35
|
+
this.graphMapper = new ContextGraphMapper();
|
|
38
36
|
}
|
|
39
37
|
get llmClient() {
|
|
40
38
|
return this.llmClientProvider();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environmentImpl.js","sourceRoot":"","sources":["../../../../src/context/pipeline/environmentImpl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"environmentImpl.js","sourceRoot":"","sources":["../../../../src/context/pipeline/environmentImpl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,OAAO,sBAAsB;IAKd;IACR;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAdF,KAAK,CAAY;IACjB,WAAW,CAAqB;IAEzC,YACmB,iBAAsC,EAC9C,SAAiB,EACjB,QAAgB,EAChB,QAAgB,EAChB,cAAsB,EACtB,MAAqB,EACrB,aAAqB,EACrB,QAAyB,EACzB,eAAuC,EACvC,gBAAsC,EACtC,aAA6B;QAVrB,sBAAiB,GAAjB,iBAAiB,CAAqB;QAC9C,cAAS,GAAT,SAAS,CAAQ;QACjB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,mBAAc,GAAd,cAAc,CAAQ;QACtB,WAAM,GAAN,MAAM,CAAe;QACrB,kBAAa,GAAb,aAAa,CAAQ;QACrB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,oBAAe,GAAf,eAAe,CAAwB;QACvC,qBAAgB,GAAhB,gBAAgB,CAAsB;QACtC,kBAAa,GAAb,aAAa,CAAgB;QAEtC,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -8,12 +8,16 @@ import { ContextEnvironmentImpl } from './environmentImpl.js';
|
|
|
8
8
|
import { ContextTracer } from '../tracer.js';
|
|
9
9
|
import { ContextEventBus } from '../eventBus.js';
|
|
10
10
|
import { createMockLlmClient } from '../testing/contextTestUtils.js';
|
|
11
|
+
import { StaticTokenCalculator } from '../utils/contextTokenCalculator.js';
|
|
12
|
+
import { NodeBehaviorRegistry } from '../graph/behaviorRegistry.js';
|
|
11
13
|
describe('ContextEnvironmentImpl', () => {
|
|
12
14
|
it('should initialize with defaults correctly', () => {
|
|
13
15
|
const tracer = new ContextTracer({ targetDir: '/tmp', sessionId: 'mock' });
|
|
14
16
|
const eventBus = new ContextEventBus();
|
|
15
17
|
const mockLlmClient = createMockLlmClient();
|
|
16
|
-
const
|
|
18
|
+
const behaviorRegistry = new NodeBehaviorRegistry();
|
|
19
|
+
const calculator = new StaticTokenCalculator(4, behaviorRegistry);
|
|
20
|
+
const env = new ContextEnvironmentImpl(() => mockLlmClient, 'mock-session', 'mock-prompt', '/tmp/trace', '/tmp/temp', tracer, 4, eventBus, calculator, behaviorRegistry);
|
|
17
21
|
expect(env.llmClient).toBe(mockLlmClient);
|
|
18
22
|
expect(env.sessionId).toBe('mock-session');
|
|
19
23
|
expect(env.promptId).toBe('mock-prompt');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environmentImpl.test.js","sourceRoot":"","sources":["../../../../src/context/pipeline/environmentImpl.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"environmentImpl.test.js","sourceRoot":"","sources":["../../../../src/context/pipeline/environmentImpl.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAElE,MAAM,GAAG,GAAG,IAAI,sBAAsB,CACpC,GAAG,EAAE,CAAC,aAAa,EACnB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,EACX,MAAM,EACN,CAAC,EACD,QAAQ,EACR,UAAU,EACV,gBAAgB,CACjB,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEpC,oBAAoB;QACpB,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -5,18 +5,32 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { ConcreteNode } from '../graph/types.js';
|
|
7
7
|
import type { AsyncPipelineDef, PipelineDef, PipelineTrigger } from '../config/types.js';
|
|
8
|
-
import type { ContextEnvironment,
|
|
8
|
+
import type { ContextEnvironment, ContextTracer } from './environment.js';
|
|
9
|
+
import { ContextWorkingBufferImpl } from './contextWorkingBuffer.js';
|
|
9
10
|
export declare class PipelineOrchestrator {
|
|
10
11
|
private readonly pipelines;
|
|
11
12
|
private readonly asyncPipelines;
|
|
12
13
|
private readonly env;
|
|
13
|
-
private readonly eventBus;
|
|
14
14
|
private readonly tracer;
|
|
15
15
|
private activeTimers;
|
|
16
|
-
|
|
16
|
+
private readonly pendingPipelines;
|
|
17
|
+
private readonly pipelineMutex;
|
|
18
|
+
private readonly pipelineScheduled;
|
|
19
|
+
private nodeProvider;
|
|
20
|
+
constructor(pipelines: PipelineDef[], asyncPipelines: AsyncPipelineDef[], env: ContextEnvironment, tracer: ContextTracer);
|
|
21
|
+
/**
|
|
22
|
+
* Sets the provider for the latest live nodes.
|
|
23
|
+
* This is used by sequential pipeline runs to ensure they operate on current state.
|
|
24
|
+
*/
|
|
25
|
+
setNodeProvider(provider: () => readonly ConcreteNode[]): void;
|
|
26
|
+
/**
|
|
27
|
+
* Returns a promise that resolves when all currently executing async pipelines have finished.
|
|
28
|
+
* This acts as a 'Pressure Barrier' for the ContextManager.
|
|
29
|
+
*/
|
|
30
|
+
waitForPipelines(): Promise<void>;
|
|
17
31
|
private isNodeAllowed;
|
|
18
|
-
|
|
32
|
+
executeTriggerSync(trigger: PipelineTrigger, buffer: ContextWorkingBufferImpl, triggerTargets: ReadonlySet<string>, protectedTurnIds?: ReadonlySet<string>): Promise<ContextWorkingBufferImpl>;
|
|
33
|
+
private executeTriggerAsync;
|
|
34
|
+
private handleAsyncExecution;
|
|
19
35
|
shutdown(): void;
|
|
20
|
-
executeTriggerSync(trigger: PipelineTrigger, nodes: readonly ConcreteNode[], triggerTargets: ReadonlySet<string>, protectedLogicalIds?: ReadonlySet<string>): Promise<readonly ConcreteNode[]>;
|
|
21
|
-
private executePipelineAsync;
|
|
22
36
|
}
|
|
@@ -10,122 +10,139 @@ export class PipelineOrchestrator {
|
|
|
10
10
|
pipelines;
|
|
11
11
|
asyncPipelines;
|
|
12
12
|
env;
|
|
13
|
-
eventBus;
|
|
14
13
|
tracer;
|
|
15
14
|
activeTimers = [];
|
|
16
|
-
|
|
15
|
+
pendingPipelines = new Map();
|
|
16
|
+
pipelineMutex = new Map();
|
|
17
|
+
pipelineScheduled = new Set();
|
|
18
|
+
nodeProvider;
|
|
19
|
+
constructor(pipelines, asyncPipelines, env, tracer) {
|
|
17
20
|
this.pipelines = pipelines;
|
|
18
21
|
this.asyncPipelines = asyncPipelines;
|
|
19
22
|
this.env = env;
|
|
20
|
-
this.eventBus = eventBus;
|
|
21
23
|
this.tracer = tracer;
|
|
22
|
-
|
|
24
|
+
// Background timers not fully implemented in V1 yet
|
|
23
25
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const bindTriggers = (pipelines, executeFn) => {
|
|
31
|
-
for (const pipeline of pipelines) {
|
|
32
|
-
for (const trigger of pipeline.triggers) {
|
|
33
|
-
if (typeof trigger === 'object' && trigger.type === 'timer') {
|
|
34
|
-
const timer = setInterval(() => {
|
|
35
|
-
// Background timers not fully implemented in V1 yet
|
|
36
|
-
}, trigger.intervalMs);
|
|
37
|
-
this.activeTimers.push(timer);
|
|
38
|
-
}
|
|
39
|
-
else if (trigger === 'retained_exceeded' ||
|
|
40
|
-
trigger === 'nodes_aged_out') {
|
|
41
|
-
this.eventBus.onConsolidationNeeded((event) => {
|
|
42
|
-
executeFn(pipeline, event.nodes, event.targetNodeIds, new Set());
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
else if (trigger === 'new_message' || trigger === 'nodes_added') {
|
|
46
|
-
this.eventBus.onChunkReceived((event) => {
|
|
47
|
-
executeFn(pipeline, event.nodes, event.targetNodeIds, new Set());
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
bindTriggers(this.pipelines, (pipeline, nodes, targets, protectedIds) => {
|
|
54
|
-
void this.executePipelineAsync(pipeline, nodes, new Set(targets), new Set(protectedIds));
|
|
55
|
-
});
|
|
56
|
-
bindTriggers(this.asyncPipelines, (pipeline, nodes, targetIds) => {
|
|
57
|
-
const inboxSnapshot = new InboxSnapshotImpl(this.env.inbox.getMessages() || []);
|
|
58
|
-
const targets = nodes.filter((n) => targetIds.has(n.id));
|
|
59
|
-
for (const processor of pipeline.processors) {
|
|
60
|
-
processor
|
|
61
|
-
.process({
|
|
62
|
-
targets,
|
|
63
|
-
inbox: inboxSnapshot,
|
|
64
|
-
buffer: ContextWorkingBufferImpl.initialize(nodes),
|
|
65
|
-
})
|
|
66
|
-
.catch((e) => debugLogger.error(`AsyncProcessor ${processor.name} failed:`, e));
|
|
67
|
-
}
|
|
68
|
-
});
|
|
26
|
+
/**
|
|
27
|
+
* Sets the provider for the latest live nodes.
|
|
28
|
+
* This is used by sequential pipeline runs to ensure they operate on current state.
|
|
29
|
+
*/
|
|
30
|
+
setNodeProvider(provider) {
|
|
31
|
+
this.nodeProvider = provider;
|
|
69
32
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Returns a promise that resolves when all currently executing async pipelines have finished.
|
|
35
|
+
* This acts as a 'Pressure Barrier' for the ContextManager.
|
|
36
|
+
*/
|
|
37
|
+
async waitForPipelines() {
|
|
38
|
+
const pending = Array.from(this.pendingPipelines.values());
|
|
39
|
+
if (pending.length > 0) {
|
|
40
|
+
debugLogger.log(`[PipelineOrchestrator] Waiting for ${pending.length} pending async pipelines to complete...`);
|
|
41
|
+
await Promise.allSettled(pending);
|
|
73
42
|
}
|
|
74
43
|
}
|
|
75
|
-
|
|
76
|
-
|
|
44
|
+
isNodeAllowed(node, triggerTargets, protectedTurnIds = new Set()) {
|
|
45
|
+
return (triggerTargets.has(node.id) &&
|
|
46
|
+
!protectedTurnIds.has(node.id) &&
|
|
47
|
+
!protectedTurnIds.has(node.turnId));
|
|
48
|
+
}
|
|
49
|
+
async executeTriggerSync(trigger, buffer, triggerTargets, protectedTurnIds = new Set()) {
|
|
50
|
+
this.tracer.logEvent('Orchestrator', 'Strategy Intent', {
|
|
51
|
+
trigger,
|
|
52
|
+
totalNodes: buffer.nodes.length,
|
|
53
|
+
targetNodes: triggerTargets.size,
|
|
54
|
+
});
|
|
55
|
+
// First, run any sync pipelines matching this trigger
|
|
56
|
+
let currentBuffer = buffer;
|
|
77
57
|
const triggerPipelines = this.pipelines.filter((p) => p.triggers.includes(trigger));
|
|
78
58
|
// Freeze the inbox for this pipeline run
|
|
79
59
|
const inboxSnapshot = new InboxSnapshotImpl(this.env.inbox.getMessages() || []);
|
|
80
60
|
for (const pipeline of triggerPipelines) {
|
|
81
61
|
for (const processor of pipeline.processors) {
|
|
82
62
|
try {
|
|
83
|
-
this.tracer.logEvent('Orchestrator', `Executing processor synchronously: ${processor.id}
|
|
84
|
-
const allowedTargets = currentBuffer.nodes.filter((n) => this.isNodeAllowed(n, triggerTargets,
|
|
63
|
+
this.tracer.logEvent('Orchestrator', `Executing processor synchronously: ${processor.id}`, { nodeCountBefore: currentBuffer.nodes.length });
|
|
64
|
+
const allowedTargets = currentBuffer.nodes.filter((n) => this.isNodeAllowed(n, triggerTargets, protectedTurnIds));
|
|
85
65
|
const returnedNodes = await processor.process({
|
|
86
66
|
buffer: currentBuffer,
|
|
87
67
|
targets: allowedTargets,
|
|
88
68
|
inbox: inboxSnapshot,
|
|
89
69
|
});
|
|
90
70
|
currentBuffer = currentBuffer.applyProcessorResult(processor.id, allowedTargets, returnedNodes);
|
|
71
|
+
const addedNodes = returnedNodes.filter((n) => !allowedTargets.some((at) => at.id === n.id));
|
|
72
|
+
const removedNodes = allowedTargets.filter((at) => !returnedNodes.some((n) => n.id === at.id));
|
|
73
|
+
this.tracer.logEvent('Orchestrator', 'Transformation Lineage', {
|
|
74
|
+
processorId: processor.id,
|
|
75
|
+
inputNodeCount: allowedTargets.length,
|
|
76
|
+
outputNodeCount: returnedNodes.length,
|
|
77
|
+
removedNodeIds: removedNodes.map((n) => n.id),
|
|
78
|
+
addedNodes: addedNodes.map((n) => ({
|
|
79
|
+
id: n.id,
|
|
80
|
+
replacesId: n.replacesId,
|
|
81
|
+
abstractsIds: n.abstractsIds,
|
|
82
|
+
approxTokens: this.env.tokenCalculator.calculateConcreteListTokens([n]),
|
|
83
|
+
})),
|
|
84
|
+
});
|
|
91
85
|
}
|
|
92
86
|
catch (error) {
|
|
93
87
|
debugLogger.error(`Synchronous processor ${processor.id} failed:`, error);
|
|
94
88
|
}
|
|
95
89
|
}
|
|
96
90
|
}
|
|
91
|
+
// After sync pipelines finish, trigger any matching async pipelines in the background
|
|
92
|
+
void this.executeTriggerAsync(trigger, currentBuffer.nodes, triggerTargets);
|
|
97
93
|
// Success! Drain consumed messages
|
|
98
94
|
this.env.inbox.drainConsumed(inboxSnapshot.getConsumedIds());
|
|
99
|
-
return currentBuffer
|
|
95
|
+
return currentBuffer;
|
|
100
96
|
}
|
|
101
|
-
async
|
|
102
|
-
this.
|
|
103
|
-
|
|
97
|
+
async executeTriggerAsync(trigger, nodes, triggerTargets) {
|
|
98
|
+
const asyncPipelines = this.asyncPipelines.filter((p) => p.triggers.includes(trigger));
|
|
99
|
+
for (const pipeline of asyncPipelines) {
|
|
100
|
+
void this.handleAsyncExecution(pipeline, nodes, triggerTargets);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async handleAsyncExecution(pipeline, nodes, targets) {
|
|
104
|
+
if (this.pipelineScheduled.has(pipeline.name)) {
|
|
104
105
|
return;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
106
|
+
}
|
|
107
|
+
this.pipelineScheduled.add(pipeline.name);
|
|
108
|
+
const existing = this.pipelineMutex.get(pipeline.name) || Promise.resolve();
|
|
109
|
+
const nextPromise = (async () => {
|
|
108
110
|
try {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
111
|
+
await existing;
|
|
112
|
+
this.pipelineScheduled.delete(pipeline.name);
|
|
113
|
+
const latestNodes = this.nodeProvider ? this.nodeProvider() : nodes;
|
|
114
|
+
const latestTargets = latestNodes.filter((n) => targets.has(n.id));
|
|
115
|
+
if (latestTargets.length === 0)
|
|
116
|
+
return;
|
|
117
|
+
debugLogger.log(`[Orchestrator] Executing async pipeline ${pipeline.name}`);
|
|
118
|
+
const inboxSnapshot = new InboxSnapshotImpl(this.env.inbox.getMessages() || []);
|
|
119
|
+
for (const processor of pipeline.processors) {
|
|
120
|
+
await processor.process({
|
|
121
|
+
targets: latestTargets,
|
|
122
|
+
inbox: inboxSnapshot,
|
|
123
|
+
buffer: ContextWorkingBufferImpl.initialize(latestNodes),
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
this.env.inbox.drainConsumed(inboxSnapshot.getConsumedIds());
|
|
122
127
|
}
|
|
123
|
-
catch (
|
|
124
|
-
debugLogger.error(`
|
|
125
|
-
return;
|
|
128
|
+
catch (e) {
|
|
129
|
+
debugLogger.error(`Async pipeline chain ${pipeline.name} failed:`, e);
|
|
126
130
|
}
|
|
131
|
+
})();
|
|
132
|
+
this.pipelineMutex.set(pipeline.name, nextPromise);
|
|
133
|
+
const pipelineId = `${pipeline.name}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
134
|
+
this.pendingPipelines.set(pipelineId, nextPromise);
|
|
135
|
+
void nextPromise.finally(() => {
|
|
136
|
+
this.pendingPipelines.delete(pipelineId);
|
|
137
|
+
if (this.pipelineMutex.get(pipeline.name) === nextPromise) {
|
|
138
|
+
this.pipelineMutex.delete(pipeline.name);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
shutdown() {
|
|
143
|
+
for (const timer of this.activeTimers) {
|
|
144
|
+
clearInterval(timer);
|
|
127
145
|
}
|
|
128
|
-
this.env.inbox.drainConsumed(inboxSnapshot.getConsumedIds());
|
|
129
146
|
}
|
|
130
147
|
}
|
|
131
148
|
//# sourceMappingURL=orchestrator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../../src/context/pipeline/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../../src/context/pipeline/orchestrator.ts"],"names":[],"mappings":"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"}
|