agentfootprint 2.14.5 → 3.1.0
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/README.md +1 -1
- package/dist/cache/CacheDecisionSubflow.js +13 -16
- package/dist/cache/CacheDecisionSubflow.js.map +1 -1
- package/dist/cache/CacheGateDecider.js +18 -3
- package/dist/cache/CacheGateDecider.js.map +1 -1
- package/dist/cache/cacheRecorder.js +12 -3
- package/dist/cache/cacheRecorder.js.map +1 -1
- package/dist/conventions.js +155 -4
- package/dist/conventions.js.map +1 -1
- package/dist/core/Agent.js +115 -32
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/LLMCall.js +213 -41
- package/dist/core/LLMCall.js.map +1 -1
- package/dist/core/RunnerBase.js +187 -0
- package/dist/core/RunnerBase.js.map +1 -1
- package/dist/core/agent/buildAgentChart.js +127 -48
- package/dist/core/agent/buildAgentChart.js.map +1 -1
- package/dist/core/agent/buildAgentMessageApiChart.js +201 -0
- package/dist/core/agent/buildAgentMessageApiChart.js.map +1 -0
- package/dist/core/agent/buildCacheSubflow.js +62 -0
- package/dist/core/agent/buildCacheSubflow.js.map +1 -0
- package/dist/core/agent/buildDynamicAgentChart.js +364 -0
- package/dist/core/agent/buildDynamicAgentChart.js.map +1 -0
- package/dist/core/agent/buildMessageApiChart.js +154 -0
- package/dist/core/agent/buildMessageApiChart.js.map +1 -0
- package/dist/core/agent/stages/callLLM.js +11 -0
- package/dist/core/agent/stages/callLLM.js.map +1 -1
- package/dist/core/agent/stages/reliabilityExecution.js +64 -9
- package/dist/core/agent/stages/reliabilityExecution.js.map +1 -1
- package/dist/core/humanizeLLMError.js +66 -0
- package/dist/core/humanizeLLMError.js.map +1 -0
- package/dist/core/runner.js +4 -3
- package/dist/core/runner.js.map +1 -1
- package/dist/core/slots/buildMessagesSlot.js +2 -2
- package/dist/core/slots/buildMessagesSlot.js.map +1 -1
- package/dist/core/slots/buildSystemPromptSlot.js +1 -1
- package/dist/core/slots/buildSystemPromptSlot.js.map +1 -1
- package/dist/core/slots/buildThinkingSubflow.js +1 -1
- package/dist/core/slots/buildThinkingSubflow.js.map +1 -1
- package/dist/core/slots/buildToolsSlot.js +3 -1
- package/dist/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/core/translator.js +32 -0
- package/dist/core/translator.js.map +1 -0
- package/dist/core-flow/Conditional.js +72 -10
- package/dist/core-flow/Conditional.js.map +1 -1
- package/dist/core-flow/Loop.js +59 -16
- package/dist/core-flow/Loop.js.map +1 -1
- package/dist/core-flow/Parallel.js +239 -92
- package/dist/core-flow/Parallel.js.map +1 -1
- package/dist/core-flow/Sequence.js +50 -8
- package/dist/core-flow/Sequence.js.map +1 -1
- package/dist/esm/cache/CacheDecisionSubflow.js +11 -15
- package/dist/esm/cache/CacheDecisionSubflow.js.map +1 -1
- package/dist/esm/cache/CacheGateDecider.js +18 -3
- package/dist/esm/cache/CacheGateDecider.js.map +1 -1
- package/dist/esm/cache/cacheRecorder.js +12 -3
- package/dist/esm/cache/cacheRecorder.js.map +1 -1
- package/dist/esm/conventions.js +151 -3
- package/dist/esm/conventions.js.map +1 -1
- package/dist/esm/core/Agent.js +116 -33
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/LLMCall.js +213 -41
- package/dist/esm/core/LLMCall.js.map +1 -1
- package/dist/esm/core/RunnerBase.js +187 -0
- package/dist/esm/core/RunnerBase.js.map +1 -1
- package/dist/esm/core/agent/buildAgentChart.js +128 -49
- package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
- package/dist/esm/core/agent/buildAgentMessageApiChart.js +197 -0
- package/dist/esm/core/agent/buildAgentMessageApiChart.js.map +1 -0
- package/dist/esm/core/agent/buildCacheSubflow.js +58 -0
- package/dist/esm/core/agent/buildCacheSubflow.js.map +1 -0
- package/dist/esm/core/agent/buildDynamicAgentChart.js +360 -0
- package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -0
- package/dist/esm/core/agent/buildMessageApiChart.js +150 -0
- package/dist/esm/core/agent/buildMessageApiChart.js.map +1 -0
- package/dist/esm/core/agent/stages/callLLM.js +11 -0
- package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
- package/dist/esm/core/agent/stages/reliabilityExecution.js +64 -9
- package/dist/esm/core/agent/stages/reliabilityExecution.js.map +1 -1
- package/dist/esm/core/humanizeLLMError.js +61 -0
- package/dist/esm/core/humanizeLLMError.js.map +1 -0
- package/dist/esm/core/runner.js +4 -3
- package/dist/esm/core/runner.js.map +1 -1
- package/dist/esm/core/slots/buildMessagesSlot.js +2 -2
- package/dist/esm/core/slots/buildMessagesSlot.js.map +1 -1
- package/dist/esm/core/slots/buildSystemPromptSlot.js +1 -1
- package/dist/esm/core/slots/buildSystemPromptSlot.js.map +1 -1
- package/dist/esm/core/slots/buildThinkingSubflow.js +1 -1
- package/dist/esm/core/slots/buildThinkingSubflow.js.map +1 -1
- package/dist/esm/core/slots/buildToolsSlot.js +3 -1
- package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/core/translator.js +31 -0
- package/dist/esm/core/translator.js.map +1 -0
- package/dist/esm/core-flow/Conditional.js +72 -10
- package/dist/esm/core-flow/Conditional.js.map +1 -1
- package/dist/esm/core-flow/Loop.js +59 -16
- package/dist/esm/core-flow/Loop.js.map +1 -1
- package/dist/esm/core-flow/Parallel.js +240 -93
- package/dist/esm/core-flow/Parallel.js.map +1 -1
- package/dist/esm/core-flow/Sequence.js +50 -8
- package/dist/esm/core-flow/Sequence.js.map +1 -1
- package/dist/esm/events/registry.js +10 -0
- package/dist/esm/events/registry.js.map +1 -1
- package/dist/esm/index.js +22 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.js +16 -9
- package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
- package/dist/esm/memory/causal/snapshotPipeline.js +6 -2
- package/dist/esm/memory/causal/snapshotPipeline.js.map +1 -1
- package/dist/esm/memory/pipeline/auto.js +2 -2
- package/dist/esm/memory/pipeline/auto.js.map +1 -1
- package/dist/esm/memory/pipeline/default.js +4 -2
- package/dist/esm/memory/pipeline/default.js.map +1 -1
- package/dist/esm/memory/pipeline/ephemeral.js +3 -1
- package/dist/esm/memory/pipeline/ephemeral.js.map +1 -1
- package/dist/esm/memory/pipeline/fact.js +4 -2
- package/dist/esm/memory/pipeline/fact.js.map +1 -1
- package/dist/esm/memory/pipeline/narrative.js +4 -2
- package/dist/esm/memory/pipeline/narrative.js.map +1 -1
- package/dist/esm/memory/pipeline/semantic.js +2 -2
- package/dist/esm/memory/pipeline/semantic.js.map +1 -1
- package/dist/esm/observe.js +1 -1
- package/dist/esm/observe.js.map +1 -1
- package/dist/esm/patterns/MapReduce.js +5 -5
- package/dist/esm/patterns/MapReduce.js.map +1 -1
- package/dist/esm/patterns/Swarm.js +1 -1
- package/dist/esm/patterns/Swarm.js.map +1 -1
- package/dist/esm/recorders/core/ContextEvaluatedRecorder.js +31 -0
- package/dist/esm/recorders/core/ContextEvaluatedRecorder.js.map +1 -0
- package/dist/esm/recorders/core/ContextRecorder.js +12 -14
- package/dist/esm/recorders/core/ContextRecorder.js.map +1 -1
- package/dist/esm/recorders/core/ErrorBridge.js +59 -0
- package/dist/esm/recorders/core/ErrorBridge.js.map +1 -0
- package/dist/esm/recorders/core/ReliabilityRecorder.js +29 -0
- package/dist/esm/recorders/core/ReliabilityRecorder.js.map +1 -0
- package/dist/esm/recorders/observability/BoundaryRecorder.js +338 -36
- package/dist/esm/recorders/observability/BoundaryRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/FlowchartRecorder.js +10 -0
- package/dist/esm/recorders/observability/FlowchartRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/LiveStateRecorder.js +120 -21
- package/dist/esm/recorders/observability/LiveStateRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/RunStepRecorder.js +652 -0
- package/dist/esm/recorders/observability/RunStepRecorder.js.map +1 -0
- package/dist/esm/recorders/observability/commentary/commentaryTemplates.js +1 -0
- package/dist/esm/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
- package/dist/esm/recorders/observability/internal/ActorArrowClassifier.js +34 -0
- package/dist/esm/recorders/observability/internal/ActorArrowClassifier.js.map +1 -0
- package/dist/esm/recorders/observability/internal/CandidateAnswerBuffer.js +32 -0
- package/dist/esm/recorders/observability/internal/CandidateAnswerBuffer.js.map +1 -0
- package/dist/esm/recorders/observability/internal/ForkTracker.js +84 -0
- package/dist/esm/recorders/observability/internal/ForkTracker.js.map +1 -0
- package/dist/esm/recorders/observability/internal/RootInferrer.js +114 -0
- package/dist/esm/recorders/observability/internal/RootInferrer.js.map +1 -0
- package/dist/esm/recorders/observability/internal/SequenceSiblingTracker.js +31 -0
- package/dist/esm/recorders/observability/internal/SequenceSiblingTracker.js.map +1 -0
- package/dist/esm/recorders/observability/observeRunId.js +21 -0
- package/dist/esm/recorders/observability/observeRunId.js.map +1 -0
- package/dist/esm/reliability/buildReliabilityGateChart.js +11 -5
- package/dist/esm/reliability/buildReliabilityGateChart.js.map +1 -1
- package/dist/events/registry.js +10 -0
- package/dist/events/registry.js.map +1 -1
- package/dist/index.js +30 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/injection-engine/buildInjectionEngineSubflow.js +16 -9
- package/dist/lib/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
- package/dist/memory/causal/snapshotPipeline.js +6 -2
- package/dist/memory/causal/snapshotPipeline.js.map +1 -1
- package/dist/memory/pipeline/auto.js +2 -2
- package/dist/memory/pipeline/auto.js.map +1 -1
- package/dist/memory/pipeline/default.js +4 -2
- package/dist/memory/pipeline/default.js.map +1 -1
- package/dist/memory/pipeline/ephemeral.js +3 -1
- package/dist/memory/pipeline/ephemeral.js.map +1 -1
- package/dist/memory/pipeline/fact.js +4 -2
- package/dist/memory/pipeline/fact.js.map +1 -1
- package/dist/memory/pipeline/narrative.js +4 -2
- package/dist/memory/pipeline/narrative.js.map +1 -1
- package/dist/memory/pipeline/semantic.js +2 -2
- package/dist/memory/pipeline/semantic.js.map +1 -1
- package/dist/observe.js +1 -1
- package/dist/observe.js.map +1 -1
- package/dist/patterns/MapReduce.js +5 -5
- package/dist/patterns/MapReduce.js.map +1 -1
- package/dist/patterns/Swarm.js +1 -1
- package/dist/patterns/Swarm.js.map +1 -1
- package/dist/recorders/core/ContextEvaluatedRecorder.js +35 -0
- package/dist/recorders/core/ContextEvaluatedRecorder.js.map +1 -0
- package/dist/recorders/core/ContextRecorder.js +11 -13
- package/dist/recorders/core/ContextRecorder.js.map +1 -1
- package/dist/recorders/core/ErrorBridge.js +64 -0
- package/dist/recorders/core/ErrorBridge.js.map +1 -0
- package/dist/recorders/core/ReliabilityRecorder.js +33 -0
- package/dist/recorders/core/ReliabilityRecorder.js.map +1 -0
- package/dist/recorders/observability/BoundaryRecorder.js +337 -35
- package/dist/recorders/observability/BoundaryRecorder.js.map +1 -1
- package/dist/recorders/observability/FlowchartRecorder.js +10 -0
- package/dist/recorders/observability/FlowchartRecorder.js.map +1 -1
- package/dist/recorders/observability/LiveStateRecorder.js +119 -20
- package/dist/recorders/observability/LiveStateRecorder.js.map +1 -1
- package/dist/recorders/observability/RunStepRecorder.js +658 -0
- package/dist/recorders/observability/RunStepRecorder.js.map +1 -0
- package/dist/recorders/observability/commentary/commentaryTemplates.js +1 -0
- package/dist/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
- package/dist/recorders/observability/internal/ActorArrowClassifier.js +38 -0
- package/dist/recorders/observability/internal/ActorArrowClassifier.js.map +1 -0
- package/dist/recorders/observability/internal/CandidateAnswerBuffer.js +36 -0
- package/dist/recorders/observability/internal/CandidateAnswerBuffer.js.map +1 -0
- package/dist/recorders/observability/internal/ForkTracker.js +88 -0
- package/dist/recorders/observability/internal/ForkTracker.js.map +1 -0
- package/dist/recorders/observability/internal/RootInferrer.js +118 -0
- package/dist/recorders/observability/internal/RootInferrer.js.map +1 -0
- package/dist/recorders/observability/internal/SequenceSiblingTracker.js +35 -0
- package/dist/recorders/observability/internal/SequenceSiblingTracker.js.map +1 -0
- package/dist/recorders/observability/observeRunId.js +25 -0
- package/dist/recorders/observability/observeRunId.js.map +1 -0
- package/dist/reliability/buildReliabilityGateChart.js +11 -5
- package/dist/reliability/buildReliabilityGateChart.js.map +1 -1
- package/dist/types/cache/CacheDecisionSubflow.d.ts +7 -10
- package/dist/types/cache/CacheDecisionSubflow.d.ts.map +1 -1
- package/dist/types/cache/CacheGateDecider.d.ts +16 -2
- package/dist/types/cache/CacheGateDecider.d.ts.map +1 -1
- package/dist/types/cache/cacheRecorder.d.ts.map +1 -1
- package/dist/types/conventions.d.ts +101 -1
- package/dist/types/conventions.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts +28 -18
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/LLMCall.d.ts +73 -11
- package/dist/types/core/LLMCall.d.ts.map +1 -1
- package/dist/types/core/RunnerBase.d.ts +136 -4
- package/dist/types/core/RunnerBase.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentChart.d.ts +38 -19
- package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentMessageApiChart.d.ts +41 -0
- package/dist/types/core/agent/buildAgentMessageApiChart.d.ts.map +1 -0
- package/dist/types/core/agent/buildCacheSubflow.d.ts +36 -0
- package/dist/types/core/agent/buildCacheSubflow.d.ts.map +1 -0
- package/dist/types/core/agent/buildDynamicAgentChart.d.ts +57 -0
- package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -0
- package/dist/types/core/agent/buildMessageApiChart.d.ts +48 -0
- package/dist/types/core/agent/buildMessageApiChart.d.ts.map +1 -0
- package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
- package/dist/types/core/agent/stages/reliabilityExecution.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +96 -0
- package/dist/types/core/agent/types.d.ts.map +1 -1
- package/dist/types/core/humanizeLLMError.d.ts +24 -0
- package/dist/types/core/humanizeLLMError.d.ts.map +1 -0
- package/dist/types/core/runner.d.ts +51 -5
- package/dist/types/core/runner.d.ts.map +1 -1
- package/dist/types/core/slots/buildMessagesSlot.d.ts.map +1 -1
- package/dist/types/core/slots/buildSystemPromptSlot.d.ts.map +1 -1
- package/dist/types/core/slots/buildThinkingSubflow.d.ts.map +1 -1
- package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
- package/dist/types/core/translator.d.ts +95 -0
- package/dist/types/core/translator.d.ts.map +1 -0
- package/dist/types/core-flow/Conditional.d.ts +48 -4
- package/dist/types/core-flow/Conditional.d.ts.map +1 -1
- package/dist/types/core-flow/Loop.d.ts +42 -3
- package/dist/types/core-flow/Loop.d.ts.map +1 -1
- package/dist/types/core-flow/Parallel.d.ts +99 -4
- package/dist/types/core-flow/Parallel.d.ts.map +1 -1
- package/dist/types/core-flow/Sequence.d.ts +49 -3
- package/dist/types/core-flow/Sequence.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +99 -1
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/events/registry.d.ts +11 -1
- package/dist/types/events/registry.d.ts.map +1 -1
- package/dist/types/index.d.ts +8 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/buildInjectionEngineSubflow.d.ts.map +1 -1
- package/dist/types/memory/causal/snapshotPipeline.d.ts.map +1 -1
- package/dist/types/memory/pipeline/auto.d.ts.map +1 -1
- package/dist/types/memory/pipeline/default.d.ts.map +1 -1
- package/dist/types/memory/pipeline/ephemeral.d.ts.map +1 -1
- package/dist/types/memory/pipeline/fact.d.ts.map +1 -1
- package/dist/types/memory/pipeline/narrative.d.ts.map +1 -1
- package/dist/types/memory/pipeline/semantic.d.ts.map +1 -1
- package/dist/types/observe.d.ts +2 -2
- package/dist/types/observe.d.ts.map +1 -1
- package/dist/types/recorders/core/ContextEvaluatedRecorder.d.ts +24 -0
- package/dist/types/recorders/core/ContextEvaluatedRecorder.d.ts.map +1 -0
- package/dist/types/recorders/core/ContextRecorder.d.ts +0 -2
- package/dist/types/recorders/core/ContextRecorder.d.ts.map +1 -1
- package/dist/types/recorders/core/ErrorBridge.d.ts +39 -0
- package/dist/types/recorders/core/ErrorBridge.d.ts.map +1 -0
- package/dist/types/recorders/core/ReliabilityRecorder.d.ts +25 -0
- package/dist/types/recorders/core/ReliabilityRecorder.d.ts.map +1 -0
- package/dist/types/recorders/observability/BoundaryRecorder.d.ts +167 -6
- package/dist/types/recorders/observability/BoundaryRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/FlowchartRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/LiveStateRecorder.d.ts +42 -6
- package/dist/types/recorders/observability/LiveStateRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/RunStepRecorder.d.ts +232 -0
- package/dist/types/recorders/observability/RunStepRecorder.d.ts.map +1 -0
- package/dist/types/recorders/observability/commentary/commentaryTemplates.d.ts.map +1 -1
- package/dist/types/recorders/observability/internal/ActorArrowClassifier.d.ts +26 -0
- package/dist/types/recorders/observability/internal/ActorArrowClassifier.d.ts.map +1 -0
- package/dist/types/recorders/observability/internal/CandidateAnswerBuffer.d.ts +29 -0
- package/dist/types/recorders/observability/internal/CandidateAnswerBuffer.d.ts.map +1 -0
- package/dist/types/recorders/observability/internal/ForkTracker.d.ts +61 -0
- package/dist/types/recorders/observability/internal/ForkTracker.d.ts.map +1 -0
- package/dist/types/recorders/observability/internal/RootInferrer.d.ts +52 -0
- package/dist/types/recorders/observability/internal/RootInferrer.d.ts.map +1 -0
- package/dist/types/recorders/observability/internal/SequenceSiblingTracker.d.ts +25 -0
- package/dist/types/recorders/observability/internal/SequenceSiblingTracker.d.ts.map +1 -0
- package/dist/types/recorders/observability/observeRunId.d.ts +37 -0
- package/dist/types/recorders/observability/observeRunId.d.ts.map +1 -0
- package/dist/types/reliability/buildReliabilityGateChart.d.ts.map +1 -1
- package/package.json +6 -5
- package/dist/core/agent/stages/iterationStart.js +0 -24
- package/dist/core/agent/stages/iterationStart.js.map +0 -1
- package/dist/esm/core/agent/stages/iterationStart.js +0 -20
- package/dist/esm/core/agent/stages/iterationStart.js.map +0 -1
- package/dist/types/core/agent/stages/iterationStart.d.ts +0 -16
- package/dist/types/core/agent/stages/iterationStart.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
<p align="center">
|
|
18
18
|
<a href="https://github.com/footprintjs/agentfootprint/actions"><img src="https://github.com/footprintjs/agentfootprint/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
19
|
-
|
|
19
|
+
<!-- coverage-badge --><img src="https://img.shields.io/badge/coverage-87%25-green.svg" alt="coverage: 87%"><!-- /coverage-badge -->
|
|
20
20
|
<a href="https://www.npmjs.com/package/agentfootprint"><img src="https://img.shields.io/npm/v/agentfootprint.svg?style=flat" alt="npm version"></a>
|
|
21
21
|
<a href="https://www.npmjs.com/package/agentfootprint"><img src="https://img.shields.io/npm/dm/agentfootprint.svg" alt="Downloads"></a>
|
|
22
22
|
<a href="https://github.com/footprintjs/agentfootprint/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="MIT"></a>
|
|
@@ -26,8 +26,7 @@
|
|
|
26
26
|
* always-active rules) follow.
|
|
27
27
|
*/
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
30
|
-
const footprintjs_1 = require("footprintjs");
|
|
29
|
+
exports.decideCacheMarkers = exports.computeCacheMarkers = exports.injectionTargetSlots = exports.evaluateCachePolicy = void 0;
|
|
31
30
|
/**
|
|
32
31
|
* Evaluate a `CachePolicy` against the current context.
|
|
33
32
|
* Returns `true` if the policy says THIS iteration's content is cacheable.
|
|
@@ -143,10 +142,13 @@ function computeCacheMarkers(state) {
|
|
|
143
142
|
}
|
|
144
143
|
exports.computeCacheMarkers = computeCacheMarkers;
|
|
145
144
|
/**
|
|
146
|
-
* The decision function. Thin scope-binding wrapper around
|
|
147
|
-
* `computeCacheMarkers`.
|
|
145
|
+
* The decision stage function. Thin scope-binding wrapper around
|
|
146
|
+
* `computeCacheMarkers`. Exported so it can serve as the ROOT stage of
|
|
147
|
+
* the `sf-cache` subflow (a chart cannot start with a nested subflow),
|
|
148
|
+
* while `cacheDecisionSubflow` below still wraps the SAME function for
|
|
149
|
+
* standalone use — no logic duplication.
|
|
148
150
|
*/
|
|
149
|
-
function
|
|
151
|
+
function decideCacheMarkers(scope) {
|
|
150
152
|
scope.cacheMarkers = computeCacheMarkers({
|
|
151
153
|
activeInjections: scope.activeInjections,
|
|
152
154
|
iteration: scope.iteration,
|
|
@@ -158,15 +160,10 @@ function decide(scope) {
|
|
|
158
160
|
cachingDisabled: scope.cachingDisabled,
|
|
159
161
|
});
|
|
160
162
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
* with `arrayMerge: ArrayMergeMode.Replace` on the outputMapper —
|
|
168
|
-
* `cacheMarkers` MUST replace, not concatenate, across iterations
|
|
169
|
-
* (same lesson as the v2.5.1 InjectionEngine fix).
|
|
170
|
-
*/
|
|
171
|
-
exports.cacheDecisionSubflow = (0, footprintjs_1.flowChart)('DecideCacheMarkers', decide, 'decide-cache-markers', undefined, 'CacheDecision: walk activeInjections, evaluate cache directives, emit CacheMarker[]').build();
|
|
163
|
+
exports.decideCacheMarkers = decideCacheMarkers;
|
|
164
|
+
// NOTE: the cache decision is now the ROOT stage of the `sf-cache` subflow
|
|
165
|
+
// (see core/agent/buildCacheSubflow.ts) via the exported `decideCacheMarkers`
|
|
166
|
+
// above. The former standalone `cacheDecisionSubflow` FlowChart export was
|
|
167
|
+
// removed when the agent stopped mounting it directly — `computeCacheMarkers`
|
|
168
|
+
// + `decideCacheMarkers` are the reusable pieces.
|
|
172
169
|
//# sourceMappingURL=CacheDecisionSubflow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheDecisionSubflow.js","sourceRoot":"","sources":["../../src/cache/CacheDecisionSubflow.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;;
|
|
1
|
+
{"version":3,"file":"CacheDecisionSubflow.js","sourceRoot":"","sources":["../../src/cache/CacheDecisionSubflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -102,15 +102,30 @@ exports.cacheGateDecide = cacheGateDecide;
|
|
|
102
102
|
/**
|
|
103
103
|
* Update the skill-history rolling window. Called as a function
|
|
104
104
|
* stage BEFORE the CacheGate decider. Reads the current iteration's
|
|
105
|
-
* active skill (
|
|
106
|
-
* `skillHistory` array.
|
|
105
|
+
* active skill (the MOST-RECENTLY activated one — the TAIL of
|
|
106
|
+
* `activatedInjectionIds`) and appends it to the `skillHistory` array.
|
|
107
|
+
*
|
|
108
|
+
* WHY THE TAIL, NOT THE HEAD: `read_skill` APPENDS each newly-activated
|
|
109
|
+
* skill to the end of `activatedInjectionIds`, and the list is cumulative
|
|
110
|
+
* + deduped per turn (reset only at seed). So the HEAD is frozen at the
|
|
111
|
+
* FIRST skill activated and never changes mid-turn — sampling it made the
|
|
112
|
+
* window record one constant value, so `detectSkillChurn` could never fire
|
|
113
|
+
* (the skill-churn cache rule was effectively dead). The tail tracks what
|
|
114
|
+
* the agent just switched to, which is the churn signal we actually want.
|
|
115
|
+
*
|
|
116
|
+
* KNOWN LIMITATION: if several skills are activated in the SAME iteration,
|
|
117
|
+
* only the last (tail) is recorded for that iteration — churn can
|
|
118
|
+
* under-count a multi-skill burst. A fully order-independent signal would
|
|
119
|
+
* read `activatedInjectionIds.length` directly in the gate; that is a
|
|
120
|
+
* larger change deferred for now.
|
|
107
121
|
*
|
|
108
122
|
* Window length is bounded at `SKILL_CHURN_WINDOW * 2` so the array
|
|
109
123
|
* doesn't grow unboundedly across long agent runs. Old entries
|
|
110
124
|
* fall off the front naturally.
|
|
111
125
|
*/
|
|
112
126
|
function updateSkillHistory(scope) {
|
|
113
|
-
const
|
|
127
|
+
const ids = scope.activatedInjectionIds ?? [];
|
|
128
|
+
const current = ids.length > 0 ? ids[ids.length - 1] : undefined;
|
|
114
129
|
const prior = scope.skillHistory ?? [];
|
|
115
130
|
const next = [...prior, current];
|
|
116
131
|
// Bounded buffer — keep window*2 to give detectSkillChurn room
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheGateDecider.js","sourceRoot":"","sources":["../../src/cache/CacheGateDecider.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;AAEH,6CAA2E;AA6B3E;;;;;;;;;;;;GAYG;AACU,QAAA,cAAc,GAAG,GAAG,CAAC;AAElC;;;GAGG;AACU,QAAA,kBAAkB,GAAG,CAAC,CAAC;AAEpC;;;;GAIG;AACU,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAEvC;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,OAAwC,EACxC,aAAqB,0BAAkB,EACvC,YAAoB,6BAAqB;IAEzC,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,yBAAyB;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,SAAS;YAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,IAAI,SAAS,CAAC;AACxC,CAAC;AAZD,4CAYC;AAQD;;;;;;;;;;;GAWG;AACH,SAAgB,eAAe,CAAC,KAAiC;IAC/D,OAAO,IAAA,oBAAM,EACX,KAAK,EACL;QACE;YACE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,IAAI;YACvC,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,uDAAuD;SAC/D;QACD;YACE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,CAAC,aAAa,GAAG,sBAAc;YAC9E,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,cAAc,sBAAc,GAAG,GAAG,kBAAkB;SAC5D;QACD;YACE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC;YAC7C,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,iBAAiB,6BAAqB,0BAA0B,0BAAkB,SAAS;SACnG;KACF,EACD,eAAe,CAChB,CAAC;AACJ,CAAC;AAtBD,0CAsBC;AAED
|
|
1
|
+
{"version":3,"file":"CacheGateDecider.js","sourceRoot":"","sources":["../../src/cache/CacheGateDecider.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;AAEH,6CAA2E;AA6B3E;;;;;;;;;;;;GAYG;AACU,QAAA,cAAc,GAAG,GAAG,CAAC;AAElC;;;GAGG;AACU,QAAA,kBAAkB,GAAG,CAAC,CAAC;AAEpC;;;;GAIG;AACU,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAEvC;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,OAAwC,EACxC,aAAqB,0BAAkB,EACvC,YAAoB,6BAAqB;IAEzC,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,yBAAyB;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,SAAS;YAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,IAAI,SAAS,CAAC;AACxC,CAAC;AAZD,4CAYC;AAQD;;;;;;;;;;;GAWG;AACH,SAAgB,eAAe,CAAC,KAAiC;IAC/D,OAAO,IAAA,oBAAM,EACX,KAAK,EACL;QACE;YACE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,IAAI;YACvC,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,uDAAuD;SAC/D;QACD;YACE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,CAAC,aAAa,GAAG,sBAAc;YAC9E,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,cAAc,sBAAc,GAAG,GAAG,kBAAkB;SAC5D;QACD;YACE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC;YAC7C,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,iBAAiB,6BAAqB,0BAA0B,0BAAkB,SAAS;SACnG;KACF,EACD,eAAe,CAChB,CAAC;AACJ,CAAC;AAtBD,0CAsBC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,kBAAkB,CAChC,KAGE;IAEF,MAAM,GAAG,GAAG,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC;IACjC,+DAA+D;IAC/D,mDAAmD;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,0BAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,0BAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC;AAC/B,CAAC;AAdD,gDAcC"}
|
|
@@ -28,6 +28,8 @@
|
|
|
28
28
|
*/
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
30
|
exports.cacheRecorder = void 0;
|
|
31
|
+
const trace_1 = require("footprintjs/trace");
|
|
32
|
+
const conventions_js_1 = require("../conventions.js");
|
|
31
33
|
function cacheRecorder(options = {}) {
|
|
32
34
|
const perIter = [];
|
|
33
35
|
let lastDecision;
|
|
@@ -41,9 +43,16 @@ function cacheRecorder(options = {}) {
|
|
|
41
43
|
const handle = {
|
|
42
44
|
id: 'cache-recorder',
|
|
43
45
|
onDecision(event) {
|
|
44
|
-
// Only care about CacheGate decisions
|
|
45
|
-
//
|
|
46
|
-
|
|
46
|
+
// Only care about CacheGate decisions, matched by the decider's LOCAL
|
|
47
|
+
// stage id. Both `event.decider` (the node NAME) and the prefixed
|
|
48
|
+
// `traversalContext.stageId` become `sf-cache/…` now that CacheGate is
|
|
49
|
+
// nested in sf-cache, so we strip the subflow path with splitStageId and
|
|
50
|
+
// compare the local id. This is id-stable (survives a display-name
|
|
51
|
+
// rename) and nesting-safe (works top-level or inside sf-cache).
|
|
52
|
+
// (The old `event.decider !== 'cache-gate'` was a no-op: event.decider is
|
|
53
|
+
// the NAME 'CacheGate', never the id 'cache-gate'.)
|
|
54
|
+
const stageId = event.traversalContext?.stageId;
|
|
55
|
+
if (!stageId || (0, trace_1.splitStageId)(stageId).localStageId !== conventions_js_1.STAGE_IDS.CACHE_GATE)
|
|
47
56
|
return;
|
|
48
57
|
const matched = event.evidence?.rules.find((r) => r.matched);
|
|
49
58
|
lastDecision = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheRecorder.js","sourceRoot":"","sources":["../../src/cache/cacheRecorder.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;
|
|
1
|
+
{"version":3,"file":"cacheRecorder.js","sourceRoot":"","sources":["../../src/cache/cacheRecorder.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;AAIH,6CAAiD;AACjD,sDAA8C;AA8D9C,SAAgB,aAAa,CAAC,UAAgC,EAAE;IAC9D,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,YAAmF,CAAC;IACxF,IAAI,gBAAgB,GAAG,CAAC,CAAC;IAEzB,SAAS,OAAO,CAAC,MAAc,EAAE,IAA0C;QACzE,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;QACzC,OAAO,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,MAAM,GAAG;QACb,EAAE,EAAE,gBAAgB;QAEpB,UAAU,CAAC,KAAwB;YACjC,sEAAsE;YACtE,kEAAkE;YAClE,uEAAuE;YACvE,yEAAyE;YACzE,mEAAmE;YACnE,iEAAiE;YACjE,0EAA0E;YAC1E,oDAAoD;YACpD,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,EAAE,OAAO,CAAC;YAChD,IAAI,CAAC,OAAO,IAAI,IAAA,oBAAY,EAAC,OAAO,CAAC,CAAC,YAAY,KAAK,0BAAS,CAAC,UAAU;gBAAE,OAAO;YACpF,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC7D,YAAY,GAAG;gBACb,MAAM,EAAE,KAAK,CAAC,MAAwC;gBACtD,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;aAC7D,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAA0B;YAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,+BAA+B;gBAAE,OAAO;YAC3D,gBAAgB,EAAE,CAAC;YACnB,MAAM,KAAK,GAAI,KAAK,CAAC,OAA+B,CAAC,KAAK,CAAC;YAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,YAAY,EAAE,MAAM,IAAI,eAAe,CAAC;YACvD,uBAAuB;YACvB,oCAAoC;YACpC,uCAAuC;YACvC,yCAAyC;YACzC,uEAAuE;YACvE,yCAAyC;YACzC,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY;oBACV,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC;wBAC1C,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC;wBAC7C,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;gBAClD,MAAM,WAAW,GAAG,OAAO,CACzB,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,gBAAgB,EAC7E,OAAO,CACR,CAAC;gBACF,cAAc,GAAG,WAAW,GAAG,YAAY,CAAC;YAC9C,CAAC;YACD,MAAM,KAAK,GAAiB;gBAC1B,SAAS,EAAE,gBAAgB;gBAC3B,MAAM;gBACN,GAAG,CAAC,YAAY,EAAE,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC;gBACpE,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;gBACzC,YAAY;gBACZ,qBAAqB,EAAE,cAAc;aACtC,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,YAAY,GAAG,SAAS,CAAC;QAC3B,CAAC;QAED,MAAM;YACJ,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,eAAe,CAAC,CAAC,MAAM,CAAC;YACzE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,MAAM,CAAC;YACrE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,eAAe,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrF,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,gBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,gBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClF,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC;YACpD,MAAM,OAAO,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACrE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;YAC9E,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,eAAe,EAAE,OAAO,CAAC,MAAM;gBAC/B,sBAAsB,EAAE,KAAK;gBAC7B,mBAAmB,EAAE,IAAI;gBACzB,oBAAoB,EAAE,SAAS;gBAC/B,qBAAqB,EAAE,UAAU;gBACjC,qBAAqB,EAAE,KAAK;gBAC5B,OAAO;gBACP,qBAAqB,EAAE,YAAY;gBACnC,8BAA8B,EAAE,YAAY;gBAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;QAED,KAAK;YACH,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACnB,YAAY,GAAG,SAAS,CAAC;YACzB,gBAAgB,GAAG,CAAC,CAAC;QACvB,CAAC;KACF,CAAC;IAEF,OAAO,MAAwC,CAAC;AAClD,CAAC;AArGD,sCAqGC"}
|
package/dist/conventions.js
CHANGED
|
@@ -11,12 +11,17 @@
|
|
|
11
11
|
* Rename any ID here → both builders and recorders stay in sync.
|
|
12
12
|
*/
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.isInjectionKey = exports.injectionKeyForSlot = exports.INJECTION_KEYS = exports.isKnownStage = exports.isKnownSubflow = exports.slotFromSubflowId = exports.isSlotSubflow = exports.STAGE_IDS = exports.SUBFLOW_IDS = void 0;
|
|
14
|
+
exports.isInjectionKey = exports.injectionKeyForSlot = exports.INJECTION_KEYS = exports.milestoneFor = exports.stageRole = exports.isKnownStage = exports.isKnownSubflow = exports.slotFromRuntimeStageId = exports.slotFromSubflowId = exports.isSlotSubflow = exports.STAGE_IDS = exports.SUBFLOW_IDS = void 0;
|
|
15
|
+
const trace_1 = require("footprintjs/trace");
|
|
15
16
|
/** Subflow IDs — mounted by builders, observed by recorders. */
|
|
16
17
|
exports.SUBFLOW_IDS = {
|
|
17
18
|
/** Injection Engine subflow. Evaluates every Injection's trigger
|
|
18
19
|
* and writes activeInjections[] for the slot subflows to consume. */
|
|
19
20
|
INJECTION_ENGINE: 'sf-injection-engine',
|
|
21
|
+
/** Inner subflow inside LLMCall that wraps the invocation
|
|
22
|
+
* (seed + slots + call-llm + optional thinking + extract-final).
|
|
23
|
+
* Mounted by LLMCall's outer `client` chart. */
|
|
24
|
+
LLM_CALL: 'sf-llm-call',
|
|
20
25
|
/** System-prompt slot subflow. Observed by ContextRecorder. */
|
|
21
26
|
SYSTEM_PROMPT: 'sf-system-prompt',
|
|
22
27
|
/** Messages slot subflow. */
|
|
@@ -35,8 +40,18 @@ exports.SUBFLOW_IDS = {
|
|
|
35
40
|
* decider returns `'final'` as a routing value AND the same string
|
|
36
41
|
* becomes the subflow's id. */
|
|
37
42
|
FINAL: 'final',
|
|
43
|
+
/** Cache subflow (v2.14). Wraps the whole per-turn cache machinery —
|
|
44
|
+
* decide markers → CacheGate decider → apply/skip — as ONE collapsible
|
|
45
|
+
* boundary in the chart. Provider-independent decision layer; the
|
|
46
|
+
* attached provider's CacheStrategy turns markers into wire format.
|
|
47
|
+
* UpdateSkillHistory stays OUTSIDE (in the main loop) so the rolling
|
|
48
|
+
* skillHistory window persists across iterations without round-tripping
|
|
49
|
+
* through this subflow. */
|
|
50
|
+
CACHE: 'sf-cache',
|
|
38
51
|
/** Cache decision subflow (v2.6). Walks activeInjections, emits
|
|
39
|
-
* agnostic CacheMarker[]. Provider-independent.
|
|
52
|
+
* agnostic CacheMarker[]. Provider-independent. Standalone building
|
|
53
|
+
* block; the agent now uses the `decideCacheMarkers` stage inside
|
|
54
|
+
* `sf-cache` instead of mounting this directly. */
|
|
40
55
|
CACHE_DECISION: 'sf-cache-decision',
|
|
41
56
|
/** Thinking-normalization mount (v2.14). Wraps the consumer's
|
|
42
57
|
* ThinkingHandler.normalize() in a real footprintjs subflow so it
|
|
@@ -49,7 +64,24 @@ exports.SUBFLOW_IDS = {
|
|
|
49
64
|
/** Stage IDs — plain function stages that builders mount. */
|
|
50
65
|
exports.STAGE_IDS = {
|
|
51
66
|
SEED: 'seed',
|
|
67
|
+
/** Context-assembly selector stage. Runs AFTER InjectionEngine and
|
|
68
|
+
* fans the 3 slot subflows (system-prompt / messages / tools) out in
|
|
69
|
+
* PARALLEL (selector picks all 3 every iteration; failFast so a
|
|
70
|
+
* required slot's throw aborts the turn). They converge before
|
|
71
|
+
* CacheDecision. Shared by buildAgentChart + buildDynamicAgentChart;
|
|
72
|
+
* the flat viz proof chart uses the same id as its root selector. */
|
|
73
|
+
CONTEXT: 'context',
|
|
74
|
+
/** Outer "client" stage in LLMCall's wrapped chart. Receives args on
|
|
75
|
+
* the first visit, $break()s on the second (post-loop) visit with
|
|
76
|
+
* the LLM answer as TraversalResult. This is the lens-friendly
|
|
77
|
+
* affordance — the User pill maps to this stage. */
|
|
78
|
+
CLIENT: 'client',
|
|
52
79
|
CALL_LLM: 'call-llm',
|
|
80
|
+
/** Final-response extraction stage that runs after CallLLM (and
|
|
81
|
+
* optional sf-thinking). For LLMCall this is mostly symmetric with
|
|
82
|
+
* Agent's `sf-final` branch — gives lens a "Final" node and a
|
|
83
|
+
* clear commit boundary marking "we have the answer." */
|
|
84
|
+
EXTRACT_FINAL: 'extract-final',
|
|
53
85
|
FINAL: 'final',
|
|
54
86
|
FORMAT_MERGE: 'format-merge',
|
|
55
87
|
MERGE_LLM: 'merge-llm',
|
|
@@ -82,8 +114,8 @@ function slotFromSubflowId(id) {
|
|
|
82
114
|
// (e.g., 'llm-call-internals/sf-system-prompt' when a slot subflow
|
|
83
115
|
// is mounted inside a wrapper subflow). Match the LAST segment so
|
|
84
116
|
// the convention works at any nesting depth.
|
|
85
|
-
const
|
|
86
|
-
switch (
|
|
117
|
+
const { localStageId } = (0, trace_1.splitStageId)(id);
|
|
118
|
+
switch (localStageId) {
|
|
87
119
|
case exports.SUBFLOW_IDS.SYSTEM_PROMPT:
|
|
88
120
|
return 'system-prompt';
|
|
89
121
|
case exports.SUBFLOW_IDS.MESSAGES:
|
|
@@ -95,6 +127,30 @@ function slotFromSubflowId(id) {
|
|
|
95
127
|
}
|
|
96
128
|
}
|
|
97
129
|
exports.slotFromSubflowId = slotFromSubflowId;
|
|
130
|
+
/**
|
|
131
|
+
* Resolve the context slot a scope write belongs to FROM THE WRITE'S OWN
|
|
132
|
+
* `runtimeStageId` — not from a "currently-open slot" stack.
|
|
133
|
+
*
|
|
134
|
+
* Why: once the 3 slot subflows run in PARALLEL (selector fan-out), their
|
|
135
|
+
* entry/write/exit events INTERLEAVE — a stack top is unreliable, so a write
|
|
136
|
+
* inside `sf-messages` could be attributed to (or dropped against)
|
|
137
|
+
* `sf-tools`. The write's `runtimeStageId` (`[subflowPath/]stageId#index`)
|
|
138
|
+
* always encodes which slot subflow enclosed it; we scan the path segments
|
|
139
|
+
* innermost-first for a slot id. Matches the sequential result exactly
|
|
140
|
+
* (the write is still inside its own slot), so it is behavior-preserving.
|
|
141
|
+
*/
|
|
142
|
+
function slotFromRuntimeStageId(runtimeStageId) {
|
|
143
|
+
// Strip the `#index` suffix, then walk `[subflowPath/]stageId` segments.
|
|
144
|
+
const path = runtimeStageId.split('#', 1)[0];
|
|
145
|
+
const segments = path.split('/');
|
|
146
|
+
for (let i = segments.length - 1; i >= 0; i--) {
|
|
147
|
+
const slot = slotFromSubflowId(segments[i]);
|
|
148
|
+
if (slot)
|
|
149
|
+
return slot;
|
|
150
|
+
}
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
exports.slotFromRuntimeStageId = slotFromRuntimeStageId;
|
|
98
154
|
/** True when an id is any of the library's known subflow IDs. */
|
|
99
155
|
function isKnownSubflow(id) {
|
|
100
156
|
return Object.values(exports.SUBFLOW_IDS).includes(id);
|
|
@@ -105,6 +161,101 @@ function isKnownStage(id) {
|
|
|
105
161
|
return Object.values(exports.STAGE_IDS).includes(id);
|
|
106
162
|
}
|
|
107
163
|
exports.isKnownStage = isKnownStage;
|
|
164
|
+
/** Mechanism stages — present so the run works, not what the user reads. */
|
|
165
|
+
const PLUMBING_LOCAL_IDS = new Set([
|
|
166
|
+
exports.SUBFLOW_IDS.INJECTION_ENGINE,
|
|
167
|
+
exports.SUBFLOW_IDS.LLM_CALL, // wrapper; the hero is the `call-llm` stage INSIDE it
|
|
168
|
+
exports.SUBFLOW_IDS.ROUTE,
|
|
169
|
+
exports.SUBFLOW_IDS.MERGE,
|
|
170
|
+
exports.SUBFLOW_IDS.CACHE,
|
|
171
|
+
exports.SUBFLOW_IDS.CACHE_DECISION,
|
|
172
|
+
exports.SUBFLOW_IDS.THINKING,
|
|
173
|
+
exports.STAGE_IDS.CONTEXT, // the selector fan-out point; its 3 slot children are the heroes
|
|
174
|
+
exports.STAGE_IDS.CLIENT,
|
|
175
|
+
exports.STAGE_IDS.EXTRACT_FINAL,
|
|
176
|
+
exports.STAGE_IDS.FORMAT_MERGE,
|
|
177
|
+
exports.STAGE_IDS.EXTRACT_MERGE,
|
|
178
|
+
exports.STAGE_IDS.UPDATE_SKILL_HISTORY,
|
|
179
|
+
exports.STAGE_IDS.CACHE_GATE,
|
|
180
|
+
exports.STAGE_IDS.APPLY_MARKERS,
|
|
181
|
+
exports.STAGE_IDS.SKIP_CACHING,
|
|
182
|
+
exports.STAGE_IDS.BUILD_LLM_REQUEST,
|
|
183
|
+
]);
|
|
184
|
+
/** Neutral chart boundaries — entry/exit, rendered normally (not muted). */
|
|
185
|
+
const BOUNDARY_LOCAL_IDS = new Set([
|
|
186
|
+
exports.STAGE_IDS.SEED, // 'Initialize' — chart root / Agent boundary
|
|
187
|
+
exports.STAGE_IDS.FINAL, // 'final' (=== SUBFLOW_IDS.FINAL)
|
|
188
|
+
]);
|
|
189
|
+
/**
|
|
190
|
+
* Classify a stage id into its {@link StageRole}. Accepts a path-qualified id
|
|
191
|
+
* (`sf-llm-call/call-llm`) — only the LOCAL segment matters, so it works at
|
|
192
|
+
* any nesting depth. Built entirely from the id constants above, so adding a
|
|
193
|
+
* stage to the chart only requires listing it here.
|
|
194
|
+
*/
|
|
195
|
+
function stageRole(id) {
|
|
196
|
+
const { localStageId } = (0, trace_1.splitStageId)(id);
|
|
197
|
+
if (isSlotSubflow(localStageId))
|
|
198
|
+
return 'hero-slot';
|
|
199
|
+
if (localStageId === exports.STAGE_IDS.CALL_LLM || localStageId === exports.STAGE_IDS.MERGE_LLM)
|
|
200
|
+
return 'hero-llm';
|
|
201
|
+
// Tool execution mounts under the bare branch key 'tool-calls' in shipped
|
|
202
|
+
// charts; SUBFLOW_IDS.TOOL_CALLS is the reserved prefixed form.
|
|
203
|
+
if (localStageId === 'tool-calls' || localStageId === exports.SUBFLOW_IDS.TOOL_CALLS)
|
|
204
|
+
return 'hero-action';
|
|
205
|
+
if (BOUNDARY_LOCAL_IDS.has(localStageId))
|
|
206
|
+
return 'boundary';
|
|
207
|
+
if (PLUMBING_LOCAL_IDS.has(localStageId))
|
|
208
|
+
return 'plumbing';
|
|
209
|
+
return 'boundary'; // unknown → neutral (never silently muted)
|
|
210
|
+
}
|
|
211
|
+
exports.stageRole = stageRole;
|
|
212
|
+
/**
|
|
213
|
+
* Classify a stage id into a {@link Milestone}, or `null` when the stage is NOT
|
|
214
|
+
* a milestone boundary (its commits fold into the surrounding milestone's
|
|
215
|
+
* collection). This is the DOMAIN's declaration of which steps are scrub-worthy;
|
|
216
|
+
* the Lens consumes it to build the time-travel slider (see
|
|
217
|
+
* agentfootprint-lens `cursorPositionsAtDrill`).
|
|
218
|
+
*
|
|
219
|
+
* Mirrors {@link stageRole}: accepts a runtimeStageId (`call-llm#17`), a
|
|
220
|
+
* path-qualified id (`sf-llm-call/call-llm`), or a bare local id — only the
|
|
221
|
+
* LOCAL stage segment matters, so it works at any nesting depth and for both
|
|
222
|
+
* commit ids and subflow-group ids.
|
|
223
|
+
*/
|
|
224
|
+
function milestoneFor(id) {
|
|
225
|
+
// Strip the `#executionIndex` suffix (runtimeStageId form) before decomposing
|
|
226
|
+
// the path prefix — splitStageId expects the segment before `#`.
|
|
227
|
+
const beforeHash = id.includes('#') ? id.slice(0, id.indexOf('#')) : id;
|
|
228
|
+
const { localStageId } = (0, trace_1.splitStageId)(beforeHash);
|
|
229
|
+
switch (localStageId) {
|
|
230
|
+
// Loop entry — one per ReAct iteration. INJECTION_ENGINE is the flat loop
|
|
231
|
+
// target; LLM_CALL is the subflow-shape loop target.
|
|
232
|
+
case exports.SUBFLOW_IDS.INJECTION_ENGINE:
|
|
233
|
+
case exports.SUBFLOW_IDS.LLM_CALL:
|
|
234
|
+
return { kind: 'iteration', label: 'Iteration' };
|
|
235
|
+
// Context slots — one stop per slot that was engineered THIS iteration. In
|
|
236
|
+
// dynamic mode all three appear every turn; in classic mode only the slot
|
|
237
|
+
// that actually re-ran (Messages) appears after turn 1 — so scrubbing shows
|
|
238
|
+
// exactly "which slot got updated."
|
|
239
|
+
case exports.SUBFLOW_IDS.SYSTEM_PROMPT:
|
|
240
|
+
return { kind: 'slot', label: 'System prompt' };
|
|
241
|
+
case exports.SUBFLOW_IDS.MESSAGES:
|
|
242
|
+
return { kind: 'slot', label: 'Messages' };
|
|
243
|
+
case exports.SUBFLOW_IDS.TOOLS:
|
|
244
|
+
return { kind: 'slot', label: 'Tools' };
|
|
245
|
+
case exports.STAGE_IDS.CALL_LLM:
|
|
246
|
+
case exports.STAGE_IDS.MERGE_LLM:
|
|
247
|
+
return { kind: 'llm-turn', label: 'LLM turn' };
|
|
248
|
+
// Tool execution mounts under the bare branch key 'tool-calls'.
|
|
249
|
+
case 'tool-calls':
|
|
250
|
+
case exports.SUBFLOW_IDS.TOOL_CALLS:
|
|
251
|
+
return { kind: 'tool-call', label: 'Tool call' };
|
|
252
|
+
case exports.SUBFLOW_IDS.ROUTE:
|
|
253
|
+
return { kind: 'decision', label: 'Route' };
|
|
254
|
+
default:
|
|
255
|
+
return null;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
exports.milestoneFor = milestoneFor;
|
|
108
259
|
/**
|
|
109
260
|
* Scope-key convention for context injections.
|
|
110
261
|
*
|
package/dist/conventions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conventions.js","sourceRoot":"","sources":["../src/conventions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;
|
|
1
|
+
{"version":3,"file":"conventions.js","sourceRoot":"","sources":["../src/conventions.ts"],"names":[],"mappings":"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"}
|