agentfootprint 6.44.0 → 6.45.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/ai-instructions/setup.sh +0 -0
- package/dist/core/agent/buildAgentChart.js +2 -1
- package/dist/core/agent/buildAgentChart.js.map +1 -1
- package/dist/core/agent/buildDynamicAgentChart.js +3 -1
- package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/core/agent/stages/pickEntry.js +3 -1
- package/dist/core/agent/stages/pickEntry.js.map +1 -1
- package/dist/esm/adapters/identity/agentcore.d.ts +100 -0
- package/dist/esm/adapters/llm/AnthropicProvider.d.ts +130 -0
- package/dist/esm/adapters/llm/BedrockProvider.d.ts +100 -0
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.d.ts +41 -0
- package/dist/esm/adapters/llm/BrowserOpenAIProvider.d.ts +95 -0
- package/dist/esm/adapters/llm/MockProvider.d.ts +153 -0
- package/dist/esm/adapters/llm/OpenAIProvider.d.ts +220 -0
- package/dist/esm/adapters/llm/createProvider.d.ts +85 -0
- package/dist/esm/adapters/memory/agentcore.d.ts +146 -0
- package/dist/esm/adapters/memory/bedrockAgentMemory.d.ts +95 -0
- package/dist/esm/adapters/memory/redis.d.ts +127 -0
- package/dist/esm/adapters/observability/agentcore.d.ts +67 -0
- package/dist/esm/adapters/observability/audit.d.ts +254 -0
- package/dist/esm/adapters/observability/cloudwatch.d.ts +96 -0
- package/dist/esm/adapters/observability/otel.d.ts +237 -0
- package/dist/esm/adapters/observability/xray.d.ts +88 -0
- package/dist/esm/adapters/types.d.ts +378 -0
- package/dist/esm/bridge/eventMeta.d.ts +59 -0
- package/dist/esm/cache/CacheDecisionSubflow.d.ts +85 -0
- package/dist/esm/cache/CacheGateDecider.d.ts +127 -0
- package/dist/esm/cache/applyCachePolicy.d.ts +37 -0
- package/dist/esm/cache/cacheRecorder.d.ts +85 -0
- package/dist/esm/cache/index.d.ts +33 -0
- package/dist/esm/cache/strategies/AnthropicCacheStrategy.d.ts +38 -0
- package/dist/esm/cache/strategies/BedrockCacheStrategy.d.ts +33 -0
- package/dist/esm/cache/strategies/NoOpCacheStrategy.d.ts +29 -0
- package/dist/esm/cache/strategies/OpenAICacheStrategy.d.ts +36 -0
- package/dist/esm/cache/strategyRegistry.d.ts +45 -0
- package/dist/esm/cache/types.d.ts +243 -0
- package/dist/esm/conventions.d.ts +203 -0
- package/dist/esm/core/Agent.d.ts +355 -0
- package/dist/esm/core/LLMCall.d.ts +139 -0
- package/dist/esm/core/RunnerBase.d.ts +267 -0
- package/dist/esm/core/agent/AgentBuilder.d.ts +565 -0
- package/dist/esm/core/agent/buildAgentChart.d.ts +109 -0
- package/dist/esm/core/agent/buildAgentChart.js +2 -1
- package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
- package/dist/esm/core/agent/buildAgentMessageApiChart.d.ts +40 -0
- package/dist/esm/core/agent/buildCacheSubflow.d.ts +35 -0
- package/dist/esm/core/agent/buildDynamicAgentChart.d.ts +56 -0
- package/dist/esm/core/agent/buildDynamicAgentChart.js +3 -1
- package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/esm/core/agent/buildMessageApiChart.d.ts +47 -0
- package/dist/esm/core/agent/buildToolRegistry.d.ts +61 -0
- package/dist/esm/core/agent/memoryRecallInjections.d.ts +8 -0
- package/dist/esm/core/agent/stages/breakFinal.d.ts +22 -0
- package/dist/esm/core/agent/stages/callLLM.d.ts +74 -0
- package/dist/esm/core/agent/stages/pickEntry.d.ts +19 -0
- package/dist/esm/core/agent/stages/pickEntry.js +3 -1
- package/dist/esm/core/agent/stages/pickEntry.js.map +1 -1
- package/dist/esm/core/agent/stages/prepareFinal.d.ts +19 -0
- package/dist/esm/core/agent/stages/reliabilityExecution.d.ts +135 -0
- package/dist/esm/core/agent/stages/route.d.ts +18 -0
- package/dist/esm/core/agent/stages/seed.d.ts +53 -0
- package/dist/esm/core/agent/stages/toolCalls.d.ts +76 -0
- package/dist/esm/core/agent/toolArgsValidation.d.ts +62 -0
- package/dist/esm/core/agent/types.d.ts +382 -0
- package/dist/esm/core/agent/validators.d.ts +52 -0
- package/dist/esm/core/cost.d.ts +38 -0
- package/dist/esm/core/flowchartAsTool.d.ts +200 -0
- package/dist/esm/core/humanizeLLMError.d.ts +23 -0
- package/dist/esm/core/outputFallback.d.ts +139 -0
- package/dist/esm/core/outputSchema.d.ts +127 -0
- package/dist/esm/core/pause.d.ts +74 -0
- package/dist/esm/core/runCheckpoint.d.ts +179 -0
- package/dist/esm/core/runner.d.ts +203 -0
- package/dist/esm/core/slots/buildMessagesSlot.d.ts +40 -0
- package/dist/esm/core/slots/buildSystemPromptSlot.d.ts +41 -0
- package/dist/esm/core/slots/buildThinkingSubflow.d.ts +40 -0
- package/dist/esm/core/slots/buildToolsSlot.d.ts +60 -0
- package/dist/esm/core/slots/helpers.d.ts +27 -0
- package/dist/esm/core/toolContract.d.ts +43 -0
- package/dist/esm/core/tools.d.ts +90 -0
- package/dist/esm/core/translator.d.ts +94 -0
- package/dist/esm/core-flow/Conditional.d.ts +119 -0
- package/dist/esm/core-flow/Loop.d.ts +160 -0
- package/dist/esm/core-flow/Parallel.d.ts +360 -0
- package/dist/esm/core-flow/Sequence.d.ts +133 -0
- package/dist/esm/events/dispatcher.d.ts +134 -0
- package/dist/esm/events/payloads.d.ts +761 -0
- package/dist/esm/events/registry.d.ts +198 -0
- package/dist/esm/events/types.d.ts +70 -0
- package/dist/esm/identity/kinds.d.ts +36 -0
- package/dist/esm/identity/staticTokens.d.ts +28 -0
- package/dist/esm/identity/types.d.ts +113 -0
- package/dist/esm/identity/withCredentialRetry.d.ts +64 -0
- package/dist/esm/identity.d.ts +31 -0
- package/dist/esm/index.d.ts +64 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/injection-engine.d.ts +4 -0
- package/dist/esm/lib/canonicalJson.d.ts +56 -0
- package/dist/esm/lib/context-bisect/ablation.d.ts +109 -0
- package/dist/esm/lib/context-bisect/bisect.d.ts +75 -0
- package/dist/esm/lib/context-bisect/cost.d.ts +37 -0
- package/dist/esm/lib/context-bisect/index.d.ts +31 -0
- package/dist/esm/lib/context-bisect/index.js +3 -0
- package/dist/esm/lib/context-bisect/index.js.map +1 -1
- package/dist/esm/lib/context-bisect/llmEdgeWeigher.d.ts +124 -0
- package/dist/esm/lib/context-bisect/localize.d.ts +152 -0
- package/dist/esm/lib/context-bisect/localize.js +2 -0
- package/dist/esm/lib/context-bisect/localize.js.map +1 -1
- package/dist/esm/lib/context-bisect/loop-recall.d.ts +97 -0
- package/dist/esm/lib/context-bisect/missingContext.d.ts +71 -0
- package/dist/esm/lib/context-bisect/restoration.d.ts +39 -0
- package/dist/esm/lib/context-bisect/toBacktrackTrace.d.ts +138 -0
- package/dist/esm/lib/context-bisect/trajectory.d.ts +168 -0
- package/dist/esm/lib/context-bisect/types.d.ts +448 -0
- package/dist/esm/lib/context-bisect/walk-to-root.d.ts +103 -0
- package/dist/esm/lib/influence-core/attributability.d.ts +72 -0
- package/dist/esm/lib/influence-core/cache.d.ts +94 -0
- package/dist/esm/lib/influence-core/contrastive.d.ts +26 -0
- package/dist/esm/lib/influence-core/index.d.ts +34 -0
- package/dist/esm/lib/influence-core/margin.d.ts +33 -0
- package/dist/esm/lib/influence-core/signals.d.ts +128 -0
- package/dist/esm/lib/influence-core/similarity.d.ts +25 -0
- package/dist/esm/lib/influence-core/types.d.ts +252 -0
- package/dist/esm/lib/injection-engine/SkillRegistry.d.ts +147 -0
- package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.d.ts +110 -0
- package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.js +1 -0
- package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
- package/dist/esm/lib/injection-engine/entryScorer.d.ts +93 -0
- package/dist/esm/lib/injection-engine/entryScorer.js +172 -0
- package/dist/esm/lib/injection-engine/entryScorer.js.map +1 -0
- package/dist/esm/lib/injection-engine/evaluator.d.ts +24 -0
- package/dist/esm/lib/injection-engine/factories/defineFact.d.ts +60 -0
- package/dist/esm/lib/injection-engine/factories/defineInjection.d.ts +41 -0
- package/dist/esm/lib/injection-engine/factories/defineInstruction.d.ts +78 -0
- package/dist/esm/lib/injection-engine/factories/defineRelevanceHint.d.ts +26 -0
- package/dist/esm/lib/injection-engine/factories/defineSkill.d.ts +160 -0
- package/dist/esm/lib/injection-engine/factories/defineSteering.d.ts +39 -0
- package/dist/esm/lib/injection-engine/index.d.ts +22 -0
- package/dist/esm/lib/injection-engine/index.js +1 -0
- package/dist/esm/lib/injection-engine/index.js.map +1 -1
- package/dist/esm/lib/injection-engine/skillContract.d.ts +29 -0
- package/dist/esm/lib/injection-engine/skillGraph.d.ts +289 -0
- package/dist/esm/lib/injection-engine/skillGraph.js +35 -41
- package/dist/esm/lib/injection-engine/skillGraph.js.map +1 -1
- package/dist/esm/lib/injection-engine/skillGraphCheckup.d.ts +49 -0
- package/dist/esm/lib/injection-engine/skillTools.d.ts +72 -0
- package/dist/esm/lib/injection-engine/softmax.d.ts +11 -0
- package/dist/esm/lib/injection-engine/types.d.ts +229 -0
- package/dist/esm/lib/injection-engine/types.js.map +1 -1
- package/dist/esm/lib/lazyRequire.d.ts +29 -0
- package/dist/esm/lib/mcp/index.d.ts +9 -0
- package/dist/esm/lib/mcp/mcpClient.d.ts +46 -0
- package/dist/esm/lib/mcp/mockMcpClient.d.ts +65 -0
- package/dist/esm/lib/mcp/types.d.ts +133 -0
- package/dist/esm/lib/rag/defineRAG.d.ts +139 -0
- package/dist/esm/lib/rag/index.d.ts +7 -0
- package/dist/esm/lib/rag/indexDocuments.d.ts +105 -0
- package/dist/esm/lib/tool-lint/analyze.d.ts +83 -0
- package/dist/esm/lib/tool-lint/cli.d.ts +43 -0
- package/dist/esm/lib/tool-lint/format.d.ts +18 -0
- package/dist/esm/lib/tool-lint/index.d.ts +23 -0
- package/dist/esm/lib/tool-lint/rules.d.ts +85 -0
- package/dist/esm/lib/tool-lint/types.d.ts +155 -0
- package/dist/esm/lib/trace-toolpack/bounded.d.ts +47 -0
- package/dist/esm/lib/trace-toolpack/debugPrompt.d.ts +19 -0
- package/dist/esm/lib/trace-toolpack/index.d.ts +20 -0
- package/dist/esm/lib/trace-toolpack/lazyToolpack.d.ts +35 -0
- package/dist/esm/lib/trace-toolpack/selfExplain.d.ts +100 -0
- package/dist/esm/lib/trace-toolpack/traceDebugAgent.d.ts +42 -0
- package/dist/esm/lib/trace-toolpack/traceToolpack.d.ts +69 -0
- package/dist/esm/lib/trace-toolpack/types.d.ts +59 -0
- package/dist/esm/llm-providers.d.ts +26 -0
- package/dist/esm/locales/index.d.ts +132 -0
- package/dist/esm/memory/beats/extractBeats.d.ts +61 -0
- package/dist/esm/memory/beats/extractor.d.ts +47 -0
- package/dist/esm/memory/beats/formatAsNarrative.d.ts +62 -0
- package/dist/esm/memory/beats/heuristicExtractor.d.ts +37 -0
- package/dist/esm/memory/beats/index.d.ts +12 -0
- package/dist/esm/memory/beats/llmExtractor.d.ts +56 -0
- package/dist/esm/memory/beats/types.d.ts +60 -0
- package/dist/esm/memory/beats/writeBeats.d.ts +22 -0
- package/dist/esm/memory/causal/evidenceRecorder.d.ts +66 -0
- package/dist/esm/memory/causal/index.d.ts +6 -0
- package/dist/esm/memory/causal/loadSnapshot.d.ts +51 -0
- package/dist/esm/memory/causal/snapshotPipeline.d.ts +35 -0
- package/dist/esm/memory/causal/types.d.ts +130 -0
- package/dist/esm/memory/causal/writeSnapshot.d.ts +73 -0
- package/dist/esm/memory/define.d.ts +63 -0
- package/dist/esm/memory/define.types.d.ts +276 -0
- package/dist/esm/memory/define.types.js +1 -1
- package/dist/esm/memory/embedding/cosine.d.ts +18 -0
- package/dist/esm/memory/embedding/embedMessages.d.ts +58 -0
- package/dist/esm/memory/embedding/index.d.ts +8 -0
- package/dist/esm/memory/embedding/loadRelevant.d.ts +51 -0
- package/dist/esm/memory/embedding/mockEmbedder.d.ts +22 -0
- package/dist/esm/memory/embedding/types.d.ts +46 -0
- package/dist/esm/memory/entry/decay.d.ts +36 -0
- package/dist/esm/memory/entry/index.d.ts +2 -0
- package/dist/esm/memory/entry/types.d.ts +140 -0
- package/dist/esm/memory/facts/extractFacts.d.ts +50 -0
- package/dist/esm/memory/facts/extractor.d.ts +33 -0
- package/dist/esm/memory/facts/formatFacts.d.ts +60 -0
- package/dist/esm/memory/facts/index.d.ts +14 -0
- package/dist/esm/memory/facts/llmFactExtractor.d.ts +64 -0
- package/dist/esm/memory/facts/loadFacts.d.ts +43 -0
- package/dist/esm/memory/facts/patternFactExtractor.d.ts +2 -0
- package/dist/esm/memory/facts/types.d.ts +68 -0
- package/dist/esm/memory/facts/writeFacts.d.ts +19 -0
- package/dist/esm/memory/identity/index.d.ts +2 -0
- package/dist/esm/memory/identity/types.d.ts +49 -0
- package/dist/esm/memory/index.d.ts +19 -0
- package/dist/esm/memory/pipeline/auto.d.ts +59 -0
- package/dist/esm/memory/pipeline/default.d.ts +49 -0
- package/dist/esm/memory/pipeline/ephemeral.d.ts +28 -0
- package/dist/esm/memory/pipeline/fact.d.ts +26 -0
- package/dist/esm/memory/pipeline/index.d.ts +13 -0
- package/dist/esm/memory/pipeline/narrative.d.ts +35 -0
- package/dist/esm/memory/pipeline/semantic.d.ts +37 -0
- package/dist/esm/memory/pipeline/types.d.ts +31 -0
- package/dist/esm/memory/stages/formatDefault.d.ts +64 -0
- package/dist/esm/memory/stages/index.d.ts +13 -0
- package/dist/esm/memory/stages/loadRecent.d.ts +49 -0
- package/dist/esm/memory/stages/pickByBudget.d.ts +63 -0
- package/dist/esm/memory/stages/summarize.d.ts +87 -0
- package/dist/esm/memory/stages/tokenize.d.ts +43 -0
- package/dist/esm/memory/stages/types.d.ts +75 -0
- package/dist/esm/memory/stages/writeMessages.d.ts +71 -0
- package/dist/esm/memory/store/InMemoryStore.d.ts +62 -0
- package/dist/esm/memory/store/index.d.ts +2 -0
- package/dist/esm/memory/store/types.d.ts +223 -0
- package/dist/esm/memory/wire/index.d.ts +2 -0
- package/dist/esm/memory/wire/mountMemoryPipeline.d.ts +108 -0
- package/dist/esm/memory-providers.d.ts +37 -0
- package/dist/esm/observability/contextError/finders/compareFinders.d.ts +19 -0
- package/dist/esm/observability/contextError/finders/index.d.ts +22 -0
- package/dist/esm/observability/contextError/finders/rankSuspects.d.ts +2 -0
- package/dist/esm/observability/contextError/finders/removeAndRetry.d.ts +11 -0
- package/dist/esm/observability/contextError/finders/shrinkToCause.d.ts +11 -0
- package/dist/esm/observability/contextError/finders/testManyCombos.d.ts +11 -0
- package/dist/esm/observability/contextError/finders/traceSteps.d.ts +2 -0
- package/dist/esm/observability/contextError/finders/types.d.ts +88 -0
- package/dist/esm/observability-providers.d.ts +46 -0
- package/dist/esm/observe.d.ts +62 -0
- package/dist/esm/patterns/Debate.d.ts +39 -0
- package/dist/esm/patterns/MapReduce.d.ts +66 -0
- package/dist/esm/patterns/Reflection.d.ts +51 -0
- package/dist/esm/patterns/SelfConsistency.d.ts +43 -0
- package/dist/esm/patterns/Swarm.d.ts +60 -0
- package/dist/esm/patterns/ToT.d.ts +53 -0
- package/dist/esm/patterns/index.d.ts +22 -0
- package/dist/esm/providers.d.ts +33 -0
- package/dist/esm/recorders/core/AgentRecorder.d.ts +15 -0
- package/dist/esm/recorders/core/CompositionRecorder.d.ts +17 -0
- package/dist/esm/recorders/core/ContextEvaluatedRecorder.d.ts +23 -0
- package/dist/esm/recorders/core/ContextRecorder.d.ts +47 -0
- package/dist/esm/recorders/core/CostRecorder.d.ts +14 -0
- package/dist/esm/recorders/core/EmitBridge.d.ts +30 -0
- package/dist/esm/recorders/core/ErrorBridge.d.ts +38 -0
- package/dist/esm/recorders/core/EvalRecorder.d.ts +16 -0
- package/dist/esm/recorders/core/MemoryRecorder.d.ts +17 -0
- package/dist/esm/recorders/core/PermissionRecorder.d.ts +16 -0
- package/dist/esm/recorders/core/ReliabilityRecorder.d.ts +24 -0
- package/dist/esm/recorders/core/SkillRecorder.d.ts +14 -0
- package/dist/esm/recorders/core/StreamRecorder.d.ts +15 -0
- package/dist/esm/recorders/core/ToolsRecorder.d.ts +18 -0
- package/dist/esm/recorders/core/ValidationRecorder.d.ts +16 -0
- package/dist/esm/recorders/core/contextEngineering.d.ts +136 -0
- package/dist/esm/recorders/core/typedEmit.d.ts +34 -0
- package/dist/esm/recorders/core/types.d.ts +97 -0
- package/dist/esm/recorders/observability/AgentThinkingTraceRecorder.d.ts +117 -0
- package/dist/esm/recorders/observability/BoundaryRecorder.d.ts +546 -0
- package/dist/esm/recorders/observability/FlowchartRecorder.d.ts +220 -0
- package/dist/esm/recorders/observability/LiveStateRecorder.d.ts +250 -0
- package/dist/esm/recorders/observability/LoggingRecorder.d.ts +91 -0
- package/dist/esm/recorders/observability/RouteRecorder.d.ts +83 -0
- package/dist/esm/recorders/observability/RunStepRecorder.d.ts +231 -0
- package/dist/esm/recorders/observability/StatusRecorder.d.ts +36 -0
- package/dist/esm/recorders/observability/ToolChoiceRecorder.d.ts +164 -0
- package/dist/esm/recorders/observability/ToolLineageRecorder.d.ts +71 -0
- package/dist/esm/recorders/observability/commentary/commentaryTemplates.d.ts +105 -0
- package/dist/esm/recorders/observability/internal/ActorArrowClassifier.d.ts +25 -0
- package/dist/esm/recorders/observability/internal/CandidateAnswerBuffer.d.ts +28 -0
- package/dist/esm/recorders/observability/internal/ForkTracker.d.ts +60 -0
- package/dist/esm/recorders/observability/internal/RootInferrer.d.ts +51 -0
- package/dist/esm/recorders/observability/internal/SequenceSiblingTracker.d.ts +24 -0
- package/dist/esm/recorders/observability/localObservability.d.ts +48 -0
- package/dist/esm/recorders/observability/observeRunId.d.ts +36 -0
- package/dist/esm/recorders/observability/status/statusTemplates.d.ts +106 -0
- package/dist/esm/recorders/observability/trace.d.ts +119 -0
- package/dist/esm/reliability/CircuitBreaker.d.ts +75 -0
- package/dist/esm/reliability/buildReliabilityGateChart.d.ts +53 -0
- package/dist/esm/reliability/classifyError.d.ts +28 -0
- package/dist/esm/reliability/index.d.ts +35 -0
- package/dist/esm/reliability/types.d.ts +327 -0
- package/dist/esm/resilience/fallbackProvider.d.ts +33 -0
- package/dist/esm/resilience/index.d.ts +21 -0
- package/dist/esm/resilience/withCircuitBreaker.d.ts +129 -0
- package/dist/esm/resilience/withFallback.d.ts +45 -0
- package/dist/esm/resilience/withRetry.d.ts +71 -0
- package/dist/esm/security/PermissionPolicy.d.ts +124 -0
- package/dist/esm/security/PolicyHaltError.d.ts +72 -0
- package/dist/esm/security/extractSequence.d.ts +46 -0
- package/dist/esm/security/index.d.ts +44 -0
- package/dist/esm/security/thinkingRedaction.d.ts +50 -0
- package/dist/esm/status.d.ts +48 -0
- package/dist/esm/strategies/attach.d.ts +47 -0
- package/dist/esm/strategies/compose.d.ts +48 -0
- package/dist/esm/strategies/defaults/chatBubbleLiveStatus.d.ts +36 -0
- package/dist/esm/strategies/defaults/consoleObservability.d.ts +42 -0
- package/dist/esm/strategies/defaults/inMemorySinkCost.d.ts +50 -0
- package/dist/esm/strategies/defaults/index.d.ts +30 -0
- package/dist/esm/strategies/defaults/noopLens.d.ts +28 -0
- package/dist/esm/strategies/index.d.ts +36 -0
- package/dist/esm/strategies/registry.d.ts +70 -0
- package/dist/esm/strategies/types.d.ts +303 -0
- package/dist/esm/stream.d.ts +82 -0
- package/dist/esm/thinking/AnthropicThinkingHandler.d.ts +42 -0
- package/dist/esm/thinking/MockThinkingHandler.d.ts +50 -0
- package/dist/esm/thinking/OpenAIThinkingHandler.d.ts +37 -0
- package/dist/esm/thinking/index.d.ts +51 -0
- package/dist/esm/thinking/registry.d.ts +33 -0
- package/dist/esm/thinking/types.d.ts +162 -0
- package/dist/esm/tool-providers/gatedTools.d.ts +36 -0
- package/dist/esm/tool-providers/index.d.ts +41 -0
- package/dist/esm/tool-providers/skillScopedTools.d.ts +45 -0
- package/dist/esm/tool-providers/staticTools.d.ts +21 -0
- package/dist/esm/tool-providers/types.d.ts +138 -0
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/context-bisect/index.js +3 -0
- package/dist/lib/context-bisect/index.js.map +1 -1
- package/dist/lib/context-bisect/localize.js +2 -0
- package/dist/lib/context-bisect/localize.js.map +1 -1
- package/dist/lib/injection-engine/buildInjectionEngineSubflow.js +1 -0
- package/dist/lib/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
- package/dist/lib/injection-engine/entryScorer.js +178 -0
- package/dist/lib/injection-engine/entryScorer.js.map +1 -0
- package/dist/lib/injection-engine/index.js +5 -1
- package/dist/lib/injection-engine/index.js.map +1 -1
- package/dist/lib/injection-engine/skillGraph.js +35 -41
- package/dist/lib/injection-engine/skillGraph.js.map +1 -1
- package/dist/lib/injection-engine/types.js.map +1 -1
- package/dist/memory/define.types.js +1 -1
- package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/stages/pickEntry.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +8 -4
- package/dist/types/core/agent/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/context-bisect/index.d.ts +3 -0
- package/dist/types/lib/context-bisect/index.d.ts.map +1 -1
- package/dist/types/lib/context-bisect/localize.d.ts +2 -0
- package/dist/types/lib/context-bisect/localize.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/buildInjectionEngineSubflow.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/entryScorer.d.ts +94 -0
- package/dist/types/lib/injection-engine/entryScorer.d.ts.map +1 -0
- package/dist/types/lib/injection-engine/index.d.ts +1 -0
- package/dist/types/lib/injection-engine/index.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/skillGraph.d.ts +21 -24
- package/dist/types/lib/injection-engine/skillGraph.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/types.d.ts +9 -4
- package/dist/types/lib/injection-engine/types.d.ts.map +1 -1
- package/dist/types/memory/define.types.d.ts +1 -1
- package/package.json +203 -56
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context-error finders — the plain, pluggable public surface for context-bug
|
|
3
|
+
* localization. A `Finder` answers one question: "which piece of context made the
|
|
4
|
+
* agent's answer wrong?" Each finder is a thin, named adapter over the engines in
|
|
5
|
+
* `src/lib/context-bisect` + `src/lib/influence-core`; the academic method + citation
|
|
6
|
+
* live in `meta`, never in the import name.
|
|
7
|
+
*
|
|
8
|
+
* Taxonomy (area / category / thing): observability / contextError / finders.
|
|
9
|
+
* Tree-shakeable: one finder = one file = one named export; import only what you use.
|
|
10
|
+
*/
|
|
11
|
+
import type { Embedder } from '../../../lib/influence-core/index.js';
|
|
12
|
+
/** How sure the finder is. `guessed` = ranked by a similarity proxy only;
|
|
13
|
+
* `proven` = a removal/re-run actually flipped the outcome (counterfactual). */
|
|
14
|
+
export type Evidence = 'guessed' | 'proven';
|
|
15
|
+
/** What the finder points at. `piece` = a context element; `step` = an agent step. */
|
|
16
|
+
export type Granularity = 'piece' | 'step';
|
|
17
|
+
/** A removable piece of context the finder can suspect. */
|
|
18
|
+
export interface ContextPiece {
|
|
19
|
+
readonly id: string;
|
|
20
|
+
readonly text: string;
|
|
21
|
+
}
|
|
22
|
+
/** One agent step (a tool-call), for finders that work at step granularity. */
|
|
23
|
+
export interface StepInput {
|
|
24
|
+
readonly id: string;
|
|
25
|
+
/** Human-readable label, e.g. `get_promo@L1`. */
|
|
26
|
+
readonly label: string;
|
|
27
|
+
readonly text: string;
|
|
28
|
+
}
|
|
29
|
+
/** Everything a finder may need. Light finders use `embedder`; counterfactual
|
|
30
|
+
* finders use `rerun`; step finders use `steps`. A finder throws if a field it
|
|
31
|
+
* needs is missing. */
|
|
32
|
+
export interface FindInput {
|
|
33
|
+
/** The removable context pieces to consider. */
|
|
34
|
+
readonly suspects: readonly ContextPiece[];
|
|
35
|
+
/** The wrong answer to explain. */
|
|
36
|
+
readonly wrongOutput: string;
|
|
37
|
+
/** Embedder for similarity-ranking finders. */
|
|
38
|
+
readonly embedder?: Embedder;
|
|
39
|
+
/** Re-run with the given pieces removed; `recovered` = the outcome flipped back. */
|
|
40
|
+
readonly rerun?: (removedIds: readonly string[]) => Promise<{
|
|
41
|
+
recovered: boolean;
|
|
42
|
+
outcome?: string;
|
|
43
|
+
}>;
|
|
44
|
+
/** The agent's steps, for step-granularity finders. */
|
|
45
|
+
readonly steps?: readonly StepInput[];
|
|
46
|
+
/** For testManyCombos: how many on/off combinations to sample (default ~4×#suspects). */
|
|
47
|
+
readonly samples?: number;
|
|
48
|
+
}
|
|
49
|
+
/** One suspect in the finder's ranked output. */
|
|
50
|
+
export interface ScoredSuspect {
|
|
51
|
+
readonly id: string;
|
|
52
|
+
/** Higher = more suspicious. Absent for finders that don't score. */
|
|
53
|
+
readonly score?: number;
|
|
54
|
+
}
|
|
55
|
+
/** What a finder returns. Plain fields, namespace-independent. */
|
|
56
|
+
export interface FindResult {
|
|
57
|
+
/** Which finder produced this. */
|
|
58
|
+
readonly finder: string;
|
|
59
|
+
/** Suspects, most-to-least suspicious. */
|
|
60
|
+
readonly suspects: readonly ScoredSuspect[];
|
|
61
|
+
/** The single top suspect, if any. */
|
|
62
|
+
readonly lead?: string;
|
|
63
|
+
/** The small set worth confirming when there is no clear single winner. */
|
|
64
|
+
readonly shortlist: readonly string[];
|
|
65
|
+
/** `guessed` (proxy) vs `proven` (counterfactual). */
|
|
66
|
+
readonly evidence: Evidence;
|
|
67
|
+
/** `piece` vs `step`. */
|
|
68
|
+
readonly granularity: Granularity;
|
|
69
|
+
/** How many times the finder re-ran the agent (the honest cost). 0 = free. */
|
|
70
|
+
readonly checks: number;
|
|
71
|
+
/** A self-explaining narrative of how the finder reached its answer. */
|
|
72
|
+
readonly explanation: string;
|
|
73
|
+
}
|
|
74
|
+
/** Attribution — kept off the import name, surfaced in docs / leaderboards. */
|
|
75
|
+
export interface FinderMeta {
|
|
76
|
+
/** Plain one-liner for a leaderboard row. */
|
|
77
|
+
readonly label: string;
|
|
78
|
+
/** The precise technique, for experts. */
|
|
79
|
+
readonly method: string;
|
|
80
|
+
/** Citation, if the finder reimplements a published method. */
|
|
81
|
+
readonly paper?: string;
|
|
82
|
+
}
|
|
83
|
+
/** A pluggable context-error finder. */
|
|
84
|
+
export interface Finder {
|
|
85
|
+
readonly name: string;
|
|
86
|
+
readonly meta: FinderMeta;
|
|
87
|
+
find(input: FindInput): Promise<FindResult>;
|
|
88
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentfootprint/observability-providers — vendor observability strategies.
|
|
3
|
+
*
|
|
4
|
+
* Grouped subpath following the parallel-providers pattern v2.5
|
|
5
|
+
* established for `llm-providers` / `tool-providers` /
|
|
6
|
+
* `memory-providers`. Adding a new vendor adds an export here, NOT
|
|
7
|
+
* a new subpath — keeps `package.json#exports` from sprawling.
|
|
8
|
+
*
|
|
9
|
+
* Each adapter lazy-imports its vendor SDK via `lib/lazyRequire.ts`,
|
|
10
|
+
* so consumers who never call a particular factory don't have to
|
|
11
|
+
* install that SDK. Peer-deps are declared in package.json with
|
|
12
|
+
* `peerDependenciesMeta.{name}.optional = true`.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { agentcoreObservability } from 'agentfootprint/observability-providers';
|
|
17
|
+
* import { microtaskBatchDriver } from 'footprintjs/detach';
|
|
18
|
+
*
|
|
19
|
+
* agent.enable.observability({
|
|
20
|
+
* strategy: agentcoreObservability({
|
|
21
|
+
* region: 'us-east-1',
|
|
22
|
+
* logGroupName: '/agentfootprint/my-agent',
|
|
23
|
+
* }),
|
|
24
|
+
* // Recommended — keeps the agent loop unblocked by network latency.
|
|
25
|
+
* detach: { driver: microtaskBatchDriver, mode: 'forget' },
|
|
26
|
+
* });
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* Roadmap:
|
|
30
|
+
* - agentcoreObservability ← v2.8.1
|
|
31
|
+
* - cloudwatchObservability ← v2.8.2
|
|
32
|
+
* - xrayObservability ← v2.8.3
|
|
33
|
+
* - otelObservability ← v2.9.0 (this release)
|
|
34
|
+
*
|
|
35
|
+
* Note: `datadogObservability` was on the v2.9 roadmap, but Datadog
|
|
36
|
+
* APM accepts OTLP — point your OTel SDK at Datadog's OTLP endpoint
|
|
37
|
+
* and `otelObservability` covers the Datadog use case. We'll ship a
|
|
38
|
+
* dedicated `dd-trace`-based adapter only if real-world feedback
|
|
39
|
+
* demands the native Datadog APM client.
|
|
40
|
+
*/
|
|
41
|
+
export { agentcoreObservability, type AgentcoreObservabilityOptions, } from './adapters/observability/agentcore.js';
|
|
42
|
+
export { cloudwatchObservability, type CloudwatchObservabilityOptions, } from './adapters/observability/cloudwatch.js';
|
|
43
|
+
export { xrayObservability, type XrayObservabilityOptions, type XRayLikeClient, } from './adapters/observability/xray.js';
|
|
44
|
+
export { otelObservability, type OtelObservabilityOptions, type OtelObservabilityStrategy, type OtelDecisionEvidenceRecorder, type OtelTracerLike, type OtelSpanLike, type OtelSpanOptions, type OtelAttributeValue, } from './adapters/observability/otel.js';
|
|
45
|
+
export { auditExport, verifyAuditBundle, AUDIT_BUNDLE_FORMAT, AUDIT_GENESIS_EVENT_TYPE, AUDIT_ZERO_HASH, type AuditBundle, type AuditBundleHeader, type AuditExportOptions, type AuditExportStrategy, type AuditRecord, type AuditVerifyResult, } from './adapters/observability/audit.js';
|
|
46
|
+
export { canonicalJson, CANONICAL_JSON_VERSION } from './lib/canonicalJson.js';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentfootprint/observe — observability recorders.
|
|
3
|
+
*
|
|
4
|
+
* Pattern: Observer (GoF) — pluggable, fire-and-forget event listeners
|
|
5
|
+
* for the agent's typed event stream.
|
|
6
|
+
* Role: Outer ring (Hexagonal). Attach via `runner.attachScopeRecorder()`;
|
|
7
|
+
* the runner emits events, recorders accumulate state.
|
|
8
|
+
*
|
|
9
|
+
* Three tiers (progressive disclosure):
|
|
10
|
+
*
|
|
11
|
+
* Tier 1 — context + stream (the core)
|
|
12
|
+
* • ContextRecorder — every slot composition
|
|
13
|
+
* • StreamRecorder — token-level LLM streaming
|
|
14
|
+
*
|
|
15
|
+
* Tier 2 — composition + agent (structural nav)
|
|
16
|
+
* • CompositionRecorder — Sequence/Parallel/Conditional/Loop entries
|
|
17
|
+
* • AgentRecorder — agent-loop iterations, tool calls
|
|
18
|
+
* • BoundaryRecorder — domain-tagged subflow entry/exit
|
|
19
|
+
* • FlowchartRecorder — StepGraph projection (Lens-friendly)
|
|
20
|
+
*
|
|
21
|
+
* Tier 3 — domain dashboards (attach on demand)
|
|
22
|
+
* • CostRecorder — token/USD spend
|
|
23
|
+
* • EvalRecorder — eval scores from `runner.emit('eval.*', ...)`
|
|
24
|
+
* • MemoryRecorder — memory injections + writes
|
|
25
|
+
* • PermissionRecorder — permission decisions + denials
|
|
26
|
+
* • SkillRecorder — skill activations
|
|
27
|
+
* • LoggingRecorder — structured log lines per event
|
|
28
|
+
* • StatusRecorder — chat-bubble first-person status
|
|
29
|
+
*
|
|
30
|
+
* Domain-flavored consumers (Lens, Grafana, Datadog) compose Tier 1+2
|
|
31
|
+
* directly; Tier 3 dashboards are opt-in.
|
|
32
|
+
*/
|
|
33
|
+
export { ContextRecorder, type ContextRecorderOptions } from './recorders/core/ContextRecorder.js';
|
|
34
|
+
export { streamRecorder, type StreamRecorderOptions } from './recorders/core/StreamRecorder.js';
|
|
35
|
+
export { compositionRecorder, type CompositionRecorderOptions, } from './recorders/core/CompositionRecorder.js';
|
|
36
|
+
export { agentRecorder, type AgentRecorderOptions } from './recorders/core/AgentRecorder.js';
|
|
37
|
+
export { boundaryRecorder, BoundaryRecorder, type ActorArrow, type BoundaryAggregate, type BoundaryRecorderOptions, type BoundaryRangeLabel, type DomainContextInjectedEvent, type DomainDecisionBranchEvent, type DomainEvent, type DomainForkBranchEvent, type DomainLLMEndEvent, type DomainLLMStartEvent, type DomainLoopIterationEvent, type DomainRunEvent, type DomainSubflowEvent, type DomainToolStartEvent, type DomainToolEndEvent, } from './recorders/observability/BoundaryRecorder.js';
|
|
38
|
+
export { buildRunSteps, RunStepRecorder, runStepRecorder, type BuildRunStepsOptions, type RunStep, type RunStepGraph, type RunStepKind, type RunStepMeta, type RunStepRecorderOptions, type RunStepTransition, } from './recorders/observability/RunStepRecorder.js';
|
|
39
|
+
export { attachFlowchart, buildStepGraph, buildStepGraphFromEvents, type StepGraph, type StepNode, type StepEdge, type SlotBoundary, type ContextInjection, type FlowchartOptions, type FlowchartHandle, } from './recorders/observability/FlowchartRecorder.js';
|
|
40
|
+
export { serializeTrace, redactContent, traceToStepGraph, type Trace, type TraceSummary, type TraceRedaction, type SerializeTraceOptions, } from './recorders/observability/trace.js';
|
|
41
|
+
export { attachLocalObservability, type LocalObservabilityHandle, type LocalObservabilityOptions, } from './recorders/observability/localObservability.js';
|
|
42
|
+
export { liveStateRecorder, LiveStateRecorder, LiveLLMTracker, LiveToolTracker, LiveAgentTurnTracker, type LLMLiveState, type ToolLiveState, type AgentTurnLiveState, type LiveStateRunnerLike, } from './recorders/observability/LiveStateRecorder.js';
|
|
43
|
+
export { costRecorder, type CostRecorderOptions } from './recorders/core/CostRecorder.js';
|
|
44
|
+
export { toolsRecorder, type ToolsRecorderOptions } from './recorders/core/ToolsRecorder.js';
|
|
45
|
+
export { contextEvaluatedRecorder, type ContextEvaluatedRecorderOptions, } from './recorders/core/ContextEvaluatedRecorder.js';
|
|
46
|
+
export { evalRecorder, type EvalRecorderOptions } from './recorders/core/EvalRecorder.js';
|
|
47
|
+
export { memoryRecorder, type MemoryRecorderOptions } from './recorders/core/MemoryRecorder.js';
|
|
48
|
+
export { permissionRecorder, type PermissionRecorderOptions, } from './recorders/core/PermissionRecorder.js';
|
|
49
|
+
export { skillRecorder, type SkillRecorderOptions } from './recorders/core/SkillRecorder.js';
|
|
50
|
+
export { attachLogging, LoggingDomains, type LoggingLogger, type LoggingDomain, type LoggingOptions, } from './recorders/observability/LoggingRecorder.js';
|
|
51
|
+
export { attachStatus, type StatusEvent, type StatusOptions, } from './recorders/observability/StatusRecorder.js';
|
|
52
|
+
export { toolLineageRecorder, type ToolLineageRecorderHandle, type ToolLineageOptions, type ToolLineageGraph, type ToolLineageEdge, type ToolCallRef, } from './recorders/observability/ToolLineageRecorder.js';
|
|
53
|
+
export { agentThinkingTrace, type AgentThinkingTraceHandle, type AgentThinkingTraceOptions, type AttTrace, type AttStep, type AttCost, type AttAnswer, type AttToolSeen, } from './recorders/observability/AgentThinkingTraceRecorder.js';
|
|
54
|
+
export { typedEmit } from './recorders/core/typedEmit.js';
|
|
55
|
+
export { adaptWeights, averageRelevancy, compositeScore, contentHash, DEFAULT_CLEAR_WINNER_MARGIN, DEFAULT_CLEAR_WINNER_RATIO, DEFAULT_INFLUENCE_WEIGHTS, DEFAULT_MARGIN_THRESHOLD, DEFAULT_PERSISTENCE_THRESHOLD, DEFAULT_SHORTLIST_BAND, EmbeddingCache, embeddingCache, finalAnswerSimilarity, marginStrategy, pairwiseSimilarity, persistence, rankingConfidence, ratioStrategy, scoreContrastiveInfluence, scoreInfluence, scoreMargin, structuralProximity, type CandidateScore, type ConfidenceStrategy, type Embedder, type EmbeddingCacheOptions, type EmbeddingCacheStats, type EvidenceInput, type InfluenceScore, type InfluenceScorer, type InfluenceWeights, type MarginCandidate, type MarginResult, type PairwiseSimilarityArgs, type PairwiseSimilarityResult, type RankingConfidence, type RankingConfidenceOptions, type ScoreContrastiveInfluenceArgs, type ScoreInfluenceArgs, type ScoreMarginArgs, type SignalScores, type SimilarityItem, type SimilarityPair, } from './lib/influence-core/index.js';
|
|
56
|
+
export { callTraceTool, lazyTraceToolpack, NO_COMPLETED_RUN_MESSAGE, TOOLPACK_HARD_CAPS, traceToolpack, type TraceToolpackArtifacts, type TraceToolpackOptions, } from './lib/trace-toolpack/index.js';
|
|
57
|
+
export { buildSelfExplainSkill, buildSelfExplainToolProvider, SelfExplainBinding, traceDebugAgent, type SelfExplainOptions, type TraceDebugAgentOptions, } from './lib/trace-toolpack/index.js';
|
|
58
|
+
export { ablationForSuspect, applyAblations, assembleTrajectory, assignCostVerdicts, bisectCulprits, bucketByAnchors, shortlistEarlyCulprits, walkToRoot, walkTrajectory, buildWriterFrameIndex, DEFAULT_RECENCY_DECAY, classifySuspect, findLoopHeads, CONTEXT_BISECT_DEFAULTS, defaultOutcomeComparator, defaultSuspectClassifier, findDroppedContext, formatContextBugReport, llmCallIdsFromEvents, llmEdgeWeigher, localizeContextBug, probeFlipped, runAblationProbe, runRestorationProbe, stepOutputText, suspectLabel, verdictFor, type AblationRerun, type AblationRunner, type AblationRunStats, type AblationSpec, type AblationTargets, type AblationVerdict, type AblationVerdictKind, type AnchorBucket, type AssembleTrajectoryOptions, type LoopCandidate, type LoopRecallShortlist, type ShortlistEarlyCulpritsOptions, type RootCauseHop, type RootCauseNote, type RootCausePath, type WalkToRootOptions, type BisectCulpritsOptions, type BisectionProbe, type BisectionResult, type CapturedEventLike, type ClassifyContext, type ContextBugArtifacts, type ContextBugReport, type ContextSource, type ContextUnit, type CostRange, type CostStats, type CostVerdict, type DroppedUnit, type EdgePathStep, type LoopFrame, type HonestyFlag, type HonestyFlagKind, type LlmEdgeWeigherHandle, type LlmEdgeWeigherOptions, type LocalizeContextBugOptions, type MissingContextResult, type OutcomeComparator, type QualityTriggerLookup, type RankedParentEdge, type RestorationProbeConfig, type RestorationRerun, type RestorationRunner, type RestoredCandidate, type RunCost, type SimilarityStats, type SliceStats, type Suspect, type SuspectClass, type SuspectClassifier, type SuspectDetail, type SuspectKind, type SuspectSeed, type SyntheticQuestionNode, type Trajectory, } from './lib/context-bisect/index.js';
|
|
59
|
+
export { toBacktrackTrace, type BacktrackCustodyHop, type BacktrackHop, type BacktrackSuspectCard, type BacktrackTrace, type BacktrackTrail, type ToBacktrackTraceOptions, } from './lib/context-bisect/index.js';
|
|
60
|
+
export { analyzeToolCatalog, catalogFromTools, coerceCatalog, confusabilityText, DEFAULT_CONFUSABILITY_THRESHOLD, DEFAULT_OMISSION_CUES, DEFAULT_WATCH_BAND, DEFAULT_WHEN_CUES, defaultStructuralRules, descriptionRule, differentiationHint, enumInProseRule, formatToolCatalogReport, MOCK_EMBEDDER_CALIBRATION, optionalParamRule, runToolLintCli, saysWhatNotWhenRule, type AnalyzeToolCatalogOptions, type CatalogTool, type ConfusablePairFinding, type DescriptionRuleOptions, type FormatReportOptions, type LintRule, type LintSeverity, type OptionalParamRuleOptions, type PairVerdict, type SaysWhatNotWhenRuleOptions, type SimilarityReport, type StructuralFinding, type ToolCatalogReport, type ToolLintCliIO, } from './lib/tool-lint/index.js';
|
|
61
|
+
export { buildChoiceContext, toolChoiceRecorder, type OfferedTool, type ToolChoiceCall, type ToolChoiceRecorderHandle, type ToolChoiceRecorderOptions, type ToolChoiceSkipReason, type ToolChoiceSummary, } from './recorders/observability/ToolChoiceRecorder.js';
|
|
62
|
+
export { routeRecorder, formatRouteHop, type RouteRecorderHandle, type RouteRecorderOptions, type RouteHop, type RouteOutcome, type RouteTrip, type RouteTripKind, } from './recorders/observability/RouteRecorder.js';
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debate — two agents alternate proposing + critiquing, a judge decides.
|
|
3
|
+
*
|
|
4
|
+
* Paper: "Improving Factuality and Reasoning in Language Models through
|
|
5
|
+
* Multiagent Debate" — Du et al., 2023
|
|
6
|
+
* (https://arxiv.org/abs/2305.14325).
|
|
7
|
+
*
|
|
8
|
+
* Pattern: Factory → produces a `Runner` built from
|
|
9
|
+
* `Sequence(Proposer → Critic → Judge)` by default, or an
|
|
10
|
+
* iterated `Loop(Sequence(…))` when `rounds > 1`.
|
|
11
|
+
* Role: patterns/ layer.
|
|
12
|
+
* Emits: Everything Sequence + Loop + LLMCall emit.
|
|
13
|
+
*/
|
|
14
|
+
import type { LLMProvider } from '../adapters/types.js';
|
|
15
|
+
import type { Runner } from '../core/runner.js';
|
|
16
|
+
export interface DebateOptions {
|
|
17
|
+
readonly provider: LLMProvider;
|
|
18
|
+
readonly model: string;
|
|
19
|
+
/** Proposer persona — asserts a position given the question. */
|
|
20
|
+
readonly proposerPrompt: string;
|
|
21
|
+
/** Critic persona — argues against the proposer's position. */
|
|
22
|
+
readonly criticPrompt: string;
|
|
23
|
+
/** Judge persona — reads the debate transcript, returns the verdict. */
|
|
24
|
+
readonly judgePrompt: string;
|
|
25
|
+
/** Rounds of propose+critique before the judge weighs in. Default 1. */
|
|
26
|
+
readonly rounds?: number;
|
|
27
|
+
readonly temperature?: number;
|
|
28
|
+
readonly maxTokens?: number;
|
|
29
|
+
readonly name?: string;
|
|
30
|
+
readonly id?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Build a Debate Runner. One debate "round" = Proposer → Critic. After
|
|
34
|
+
* N rounds, the Judge sees the final exchange and renders the verdict.
|
|
35
|
+
* The Judge's output is the Runner's return value.
|
|
36
|
+
*/
|
|
37
|
+
export declare function debate(opts: DebateOptions): Runner<{
|
|
38
|
+
message: string;
|
|
39
|
+
}, string>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MapReduce — fan-out N LLMCalls over deterministic input shards, reduce.
|
|
3
|
+
*
|
|
4
|
+
* Origin: classic map-reduce (Dean & Ghemawat, 2004) applied to
|
|
5
|
+
* LLM context-window constraints. Seen in long-document
|
|
6
|
+
* summarization: split → summarize each → combine.
|
|
7
|
+
*
|
|
8
|
+
* Pattern: Factory → produces a Runner composing `Parallel` of N
|
|
9
|
+
* shard-aware branches. Each branch is an LLMCall wrapped so it
|
|
10
|
+
* extracts its shard index from the input by position.
|
|
11
|
+
* Role: patterns/ layer. Pure composition over existing primitives.
|
|
12
|
+
*
|
|
13
|
+
* Shard count is fixed at build time — consumer supplies `shardCount`
|
|
14
|
+
* and a `split(input, shardCount)` function that MUST return exactly
|
|
15
|
+
* `shardCount` strings. The extracted strings are packed into one
|
|
16
|
+
* `message` at run time (delimiter `\u001F`) so each branch can pick
|
|
17
|
+
* its own index. For run-time-variable shard counts, factor MapReduce
|
|
18
|
+
* inside a wrapping Runner that rebuilds the Parallel per call.
|
|
19
|
+
*/
|
|
20
|
+
import type { LLMProvider } from '../adapters/types.js';
|
|
21
|
+
import type { Runner } from '../core/runner.js';
|
|
22
|
+
import type { MergeFn, MergeWithLLMOptions } from '../core-flow/Parallel.js';
|
|
23
|
+
export interface MapReduceOptions {
|
|
24
|
+
readonly provider: LLMProvider;
|
|
25
|
+
readonly model: string;
|
|
26
|
+
/** System prompt applied to every shard's LLMCall. */
|
|
27
|
+
readonly mapPrompt: string;
|
|
28
|
+
/**
|
|
29
|
+
* Number of shards to fan out. Must be >= 2 (for one-shard, use
|
|
30
|
+
* `LLMCall` directly). Fixed at build time.
|
|
31
|
+
*/
|
|
32
|
+
readonly shardCount: number;
|
|
33
|
+
/**
|
|
34
|
+
* Splitter invoked at run time with `(input, shardCount)`. MUST return
|
|
35
|
+
* exactly `shardCount` strings. If it returns fewer, remaining shards
|
|
36
|
+
* receive empty strings; more are truncated.
|
|
37
|
+
*/
|
|
38
|
+
readonly split: (input: string, shardCount: number) => readonly string[];
|
|
39
|
+
/**
|
|
40
|
+
* Reducer — either a pure fn combining the N shard outputs, OR an LLM
|
|
41
|
+
* synthesizer.
|
|
42
|
+
*/
|
|
43
|
+
readonly reduce: {
|
|
44
|
+
readonly kind: 'fn';
|
|
45
|
+
readonly fn: MergeFn;
|
|
46
|
+
} | {
|
|
47
|
+
readonly kind: 'llm';
|
|
48
|
+
readonly opts: MergeWithLLMOptions;
|
|
49
|
+
};
|
|
50
|
+
readonly temperature?: number;
|
|
51
|
+
readonly maxTokens?: number;
|
|
52
|
+
readonly name?: string;
|
|
53
|
+
readonly id?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Build a MapReduce Runner. At run time:
|
|
57
|
+
* 1. The splitter runs the consumer's `split(input, shardCount)` and
|
|
58
|
+
* packs the resulting N shards into a delimited string.
|
|
59
|
+
* 2. Parallel fans out to N branches. Each branch's wrapper extracts
|
|
60
|
+
* its own shard from the packed input and feeds it to the shared
|
|
61
|
+
* LLMCall.
|
|
62
|
+
* 3. The reducer combines the N branch outputs into the final string.
|
|
63
|
+
*/
|
|
64
|
+
export declare function mapReduce(opts: MapReduceOptions): Runner<{
|
|
65
|
+
message: string;
|
|
66
|
+
}, string>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reflection — iterative self-refinement via critic + revise.
|
|
3
|
+
*
|
|
4
|
+
* Paper: "Self-Refine: Iterative Refinement with Self-Feedback" —
|
|
5
|
+
* Madaan et al., 2023 (https://arxiv.org/abs/2303.17651).
|
|
6
|
+
*
|
|
7
|
+
* Pattern: Factory (GoF) → produces a `Runner` built from a `Loop`
|
|
8
|
+
* whose body is `Sequence(Propose → Critique → Revise)`.
|
|
9
|
+
* Role: patterns/ layer. Pure composition — no new abstractions.
|
|
10
|
+
* Emits: Loop's composition.iteration_start / iteration_exit plus
|
|
11
|
+
* every inner LLMCall's stream.llm_start/end.
|
|
12
|
+
*/
|
|
13
|
+
import type { LLMProvider } from '../adapters/types.js';
|
|
14
|
+
import type { Runner } from '../core/runner.js';
|
|
15
|
+
export interface ReflectionOptions {
|
|
16
|
+
readonly provider: LLMProvider;
|
|
17
|
+
readonly model: string;
|
|
18
|
+
/** System prompt for the initial / revision proposer. */
|
|
19
|
+
readonly proposerPrompt: string;
|
|
20
|
+
/**
|
|
21
|
+
* System prompt for the critic. Should instruct the critic to return
|
|
22
|
+
* "DONE" (or a consumer-chosen sentinel) when the proposal is good
|
|
23
|
+
* enough — that string is checked by `untilCritiqueContains` to stop
|
|
24
|
+
* the refinement loop.
|
|
25
|
+
*/
|
|
26
|
+
readonly criticPrompt: string;
|
|
27
|
+
/**
|
|
28
|
+
* Stop string the critic should emit when satisfied. When the critic's
|
|
29
|
+
* response contains this substring, the loop exits and the last
|
|
30
|
+
* proposal is returned. Default: 'DONE'.
|
|
31
|
+
*/
|
|
32
|
+
readonly untilCritiqueContains?: string;
|
|
33
|
+
/** Max refinement iterations. Default 3. */
|
|
34
|
+
readonly maxIterations?: number;
|
|
35
|
+
readonly temperature?: number;
|
|
36
|
+
readonly maxTokens?: number;
|
|
37
|
+
readonly name?: string;
|
|
38
|
+
readonly id?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Build a Reflection Runner. Each iteration:
|
|
42
|
+
* 1. Propose — LLMCall writes a candidate answer based on the input
|
|
43
|
+
* 2. Critique — LLMCall judges the candidate; exit marker stops loop
|
|
44
|
+
* 3. Revise — next iteration's propose sees the previous critique
|
|
45
|
+
*
|
|
46
|
+
* Each iteration's output (the candidate proposal) becomes the next
|
|
47
|
+
* iteration's input. The final iteration's proposal is returned.
|
|
48
|
+
*/
|
|
49
|
+
export declare function reflection(opts: ReflectionOptions): Runner<{
|
|
50
|
+
message: string;
|
|
51
|
+
}, string>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SelfConsistency — sample N answers, pick the majority.
|
|
3
|
+
*
|
|
4
|
+
* Paper: "Self-Consistency Improves Chain of Thought Reasoning in
|
|
5
|
+
* Language Models" — Wang et al., 2022 (https://arxiv.org/abs/2203.11171).
|
|
6
|
+
*
|
|
7
|
+
* Pattern: Factory (GoF) → produces a `Runner` that composes `Parallel`
|
|
8
|
+
* of N `LLMCall` branches with a majority-vote merge function.
|
|
9
|
+
* Role: patterns/ layer. Pure composition of core primitives +
|
|
10
|
+
* core-flow compositions — no new abstractions.
|
|
11
|
+
* Emits: Everything `Parallel` + `LLMCall` emit (stream / composition /
|
|
12
|
+
* context). No pattern-specific event domain needed; consumers
|
|
13
|
+
* observe via the standard typed listeners.
|
|
14
|
+
*/
|
|
15
|
+
import type { LLMProvider } from '../adapters/types.js';
|
|
16
|
+
import type { Runner } from '../core/runner.js';
|
|
17
|
+
export interface SelfConsistencyOptions {
|
|
18
|
+
readonly provider: LLMProvider;
|
|
19
|
+
readonly model: string;
|
|
20
|
+
readonly systemPrompt: string;
|
|
21
|
+
/** Number of parallel samples. 3 / 5 are typical; paper uses up to 40. */
|
|
22
|
+
readonly samples: number;
|
|
23
|
+
/** Sampling temperature. Defaults to a higher value (0.7) to get diverse samples. */
|
|
24
|
+
readonly temperature?: number;
|
|
25
|
+
readonly maxTokens?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Consumer-provided extractor: given a full LLM response, return the
|
|
28
|
+
* "vote token" (e.g., the final answer stripped of the chain-of-thought
|
|
29
|
+
* preamble). Defaults to returning the trimmed string.
|
|
30
|
+
*/
|
|
31
|
+
readonly extract?: (response: string) => string;
|
|
32
|
+
readonly name?: string;
|
|
33
|
+
readonly id?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Build a SelfConsistency Runner. Given a system prompt, the Runner
|
|
37
|
+
* runs `samples` parallel LLMCalls with the same input, extracts each
|
|
38
|
+
* response's vote token, then returns the most-frequent token. Ties
|
|
39
|
+
* are broken by the first response's extract.
|
|
40
|
+
*/
|
|
41
|
+
export declare function selfConsistency(opts: SelfConsistencyOptions): Runner<{
|
|
42
|
+
message: string;
|
|
43
|
+
}, string>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Swarm — multi-agent handoff. At each step, an LLM-driven routing
|
|
3
|
+
* decision picks which agent handles the next turn.
|
|
4
|
+
*
|
|
5
|
+
* Origin: OpenAI Swarm experiment (2024). Useful for specialist
|
|
6
|
+
* routing — each agent has a narrow role + its own tools.
|
|
7
|
+
*
|
|
8
|
+
* Pattern: Factory → produces a `Runner` built from
|
|
9
|
+
* `Loop(Conditional(route-to-agent))`.
|
|
10
|
+
* Role: patterns/ layer. Pure composition over existing primitives.
|
|
11
|
+
* Agent roster is FIXED at build time; the routing decision
|
|
12
|
+
* is made at runtime by a consumer-supplied `route(input)`
|
|
13
|
+
* function (sync — pure over `{ message }`).
|
|
14
|
+
*
|
|
15
|
+
* For LLM-driven routing (the classic Swarm style), the consumer
|
|
16
|
+
* composes a "router" LLMCall as the first step of each iteration and
|
|
17
|
+
* parses its response in their `route()` function.
|
|
18
|
+
*/
|
|
19
|
+
import type { Runner } from '../core/runner.js';
|
|
20
|
+
export interface SwarmAgent {
|
|
21
|
+
/** Stable id used in events + routing decisions. */
|
|
22
|
+
readonly id: string;
|
|
23
|
+
/** Display name for topology / narrative. */
|
|
24
|
+
readonly name?: string;
|
|
25
|
+
/** The runner that handles a turn when selected. */
|
|
26
|
+
readonly runner: Runner<{
|
|
27
|
+
message: string;
|
|
28
|
+
}, string>;
|
|
29
|
+
}
|
|
30
|
+
export interface SwarmOptions {
|
|
31
|
+
/**
|
|
32
|
+
* The fixed agent roster. Must contain >= 2 agents. The order doesn't
|
|
33
|
+
* matter — the `route` function selects by id.
|
|
34
|
+
*/
|
|
35
|
+
readonly agents: readonly SwarmAgent[];
|
|
36
|
+
/**
|
|
37
|
+
* Routing function — receives the current message and returns the
|
|
38
|
+
* selected agent's id. Pure sync; evaluated before each iteration's
|
|
39
|
+
* chosen agent runs. Return `undefined` or an unknown id to halt
|
|
40
|
+
* the swarm (the loop's `until` guard fires).
|
|
41
|
+
*/
|
|
42
|
+
readonly route: (input: {
|
|
43
|
+
readonly message: string;
|
|
44
|
+
}) => string | undefined;
|
|
45
|
+
/** Max hand-offs before the loop halts. Default 10. */
|
|
46
|
+
readonly maxHandoffs?: number;
|
|
47
|
+
readonly name?: string;
|
|
48
|
+
readonly id?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Build a Swarm Runner. Each iteration:
|
|
52
|
+
* 1. Router evaluates `route(input)` to pick an agent id.
|
|
53
|
+
* 2. Conditional dispatches to that agent's runner.
|
|
54
|
+
* 3. Agent's output becomes the next iteration's input.
|
|
55
|
+
* Loop halts when `route` returns a halt-sentinel id (or unknown id
|
|
56
|
+
* falling to the `done` branch) OR when `maxHandoffs` is reached.
|
|
57
|
+
*/
|
|
58
|
+
export declare function swarm(opts: SwarmOptions): Runner<{
|
|
59
|
+
message: string;
|
|
60
|
+
}, string>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ToT — Tree of Thoughts: breadth-first iterative expansion + pruning.
|
|
3
|
+
*
|
|
4
|
+
* Paper: "Tree of Thoughts: Deliberate Problem Solving with Large
|
|
5
|
+
* Language Models" — Yao et al., 2023
|
|
6
|
+
* (https://arxiv.org/abs/2305.10601).
|
|
7
|
+
*
|
|
8
|
+
* Pattern: Factory → produces a `Runner` built from `Loop(depth times,
|
|
9
|
+
* Parallel(K thought branches) + prune-to-top-M)`.
|
|
10
|
+
* Role: patterns/ layer. Pure composition over existing primitives.
|
|
11
|
+
* Build-time-fixed depth + branching factor; runtime frontier
|
|
12
|
+
* is pruned to `beamWidth` per level via a consumer-supplied
|
|
13
|
+
* scorer.
|
|
14
|
+
*
|
|
15
|
+
* Tradeoff vs. full DFS: this shipped variant is BFS with constant
|
|
16
|
+
* width. True DFS with backtracking or adaptive branching factor would
|
|
17
|
+
* need runtime-variable Parallel (DynamicParallel) or recursion.
|
|
18
|
+
*/
|
|
19
|
+
import type { LLMProvider } from '../adapters/types.js';
|
|
20
|
+
import type { Runner } from '../core/runner.js';
|
|
21
|
+
export interface ToTOptions {
|
|
22
|
+
readonly provider: LLMProvider;
|
|
23
|
+
readonly model: string;
|
|
24
|
+
/** System prompt for the thought-generation LLMCall. */
|
|
25
|
+
readonly thoughtPrompt: string;
|
|
26
|
+
/** Depth of the tree (number of expansion iterations). */
|
|
27
|
+
readonly depth: number;
|
|
28
|
+
/** Branching factor — K thoughts generated per frontier node per iteration. */
|
|
29
|
+
readonly branchingFactor: number;
|
|
30
|
+
/**
|
|
31
|
+
* Scorer: given a thought, return a numeric score. Higher is better.
|
|
32
|
+
* The top `beamWidth` thoughts survive each level; the rest are pruned.
|
|
33
|
+
* Synchronous so pruning is deterministic.
|
|
34
|
+
*/
|
|
35
|
+
readonly score: (thought: string) => number;
|
|
36
|
+
/** Beam width — how many thoughts survive after each level. Default 1 (greedy). */
|
|
37
|
+
readonly beamWidth?: number;
|
|
38
|
+
readonly temperature?: number;
|
|
39
|
+
readonly maxTokens?: number;
|
|
40
|
+
readonly name?: string;
|
|
41
|
+
readonly id?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Build a ToT Runner. At run time:
|
|
45
|
+
* 1. Seed — treat the input message as the initial frontier of 1 thought.
|
|
46
|
+
* 2. For each of `depth` iterations:
|
|
47
|
+
* a. Parallel fan-out: generate `branchingFactor` new thoughts.
|
|
48
|
+
* b. Score all new thoughts, keep top `beamWidth`, pass to next iteration.
|
|
49
|
+
* 3. Return the single best-scoring thought from the final frontier.
|
|
50
|
+
*/
|
|
51
|
+
export declare function tot(opts: ToTOptions): Runner<{
|
|
52
|
+
message: string;
|
|
53
|
+
}, string>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* patterns/ — factory functions that compose primitives + core-flow
|
|
3
|
+
* into well-known agent patterns from the research literature.
|
|
4
|
+
*
|
|
5
|
+
* Each pattern is:
|
|
6
|
+
* - A factory function returning a `Runner` — drops into any
|
|
7
|
+
* `Sequence.step()`, `Parallel.branch()`, etc.
|
|
8
|
+
* - Purely composed — no new primitives, no state machinery beyond
|
|
9
|
+
* what the underlying compositions provide.
|
|
10
|
+
* - Documented with the canonical paper reference.
|
|
11
|
+
*
|
|
12
|
+
* Build-time-fixed cardinality: all patterns take a FIXED
|
|
13
|
+
* shard/branch/agent count at build time. Run-time-variable branching
|
|
14
|
+
* is a separate (not-yet-shipped) feature and would need a
|
|
15
|
+
* `DynamicParallel` primitive.
|
|
16
|
+
*/
|
|
17
|
+
export { selfConsistency, type SelfConsistencyOptions } from './SelfConsistency.js';
|
|
18
|
+
export { reflection, type ReflectionOptions } from './Reflection.js';
|
|
19
|
+
export { debate, type DebateOptions } from './Debate.js';
|
|
20
|
+
export { mapReduce, type MapReduceOptions } from './MapReduce.js';
|
|
21
|
+
export { tot, type ToTOptions } from './ToT.js';
|
|
22
|
+
export { swarm, type SwarmOptions, type SwarmAgent } from './Swarm.js';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM provider adapters — implementation behind the `agentfootprint/llm-providers`
|
|
3
|
+
* subpath (which re-exports this file).
|
|
4
|
+
*
|
|
5
|
+
* The standalone `agentfootprint/providers` subpath alias was removed in 4.0.0.
|
|
6
|
+
* Import from the canonical subpath:
|
|
7
|
+
*
|
|
8
|
+
* import { mock, anthropic, openai } from 'agentfootprint/llm-providers';
|
|
9
|
+
*
|
|
10
|
+
* Pattern: Adapter (GoF) — concrete `LLMProvider` implementations that
|
|
11
|
+
* translate the agentfootprint port to a specific vendor SDK.
|
|
12
|
+
* Role: Outer ring (Hexagonal). Swappable at runtime; the Agent
|
|
13
|
+
* knows nothing about vendor specifics.
|
|
14
|
+
*
|
|
15
|
+
* What's here today:
|
|
16
|
+
* • `mock` / `MockProvider` — deterministic + realistic-mode mock
|
|
17
|
+
* • `anthropic` / `AnthropicProvider` — real provider (Claude)
|
|
18
|
+
* • `openai` / `OpenAIProvider` — real provider (GPT)
|
|
19
|
+
*
|
|
20
|
+
* Bring your own (BYO):
|
|
21
|
+
* For Bedrock / Ollama / Cohere / on-prem / fine-tuned models,
|
|
22
|
+
* implement the `LLMProvider` interface (see `LLMProvider` exported
|
|
23
|
+
* from the main barrel) — `complete()` is required, `stream()` is
|
|
24
|
+
* optional. The `MockProvider` source is the canonical reference.
|
|
25
|
+
*/
|
|
26
|
+
export { MockProvider, mock, type MockProviderOptions, type LatencyMs, } from './adapters/llm/MockProvider.js';
|
|
27
|
+
export { anthropic, AnthropicProvider, type AnthropicProviderOptions, } from './adapters/llm/AnthropicProvider.js';
|
|
28
|
+
export { openai, OpenAIProvider, ollama, azureOpenai, type OpenAIProviderOptions, type AzureOpenAIProviderOptions, } from './adapters/llm/OpenAIProvider.js';
|
|
29
|
+
export { bedrock, BedrockProvider, type BedrockProviderOptions, } from './adapters/llm/BedrockProvider.js';
|
|
30
|
+
export { browserAnthropic, BrowserAnthropicProvider, type BrowserAnthropicProviderOptions, } from './adapters/llm/BrowserAnthropicProvider.js';
|
|
31
|
+
export { browserOpenai, BrowserOpenAIProvider, type BrowserOpenAIProviderOptions, } from './adapters/llm/BrowserOpenAIProvider.js';
|
|
32
|
+
export { createProvider, type ProviderKind, type CreateProviderOptions, } from './adapters/llm/createProvider.js';
|
|
33
|
+
export type { LLMProvider, LLMRequest, LLMResponse, LLMChunk, LLMMessage, LLMToolSchema, } from './adapters/types.js';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentRecorder — forwards `agentfootprint.agent.*` emits to the dispatcher.
|
|
3
|
+
*
|
|
4
|
+
* Pattern: Factory (GoF) returning an EmitBridge instance.
|
|
5
|
+
* Role: Convenience constructor for the agent-lifecycle bridge recorder.
|
|
6
|
+
* Same mechanics as StreamRecorder, scoped to agent.* events
|
|
7
|
+
* (turns + iterations + route decisions + handoffs).
|
|
8
|
+
* Emits: agentfootprint.agent.turn_start / turn_end / iteration_start /
|
|
9
|
+
* iteration_end / route_decided / handoff
|
|
10
|
+
*/
|
|
11
|
+
import { EmitBridge, type EmitBridgeOptions } from './EmitBridge.js';
|
|
12
|
+
export type AgentRecorderOptions = Omit<EmitBridgeOptions, 'id' | 'prefix'> & {
|
|
13
|
+
readonly id?: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function agentRecorder(options: AgentRecorderOptions): EmitBridge;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CompositionRecorder — forwards `agentfootprint.composition.*` emits to the dispatcher.
|
|
3
|
+
*
|
|
4
|
+
* Pattern: Factory (GoF) returning an EmitBridge instance.
|
|
5
|
+
* Role: Convenience constructor for the composition-domain bridge recorder.
|
|
6
|
+
* Compositions (Sequence, Parallel, Conditional, Loop) typedEmit
|
|
7
|
+
* composition.enter/exit/fork_start/branch_complete/merge_end/
|
|
8
|
+
* route_decided/iteration_start/iteration_exit from their internal
|
|
9
|
+
* stages; this recorder observes via footprintjs's EmitRecorder
|
|
10
|
+
* channel and re-dispatches with typed payloads + meta.
|
|
11
|
+
* Emits: agentfootprint.composition.*
|
|
12
|
+
*/
|
|
13
|
+
import { EmitBridge, type EmitBridgeOptions } from './EmitBridge.js';
|
|
14
|
+
export type CompositionRecorderOptions = Omit<EmitBridgeOptions, 'id' | 'prefix'> & {
|
|
15
|
+
readonly id?: string;
|
|
16
|
+
};
|
|
17
|
+
export declare function compositionRecorder(options: CompositionRecorderOptions): EmitBridge;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ContextEvaluatedRecorder — forwards the `agentfootprint.context.evaluated`
|
|
3
|
+
* emit to the dispatcher.
|
|
4
|
+
*
|
|
5
|
+
* Pattern: Factory (GoF) returning an EmitBridge instance.
|
|
6
|
+
* Role: The InjectionEngine `typedEmit`s `context.evaluated` (the
|
|
7
|
+
* "what was considered / active / skipped + why" summary). Unlike the
|
|
8
|
+
* other `context.*` events — which `ContextRecorder` DISPATCHES by
|
|
9
|
+
* observing scope writes — this one is emitted complete by the stage,
|
|
10
|
+
* so it just needs forwarding (the EmitBridge pass-through pattern,
|
|
11
|
+
* same as StreamRecorder / AgentRecorder).
|
|
12
|
+
* Why a full-name prefix: scoped to EXACTLY `agentfootprint.context.evaluated`
|
|
13
|
+
* (not the whole `context.*` domain) so it never double-dispatches
|
|
14
|
+
* `context.slot_composed`, which IS `typedEmit`'d in the viz chart
|
|
15
|
+
* (`buildMessageApiChart`) while ALSO being dispatched by
|
|
16
|
+
* `ContextRecorder` from writes in the runtime charts.
|
|
17
|
+
* Emits: agentfootprint.context.evaluated
|
|
18
|
+
*/
|
|
19
|
+
import { EmitBridge, type EmitBridgeOptions } from './EmitBridge.js';
|
|
20
|
+
export type ContextEvaluatedRecorderOptions = Omit<EmitBridgeOptions, 'id' | 'prefix'> & {
|
|
21
|
+
readonly id?: string;
|
|
22
|
+
};
|
|
23
|
+
export declare function contextEvaluatedRecorder(options: ContextEvaluatedRecorderOptions): EmitBridge;
|