agentfootprint 1.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 +297 -0
- package/CLAUDE.md +297 -0
- package/LICENSE +21 -0
- package/README.md +339 -0
- package/ai-instructions/claude-code/SKILL.md +597 -0
- package/ai-instructions/clinerules +85 -0
- package/ai-instructions/copilot-instructions.md +109 -0
- package/ai-instructions/cursor/agentfootprint.md +101 -0
- package/ai-instructions/kiro/agentfootprint.md +101 -0
- package/ai-instructions/setup.sh +140 -0
- package/ai-instructions/windsurfrules +85 -0
- package/dist/adapters/a2a/a2aRunner.js +36 -0
- package/dist/adapters/a2a/a2aRunner.js.map +1 -0
- package/dist/adapters/anthropic/AnthropicAdapter.js +293 -0
- package/dist/adapters/anthropic/AnthropicAdapter.js.map +1 -0
- package/dist/adapters/bedrock/BedrockAdapter.js +313 -0
- package/dist/adapters/bedrock/BedrockAdapter.js.map +1 -0
- package/dist/adapters/browser/BrowserAnthropicAdapter.js +349 -0
- package/dist/adapters/browser/BrowserAnthropicAdapter.js.map +1 -0
- package/dist/adapters/browser/BrowserOpenAIAdapter.js +303 -0
- package/dist/adapters/browser/BrowserOpenAIAdapter.js.map +1 -0
- package/dist/adapters/browser/index.js +8 -0
- package/dist/adapters/browser/index.js.map +1 -0
- package/dist/adapters/createAdapterSubflow.js +46 -0
- package/dist/adapters/createAdapterSubflow.js.map +1 -0
- package/dist/adapters/createProvider.js +107 -0
- package/dist/adapters/createProvider.js.map +1 -0
- package/dist/adapters/fallbackProvider.js +94 -0
- package/dist/adapters/fallbackProvider.js.map +1 -0
- package/dist/adapters/index.js +47 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/mcp/mcpToolProvider.js +44 -0
- package/dist/adapters/mcp/mcpToolProvider.js.map +1 -0
- package/dist/adapters/memory/inMemory.js +38 -0
- package/dist/adapters/memory/inMemory.js.map +1 -0
- package/dist/adapters/memory/index.js +6 -0
- package/dist/adapters/memory/index.js.map +1 -0
- package/dist/adapters/memory/stores.js +137 -0
- package/dist/adapters/memory/stores.js.map +1 -0
- package/dist/adapters/memory/types.js +14 -0
- package/dist/adapters/memory/types.js.map +1 -0
- package/dist/adapters/mock/MockAdapter.js +66 -0
- package/dist/adapters/mock/MockAdapter.js.map +1 -0
- package/dist/adapters/mock/MockRetriever.js +61 -0
- package/dist/adapters/mock/MockRetriever.js.map +1 -0
- package/dist/adapters/openai/OpenAIAdapter.js +276 -0
- package/dist/adapters/openai/OpenAIAdapter.js.map +1 -0
- package/dist/adapters/resilientProvider.js +93 -0
- package/dist/adapters/resilientProvider.js.map +1 -0
- package/dist/compositions/index.js +17 -0
- package/dist/compositions/index.js.map +1 -0
- package/dist/compositions/withCircuitBreaker.js +84 -0
- package/dist/compositions/withCircuitBreaker.js.map +1 -0
- package/dist/compositions/withFallback.js +33 -0
- package/dist/compositions/withFallback.js.map +1 -0
- package/dist/compositions/withRetry.js +59 -0
- package/dist/compositions/withRetry.js.map +1 -0
- package/dist/concepts/FlowChart.js +205 -0
- package/dist/concepts/FlowChart.js.map +1 -0
- package/dist/concepts/LLMCall.js +160 -0
- package/dist/concepts/LLMCall.js.map +1 -0
- package/dist/concepts/Parallel.js +254 -0
- package/dist/concepts/Parallel.js.map +1 -0
- package/dist/concepts/RAG.js +198 -0
- package/dist/concepts/RAG.js.map +1 -0
- package/dist/concepts/Swarm.js +270 -0
- package/dist/concepts/Swarm.js.map +1 -0
- package/dist/concepts/index.js +23 -0
- package/dist/concepts/index.js.map +1 -0
- package/dist/concepts/specIcons.js +48 -0
- package/dist/concepts/specIcons.js.map +1 -0
- package/dist/core/config.js +7 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/index.js +14 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/providers.js +19 -0
- package/dist/core/providers.js.map +1 -0
- package/dist/core/recorders.js +7 -0
- package/dist/core/recorders.js.map +1 -0
- package/dist/esm/adapters/a2a/a2aRunner.js +32 -0
- package/dist/esm/adapters/a2a/a2aRunner.js.map +1 -0
- package/dist/esm/adapters/anthropic/AnthropicAdapter.js +289 -0
- package/dist/esm/adapters/anthropic/AnthropicAdapter.js.map +1 -0
- package/dist/esm/adapters/bedrock/BedrockAdapter.js +309 -0
- package/dist/esm/adapters/bedrock/BedrockAdapter.js.map +1 -0
- package/dist/esm/adapters/browser/BrowserAnthropicAdapter.js +345 -0
- package/dist/esm/adapters/browser/BrowserAnthropicAdapter.js.map +1 -0
- package/dist/esm/adapters/browser/BrowserOpenAIAdapter.js +299 -0
- package/dist/esm/adapters/browser/BrowserOpenAIAdapter.js.map +1 -0
- package/dist/esm/adapters/browser/index.js +3 -0
- package/dist/esm/adapters/browser/index.js.map +1 -0
- package/dist/esm/adapters/createAdapterSubflow.js +42 -0
- package/dist/esm/adapters/createAdapterSubflow.js.map +1 -0
- package/dist/esm/adapters/createProvider.js +101 -0
- package/dist/esm/adapters/createProvider.js.map +1 -0
- package/dist/esm/adapters/fallbackProvider.js +90 -0
- package/dist/esm/adapters/fallbackProvider.js.map +1 -0
- package/dist/esm/adapters/index.js +23 -0
- package/dist/esm/adapters/index.js.map +1 -0
- package/dist/esm/adapters/mcp/mcpToolProvider.js +40 -0
- package/dist/esm/adapters/mcp/mcpToolProvider.js.map +1 -0
- package/dist/esm/adapters/memory/inMemory.js +34 -0
- package/dist/esm/adapters/memory/inMemory.js.map +1 -0
- package/dist/esm/adapters/memory/index.js +2 -0
- package/dist/esm/adapters/memory/index.js.map +1 -0
- package/dist/esm/adapters/memory/stores.js +131 -0
- package/dist/esm/adapters/memory/stores.js.map +1 -0
- package/dist/esm/adapters/memory/types.js +13 -0
- package/dist/esm/adapters/memory/types.js.map +1 -0
- package/dist/esm/adapters/mock/MockAdapter.js +61 -0
- package/dist/esm/adapters/mock/MockAdapter.js.map +1 -0
- package/dist/esm/adapters/mock/MockRetriever.js +56 -0
- package/dist/esm/adapters/mock/MockRetriever.js.map +1 -0
- package/dist/esm/adapters/openai/OpenAIAdapter.js +272 -0
- package/dist/esm/adapters/openai/OpenAIAdapter.js.map +1 -0
- package/dist/esm/adapters/resilientProvider.js +89 -0
- package/dist/esm/adapters/resilientProvider.js.map +1 -0
- package/dist/esm/compositions/index.js +10 -0
- package/dist/esm/compositions/index.js.map +1 -0
- package/dist/esm/compositions/withCircuitBreaker.js +79 -0
- package/dist/esm/compositions/withCircuitBreaker.js.map +1 -0
- package/dist/esm/compositions/withFallback.js +29 -0
- package/dist/esm/compositions/withFallback.js.map +1 -0
- package/dist/esm/compositions/withRetry.js +55 -0
- package/dist/esm/compositions/withRetry.js.map +1 -0
- package/dist/esm/concepts/FlowChart.js +200 -0
- package/dist/esm/concepts/FlowChart.js.map +1 -0
- package/dist/esm/concepts/LLMCall.js +155 -0
- package/dist/esm/concepts/LLMCall.js.map +1 -0
- package/dist/esm/concepts/Parallel.js +249 -0
- package/dist/esm/concepts/Parallel.js.map +1 -0
- package/dist/esm/concepts/RAG.js +193 -0
- package/dist/esm/concepts/RAG.js.map +1 -0
- package/dist/esm/concepts/Swarm.js +265 -0
- package/dist/esm/concepts/Swarm.js.map +1 -0
- package/dist/esm/concepts/index.js +8 -0
- package/dist/esm/concepts/index.js.map +1 -0
- package/dist/esm/concepts/specIcons.js +44 -0
- package/dist/esm/concepts/specIcons.js.map +1 -0
- package/dist/esm/core/config.js +6 -0
- package/dist/esm/core/config.js.map +1 -0
- package/dist/esm/core/index.js +13 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/core/providers.js +18 -0
- package/dist/esm/core/providers.js.map +1 -0
- package/dist/esm/core/recorders.js +6 -0
- package/dist/esm/core/recorders.js.map +1 -0
- package/dist/esm/executor/agentLoop.js +150 -0
- package/dist/esm/executor/agentLoop.js.map +1 -0
- package/dist/esm/executor/index.js +5 -0
- package/dist/esm/executor/index.js.map +1 -0
- package/dist/esm/explain.barrel.js +19 -0
- package/dist/esm/explain.barrel.js.map +1 -0
- package/dist/esm/index.js +29 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/instructions.barrel.js +22 -0
- package/dist/esm/instructions.barrel.js.map +1 -0
- package/dist/esm/lib/call/callLLMStage.js +64 -0
- package/dist/esm/lib/call/callLLMStage.js.map +1 -0
- package/dist/esm/lib/call/handleResponseStage.js +49 -0
- package/dist/esm/lib/call/handleResponseStage.js.map +1 -0
- package/dist/esm/lib/call/helpers.js +164 -0
- package/dist/esm/lib/call/helpers.js.map +1 -0
- package/dist/esm/lib/call/index.js +7 -0
- package/dist/esm/lib/call/index.js.map +1 -0
- package/dist/esm/lib/call/parseResponseStage.js +48 -0
- package/dist/esm/lib/call/parseResponseStage.js.map +1 -0
- package/dist/esm/lib/call/streamingCallLLMStage.js +103 -0
- package/dist/esm/lib/call/streamingCallLLMStage.js.map +1 -0
- package/dist/esm/lib/call/toolExecutionSubflow.js +87 -0
- package/dist/esm/lib/call/toolExecutionSubflow.js.map +1 -0
- package/dist/esm/lib/call/types.js +10 -0
- package/dist/esm/lib/call/types.js.map +1 -0
- package/dist/esm/lib/concepts/Agent.js +7 -0
- package/dist/esm/lib/concepts/Agent.js.map +1 -0
- package/dist/esm/lib/concepts/AgentBuilder.js +224 -0
- package/dist/esm/lib/concepts/AgentBuilder.js.map +1 -0
- package/dist/esm/lib/concepts/AgentRunner.js +337 -0
- package/dist/esm/lib/concepts/AgentRunner.js.map +1 -0
- package/dist/esm/lib/concepts/index.js +2 -0
- package/dist/esm/lib/concepts/index.js.map +1 -0
- package/dist/esm/lib/instructions/InstructionRecorder.js +121 -0
- package/dist/esm/lib/instructions/InstructionRecorder.js.map +1 -0
- package/dist/esm/lib/instructions/agentInstruction.js +139 -0
- package/dist/esm/lib/instructions/agentInstruction.js.map +1 -0
- package/dist/esm/lib/instructions/buildInstructionsToLLMSubflow.js +83 -0
- package/dist/esm/lib/instructions/buildInstructionsToLLMSubflow.js.map +1 -0
- package/dist/esm/lib/instructions/evaluator.js +196 -0
- package/dist/esm/lib/instructions/evaluator.js.map +1 -0
- package/dist/esm/lib/instructions/index.js +10 -0
- package/dist/esm/lib/instructions/index.js.map +1 -0
- package/dist/esm/lib/instructions/inject.js +55 -0
- package/dist/esm/lib/instructions/inject.js.map +1 -0
- package/dist/esm/lib/instructions/preview.js +88 -0
- package/dist/esm/lib/instructions/preview.js.map +1 -0
- package/dist/esm/lib/instructions/strictFollowUp.js +125 -0
- package/dist/esm/lib/instructions/strictFollowUp.js.map +1 -0
- package/dist/esm/lib/instructions/template.js +82 -0
- package/dist/esm/lib/instructions/template.js.map +1 -0
- package/dist/esm/lib/instructions/types.js +83 -0
- package/dist/esm/lib/instructions/types.js.map +1 -0
- package/dist/esm/lib/loop/buildAgentLoop.js +401 -0
- package/dist/esm/lib/loop/buildAgentLoop.js.map +1 -0
- package/dist/esm/lib/loop/index.js +3 -0
- package/dist/esm/lib/loop/index.js.map +1 -0
- package/dist/esm/lib/loop/types.js +71 -0
- package/dist/esm/lib/loop/types.js.map +1 -0
- package/dist/esm/lib/narrative/agentRenderer.js +293 -0
- package/dist/esm/lib/narrative/agentRenderer.js.map +1 -0
- package/dist/esm/lib/narrative/groundingHelpers.js +136 -0
- package/dist/esm/lib/narrative/groundingHelpers.js.map +1 -0
- package/dist/esm/lib/narrative/index.js +3 -0
- package/dist/esm/lib/narrative/index.js.map +1 -0
- package/dist/esm/lib/slots/helpers.js +23 -0
- package/dist/esm/lib/slots/helpers.js.map +1 -0
- package/dist/esm/lib/slots/index.js +4 -0
- package/dist/esm/lib/slots/index.js.map +1 -0
- package/dist/esm/lib/slots/messages/buildMessagesSubflow.js +108 -0
- package/dist/esm/lib/slots/messages/buildMessagesSubflow.js.map +1 -0
- package/dist/esm/lib/slots/messages/index.js +2 -0
- package/dist/esm/lib/slots/messages/index.js.map +1 -0
- package/dist/esm/lib/slots/messages/types.js +10 -0
- package/dist/esm/lib/slots/messages/types.js.map +1 -0
- package/dist/esm/lib/slots/system-prompt/buildSystemPromptSubflow.js +64 -0
- package/dist/esm/lib/slots/system-prompt/buildSystemPromptSubflow.js.map +1 -0
- package/dist/esm/lib/slots/system-prompt/index.js +2 -0
- package/dist/esm/lib/slots/system-prompt/index.js.map +1 -0
- package/dist/esm/lib/slots/system-prompt/types.js +9 -0
- package/dist/esm/lib/slots/system-prompt/types.js.map +1 -0
- package/dist/esm/lib/slots/tools/buildToolsSubflow.js +67 -0
- package/dist/esm/lib/slots/tools/buildToolsSubflow.js.map +1 -0
- package/dist/esm/lib/slots/tools/index.js +2 -0
- package/dist/esm/lib/slots/tools/index.js.map +1 -0
- package/dist/esm/lib/slots/tools/types.js +11 -0
- package/dist/esm/lib/slots/tools/types.js.map +1 -0
- package/dist/esm/lib/swarm/buildSwarmRouting.js +207 -0
- package/dist/esm/lib/swarm/buildSwarmRouting.js.map +1 -0
- package/dist/esm/lib/swarm/index.js +2 -0
- package/dist/esm/lib/swarm/index.js.map +1 -0
- package/dist/esm/memory/conversationHelpers.js +56 -0
- package/dist/esm/memory/conversationHelpers.js.map +1 -0
- package/dist/esm/memory/index.js +2 -0
- package/dist/esm/memory/index.js.map +1 -0
- package/dist/esm/models/index.js +3 -0
- package/dist/esm/models/index.js.map +1 -0
- package/dist/esm/models/pricing.js +23 -0
- package/dist/esm/models/pricing.js.map +1 -0
- package/dist/esm/models/providers.js +42 -0
- package/dist/esm/models/providers.js.map +1 -0
- package/dist/esm/models/types.js +6 -0
- package/dist/esm/models/types.js.map +1 -0
- package/dist/esm/observe.barrel.js +18 -0
- package/dist/esm/observe.barrel.js.map +1 -0
- package/dist/esm/providers/index.js +12 -0
- package/dist/esm/providers/index.js.map +1 -0
- package/dist/esm/providers/messages/charBudget.js +39 -0
- package/dist/esm/providers/messages/charBudget.js.map +1 -0
- package/dist/esm/providers/messages/compositeMessages.js +33 -0
- package/dist/esm/providers/messages/compositeMessages.js.map +1 -0
- package/dist/esm/providers/messages/fullHistory.js +15 -0
- package/dist/esm/providers/messages/fullHistory.js.map +1 -0
- package/dist/esm/providers/messages/index.js +11 -0
- package/dist/esm/providers/messages/index.js.map +1 -0
- package/dist/esm/providers/messages/persistentHistory.js +40 -0
- package/dist/esm/providers/messages/persistentHistory.js.map +1 -0
- package/dist/esm/providers/messages/slidingWindow.js +24 -0
- package/dist/esm/providers/messages/slidingWindow.js.map +1 -0
- package/dist/esm/providers/messages/summaryStrategy.js +41 -0
- package/dist/esm/providers/messages/summaryStrategy.js.map +1 -0
- package/dist/esm/providers/messages/withToolPairSafety.js +76 -0
- package/dist/esm/providers/messages/withToolPairSafety.js.map +1 -0
- package/dist/esm/providers/prompt/compositePrompt.js +28 -0
- package/dist/esm/providers/prompt/compositePrompt.js.map +1 -0
- package/dist/esm/providers/prompt/index.js +8 -0
- package/dist/esm/providers/prompt/index.js.map +1 -0
- package/dist/esm/providers/prompt/skillBasedPrompt.js +37 -0
- package/dist/esm/providers/prompt/skillBasedPrompt.js.map +1 -0
- package/dist/esm/providers/prompt/static.js +9 -0
- package/dist/esm/providers/prompt/static.js.map +1 -0
- package/dist/esm/providers/prompt/template.js +20 -0
- package/dist/esm/providers/prompt/template.js.map +1 -0
- package/dist/esm/providers/tools/PermissionPolicy.js +100 -0
- package/dist/esm/providers/tools/PermissionPolicy.js.map +1 -0
- package/dist/esm/providers/tools/agentAsTool.js +47 -0
- package/dist/esm/providers/tools/agentAsTool.js.map +1 -0
- package/dist/esm/providers/tools/compositeTools.js +49 -0
- package/dist/esm/providers/tools/compositeTools.js.map +1 -0
- package/dist/esm/providers/tools/dynamicTools.js +41 -0
- package/dist/esm/providers/tools/dynamicTools.js.map +1 -0
- package/dist/esm/providers/tools/gatedTools.js +90 -0
- package/dist/esm/providers/tools/gatedTools.js.map +1 -0
- package/dist/esm/providers/tools/index.js +11 -0
- package/dist/esm/providers/tools/index.js.map +1 -0
- package/dist/esm/providers/tools/noTools.js +9 -0
- package/dist/esm/providers/tools/noTools.js.map +1 -0
- package/dist/esm/providers/tools/staticTools.js +25 -0
- package/dist/esm/providers/tools/staticTools.js.map +1 -0
- package/dist/esm/providers.barrel.js +32 -0
- package/dist/esm/providers.barrel.js.map +1 -0
- package/dist/esm/recorders/index.js +5 -0
- package/dist/esm/recorders/index.js.map +1 -0
- package/dist/esm/recorders/v2/CompositeRecorder.js +65 -0
- package/dist/esm/recorders/v2/CompositeRecorder.js.map +1 -0
- package/dist/esm/recorders/v2/CostRecorder.js +47 -0
- package/dist/esm/recorders/v2/CostRecorder.js.map +1 -0
- package/dist/esm/recorders/v2/ExplainRecorder.js +93 -0
- package/dist/esm/recorders/v2/ExplainRecorder.js.map +1 -0
- package/dist/esm/recorders/v2/GuardrailRecorder.js +58 -0
- package/dist/esm/recorders/v2/GuardrailRecorder.js.map +1 -0
- package/dist/esm/recorders/v2/OTelRecorder.js +79 -0
- package/dist/esm/recorders/v2/OTelRecorder.js.map +1 -0
- package/dist/esm/recorders/v2/PermissionRecorder.js +86 -0
- package/dist/esm/recorders/v2/PermissionRecorder.js.map +1 -0
- package/dist/esm/recorders/v2/QualityRecorder.js +48 -0
- package/dist/esm/recorders/v2/QualityRecorder.js.map +1 -0
- package/dist/esm/recorders/v2/RecorderBridge.js +85 -0
- package/dist/esm/recorders/v2/RecorderBridge.js.map +1 -0
- package/dist/esm/recorders/v2/TokenRecorder.js +72 -0
- package/dist/esm/recorders/v2/TokenRecorder.js.map +1 -0
- package/dist/esm/recorders/v2/ToolUsageRecorder.js +54 -0
- package/dist/esm/recorders/v2/ToolUsageRecorder.js.map +1 -0
- package/dist/esm/recorders/v2/TurnRecorder.js +83 -0
- package/dist/esm/recorders/v2/TurnRecorder.js.map +1 -0
- package/dist/esm/recorders/v2/agentObservability.js +62 -0
- package/dist/esm/recorders/v2/agentObservability.js.map +1 -0
- package/dist/esm/recorders/v2/index.js +13 -0
- package/dist/esm/recorders/v2/index.js.map +1 -0
- package/dist/esm/resilience.barrel.js +16 -0
- package/dist/esm/resilience.barrel.js.map +1 -0
- package/dist/esm/scope/AgentScope.js +153 -0
- package/dist/esm/scope/AgentScope.js.map +1 -0
- package/dist/esm/scope/index.js +2 -0
- package/dist/esm/scope/index.js.map +1 -0
- package/dist/esm/scope/types.js +37 -0
- package/dist/esm/scope/types.js.map +1 -0
- package/dist/esm/security.barrel.js +17 -0
- package/dist/esm/security.barrel.js.map +1 -0
- package/dist/esm/stages/augmentPrompt.js +28 -0
- package/dist/esm/stages/augmentPrompt.js.map +1 -0
- package/dist/esm/stages/callLLM.js +15 -0
- package/dist/esm/stages/callLLM.js.map +1 -0
- package/dist/esm/stages/commitMemory.js +94 -0
- package/dist/esm/stages/commitMemory.js.map +1 -0
- package/dist/esm/stages/finalize.js +12 -0
- package/dist/esm/stages/finalize.js.map +1 -0
- package/dist/esm/stages/helpers.js +58 -0
- package/dist/esm/stages/helpers.js.map +1 -0
- package/dist/esm/stages/index.js +9 -0
- package/dist/esm/stages/index.js.map +1 -0
- package/dist/esm/stages/parseResponse.js +25 -0
- package/dist/esm/stages/parseResponse.js.map +1 -0
- package/dist/esm/stages/retrieve.js +18 -0
- package/dist/esm/stages/retrieve.js.map +1 -0
- package/dist/esm/stages/runnerAsStage.js +66 -0
- package/dist/esm/stages/runnerAsStage.js.map +1 -0
- package/dist/esm/stream.barrel.js +18 -0
- package/dist/esm/stream.barrel.js.map +1 -0
- package/dist/esm/streaming/StreamEmitter.js +43 -0
- package/dist/esm/streaming/StreamEmitter.js.map +1 -0
- package/dist/esm/streaming/index.js +2 -0
- package/dist/esm/streaming/index.js.map +1 -0
- package/dist/esm/subflows/index.js +2 -0
- package/dist/esm/subflows/index.js.map +1 -0
- package/dist/esm/subflows/prepareMemory.js +83 -0
- package/dist/esm/subflows/prepareMemory.js.map +1 -0
- package/dist/esm/tools/ToolRegistry.js +84 -0
- package/dist/esm/tools/ToolRegistry.js.map +1 -0
- package/dist/esm/tools/askHuman.js +63 -0
- package/dist/esm/tools/askHuman.js.map +1 -0
- package/dist/esm/tools/index.js +3 -0
- package/dist/esm/tools/index.js.map +1 -0
- package/dist/esm/tools/validateInput.js +56 -0
- package/dist/esm/tools/validateInput.js.map +1 -0
- package/dist/esm/tools/zodToJsonSchema.js +65 -0
- package/dist/esm/tools/zodToJsonSchema.js.map +1 -0
- package/dist/esm/types/adapter.js +11 -0
- package/dist/esm/types/adapter.js.map +1 -0
- package/dist/esm/types/agent.js +5 -0
- package/dist/esm/types/agent.js.map +1 -0
- package/dist/esm/types/content.js +82 -0
- package/dist/esm/types/content.js.map +1 -0
- package/dist/esm/types/errors.js +74 -0
- package/dist/esm/types/errors.js.map +1 -0
- package/dist/esm/types/index.js +5 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/llm.js +6 -0
- package/dist/esm/types/llm.js.map +1 -0
- package/dist/esm/types/messages.js +24 -0
- package/dist/esm/types/messages.js.map +1 -0
- package/dist/esm/types/multiAgent.js +5 -0
- package/dist/esm/types/multiAgent.js.map +1 -0
- package/dist/esm/types/retriever.js +6 -0
- package/dist/esm/types/retriever.js.map +1 -0
- package/dist/esm/types/tools.js +5 -0
- package/dist/esm/types/tools.js.map +1 -0
- package/dist/executor/agentLoop.js +154 -0
- package/dist/executor/agentLoop.js.map +1 -0
- package/dist/executor/index.js +9 -0
- package/dist/executor/index.js.map +1 -0
- package/dist/explain.barrel.js +27 -0
- package/dist/explain.barrel.js.map +1 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/dist/instructions.barrel.js +30 -0
- package/dist/instructions.barrel.js.map +1 -0
- package/dist/lib/call/callLLMStage.js +68 -0
- package/dist/lib/call/callLLMStage.js.map +1 -0
- package/dist/lib/call/handleResponseStage.js +53 -0
- package/dist/lib/call/handleResponseStage.js.map +1 -0
- package/dist/lib/call/helpers.js +169 -0
- package/dist/lib/call/helpers.js.map +1 -0
- package/dist/lib/call/index.js +17 -0
- package/dist/lib/call/index.js.map +1 -0
- package/dist/lib/call/parseResponseStage.js +52 -0
- package/dist/lib/call/parseResponseStage.js.map +1 -0
- package/dist/lib/call/streamingCallLLMStage.js +107 -0
- package/dist/lib/call/streamingCallLLMStage.js.map +1 -0
- package/dist/lib/call/toolExecutionSubflow.js +91 -0
- package/dist/lib/call/toolExecutionSubflow.js.map +1 -0
- package/dist/lib/call/types.js +11 -0
- package/dist/lib/call/types.js.map +1 -0
- package/dist/lib/concepts/Agent.js +12 -0
- package/dist/lib/concepts/Agent.js.map +1 -0
- package/dist/lib/concepts/AgentBuilder.js +228 -0
- package/dist/lib/concepts/AgentBuilder.js.map +1 -0
- package/dist/lib/concepts/AgentRunner.js +341 -0
- package/dist/lib/concepts/AgentRunner.js.map +1 -0
- package/dist/lib/concepts/index.js +7 -0
- package/dist/lib/concepts/index.js.map +1 -0
- package/dist/lib/instructions/InstructionRecorder.js +125 -0
- package/dist/lib/instructions/InstructionRecorder.js.map +1 -0
- package/dist/lib/instructions/agentInstruction.js +144 -0
- package/dist/lib/instructions/agentInstruction.js.map +1 -0
- package/dist/lib/instructions/buildInstructionsToLLMSubflow.js +87 -0
- package/dist/lib/instructions/buildInstructionsToLLMSubflow.js.map +1 -0
- package/dist/lib/instructions/evaluator.js +202 -0
- package/dist/lib/instructions/evaluator.js.map +1 -0
- package/dist/lib/instructions/index.js +27 -0
- package/dist/lib/instructions/index.js.map +1 -0
- package/dist/lib/instructions/inject.js +59 -0
- package/dist/lib/instructions/inject.js.map +1 -0
- package/dist/lib/instructions/preview.js +92 -0
- package/dist/lib/instructions/preview.js.map +1 -0
- package/dist/lib/instructions/strictFollowUp.js +130 -0
- package/dist/lib/instructions/strictFollowUp.js.map +1 -0
- package/dist/lib/instructions/template.js +86 -0
- package/dist/lib/instructions/template.js.map +1 -0
- package/dist/lib/instructions/types.js +88 -0
- package/dist/lib/instructions/types.js.map +1 -0
- package/dist/lib/loop/buildAgentLoop.js +405 -0
- package/dist/lib/loop/buildAgentLoop.js.map +1 -0
- package/dist/lib/loop/index.js +9 -0
- package/dist/lib/loop/index.js.map +1 -0
- package/dist/lib/loop/types.js +74 -0
- package/dist/lib/loop/types.js.map +1 -0
- package/dist/lib/narrative/agentRenderer.js +297 -0
- package/dist/lib/narrative/agentRenderer.js.map +1 -0
- package/dist/lib/narrative/groundingHelpers.js +142 -0
- package/dist/lib/narrative/groundingHelpers.js.map +1 -0
- package/dist/lib/narrative/index.js +10 -0
- package/dist/lib/narrative/index.js.map +1 -0
- package/dist/lib/slots/helpers.js +28 -0
- package/dist/lib/slots/helpers.js.map +1 -0
- package/dist/lib/slots/index.js +10 -0
- package/dist/lib/slots/index.js.map +1 -0
- package/dist/lib/slots/messages/buildMessagesSubflow.js +112 -0
- package/dist/lib/slots/messages/buildMessagesSubflow.js.map +1 -0
- package/dist/lib/slots/messages/index.js +6 -0
- package/dist/lib/slots/messages/index.js.map +1 -0
- package/dist/lib/slots/messages/types.js +11 -0
- package/dist/lib/slots/messages/types.js.map +1 -0
- package/dist/lib/slots/system-prompt/buildSystemPromptSubflow.js +68 -0
- package/dist/lib/slots/system-prompt/buildSystemPromptSubflow.js.map +1 -0
- package/dist/lib/slots/system-prompt/index.js +6 -0
- package/dist/lib/slots/system-prompt/index.js.map +1 -0
- package/dist/lib/slots/system-prompt/types.js +10 -0
- package/dist/lib/slots/system-prompt/types.js.map +1 -0
- package/dist/lib/slots/tools/buildToolsSubflow.js +71 -0
- package/dist/lib/slots/tools/buildToolsSubflow.js.map +1 -0
- package/dist/lib/slots/tools/index.js +6 -0
- package/dist/lib/slots/tools/index.js.map +1 -0
- package/dist/lib/slots/tools/types.js +12 -0
- package/dist/lib/slots/tools/types.js.map +1 -0
- package/dist/lib/swarm/buildSwarmRouting.js +211 -0
- package/dist/lib/swarm/buildSwarmRouting.js.map +1 -0
- package/dist/lib/swarm/index.js +6 -0
- package/dist/lib/swarm/index.js.map +1 -0
- package/dist/memory/conversationHelpers.js +66 -0
- package/dist/memory/conversationHelpers.js.map +1 -0
- package/dist/memory/index.js +12 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/models/index.js +12 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/pricing.js +27 -0
- package/dist/models/pricing.js.map +1 -0
- package/dist/models/providers.js +49 -0
- package/dist/models/providers.js.map +1 -0
- package/dist/models/types.js +7 -0
- package/dist/models/types.js.map +1 -0
- package/dist/observe.barrel.js +31 -0
- package/dist/observe.barrel.js.map +1 -0
- package/dist/providers/index.js +34 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/messages/charBudget.js +43 -0
- package/dist/providers/messages/charBudget.js.map +1 -0
- package/dist/providers/messages/compositeMessages.js +37 -0
- package/dist/providers/messages/compositeMessages.js.map +1 -0
- package/dist/providers/messages/fullHistory.js +19 -0
- package/dist/providers/messages/fullHistory.js.map +1 -0
- package/dist/providers/messages/index.js +22 -0
- package/dist/providers/messages/index.js.map +1 -0
- package/dist/providers/messages/persistentHistory.js +45 -0
- package/dist/providers/messages/persistentHistory.js.map +1 -0
- package/dist/providers/messages/slidingWindow.js +28 -0
- package/dist/providers/messages/slidingWindow.js.map +1 -0
- package/dist/providers/messages/summaryStrategy.js +45 -0
- package/dist/providers/messages/summaryStrategy.js.map +1 -0
- package/dist/providers/messages/withToolPairSafety.js +80 -0
- package/dist/providers/messages/withToolPairSafety.js.map +1 -0
- package/dist/providers/prompt/compositePrompt.js +32 -0
- package/dist/providers/prompt/compositePrompt.js.map +1 -0
- package/dist/providers/prompt/index.js +15 -0
- package/dist/providers/prompt/index.js.map +1 -0
- package/dist/providers/prompt/skillBasedPrompt.js +41 -0
- package/dist/providers/prompt/skillBasedPrompt.js.map +1 -0
- package/dist/providers/prompt/static.js +13 -0
- package/dist/providers/prompt/static.js.map +1 -0
- package/dist/providers/prompt/template.js +24 -0
- package/dist/providers/prompt/template.js.map +1 -0
- package/dist/providers/tools/PermissionPolicy.js +104 -0
- package/dist/providers/tools/PermissionPolicy.js.map +1 -0
- package/dist/providers/tools/agentAsTool.js +51 -0
- package/dist/providers/tools/agentAsTool.js.map +1 -0
- package/dist/providers/tools/compositeTools.js +53 -0
- package/dist/providers/tools/compositeTools.js.map +1 -0
- package/dist/providers/tools/dynamicTools.js +45 -0
- package/dist/providers/tools/dynamicTools.js.map +1 -0
- package/dist/providers/tools/gatedTools.js +94 -0
- package/dist/providers/tools/gatedTools.js.map +1 -0
- package/dist/providers/tools/index.js +21 -0
- package/dist/providers/tools/index.js.map +1 -0
- package/dist/providers/tools/noTools.js +13 -0
- package/dist/providers/tools/noTools.js.map +1 -0
- package/dist/providers/tools/staticTools.js +29 -0
- package/dist/providers/tools/staticTools.js.map +1 -0
- package/dist/providers.barrel.js +61 -0
- package/dist/providers.barrel.js.map +1 -0
- package/dist/recorders/index.js +17 -0
- package/dist/recorders/index.js.map +1 -0
- package/dist/recorders/v2/CompositeRecorder.js +69 -0
- package/dist/recorders/v2/CompositeRecorder.js.map +1 -0
- package/dist/recorders/v2/CostRecorder.js +51 -0
- package/dist/recorders/v2/CostRecorder.js.map +1 -0
- package/dist/recorders/v2/ExplainRecorder.js +97 -0
- package/dist/recorders/v2/ExplainRecorder.js.map +1 -0
- package/dist/recorders/v2/GuardrailRecorder.js +62 -0
- package/dist/recorders/v2/GuardrailRecorder.js.map +1 -0
- package/dist/recorders/v2/OTelRecorder.js +83 -0
- package/dist/recorders/v2/OTelRecorder.js.map +1 -0
- package/dist/recorders/v2/PermissionRecorder.js +90 -0
- package/dist/recorders/v2/PermissionRecorder.js.map +1 -0
- package/dist/recorders/v2/QualityRecorder.js +52 -0
- package/dist/recorders/v2/QualityRecorder.js.map +1 -0
- package/dist/recorders/v2/RecorderBridge.js +89 -0
- package/dist/recorders/v2/RecorderBridge.js.map +1 -0
- package/dist/recorders/v2/TokenRecorder.js +76 -0
- package/dist/recorders/v2/TokenRecorder.js.map +1 -0
- package/dist/recorders/v2/ToolUsageRecorder.js +58 -0
- package/dist/recorders/v2/ToolUsageRecorder.js.map +1 -0
- package/dist/recorders/v2/TurnRecorder.js +87 -0
- package/dist/recorders/v2/TurnRecorder.js.map +1 -0
- package/dist/recorders/v2/agentObservability.js +66 -0
- package/dist/recorders/v2/agentObservability.js.map +1 -0
- package/dist/recorders/v2/index.js +25 -0
- package/dist/recorders/v2/index.js.map +1 -0
- package/dist/resilience.barrel.js +25 -0
- package/dist/resilience.barrel.js.map +1 -0
- package/dist/scope/AgentScope.js +156 -0
- package/dist/scope/AgentScope.js.map +1 -0
- package/dist/scope/index.js +10 -0
- package/dist/scope/index.js.map +1 -0
- package/dist/scope/types.js +40 -0
- package/dist/scope/types.js.map +1 -0
- package/dist/security.barrel.js +22 -0
- package/dist/security.barrel.js.map +1 -0
- package/dist/stages/augmentPrompt.js +32 -0
- package/dist/stages/augmentPrompt.js.map +1 -0
- package/dist/stages/callLLM.js +19 -0
- package/dist/stages/callLLM.js.map +1 -0
- package/dist/stages/commitMemory.js +98 -0
- package/dist/stages/commitMemory.js.map +1 -0
- package/dist/stages/finalize.js +16 -0
- package/dist/stages/finalize.js.map +1 -0
- package/dist/stages/helpers.js +63 -0
- package/dist/stages/helpers.js.map +1 -0
- package/dist/stages/index.js +21 -0
- package/dist/stages/index.js.map +1 -0
- package/dist/stages/parseResponse.js +29 -0
- package/dist/stages/parseResponse.js.map +1 -0
- package/dist/stages/retrieve.js +22 -0
- package/dist/stages/retrieve.js.map +1 -0
- package/dist/stages/runnerAsStage.js +70 -0
- package/dist/stages/runnerAsStage.js.map +1 -0
- package/dist/stream.barrel.js +23 -0
- package/dist/stream.barrel.js.map +1 -0
- package/dist/streaming/StreamEmitter.js +48 -0
- package/dist/streaming/StreamEmitter.js.map +1 -0
- package/dist/streaming/index.js +7 -0
- package/dist/streaming/index.js.map +1 -0
- package/dist/subflows/index.js +6 -0
- package/dist/subflows/index.js.map +1 -0
- package/dist/subflows/prepareMemory.js +87 -0
- package/dist/subflows/prepareMemory.js.map +1 -0
- package/dist/tools/ToolRegistry.js +89 -0
- package/dist/tools/ToolRegistry.js.map +1 -0
- package/dist/tools/askHuman.js +68 -0
- package/dist/tools/askHuman.js.map +1 -0
- package/dist/tools/index.js +9 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/validateInput.js +61 -0
- package/dist/tools/validateInput.js.map +1 -0
- package/dist/tools/zodToJsonSchema.js +70 -0
- package/dist/tools/zodToJsonSchema.js.map +1 -0
- package/dist/types/adapter.js +14 -0
- package/dist/types/adapter.js.map +1 -0
- package/dist/types/adapters/a2a/a2aRunner.d.ts +40 -0
- package/dist/types/adapters/a2a/a2aRunner.d.ts.map +1 -0
- package/dist/types/adapters/anthropic/AnthropicAdapter.d.ts +37 -0
- package/dist/types/adapters/anthropic/AnthropicAdapter.d.ts.map +1 -0
- package/dist/types/adapters/bedrock/BedrockAdapter.d.ts +44 -0
- package/dist/types/adapters/bedrock/BedrockAdapter.d.ts.map +1 -0
- package/dist/types/adapters/browser/BrowserAnthropicAdapter.d.ts +40 -0
- package/dist/types/adapters/browser/BrowserAnthropicAdapter.d.ts.map +1 -0
- package/dist/types/adapters/browser/BrowserOpenAIAdapter.d.ts +46 -0
- package/dist/types/adapters/browser/BrowserOpenAIAdapter.d.ts.map +1 -0
- package/dist/types/adapters/browser/index.d.ts +5 -0
- package/dist/types/adapters/browser/index.d.ts.map +1 -0
- package/dist/types/adapters/createAdapterSubflow.d.ts +36 -0
- package/dist/types/adapters/createAdapterSubflow.d.ts.map +1 -0
- package/dist/types/adapters/createProvider.d.ts +47 -0
- package/dist/types/adapters/createProvider.d.ts.map +1 -0
- package/dist/types/adapters/fallbackProvider.d.ts +45 -0
- package/dist/types/adapters/fallbackProvider.d.ts.map +1 -0
- package/dist/types/adapters/index.d.ts +30 -0
- package/dist/types/adapters/index.d.ts.map +1 -0
- package/dist/types/adapters/mcp/mcpToolProvider.d.ts +41 -0
- package/dist/types/adapters/mcp/mcpToolProvider.d.ts.map +1 -0
- package/dist/types/adapters/memory/inMemory.d.ts +22 -0
- package/dist/types/adapters/memory/inMemory.d.ts.map +1 -0
- package/dist/types/adapters/memory/index.d.ts +3 -0
- package/dist/types/adapters/memory/index.d.ts.map +1 -0
- package/dist/types/adapters/memory/stores.d.ts +92 -0
- package/dist/types/adapters/memory/stores.d.ts.map +1 -0
- package/dist/types/adapters/memory/types.d.ts +74 -0
- package/dist/types/adapters/memory/types.d.ts.map +1 -0
- package/dist/types/adapters/mock/MockAdapter.d.ts +51 -0
- package/dist/types/adapters/mock/MockAdapter.d.ts.map +1 -0
- package/dist/types/adapters/mock/MockRetriever.d.ts +43 -0
- package/dist/types/adapters/mock/MockRetriever.d.ts.map +1 -0
- package/dist/types/adapters/openai/OpenAIAdapter.d.ts +47 -0
- package/dist/types/adapters/openai/OpenAIAdapter.d.ts.map +1 -0
- package/dist/types/adapters/resilientProvider.d.ts +33 -0
- package/dist/types/adapters/resilientProvider.d.ts.map +1 -0
- package/dist/types/agent.js +6 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/compositions/index.d.ts +13 -0
- package/dist/types/compositions/index.d.ts.map +1 -0
- package/dist/types/compositions/withCircuitBreaker.d.ts +43 -0
- package/dist/types/compositions/withCircuitBreaker.d.ts.map +1 -0
- package/dist/types/compositions/withFallback.d.ts +17 -0
- package/dist/types/compositions/withFallback.d.ts.map +1 -0
- package/dist/types/compositions/withRetry.d.ts +27 -0
- package/dist/types/compositions/withRetry.d.ts.map +1 -0
- package/dist/types/concepts/FlowChart.d.ts +52 -0
- package/dist/types/concepts/FlowChart.d.ts.map +1 -0
- package/dist/types/concepts/LLMCall.d.ts +56 -0
- package/dist/types/concepts/LLMCall.d.ts.map +1 -0
- package/dist/types/concepts/Parallel.d.ts +110 -0
- package/dist/types/concepts/Parallel.d.ts.map +1 -0
- package/dist/types/concepts/RAG.d.ts +71 -0
- package/dist/types/concepts/RAG.d.ts.map +1 -0
- package/dist/types/concepts/Swarm.d.ts +98 -0
- package/dist/types/concepts/Swarm.d.ts.map +1 -0
- package/dist/types/concepts/index.d.ts +12 -0
- package/dist/types/concepts/index.d.ts.map +1 -0
- package/dist/types/concepts/specIcons.d.ts +14 -0
- package/dist/types/concepts/specIcons.d.ts.map +1 -0
- package/dist/types/content.js +97 -0
- package/dist/types/content.js.map +1 -0
- package/dist/types/core/config.d.ts +24 -0
- package/dist/types/core/config.d.ts.map +1 -0
- package/dist/types/core/index.d.ts +15 -0
- package/dist/types/core/index.d.ts.map +1 -0
- package/dist/types/core/providers.d.ts +160 -0
- package/dist/types/core/providers.d.ts.map +1 -0
- package/dist/types/core/recorders.d.ts +54 -0
- package/dist/types/core/recorders.d.ts.map +1 -0
- package/dist/types/errors.js +80 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/executor/agentLoop.d.ts +37 -0
- package/dist/types/executor/agentLoop.d.ts.map +1 -0
- package/dist/types/executor/index.d.ts +6 -0
- package/dist/types/executor/index.d.ts.map +1 -0
- package/dist/types/explain.barrel.d.ts +20 -0
- package/dist/types/explain.barrel.d.ts.map +1 -0
- package/dist/types/index.d.ts +31 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +29 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/instructions.barrel.d.ts +24 -0
- package/dist/types/instructions.barrel.d.ts.map +1 -0
- package/dist/types/lib/call/callLLMStage.d.ts +29 -0
- package/dist/types/lib/call/callLLMStage.d.ts.map +1 -0
- package/dist/types/lib/call/handleResponseStage.d.ts +35 -0
- package/dist/types/lib/call/handleResponseStage.d.ts.map +1 -0
- package/dist/types/lib/call/helpers.d.ts +64 -0
- package/dist/types/lib/call/helpers.d.ts.map +1 -0
- package/dist/types/lib/call/index.d.ts +10 -0
- package/dist/types/lib/call/index.d.ts.map +1 -0
- package/dist/types/lib/call/parseResponseStage.d.ts +21 -0
- package/dist/types/lib/call/parseResponseStage.d.ts.map +1 -0
- package/dist/types/lib/call/streamingCallLLMStage.d.ts +23 -0
- package/dist/types/lib/call/streamingCallLLMStage.d.ts.map +1 -0
- package/dist/types/lib/call/toolExecutionSubflow.d.ts +70 -0
- package/dist/types/lib/call/toolExecutionSubflow.d.ts.map +1 -0
- package/dist/types/lib/call/types.d.ts +17 -0
- package/dist/types/lib/call/types.d.ts.map +1 -0
- package/dist/types/lib/concepts/Agent.d.ts +9 -0
- package/dist/types/lib/concepts/Agent.d.ts.map +1 -0
- package/dist/types/lib/concepts/AgentBuilder.d.ts +152 -0
- package/dist/types/lib/concepts/AgentBuilder.d.ts.map +1 -0
- package/dist/types/lib/concepts/AgentRunner.d.ts +100 -0
- package/dist/types/lib/concepts/AgentRunner.d.ts.map +1 -0
- package/dist/types/lib/concepts/index.d.ts +3 -0
- package/dist/types/lib/concepts/index.d.ts.map +1 -0
- package/dist/types/lib/instructions/InstructionRecorder.d.ts +85 -0
- package/dist/types/lib/instructions/InstructionRecorder.d.ts.map +1 -0
- package/dist/types/lib/instructions/agentInstruction.d.ts +150 -0
- package/dist/types/lib/instructions/agentInstruction.d.ts.map +1 -0
- package/dist/types/lib/instructions/buildInstructionsToLLMSubflow.d.ts +56 -0
- package/dist/types/lib/instructions/buildInstructionsToLLMSubflow.d.ts.map +1 -0
- package/dist/types/lib/instructions/evaluator.d.ts +99 -0
- package/dist/types/lib/instructions/evaluator.d.ts.map +1 -0
- package/dist/types/lib/instructions/index.d.ts +18 -0
- package/dist/types/lib/instructions/index.d.ts.map +1 -0
- package/dist/types/lib/instructions/inject.d.ts +54 -0
- package/dist/types/lib/instructions/inject.d.ts.map +1 -0
- package/dist/types/lib/instructions/preview.d.ts +85 -0
- package/dist/types/lib/instructions/preview.d.ts.map +1 -0
- package/dist/types/lib/instructions/strictFollowUp.d.ts +88 -0
- package/dist/types/lib/instructions/strictFollowUp.d.ts.map +1 -0
- package/dist/types/lib/instructions/template.d.ts +52 -0
- package/dist/types/lib/instructions/template.d.ts.map +1 -0
- package/dist/types/lib/instructions/types.d.ts +394 -0
- package/dist/types/lib/instructions/types.d.ts.map +1 -0
- package/dist/types/lib/loop/buildAgentLoop.d.ts +67 -0
- package/dist/types/lib/loop/buildAgentLoop.d.ts.map +1 -0
- package/dist/types/lib/loop/index.d.ts +5 -0
- package/dist/types/lib/loop/index.d.ts.map +1 -0
- package/dist/types/lib/loop/types.d.ts +248 -0
- package/dist/types/lib/loop/types.d.ts.map +1 -0
- package/dist/types/lib/narrative/agentRenderer.d.ts +51 -0
- package/dist/types/lib/narrative/agentRenderer.d.ts.map +1 -0
- package/dist/types/lib/narrative/groundingHelpers.d.ts +94 -0
- package/dist/types/lib/narrative/groundingHelpers.d.ts.map +1 -0
- package/dist/types/lib/narrative/index.d.ts +5 -0
- package/dist/types/lib/narrative/index.d.ts.map +1 -0
- package/dist/types/lib/slots/helpers.d.ts +16 -0
- package/dist/types/lib/slots/helpers.d.ts.map +1 -0
- package/dist/types/lib/slots/index.d.ts +7 -0
- package/dist/types/lib/slots/index.d.ts.map +1 -0
- package/dist/types/lib/slots/messages/buildMessagesSubflow.d.ts +40 -0
- package/dist/types/lib/slots/messages/buildMessagesSubflow.d.ts.map +1 -0
- package/dist/types/lib/slots/messages/index.d.ts +3 -0
- package/dist/types/lib/slots/messages/index.d.ts.map +1 -0
- package/dist/types/lib/slots/messages/types.d.ts +26 -0
- package/dist/types/lib/slots/messages/types.d.ts.map +1 -0
- package/dist/types/lib/slots/system-prompt/buildSystemPromptSubflow.d.ts +27 -0
- package/dist/types/lib/slots/system-prompt/buildSystemPromptSubflow.d.ts.map +1 -0
- package/dist/types/lib/slots/system-prompt/index.d.ts +3 -0
- package/dist/types/lib/slots/system-prompt/index.d.ts.map +1 -0
- package/dist/types/lib/slots/system-prompt/types.d.ts +17 -0
- package/dist/types/lib/slots/system-prompt/types.d.ts.map +1 -0
- package/dist/types/lib/slots/tools/buildToolsSubflow.d.ts +23 -0
- package/dist/types/lib/slots/tools/buildToolsSubflow.d.ts.map +1 -0
- package/dist/types/lib/slots/tools/index.d.ts +3 -0
- package/dist/types/lib/slots/tools/index.d.ts.map +1 -0
- package/dist/types/lib/slots/tools/types.d.ts +18 -0
- package/dist/types/lib/slots/tools/types.d.ts.map +1 -0
- package/dist/types/lib/swarm/buildSwarmRouting.d.ts +36 -0
- package/dist/types/lib/swarm/buildSwarmRouting.d.ts.map +1 -0
- package/dist/types/lib/swarm/index.d.ts +3 -0
- package/dist/types/lib/swarm/index.d.ts.map +1 -0
- package/dist/types/llm.js +7 -0
- package/dist/types/llm.js.map +1 -0
- package/dist/types/memory/conversationHelpers.d.ts +23 -0
- package/dist/types/memory/conversationHelpers.d.ts.map +1 -0
- package/dist/types/memory/index.d.ts +2 -0
- package/dist/types/memory/index.d.ts.map +1 -0
- package/dist/types/messages.js +32 -0
- package/dist/types/messages.js.map +1 -0
- package/dist/types/models/index.d.ts +4 -0
- package/dist/types/models/index.d.ts.map +1 -0
- package/dist/types/models/pricing.d.ts +8 -0
- package/dist/types/models/pricing.d.ts.map +1 -0
- package/dist/types/models/providers.d.ts +23 -0
- package/dist/types/models/providers.d.ts.map +1 -0
- package/dist/types/models/types.d.ts +25 -0
- package/dist/types/models/types.d.ts.map +1 -0
- package/dist/types/multiAgent.js +6 -0
- package/dist/types/multiAgent.js.map +1 -0
- package/dist/types/observe.barrel.d.ts +21 -0
- package/dist/types/observe.barrel.d.ts.map +1 -0
- package/dist/types/providers/index.d.ts +15 -0
- package/dist/types/providers/index.d.ts.map +1 -0
- package/dist/types/providers/messages/charBudget.d.ts +19 -0
- package/dist/types/providers/messages/charBudget.d.ts.map +1 -0
- package/dist/types/providers/messages/compositeMessages.d.ts +16 -0
- package/dist/types/providers/messages/compositeMessages.d.ts.map +1 -0
- package/dist/types/providers/messages/fullHistory.d.ts +12 -0
- package/dist/types/providers/messages/fullHistory.d.ts.map +1 -0
- package/dist/types/providers/messages/index.d.ts +15 -0
- package/dist/types/providers/messages/index.d.ts.map +1 -0
- package/dist/types/providers/messages/persistentHistory.d.ts +32 -0
- package/dist/types/providers/messages/persistentHistory.d.ts.map +1 -0
- package/dist/types/providers/messages/slidingWindow.d.ts +16 -0
- package/dist/types/providers/messages/slidingWindow.d.ts.map +1 -0
- package/dist/types/providers/messages/summaryStrategy.d.ts +29 -0
- package/dist/types/providers/messages/summaryStrategy.d.ts.map +1 -0
- package/dist/types/providers/messages/withToolPairSafety.d.ts +19 -0
- package/dist/types/providers/messages/withToolPairSafety.d.ts.map +1 -0
- package/dist/types/providers/prompt/compositePrompt.d.ts +20 -0
- package/dist/types/providers/prompt/compositePrompt.d.ts.map +1 -0
- package/dist/types/providers/prompt/index.d.ts +10 -0
- package/dist/types/providers/prompt/index.d.ts.map +1 -0
- package/dist/types/providers/prompt/skillBasedPrompt.d.ts +33 -0
- package/dist/types/providers/prompt/skillBasedPrompt.d.ts.map +1 -0
- package/dist/types/providers/prompt/static.d.ts +6 -0
- package/dist/types/providers/prompt/static.d.ts.map +1 -0
- package/dist/types/providers/prompt/template.d.ts +6 -0
- package/dist/types/providers/prompt/template.d.ts.map +1 -0
- package/dist/types/providers/tools/PermissionPolicy.d.ts +76 -0
- package/dist/types/providers/tools/PermissionPolicy.d.ts.map +1 -0
- package/dist/types/providers/tools/agentAsTool.d.ts +40 -0
- package/dist/types/providers/tools/agentAsTool.d.ts.map +1 -0
- package/dist/types/providers/tools/compositeTools.d.ts +18 -0
- package/dist/types/providers/tools/compositeTools.d.ts.map +1 -0
- package/dist/types/providers/tools/dynamicTools.d.ts +27 -0
- package/dist/types/providers/tools/dynamicTools.d.ts.map +1 -0
- package/dist/types/providers/tools/gatedTools.d.ts +52 -0
- package/dist/types/providers/tools/gatedTools.d.ts.map +1 -0
- package/dist/types/providers/tools/index.d.ts +15 -0
- package/dist/types/providers/tools/index.d.ts.map +1 -0
- package/dist/types/providers/tools/noTools.d.ts +6 -0
- package/dist/types/providers/tools/noTools.d.ts.map +1 -0
- package/dist/types/providers/tools/staticTools.d.ts +7 -0
- package/dist/types/providers/tools/staticTools.d.ts.map +1 -0
- package/dist/types/providers.barrel.d.ts +34 -0
- package/dist/types/providers.barrel.d.ts.map +1 -0
- package/dist/types/recorders/index.d.ts +6 -0
- package/dist/types/recorders/index.d.ts.map +1 -0
- package/dist/types/recorders/v2/CompositeRecorder.d.ts +30 -0
- package/dist/types/recorders/v2/CompositeRecorder.d.ts.map +1 -0
- package/dist/types/recorders/v2/CostRecorder.d.ts +43 -0
- package/dist/types/recorders/v2/CostRecorder.d.ts.map +1 -0
- package/dist/types/recorders/v2/ExplainRecorder.d.ts +67 -0
- package/dist/types/recorders/v2/ExplainRecorder.d.ts.map +1 -0
- package/dist/types/recorders/v2/GuardrailRecorder.d.ts +45 -0
- package/dist/types/recorders/v2/GuardrailRecorder.d.ts.map +1 -0
- package/dist/types/recorders/v2/OTelRecorder.d.ts +50 -0
- package/dist/types/recorders/v2/OTelRecorder.d.ts.map +1 -0
- package/dist/types/recorders/v2/PermissionRecorder.d.ts +66 -0
- package/dist/types/recorders/v2/PermissionRecorder.d.ts.map +1 -0
- package/dist/types/recorders/v2/QualityRecorder.d.ts +37 -0
- package/dist/types/recorders/v2/QualityRecorder.d.ts.map +1 -0
- package/dist/types/recorders/v2/RecorderBridge.d.ts +38 -0
- package/dist/types/recorders/v2/RecorderBridge.d.ts.map +1 -0
- package/dist/types/recorders/v2/TokenRecorder.d.ts +54 -0
- package/dist/types/recorders/v2/TokenRecorder.d.ts.map +1 -0
- package/dist/types/recorders/v2/ToolUsageRecorder.d.ts +34 -0
- package/dist/types/recorders/v2/ToolUsageRecorder.d.ts.map +1 -0
- package/dist/types/recorders/v2/TurnRecorder.d.ts +36 -0
- package/dist/types/recorders/v2/TurnRecorder.d.ts.map +1 -0
- package/dist/types/recorders/v2/agentObservability.d.ts +68 -0
- package/dist/types/recorders/v2/agentObservability.d.ts.map +1 -0
- package/dist/types/recorders/v2/index.d.ts +21 -0
- package/dist/types/recorders/v2/index.d.ts.map +1 -0
- package/dist/types/resilience.barrel.d.ts +18 -0
- package/dist/types/resilience.barrel.d.ts.map +1 -0
- package/dist/types/retriever.js +7 -0
- package/dist/types/retriever.js.map +1 -0
- package/dist/types/scope/AgentScope.d.ts +87 -0
- package/dist/types/scope/AgentScope.d.ts.map +1 -0
- package/dist/types/scope/index.d.ts +3 -0
- package/dist/types/scope/index.d.ts.map +1 -0
- package/dist/types/scope/types.d.ts +151 -0
- package/dist/types/scope/types.d.ts.map +1 -0
- package/dist/types/security.barrel.d.ts +17 -0
- package/dist/types/security.barrel.d.ts.map +1 -0
- package/dist/types/stages/augmentPrompt.d.ts +7 -0
- package/dist/types/stages/augmentPrompt.d.ts.map +1 -0
- package/dist/types/stages/callLLM.d.ts +8 -0
- package/dist/types/stages/callLLM.d.ts.map +1 -0
- package/dist/types/stages/commitMemory.d.ts +51 -0
- package/dist/types/stages/commitMemory.d.ts.map +1 -0
- package/dist/types/stages/finalize.d.ts +7 -0
- package/dist/types/stages/finalize.d.ts.map +1 -0
- package/dist/types/stages/helpers.d.ts +17 -0
- package/dist/types/stages/helpers.d.ts.map +1 -0
- package/dist/types/stages/index.d.ts +10 -0
- package/dist/types/stages/index.d.ts.map +1 -0
- package/dist/types/stages/parseResponse.d.ts +8 -0
- package/dist/types/stages/parseResponse.d.ts.map +1 -0
- package/dist/types/stages/retrieve.d.ts +8 -0
- package/dist/types/stages/retrieve.d.ts.map +1 -0
- package/dist/types/stages/runnerAsStage.d.ts +18 -0
- package/dist/types/stages/runnerAsStage.d.ts.map +1 -0
- package/dist/types/stream.barrel.d.ts +19 -0
- package/dist/types/stream.barrel.d.ts.map +1 -0
- package/dist/types/streaming/StreamEmitter.d.ts +93 -0
- package/dist/types/streaming/StreamEmitter.d.ts.map +1 -0
- package/dist/types/streaming/index.d.ts +3 -0
- package/dist/types/streaming/index.d.ts.map +1 -0
- package/dist/types/subflows/index.d.ts +3 -0
- package/dist/types/subflows/index.d.ts.map +1 -0
- package/dist/types/subflows/prepareMemory.d.ts +60 -0
- package/dist/types/subflows/prepareMemory.d.ts.map +1 -0
- package/dist/types/tools/ToolRegistry.d.ts +47 -0
- package/dist/types/tools/ToolRegistry.d.ts.map +1 -0
- package/dist/types/tools/askHuman.d.ts +39 -0
- package/dist/types/tools/askHuman.d.ts.map +1 -0
- package/dist/types/tools/index.d.ts +3 -0
- package/dist/types/tools/index.d.ts.map +1 -0
- package/dist/types/tools/validateInput.d.ts +29 -0
- package/dist/types/tools/validateInput.d.ts.map +1 -0
- package/dist/types/tools/zodToJsonSchema.d.ts +9 -0
- package/dist/types/tools/zodToJsonSchema.d.ts.map +1 -0
- package/dist/types/tools.js +6 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/types/types/adapter.d.ts +36 -0
- package/dist/types/types/adapter.d.ts.map +1 -0
- package/dist/types/types/agent.d.ts +37 -0
- package/dist/types/types/agent.d.ts.map +1 -0
- package/dist/types/types/content.d.ts +104 -0
- package/dist/types/types/content.d.ts.map +1 -0
- package/dist/types/types/errors.d.ts +27 -0
- package/dist/types/types/errors.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +14 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/llm.d.ts +78 -0
- package/dist/types/types/llm.d.ts.map +1 -0
- package/dist/types/types/messages.d.ts +40 -0
- package/dist/types/types/messages.d.ts.map +1 -0
- package/dist/types/types/multiAgent.d.ts +57 -0
- package/dist/types/types/multiAgent.d.ts.map +1 -0
- package/dist/types/types/retriever.d.ts +41 -0
- package/dist/types/types/retriever.d.ts.map +1 -0
- package/dist/types/types/tools.d.ts +19 -0
- package/dist/types/types/tools.d.ts.map +1 -0
- package/package.json +178 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TurnRecorder — tracks turn-level lifecycle events.
|
|
3
|
+
*
|
|
4
|
+
* Records when turns start and complete, including message counts and
|
|
5
|
+
* loop iterations. Useful for debugging multi-turn conversations and
|
|
6
|
+
* understanding agent behavior over time.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* const turns = new TurnRecorder();
|
|
10
|
+
* agent.recorder(turns);
|
|
11
|
+
* await agent.run(...);
|
|
12
|
+
* console.log(turns.getTurns());
|
|
13
|
+
*/
|
|
14
|
+
export class TurnRecorder {
|
|
15
|
+
id;
|
|
16
|
+
turns = [];
|
|
17
|
+
constructor(id = 'turn-recorder') {
|
|
18
|
+
this.id = id;
|
|
19
|
+
}
|
|
20
|
+
onTurnStart(event) {
|
|
21
|
+
this.turns.push({
|
|
22
|
+
turnNumber: event.turnNumber,
|
|
23
|
+
message: event.message,
|
|
24
|
+
status: 'started',
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
onTurnComplete(event) {
|
|
28
|
+
// Update the matching started entry, or add a new one
|
|
29
|
+
const idx = this.turns.findIndex((t) => t.turnNumber === event.turnNumber && t.status === 'started');
|
|
30
|
+
if (idx >= 0) {
|
|
31
|
+
this.turns[idx] = {
|
|
32
|
+
...this.turns[idx],
|
|
33
|
+
content: event.content,
|
|
34
|
+
messageCount: event.messageCount,
|
|
35
|
+
totalLoopIterations: event.totalLoopIterations,
|
|
36
|
+
status: 'completed',
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.turns.push({
|
|
41
|
+
turnNumber: event.turnNumber,
|
|
42
|
+
message: '',
|
|
43
|
+
content: event.content,
|
|
44
|
+
messageCount: event.messageCount,
|
|
45
|
+
totalLoopIterations: event.totalLoopIterations,
|
|
46
|
+
status: 'completed',
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
onError(event) {
|
|
51
|
+
const idx = this.turns.findIndex((t) => t.turnNumber === event.turnNumber && t.status === 'started');
|
|
52
|
+
if (idx >= 0) {
|
|
53
|
+
this.turns[idx] = {
|
|
54
|
+
...this.turns[idx],
|
|
55
|
+
error: event.error,
|
|
56
|
+
status: 'error',
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
// Error fired before onTurnStart (e.g. prompt resolution failure).
|
|
61
|
+
// Record it anyway — never silently drop errors.
|
|
62
|
+
this.turns.push({
|
|
63
|
+
turnNumber: event.turnNumber,
|
|
64
|
+
message: '',
|
|
65
|
+
error: event.error,
|
|
66
|
+
status: 'error',
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
getTurns() {
|
|
71
|
+
return [...this.turns];
|
|
72
|
+
}
|
|
73
|
+
getCompletedCount() {
|
|
74
|
+
return this.turns.filter((t) => t.status === 'completed').length;
|
|
75
|
+
}
|
|
76
|
+
getErrorCount() {
|
|
77
|
+
return this.turns.filter((t) => t.status === 'error').length;
|
|
78
|
+
}
|
|
79
|
+
clear() {
|
|
80
|
+
this.turns = [];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=TurnRecorder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TurnRecorder.js","sourceRoot":"","sources":["../../../../src/recorders/v2/TurnRecorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAcH,MAAM,OAAO,YAAY;IACd,EAAE,CAAS;IACZ,KAAK,GAAgB,EAAE,CAAC;IAEhC,YAAY,EAAE,GAAG,eAAe;QAC9B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,WAAW,CAAC,KAAqB;QAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,KAAwB;QACrC,sDAAsD;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CACnE,CAAC;QACF,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;gBAChB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,MAAM,EAAE,WAAW;aACpB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,CAAC,KAAsB;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CACnE,CAAC;QACF,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;gBAChB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,OAAO;aAChB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,mEAAmE;YACnE,iDAAiD;YACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;IACnE,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IAC/D,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentObservability() — one-call preset for full agent observability.
|
|
3
|
+
*
|
|
4
|
+
* Bundles TokenRecorder, ToolUsageRecorder, and CostRecorder into a single
|
|
5
|
+
* CompositeRecorder. The consumer attaches one recorder and gets token tracking,
|
|
6
|
+
* tool usage stats, and cost estimation without knowing the individual types.
|
|
7
|
+
*
|
|
8
|
+
* Stage-level timing is auto-attached by the runners (MetricRecorder on the
|
|
9
|
+
* executor) — this preset covers the agent-level concerns only.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { Agent, agentObservability } from 'agentfootprint';
|
|
14
|
+
*
|
|
15
|
+
* // One call — tokens, tools, and cost tracking
|
|
16
|
+
* const obs = agentObservability();
|
|
17
|
+
* const agent = Agent.create({ provider })
|
|
18
|
+
* .recorder(obs)
|
|
19
|
+
* .build();
|
|
20
|
+
*
|
|
21
|
+
* await agent.run('hello');
|
|
22
|
+
*
|
|
23
|
+
* // Access stats
|
|
24
|
+
* console.log(obs.tokens()); // { totalCalls: 2, totalInputTokens: 150, ... }
|
|
25
|
+
* console.log(obs.tools()); // { totalCalls: 1, byTool: { search: { calls: 1, ... } } }
|
|
26
|
+
* console.log(obs.cost()); // 0.0042
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* // With cost estimation
|
|
32
|
+
* const obs = agentObservability({
|
|
33
|
+
* pricing: {
|
|
34
|
+
* 'claude-sonnet-4-20250514': { input: 3, output: 15 },
|
|
35
|
+
* 'gpt-4o': { input: 2.5, output: 10 },
|
|
36
|
+
* },
|
|
37
|
+
* });
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
import { CompositeRecorder } from './CompositeRecorder';
|
|
41
|
+
import { CostRecorder } from './CostRecorder';
|
|
42
|
+
import { TokenRecorder } from './TokenRecorder';
|
|
43
|
+
import { ToolUsageRecorder } from './ToolUsageRecorder';
|
|
44
|
+
/**
|
|
45
|
+
* Create a bundled agent observability recorder.
|
|
46
|
+
*
|
|
47
|
+
* Tracks tokens, tool usage, and cost in a single `.recorder()` call.
|
|
48
|
+
* Stage timing is handled separately by MetricRecorder (auto-attached by runners).
|
|
49
|
+
*/
|
|
50
|
+
export function agentObservability(options) {
|
|
51
|
+
const tokenRec = new TokenRecorder();
|
|
52
|
+
const toolRec = new ToolUsageRecorder();
|
|
53
|
+
const costRec = new CostRecorder(options?.pricing ? { pricingTable: options.pricing } : undefined);
|
|
54
|
+
const composite = new CompositeRecorder([tokenRec, toolRec, costRec], options?.id ?? 'agent-observability');
|
|
55
|
+
// Convenience accessors — no need to dig into children
|
|
56
|
+
composite.tokens = () => tokenRec.getStats();
|
|
57
|
+
composite.tools = () => toolRec.getStats();
|
|
58
|
+
composite.cost = () => costRec.getTotalCost();
|
|
59
|
+
composite.costEntries = () => costRec.getEntries();
|
|
60
|
+
return composite;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=agentObservability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentObservability.js","sourceRoot":"","sources":["../../../../src/recorders/v2/agentObservability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAKH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAqBxD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAmC;IACpE,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,YAAY,CAC9B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CACjE,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,iBAAiB,CACrC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAC5B,OAAO,EAAE,EAAE,IAAI,qBAAqB,CACP,CAAC;IAEhC,uDAAuD;IACvD,SAAS,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC7C,SAAS,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC3C,SAAS,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IAC9C,SAAS,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IAEnD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* recorders/ — AgentRecorder implementations.
|
|
3
|
+
*/
|
|
4
|
+
export { TokenRecorder } from './TokenRecorder';
|
|
5
|
+
export { CostRecorder } from './CostRecorder';
|
|
6
|
+
export { ToolUsageRecorder } from './ToolUsageRecorder';
|
|
7
|
+
export { TurnRecorder } from './TurnRecorder';
|
|
8
|
+
export { QualityRecorder } from './QualityRecorder';
|
|
9
|
+
export { GuardrailRecorder } from './GuardrailRecorder';
|
|
10
|
+
export { CompositeRecorder } from './CompositeRecorder';
|
|
11
|
+
export { PermissionRecorder } from './PermissionRecorder';
|
|
12
|
+
export { agentObservability } from './agentObservability';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/recorders/v2/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAM9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentfootprint/resilience — Make agents reliable.
|
|
3
|
+
*
|
|
4
|
+
* Retry, fallback, circuit breaker, cross-family provider failover.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { withRetry, resilientProvider } from 'agentfootprint/resilience';
|
|
9
|
+
*
|
|
10
|
+
* const reliable = withRetry(agent, { maxRetries: 3 });
|
|
11
|
+
* const provider = resilientProvider([anthropicAdapter, openaiAdapter]);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export { withRetry, withFallback, withCircuitBreaker, CircuitBreaker } from './compositions';
|
|
15
|
+
export { resilientProvider, fallbackProvider } from './adapters';
|
|
16
|
+
//# sourceMappingURL=resilience.barrel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resilience.barrel.js","sourceRoot":"","sources":["../../src/resilience.barrel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentScope — typed wrapper over ScopeFacade for agent state.
|
|
3
|
+
*
|
|
4
|
+
* Instead of raw scope.getValue('messages'), use scope.getMessages().
|
|
5
|
+
* All paths come from AGENT_PATHS constants (single source of truth).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Well-known scope paths for memory subflow state.
|
|
9
|
+
* These keys are internal to PrepareMemory/CommitMemory and are prefixed
|
|
10
|
+
* with `memory_` to avoid collision with agent state keys.
|
|
11
|
+
*/
|
|
12
|
+
export const MEMORY_PATHS = {
|
|
13
|
+
/** Raw history loaded from ConversationStore (PrepareMemory internal). */
|
|
14
|
+
STORED_HISTORY: 'memory_storedHistory',
|
|
15
|
+
/** Prepared messages after strategy applied (PrepareMemory output). */
|
|
16
|
+
PREPARED_MESSAGES: 'memory_preparedMessages',
|
|
17
|
+
/**
|
|
18
|
+
* Set to `true` by HandleResponse when the turn is finalizing (no more tool calls).
|
|
19
|
+
* CommitMemory reads this to know when to save + break the pipeline.
|
|
20
|
+
*/
|
|
21
|
+
SHOULD_COMMIT: 'memory_shouldCommit',
|
|
22
|
+
};
|
|
23
|
+
/** Well-known scope paths for agent state. */
|
|
24
|
+
export const AGENT_PATHS = {
|
|
25
|
+
MESSAGES: 'messages',
|
|
26
|
+
SYSTEM_PROMPT: 'systemPrompt',
|
|
27
|
+
TOOL_DESCRIPTIONS: 'toolDescriptions',
|
|
28
|
+
ADAPTER_RESULT: 'adapterResult',
|
|
29
|
+
PARSED_RESPONSE: 'parsedResponse',
|
|
30
|
+
LOOP_COUNT: 'loopCount',
|
|
31
|
+
MAX_ITERATIONS: 'maxIterations',
|
|
32
|
+
RESULT: 'result',
|
|
33
|
+
};
|
|
34
|
+
/** Well-known scope paths for multi-agent pipeline state. */
|
|
35
|
+
export const MULTI_AGENT_PATHS = {
|
|
36
|
+
PIPELINE_INPUT: 'pipelineInput',
|
|
37
|
+
AGENT_RESULTS: 'agentResults',
|
|
38
|
+
RESULT: 'result',
|
|
39
|
+
SIGNAL: '_signal',
|
|
40
|
+
TIMEOUT_MS: '_timeoutMs',
|
|
41
|
+
};
|
|
42
|
+
/** Well-known scope paths for RAG state. */
|
|
43
|
+
export const RAG_PATHS = {
|
|
44
|
+
RETRIEVAL_QUERY: 'retrievalQuery',
|
|
45
|
+
RETRIEVAL_RESULT: 'retrievalResult',
|
|
46
|
+
CONTEXT_WINDOW: 'contextWindow',
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Typed accessors for agent state in scope.
|
|
50
|
+
* These are pure functions — no class inheritance needed.
|
|
51
|
+
*/
|
|
52
|
+
export const AgentScope = {
|
|
53
|
+
// ── Reads ──────────────────────────────────────────────
|
|
54
|
+
getMessages(scope) {
|
|
55
|
+
const msgs = scope.getValue(AGENT_PATHS.MESSAGES);
|
|
56
|
+
return msgs ? [...msgs] : [];
|
|
57
|
+
},
|
|
58
|
+
getSystemPrompt(scope) {
|
|
59
|
+
return scope.getValue(AGENT_PATHS.SYSTEM_PROMPT);
|
|
60
|
+
},
|
|
61
|
+
getToolDescriptions(scope) {
|
|
62
|
+
return scope.getValue(AGENT_PATHS.TOOL_DESCRIPTIONS) ?? [];
|
|
63
|
+
},
|
|
64
|
+
getAdapterResult(scope) {
|
|
65
|
+
return scope.getValue(AGENT_PATHS.ADAPTER_RESULT);
|
|
66
|
+
},
|
|
67
|
+
getParsedResponse(scope) {
|
|
68
|
+
return scope.getValue(AGENT_PATHS.PARSED_RESPONSE);
|
|
69
|
+
},
|
|
70
|
+
getLoopCount(scope) {
|
|
71
|
+
return scope.getValue(AGENT_PATHS.LOOP_COUNT) ?? 0;
|
|
72
|
+
},
|
|
73
|
+
getMaxIterations(scope) {
|
|
74
|
+
return scope.getValue(AGENT_PATHS.MAX_ITERATIONS) ?? 10;
|
|
75
|
+
},
|
|
76
|
+
getResult(scope) {
|
|
77
|
+
return scope.getValue(AGENT_PATHS.RESULT);
|
|
78
|
+
},
|
|
79
|
+
// ── Writes ─────────────────────────────────────────────
|
|
80
|
+
setMessages(scope, messages) {
|
|
81
|
+
scope.setValue(AGENT_PATHS.MESSAGES, messages);
|
|
82
|
+
},
|
|
83
|
+
setSystemPrompt(scope, prompt) {
|
|
84
|
+
scope.setValue(AGENT_PATHS.SYSTEM_PROMPT, prompt);
|
|
85
|
+
},
|
|
86
|
+
setToolDescriptions(scope, tools) {
|
|
87
|
+
scope.setValue(AGENT_PATHS.TOOL_DESCRIPTIONS, tools);
|
|
88
|
+
},
|
|
89
|
+
setAdapterResult(scope, result) {
|
|
90
|
+
scope.setValue(AGENT_PATHS.ADAPTER_RESULT, result);
|
|
91
|
+
},
|
|
92
|
+
setParsedResponse(scope, parsed) {
|
|
93
|
+
scope.setValue(AGENT_PATHS.PARSED_RESPONSE, parsed);
|
|
94
|
+
},
|
|
95
|
+
setLoopCount(scope, count) {
|
|
96
|
+
scope.setValue(AGENT_PATHS.LOOP_COUNT, count);
|
|
97
|
+
},
|
|
98
|
+
setMaxIterations(scope, max) {
|
|
99
|
+
scope.setValue(AGENT_PATHS.MAX_ITERATIONS, max);
|
|
100
|
+
},
|
|
101
|
+
setResult(scope, result) {
|
|
102
|
+
scope.setValue(AGENT_PATHS.RESULT, result);
|
|
103
|
+
},
|
|
104
|
+
// ── RAG Reads ───────────────────────────────────────────
|
|
105
|
+
getRetrievalQuery(scope) {
|
|
106
|
+
return scope.getValue(RAG_PATHS.RETRIEVAL_QUERY);
|
|
107
|
+
},
|
|
108
|
+
getRetrievalResult(scope) {
|
|
109
|
+
return scope.getValue(RAG_PATHS.RETRIEVAL_RESULT);
|
|
110
|
+
},
|
|
111
|
+
getContextWindow(scope) {
|
|
112
|
+
return scope.getValue(RAG_PATHS.CONTEXT_WINDOW);
|
|
113
|
+
},
|
|
114
|
+
// ── RAG Writes ──────────────────────────────────────────
|
|
115
|
+
setRetrievalQuery(scope, query) {
|
|
116
|
+
scope.setValue(RAG_PATHS.RETRIEVAL_QUERY, query);
|
|
117
|
+
},
|
|
118
|
+
setRetrievalResult(scope, result) {
|
|
119
|
+
scope.setValue(RAG_PATHS.RETRIEVAL_RESULT, result);
|
|
120
|
+
},
|
|
121
|
+
setContextWindow(scope, context) {
|
|
122
|
+
scope.setValue(RAG_PATHS.CONTEXT_WINDOW, context);
|
|
123
|
+
},
|
|
124
|
+
// ── Multi-Agent Reads ──────────────────────────────────────
|
|
125
|
+
getPipelineInput(scope) {
|
|
126
|
+
return scope.getValue(MULTI_AGENT_PATHS.PIPELINE_INPUT);
|
|
127
|
+
},
|
|
128
|
+
getAgentResults(scope) {
|
|
129
|
+
return scope.getValue(MULTI_AGENT_PATHS.AGENT_RESULTS) ?? [];
|
|
130
|
+
},
|
|
131
|
+
// ── Multi-Agent Writes ─────────────────────────────────────
|
|
132
|
+
setPipelineInput(scope, input) {
|
|
133
|
+
scope.setValue(MULTI_AGENT_PATHS.PIPELINE_INPUT, input);
|
|
134
|
+
},
|
|
135
|
+
setAgentResults(scope, results) {
|
|
136
|
+
scope.setValue(MULTI_AGENT_PATHS.AGENT_RESULTS, results);
|
|
137
|
+
},
|
|
138
|
+
// ── Memory Reads ───────────────────────────────────────────
|
|
139
|
+
getShouldCommit(scope) {
|
|
140
|
+
return scope.getValue(MEMORY_PATHS.SHOULD_COMMIT) === true;
|
|
141
|
+
},
|
|
142
|
+
getStoredHistory(scope) {
|
|
143
|
+
return scope.getValue(MEMORY_PATHS.STORED_HISTORY) ?? [];
|
|
144
|
+
},
|
|
145
|
+
getPreparedMessages(scope) {
|
|
146
|
+
return scope.getValue(MEMORY_PATHS.PREPARED_MESSAGES) ?? [];
|
|
147
|
+
},
|
|
148
|
+
// ── Memory Writes ──────────────────────────────────────────
|
|
149
|
+
setShouldCommit(scope, value) {
|
|
150
|
+
scope.setValue(MEMORY_PATHS.SHOULD_COMMIT, value);
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=AgentScope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentScope.js","sourceRoot":"","sources":["../../../src/scope/AgentScope.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scope/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed state interfaces for TypedScope<T> in agentfootprint patterns.
|
|
3
|
+
*
|
|
4
|
+
* These replace the AgentScope static helpers + AGENT_PATHS string constants.
|
|
5
|
+
* Each pattern has its own state interface — subflows use narrower slices.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* flowChart<AgentLoopState>('Seed', (scope) => {
|
|
9
|
+
* scope.messages = [userMessage('hello')]; // typed write
|
|
10
|
+
* scope.loopCount = 0; // typed write
|
|
11
|
+
* })
|
|
12
|
+
*/
|
|
13
|
+
// ── Agent Loop State ─────────────────────────────────────────
|
|
14
|
+
/**
|
|
15
|
+
* Well-known scope keys for the agent loop.
|
|
16
|
+
* Used by grounding helpers, narrative renderer, and suppression lists.
|
|
17
|
+
* Single source of truth — no magic strings.
|
|
18
|
+
*/
|
|
19
|
+
export var AgentScopeKey;
|
|
20
|
+
(function (AgentScopeKey) {
|
|
21
|
+
// Core state
|
|
22
|
+
AgentScopeKey["Messages"] = "messages";
|
|
23
|
+
AgentScopeKey["SystemPrompt"] = "systemPrompt";
|
|
24
|
+
AgentScopeKey["ToolDescriptions"] = "toolDescriptions";
|
|
25
|
+
AgentScopeKey["ParsedResponse"] = "parsedResponse";
|
|
26
|
+
AgentScopeKey["Result"] = "result";
|
|
27
|
+
AgentScopeKey["LoopCount"] = "loopCount";
|
|
28
|
+
// Tool execution
|
|
29
|
+
AgentScopeKey["ToolResultMessages"] = "toolResultMessages";
|
|
30
|
+
// Decision / Instructions
|
|
31
|
+
AgentScopeKey["Decision"] = "decision";
|
|
32
|
+
AgentScopeKey["MatchedInstructions"] = "matchedInstructions";
|
|
33
|
+
AgentScopeKey["PromptInjections"] = "promptInjections";
|
|
34
|
+
AgentScopeKey["ToolInjections"] = "toolInjections";
|
|
35
|
+
AgentScopeKey["ResponseRules"] = "responseRules";
|
|
36
|
+
})(AgentScopeKey || (AgentScopeKey = {}));
|
|
37
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/scope/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAoCH,gEAAgE;AAEhE;;;;GAIG;AACH,MAAM,CAAN,IAAY,aAkBX;AAlBD,WAAY,aAAa;IACvB,aAAa;IACb,sCAAqB,CAAA;IACrB,8CAA6B,CAAA;IAC7B,sDAAqC,CAAA;IACrC,kDAAiC,CAAA;IACjC,kCAAiB,CAAA;IACjB,wCAAuB,CAAA;IAEvB,iBAAiB;IACjB,0DAAyC,CAAA;IAEzC,0BAA0B;IAC1B,sCAAqB,CAAA;IACrB,4DAA2C,CAAA;IAC3C,sDAAqC,CAAA;IACrC,kDAAiC,CAAA;IACjC,gDAA+B,CAAA;AACjC,CAAC,EAlBW,aAAa,KAAb,aAAa,QAkBxB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agentfootprint/security — Make agents safe.
|
|
3
|
+
*
|
|
4
|
+
* Tool gating hides tools from the LLM. Permission policies control access.
|
|
5
|
+
* Two layers: resolve-time filtering (LLM never sees blocked tools) + execute-time rejection.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { gatedTools, PermissionPolicy } from 'agentfootprint/security';
|
|
10
|
+
*
|
|
11
|
+
* const policy = PermissionPolicy.fromRoles({ user: ['search'], admin: ['search', 'delete'] }, 'user');
|
|
12
|
+
* const agent = Agent.create({ provider }).toolProvider(gatedTools(tools, policy.checker())).build();
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export { gatedTools, PermissionPolicy } from './providers';
|
|
16
|
+
// PermissionRecorder lives in agentfootprint/observe (it's a recorder, not a security primitive)
|
|
17
|
+
//# sourceMappingURL=security.barrel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.barrel.js","sourceRoot":"","sources":["../../src/security.barrel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE3D,iGAAiG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AugmentPrompt stage — injects retrieved context into messages before LLM call.
|
|
3
|
+
*/
|
|
4
|
+
import { systemMessage } from '../types';
|
|
5
|
+
export function augmentPromptStage(scope) {
|
|
6
|
+
const result = scope.retrievalResult;
|
|
7
|
+
// Graceful degradation: if retrieval returned nothing, skip context injection.
|
|
8
|
+
// LLM proceeds with user query only — useful in hybrid pipelines where retrieval is optional.
|
|
9
|
+
if (!result || result.chunks.length === 0)
|
|
10
|
+
return;
|
|
11
|
+
// Format chunks into numbered context block
|
|
12
|
+
const context = result.chunks.map((c, i) => `[${i + 1}] ${c.content}`).join('\n\n');
|
|
13
|
+
scope.contextWindow = context;
|
|
14
|
+
// Inject context into messages
|
|
15
|
+
const messages = scope.messages ?? [];
|
|
16
|
+
const contextMsg = systemMessage(`Use the following context to answer the user's question:\n\n${context}`);
|
|
17
|
+
// Insert after system prompt if present, otherwise at front
|
|
18
|
+
const sysIdx = messages.findIndex((m) => m.role === 'system');
|
|
19
|
+
if (sysIdx >= 0) {
|
|
20
|
+
const updated = [...messages];
|
|
21
|
+
updated.splice(sysIdx + 1, 0, contextMsg);
|
|
22
|
+
scope.messages = updated;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
scope.messages = [contextMsg, ...messages];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=augmentPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"augmentPrompt.js","sourceRoot":"","sources":["../../../src/stages/augmentPrompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,UAAU,kBAAkB,CAAC,KAA2B;IAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC;IACrC,+EAA+E;IAC/E,8FAA8F;IAC9F,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAElD,4CAA4C;IAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEpF,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC;IAE9B,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,aAAa,CAC9B,+DAA+D,OAAO,EAAE,CACzE,CAAC;IAEF,4DAA4D;IAC5D,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC9D,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QAC1C,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,QAAQ,GAAG,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CallLLM stage — sends messages to LLM via adapter, writes AdapterResult to scope.
|
|
3
|
+
*/
|
|
4
|
+
import { normalizeAdapterResponse } from './helpers';
|
|
5
|
+
export function createCallLLMStage(provider) {
|
|
6
|
+
return async (scope) => {
|
|
7
|
+
const messages = scope.messages ?? [];
|
|
8
|
+
const tools = scope.toolDescriptions ?? [];
|
|
9
|
+
const options = tools.length > 0 ? { tools } : undefined;
|
|
10
|
+
const response = await provider.chat(messages, options);
|
|
11
|
+
scope.adapterRawResponse = response;
|
|
12
|
+
scope.adapterResult = normalizeAdapterResponse(response);
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=callLLM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callLLM.js","sourceRoot":"","sources":["../../../src/stages/callLLM.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,UAAU,kBAAkB,CAAC,QAAqB;IACtD,OAAO,KAAK,EAAE,KAA+B,EAAE,EAAE;QAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAExD,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC;QACpC,KAAK,CAAC,aAAa,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CommitMemory stage — persist conversation history after the turn completes.
|
|
3
|
+
*
|
|
4
|
+
* Behavior:
|
|
5
|
+
* - Reads `memory_shouldCommit` flag set by HandleResponse when the turn finalizes.
|
|
6
|
+
* - If true: fires `store.save(conversationId, messages)` as a non-blocking Promise
|
|
7
|
+
* (fire-and-forget), then calls scope.$break() so the loop ends.
|
|
8
|
+
* - If false (tool-call turn still in progress): no-op — loop continues normally.
|
|
9
|
+
*
|
|
10
|
+
* Fire-and-forget rationale:
|
|
11
|
+
* The caller receives the agent result immediately, without waiting for the DB write
|
|
12
|
+
* to complete. This matches the design goal of LangGraph vs agentfootprint: LangGraph
|
|
13
|
+
* blocks on its checkpointer; agentfootprint commits in parallel. Save errors are
|
|
14
|
+
* caught internally and surfaced via the provided `onSaveError` callback (if any).
|
|
15
|
+
*
|
|
16
|
+
* Dev-mode: if `onSaveError` is omitted and save() fails, a console.warn is emitted in
|
|
17
|
+
* non-production environments so silent storage failures surface during development.
|
|
18
|
+
*
|
|
19
|
+
* Placement in the chart:
|
|
20
|
+
* CommitMemory is placed BEFORE `loopTo('call-llm')`. On tool-call turns it
|
|
21
|
+
* passes through (shouldCommit=false). On final turns it saves + breaks.
|
|
22
|
+
* This means every loop pass checks whether the turn is done.
|
|
23
|
+
*
|
|
24
|
+
* Example:
|
|
25
|
+
* SeedScope → PrepareMemory → ... → HandleResponse → CommitMemory → loopTo(CallLLM)
|
|
26
|
+
*/
|
|
27
|
+
const isDevMode = () => process.env['NODE_ENV'] !== 'production';
|
|
28
|
+
/**
|
|
29
|
+
* Build the CommitMemory stage function.
|
|
30
|
+
*
|
|
31
|
+
* Usage:
|
|
32
|
+
* ```typescript
|
|
33
|
+
* .addFunction('CommitMemory', createCommitMemoryStage(config), 'commit-memory')
|
|
34
|
+
* .loopTo('call-llm')
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export function createCommitMemoryStage(config) {
|
|
38
|
+
return async (scope) => {
|
|
39
|
+
const shouldCommit = scope.memory_shouldCommit === true;
|
|
40
|
+
if (!shouldCommit) {
|
|
41
|
+
// Tool-call turn — loop continues, nothing to save yet
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// Reconstruct the full conversation history for storage.
|
|
45
|
+
//
|
|
46
|
+
// When a sliding window strategy is active, `messages` in scope contains only
|
|
47
|
+
// the windowed context + new LLM messages — the oldest turns were trimmed.
|
|
48
|
+
// We detect this by comparing storedHistory.length vs preparedMessages.length:
|
|
49
|
+
// if they differ, windowing occurred and we must rebuild from storedHistory.
|
|
50
|
+
//
|
|
51
|
+
// Full history = storedHistory (pre-LLM, includes new user message)
|
|
52
|
+
// + newLLMMessages (messages appended by CallLLM/ParseResponse)
|
|
53
|
+
//
|
|
54
|
+
// PromptAssembly may inject a system message at position 0 when the windowed
|
|
55
|
+
// prepared context doesn't start with one. We account for that 1-message offset.
|
|
56
|
+
const messages = scope.messages ?? [];
|
|
57
|
+
const storedHistory = scope.memory_storedHistory ?? [];
|
|
58
|
+
const prepared = scope.memory_preparedMessages ?? [];
|
|
59
|
+
let toSave;
|
|
60
|
+
if (storedHistory.length > 0 && prepared.length < storedHistory.length) {
|
|
61
|
+
// Windowing trimmed the history — reconstruct: storedHistory + newLLMMessages.
|
|
62
|
+
const systemInjected = messages.length > 0 &&
|
|
63
|
+
messages[0].role === 'system' &&
|
|
64
|
+
(prepared.length === 0 || prepared[0].role !== 'system');
|
|
65
|
+
const preparedEnd = systemInjected ? prepared.length + 1 : prepared.length;
|
|
66
|
+
const newLLMMessages = messages.slice(preparedEnd);
|
|
67
|
+
toSave = [...storedHistory, ...newLLMMessages];
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// No windowing — messages array is the complete history.
|
|
71
|
+
toSave = messages;
|
|
72
|
+
}
|
|
73
|
+
// Fire-and-forget: don't await the save — caller gets result immediately.
|
|
74
|
+
// Use instanceof check to avoid allocating a Promise for synchronous save() returns.
|
|
75
|
+
const saveResult = config.store.save(config.conversationId, toSave);
|
|
76
|
+
if (saveResult instanceof Promise) {
|
|
77
|
+
saveResult.catch((error) => {
|
|
78
|
+
if (config.onSaveError) {
|
|
79
|
+
config.onSaveError(error);
|
|
80
|
+
}
|
|
81
|
+
else if (isDevMode()) {
|
|
82
|
+
// eslint-disable-next-line no-console
|
|
83
|
+
console.warn('[agentfootprint] CommitMemory: store.save() failed and no onSaveError handler was provided.', error);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
// Break the loop first — this is the real termination signal.
|
|
88
|
+
scope.$break();
|
|
89
|
+
// Reset the flag after breaking so CommitMemory is a no-op on any future loop
|
|
90
|
+
// passes (defensive — $break() already ends the loop).
|
|
91
|
+
scope.memory_shouldCommit = false;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=commitMemory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commitMemory.js","sourceRoot":"","sources":["../../../src/stages/commitMemory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAkBH,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,YAAY,CAAC;AAEjE;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAA0B;IAChE,OAAO,KAAK,EAAE,KAAiC,EAAE,EAAE;QACjD,MAAM,YAAY,GAAG,KAAK,CAAC,mBAAmB,KAAK,IAAI,CAAC;QAExD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,uDAAuD;YACvD,OAAO;QACT,CAAC;QAED,yDAAyD;QACzD,EAAE;QACF,8EAA8E;QAC9E,2EAA2E;QAC3E,+EAA+E;QAC/E,6EAA6E;QAC7E,EAAE;QACF,oEAAoE;QACpE,6EAA6E;QAC7E,EAAE;QACF,6EAA6E;QAC7E,iFAAiF;QACjF,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QACtC,MAAM,aAAa,GAAG,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC;QAErD,IAAI,MAAuB,CAAC;QAC5B,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;YACvE,+EAA+E;YAC/E,MAAM,cAAc,GAClB,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACnB,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAC7B,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC3E,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,cAAc,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,yDAAyD;YACzD,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;QAED,0EAA0E;QAC1E,qFAAqF;QACrF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACpE,IAAI,UAAU,YAAY,OAAO,EAAE,CAAC;YAClC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBAClC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBACvB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;qBAAM,IAAI,SAAS,EAAE,EAAE,CAAC;oBACvB,sCAAsC;oBACtC,OAAO,CAAC,IAAI,CACV,6FAA6F,EAC7F,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,8DAA8D;QAC9D,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,8EAA8E;QAC9E,uDAAuD;QACvD,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACpC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finalize stage — extract the final response from conversation.
|
|
3
|
+
*/
|
|
4
|
+
import { getTextContent } from '../types/content';
|
|
5
|
+
import { lastAssistantMessage } from '../memory';
|
|
6
|
+
export function finalizeStage(scope) {
|
|
7
|
+
const messages = scope.messages ?? [];
|
|
8
|
+
const lastAsst = lastAssistantMessage(messages);
|
|
9
|
+
const result = lastAsst ? getTextContent(lastAsst.content) : '';
|
|
10
|
+
scope.result = result;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=finalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalize.js","sourceRoot":"","sources":["../../../src/stages/finalize.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,UAAU,aAAa,CAAC,KAA+B;IAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AACxB,CAAC"}
|