agentfootprint 6.44.0 → 7.0.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/AGENTS.md +4 -0
- package/CLAUDE.md +4 -0
- package/README.md +141 -167
- package/ai-instructions/claude-code/SKILL.md +11 -0
- package/ai-instructions/setup.sh +0 -0
- package/dist/adapters/llm/BrowserOpenAIProvider.js +1 -1
- package/dist/adapters/llm/MockProvider.js +2 -1
- package/dist/adapters/llm/MockProvider.js.map +1 -1
- 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/debug/finders.js +29 -0
- package/dist/debug/finders.js.map +1 -0
- package/dist/debug.js +134 -0
- package/dist/debug.js.map +1 -0
- 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/BrowserOpenAIProvider.js +1 -1
- package/dist/esm/adapters/llm/MockProvider.d.ts +154 -0
- package/dist/esm/adapters/llm/MockProvider.js +2 -1
- package/dist/esm/adapters/llm/MockProvider.js.map +1 -1
- 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/debug/finders.d.ts +12 -0
- package/dist/esm/debug/finders.js +13 -0
- package/dist/esm/debug/finders.js.map +1 -0
- package/dist/esm/debug.d.ts +25 -0
- package/dist/esm/debug.js +54 -0
- package/dist/esm/debug.js.map +1 -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/events.d.ts +18 -0
- package/dist/esm/events.js +22 -0
- package/dist/esm/events.js.map +1 -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 +44 -0
- package/dist/esm/index.js +7 -52
- 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 +2 -1
- 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 +290 -0
- package/dist/esm/lib/injection-engine/skillGraph.js +38 -43
- 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/defineRAG.js +3 -3
- package/dist/esm/lib/rag/index.d.ts +7 -0
- package/dist/esm/lib/rag/indexDocuments.d.ts +106 -0
- package/dist/esm/lib/rag/indexDocuments.js +2 -1
- package/dist/esm/lib/rag/indexDocuments.js.map +1 -1
- 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 +141 -0
- package/dist/esm/locales/index.js +7 -0
- package/dist/esm/locales/index.js.map +1 -1
- 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 +134 -0
- package/dist/esm/memory/causal/types.js.map +1 -1
- 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 +278 -0
- package/dist/esm/memory/define.types.js +6 -4
- package/dist/esm/memory/define.types.js.map +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 +57 -0
- package/dist/esm/observe.js +7 -36
- package/dist/esm/observe.js.map +1 -1
- 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/providers.js +1 -1
- package/dist/esm/providers.js.map +1 -1
- 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 +54 -0
- package/dist/esm/status.js +13 -4
- package/dist/esm/status.js.map +1 -1
- 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/events.js +42 -0
- package/dist/events.js.map +1 -0
- package/dist/index.js +7 -117
- 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 +6 -2
- package/dist/lib/injection-engine/index.js.map +1 -1
- package/dist/lib/injection-engine/skillGraph.js +40 -45
- package/dist/lib/injection-engine/skillGraph.js.map +1 -1
- package/dist/lib/injection-engine/types.js.map +1 -1
- package/dist/lib/rag/defineRAG.js +3 -3
- package/dist/lib/rag/indexDocuments.js +2 -1
- package/dist/lib/rag/indexDocuments.js.map +1 -1
- package/dist/locales/index.js +2 -1
- package/dist/locales/index.js.map +1 -1
- package/dist/memory/causal/types.js.map +1 -1
- package/dist/memory/define.types.js +6 -4
- package/dist/memory/define.types.js.map +1 -1
- package/dist/observe.js +22 -115
- package/dist/observe.js.map +1 -1
- package/dist/providers.js +3 -1
- package/dist/providers.js.map +1 -1
- package/dist/status.js +13 -5
- package/dist/status.js.map +1 -1
- package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts +1 -1
- package/dist/types/adapters/llm/MockProvider.d.ts +2 -1
- package/dist/types/adapters/llm/MockProvider.d.ts.map +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/debug/finders.d.ts +13 -0
- package/dist/types/debug/finders.d.ts.map +1 -0
- package/dist/types/debug.d.ts +26 -0
- package/dist/types/debug.d.ts.map +1 -0
- package/dist/types/events.d.ts +19 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -24
- 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 +2 -1
- package/dist/types/lib/injection-engine/index.d.ts.map +1 -1
- package/dist/types/lib/injection-engine/skillGraph.d.ts +24 -26
- 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/lib/rag/defineRAG.d.ts +3 -3
- package/dist/types/lib/rag/indexDocuments.d.ts +2 -1
- package/dist/types/lib/rag/indexDocuments.d.ts.map +1 -1
- package/dist/types/locales/index.d.ts +9 -0
- package/dist/types/locales/index.d.ts.map +1 -1
- package/dist/types/memory/causal/types.d.ts +13 -9
- package/dist/types/memory/causal/types.d.ts.map +1 -1
- package/dist/types/memory/define.types.d.ts +6 -4
- package/dist/types/memory/define.types.d.ts.map +1 -1
- package/dist/types/observe.d.ts +1 -6
- package/dist/types/observe.d.ts.map +1 -1
- package/dist/types/providers.d.ts +2 -2
- package/dist/types/providers.d.ts.map +1 -1
- package/dist/types/status.d.ts +10 -4
- package/dist/types/status.d.ts.map +1 -1
- package/dist/types/tool-providers/index.d.ts +1 -1
- package/dist/types/tool-providers/index.d.ts.map +1 -1
- package/package.json +261 -57
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* contextEngineering(agent) — first-class handle on the engineered
|
|
3
|
+
* subset of `context.injected` events.
|
|
4
|
+
*
|
|
5
|
+
* The Block A8 piece. agentfootprint already emits `context.injected`
|
|
6
|
+
* for EVERY piece of content that lands in a slot — including the
|
|
7
|
+
* baseline flow (the user message, every tool result, the static
|
|
8
|
+
* system prompt). For a developer who wants to inspect what their
|
|
9
|
+
* RAG / Skills / Memory / Instructions / Steering / Facts ARE
|
|
10
|
+
* INJECTING (the actual context-engineering work), the baseline flow
|
|
11
|
+
* is noise.
|
|
12
|
+
*
|
|
13
|
+
* `contextEngineering(agent)` filters the stream to ONLY the
|
|
14
|
+
* engineered injections and gives consumers two cleaner subscriptions:
|
|
15
|
+
*
|
|
16
|
+
* - `onEngineered(cb)` — fires for `source` ∈ {rag, skill, memory,
|
|
17
|
+
* instructions, steering, fact, custom}. The actual
|
|
18
|
+
* context-engineering work.
|
|
19
|
+
* - `onBaseline(cb)` — fires for `source` ∈ {user, tool-result,
|
|
20
|
+
* assistant, base, registry}. The baseline message-history flow.
|
|
21
|
+
*
|
|
22
|
+
* Use cases:
|
|
23
|
+
* - **Lens UI**: render only engineered injections in the "context
|
|
24
|
+
* bin"; show the baseline flow as edges between iterations.
|
|
25
|
+
* - **Eval pipelines**: count how many RAG chunks vs Memory entries
|
|
26
|
+
* vs Skill bodies entered the prompt for an eval-set query.
|
|
27
|
+
* - **Cost attribution**: sum tokens by `source` to know what
|
|
28
|
+
* fraction of spend is RAG vs Skills vs baseline.
|
|
29
|
+
* - **Debug logging**: tail just the engineered signals to spot
|
|
30
|
+
* surprising activations during dev.
|
|
31
|
+
*
|
|
32
|
+
* Pattern: Strategy + Filter (GoF) — pure classifier function over
|
|
33
|
+
* the existing `context.injected` event payload, paired with
|
|
34
|
+
* a thin subscription helper.
|
|
35
|
+
*
|
|
36
|
+
* Role: Layer-2 (event taxonomy) consumer-side helper. Doesn't
|
|
37
|
+
* emit new events; doesn't change the agent's flowchart.
|
|
38
|
+
* Pure observation.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* import { contextEngineering } from 'agentfootprint';
|
|
42
|
+
*
|
|
43
|
+
* const ce = contextEngineering(agent);
|
|
44
|
+
* ce.onEngineered((e) => {
|
|
45
|
+
* console.log(`[${e.payload.source}] ${e.payload.contentSummary}`);
|
|
46
|
+
* });
|
|
47
|
+
* ce.onBaseline((e) => {
|
|
48
|
+
* console.log(`[baseline:${e.payload.source}]`);
|
|
49
|
+
* });
|
|
50
|
+
*
|
|
51
|
+
* await agent.run({ message: 'help me' });
|
|
52
|
+
* // ... runs; engineered + baseline streams fire separately
|
|
53
|
+
*
|
|
54
|
+
* ce.detach(); // stops both subscriptions; the agent itself is fine
|
|
55
|
+
*/
|
|
56
|
+
import type { AgentfootprintEventMap } from '../../events/registry.js';
|
|
57
|
+
import type { ContextSource } from '../../events/types.js';
|
|
58
|
+
/**
|
|
59
|
+
* Public set of "engineered" sources — the context-engineering
|
|
60
|
+
* primitives that consumers configure (RAG, Skills, Memory,
|
|
61
|
+
* Instructions, Steering, Facts) plus user-defined `custom`.
|
|
62
|
+
*
|
|
63
|
+
* Frozen so consumers can `.has(value)` directly without copy.
|
|
64
|
+
*/
|
|
65
|
+
export declare const ENGINEERED_SOURCES: ReadonlySet<ContextSource>;
|
|
66
|
+
/**
|
|
67
|
+
* Public set of "baseline" sources — the message-history flow that
|
|
68
|
+
* exists regardless of context engineering: user input, tool results,
|
|
69
|
+
* assistant outputs, the always-on system prompt anchor (`base`), and
|
|
70
|
+
* the agent's static tool registry advertisement (`registry`).
|
|
71
|
+
*/
|
|
72
|
+
export declare const BASELINE_SOURCES: ReadonlySet<ContextSource>;
|
|
73
|
+
/**
|
|
74
|
+
* Pure classifier: given a `ContextSource`, is it engineered?
|
|
75
|
+
*
|
|
76
|
+
* Useful for ad-hoc filtering on a raw `agent.on('agentfootprint.context.injected', ...)`
|
|
77
|
+
* subscription when you don't need the wrapper helper.
|
|
78
|
+
*/
|
|
79
|
+
export declare function isEngineeredSource(source: ContextSource): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Pure classifier: given a `ContextSource`, is it baseline?
|
|
82
|
+
*/
|
|
83
|
+
export declare function isBaselineSource(source: ContextSource): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* The shape of the event passed to `onEngineered` / `onBaseline`
|
|
86
|
+
* callbacks. Same as `agentfootprint.context.injected`'s envelope —
|
|
87
|
+
* we don't transform it, just route by source.
|
|
88
|
+
*/
|
|
89
|
+
export type ContextInjectedEvent = AgentfootprintEventMap['agentfootprint.context.injected'];
|
|
90
|
+
/** Listener signature for the wrapper helper. */
|
|
91
|
+
export type ContextInjectedListener = (event: ContextInjectedEvent) => void;
|
|
92
|
+
/** Unsubscribe handle. */
|
|
93
|
+
export type ContextEngineeringUnsubscribe = () => void;
|
|
94
|
+
/**
|
|
95
|
+
* Minimal subset of the agent surface this helper depends on.
|
|
96
|
+
* Lets us accept any runner (Agent, LLMCall, Sequence, etc.) that
|
|
97
|
+
* implements the typed `on(type, cb)` subscription API.
|
|
98
|
+
*/
|
|
99
|
+
interface RunnerWithEvents {
|
|
100
|
+
on(type: 'agentfootprint.context.injected', listener: ContextInjectedListener): ContextEngineeringUnsubscribe;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Handle returned by `contextEngineering(agent)`. Lets consumers
|
|
104
|
+
* subscribe to engineered / baseline streams and detach cleanly.
|
|
105
|
+
*/
|
|
106
|
+
export interface ContextEngineeringHandle {
|
|
107
|
+
/**
|
|
108
|
+
* Fires for `context.injected` events whose source is in
|
|
109
|
+
* `ENGINEERED_SOURCES`. Returns an unsubscribe function.
|
|
110
|
+
*/
|
|
111
|
+
onEngineered(listener: ContextInjectedListener): ContextEngineeringUnsubscribe;
|
|
112
|
+
/**
|
|
113
|
+
* Fires for `context.injected` events whose source is in
|
|
114
|
+
* `BASELINE_SOURCES`. Returns an unsubscribe function.
|
|
115
|
+
*/
|
|
116
|
+
onBaseline(listener: ContextInjectedListener): ContextEngineeringUnsubscribe;
|
|
117
|
+
/**
|
|
118
|
+
* Detach all subscriptions registered through this handle. After
|
|
119
|
+
* calling, no further callbacks will fire. Idempotent (safe to
|
|
120
|
+
* call multiple times).
|
|
121
|
+
*/
|
|
122
|
+
detach(): void;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Wrap a runner's `agentfootprint.context.injected` stream into two
|
|
126
|
+
* filtered subscriptions: engineered + baseline. Multiple listeners
|
|
127
|
+
* per stream are allowed; `detach()` removes all of them.
|
|
128
|
+
*
|
|
129
|
+
* The classifier inspects `event.payload.source`. Unknown sources
|
|
130
|
+
* (forward-compat: `ContextSource` is open-extensible) are routed
|
|
131
|
+
* to NEITHER stream — preferring under-firing over miscategorizing.
|
|
132
|
+
* Use `agent.on('agentfootprint.context.injected', ...)` directly
|
|
133
|
+
* if you need to observe sources that aren't (yet) classified.
|
|
134
|
+
*/
|
|
135
|
+
export declare function contextEngineering(agent: RunnerWithEvents): ContextEngineeringHandle;
|
|
136
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* typedEmit — typed facade over footprintjs's `scope.$emit(name, payload)`.
|
|
3
|
+
*
|
|
4
|
+
* Pattern: Facade (GoF) over an untyped API.
|
|
5
|
+
* Role: Stage code inside LLMCall/Agent/slot subflows calls this helper
|
|
6
|
+
* to emit events. The EventMap + TS generics reject typos and
|
|
7
|
+
* payload drift at compile time; the runtime call is identical
|
|
8
|
+
* to footprintjs's `$emit`.
|
|
9
|
+
* Emits: Whatever `T` is — the consumer passes the type and payload.
|
|
10
|
+
*/
|
|
11
|
+
import type { AgentfootprintEventMap, AgentfootprintEventType } from '../../events/registry.js';
|
|
12
|
+
/**
|
|
13
|
+
* Minimal scope surface we need to emit — structurally compatible with
|
|
14
|
+
* footprintjs's `TypedScope<T>`, whose `$emit(name, payload?: unknown)` is
|
|
15
|
+
* wider than this.
|
|
16
|
+
*/
|
|
17
|
+
interface EmitableScope {
|
|
18
|
+
$emit(name: string, payload?: unknown): void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Emit a typed event from inside stage code.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* typedEmit(scope, 'agentfootprint.stream.llm_start', {
|
|
25
|
+
* iteration: 1,
|
|
26
|
+
* provider: 'anthropic',
|
|
27
|
+
* model: 'claude-opus-4-8',
|
|
28
|
+
* systemPromptChars: 800,
|
|
29
|
+
* messagesCount: 2,
|
|
30
|
+
* toolsCount: 0,
|
|
31
|
+
* });
|
|
32
|
+
*/
|
|
33
|
+
export declare function typedEmit<K extends AgentfootprintEventType>(scope: EmitableScope, type: K, payload: AgentfootprintEventMap[K]['payload']): void;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recorder-layer types — shapes builders use to communicate with recorders.
|
|
3
|
+
*
|
|
4
|
+
* Pattern: Data Transfer Object (Fowler, PoEAA).
|
|
5
|
+
* Role: Shared vocabulary between builders (which WRITE injections) and
|
|
6
|
+
* recorders (which OBSERVE those writes and emit grouped events).
|
|
7
|
+
*/
|
|
8
|
+
import type { ContextLifetime, ContextRecency, ContextRole, ContextSlot, ContextSource } from '../../events/types.js';
|
|
9
|
+
/**
|
|
10
|
+
* An injection record written by a slot subflow into `scope[INJECTION_KEYS[slot]]`.
|
|
11
|
+
* ContextRecorder reads this to construct the corresponding event payload.
|
|
12
|
+
*
|
|
13
|
+
* Builders write arrays of these; recorders diff old-vs-new to detect NEW
|
|
14
|
+
* injections.
|
|
15
|
+
*/
|
|
16
|
+
export interface InjectionRecord {
|
|
17
|
+
/** Short human-readable content summary. */
|
|
18
|
+
readonly contentSummary: string;
|
|
19
|
+
/** Full content (may be redacted downstream). Optional. */
|
|
20
|
+
readonly rawContent?: string;
|
|
21
|
+
/** Stable hash of the content — enables duplicate detection. */
|
|
22
|
+
readonly contentHash: string;
|
|
23
|
+
/** The 3-slot target (sanity-checked against the subflow ID). */
|
|
24
|
+
readonly slot: ContextSlot;
|
|
25
|
+
/** Where this content came from. */
|
|
26
|
+
readonly source: ContextSource;
|
|
27
|
+
/** Optional source-specific identifier (retriever id, skill id, ...). */
|
|
28
|
+
readonly sourceId?: string;
|
|
29
|
+
/** Upstream event reference (runtimeStageId that produced the content). */
|
|
30
|
+
readonly upstreamRef?: string;
|
|
31
|
+
/** Why this was injected. */
|
|
32
|
+
readonly reason: string;
|
|
33
|
+
/** Role, when injecting into messages slot. */
|
|
34
|
+
readonly asRole?: ContextRole;
|
|
35
|
+
/** Recency, when injecting into messages slot. */
|
|
36
|
+
readonly asRecency?: ContextRecency;
|
|
37
|
+
/** Position within the slot (messages index, system-prompt section order). */
|
|
38
|
+
readonly position?: number;
|
|
39
|
+
/** Section tag for structured system prompts (e.g. "<skill>", "<retrieved>"). */
|
|
40
|
+
readonly sectionTag?: string;
|
|
41
|
+
/** Retrieval / ranking evidence. */
|
|
42
|
+
readonly retrievalScore?: number;
|
|
43
|
+
readonly rankPosition?: number;
|
|
44
|
+
readonly threshold?: number;
|
|
45
|
+
readonly budgetSpent?: {
|
|
46
|
+
readonly tokens: number;
|
|
47
|
+
readonly fractionOfCap: number;
|
|
48
|
+
};
|
|
49
|
+
/** How long this injection is expected to persist. */
|
|
50
|
+
readonly expiresAfter?: ContextLifetime;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Slot composition summary — written by a slot subflow at the END of its
|
|
54
|
+
* composition pass. ContextRecorder emits one `context.slot_composed`
|
|
55
|
+
* event per slot exit, built from this record.
|
|
56
|
+
*/
|
|
57
|
+
export interface SlotComposition {
|
|
58
|
+
readonly slot: ContextSlot;
|
|
59
|
+
readonly iteration: number;
|
|
60
|
+
readonly budget: {
|
|
61
|
+
readonly cap: number;
|
|
62
|
+
readonly used: number;
|
|
63
|
+
readonly headroomChars: number;
|
|
64
|
+
};
|
|
65
|
+
readonly sourceBreakdown: Readonly<Partial<Record<ContextSource, {
|
|
66
|
+
readonly chars: number;
|
|
67
|
+
readonly count: number;
|
|
68
|
+
}>>>;
|
|
69
|
+
readonly orderingStrategy?: string;
|
|
70
|
+
readonly droppedCount: number;
|
|
71
|
+
readonly droppedSummaries: readonly string[];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Eviction record — a piece that was removed from a slot under pressure.
|
|
75
|
+
*/
|
|
76
|
+
export interface EvictionRecord {
|
|
77
|
+
readonly slot: ContextSlot;
|
|
78
|
+
readonly contentHash: string;
|
|
79
|
+
readonly reason: 'budget' | 'stale' | 'low_score' | 'policy' | 'user_revoked';
|
|
80
|
+
readonly survivalMs: number;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Budget-pressure warning — emitted before evictions fire.
|
|
84
|
+
*/
|
|
85
|
+
export interface BudgetPressureRecord {
|
|
86
|
+
readonly slot: ContextSlot;
|
|
87
|
+
readonly capTokens: number;
|
|
88
|
+
readonly projectedTokens: number;
|
|
89
|
+
readonly overflowBy: number;
|
|
90
|
+
readonly planAction: 'evict' | 'summarize' | 'abort';
|
|
91
|
+
}
|
|
92
|
+
export declare const COMPOSITION_KEYS: {
|
|
93
|
+
readonly SLOT_COMPOSED: "slotCompositions";
|
|
94
|
+
readonly EVICTED: "slotEvictions";
|
|
95
|
+
readonly BUDGET_PRESSURE: "slotBudgetPressures";
|
|
96
|
+
};
|
|
97
|
+
export type CompositionKey = (typeof COMPOSITION_KEYS)[keyof typeof COMPOSITION_KEYS];
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentThinkingTraceRecorder — produce an AgentThinkingUI `Trace` from a run.
|
|
3
|
+
*
|
|
4
|
+
* AgentThinkingUI (the "watch it think" player) consumes a framework-agnostic
|
|
5
|
+
* `Trace` — a list of beats: `prompt → ask → return → answer`, where a tool
|
|
6
|
+
* reply is `data` (reason) or an `instruction` (a skill that says how to act).
|
|
7
|
+
* This recorder builds that `Trace` from agentfootprint's emit stream AS THE RUN
|
|
8
|
+
* TRAVERSES (no post-processing) — so any agentfootprint agent gets the
|
|
9
|
+
* domain-expert view for free, and AgentThinkingUI stays vendor-agnostic (it
|
|
10
|
+
* just renders the `Trace` JSON, exactly as it renders the OTLP adapter's output).
|
|
11
|
+
*
|
|
12
|
+
* Mapping (from the events already on the stream):
|
|
13
|
+
* stream.llm_end (toolCalls>0) → the brain reasoned; content + usage become
|
|
14
|
+
* the upcoming ask's `brain` + `cost`.
|
|
15
|
+
* stream.llm_end (toolCalls==0) → the final `answer`.
|
|
16
|
+
* stream.tool_start → `ask` (read_skill → reaching for a skill).
|
|
17
|
+
* stream.tool_end → `return` (read_skill → replyType:'instruction'
|
|
18
|
+
* + skill; any other tool → replyType:'data').
|
|
19
|
+
*
|
|
20
|
+
* Commentary (each beat's `brain`): filled from agentfootprint's OWN commentary
|
|
21
|
+
* engine — the SAME `selectCommentaryKey`/`extractCommentaryVars`/`renderCommentary`
|
|
22
|
+
* the Lens uses — so AgentThinkingUI's Notepad / bottom caption read identically
|
|
23
|
+
* to the Lens commentary panel (one engine, consumer-overridable via
|
|
24
|
+
* `commentaryTemplates`). The LLM's own reasoning still wins on the first ask of
|
|
25
|
+
* an iteration; the engine fills every other beat so no line is ever blank.
|
|
26
|
+
*
|
|
27
|
+
* Convention 1 (one purpose) + Convention 4 (run-scoped — resets per run).
|
|
28
|
+
*/
|
|
29
|
+
import type { EmitRecorder } from 'footprintjs';
|
|
30
|
+
import { type CommentaryTemplates } from './commentary/commentaryTemplates.js';
|
|
31
|
+
export interface AttCost {
|
|
32
|
+
ms: number;
|
|
33
|
+
tokens: number;
|
|
34
|
+
tokensIn?: number;
|
|
35
|
+
tokensOut?: number;
|
|
36
|
+
tokensCached?: number;
|
|
37
|
+
}
|
|
38
|
+
export interface AttAnswer {
|
|
39
|
+
headline: string;
|
|
40
|
+
[key: string]: unknown;
|
|
41
|
+
}
|
|
42
|
+
/** One tool the model had at its disposal for an LLM call — what it "saw" when it
|
|
43
|
+
* decided. Lets a domain expert expand and read the menu next to the model's
|
|
44
|
+
* reasoning, to debug WHY it chose (or skipped) a tool. */
|
|
45
|
+
export interface AttToolSeen {
|
|
46
|
+
readonly name: string;
|
|
47
|
+
readonly description?: string;
|
|
48
|
+
}
|
|
49
|
+
export type AttStep = {
|
|
50
|
+
kind: 'prompt';
|
|
51
|
+
brain: string;
|
|
52
|
+
cost: AttCost;
|
|
53
|
+
} | {
|
|
54
|
+
kind: 'ask';
|
|
55
|
+
tool: string;
|
|
56
|
+
toolName?: string;
|
|
57
|
+
input: Record<string, unknown>;
|
|
58
|
+
brain: string;
|
|
59
|
+
cost: AttCost;
|
|
60
|
+
/** Model's extended-thinking chain-of-thought for this iteration (when the
|
|
61
|
+
* provider emitted reasoning blocks). Rendered as the "thinking" callout. */
|
|
62
|
+
thinking?: string;
|
|
63
|
+
/** The tools the model saw (name + description) for this iteration's call —
|
|
64
|
+
* the menu it chose from. On the iteration's first ask only. */
|
|
65
|
+
toolsSeen?: readonly AttToolSeen[];
|
|
66
|
+
} | {
|
|
67
|
+
kind: 'return';
|
|
68
|
+
tool: string;
|
|
69
|
+
toolName?: string;
|
|
70
|
+
replyType: 'data' | 'instruction' | 'both';
|
|
71
|
+
output: Record<string, unknown>;
|
|
72
|
+
brain: string;
|
|
73
|
+
cost: AttCost;
|
|
74
|
+
brainMode?: 'reason' | 'act';
|
|
75
|
+
skill?: string;
|
|
76
|
+
error?: string;
|
|
77
|
+
} | {
|
|
78
|
+
kind: 'answer';
|
|
79
|
+
to: string;
|
|
80
|
+
brain: string;
|
|
81
|
+
answer: AttAnswer;
|
|
82
|
+
cost: AttCost;
|
|
83
|
+
error?: string;
|
|
84
|
+
/** Model's extended-thinking chain-of-thought before the final answer. */
|
|
85
|
+
thinking?: string;
|
|
86
|
+
/** The tools the model saw (name + description) for the final call. */
|
|
87
|
+
toolsSeen?: readonly AttToolSeen[];
|
|
88
|
+
};
|
|
89
|
+
export interface AttTrace {
|
|
90
|
+
task: string;
|
|
91
|
+
title?: string;
|
|
92
|
+
agent: string;
|
|
93
|
+
model: string;
|
|
94
|
+
asker: string;
|
|
95
|
+
steps: AttStep[];
|
|
96
|
+
}
|
|
97
|
+
export interface AgentThinkingTraceOptions {
|
|
98
|
+
readonly id?: string;
|
|
99
|
+
readonly agent?: string;
|
|
100
|
+
readonly model?: string;
|
|
101
|
+
readonly asker?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Override agentfootprint's bundled commentary templates — the SAME shape as
|
|
104
|
+
* the Lens's `commentaryTemplates` prop (partial; spread over the defaults).
|
|
105
|
+
* Drives each beat's `brain` narration, so AgentThinkingUI's Notepad / bottom
|
|
106
|
+
* caption read like the Lens commentary panel — one engine, one voice,
|
|
107
|
+
* consumer-overridable. Omit to use the bundled English defaults.
|
|
108
|
+
*/
|
|
109
|
+
readonly commentaryTemplates?: Partial<CommentaryTemplates>;
|
|
110
|
+
}
|
|
111
|
+
export interface AgentThinkingTraceHandle extends EmitRecorder {
|
|
112
|
+
/** The AgentThinkingUI `Trace` for the run so far. `task` (the headline of the
|
|
113
|
+
* replay pill) defaults to the captured user message; override any field. */
|
|
114
|
+
getTrace(overrides?: Partial<Pick<AttTrace, 'task' | 'title' | 'agent' | 'model' | 'asker'>>): AttTrace;
|
|
115
|
+
clear(): void;
|
|
116
|
+
}
|
|
117
|
+
export declare function agentThinkingTrace(options?: AgentThinkingTraceOptions): AgentThinkingTraceHandle;
|