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/dist/core/LLMCall.js
CHANGED
|
@@ -1,23 +1,52 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* LLMCall — the leaf primitive for a single LLM invocation (no tools
|
|
3
|
+
* LLMCall — the leaf primitive for a single LLM invocation (no tools).
|
|
4
4
|
*
|
|
5
5
|
* Pattern: Builder (GoF) → produces a Runner backed by a footprintjs FlowChart.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
6
|
+
*
|
|
7
|
+
* Chart shape — outer client wrapper around an inner llm-subflow:
|
|
8
|
+
*
|
|
9
|
+
* Client → sf-llm-call → loopTo(client)
|
|
10
|
+
*
|
|
11
|
+
* Outer `Client` stage:
|
|
12
|
+
* - First visit: receives args, writes userMessage to scope.
|
|
13
|
+
* - Second visit (after the loop completes): $break()s with
|
|
14
|
+
* scope.answer as the chart's TraversalResult.
|
|
15
|
+
*
|
|
16
|
+
* Inner `sf-llm-call` subflow (drill-down view):
|
|
17
|
+
* Initialize → sf-system-prompt → sf-messages → call-llm
|
|
18
|
+
* → [sf-thinking if handler] → extract-final
|
|
19
|
+
*
|
|
20
|
+
* NO `sf-tools` slot — LLMCall has no tools by design (that's Agent's
|
|
21
|
+
* territory). Atomic LLMCall's lens chart is a clean 3-node top-level
|
|
22
|
+
* view (Client + LLM + loop edge) that drills into the real flowchart
|
|
23
|
+
* below.
|
|
24
|
+
*
|
|
25
|
+
* Loop semantics: LLMCall is one-shot. The loop fires once; the
|
|
26
|
+
* second Client visit immediately breaks. The shape is identical to
|
|
27
|
+
* chat-mode (future): swap `$break()` for `pause()` and the same
|
|
28
|
+
* chart supports multi-turn conversation.
|
|
29
|
+
*
|
|
30
|
+
* Slot subflows write convention-keyed injections observed by
|
|
31
|
+
* ContextRecorder. The call-llm stage typedEmits stream.llm_start
|
|
32
|
+
* and stream.llm_end observed by StreamRecorder. When a
|
|
33
|
+
* `ThinkingHandler` resolves for the provider, `sf-thinking` mounts
|
|
34
|
+
* automatically (auto-wired by provider.name — same convention Agent
|
|
35
|
+
* uses).
|
|
36
|
+
*
|
|
37
|
+
* Emits (through internally-attached recorders):
|
|
38
|
+
* agentfootprint.stream.llm_start / llm_end
|
|
39
|
+
* agentfootprint.context.injected / slot_composed
|
|
40
|
+
* agentfootprint.stream.thinking_end (when sf-thinking mounted)
|
|
14
41
|
*/
|
|
15
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
43
|
exports.LLMCallBuilder = exports.LLMCall = void 0;
|
|
17
44
|
const footprintjs_1 = require("footprintjs");
|
|
45
|
+
const advanced_1 = require("footprintjs/advanced");
|
|
18
46
|
const conventions_js_1 = require("../conventions.js");
|
|
19
47
|
const ContextRecorder_js_1 = require("../recorders/core/ContextRecorder.js");
|
|
20
48
|
const StreamRecorder_js_1 = require("../recorders/core/StreamRecorder.js");
|
|
49
|
+
const ErrorBridge_js_1 = require("../recorders/core/ErrorBridge.js");
|
|
21
50
|
const CostRecorder_js_1 = require("../recorders/core/CostRecorder.js");
|
|
22
51
|
const EvalRecorder_js_1 = require("../recorders/core/EvalRecorder.js");
|
|
23
52
|
const MemoryRecorder_js_1 = require("../recorders/core/MemoryRecorder.js");
|
|
@@ -27,7 +56,8 @@ const cost_js_1 = require("./cost.js");
|
|
|
27
56
|
const RunnerBase_js_1 = require("./RunnerBase.js");
|
|
28
57
|
const buildSystemPromptSlot_js_1 = require("./slots/buildSystemPromptSlot.js");
|
|
29
58
|
const buildMessagesSlot_js_1 = require("./slots/buildMessagesSlot.js");
|
|
30
|
-
const
|
|
59
|
+
const buildThinkingSubflow_js_1 = require("./slots/buildThinkingSubflow.js");
|
|
60
|
+
const registry_js_1 = require("../thinking/registry.js");
|
|
31
61
|
class LLMCall extends RunnerBase_js_1.RunnerBase {
|
|
32
62
|
name;
|
|
33
63
|
id;
|
|
@@ -38,6 +68,13 @@ class LLMCall extends RunnerBase_js_1.RunnerBase {
|
|
|
38
68
|
systemPromptValue;
|
|
39
69
|
pricingTable;
|
|
40
70
|
costBudget;
|
|
71
|
+
structureRecorders;
|
|
72
|
+
groupTranslator;
|
|
73
|
+
/** Auto-resolved from provider.name at construction time (same
|
|
74
|
+
* convention Agent uses — see findThinkingHandler). When undefined,
|
|
75
|
+
* sf-thinking is NOT mounted and the chart has zero thinking
|
|
76
|
+
* overhead (build-time conditional mount). */
|
|
77
|
+
thinkingHandler;
|
|
41
78
|
// Run-scoped; refreshed each run().
|
|
42
79
|
currentRunContext = {
|
|
43
80
|
runStartMs: 0,
|
|
@@ -57,15 +94,56 @@ class LLMCall extends RunnerBase_js_1.RunnerBase {
|
|
|
57
94
|
this.pricingTable = opts.pricingTable;
|
|
58
95
|
if (opts.costBudget !== undefined)
|
|
59
96
|
this.costBudget = opts.costBudget;
|
|
97
|
+
if (opts.structureRecorders)
|
|
98
|
+
this.structureRecorders = opts.structureRecorders;
|
|
99
|
+
if (opts.groupTranslator)
|
|
100
|
+
this.groupTranslator = opts.groupTranslator;
|
|
101
|
+
// v2.14 alignment — auto-wire ThinkingHandler by provider.name. Same
|
|
102
|
+
// mechanism Agent uses (Agent.ts:300+). When the registry has no
|
|
103
|
+
// handler for this provider (e.g., MockProvider), the field stays
|
|
104
|
+
// undefined and sf-thinking is not mounted.
|
|
105
|
+
const auto = (0, registry_js_1.findThinkingHandler)(opts.provider.name);
|
|
106
|
+
if (auto)
|
|
107
|
+
this.thinkingHandler = auto;
|
|
108
|
+
// Eager chart construction (footprintjs inventor convention): build
|
|
109
|
+
// once at constructor time so `buildTimeStructure` is a stable
|
|
110
|
+
// immutable object reference, each `StructureRecorder` fires
|
|
111
|
+
// exactly N times (N = node count) per LLMCall, and reference-equality memos
|
|
112
|
+
// on `getSpec()` work. Subsequent `getSpec()` calls return the
|
|
113
|
+
// cached chart; each `run()` reuses it in a fresh executor.
|
|
114
|
+
this.initChart(() => this.buildChart());
|
|
60
115
|
}
|
|
61
116
|
static create(opts) {
|
|
62
117
|
return new LLMCallBuilder(opts);
|
|
63
118
|
}
|
|
64
|
-
|
|
65
|
-
|
|
119
|
+
// `getSpec()` is inherited from `RunnerBase` — returns the chart
|
|
120
|
+
// cached by `initChart()` above. No subclass override needed.
|
|
121
|
+
// ─── UI group translation (L1b) ───────────────────────────────
|
|
122
|
+
getGroupTranslator() {
|
|
123
|
+
return this.groupTranslator;
|
|
124
|
+
}
|
|
125
|
+
/** LLMCall has no nested-runner members (slots are subflows of
|
|
126
|
+
* the LLMCall's own chart, not Runner instances). The slot ids
|
|
127
|
+
* are surfaced via `extra` so Lens can render the slot cards
|
|
128
|
+
* inside an LLMCall card without inspecting `buildTimeStructure`.
|
|
129
|
+
*
|
|
130
|
+
* TWO slots only — LLMCall does not have tools (that's Agent's
|
|
131
|
+
* affordance). Atomic LLMCall renders as a clean 2-pill card in
|
|
132
|
+
* collapsed (top-level) view. */
|
|
133
|
+
buildUIGroupMetadata() {
|
|
134
|
+
return {
|
|
135
|
+
kind: 'LLMCall',
|
|
136
|
+
id: this.id,
|
|
137
|
+
name: this.name,
|
|
138
|
+
members: [],
|
|
139
|
+
extra: {
|
|
140
|
+
slots: [conventions_js_1.SUBFLOW_IDS.SYSTEM_PROMPT, conventions_js_1.SUBFLOW_IDS.MESSAGES],
|
|
141
|
+
},
|
|
142
|
+
};
|
|
66
143
|
}
|
|
67
144
|
async run(input, options) {
|
|
68
145
|
const executor = this.createExecutor();
|
|
146
|
+
this.lastExecutor = executor;
|
|
69
147
|
const result = await executor.run({
|
|
70
148
|
input: { message: input.message },
|
|
71
149
|
...(options ?? {}),
|
|
@@ -75,6 +153,7 @@ class LLMCall extends RunnerBase_js_1.RunnerBase {
|
|
|
75
153
|
async resume(checkpoint, input, options) {
|
|
76
154
|
this.emitPauseResume(checkpoint, input);
|
|
77
155
|
const executor = this.createExecutor();
|
|
156
|
+
this.lastExecutor = executor;
|
|
78
157
|
const result = await executor.resume(checkpoint, input, options);
|
|
79
158
|
return this.finalizeResult(executor, result);
|
|
80
159
|
}
|
|
@@ -84,12 +163,19 @@ class LLMCall extends RunnerBase_js_1.RunnerBase {
|
|
|
84
163
|
runId: (0, RunnerBase_js_1.makeRunId)(),
|
|
85
164
|
compositionPath: [`LLMCall:${this.id}`],
|
|
86
165
|
};
|
|
87
|
-
|
|
88
|
-
|
|
166
|
+
// Reuse the cached chart built at constructor time. `getSpec()` and
|
|
167
|
+
// every `run()` share the same `FlowChart` object reference.
|
|
168
|
+
const executor = new footprintjs_1.FlowChartExecutor(this.getSpec());
|
|
89
169
|
const dispatcher = this.getDispatcher();
|
|
90
170
|
const getRunCtx = () => this.currentRunContext;
|
|
91
171
|
executor.attachCombinedRecorder(new ContextRecorder_js_1.ContextRecorder({ dispatcher, getRunContext: getRunCtx }));
|
|
172
|
+
// NOTE: no contextEvaluatedRecorder here — LLMCall composes its slots
|
|
173
|
+
// directly and does NOT mount the Injection Engine, so context.evaluated
|
|
174
|
+
// never fires in an LLMCall (that event is Agent-only).
|
|
92
175
|
executor.attachCombinedRecorder((0, StreamRecorder_js_1.streamRecorder)({ dispatcher, getRunContext: getRunCtx }));
|
|
176
|
+
// Terminal-failure bridge: footprintjs onRunFailed → typed error.fatal,
|
|
177
|
+
// so a thrown run clears in-flight live state + flips monitor status.
|
|
178
|
+
executor.attachCombinedRecorder((0, ErrorBridge_js_1.errorBridge)({ dispatcher, getRunContext: getRunCtx }));
|
|
93
179
|
if (this.pricingTable) {
|
|
94
180
|
// Only attach cost bridge when pricing is configured — zero overhead
|
|
95
181
|
// on runs that don't opt into cost accounting.
|
|
@@ -111,8 +197,18 @@ class LLMCall extends RunnerBase_js_1.RunnerBase {
|
|
|
111
197
|
return paused;
|
|
112
198
|
if (result instanceof Error)
|
|
113
199
|
throw result;
|
|
200
|
+
// Client stage is the chart's last-executed stage (it $break()s
|
|
201
|
+
// on the second visit). It deliberately returns void per the
|
|
202
|
+
// TypedStageFunction contract; the LLM answer flows through
|
|
203
|
+
// `scope.answer` on the outer-chart state. Read it from the
|
|
204
|
+
// snapshot here to bridge to LLMCall.run()'s string return.
|
|
114
205
|
if (typeof result === 'string')
|
|
115
206
|
return result;
|
|
207
|
+
const snap = executor.getSnapshot();
|
|
208
|
+
const sharedState = snap?.sharedState;
|
|
209
|
+
const answer = sharedState?.answer;
|
|
210
|
+
if (typeof answer === 'string')
|
|
211
|
+
return answer;
|
|
116
212
|
throw new Error('LLMCall: unexpected result shape — expected string');
|
|
117
213
|
}
|
|
118
214
|
// ─── Internal chart construction ────────────────────────────────
|
|
@@ -124,13 +220,41 @@ class LLMCall extends RunnerBase_js_1.RunnerBase {
|
|
|
124
220
|
const systemPromptValue = this.systemPromptValue;
|
|
125
221
|
const pricingTable = this.pricingTable;
|
|
126
222
|
const costBudget = this.costBudget;
|
|
127
|
-
const
|
|
223
|
+
const thinkingHandler = this.thinkingHandler;
|
|
224
|
+
// ─── Outer Client stage ─────────────────────────────────────────
|
|
225
|
+
// First visit: receives args, sets userMessage on outer scope.
|
|
226
|
+
// Second visit (post-loop): scope.answer has been populated by the
|
|
227
|
+
// inner subflow's outputMapper. `$break` terminates the loop AND
|
|
228
|
+
// returns scope.answer as the chart's TraversalResult.
|
|
229
|
+
//
|
|
230
|
+
// Returning the answer here is load-bearing for composition: when
|
|
231
|
+
// LLMCall is mounted inside Sequence/Parallel/Conditional, the
|
|
232
|
+
// parent's outputMapper reads `sfOutput` which IS the subflow's
|
|
233
|
+
// TraversalResult (footprintjs convention). Without the return,
|
|
234
|
+
// parent.current ends up as '' and downstream steps see no input.
|
|
235
|
+
//
|
|
236
|
+
// Cost counters live exclusively in the inner subflow's scope —
|
|
237
|
+
// they don't need to cross the boundary because LLMCall is
|
|
238
|
+
// one-shot. Threading them via inputMapper would seal them as
|
|
239
|
+
// readonly input on the inner side (footprintjs convention) and
|
|
240
|
+
// break `emitCostTick`'s scope writes.
|
|
241
|
+
const client = (scope) => {
|
|
242
|
+
if (scope.answer !== undefined) {
|
|
243
|
+
scope.$break('LLMCall: one-shot complete');
|
|
244
|
+
return scope.answer;
|
|
245
|
+
}
|
|
128
246
|
const args = scope.$getArgs();
|
|
129
247
|
scope.userMessage = args.message;
|
|
248
|
+
scope.iteration = 1;
|
|
249
|
+
return undefined;
|
|
250
|
+
};
|
|
251
|
+
// ─── Inner subflow stages ───────────────────────────────────────
|
|
252
|
+
// Inner seed initializes the per-call injection arrays AND the
|
|
253
|
+
// local cost counters that emitCostTick mutates inside callLLM.
|
|
254
|
+
// userMessage + iteration arrive via inputMapper from outer Client.
|
|
255
|
+
const innerSeed = (scope) => {
|
|
130
256
|
scope.systemPromptInjections = [];
|
|
131
257
|
scope.messagesInjections = [];
|
|
132
|
-
scope.toolsInjections = [];
|
|
133
|
-
scope.iteration = 1;
|
|
134
258
|
scope.cumTokensInput = 0;
|
|
135
259
|
scope.cumTokensOutput = 0;
|
|
136
260
|
scope.cumEstimatedUsd = 0;
|
|
@@ -138,13 +262,12 @@ class LLMCall extends RunnerBase_js_1.RunnerBase {
|
|
|
138
262
|
};
|
|
139
263
|
// slot subflow builders. Each emits InjectionRecord[] + SlotComposition
|
|
140
264
|
// through the convention scope keys; ContextRecorder observes and
|
|
141
|
-
// dispatches context.* events.
|
|
265
|
+
// dispatches context.* events. NO tools slot — LLMCall has no tools.
|
|
142
266
|
const systemPromptSubflow = (0, buildSystemPromptSlot_js_1.buildSystemPromptSlot)({
|
|
143
267
|
prompt: systemPromptValue,
|
|
144
268
|
reason: 'LLMCall.system()',
|
|
145
269
|
});
|
|
146
270
|
const messagesSubflow = (0, buildMessagesSlot_js_1.buildMessagesSlot)();
|
|
147
|
-
const toolsSubflow = (0, buildToolsSlot_js_1.buildToolsSlot)({ tools: [] });
|
|
148
271
|
const callLLM = async (scope) => {
|
|
149
272
|
const systemPromptInjections = (scope.systemPromptInjections ??
|
|
150
273
|
[]);
|
|
@@ -170,6 +293,10 @@ class LLMCall extends RunnerBase_js_1.RunnerBase {
|
|
|
170
293
|
...(temperature !== undefined && { temperature }),
|
|
171
294
|
});
|
|
172
295
|
const startMs = Date.now();
|
|
296
|
+
// Raw provider errors propagate untouched (reliability + merge
|
|
297
|
+
// layers classify on the raw message). The friendly translation
|
|
298
|
+
// for non-developers happens once at the terminal boundary —
|
|
299
|
+
// ErrorBridge humanizes the `error.fatal` event the monitor reads.
|
|
173
300
|
const response = await provider.complete({
|
|
174
301
|
systemPrompt: systemPrompt.length > 0 ? systemPrompt : undefined,
|
|
175
302
|
messages,
|
|
@@ -187,25 +314,30 @@ class LLMCall extends RunnerBase_js_1.RunnerBase {
|
|
|
187
314
|
durationMs,
|
|
188
315
|
});
|
|
189
316
|
(0, cost_js_1.emitCostTick)(scope, pricingTable, costBudget, model, response.usage);
|
|
190
|
-
//
|
|
191
|
-
//
|
|
192
|
-
//
|
|
193
|
-
return
|
|
317
|
+
// Write outputs to scope so downstream stages (sf-thinking,
|
|
318
|
+
// extract-final) can read them. The chart's TraversalResult
|
|
319
|
+
// bubbles up via scope.answer + outputMapper, NOT via this
|
|
320
|
+
// stage's return value (which is intentionally undefined now).
|
|
321
|
+
scope.answer = response.content;
|
|
322
|
+
if (response.rawThinking !== undefined) {
|
|
323
|
+
scope.rawThinking = response.rawThinking;
|
|
324
|
+
}
|
|
325
|
+
return undefined;
|
|
194
326
|
};
|
|
195
|
-
//
|
|
196
|
-
//
|
|
197
|
-
//
|
|
198
|
-
//
|
|
199
|
-
//
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
//
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
327
|
+
// extract-final stage — symmetric with Agent's sf-final branch.
|
|
328
|
+
// For LLMCall (no tools) it's a thin "final answer is ready" marker
|
|
329
|
+
// that gives lens a discrete commit boundary and matching chart
|
|
330
|
+
// node. scope.answer is already set by callLLM; this stage just
|
|
331
|
+
// surfaces a real "final" moment.
|
|
332
|
+
const extractFinal = (scope) => {
|
|
333
|
+
// No-op data-wise — scope.answer was set in callLLM. This stage
|
|
334
|
+
// exists purely for chart shape (lens "Final" node + commit).
|
|
335
|
+
void scope;
|
|
336
|
+
};
|
|
337
|
+
// ─── Build the inner sf-llm-call subflow ────────────────────────
|
|
338
|
+
let innerBuilder = (0, footprintjs_1.flowChart)('Initialize', innerSeed, conventions_js_1.STAGE_IDS.SEED, {
|
|
339
|
+
description: 'LLMCall: invocation internals',
|
|
340
|
+
})
|
|
209
341
|
.addSubFlowChartNext(conventions_js_1.SUBFLOW_IDS.SYSTEM_PROMPT, systemPromptSubflow, 'System Prompt', {
|
|
210
342
|
inputMapper: (parent) => ({
|
|
211
343
|
userMessage: parent.userMessage,
|
|
@@ -225,11 +357,51 @@ class LLMCall extends RunnerBase_js_1.RunnerBase {
|
|
|
225
357
|
},
|
|
226
358
|
outputMapper: (sfOutput) => ({ messagesInjections: sfOutput.messagesInjections }),
|
|
227
359
|
})
|
|
228
|
-
.
|
|
229
|
-
|
|
230
|
-
|
|
360
|
+
.addFunction('CallLLM', callLLM, conventions_js_1.STAGE_IDS.CALL_LLM, 'LLM invocation');
|
|
361
|
+
// Conditional sf-thinking — mounted only when a ThinkingHandler
|
|
362
|
+
// resolved (auto-wired by provider.name in the constructor). Same
|
|
363
|
+
// build-time conditional pattern Agent uses (buildAgentChart.ts).
|
|
364
|
+
if (thinkingHandler) {
|
|
365
|
+
innerBuilder = innerBuilder.addSubFlowChartNext(conventions_js_1.SUBFLOW_IDS.THINKING, (0, buildThinkingSubflow_js_1.buildThinkingSubflow)(thinkingHandler), 'NormalizeThinking', {
|
|
366
|
+
inputMapper: (parent) => ({
|
|
367
|
+
rawThinking: parent.rawThinking,
|
|
368
|
+
iteration: parent.iteration,
|
|
369
|
+
}),
|
|
370
|
+
outputMapper: (sfOutput) => ({ thinkingBlocks: sfOutput.thinkingBlocks }),
|
|
371
|
+
// Replace not concatenate — fresh thinking per iteration.
|
|
372
|
+
arrayMerge: advanced_1.ArrayMergeMode.Replace,
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
const innerSubflow = innerBuilder
|
|
376
|
+
.addFunction('ExtractFinal', extractFinal, conventions_js_1.STAGE_IDS.EXTRACT_FINAL, 'Final response ready')
|
|
377
|
+
.build();
|
|
378
|
+
// ─── Outer chart: Client → sf-llm-call → loopTo(client) ─────────
|
|
379
|
+
// Description prefix `LLMCall:` is a taxonomy marker — consumers
|
|
380
|
+
// distinguish LLMCall subflows from Agent subflows (`Agent:`) via
|
|
381
|
+
// this prefix. Only Agent subflows surface as "agent boundaries"
|
|
382
|
+
// in Lens; LLMCall is a primitive invocation, not an agent.
|
|
383
|
+
//
|
|
384
|
+
// Untyped <string, TypedScope<LLMCallState>> overload is used so
|
|
385
|
+
// Client's `string | undefined` return is accepted — the chart's
|
|
386
|
+
// TraversalResult is the answer string, which downstream
|
|
387
|
+
// compositions (Sequence/Parallel/Conditional) read via
|
|
388
|
+
// outputMapper's `sfOutput` parameter.
|
|
389
|
+
return (0, footprintjs_1.flowChart)('Client', client, conventions_js_1.STAGE_IDS.CLIENT, {
|
|
390
|
+
...(this.structureRecorders !== undefined && {
|
|
391
|
+
structureRecorders: [...this.structureRecorders],
|
|
392
|
+
}),
|
|
393
|
+
description: 'LLMCall: one-shot',
|
|
394
|
+
})
|
|
395
|
+
.addSubFlowChartNext(conventions_js_1.SUBFLOW_IDS.LLM_CALL, innerSubflow, 'LLM', {
|
|
396
|
+
inputMapper: (parent) => ({
|
|
397
|
+
userMessage: parent.userMessage,
|
|
398
|
+
iteration: parent.iteration,
|
|
399
|
+
}),
|
|
400
|
+
outputMapper: (sfOutput) => ({
|
|
401
|
+
answer: sfOutput.answer,
|
|
402
|
+
}),
|
|
231
403
|
})
|
|
232
|
-
.
|
|
404
|
+
.loopTo(conventions_js_1.STAGE_IDS.CLIENT)
|
|
233
405
|
.build();
|
|
234
406
|
}
|
|
235
407
|
}
|
package/dist/core/LLMCall.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMCall.js","sourceRoot":"","sources":["../../src/core/LLMCall.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LLMCall.js","sourceRoot":"","sources":["../../src/core/LLMCall.ts"],"names":[],"mappings":"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"}
|
package/dist/core/RunnerBase.js
CHANGED
|
@@ -26,6 +26,193 @@ exports.makeRunId = makeRunId;
|
|
|
26
26
|
class RunnerBase {
|
|
27
27
|
dispatcher = new dispatcher_js_1.EventDispatcher();
|
|
28
28
|
attachedRecorders = [];
|
|
29
|
+
/**
|
|
30
|
+
* The most recently used FlowChartExecutor — set by subclasses in
|
|
31
|
+
* `run()` so consumers can read the canonical structural snapshot
|
|
32
|
+
* via `getLastSnapshot()`. Single source of structural truth: this
|
|
33
|
+
* is footprintjs's snapshot, NOT a domain re-derivation.
|
|
34
|
+
*/
|
|
35
|
+
lastExecutor;
|
|
36
|
+
/**
|
|
37
|
+
* Cached footprintjs FlowChart, built ONCE at construction time via
|
|
38
|
+
* `initChart()`. Subsequent `getSpec()` calls return this same
|
|
39
|
+
* object — reference-stable across all consumers (Lens spec memos,
|
|
40
|
+
* footprintjs's OpenAPI/MCP caches, recorder-side correlation).
|
|
41
|
+
*
|
|
42
|
+
* Set via `initChart(builder)`, called from the subclass constructor
|
|
43
|
+
* AFTER all instance fields are populated. Read via `getSpec()`.
|
|
44
|
+
*
|
|
45
|
+
* Why eager construction: the `StructureRecorder` contract is
|
|
46
|
+
* "fires once per node at build time" — lazy construction would
|
|
47
|
+
* fire each recorder every `getSpec()` / `run()` call (2N invocations
|
|
48
|
+
* per run instead of N), break reference equality, and trigger
|
|
49
|
+
* `_mergeStageMap` false-positive collisions on second build.
|
|
50
|
+
* See `RunnerBase.initChart` for details.
|
|
51
|
+
*
|
|
52
|
+
* Visibility note: `private` (not `protected`) so subclasses cannot
|
|
53
|
+
* bypass the `initChart()` double-init guard by writing the field
|
|
54
|
+
* directly. All legitimate access goes through `getSpec()` and
|
|
55
|
+
* `initChart()`.
|
|
56
|
+
*/
|
|
57
|
+
chart;
|
|
58
|
+
/**
|
|
59
|
+
* Returns the footprintjs snapshot from the most recent run (or
|
|
60
|
+
* undefined if no run has completed). The snapshot is the CANONICAL
|
|
61
|
+
* STRUCTURE: nodes, edges, executionTree, runtimeStageId, commitLog.
|
|
62
|
+
*
|
|
63
|
+
* Domain consumers (Lens, Trace, dashboards) read this for shape
|
|
64
|
+
* and join their own per-stage payload by `runtimeStageId`. They
|
|
65
|
+
* MUST NOT re-derive structure from typed events — that's the
|
|
66
|
+
* design footprintjs's CLAUDE.md Convention 1 explicitly forbids.
|
|
67
|
+
*
|
|
68
|
+
* Returns `undefined` before the first `run()` completes. After,
|
|
69
|
+
* always returns the snapshot of the most recent run (including
|
|
70
|
+
* across multi-turn reuse of the same runner instance).
|
|
71
|
+
*/
|
|
72
|
+
getLastSnapshot() {
|
|
73
|
+
return this.lastExecutor?.getSnapshot();
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Alias for `getLastSnapshot()` that mirrors `FlowChartExecutor.getSnapshot()`
|
|
77
|
+
* so consumers (lens, playground, ExplainableShell) can read the live or
|
|
78
|
+
* just-completed snapshot through the same method name they'd use on a
|
|
79
|
+
* footprintjs executor — without having to know whether they're holding
|
|
80
|
+
* an agentfootprint Runner or a raw executor.
|
|
81
|
+
*
|
|
82
|
+
* During an active run, returns the live snapshot (commit log + execution
|
|
83
|
+
* tree built incrementally as stages execute). Between runs, returns the
|
|
84
|
+
* last completed run's snapshot. Undefined before any run has started.
|
|
85
|
+
*/
|
|
86
|
+
getSnapshot() {
|
|
87
|
+
return this.getLastSnapshot();
|
|
88
|
+
}
|
|
89
|
+
// ─── Subclass hooks ────────────────────────────────────────────
|
|
90
|
+
/**
|
|
91
|
+
* Return the footprintjs FlowChart for this runner — the canonical
|
|
92
|
+
* design-time blueprint. STABLE REFERENCE across calls (`getSpec()
|
|
93
|
+
* === getSpec()`). Set once at construction via `initChart()`.
|
|
94
|
+
*
|
|
95
|
+
* Pairs with the run-time getters (`getLastSnapshot`,
|
|
96
|
+
* `getCommitCount`) and matches `ExplainableShell.spec` +
|
|
97
|
+
* `specToReactFlow(spec, ...)` consumer conventions.
|
|
98
|
+
*
|
|
99
|
+
* DO NOT OVERRIDE in subclasses — the reference-identity contract
|
|
100
|
+
* (Lens / OpenAPI / MCP caches memo on this returning the same
|
|
101
|
+
* object) depends on the inherited body returning `this.chart`
|
|
102
|
+
* directly. To customise build behaviour, override `buildChart()`
|
|
103
|
+
* instead; this getter must remain a thin cache-read.
|
|
104
|
+
*/
|
|
105
|
+
getSpec() {
|
|
106
|
+
if (this.chart === undefined) {
|
|
107
|
+
throw new Error(`${this.constructor.name}: chart not initialized — the subclass must call \`this.initChart(() => this.buildChart())\` in its constructor before any \`getSpec()\` / \`run()\`.`);
|
|
108
|
+
}
|
|
109
|
+
return this.chart;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Cached `getUIGroup()` output. Computed lazily on first read so the
|
|
113
|
+
* subclass constructor doesn't need to run the translator before all
|
|
114
|
+
* its members exist (e.g., Parallel builds its branches list mid-
|
|
115
|
+
* construction). After first invocation, subsequent calls return the
|
|
116
|
+
* same reference — reference-stable, matches the `getSpec()` contract.
|
|
117
|
+
*
|
|
118
|
+
* `null` (not `undefined`) is the explicit "computed; result was
|
|
119
|
+
* undefined" marker so we can distinguish from "not yet computed."
|
|
120
|
+
* Consumers see `undefined` when no translator was attached.
|
|
121
|
+
*/
|
|
122
|
+
uiGroupCache;
|
|
123
|
+
/**
|
|
124
|
+
* Return the consumer-shaped UI group for this composition — produced
|
|
125
|
+
* by invoking the consumer's `groupTranslator` (if attached) with this
|
|
126
|
+
* runner's `GroupMetadata`. Returns `undefined` when no translator was
|
|
127
|
+
* attached.
|
|
128
|
+
*
|
|
129
|
+
* STABLE REFERENCE across calls. Computed on first access and cached;
|
|
130
|
+
* subsequent calls return the same value. Pairs with `getSpec()` —
|
|
131
|
+
* library shape on one side, consumer-shaped UI on the other.
|
|
132
|
+
*
|
|
133
|
+
* Subclasses MUST override `buildUIGroupMetadata()` (the next hook) to
|
|
134
|
+
* supply the `GroupMetadata` for their composition kind. This method
|
|
135
|
+
* (the public surface) is `final`-by-convention — do not override.
|
|
136
|
+
*/
|
|
137
|
+
getUIGroup() {
|
|
138
|
+
if (this.uiGroupCache !== undefined) {
|
|
139
|
+
return this.uiGroupCache.value;
|
|
140
|
+
}
|
|
141
|
+
const translator = this.getGroupTranslator();
|
|
142
|
+
if (translator === undefined) {
|
|
143
|
+
this.uiGroupCache = { value: undefined };
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
const metadata = this.buildUIGroupMetadata();
|
|
147
|
+
if (metadata === undefined) {
|
|
148
|
+
this.uiGroupCache = { value: undefined };
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
// SEAL THE CACHE BEFORE INVOKING THE TRANSLATOR so a throwing
|
|
152
|
+
// translator can't be re-invoked on the next `getUIGroup()` call.
|
|
153
|
+
// The `GroupTranslator` JSDoc guarantees "Runs ONCE per composition"
|
|
154
|
+
// — that invariant must hold for throwing translators too, otherwise
|
|
155
|
+
// a translator with side effects (telemetry, counters) would
|
|
156
|
+
// double-count on every re-read after a throw. Re-throws the same
|
|
157
|
+
// error so the caller still sees the failure on FIRST call; second
|
|
158
|
+
// call returns `undefined` (the sealed value).
|
|
159
|
+
this.uiGroupCache = { value: undefined };
|
|
160
|
+
const value = translator(metadata);
|
|
161
|
+
this.uiGroupCache = { value };
|
|
162
|
+
return value;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Subclass hook — returns the consumer's translator if one was
|
|
166
|
+
* provided at construction time. Default: no translator (returns
|
|
167
|
+
* undefined). Each composition overrides to surface its own
|
|
168
|
+
* `opts.groupTranslator`.
|
|
169
|
+
*/
|
|
170
|
+
getGroupTranslator() {
|
|
171
|
+
return undefined;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Translate this runner's group metadata with a CALLER-SUPPLIED
|
|
175
|
+
* translator that overrides the runner's own default. Used by
|
|
176
|
+
* parent compositions to apply per-method translator overrides.
|
|
177
|
+
* See the `Runner.getUIGroupWith` JSDoc for the contract.
|
|
178
|
+
*/
|
|
179
|
+
getUIGroupWith(override) {
|
|
180
|
+
const metadata = this.buildUIGroupMetadata();
|
|
181
|
+
if (metadata === undefined)
|
|
182
|
+
return undefined;
|
|
183
|
+
return override(metadata);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Subclass hook — returns the `GroupMetadata` for this composition.
|
|
187
|
+
* Default: undefined, meaning "no group translation for this runner
|
|
188
|
+
* kind." Compositions override to supply their members + kind. Called
|
|
189
|
+
* AT MOST ONCE per runner (result is cached by `getUIGroup()`).
|
|
190
|
+
*/
|
|
191
|
+
buildUIGroupMetadata() {
|
|
192
|
+
return undefined;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Build + cache the runner's `FlowChart` exactly once. Called by the
|
|
196
|
+
* subclass constructor AFTER all instance fields are set, so the
|
|
197
|
+
* builder lambda can close over them safely.
|
|
198
|
+
*
|
|
199
|
+
* Throws if called twice on the same instance — the chart is meant
|
|
200
|
+
* to be immutable post-construction. Each `run()` reuses the same
|
|
201
|
+
* chart in a fresh `FlowChartExecutor`.
|
|
202
|
+
*
|
|
203
|
+
* Implementation invariant (per footprintjs inventor review):
|
|
204
|
+
* each attached `StructureRecorder` fires exactly N times per
|
|
205
|
+
* construction (N = node count). Two `getSpec()` calls return the
|
|
206
|
+
* same `FlowChart` object reference. `_mergeStageMap` collision
|
|
207
|
+
* guards never see false-positives because each child runner's
|
|
208
|
+
* stage functions are created once and reused.
|
|
209
|
+
*/
|
|
210
|
+
initChart(builder) {
|
|
211
|
+
if (this.chart !== undefined) {
|
|
212
|
+
throw new Error(`${this.constructor.name}: initChart() called twice — the chart is built once at construction and is immutable.`);
|
|
213
|
+
}
|
|
214
|
+
this.chart = builder();
|
|
215
|
+
}
|
|
29
216
|
// ─── Pause/resume utilities (shared by every concrete runner) ───
|
|
30
217
|
/**
|
|
31
218
|
* Inspect an executor result. On pause, emits `pause.request` and returns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunnerBase.js","sourceRoot":"","sources":["../../src/core/RunnerBase.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AASH,2DAA0D;AAe1D,sFAAmG;AACnG,uDAIiC;AACjC,wFAGwD;AACxD,0FAIyD;AAGzD,IAAI,SAAS,GAAG,CAAC,CAAC;AAElB;;GAEG;AACH,SAAgB,SAAS;IACvB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC5C,CAAC;AAFD,8BAEC;AAED,MAAsB,UAAU;IACX,UAAU,GAAG,IAAI,+BAAe,EAAE,CAAC;IACnC,iBAAiB,GAAuB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"RunnerBase.js","sourceRoot":"","sources":["../../src/core/RunnerBase.ts"],"names":[],"mappings":"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"}
|