agentfootprint 3.0.0 → 3.1.1
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/AGENTS.md +66 -47
- package/CLAUDE.md +47 -37
- package/README.md +28 -13
- package/dist/adapters/llm/createProvider.js +3 -2
- package/dist/adapters/llm/createProvider.js.map +1 -1
- package/dist/adapters/observability/agentcore.js +1 -0
- package/dist/adapters/observability/agentcore.js.map +1 -1
- package/dist/cache/CacheDecisionSubflow.js +13 -18
- 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 +152 -2
- package/dist/conventions.js.map +1 -1
- package/dist/core/Agent.js +46 -9
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/LLMCall.js +177 -44
- package/dist/core/LLMCall.js.map +1 -1
- package/dist/core/RunnerBase.js +14 -0
- package/dist/core/RunnerBase.js.map +1 -1
- package/dist/core/agent/buildAgentChart.js +117 -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/flowchartAsTool.js +5 -5
- package/dist/core/humanizeLLMError.js +66 -0
- package/dist/core/humanizeLLMError.js.map +1 -0
- package/dist/core/slots/buildMessagesSlot.js +1 -1
- package/dist/core/slots/buildMessagesSlot.js.map +1 -1
- package/dist/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/core-flow/Conditional.js +1 -1
- package/dist/core-flow/Conditional.js.map +1 -1
- package/dist/core-flow/Loop.js +1 -1
- package/dist/core-flow/Loop.js.map +1 -1
- package/dist/core-flow/Parallel.js +1 -1
- package/dist/core-flow/Parallel.js.map +1 -1
- package/dist/esm/adapters/llm/createProvider.js +3 -2
- package/dist/esm/adapters/llm/createProvider.js.map +1 -1
- package/dist/esm/adapters/observability/agentcore.js +1 -0
- package/dist/esm/adapters/observability/agentcore.js.map +1 -1
- package/dist/esm/cache/CacheDecisionSubflow.js +11 -17
- 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 +148 -1
- package/dist/esm/conventions.js.map +1 -1
- package/dist/esm/core/Agent.js +47 -10
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/LLMCall.js +177 -44
- package/dist/esm/core/LLMCall.js.map +1 -1
- package/dist/esm/core/RunnerBase.js +14 -0
- package/dist/esm/core/RunnerBase.js.map +1 -1
- package/dist/esm/core/agent/buildAgentChart.js +118 -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/flowchartAsTool.js +5 -5
- package/dist/esm/core/humanizeLLMError.js +61 -0
- package/dist/esm/core/humanizeLLMError.js.map +1 -0
- package/dist/esm/core/slots/buildMessagesSlot.js +1 -1
- package/dist/esm/core/slots/buildMessagesSlot.js.map +1 -1
- package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/core-flow/Conditional.js +1 -1
- package/dist/esm/core-flow/Conditional.js.map +1 -1
- package/dist/esm/core-flow/Loop.js +1 -1
- package/dist/esm/core-flow/Loop.js.map +1 -1
- package/dist/esm/core-flow/Parallel.js +1 -1
- package/dist/esm/core-flow/Parallel.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 +21 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.js +15 -8
- package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
- package/dist/esm/lib/lazyRequire.js +2 -30
- package/dist/esm/lib/lazyRequire.js.map +1 -1
- package/dist/esm/lib/rag/defineRAG.js +4 -2
- package/dist/esm/lib/rag/defineRAG.js.map +1 -1
- package/dist/esm/lib/rag/indexDocuments.js +2 -2
- package/dist/esm/locales/index.js +3 -3
- package/dist/esm/memory/beats/heuristicExtractor.js +1 -1
- package/dist/esm/memory/beats/heuristicExtractor.js.map +1 -1
- package/dist/esm/memory/beats/index.js +6 -6
- package/dist/esm/memory/beats/index.js.map +1 -1
- package/dist/esm/memory/beats/llmExtractor.js +1 -1
- package/dist/esm/memory/beats/llmExtractor.js.map +1 -1
- package/dist/esm/memory/embedding/index.js +4 -4
- package/dist/esm/memory/embedding/index.js.map +1 -1
- package/dist/esm/memory/entry/index.js +1 -1
- package/dist/esm/memory/entry/index.js.map +1 -1
- package/dist/esm/memory/facts/extractFacts.js +1 -1
- package/dist/esm/memory/facts/extractFacts.js.map +1 -1
- package/dist/esm/memory/facts/index.js +7 -7
- package/dist/esm/memory/facts/index.js.map +1 -1
- package/dist/esm/memory/facts/llmFactExtractor.js +1 -1
- package/dist/esm/memory/facts/llmFactExtractor.js.map +1 -1
- package/dist/esm/memory/facts/loadFacts.js +1 -1
- package/dist/esm/memory/facts/loadFacts.js.map +1 -1
- package/dist/esm/memory/facts/patternFactExtractor.js +1 -1
- package/dist/esm/memory/facts/patternFactExtractor.js.map +1 -1
- package/dist/esm/memory/identity/index.js +1 -1
- package/dist/esm/memory/identity/index.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 -4
- package/dist/esm/memory/pipeline/default.js.map +1 -1
- package/dist/esm/memory/pipeline/ephemeral.js +3 -3
- package/dist/esm/memory/pipeline/ephemeral.js.map +1 -1
- package/dist/esm/memory/pipeline/fact.js +5 -5
- package/dist/esm/memory/pipeline/fact.js.map +1 -1
- package/dist/esm/memory/pipeline/index.js +6 -6
- package/dist/esm/memory/pipeline/index.js.map +1 -1
- package/dist/esm/memory/pipeline/narrative.js +6 -6
- package/dist/esm/memory/pipeline/narrative.js.map +1 -1
- package/dist/esm/memory/pipeline/semantic.js +5 -5
- package/dist/esm/memory/pipeline/semantic.js.map +1 -1
- package/dist/esm/memory/stages/index.js +6 -6
- package/dist/esm/memory/stages/index.js.map +1 -1
- package/dist/esm/memory/stages/pickByBudget.js +1 -1
- package/dist/esm/memory/stages/pickByBudget.js.map +1 -1
- package/dist/esm/memory/store/InMemoryStore.js +2 -2
- package/dist/esm/memory/store/InMemoryStore.js.map +1 -1
- package/dist/esm/memory/store/index.js +1 -1
- package/dist/esm/memory/store/index.js.map +1 -1
- package/dist/esm/memory/wire/index.js +1 -1
- package/dist/esm/memory/wire/index.js.map +1 -1
- package/dist/esm/package.json +1 -0
- 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/core/typedEmit.js +1 -1
- package/dist/esm/recorders/observability/BoundaryRecorder.js +26 -2
- package/dist/esm/recorders/observability/BoundaryRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/LiveStateRecorder.js +8 -0
- package/dist/esm/recorders/observability/LiveStateRecorder.js.map +1 -1
- package/dist/esm/recorders/observability/commentary/commentaryTemplates.js +1 -0
- package/dist/esm/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
- package/dist/esm/reliability/buildReliabilityGateChart.js +10 -4
- package/dist/esm/reliability/buildReliabilityGateChart.js.map +1 -1
- package/dist/esm/resilience/withRetry.js +3 -0
- package/dist/esm/resilience/withRetry.js.map +1 -1
- package/dist/esm/strategies/compose.js +2 -2
- package/dist/esm/tool-providers/skillScopedTools.js +3 -3
- package/dist/events/registry.js +10 -0
- package/dist/events/registry.js.map +1 -1
- package/dist/index.js +26 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/injection-engine/buildInjectionEngineSubflow.js +15 -8
- package/dist/lib/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
- package/dist/lib/lazyRequire.js +6 -0
- package/dist/lib/lazyRequire.js.map +1 -1
- package/dist/lib/rag/defineRAG.js +4 -2
- package/dist/lib/rag/defineRAG.js.map +1 -1
- package/dist/lib/rag/indexDocuments.js +2 -2
- package/dist/locales/index.js +3 -3
- package/dist/memory/beats/heuristicExtractor.js +4 -4
- package/dist/memory/beats/heuristicExtractor.js.map +1 -1
- package/dist/memory/beats/index.js +13 -13
- package/dist/memory/beats/index.js.map +1 -1
- package/dist/memory/beats/llmExtractor.js +2 -2
- package/dist/memory/beats/llmExtractor.js.map +1 -1
- package/dist/memory/embedding/index.js +8 -8
- package/dist/memory/embedding/index.js.map +1 -1
- package/dist/memory/entry/index.js +3 -3
- package/dist/memory/entry/index.js.map +1 -1
- package/dist/memory/facts/extractFacts.js +2 -2
- package/dist/memory/facts/extractFacts.js.map +1 -1
- package/dist/memory/facts/index.js +17 -17
- package/dist/memory/facts/index.js.map +1 -1
- package/dist/memory/facts/llmFactExtractor.js +2 -2
- package/dist/memory/facts/llmFactExtractor.js.map +1 -1
- package/dist/memory/facts/loadFacts.js +2 -2
- package/dist/memory/facts/loadFacts.js.map +1 -1
- package/dist/memory/facts/patternFactExtractor.js +2 -2
- package/dist/memory/facts/patternFactExtractor.js.map +1 -1
- package/dist/memory/identity/index.js +2 -2
- package/dist/memory/identity/index.js.map +1 -1
- package/dist/memory/pipeline/auto.js +11 -11
- package/dist/memory/pipeline/auto.js.map +1 -1
- package/dist/memory/pipeline/default.js +8 -8
- package/dist/memory/pipeline/default.js.map +1 -1
- package/dist/memory/pipeline/ephemeral.js +6 -6
- package/dist/memory/pipeline/ephemeral.js.map +1 -1
- package/dist/memory/pipeline/fact.js +11 -11
- package/dist/memory/pipeline/fact.js.map +1 -1
- package/dist/memory/pipeline/index.js +12 -12
- package/dist/memory/pipeline/index.js.map +1 -1
- package/dist/memory/pipeline/narrative.js +12 -12
- package/dist/memory/pipeline/narrative.js.map +1 -1
- package/dist/memory/pipeline/semantic.js +10 -10
- package/dist/memory/pipeline/semantic.js.map +1 -1
- package/dist/memory/stages/index.js +13 -13
- package/dist/memory/stages/index.js.map +1 -1
- package/dist/memory/stages/pickByBudget.js +3 -3
- package/dist/memory/stages/pickByBudget.js.map +1 -1
- package/dist/memory/store/InMemoryStore.js +5 -5
- package/dist/memory/store/InMemoryStore.js.map +1 -1
- package/dist/memory/store/index.js +2 -2
- package/dist/memory/store/index.js.map +1 -1
- package/dist/memory/wire/index.js +4 -4
- package/dist/memory/wire/index.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/core/typedEmit.js +1 -1
- package/dist/recorders/observability/BoundaryRecorder.js +26 -2
- package/dist/recorders/observability/BoundaryRecorder.js.map +1 -1
- package/dist/recorders/observability/LiveStateRecorder.js +8 -0
- package/dist/recorders/observability/LiveStateRecorder.js.map +1 -1
- package/dist/recorders/observability/commentary/commentaryTemplates.js +1 -0
- package/dist/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
- package/dist/reliability/buildReliabilityGateChart.js +10 -4
- package/dist/reliability/buildReliabilityGateChart.js.map +1 -1
- package/dist/resilience/withRetry.js +3 -0
- package/dist/resilience/withRetry.js.map +1 -1
- package/dist/strategies/compose.js +2 -2
- package/dist/tool-providers/skillScopedTools.js +3 -3
- package/dist/types/adapters/llm/createProvider.d.ts +3 -2
- package/dist/types/adapters/llm/createProvider.d.ts.map +1 -1
- package/dist/types/adapters/observability/agentcore.d.ts +1 -0
- package/dist/types/adapters/observability/agentcore.d.ts.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 +8 -0
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/LLMCall.d.ts +48 -12
- package/dist/types/core/LLMCall.d.ts.map +1 -1
- package/dist/types/core/RunnerBase.d.ts +12 -0
- package/dist/types/core/RunnerBase.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentChart.d.ts +31 -18
- 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 +69 -2
- package/dist/types/core/agent/types.d.ts.map +1 -1
- package/dist/types/core/flowchartAsTool.d.ts +5 -5
- package/dist/types/core/humanizeLLMError.d.ts +24 -0
- package/dist/types/core/humanizeLLMError.d.ts.map +1 -0
- package/dist/types/core/slots/buildMessagesSlot.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +84 -0
- 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 +4 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/buildInjectionEngineSubflow.d.ts.map +1 -1
- package/dist/types/lib/lazyRequire.d.ts.map +1 -1
- package/dist/types/lib/rag/defineRAG.d.ts +4 -2
- package/dist/types/lib/rag/defineRAG.d.ts.map +1 -1
- package/dist/types/lib/rag/indexDocuments.d.ts +2 -2
- package/dist/types/locales/index.d.ts +3 -3
- package/dist/types/memory/beats/extractBeats.d.ts +4 -4
- package/dist/types/memory/beats/extractBeats.d.ts.map +1 -1
- package/dist/types/memory/beats/extractor.d.ts +2 -2
- package/dist/types/memory/beats/extractor.d.ts.map +1 -1
- package/dist/types/memory/beats/formatAsNarrative.d.ts +1 -1
- package/dist/types/memory/beats/formatAsNarrative.d.ts.map +1 -1
- package/dist/types/memory/beats/heuristicExtractor.d.ts +1 -1
- package/dist/types/memory/beats/heuristicExtractor.d.ts.map +1 -1
- package/dist/types/memory/beats/index.d.ts +12 -12
- package/dist/types/memory/beats/index.d.ts.map +1 -1
- package/dist/types/memory/beats/llmExtractor.d.ts +2 -2
- package/dist/types/memory/beats/llmExtractor.d.ts.map +1 -1
- package/dist/types/memory/beats/writeBeats.d.ts +2 -2
- package/dist/types/memory/beats/writeBeats.d.ts.map +1 -1
- package/dist/types/memory/embedding/embedMessages.d.ts +3 -3
- package/dist/types/memory/embedding/embedMessages.d.ts.map +1 -1
- package/dist/types/memory/embedding/index.d.ts +8 -8
- package/dist/types/memory/embedding/index.d.ts.map +1 -1
- package/dist/types/memory/embedding/loadRelevant.d.ts +3 -3
- package/dist/types/memory/embedding/loadRelevant.d.ts.map +1 -1
- package/dist/types/memory/embedding/mockEmbedder.d.ts +1 -1
- package/dist/types/memory/embedding/mockEmbedder.d.ts.map +1 -1
- package/dist/types/memory/entry/decay.d.ts +1 -1
- package/dist/types/memory/entry/decay.d.ts.map +1 -1
- package/dist/types/memory/entry/index.d.ts +2 -2
- package/dist/types/memory/entry/index.d.ts.map +1 -1
- package/dist/types/memory/entry/types.d.ts +1 -1
- package/dist/types/memory/entry/types.d.ts.map +1 -1
- package/dist/types/memory/facts/extractFacts.d.ts +4 -4
- package/dist/types/memory/facts/extractFacts.d.ts.map +1 -1
- package/dist/types/memory/facts/extractor.d.ts +2 -2
- package/dist/types/memory/facts/extractor.d.ts.map +1 -1
- package/dist/types/memory/facts/formatFacts.d.ts +3 -3
- package/dist/types/memory/facts/formatFacts.d.ts.map +1 -1
- package/dist/types/memory/facts/index.d.ts +14 -14
- package/dist/types/memory/facts/index.d.ts.map +1 -1
- package/dist/types/memory/facts/llmFactExtractor.d.ts +2 -2
- package/dist/types/memory/facts/llmFactExtractor.d.ts.map +1 -1
- package/dist/types/memory/facts/loadFacts.d.ts +2 -2
- package/dist/types/memory/facts/loadFacts.d.ts.map +1 -1
- package/dist/types/memory/facts/patternFactExtractor.d.ts +1 -1
- package/dist/types/memory/facts/patternFactExtractor.d.ts.map +1 -1
- package/dist/types/memory/facts/writeFacts.d.ts +2 -2
- package/dist/types/memory/facts/writeFacts.d.ts.map +1 -1
- package/dist/types/memory/identity/index.d.ts +2 -2
- package/dist/types/memory/identity/index.d.ts.map +1 -1
- package/dist/types/memory/pipeline/auto.d.ts +6 -6
- package/dist/types/memory/pipeline/auto.d.ts.map +1 -1
- package/dist/types/memory/pipeline/default.d.ts +2 -2
- package/dist/types/memory/pipeline/default.d.ts.map +1 -1
- package/dist/types/memory/pipeline/ephemeral.d.ts +2 -2
- package/dist/types/memory/pipeline/ephemeral.d.ts.map +1 -1
- package/dist/types/memory/pipeline/fact.d.ts +3 -3
- package/dist/types/memory/pipeline/fact.d.ts.map +1 -1
- package/dist/types/memory/pipeline/index.d.ts +13 -13
- package/dist/types/memory/pipeline/index.d.ts.map +1 -1
- package/dist/types/memory/pipeline/narrative.d.ts +3 -3
- package/dist/types/memory/pipeline/narrative.d.ts.map +1 -1
- package/dist/types/memory/pipeline/semantic.d.ts +3 -3
- package/dist/types/memory/pipeline/semantic.d.ts.map +1 -1
- package/dist/types/memory/pipeline/types.d.ts +1 -1
- package/dist/types/memory/pipeline/types.d.ts.map +1 -1
- package/dist/types/memory/stages/formatDefault.d.ts +3 -3
- package/dist/types/memory/stages/formatDefault.d.ts.map +1 -1
- package/dist/types/memory/stages/index.d.ts +13 -13
- package/dist/types/memory/stages/index.d.ts.map +1 -1
- package/dist/types/memory/stages/loadRecent.d.ts +2 -2
- package/dist/types/memory/stages/loadRecent.d.ts.map +1 -1
- package/dist/types/memory/stages/pickByBudget.d.ts +2 -2
- package/dist/types/memory/stages/pickByBudget.d.ts.map +1 -1
- package/dist/types/memory/stages/summarize.d.ts +2 -2
- package/dist/types/memory/stages/summarize.d.ts.map +1 -1
- package/dist/types/memory/stages/tokenize.d.ts +1 -1
- package/dist/types/memory/stages/tokenize.d.ts.map +1 -1
- package/dist/types/memory/stages/types.d.ts +3 -3
- package/dist/types/memory/stages/types.d.ts.map +1 -1
- package/dist/types/memory/stages/writeMessages.d.ts +3 -3
- package/dist/types/memory/stages/writeMessages.d.ts.map +1 -1
- package/dist/types/memory/store/InMemoryStore.d.ts +3 -3
- package/dist/types/memory/store/InMemoryStore.d.ts.map +1 -1
- package/dist/types/memory/store/index.d.ts +2 -2
- package/dist/types/memory/store/index.d.ts.map +1 -1
- package/dist/types/memory/store/types.d.ts +2 -2
- package/dist/types/memory/store/types.d.ts.map +1 -1
- package/dist/types/memory/wire/index.d.ts +2 -2
- package/dist/types/memory/wire/index.d.ts.map +1 -1
- package/dist/types/memory/wire/mountMemoryPipeline.d.ts +1 -1
- package/dist/types/memory/wire/mountMemoryPipeline.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/core/typedEmit.d.ts +1 -1
- package/dist/types/recorders/observability/BoundaryRecorder.d.ts +10 -2
- package/dist/types/recorders/observability/BoundaryRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/LiveStateRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/commentary/commentaryTemplates.d.ts.map +1 -1
- package/dist/types/recorders/observability/observeRunId.d.ts +1 -1
- package/dist/types/reliability/buildReliabilityGateChart.d.ts.map +1 -1
- package/dist/types/resilience/withRetry.d.ts +3 -0
- package/dist/types/resilience/withRetry.d.ts.map +1 -1
- package/dist/types/strategies/compose.d.ts +2 -2
- package/dist/types/tool-providers/skillScopedTools.d.ts +3 -3
- package/package.json +10 -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
|
@@ -15,6 +15,10 @@ export declare const SUBFLOW_IDS: {
|
|
|
15
15
|
/** Injection Engine subflow. Evaluates every Injection's trigger
|
|
16
16
|
* and writes activeInjections[] for the slot subflows to consume. */
|
|
17
17
|
readonly INJECTION_ENGINE: "sf-injection-engine";
|
|
18
|
+
/** Inner subflow inside LLMCall that wraps the invocation
|
|
19
|
+
* (seed + slots + call-llm + optional thinking + extract-final).
|
|
20
|
+
* Mounted by LLMCall's outer `client` chart. */
|
|
21
|
+
readonly LLM_CALL: "sf-llm-call";
|
|
18
22
|
/** System-prompt slot subflow. Observed by ContextRecorder. */
|
|
19
23
|
readonly SYSTEM_PROMPT: "sf-system-prompt";
|
|
20
24
|
/** Messages slot subflow. */
|
|
@@ -33,8 +37,18 @@ export declare const SUBFLOW_IDS: {
|
|
|
33
37
|
* decider returns `'final'` as a routing value AND the same string
|
|
34
38
|
* becomes the subflow's id. */
|
|
35
39
|
readonly FINAL: "final";
|
|
40
|
+
/** Cache subflow (v2.14). Wraps the whole per-turn cache machinery —
|
|
41
|
+
* decide markers → CacheGate decider → apply/skip — as ONE collapsible
|
|
42
|
+
* boundary in the chart. Provider-independent decision layer; the
|
|
43
|
+
* attached provider's CacheStrategy turns markers into wire format.
|
|
44
|
+
* UpdateSkillHistory stays OUTSIDE (in the main loop) so the rolling
|
|
45
|
+
* skillHistory window persists across iterations without round-tripping
|
|
46
|
+
* through this subflow. */
|
|
47
|
+
readonly CACHE: "sf-cache";
|
|
36
48
|
/** Cache decision subflow (v2.6). Walks activeInjections, emits
|
|
37
|
-
* agnostic CacheMarker[]. Provider-independent.
|
|
49
|
+
* agnostic CacheMarker[]. Provider-independent. Standalone building
|
|
50
|
+
* block; the agent now uses the `decideCacheMarkers` stage inside
|
|
51
|
+
* `sf-cache` instead of mounting this directly. */
|
|
38
52
|
readonly CACHE_DECISION: "sf-cache-decision";
|
|
39
53
|
/** Thinking-normalization mount (v2.14). Wraps the consumer's
|
|
40
54
|
* ThinkingHandler.normalize() in a real footprintjs subflow so it
|
|
@@ -48,7 +62,24 @@ export type SubflowId = (typeof SUBFLOW_IDS)[keyof typeof SUBFLOW_IDS];
|
|
|
48
62
|
/** Stage IDs — plain function stages that builders mount. */
|
|
49
63
|
export declare const STAGE_IDS: {
|
|
50
64
|
readonly SEED: "seed";
|
|
65
|
+
/** Context-assembly selector stage. Runs AFTER InjectionEngine and
|
|
66
|
+
* fans the 3 slot subflows (system-prompt / messages / tools) out in
|
|
67
|
+
* PARALLEL (selector picks all 3 every iteration; failFast so a
|
|
68
|
+
* required slot's throw aborts the turn). They converge before
|
|
69
|
+
* CacheDecision. Shared by buildAgentChart + buildDynamicAgentChart;
|
|
70
|
+
* the flat viz proof chart uses the same id as its root selector. */
|
|
71
|
+
readonly CONTEXT: "context";
|
|
72
|
+
/** Outer "client" stage in LLMCall's wrapped chart. Receives args on
|
|
73
|
+
* the first visit, $break()s on the second (post-loop) visit with
|
|
74
|
+
* the LLM answer as TraversalResult. This is the lens-friendly
|
|
75
|
+
* affordance — the User pill maps to this stage. */
|
|
76
|
+
readonly CLIENT: "client";
|
|
51
77
|
readonly CALL_LLM: "call-llm";
|
|
78
|
+
/** Final-response extraction stage that runs after CallLLM (and
|
|
79
|
+
* optional sf-thinking). For LLMCall this is mostly symmetric with
|
|
80
|
+
* Agent's `sf-final` branch — gives lens a "Final" node and a
|
|
81
|
+
* clear commit boundary marking "we have the answer." */
|
|
82
|
+
readonly EXTRACT_FINAL: "extract-final";
|
|
52
83
|
readonly FINAL: "final";
|
|
53
84
|
readonly FORMAT_MERGE: "format-merge";
|
|
54
85
|
readonly MERGE_LLM: "merge-llm";
|
|
@@ -74,10 +105,79 @@ export type StageId = (typeof STAGE_IDS)[keyof typeof STAGE_IDS];
|
|
|
74
105
|
export declare function isSlotSubflow(id: string): id is typeof SUBFLOW_IDS.SYSTEM_PROMPT | typeof SUBFLOW_IDS.MESSAGES | typeof SUBFLOW_IDS.TOOLS;
|
|
75
106
|
/** Map a slot subflow id to its ContextSlot type. Undefined for non-slot ids. */
|
|
76
107
|
export declare function slotFromSubflowId(id: string): ContextSlot | undefined;
|
|
108
|
+
/**
|
|
109
|
+
* Resolve the context slot a scope write belongs to FROM THE WRITE'S OWN
|
|
110
|
+
* `runtimeStageId` — not from a "currently-open slot" stack.
|
|
111
|
+
*
|
|
112
|
+
* Why: once the 3 slot subflows run in PARALLEL (selector fan-out), their
|
|
113
|
+
* entry/write/exit events INTERLEAVE — a stack top is unreliable, so a write
|
|
114
|
+
* inside `sf-messages` could be attributed to (or dropped against)
|
|
115
|
+
* `sf-tools`. The write's `runtimeStageId` (`[subflowPath/]stageId#index`)
|
|
116
|
+
* always encodes which slot subflow enclosed it; we scan the path segments
|
|
117
|
+
* innermost-first for a slot id. Matches the sequential result exactly
|
|
118
|
+
* (the write is still inside its own slot), so it is behavior-preserving.
|
|
119
|
+
*/
|
|
120
|
+
export declare function slotFromRuntimeStageId(runtimeStageId: string): ContextSlot | undefined;
|
|
77
121
|
/** True when an id is any of the library's known subflow IDs. */
|
|
78
122
|
export declare function isKnownSubflow(id: string): id is SubflowId;
|
|
79
123
|
/** True when an id is any of the library's known stage IDs. */
|
|
80
124
|
export declare function isKnownStage(id: string): id is StageId;
|
|
125
|
+
/**
|
|
126
|
+
* Semantic role of a stage, used by renderers to decide visual emphasis.
|
|
127
|
+
*
|
|
128
|
+
* The agent's chart mixes a handful of stages users actually care about
|
|
129
|
+
* (the HEROES — what context was built, what the model decided, what it did)
|
|
130
|
+
* with mechanism stages (PLUMBING). This is the ONE place that says which is
|
|
131
|
+
* which; renderers stay generic and style purely off this role (e.g. heroes
|
|
132
|
+
* prominent, plumbing muted). Keeping it here — the semantic owner — avoids
|
|
133
|
+
* the "name-based filter list duplicated across renderers" anti-pattern.
|
|
134
|
+
*
|
|
135
|
+
* - `hero-slot` — a context slot (system-prompt / messages / tools)
|
|
136
|
+
* - `hero-llm` — the LLM invocation
|
|
137
|
+
* - `hero-action` — tool execution (the agent's actions)
|
|
138
|
+
* - `plumbing` — mechanism (injection engine, cache, route, thinking, …)
|
|
139
|
+
* - `boundary` — neutral chart boundaries (Initialize root, Final) +
|
|
140
|
+
* anything unrecognised (rendered normally, never muted)
|
|
141
|
+
*/
|
|
142
|
+
export type StageRole = 'hero-slot' | 'hero-llm' | 'hero-action' | 'plumbing' | 'boundary';
|
|
143
|
+
/**
|
|
144
|
+
* Classify a stage id into its {@link StageRole}. Accepts a path-qualified id
|
|
145
|
+
* (`sf-llm-call/call-llm`) — only the LOCAL segment matters, so it works at
|
|
146
|
+
* any nesting depth. Built entirely from the id constants above, so adding a
|
|
147
|
+
* stage to the chart only requires listing it here.
|
|
148
|
+
*/
|
|
149
|
+
export declare function stageRole(id: string): StageRole;
|
|
150
|
+
/**
|
|
151
|
+
* A {@link Milestone}'s kind — the domain vocabulary for "meaningful step you'd
|
|
152
|
+
* scrub to" in the agent's run.
|
|
153
|
+
*/
|
|
154
|
+
export type MilestoneKind = 'iteration' | 'slot' | 'llm-turn' | 'tool-call' | 'decision';
|
|
155
|
+
/**
|
|
156
|
+
* A time-travel milestone: a domain-declared scrub stop. Conceptually each
|
|
157
|
+
* milestone marks the boundary of a COLLECTION of commits (the commits that
|
|
158
|
+
* belong to that step) — so the Lens slider can step stage-by-stage
|
|
159
|
+
* (iteration → llm-turn → tool-call → …) instead of stopping only on
|
|
160
|
+
* structural subflow boundaries. The renderer iterates whatever the domain
|
|
161
|
+
* classifies; it never hardcodes agent vocabulary.
|
|
162
|
+
*/
|
|
163
|
+
export interface Milestone {
|
|
164
|
+
readonly kind: MilestoneKind;
|
|
165
|
+
/** Human-readable base label ("LLM turn"); the renderer may add an ordinal. */
|
|
166
|
+
readonly label: string;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Classify a stage id into a {@link Milestone}, or `null` when the stage is NOT
|
|
170
|
+
* a milestone boundary (its commits fold into the surrounding milestone's
|
|
171
|
+
* collection). This is the DOMAIN's declaration of which steps are scrub-worthy;
|
|
172
|
+
* the Lens consumes it to build the time-travel slider (see
|
|
173
|
+
* agentfootprint-lens `cursorPositionsAtDrill`).
|
|
174
|
+
*
|
|
175
|
+
* Mirrors {@link stageRole}: accepts a runtimeStageId (`call-llm#17`), a
|
|
176
|
+
* path-qualified id (`sf-llm-call/call-llm`), or a bare local id — only the
|
|
177
|
+
* LOCAL stage segment matters, so it works at any nesting depth and for both
|
|
178
|
+
* commit ids and subflow-group ids.
|
|
179
|
+
*/
|
|
180
|
+
export declare function milestoneFor(id: string): Milestone | null;
|
|
81
181
|
/**
|
|
82
182
|
* Scope-key convention for context injections.
|
|
83
183
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conventions.d.ts","sourceRoot":"","sources":["../../src/conventions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,gEAAgE;AAChE,eAAO,MAAM,WAAW;IACtB;0EACsE;;IAEtE,+DAA+D;;IAE/D,6BAA6B;;IAE7B,0BAA0B;;IAE1B,2CAA2C;;IAE3C,uDAAuD;;IAEvD,kCAAkC;;IAElC;;;;oCAIgC;;IAEhC
|
|
1
|
+
{"version":3,"file":"conventions.d.ts","sourceRoot":"","sources":["../../src/conventions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,gEAAgE;AAChE,eAAO,MAAM,WAAW;IACtB;0EACsE;;IAEtE;;qDAEiD;;IAEjD,+DAA+D;;IAE/D,6BAA6B;;IAE7B,0BAA0B;;IAE1B,2CAA2C;;IAE3C,uDAAuD;;IAEvD,kCAAkC;;IAElC;;;;oCAIgC;;IAEhC;;;;;;gCAM4B;;IAE5B;;;wDAGoD;;IAEpD;;;;;iCAK6B;;CAErB,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEvE,6DAA6D;AAC7D,eAAO,MAAM,SAAS;;IAEpB;;;;;0EAKsE;;IAEtE;;;yDAGqD;;;IAGrD;;;8DAG0D;;;;;;IAM1D;wCACoC;;IAEpC;gEAC4D;;IAE5D;4EACwE;;IAExE;kEAC8D;;IAE9D;8CAC0C;;CAElC,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAIjE,wEAAwE;AACxE,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,GACT,EAAE,IAAI,OAAO,WAAW,CAAC,aAAa,GAAG,OAAO,WAAW,CAAC,QAAQ,GAAG,OAAO,WAAW,CAAC,KAAK,CAIjG;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAgBrE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAStF;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,SAAS,CAE1D;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,OAAO,CAEtD;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,UAAU,CAAC;AA6B3F;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAY/C;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAEzF;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAiCzD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAEhF,6CAA6C;AAC7C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,UAAU,GAAG,OAAO,GAAG,YAAY,CAS9F;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,YAAY,CAE/D"}
|
|
@@ -145,6 +145,14 @@ export declare class Agent extends RunnerBase<AgentInput, AgentOutput> {
|
|
|
145
145
|
/** Per-COMPOSITION translator (L1b). Set from `opts.groupTranslator`;
|
|
146
146
|
* undefined when consumer didn't attach one. */
|
|
147
147
|
private readonly agentGroupTranslator?;
|
|
148
|
+
/** ReAct chart shape — 'flat' (default, bare call-llm stage) or
|
|
149
|
+
* 'subflow' (LLM turn wrapped in sf-llm-call). Set from
|
|
150
|
+
* `opts.reactStructure`. */
|
|
151
|
+
private readonly reactStructure;
|
|
152
|
+
/** ReAct loop SEMANTICS — 'dynamic' (default, re-engineer all slots each
|
|
153
|
+
* turn, loop→InjectionEngine) or 'classic' (engineer context once,
|
|
154
|
+
* loop→Messages only). Set from `opts.reactMode`. See AgentOptions. */
|
|
155
|
+
private readonly reactMode;
|
|
148
156
|
constructor(opts: AgentOptions, systemPromptValue: string, registry: readonly ToolRegistryEntry[], voice: {
|
|
149
157
|
readonly appName: string;
|
|
150
158
|
readonly commentaryTemplates: Readonly<Record<string, string>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/core/Agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,sBAAsB,EAE3B,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/core/Agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,42 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* LLMCall — the leaf primitive for a single LLM invocation (no tools
|
|
2
|
+
* LLMCall — the leaf primitive for a single LLM invocation (no tools).
|
|
3
3
|
*
|
|
4
4
|
* Pattern: Builder (GoF) → produces a Runner backed by a footprintjs FlowChart.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
5
|
+
*
|
|
6
|
+
* Chart shape — outer client wrapper around an inner llm-subflow:
|
|
7
|
+
*
|
|
8
|
+
* Client → sf-llm-call → loopTo(client)
|
|
9
|
+
*
|
|
10
|
+
* Outer `Client` stage:
|
|
11
|
+
* - First visit: receives args, writes userMessage to scope.
|
|
12
|
+
* - Second visit (after the loop completes): $break()s with
|
|
13
|
+
* scope.answer as the chart's TraversalResult.
|
|
14
|
+
*
|
|
15
|
+
* Inner `sf-llm-call` subflow (drill-down view):
|
|
16
|
+
* Initialize → sf-system-prompt → sf-messages → call-llm
|
|
17
|
+
* → [sf-thinking if handler] → extract-final
|
|
18
|
+
*
|
|
19
|
+
* NO `sf-tools` slot — LLMCall has no tools by design (that's Agent's
|
|
20
|
+
* territory). Atomic LLMCall's lens chart is a clean 3-node top-level
|
|
21
|
+
* view (Client + LLM + loop edge) that drills into the real flowchart
|
|
22
|
+
* below.
|
|
23
|
+
*
|
|
24
|
+
* Loop semantics: LLMCall is one-shot. The loop fires once; the
|
|
25
|
+
* second Client visit immediately breaks. The shape is identical to
|
|
26
|
+
* chat-mode (future): swap `$break()` for `pause()` and the same
|
|
27
|
+
* chart supports multi-turn conversation.
|
|
28
|
+
*
|
|
29
|
+
* Slot subflows write convention-keyed injections observed by
|
|
30
|
+
* ContextRecorder. The call-llm stage typedEmits stream.llm_start
|
|
31
|
+
* and stream.llm_end observed by StreamRecorder. When a
|
|
32
|
+
* `ThinkingHandler` resolves for the provider, `sf-thinking` mounts
|
|
33
|
+
* automatically (auto-wired by provider.name — same convention Agent
|
|
34
|
+
* uses).
|
|
35
|
+
*
|
|
36
|
+
* Emits (through internally-attached recorders):
|
|
37
|
+
* agentfootprint.stream.llm_start / llm_end
|
|
38
|
+
* agentfootprint.context.injected / slot_composed
|
|
39
|
+
* agentfootprint.stream.thinking_end (when sf-thinking mounted)
|
|
13
40
|
*/
|
|
14
41
|
import { type FlowchartCheckpoint, type RunOptions, type StructureRecorder } from 'footprintjs';
|
|
15
42
|
import type { GroupMetadata, GroupTranslator } from './translator.js';
|
|
@@ -45,7 +72,7 @@ export interface LLMCallOptions {
|
|
|
45
72
|
* Optional build-time recorders threaded into footprintjs's
|
|
46
73
|
* `flowChart()` factory. Each recorder observes per-node build
|
|
47
74
|
* events (`onStageAdded` / `onSubflowMounted` / etc.) for this
|
|
48
|
-
* LLMCall's internal chart (
|
|
75
|
+
* LLMCall's internal chart (Initialize + slot mounts + CallLLM). When
|
|
49
76
|
* omitted, no build-time observation is wired up.
|
|
50
77
|
*/
|
|
51
78
|
readonly structureRecorders?: readonly StructureRecorder[];
|
|
@@ -76,14 +103,23 @@ export declare class LLMCall extends RunnerBase<LLMCallInput, LLMCallOutput> {
|
|
|
76
103
|
private readonly costBudget?;
|
|
77
104
|
private readonly structureRecorders?;
|
|
78
105
|
private readonly groupTranslator?;
|
|
106
|
+
/** Auto-resolved from provider.name at construction time (same
|
|
107
|
+
* convention Agent uses — see findThinkingHandler). When undefined,
|
|
108
|
+
* sf-thinking is NOT mounted and the chart has zero thinking
|
|
109
|
+
* overhead (build-time conditional mount). */
|
|
110
|
+
private readonly thinkingHandler?;
|
|
79
111
|
private currentRunContext;
|
|
80
112
|
constructor(opts: LLMCallOptions, systemPromptValue: string);
|
|
81
113
|
static create(opts: LLMCallOptions): LLMCallBuilder;
|
|
82
114
|
protected getGroupTranslator(): GroupTranslator | undefined;
|
|
83
115
|
/** LLMCall has no nested-runner members (slots are subflows of
|
|
84
|
-
* the LLMCall's own chart, not Runner instances). The
|
|
116
|
+
* the LLMCall's own chart, not Runner instances). The slot ids
|
|
85
117
|
* are surfaced via `extra` so Lens can render the slot cards
|
|
86
|
-
* inside an LLMCall card without inspecting `buildTimeStructure`.
|
|
118
|
+
* inside an LLMCall card without inspecting `buildTimeStructure`.
|
|
119
|
+
*
|
|
120
|
+
* TWO slots only — LLMCall does not have tools (that's Agent's
|
|
121
|
+
* affordance). Atomic LLMCall renders as a clean 2-pill card in
|
|
122
|
+
* collapsed (top-level) view. */
|
|
87
123
|
protected buildUIGroupMetadata(): GroupMetadata;
|
|
88
124
|
run(input: LLMCallInput, options?: RunOptions): Promise<LLMCallOutput | RunnerPauseOutcome>;
|
|
89
125
|
resume(checkpoint: FlowchartCheckpoint, input?: unknown, options?: RunOptions): Promise<LLMCallOutput | RunnerPauseOutcome>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMCall.d.ts","sourceRoot":"","sources":["../../../src/core/LLMCall.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"LLMCall.d.ts","sourceRoot":"","sources":["../../../src/core/LLMCall.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,6 +65,18 @@ export declare abstract class RunnerBase<TIn = unknown, TOut = unknown> implemen
|
|
|
65
65
|
* across multi-turn reuse of the same runner instance).
|
|
66
66
|
*/
|
|
67
67
|
getLastSnapshot(): ReturnType<FlowChartExecutor['getSnapshot']> | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Alias for `getLastSnapshot()` that mirrors `FlowChartExecutor.getSnapshot()`
|
|
70
|
+
* so consumers (lens, playground, ExplainableShell) can read the live or
|
|
71
|
+
* just-completed snapshot through the same method name they'd use on a
|
|
72
|
+
* footprintjs executor — without having to know whether they're holding
|
|
73
|
+
* an agentfootprint Runner or a raw executor.
|
|
74
|
+
*
|
|
75
|
+
* During an active run, returns the live snapshot (commit log + execution
|
|
76
|
+
* tree built incrementally as stages execute). Between runs, returns the
|
|
77
|
+
* last completed run's snapshot. Undefined before any run has started.
|
|
78
|
+
*/
|
|
79
|
+
getSnapshot(): ReturnType<FlowChartExecutor['getSnapshot']> | undefined;
|
|
68
80
|
/**
|
|
69
81
|
* Return the footprintjs FlowChart for this runner — the canonical
|
|
70
82
|
* design-time blueprint. STABLE REFERENCE across calls (`getSpec()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunnerBase.d.ts","sourceRoot":"","sources":["../../../src/core/RunnerBase.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAGV,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAgBpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI3D;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,8BAAsB,UAAU,CAAC,GAAG,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,CAAE,YAAW,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC;IAC1F,SAAS,CAAC,QAAQ,CAAC,UAAU,kBAAyB;IACtD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,CAAM;IAE9D;;;;;OAKG;IACH,SAAS,CAAC,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAEtD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,KAAK,CAAwB;IAErC;;;;;;;;;;;;;OAaG;IACH,eAAe,IAAI,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"RunnerBase.d.ts","sourceRoot":"","sources":["../../../src/core/RunnerBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,27 +15,27 @@
|
|
|
15
15
|
*
|
|
16
16
|
* Chart shape:
|
|
17
17
|
*
|
|
18
|
-
*
|
|
18
|
+
* Initialize
|
|
19
19
|
* → [memory READ subflows for each .memory()]
|
|
20
|
-
* → InjectionEngine (subflow)
|
|
21
|
-
* →
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* → CacheDecision (subflow)
|
|
20
|
+
* → InjectionEngine (subflow) ← loop target (tool-calls loops here)
|
|
21
|
+
* → Context (selector, PARALLEL fan-out, failFast)
|
|
22
|
+
* ⇉ {System Prompt ‖ Messages ‖ Tools} (slot subflows)
|
|
23
|
+
* → converge
|
|
25
24
|
* → UpdateSkillHistory
|
|
26
|
-
* →
|
|
27
|
-
*
|
|
28
|
-
* → CallLLM
|
|
29
|
-
* →
|
|
30
|
-
*
|
|
31
|
-
*
|
|
25
|
+
* → Cache (sf-cache subflow: decideCacheMarkers → CacheGate
|
|
26
|
+
* → ApplyMarkers / SkipCaching)
|
|
27
|
+
* → CallLLM (also emits the per-iteration iteration_start marker)
|
|
28
|
+
* → [NormalizeThinking] (subflow, only when a ThinkingHandler resolved)
|
|
29
|
+
* → Route (decider)
|
|
30
|
+
* ├─ tool-calls (pausable) → loopTo(InjectionEngine) ← branch-sourced loop
|
|
31
|
+
* └─ final (subflow) → terminal leaf
|
|
32
|
+
* ┌────── PrepareFinal
|
|
32
33
|
* ├──── [memory WRITE subflows]
|
|
33
34
|
* └──── BreakFinal ($break)
|
|
34
|
-
* loopTo(InjectionEngine)
|
|
35
35
|
*
|
|
36
36
|
* (When v2.11.x reliability is configured, the reliability gate chart
|
|
37
|
-
* mounts as a subflow
|
|
38
|
-
*
|
|
37
|
+
* mounts as a subflow before CallLLM with a TranslateFailFast stage
|
|
38
|
+
* after it. Lands in the next commit.)
|
|
39
39
|
*/
|
|
40
40
|
import type { FlowChart, StructureRecorder } from 'footprintjs';
|
|
41
41
|
import type { CachePolicy } from '../../cache/types.js';
|
|
@@ -55,7 +55,6 @@ export interface AgentChartDeps {
|
|
|
55
55
|
* inputMapper for max-iteration policies. */
|
|
56
56
|
readonly maxIterations: number;
|
|
57
57
|
readonly seed: (scope: never) => void;
|
|
58
|
-
readonly iterationStart: (scope: never) => void;
|
|
59
58
|
readonly callLLM: (scope: never) => Promise<void>;
|
|
60
59
|
readonly routeDecider: (scope: never) => 'tool-calls' | 'final';
|
|
61
60
|
readonly toolCallsHandler: import('footprintjs').PausableHandler<never>;
|
|
@@ -71,9 +70,23 @@ export interface AgentChartDeps {
|
|
|
71
70
|
* zero overhead for non-thinking agents (build-time conditional mount).
|
|
72
71
|
*/
|
|
73
72
|
readonly thinkingSubflow?: FlowChart;
|
|
74
|
-
readonly cacheDecisionSubflow: FlowChart;
|
|
75
73
|
readonly updateSkillHistoryStage: (scope: never) => void;
|
|
76
|
-
|
|
74
|
+
/**
|
|
75
|
+
* Whether ≥1 Skill is registered. The `UpdateSkillHistory` stage (and
|
|
76
|
+
* therefore the cache's skill-churn rule) is mounted ONLY when true:
|
|
77
|
+
* with no skills the window would record "no skill" every iteration and
|
|
78
|
+
* `detectSkillChurn` could never fire, so the stage would be pure dead
|
|
79
|
+
* weight + a misleading box. Mirrors the `skills.length > 0` gate that
|
|
80
|
+
* auto-attaches `read_skill`, and the `thinkingSubflow` conditional mount.
|
|
81
|
+
*/
|
|
82
|
+
readonly hasSkills: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* ReAct loop semantics. `'dynamic'` (default) re-runs the InjectionEngine +
|
|
85
|
+
* all 3 slots every iteration (loop → InjectionEngine). `'classic'`
|
|
86
|
+
* engineers context ONCE (InjectionEngine + system-prompt + tools up front)
|
|
87
|
+
* and loops only the Messages slot (loop → Messages). See AgentOptions.reactMode.
|
|
88
|
+
*/
|
|
89
|
+
readonly reactMode?: 'classic' | 'dynamic';
|
|
77
90
|
/** Structure recorders threaded into both `flowChart()` calls (the
|
|
78
91
|
* main chart and the PrepareFinal sub-chart). Each recorder
|
|
79
92
|
* observes per-node build events (`onStageAdded` /
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildAgentChart.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/buildAgentChart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"buildAgentChart.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/buildAgentChart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAc,MAAM,aAAa,CAAC;AAE5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AASrE;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAE/C;uEACmE;IACnE,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC;IAE9C;kDAC8C;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAG/B,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,YAAY,GAAG,OAAO,CAAC;IAChE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IAGxE,QAAQ,CAAC,sBAAsB,EAAE,SAAS,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC;IAMrC,QAAQ,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEzD;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAG3C;;;;0CAIsC;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,CAqT/D"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* buildAgentMessageApiChart — the Agent (ReAct) form of the messageAPI
|
|
3
|
+
* merge-tree, as ONE FLAT main chart (no inner LLM-call sub-box).
|
|
4
|
+
*
|
|
5
|
+
* The whole ReAct cycle lives directly in the single Agent chart:
|
|
6
|
+
*
|
|
7
|
+
* Context (ROOT selector — inits + picks which context slots to engineer)
|
|
8
|
+
* ├─ system-prompt ┐
|
|
9
|
+
* ├─ messages ─────┼─→ messageAPI → Call-LLM
|
|
10
|
+
* └─ tools ────────┘
|
|
11
|
+
* → Route (decider) → [ ToolCalls (execute) → loop ] / Final (response)
|
|
12
|
+
* loopTo(Context)
|
|
13
|
+
*
|
|
14
|
+
* WHY flat (the user's call): the entire agent — context engineering, the LLM
|
|
15
|
+
* call, routing, tool execution, the loop, and the final response — is ONE
|
|
16
|
+
* visible flowchart in ONE Agent box. No nested LLM-call box: Lens wraps the
|
|
17
|
+
* whole chart in the Agent main-box and renders the slots as pills. This is
|
|
18
|
+
* simpler than the composed (sf-llm-call subflow) shape and avoids box-in-box
|
|
19
|
+
* nesting entirely.
|
|
20
|
+
*
|
|
21
|
+
* The three context slots are DIRECT children of Context; all converge at
|
|
22
|
+
* messageAPI (which assembles system-prompt + messages); Call-LLM then sends
|
|
23
|
+
* the assembled payload plus the tool schemas. Route decides tool-calls (loop)
|
|
24
|
+
* vs final (terminate). The same chart serves Static and Dynamic agents — only
|
|
25
|
+
* which slots the Context selector lights per iteration differs.
|
|
26
|
+
*/
|
|
27
|
+
import type { FlowChart } from 'footprintjs';
|
|
28
|
+
import type { LLMProvider, LLMToolSchema } from '../../adapters/types.js';
|
|
29
|
+
export interface AgentMessageApiChartDeps {
|
|
30
|
+
readonly provider: LLMProvider;
|
|
31
|
+
readonly model: string;
|
|
32
|
+
readonly systemPrompt: string;
|
|
33
|
+
readonly tools: readonly LLMToolSchema[];
|
|
34
|
+
readonly maxIterations?: number;
|
|
35
|
+
readonly structureRecorders?: readonly import('footprintjs').StructureRecorder[];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Build the Agent merge-tree chart as one flat ReAct flowchart.
|
|
39
|
+
*/
|
|
40
|
+
export declare function buildAgentMessageApiChart(deps: AgentMessageApiChartDeps): FlowChart;
|
|
41
|
+
//# sourceMappingURL=buildAgentMessageApiChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildAgentMessageApiChart.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/buildAgentMessageApiChart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAc,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA8BtF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,OAAO,aAAa,EAAE,iBAAiB,EAAE,CAAC;CAClF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,wBAAwB,GAAG,SAAS,CA8LnF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* buildCacheSubflow — the per-turn prompt-cache decision, as ONE subflow.
|
|
3
|
+
*
|
|
4
|
+
* Collapses the cache machinery into a single `sf-cache` boundary so the
|
|
5
|
+
* agent chart reads cleanly (one "Cache" box you can drill into) while the
|
|
6
|
+
* execution tree stays honest:
|
|
7
|
+
*
|
|
8
|
+
* decideCacheMarkers → CacheGate (decider) → ApplyMarkers / SkipCaching
|
|
9
|
+
*
|
|
10
|
+
* Layering (see src/cache/types.ts):
|
|
11
|
+
* - This subflow is the provider-AGNOSTIC DECISION layer — it only computes
|
|
12
|
+
* and gates provider-neutral `CacheMarker[]`. It knows nothing about any
|
|
13
|
+
* provider.
|
|
14
|
+
* - The provider-SPECIFIC MECHANISM (Anthropic `cache_control`, OpenAI
|
|
15
|
+
* automatic, …) is the attached provider's `CacheStrategy`, selected by
|
|
16
|
+
* `provider.name`, applied later when the request is built.
|
|
17
|
+
*
|
|
18
|
+
* Why `UpdateSkillHistory` is NOT in here: the `skillHistory` rolling window
|
|
19
|
+
* must persist across loop iterations. Keeping `UpdateSkillHistory` in the
|
|
20
|
+
* main loop (just before this subflow) lets `skillHistory` live in the parent
|
|
21
|
+
* scope without round-tripping through this subflow's in/out mappers — the
|
|
22
|
+
* subflow stays pure (reads the turn's state, writes only `cacheMarkers`).
|
|
23
|
+
*
|
|
24
|
+
* Deps-free: every input (`activeInjections`, `iteration`, `skillHistory`,
|
|
25
|
+
* `recentHitRate`, `systemPromptCachePolicy`, …) is supplied by the PARENT's
|
|
26
|
+
* `inputMapper` at the mount site; the output is just `cacheMarkers`.
|
|
27
|
+
*/
|
|
28
|
+
import { type FlowChart } from 'footprintjs';
|
|
29
|
+
/**
|
|
30
|
+
* Build the `sf-cache` subflow chart. Called by `buildAgentChart` and
|
|
31
|
+
* `buildDynamicAgentChart` and mounted via `addSubFlowChartNext(
|
|
32
|
+
* SUBFLOW_IDS.CACHE, buildCacheSubflow(), 'Cache', { inputMapper,
|
|
33
|
+
* outputMapper, arrayMerge: Replace })`.
|
|
34
|
+
*/
|
|
35
|
+
export declare function buildCacheSubflow(): FlowChart;
|
|
36
|
+
//# sourceMappingURL=buildCacheSubflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildCacheSubflow.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/buildCacheSubflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAMxD;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,CAqC7C"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* buildDynamicAgentChart — the Dynamic-ReAct agent chart, where the
|
|
3
|
+
* whole LLM turn (context engineering + the call) is ONE `sf-llm-call`
|
|
4
|
+
* subflow, exactly like the `LLMCall` primitive produces.
|
|
5
|
+
*
|
|
6
|
+
* WHY a second builder (vs `buildAgentChart`)
|
|
7
|
+
* ───────────────────────────────────────────
|
|
8
|
+
* `buildAgentChart` mounts the LLM as a flat `call-llm` STAGE with the
|
|
9
|
+
* slot subflows as its siblings. That renders as nothing in Lens — a
|
|
10
|
+
* bare stage is dropped by the subflow-level collapser, so the slots
|
|
11
|
+
* have no LLM card to fold into and the chart comes up empty.
|
|
12
|
+
*
|
|
13
|
+
* This builder wraps that same region in an `sf-llm-call` SUBFLOW. The
|
|
14
|
+
* payoff is purely structural — Lens already maps `sf-llm-call → LLM
|
|
15
|
+
* group` (same boundary `LLMCall` produces), so the Dynamic agent
|
|
16
|
+
* renders as an LLM group with its slots inside, a peer Tool node, and
|
|
17
|
+
* the loop arc, with ZERO Lens-specific special-casing.
|
|
18
|
+
*
|
|
19
|
+
* The data flow is IDENTICAL to `buildAgentChart` — every stage handler
|
|
20
|
+
* + slot subflow is reused verbatim from the same `AgentChartDeps`. The
|
|
21
|
+
* ONLY new thing is the subflow boundary, which means:
|
|
22
|
+
*
|
|
23
|
+
* • A small inner seed (`dynamicTurnSeed`) initialises the per-turn
|
|
24
|
+
* working keys the OUTER seed used to set, since the inner subflow
|
|
25
|
+
* gets a fresh scope each loop re-entry.
|
|
26
|
+
* • Cross-iteration accumulators (token totals, cost counters,
|
|
27
|
+
* skill-history) round-trip out→in: the boundary `outputMapper`
|
|
28
|
+
* bubbles them to the outer scope, and the next iteration's
|
|
29
|
+
* `inputMapper` feeds them back under `prior*` aliases (because
|
|
30
|
+
* keys passed via `inputMapper` are FROZEN inside the subflow —
|
|
31
|
+
* `ScopeFacade.setValue` throws on them — so the writable working
|
|
32
|
+
* key must have a different name from the read-only input).
|
|
33
|
+
*
|
|
34
|
+
* Chart shape (mirrors the diagram the team locked):
|
|
35
|
+
*
|
|
36
|
+
* Initialize
|
|
37
|
+
* → [memory READ subflows]
|
|
38
|
+
* → sf-llm-call (SUBFLOW — same boundary LLMCall produces)
|
|
39
|
+
* dynamicTurnSeed → InjectionEngine
|
|
40
|
+
* → Context (selector, PARALLEL fan-out, failFast)
|
|
41
|
+
* ⇉ {System Prompt ‖ Messages ‖ Tools} → converge
|
|
42
|
+
* → UpdateSkillHistory → Cache (sf-cache subflow)
|
|
43
|
+
* → CallLLM (emits iteration_start) → [NormalizeThinking]
|
|
44
|
+
* → Route (decider)
|
|
45
|
+
* ├─ tool-calls (pausable) → loopTo(sf-llm-call) ← branch-sourced loop
|
|
46
|
+
* └─ sf-final (the answer) → terminal leaf
|
|
47
|
+
*
|
|
48
|
+
* Classic ReAct keeps using `buildAgentChart` until its own shape is
|
|
49
|
+
* designed — this builder is Dynamic-only.
|
|
50
|
+
*/
|
|
51
|
+
import type { FlowChart } from 'footprintjs';
|
|
52
|
+
import type { AgentChartDeps } from './buildAgentChart.js';
|
|
53
|
+
/**
|
|
54
|
+
* Build the Dynamic-ReAct agent chart from the shared `AgentChartDeps`.
|
|
55
|
+
*/
|
|
56
|
+
export declare function buildDynamicAgentChart(deps: AgentChartDeps): FlowChart;
|
|
57
|
+
//# sourceMappingURL=buildDynamicAgentChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildDynamicAgentChart.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/buildDynamicAgentChart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AAUzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAgD3D;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,CAkTtE"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* buildMessageApiChart — PROOF of the locked "messageAPI merge-tree" shape
|
|
3
|
+
* (MENTAL_MODEL.md ★ LOCKED DESIGN), LLM-only (no tools subflow yet).
|
|
4
|
+
*
|
|
5
|
+
* This is Step 1 of the agreed build order: prove the Context-selector →
|
|
6
|
+
* slot subflows → messageAPI stage → Call-LLM tree works + renders, BEFORE
|
|
7
|
+
* bringing it to the Agent (Step 2 adds the tools subflow + the loop).
|
|
8
|
+
*
|
|
9
|
+
* Chart shape (LLM-only):
|
|
10
|
+
*
|
|
11
|
+
* Seed
|
|
12
|
+
* → Context (SELECTOR stage — picks which slots to engineer)
|
|
13
|
+
* ├─ sf-system-prompt ┐ (selected branches run in parallel)
|
|
14
|
+
* └─ sf-messages ──────┴─→ messageAPI stage (the join point)
|
|
15
|
+
* → Call-LLM
|
|
16
|
+
*
|
|
17
|
+
* WHY a selector (not a plain fork): "Context = Selector stage" — it RETURNS
|
|
18
|
+
* the list of slot branch ids to engineer this iteration, and `select()`
|
|
19
|
+
* captures evidence (which slots + why). That is what will unify Static and
|
|
20
|
+
* Dynamic agent in ONE chart later: Static picks only `messages` per loop;
|
|
21
|
+
* Dynamic also picks `system-prompt` (and `tools`) when they re-engineer.
|
|
22
|
+
* The picked-set IS the lit/unlit-pill signal. For this LLM-only proof the
|
|
23
|
+
* selector picks BOTH slots (a one-shot call engineers everything once).
|
|
24
|
+
*
|
|
25
|
+
* WHY messageAPI is a REAL stage: it assembles the LLM request bulk that the
|
|
26
|
+
* agent's `callLLM` builds invisibly today (callLLM.ts:132) — `systemPrompt`
|
|
27
|
+
* (separate field) + `messages` (the conversation, incl. tool-results) → the
|
|
28
|
+
* message-API payload. Making it a stage makes that assembly visible +
|
|
29
|
+
* inspectable in Lens/Trace. (Tools is a separate field added at Call-LLM —
|
|
30
|
+
* it joins in Step 2.)
|
|
31
|
+
*
|
|
32
|
+
* Slots are REAL subflows (reused verbatim: buildSystemPromptSlot /
|
|
33
|
+
* buildMessagesSlot) writing the convention INJECTION_KEYS, so ContextRecorder
|
|
34
|
+
* emits context.injected and Lens renders them — no bespoke collapser.
|
|
35
|
+
*/
|
|
36
|
+
import type { FlowChart } from 'footprintjs';
|
|
37
|
+
import type { LLMProvider } from '../../adapters/types.js';
|
|
38
|
+
export interface MessageApiChartDeps {
|
|
39
|
+
readonly provider: LLMProvider;
|
|
40
|
+
readonly model: string;
|
|
41
|
+
readonly systemPrompt: string;
|
|
42
|
+
readonly structureRecorders?: readonly import('footprintjs').StructureRecorder[];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Build the LLM-only messageAPI merge-tree chart.
|
|
46
|
+
*/
|
|
47
|
+
export declare function buildMessageApiChart(deps: MessageApiChartDeps): FlowChart;
|
|
48
|
+
//# sourceMappingURL=buildMessageApiChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildMessageApiChart.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/buildMessageApiChart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAuBvE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,OAAO,aAAa,EAAE,iBAAiB,EAAE,CAAC;CAClF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,SAAS,CA8HzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callLLM.d.ts","sourceRoot":"","sources":["../../../../../src/core/agent/stages/callLLM.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAEV,WAAW,EAGX,aAAa,EACb,YAAY,EACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAMnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;qDACiD;IACjD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC;;sEAEkE;IAClE,QAAQ,CAAC,WAAW,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/C;;;;;uBAKmB;IACnB,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IACzC;;;;;;oCAMgC;IAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1D;;yDAEqD;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,GACrB,CAAC,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"callLLM.d.ts","sourceRoot":"","sources":["../../../../../src/core/agent/stages/callLLM.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAEV,WAAW,EAGX,aAAa,EACb,YAAY,EACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAMnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;qDACiD;IACjD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC;;sEAEkE;IAClE,QAAQ,CAAC,WAAW,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/C;;;;;uBAKmB;IACnB,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IACzC;;;;;;oCAMgC;IAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1D;;yDAEqD;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,GACrB,CAAC,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAoNlD"}
|