agentfootprint 10.3.1 → 10.5.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 +2 -2
- package/CAPABILITIES.md +12 -1
- package/README.md +44 -0
- package/ai-instructions/claude-code/SKILL.md +2 -2
- package/ai-instructions/clinerules +22 -11
- package/ai-instructions/copilot-instructions.md +22 -11
- package/ai-instructions/cursor/agentfootprint.md +22 -11
- package/ai-instructions/kiro/agentfootprint.md +22 -11
- package/ai-instructions/windsurfrules +22 -11
- package/dist/adapters/llm/AnthropicProvider.js +26 -8
- package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
- package/dist/adapters/llm/BedrockProvider.js +23 -7
- package/dist/adapters/llm/BedrockProvider.js.map +1 -1
- package/dist/adapters/llm/BrowserAnthropicProvider.js +57 -49
- package/dist/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
- package/dist/adapters/llm/BrowserOpenAIProvider.js +50 -42
- package/dist/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
- package/dist/adapters/llm/FoundryLocalProvider.js +174 -212
- package/dist/adapters/llm/FoundryLocalProvider.js.map +1 -1
- package/dist/adapters/llm/GeminiProvider.js +23 -9
- package/dist/adapters/llm/GeminiProvider.js.map +1 -1
- package/dist/adapters/llm/InvokeModelGatewayProvider.js +32 -9
- package/dist/adapters/llm/InvokeModelGatewayProvider.js.map +1 -1
- package/dist/adapters/llm/MockProvider.js +11 -3
- package/dist/adapters/llm/MockProvider.js.map +1 -1
- package/dist/adapters/llm/OllamaProvider.js +129 -167
- package/dist/adapters/llm/OllamaProvider.js.map +1 -1
- package/dist/adapters/llm/OpenAIProvider.js +36 -9
- package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
- package/dist/adapters/mcp/agentcoreRuntime/errorType.js +24 -0
- package/dist/adapters/mcp/agentcoreRuntime/errorType.js.map +1 -0
- package/dist/adapters/mcp/agentcoreRuntime/invoke.js +272 -0
- package/dist/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -0
- package/dist/adapters/mcp/agentcoreRuntime/safeAnswer.js +415 -0
- package/dist/adapters/mcp/agentcoreRuntime/safeAnswer.js.map +1 -0
- package/dist/adapters/mcp/agentcoreRuntime/session.js +179 -0
- package/dist/adapters/mcp/agentcoreRuntime/session.js.map +1 -0
- package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js +117 -0
- package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -0
- package/dist/adapters/mcp/agentcoreRuntime/strictJson.js +220 -0
- package/dist/adapters/mcp/agentcoreRuntime/strictJson.js.map +1 -0
- package/dist/adapters/mcp/agentcoreRuntime/transport.js +222 -0
- package/dist/adapters/mcp/agentcoreRuntime/transport.js.map +1 -0
- package/dist/adapters/memory/agentcore.js +435 -20
- package/dist/adapters/memory/agentcore.js.map +1 -1
- package/dist/adapters/memory/memoryBank.js +16 -3
- package/dist/adapters/memory/memoryBank.js.map +1 -1
- package/dist/adapters/memory/pgVector.js +10 -4
- package/dist/adapters/memory/pgVector.js.map +1 -1
- package/dist/adapters/memory/redis.js +11 -3
- package/dist/adapters/memory/redis.js.map +1 -1
- package/dist/adapters/memory/s3Vectors.js +8 -3
- package/dist/adapters/memory/s3Vectors.js.map +1 -1
- package/dist/adapters/memory/sqliteVector.js +10 -4
- package/dist/adapters/memory/sqliteVector.js.map +1 -1
- package/dist/ag-ui/adapter.js +126 -0
- package/dist/ag-ui/adapter.js.map +1 -0
- package/dist/ag-ui/framing.js +68 -0
- package/dist/ag-ui/framing.js.map +1 -0
- package/dist/ag-ui/frontendTools.js +69 -0
- package/dist/ag-ui/frontendTools.js.map +1 -0
- package/dist/ag-ui/ids.js +54 -0
- package/dist/ag-ui/ids.js.map +1 -0
- package/dist/ag-ui/index.js +29 -0
- package/dist/ag-ui/index.js.map +1 -0
- package/dist/ag-ui/request.js +416 -0
- package/dist/ag-ui/request.js.map +1 -0
- package/dist/ag-ui/serializer.js +899 -0
- package/dist/ag-ui/serializer.js.map +1 -0
- package/dist/ag-ui/types.js +22 -0
- package/dist/ag-ui/types.js.map +1 -0
- package/dist/answer-validation/index.js +8 -1
- package/dist/answer-validation/index.js.map +1 -1
- package/dist/answer-validation/toolLedger.js +130 -0
- package/dist/answer-validation/toolLedger.js.map +1 -0
- package/dist/answer-validation/types.js.map +1 -1
- package/dist/answer-validation/validate.js +25 -3
- package/dist/answer-validation/validate.js.map +1 -1
- package/dist/classify/typesafe.js +31 -23
- package/dist/classify/typesafe.js.map +1 -1
- package/dist/core/Agent.js +106 -20
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/LLMCall.js +16 -6
- package/dist/core/LLMCall.js.map +1 -1
- package/dist/core/RunnerBase.js +99 -13
- package/dist/core/RunnerBase.js.map +1 -1
- package/dist/core/agent/buildAgentChart.js +17 -5
- package/dist/core/agent/buildAgentChart.js.map +1 -1
- package/dist/core/agent/buildAgentMessageApiChart.js +22 -2
- package/dist/core/agent/buildAgentMessageApiChart.js.map +1 -1
- package/dist/core/agent/buildDynamicAgentChart.js +23 -4
- package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/core/agent/buildMessageApiChart.js +22 -2
- package/dist/core/agent/buildMessageApiChart.js.map +1 -1
- package/dist/core/agent/callerIdentity.js +2 -1
- package/dist/core/agent/callerIdentity.js.map +1 -1
- package/dist/core/agent/stages/answerValidation.js +22 -1
- package/dist/core/agent/stages/answerValidation.js.map +1 -1
- package/dist/core/agent/stages/callLLM.js +19 -3
- package/dist/core/agent/stages/callLLM.js.map +1 -1
- package/dist/core/agent/stages/routeTurn.js +17 -4
- package/dist/core/agent/stages/routeTurn.js.map +1 -1
- package/dist/core/agent/stages/seed.js +58 -8
- package/dist/core/agent/stages/seed.js.map +1 -1
- package/dist/core/agent/stages/timeLayer.js +2 -2
- package/dist/core/agent/stages/timeLayer.js.map +1 -1
- package/dist/core/agent/stages/toolCalls.js +85 -25
- package/dist/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/core/agent/window/strategies/summarizeOldest.js +4 -0
- package/dist/core/agent/window/strategies/summarizeOldest.js.map +1 -1
- package/dist/core/agent/window/summarize.js +6 -3
- package/dist/core/agent/window/summarize.js.map +1 -1
- package/dist/core/memberRun.js +293 -0
- package/dist/core/memberRun.js.map +1 -0
- package/dist/core/requestOfRun.js +28 -0
- package/dist/core/requestOfRun.js.map +1 -0
- package/dist/core/slots/buildToolsSlot.js +11 -25
- package/dist/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/core-flow/Conditional.js +39 -12
- package/dist/core-flow/Conditional.js.map +1 -1
- package/dist/core-flow/Graph.js +48 -17
- package/dist/core-flow/Graph.js.map +1 -1
- package/dist/core-flow/Loop.js +39 -13
- package/dist/core-flow/Loop.js.map +1 -1
- package/dist/core-flow/Parallel.js +53 -21
- package/dist/core-flow/Parallel.js.map +1 -1
- package/dist/core-flow/Sequence.js +39 -12
- package/dist/core-flow/Sequence.js.map +1 -1
- package/dist/core-flow/Workflow.js +44 -14
- package/dist/core-flow/Workflow.js.map +1 -1
- package/dist/doors/ag-ui.js +36 -0
- package/dist/doors/ag-ui.js.map +1 -0
- package/dist/doors/security.js +2 -1
- package/dist/doors/security.js.map +1 -1
- package/dist/esm/adapters/llm/AnthropicProvider.d.ts +9 -2
- package/dist/esm/adapters/llm/AnthropicProvider.js +26 -8
- package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
- package/dist/esm/adapters/llm/BedrockProvider.d.ts +6 -1
- package/dist/esm/adapters/llm/BedrockProvider.js +23 -7
- package/dist/esm/adapters/llm/BedrockProvider.js.map +1 -1
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.js +57 -49
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
- package/dist/esm/adapters/llm/BrowserOpenAIProvider.js +50 -42
- package/dist/esm/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
- package/dist/esm/adapters/llm/FoundryLocalProvider.js +171 -209
- package/dist/esm/adapters/llm/FoundryLocalProvider.js.map +1 -1
- package/dist/esm/adapters/llm/GeminiProvider.js +23 -9
- package/dist/esm/adapters/llm/GeminiProvider.js.map +1 -1
- package/dist/esm/adapters/llm/InvokeModelGatewayProvider.js +32 -9
- package/dist/esm/adapters/llm/InvokeModelGatewayProvider.js.map +1 -1
- package/dist/esm/adapters/llm/MockProvider.js +11 -3
- package/dist/esm/adapters/llm/MockProvider.js.map +1 -1
- package/dist/esm/adapters/llm/OllamaProvider.js +126 -164
- package/dist/esm/adapters/llm/OllamaProvider.js.map +1 -1
- package/dist/esm/adapters/llm/OpenAIProvider.d.ts +6 -1
- package/dist/esm/adapters/llm/OpenAIProvider.js +36 -9
- package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/errorType.d.ts +12 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/errorType.js +20 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/errorType.js.map +1 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.d.ts +116 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js +267 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/safeAnswer.d.ts +49 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/safeAnswer.js +409 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/safeAnswer.js.map +1 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/session.d.ts +80 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/session.js +175 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/session.js.map +1 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +61 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js +112 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/strictJson.d.ts +37 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/strictJson.js +215 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/strictJson.js.map +1 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.d.ts +199 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js +217 -0
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js.map +1 -0
- package/dist/esm/adapters/memory/agentcore.d.ts +152 -7
- package/dist/esm/adapters/memory/agentcore.js +433 -19
- package/dist/esm/adapters/memory/agentcore.js.map +1 -1
- package/dist/esm/adapters/memory/memoryBank.d.ts +3 -2
- package/dist/esm/adapters/memory/memoryBank.js +16 -3
- package/dist/esm/adapters/memory/memoryBank.js.map +1 -1
- package/dist/esm/adapters/memory/pgVector.js +10 -4
- package/dist/esm/adapters/memory/pgVector.js.map +1 -1
- package/dist/esm/adapters/memory/redis.d.ts +8 -3
- package/dist/esm/adapters/memory/redis.js +11 -3
- package/dist/esm/adapters/memory/redis.js.map +1 -1
- package/dist/esm/adapters/memory/s3Vectors.js +8 -3
- package/dist/esm/adapters/memory/s3Vectors.js.map +1 -1
- package/dist/esm/adapters/memory/sqliteVector.js +10 -4
- package/dist/esm/adapters/memory/sqliteVector.js.map +1 -1
- package/dist/esm/ag-ui/adapter.d.ts +118 -0
- package/dist/esm/ag-ui/adapter.js +122 -0
- package/dist/esm/ag-ui/adapter.js.map +1 -0
- package/dist/esm/ag-ui/framing.d.ts +52 -0
- package/dist/esm/ag-ui/framing.js +64 -0
- package/dist/esm/ag-ui/framing.js.map +1 -0
- package/dist/esm/ag-ui/frontendTools.d.ts +37 -0
- package/dist/esm/ag-ui/frontendTools.js +64 -0
- package/dist/esm/ag-ui/frontendTools.js.map +1 -0
- package/dist/esm/ag-ui/ids.d.ts +43 -0
- package/dist/esm/ag-ui/ids.js +49 -0
- package/dist/esm/ag-ui/ids.js.map +1 -0
- package/dist/esm/ag-ui/index.d.ts +19 -0
- package/dist/esm/ag-ui/index.js +19 -0
- package/dist/esm/ag-ui/index.js.map +1 -0
- package/dist/esm/ag-ui/request.d.ts +151 -0
- package/dist/esm/ag-ui/request.js +408 -0
- package/dist/esm/ag-ui/request.js.map +1 -0
- package/dist/esm/ag-ui/serializer.d.ts +173 -0
- package/dist/esm/ag-ui/serializer.js +895 -0
- package/dist/esm/ag-ui/serializer.js.map +1 -0
- package/dist/esm/ag-ui/types.d.ts +305 -0
- package/dist/esm/ag-ui/types.js +19 -0
- package/dist/esm/ag-ui/types.js.map +1 -0
- package/dist/esm/answer-validation/index.d.ts +2 -1
- package/dist/esm/answer-validation/index.js +1 -0
- package/dist/esm/answer-validation/index.js.map +1 -1
- package/dist/esm/answer-validation/toolLedger.d.ts +65 -0
- package/dist/esm/answer-validation/toolLedger.js +121 -0
- package/dist/esm/answer-validation/toolLedger.js.map +1 -0
- package/dist/esm/answer-validation/types.d.ts +48 -0
- package/dist/esm/answer-validation/types.js.map +1 -1
- package/dist/esm/answer-validation/validate.d.ts +2 -2
- package/dist/esm/answer-validation/validate.js +25 -3
- package/dist/esm/answer-validation/validate.js.map +1 -1
- package/dist/esm/classify/typesafe.js +30 -22
- package/dist/esm/classify/typesafe.js.map +1 -1
- package/dist/esm/core/Agent.d.ts +11 -1
- package/dist/esm/core/Agent.js +107 -21
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/LLMCall.d.ts +2 -1
- package/dist/esm/core/LLMCall.js +17 -7
- package/dist/esm/core/LLMCall.js.map +1 -1
- package/dist/esm/core/RunnerBase.d.ts +39 -8
- package/dist/esm/core/RunnerBase.js +97 -12
- package/dist/esm/core/RunnerBase.js.map +1 -1
- package/dist/esm/core/agent/buildAgentChart.js +17 -5
- package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
- package/dist/esm/core/agent/buildAgentMessageApiChart.d.ts +16 -0
- package/dist/esm/core/agent/buildAgentMessageApiChart.js +22 -2
- package/dist/esm/core/agent/buildAgentMessageApiChart.js.map +1 -1
- package/dist/esm/core/agent/buildDynamicAgentChart.js +23 -4
- package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/esm/core/agent/buildMessageApiChart.d.ts +16 -0
- package/dist/esm/core/agent/buildMessageApiChart.js +22 -2
- package/dist/esm/core/agent/buildMessageApiChart.js.map +1 -1
- package/dist/esm/core/agent/callerIdentity.js +2 -1
- package/dist/esm/core/agent/callerIdentity.js.map +1 -1
- package/dist/esm/core/agent/stages/answerValidation.js +22 -1
- package/dist/esm/core/agent/stages/answerValidation.js.map +1 -1
- package/dist/esm/core/agent/stages/callLLM.js +19 -3
- package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
- package/dist/esm/core/agent/stages/routeTurn.d.ts +1 -1
- package/dist/esm/core/agent/stages/routeTurn.js +17 -4
- package/dist/esm/core/agent/stages/routeTurn.js.map +1 -1
- package/dist/esm/core/agent/stages/seed.d.ts +18 -1
- package/dist/esm/core/agent/stages/seed.js +58 -8
- package/dist/esm/core/agent/stages/seed.js.map +1 -1
- package/dist/esm/core/agent/stages/timeLayer.js +2 -2
- package/dist/esm/core/agent/stages/timeLayer.js.map +1 -1
- package/dist/esm/core/agent/stages/toolCalls.d.ts +32 -1
- package/dist/esm/core/agent/stages/toolCalls.js +85 -25
- package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/esm/core/agent/types.d.ts +26 -6
- package/dist/esm/core/agent/window/strategies/summarizeOldest.js +4 -0
- package/dist/esm/core/agent/window/strategies/summarizeOldest.js.map +1 -1
- package/dist/esm/core/agent/window/summarize.js +6 -3
- package/dist/esm/core/agent/window/summarize.js.map +1 -1
- package/dist/esm/core/memberRun.d.ts +153 -0
- package/dist/esm/core/memberRun.js +273 -0
- package/dist/esm/core/memberRun.js.map +1 -0
- package/dist/esm/core/requestOfRun.d.ts +21 -0
- package/dist/esm/core/requestOfRun.js +24 -0
- package/dist/esm/core/requestOfRun.js.map +1 -0
- package/dist/esm/core/runner.d.ts +15 -3
- package/dist/esm/core/slots/buildToolsSlot.d.ts +0 -16
- package/dist/esm/core/slots/buildToolsSlot.js +11 -25
- package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/core-flow/Conditional.d.ts +10 -1
- package/dist/esm/core-flow/Conditional.js +40 -13
- package/dist/esm/core-flow/Conditional.js.map +1 -1
- package/dist/esm/core-flow/Graph.d.ts +2 -1
- package/dist/esm/core-flow/Graph.js +49 -18
- package/dist/esm/core-flow/Graph.js.map +1 -1
- package/dist/esm/core-flow/Loop.d.ts +10 -1
- package/dist/esm/core-flow/Loop.js +40 -14
- package/dist/esm/core-flow/Loop.js.map +1 -1
- package/dist/esm/core-flow/Parallel.d.ts +10 -1
- package/dist/esm/core-flow/Parallel.js +54 -22
- package/dist/esm/core-flow/Parallel.js.map +1 -1
- package/dist/esm/core-flow/Sequence.d.ts +10 -1
- package/dist/esm/core-flow/Sequence.js +40 -13
- package/dist/esm/core-flow/Sequence.js.map +1 -1
- package/dist/esm/core-flow/Workflow.d.ts +2 -1
- package/dist/esm/core-flow/Workflow.js +45 -15
- package/dist/esm/core-flow/Workflow.js.map +1 -1
- package/dist/esm/doors/ag-ui.d.ts +19 -0
- package/dist/esm/doors/ag-ui.js +20 -0
- package/dist/esm/doors/ag-ui.js.map +1 -0
- package/dist/esm/doors/security.d.ts +2 -1
- package/dist/esm/doors/security.js +2 -1
- package/dist/esm/doors/security.js.map +1 -1
- package/dist/esm/events/payloads.d.ts +4 -2
- package/dist/esm/hosting/envelope.js +5 -0
- package/dist/esm/hosting/envelope.js.map +1 -1
- package/dist/esm/hosting/httpHost.js +5 -78
- package/dist/esm/hosting/httpHost.js.map +1 -1
- package/dist/esm/hosting/index.d.ts +5 -1
- package/dist/esm/hosting/index.js +2 -0
- package/dist/esm/hosting/index.js.map +1 -1
- package/dist/esm/hosting/pendingAsk.d.ts +19 -0
- package/dist/esm/hosting/pendingAsk.js +38 -0
- package/dist/esm/hosting/pendingAsk.js.map +1 -0
- package/dist/esm/hosting/protocolAdapter.d.ts +232 -0
- package/dist/esm/hosting/protocolAdapter.js +23 -0
- package/dist/esm/hosting/protocolAdapter.js.map +1 -0
- package/dist/esm/hosting/refusalStatus.d.ts +30 -0
- package/dist/esm/hosting/refusalStatus.js +85 -0
- package/dist/esm/hosting/refusalStatus.js.map +1 -0
- package/dist/esm/hosting/requestSealing.d.ts +65 -0
- package/dist/esm/hosting/requestSealing.js +79 -0
- package/dist/esm/hosting/requestSealing.js.map +1 -0
- package/dist/esm/hosting/standingAgent.js +24 -34
- package/dist/esm/hosting/standingAgent.js.map +1 -1
- package/dist/esm/hosting/stream.d.ts +60 -0
- package/dist/esm/hosting/stream.js +38 -2
- package/dist/esm/hosting/stream.js.map +1 -1
- package/dist/esm/hosting/streamHandler.d.ts +153 -0
- package/dist/esm/hosting/streamHandler.js +517 -0
- package/dist/esm/hosting/streamHandler.js.map +1 -0
- package/dist/esm/hosting/types.d.ts +44 -0
- package/dist/esm/hosting/types.js.map +1 -1
- package/dist/esm/hosting/verifiedThreads.d.ts +29 -0
- package/dist/esm/hosting/verifiedThreads.js +46 -0
- package/dist/esm/hosting/verifiedThreads.js.map +1 -0
- package/dist/esm/identity/requestContext.d.ts +96 -0
- package/dist/esm/identity/requestContext.js +131 -0
- package/dist/esm/identity/requestContext.js.map +1 -0
- package/dist/esm/identity/requestCredentials.d.ts +99 -0
- package/dist/esm/identity/requestCredentials.js +157 -0
- package/dist/esm/identity/requestCredentials.js.map +1 -0
- package/dist/esm/identity/types.d.ts +11 -0
- package/dist/esm/identity/types.js.map +1 -1
- package/dist/esm/identity.d.ts +2 -0
- package/dist/esm/identity.js +5 -0
- package/dist/esm/identity.js.map +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/injection-engine/buildInjectionEngineSubflow.d.ts +11 -0
- package/dist/esm/injection-engine/buildInjectionEngineSubflow.js +39 -5
- package/dist/esm/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
- package/dist/esm/injection-engine/constrainedEnumPick.js +4 -2
- package/dist/esm/injection-engine/constrainedEnumPick.js.map +1 -1
- package/dist/esm/injection-engine/evaluator.d.ts +6 -0
- package/dist/esm/injection-engine/evaluator.js +19 -1
- package/dist/esm/injection-engine/evaluator.js.map +1 -1
- package/dist/esm/injection-engine/skillGraph.js +26 -8
- package/dist/esm/injection-engine/skillGraph.js.map +1 -1
- package/dist/esm/injection-engine/skillIntent.d.ts +4 -2
- package/dist/esm/injection-engine/skillIntent.js +3 -0
- package/dist/esm/injection-engine/skillIntent.js.map +1 -1
- package/dist/esm/injection-engine/types.d.ts +27 -1
- package/dist/esm/injection-engine/types.js +15 -0
- package/dist/esm/injection-engine/types.js.map +1 -1
- package/dist/esm/lib/abort.d.ts +143 -0
- package/dist/esm/lib/abort.js +322 -0
- package/dist/esm/lib/abort.js.map +1 -0
- package/dist/esm/lib/humanizeLLMError.d.ts +15 -0
- package/dist/esm/lib/humanizeLLMError.js +22 -7
- package/dist/esm/lib/humanizeLLMError.js.map +1 -1
- package/dist/esm/maps/engagement/parkCard.d.ts +5 -1
- package/dist/esm/maps/engagement/parkCard.js +10 -3
- package/dist/esm/maps/engagement/parkCard.js.map +1 -1
- package/dist/esm/mcp/mcpClient.js +30 -2
- package/dist/esm/mcp/mcpClient.js.map +1 -1
- package/dist/esm/mcp/mcpServe.js +5 -1
- package/dist/esm/mcp/mcpServe.js.map +1 -1
- package/dist/esm/mcp/plainData.d.ts +44 -0
- package/dist/esm/mcp/plainData.js +204 -0
- package/dist/esm/mcp/plainData.js.map +1 -0
- package/dist/esm/mcp/sdkLoadFailure.d.ts +6 -7
- package/dist/esm/mcp/sdkLoadFailure.js +4 -4
- package/dist/esm/mcp/sdkLoadFailure.js.map +1 -1
- package/dist/esm/mcp/throttleRetry.d.ts +51 -0
- package/dist/esm/mcp/throttleRetry.js +37 -4
- package/dist/esm/mcp/throttleRetry.js.map +1 -1
- package/dist/esm/mcp/toolResult.js +8 -50
- package/dist/esm/mcp/toolResult.js.map +1 -1
- package/dist/esm/mcp/types.d.ts +10 -6
- package/dist/esm/memory/beats/llmExtractor.js +6 -3
- package/dist/esm/memory/beats/llmExtractor.js.map +1 -1
- package/dist/esm/memory/define.js +45 -1
- package/dist/esm/memory/define.js.map +1 -1
- package/dist/esm/memory/define.types.d.ts +24 -0
- package/dist/esm/memory/define.types.js.map +1 -1
- package/dist/esm/memory/facts/llmFactExtractor.js +6 -3
- package/dist/esm/memory/facts/llmFactExtractor.js.map +1 -1
- package/dist/esm/memory/stages/formatDefault.js +3 -1
- package/dist/esm/memory/stages/formatDefault.js.map +1 -1
- package/dist/esm/memory/stages/summarize.js +16 -5
- package/dist/esm/memory/stages/summarize.js.map +1 -1
- package/dist/esm/memory/store/InMemoryStore.d.ts +8 -3
- package/dist/esm/memory/store/InMemoryStore.js +12 -3
- package/dist/esm/memory/store/InMemoryStore.js.map +1 -1
- package/dist/esm/memory/store/index.d.ts +1 -0
- package/dist/esm/memory/store/index.js +5 -0
- package/dist/esm/memory/store/index.js.map +1 -1
- package/dist/esm/memory/store/types.d.ts +38 -4
- package/dist/esm/memory/store/writeOptions.d.ts +118 -0
- package/dist/esm/memory/store/writeOptions.js +242 -0
- package/dist/esm/memory/store/writeOptions.js.map +1 -0
- package/dist/esm/memory-providers.d.ts +1 -1
- package/dist/esm/memory-providers.js +4 -1
- package/dist/esm/memory-providers.js.map +1 -1
- package/dist/esm/patterns/LlmRouter.js +10 -5
- package/dist/esm/patterns/LlmRouter.js.map +1 -1
- package/dist/esm/patterns/MapReduce.js +8 -2
- package/dist/esm/patterns/MapReduce.js.map +1 -1
- package/dist/esm/redaction/conversation.js +3 -0
- package/dist/esm/redaction/conversation.js.map +1 -1
- package/dist/esm/redaction/knownStrings.js +1 -0
- package/dist/esm/redaction/knownStrings.js.map +1 -1
- package/dist/esm/reliability/buildReliabilityGateChart.js +7 -1
- package/dist/esm/reliability/buildReliabilityGateChart.js.map +1 -1
- package/dist/esm/resilience/withCircuitBreaker.js +5 -2
- package/dist/esm/resilience/withCircuitBreaker.js.map +1 -1
- package/dist/esm/resilience/withFallback.js +6 -0
- package/dist/esm/resilience/withFallback.js.map +1 -1
- package/dist/esm/resilience/withRetry.js +5 -0
- package/dist/esm/resilience/withRetry.js.map +1 -1
- package/dist/esm/time-travel/servedView.js +1 -1
- package/dist/esm/time-travel/servedView.js.map +1 -1
- package/dist/esm/tool-providers/index.d.ts +5 -0
- package/dist/esm/tool-providers/index.js +6 -0
- package/dist/esm/tool-providers/index.js.map +1 -1
- package/dist/esm/tools/hostFilled.d.ts +110 -0
- package/dist/esm/tools/hostFilled.js +509 -0
- package/dist/esm/tools/hostFilled.js.map +1 -0
- package/dist/esm/trace-toolpack/selfExplain.d.ts +8 -0
- package/dist/esm/trace-toolpack/selfExplain.js +25 -2
- package/dist/esm/trace-toolpack/selfExplain.js.map +1 -1
- package/dist/hosting/envelope.js +5 -0
- package/dist/hosting/envelope.js.map +1 -1
- package/dist/hosting/httpHost.js +5 -78
- package/dist/hosting/httpHost.js.map +1 -1
- package/dist/hosting/index.js +9 -3
- package/dist/hosting/index.js.map +1 -1
- package/dist/hosting/pendingAsk.js +42 -0
- package/dist/hosting/pendingAsk.js.map +1 -0
- package/dist/hosting/protocolAdapter.js +24 -0
- package/dist/hosting/protocolAdapter.js.map +1 -0
- package/dist/hosting/refusalStatus.js +88 -0
- package/dist/hosting/refusalStatus.js.map +1 -0
- package/dist/hosting/requestSealing.js +83 -0
- package/dist/hosting/requestSealing.js.map +1 -0
- package/dist/hosting/standingAgent.js +25 -35
- package/dist/hosting/standingAgent.js.map +1 -1
- package/dist/hosting/stream.js +39 -3
- package/dist/hosting/stream.js.map +1 -1
- package/dist/hosting/streamHandler.js +521 -0
- package/dist/hosting/streamHandler.js.map +1 -0
- package/dist/hosting/types.js.map +1 -1
- package/dist/hosting/verifiedThreads.js +50 -0
- package/dist/hosting/verifiedThreads.js.map +1 -0
- package/dist/identity/requestContext.js +139 -0
- package/dist/identity/requestContext.js.map +1 -0
- package/dist/identity/requestCredentials.js +165 -0
- package/dist/identity/requestCredentials.js.map +1 -0
- package/dist/identity/types.js.map +1 -1
- package/dist/identity.js +13 -1
- package/dist/identity.js.map +1 -1
- package/dist/index.js +20 -3
- package/dist/index.js.map +1 -1
- package/dist/injection-engine/buildInjectionEngineSubflow.js +38 -4
- package/dist/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
- package/dist/injection-engine/constrainedEnumPick.js +4 -2
- package/dist/injection-engine/constrainedEnumPick.js.map +1 -1
- package/dist/injection-engine/evaluator.js +18 -0
- package/dist/injection-engine/evaluator.js.map +1 -1
- package/dist/injection-engine/skillGraph.js +25 -7
- package/dist/injection-engine/skillGraph.js.map +1 -1
- package/dist/injection-engine/skillIntent.js +3 -0
- package/dist/injection-engine/skillIntent.js.map +1 -1
- package/dist/injection-engine/types.js +17 -1
- package/dist/injection-engine/types.js.map +1 -1
- package/dist/lib/abort.js +336 -0
- package/dist/lib/abort.js.map +1 -0
- package/dist/lib/humanizeLLMError.js +23 -8
- package/dist/lib/humanizeLLMError.js.map +1 -1
- package/dist/maps/engagement/parkCard.js +10 -3
- package/dist/maps/engagement/parkCard.js.map +1 -1
- package/dist/mcp/mcpClient.js +30 -2
- package/dist/mcp/mcpClient.js.map +1 -1
- package/dist/mcp/mcpServe.js +5 -1
- package/dist/mcp/mcpServe.js.map +1 -1
- package/dist/mcp/plainData.js +208 -0
- package/dist/mcp/plainData.js.map +1 -0
- package/dist/mcp/sdkLoadFailure.js +4 -4
- package/dist/mcp/sdkLoadFailure.js.map +1 -1
- package/dist/mcp/throttleRetry.js +41 -6
- package/dist/mcp/throttleRetry.js.map +1 -1
- package/dist/mcp/toolResult.js +8 -50
- package/dist/mcp/toolResult.js.map +1 -1
- package/dist/memory/beats/llmExtractor.js +6 -3
- package/dist/memory/beats/llmExtractor.js.map +1 -1
- package/dist/memory/define.js +45 -1
- package/dist/memory/define.js.map +1 -1
- package/dist/memory/define.types.js.map +1 -1
- package/dist/memory/facts/llmFactExtractor.js +6 -3
- package/dist/memory/facts/llmFactExtractor.js.map +1 -1
- package/dist/memory/stages/formatDefault.js +3 -1
- package/dist/memory/stages/formatDefault.js.map +1 -1
- package/dist/memory/stages/summarize.js +16 -5
- package/dist/memory/stages/summarize.js.map +1 -1
- package/dist/memory/store/InMemoryStore.js +12 -3
- package/dist/memory/store/InMemoryStore.js.map +1 -1
- package/dist/memory/store/index.js +11 -1
- package/dist/memory/store/index.js.map +1 -1
- package/dist/memory/store/writeOptions.js +250 -0
- package/dist/memory/store/writeOptions.js.map +1 -0
- package/dist/memory-providers.js +4 -1
- package/dist/memory-providers.js.map +1 -1
- package/dist/patterns/LlmRouter.js +9 -4
- package/dist/patterns/LlmRouter.js.map +1 -1
- package/dist/patterns/MapReduce.js +8 -2
- package/dist/patterns/MapReduce.js.map +1 -1
- package/dist/redaction/conversation.js +3 -0
- package/dist/redaction/conversation.js.map +1 -1
- package/dist/redaction/knownStrings.js +1 -0
- package/dist/redaction/knownStrings.js.map +1 -1
- package/dist/reliability/buildReliabilityGateChart.js +7 -1
- package/dist/reliability/buildReliabilityGateChart.js.map +1 -1
- package/dist/resilience/withCircuitBreaker.js +5 -2
- package/dist/resilience/withCircuitBreaker.js.map +1 -1
- package/dist/resilience/withFallback.js +6 -0
- package/dist/resilience/withFallback.js.map +1 -1
- package/dist/resilience/withRetry.js +5 -0
- package/dist/resilience/withRetry.js.map +1 -1
- package/dist/time-travel/servedView.js +1 -1
- package/dist/time-travel/servedView.js.map +1 -1
- package/dist/tool-providers/index.js +10 -1
- package/dist/tool-providers/index.js.map +1 -1
- package/dist/tools/hostFilled.js +517 -0
- package/dist/tools/hostFilled.js.map +1 -0
- package/dist/trace-toolpack/selfExplain.js +25 -2
- package/dist/trace-toolpack/selfExplain.js.map +1 -1
- package/dist/types/adapters/llm/AnthropicProvider.d.ts +9 -2
- package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/BedrockProvider.d.ts +6 -1
- package/dist/types/adapters/llm/BedrockProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/FoundryLocalProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/GeminiProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/InvokeModelGatewayProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/MockProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/OllamaProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/OpenAIProvider.d.ts +6 -1
- package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/errorType.d.ts +13 -0
- package/dist/types/adapters/mcp/agentcoreRuntime/errorType.d.ts.map +1 -0
- package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts +117 -0
- package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts.map +1 -0
- package/dist/types/adapters/mcp/agentcoreRuntime/safeAnswer.d.ts +50 -0
- package/dist/types/adapters/mcp/agentcoreRuntime/safeAnswer.d.ts.map +1 -0
- package/dist/types/adapters/mcp/agentcoreRuntime/session.d.ts +81 -0
- package/dist/types/adapters/mcp/agentcoreRuntime/session.d.ts.map +1 -0
- package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +62 -0
- package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts.map +1 -0
- package/dist/types/adapters/mcp/agentcoreRuntime/strictJson.d.ts +38 -0
- package/dist/types/adapters/mcp/agentcoreRuntime/strictJson.d.ts.map +1 -0
- package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts +200 -0
- package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts.map +1 -0
- package/dist/types/adapters/memory/agentcore.d.ts +152 -7
- package/dist/types/adapters/memory/agentcore.d.ts.map +1 -1
- package/dist/types/adapters/memory/memoryBank.d.ts +3 -2
- package/dist/types/adapters/memory/memoryBank.d.ts.map +1 -1
- package/dist/types/adapters/memory/pgVector.d.ts.map +1 -1
- package/dist/types/adapters/memory/redis.d.ts +8 -3
- package/dist/types/adapters/memory/redis.d.ts.map +1 -1
- package/dist/types/adapters/memory/s3Vectors.d.ts.map +1 -1
- package/dist/types/adapters/memory/sqliteVector.d.ts.map +1 -1
- package/dist/types/ag-ui/adapter.d.ts +119 -0
- package/dist/types/ag-ui/adapter.d.ts.map +1 -0
- package/dist/types/ag-ui/framing.d.ts +53 -0
- package/dist/types/ag-ui/framing.d.ts.map +1 -0
- package/dist/types/ag-ui/frontendTools.d.ts +38 -0
- package/dist/types/ag-ui/frontendTools.d.ts.map +1 -0
- package/dist/types/ag-ui/ids.d.ts +44 -0
- package/dist/types/ag-ui/ids.d.ts.map +1 -0
- package/dist/types/ag-ui/index.d.ts +20 -0
- package/dist/types/ag-ui/index.d.ts.map +1 -0
- package/dist/types/ag-ui/request.d.ts +152 -0
- package/dist/types/ag-ui/request.d.ts.map +1 -0
- package/dist/types/ag-ui/serializer.d.ts +174 -0
- package/dist/types/ag-ui/serializer.d.ts.map +1 -0
- package/dist/types/ag-ui/types.d.ts +306 -0
- package/dist/types/ag-ui/types.d.ts.map +1 -0
- package/dist/types/answer-validation/index.d.ts +2 -1
- package/dist/types/answer-validation/index.d.ts.map +1 -1
- package/dist/types/answer-validation/toolLedger.d.ts +66 -0
- package/dist/types/answer-validation/toolLedger.d.ts.map +1 -0
- package/dist/types/answer-validation/types.d.ts +48 -0
- package/dist/types/answer-validation/types.d.ts.map +1 -1
- package/dist/types/answer-validation/validate.d.ts +2 -2
- package/dist/types/answer-validation/validate.d.ts.map +1 -1
- package/dist/types/classify/typesafe.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts +11 -1
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/LLMCall.d.ts +2 -1
- package/dist/types/core/LLMCall.d.ts.map +1 -1
- package/dist/types/core/RunnerBase.d.ts +39 -8
- package/dist/types/core/RunnerBase.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/buildAgentMessageApiChart.d.ts +16 -0
- package/dist/types/core/agent/buildAgentMessageApiChart.d.ts.map +1 -1
- package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/buildMessageApiChart.d.ts +16 -0
- package/dist/types/core/agent/buildMessageApiChart.d.ts.map +1 -1
- package/dist/types/core/agent/callerIdentity.d.ts.map +1 -1
- package/dist/types/core/agent/stages/answerValidation.d.ts.map +1 -1
- package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
- package/dist/types/core/agent/stages/routeTurn.d.ts +1 -1
- package/dist/types/core/agent/stages/routeTurn.d.ts.map +1 -1
- package/dist/types/core/agent/stages/seed.d.ts +18 -1
- package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
- package/dist/types/core/agent/stages/toolCalls.d.ts +32 -1
- package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +26 -6
- package/dist/types/core/agent/types.d.ts.map +1 -1
- package/dist/types/core/agent/window/strategies/summarizeOldest.d.ts.map +1 -1
- package/dist/types/core/agent/window/summarize.d.ts.map +1 -1
- package/dist/types/core/memberRun.d.ts +154 -0
- package/dist/types/core/memberRun.d.ts.map +1 -0
- package/dist/types/core/requestOfRun.d.ts +22 -0
- package/dist/types/core/requestOfRun.d.ts.map +1 -0
- package/dist/types/core/runner.d.ts +15 -3
- package/dist/types/core/runner.d.ts.map +1 -1
- package/dist/types/core/slots/buildToolsSlot.d.ts +0 -16
- package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
- package/dist/types/core-flow/Conditional.d.ts +10 -1
- package/dist/types/core-flow/Conditional.d.ts.map +1 -1
- package/dist/types/core-flow/Graph.d.ts +2 -1
- package/dist/types/core-flow/Graph.d.ts.map +1 -1
- package/dist/types/core-flow/Loop.d.ts +10 -1
- package/dist/types/core-flow/Loop.d.ts.map +1 -1
- package/dist/types/core-flow/Parallel.d.ts +10 -1
- package/dist/types/core-flow/Parallel.d.ts.map +1 -1
- package/dist/types/core-flow/Sequence.d.ts +10 -1
- package/dist/types/core-flow/Sequence.d.ts.map +1 -1
- package/dist/types/core-flow/Workflow.d.ts +2 -1
- package/dist/types/core-flow/Workflow.d.ts.map +1 -1
- package/dist/types/doors/ag-ui.d.ts +20 -0
- package/dist/types/doors/ag-ui.d.ts.map +1 -0
- package/dist/types/doors/security.d.ts +2 -1
- package/dist/types/doors/security.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +4 -2
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/hosting/httpHost.d.ts.map +1 -1
- package/dist/types/hosting/index.d.ts +5 -1
- package/dist/types/hosting/index.d.ts.map +1 -1
- package/dist/types/hosting/pendingAsk.d.ts +20 -0
- package/dist/types/hosting/pendingAsk.d.ts.map +1 -0
- package/dist/types/hosting/protocolAdapter.d.ts +233 -0
- package/dist/types/hosting/protocolAdapter.d.ts.map +1 -0
- package/dist/types/hosting/refusalStatus.d.ts +31 -0
- package/dist/types/hosting/refusalStatus.d.ts.map +1 -0
- package/dist/types/hosting/requestSealing.d.ts +66 -0
- package/dist/types/hosting/requestSealing.d.ts.map +1 -0
- package/dist/types/hosting/standingAgent.d.ts.map +1 -1
- package/dist/types/hosting/stream.d.ts +60 -0
- package/dist/types/hosting/stream.d.ts.map +1 -1
- package/dist/types/hosting/streamHandler.d.ts +154 -0
- package/dist/types/hosting/streamHandler.d.ts.map +1 -0
- package/dist/types/hosting/types.d.ts +44 -0
- package/dist/types/hosting/types.d.ts.map +1 -1
- package/dist/types/hosting/verifiedThreads.d.ts +30 -0
- package/dist/types/hosting/verifiedThreads.d.ts.map +1 -0
- package/dist/types/identity/requestContext.d.ts +97 -0
- package/dist/types/identity/requestContext.d.ts.map +1 -0
- package/dist/types/identity/requestCredentials.d.ts +100 -0
- package/dist/types/identity/requestCredentials.d.ts.map +1 -0
- package/dist/types/identity/types.d.ts +11 -0
- package/dist/types/identity/types.d.ts.map +1 -1
- package/dist/types/identity.d.ts +2 -0
- package/dist/types/identity.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/injection-engine/buildInjectionEngineSubflow.d.ts +11 -0
- package/dist/types/injection-engine/buildInjectionEngineSubflow.d.ts.map +1 -1
- package/dist/types/injection-engine/constrainedEnumPick.d.ts.map +1 -1
- package/dist/types/injection-engine/evaluator.d.ts +6 -0
- package/dist/types/injection-engine/evaluator.d.ts.map +1 -1
- package/dist/types/injection-engine/skillIntent.d.ts +4 -2
- package/dist/types/injection-engine/skillIntent.d.ts.map +1 -1
- package/dist/types/injection-engine/types.d.ts +27 -1
- package/dist/types/injection-engine/types.d.ts.map +1 -1
- package/dist/types/lib/abort.d.ts +144 -0
- package/dist/types/lib/abort.d.ts.map +1 -0
- package/dist/types/lib/humanizeLLMError.d.ts +15 -0
- package/dist/types/lib/humanizeLLMError.d.ts.map +1 -1
- package/dist/types/maps/engagement/parkCard.d.ts +5 -1
- package/dist/types/maps/engagement/parkCard.d.ts.map +1 -1
- package/dist/types/mcp/mcpServe.d.ts.map +1 -1
- package/dist/types/mcp/plainData.d.ts +45 -0
- package/dist/types/mcp/plainData.d.ts.map +1 -0
- package/dist/types/mcp/sdkLoadFailure.d.ts +6 -7
- package/dist/types/mcp/sdkLoadFailure.d.ts.map +1 -1
- package/dist/types/mcp/throttleRetry.d.ts +51 -0
- package/dist/types/mcp/throttleRetry.d.ts.map +1 -1
- package/dist/types/mcp/toolResult.d.ts.map +1 -1
- package/dist/types/mcp/types.d.ts +10 -6
- package/dist/types/mcp/types.d.ts.map +1 -1
- package/dist/types/memory/beats/llmExtractor.d.ts.map +1 -1
- package/dist/types/memory/define.d.ts.map +1 -1
- package/dist/types/memory/define.types.d.ts +24 -0
- package/dist/types/memory/define.types.d.ts.map +1 -1
- package/dist/types/memory/facts/llmFactExtractor.d.ts.map +1 -1
- package/dist/types/memory/stages/formatDefault.d.ts.map +1 -1
- package/dist/types/memory/stages/summarize.d.ts.map +1 -1
- package/dist/types/memory/store/InMemoryStore.d.ts +8 -3
- package/dist/types/memory/store/InMemoryStore.d.ts.map +1 -1
- package/dist/types/memory/store/index.d.ts +1 -0
- package/dist/types/memory/store/index.d.ts.map +1 -1
- package/dist/types/memory/store/types.d.ts +38 -4
- package/dist/types/memory/store/types.d.ts.map +1 -1
- package/dist/types/memory/store/writeOptions.d.ts +119 -0
- package/dist/types/memory/store/writeOptions.d.ts.map +1 -0
- package/dist/types/memory-providers.d.ts +1 -1
- package/dist/types/memory-providers.d.ts.map +1 -1
- package/dist/types/patterns/LlmRouter.d.ts.map +1 -1
- package/dist/types/patterns/MapReduce.d.ts.map +1 -1
- package/dist/types/redaction/conversation.d.ts.map +1 -1
- package/dist/types/redaction/knownStrings.d.ts.map +1 -1
- package/dist/types/reliability/buildReliabilityGateChart.d.ts.map +1 -1
- package/dist/types/resilience/withCircuitBreaker.d.ts.map +1 -1
- package/dist/types/resilience/withFallback.d.ts.map +1 -1
- package/dist/types/resilience/withRetry.d.ts.map +1 -1
- package/dist/types/tool-providers/index.d.ts +5 -0
- package/dist/types/tool-providers/index.d.ts.map +1 -1
- package/dist/types/tools/hostFilled.d.ts +111 -0
- package/dist/types/tools/hostFilled.d.ts.map +1 -0
- package/dist/types/trace-toolpack/selfExplain.d.ts +8 -0
- package/dist/types/trace-toolpack/selfExplain.d.ts.map +1 -1
- package/package.json +25 -1
package/AGENTS.md
CHANGED
|
@@ -34,9 +34,9 @@ Two more absences: there is **no runtime force-stop governor** (`routeRecorder()
|
|
|
34
34
|
only *labels* a spinning run; `maxIterations` is the hard stop), and there is **no
|
|
35
35
|
automatic re-delivery of an ageing skill body** (the inert `refreshPolicy` was removed in 10.0.0 — use `surfaceMode: 'both'`).
|
|
36
36
|
|
|
37
|
-
## Subpath map —
|
|
37
|
+
## Subpath map — 19 doors
|
|
38
38
|
|
|
39
|
-
`agentfootprint` (main barrel: `Agent`, `LLMCall`, `defineTool`, control flow, patterns, `defineRAG`, pause/resume) · `/providers` (`mock`, `anthropic`, `openai`, `bedrock`, `ollama`, `mcpClient`, embedders — every provider, so bundlers never walk the vendor SDKs from the main barrel) · `/context` (`defineSkill`, `defineFact`, `defineSteering`, `defineInstruction`, `skillGraph`, `skillsFromDir`, the scorers) · `/memory` (`defineMemory`, `InMemoryStore`, `mockEmbedder`, the stores) · `/rag` (stores + loaders; `defineRAG` itself is on the main barrel) · `/observe` (recorders, tracing, `RunStep`) · `/resilience` (provider decorators) · `/reliability` (only the reliability gate's distinct `CircuitOpenError`; rules live on `/resilience`) · `/cache` (prefix-cache strategies, chosen from the provider's declared `promptCaching` by `cacheStrategyFor`) · `/security` · `/hosting` · `/events` · `/skill-graph` (the routing layer with no framework attached, for a host that is not this agent) · `/recipes` (`defineAgentRecipe` — one named, versioned agent setup, applied with `.recipe()`) · `/maps` (`Claim<T>` and the map-engagement vocabulary behind `.maps()`) · `/classify` (the calibrated-classifier port: `Classifier`, `mockClassifier`) · `/ontology` (`defineOntology` — a declared map of the domain, mounted with `.ontology()`) · `/time` (`convertForTool` + `sugarForms` + `granularityMsOf` — the time layer's own answer to whether and how a tool reads a window, for an app outside a run; the steps `convertExact`, `convertWidened`, `periodFactProblem` too). `package.json` `exports` is the complete list; a path not on it does not resolve.
|
|
39
|
+
`agentfootprint` (main barrel: `Agent`, `LLMCall`, `defineTool`, control flow, patterns, `defineRAG`, pause/resume) · `/providers` (`mock`, `anthropic`, `openai`, `bedrock`, `ollama`, `mcpClient`, embedders — every provider, so bundlers never walk the vendor SDKs from the main barrel) · `/context` (`defineSkill`, `defineFact`, `defineSteering`, `defineInstruction`, `skillGraph`, `skillsFromDir`, the scorers) · `/memory` (`defineMemory`, `InMemoryStore`, `mockEmbedder`, the stores) · `/rag` (stores + loaders; `defineRAG` itself is on the main barrel) · `/observe` (recorders, tracing, `RunStep`) · `/resilience` (provider decorators) · `/reliability` (only the reliability gate's distinct `CircuitOpenError`; rules live on `/resilience`) · `/cache` (prefix-cache strategies, chosen from the provider's declared `promptCaching` by `cacheStrategyFor`) · `/security` · `/hosting` · `/events` · `/skill-graph` (the routing layer with no framework attached, for a host that is not this agent) · `/recipes` (`defineAgentRecipe` — one named, versioned agent setup, applied with `.recipe()`) · `/maps` (`Claim<T>` and the map-engagement vocabulary behind `.maps()`) · `/classify` (the calibrated-classifier port: `Classifier`, `mockClassifier`) · `/ontology` (`defineOntology` — a declared map of the domain, mounted with `.ontology()`) · `/time` (`convertForTool` + `sugarForms` + `granularityMsOf` — the time layer's own answer to whether and how a tool reads a window, for an app outside a run; the steps `convertExact`, `convertWidened`, `periodFactProblem` too) · `/ag-ui` (`agUi()` — the AG-UI adapter: `streamHandler({ agent: () => buildAgent(), adapter: agUi(), threads: verifiedThreads(identity), sessions })` from `/hosting` serves agents to any AG-UI frontend, a fresh agent per request, the thread bound to the VERIFIED caller; `agUiSerializer` + `agUiSse` for a transport of your own; framed by the optional peer `@ag-ui/encoder`). `package.json` `exports` is the complete list; a path not on it does not resolve.
|
|
40
40
|
|
|
41
41
|
## Core Concepts
|
|
42
42
|
|
package/CAPABILITIES.md
CHANGED
|
@@ -20,6 +20,14 @@ not in this table, search `src/index.ts` for the nearest noun before writing cod
|
|
|
20
20
|
|
|
21
21
|
| If you are about to build… | It is | Where | Since |
|
|
22
22
|
|---|---|---|---|
|
|
23
|
+
| giving a tool the credential that arrived WITH the incoming request (an encrypted per-request token, a session key) — sealed per run so no copy, log or state carries it, read only by the run that carried it (its composition members included, at any depth; a resume serves the resume's request), failing closed by name when absent; strategies for bearer, API-key header and decrypt-then-read; through a host, the app seals each request's credential from its headers (`sealRequest`) and the host hands it to that request's run only — a handle returned twice refused, a sealer's throw refused in fixed words | `requestContext` + `requestCredentials` + `asBearer` / `asApiKey` / `decodedWith` + `RequestCredentialError` (`agentfootprint/security`), `run(input, { request })`; `sealRequest` + `RequestSealer` on `standingAgent` / `streamHandler` (`agentfootprint/hosting`) | `src/identity/requestCredentials.ts` | 10.5.0 |
|
|
24
|
+
| hiding a credential or identity ARGUMENT of a tool (an MCP server's `token` field) from the model — removed from the schema the model sees, a model-sent value refused by name, filled from `ctx.credential` / `ctx.identity` inside `execute`, echoes of the credential scrubbed from results and errors | `hostFilled` + `fromCredential` / `fromIdentity` + `HostFilledArgumentError` | `src/tools/hostFilled.ts` | 10.5.0 |
|
|
25
|
+
| running the same composition (Sequence / Parallel / Conditional / Loop / workflow / graph, nested) for many users at once without their member agents sharing memory or identity — the caller's identity passed once to the composition and handed to every member at any depth; with none, each run is its own conversation; a mounted agent no run reaches refused by name, never run under a placeholder or its instance's last caller | `Sequence.run({ message, identity })` (and every composition's input) + `MemberIdentityError` | `src/core/memberRun.ts` | 10.4.0 |
|
|
26
|
+
| keeping a memory write out of a managed service's long-term extraction, or filing what it derives under one tenant's namespace — vendor-neutral write options on the `MemoryStore` port (`put`/`putMany`/`putIfVersion`), declared per store and REFUSED BY NAME where not honoured (never dropped), bound by `defineMemory` to every write AND search of a memory (the scope comes only from the run's identity; a per-call scope, an empty one, a search namespace that does not hold it segment for segment, or one that omits the person's actor is refused; `requireNamespaceScope` refuses unscoped access) and checked before the first turn; AgentCore maps them to `CreateEvent`'s `extractionMode: 'SKIP'` and `extractionConfig.namespaceVariables` only when its client and SDK can carry them, checks AgentCore's variable domain first, and ships a one-to-one tenant encoder into its alphabet | `MemoryWriteOptions` (`extraction: 'skip'`, `namespaceScope`) + `MemoryStore.writeOptions` + `defineMemory({ writeOptions, namespaceScope })` + `SearchOptions.namespaceScope` + `UnsupportedMemoryWriteOptionError` + `refuseUnhonouredWriteOptions` + `agentCoreNamespaceValue` (`agentfootprint/memory`) | `src/memory/store/writeOptions.ts` | 10.4.0 |
|
|
27
|
+
| calling an MCP server somebody deployed TO AWS Bedrock AgentCore Runtime (`--protocol MCP`) — through `InvokeAgentRuntime` with SigV4, or a bearer token over the documented HTTPS endpoint (the SDK has no bearer scheme); a fresh runtime session per call by default (`'per-call'` carries no session id, so one client can serve every user) or one per client (`'reuse'` keys each client's connection — its `runtimeSessionId` and the server's `Mcp-Session-Id` — by a handle the transport issues); what the MCP client reads of a failure rewritten from fixed sentences and safe ids (status, a plain error type, a JSON-RPC code), never the service's text (which can quote the signed request); a bearer token vended as a machine token only; the runtime's "Session operation in progress" refusal (JSON-RPC -32005 inside an HTTP 200, which MCP clients never retry; or the API's 409 `RetryableConflictException`) retried with bounded backoff by the SAME loop as the 429 retry, one small decision function — and nothing else re-sent: the SDK client's own retry is off, so a 5xx or a dropped connection is never replayed | `agentCoreRuntimeMcpTransport` + `agentCoreRuntimeUrl` + `AGENTCORE_RUNTIME_SESSION_HEADER` (`agentfootprint/providers`) | `src/adapters/mcp/agentcoreRuntime/` | 10.4.0 |
|
|
28
|
+
| bundling an app that speaks MCP (esbuild, webpack, a Lambda zip without `node_modules`) — the MCP and AWS SDKs load through a lazy `require` a bundler cannot follow, so the caller hands over the modules it imported statically | `mcpClient({ sdk: { Client, StreamableHTTPClientTransport } })` · `agentCoreRuntimeMcpTransport({ sdk })` (SigV4 only; `_sdk` = the older name, both-different refused, `sdk` beside `{ bearer }` refused); a missing or wrong SDK is refused when the client/transport is BUILT, in words naming `sdk`, never at the first tool call. Docs: mcp-client "Bundling (esbuild, webpack)". Fenced by `test/mcp/bundling.test.ts` | `src/mcp/` | 10.5.0 |
|
|
29
|
+
| serving agents to AG-UI frontends (CopilotKit, the AG-UI Dojo, an `@ag-ui/client` app) from any framework with no glue code — POST a `RunAgentInput`, stream AG-UI events back; the request is untrusted browser input: only the newest user message is conversation (the page's copy is never read), a system/developer message refused, an answer taken only for the pause the server keeps, frontend tools only by the app's name allow-list with its own contract (they run in the page, no server privilege), `state`/`context` only through the app's validators, no identity/credential/redaction from a request; a fresh runner per request, the thread bound to the caller the app authenticates, the conversation and paused runs kept server-side, one turn per thread, door guard, body ceiling, SSE keep-alive | `streamHandler` + `ProtocolAdapter` + `verifiedThreads` (`agentfootprint/hosting`) + `agUi` (`agentfootprint/ag-ui`) | `src/hosting/streamHandler.ts` | 10.4.0 |
|
|
30
|
+
| serving an agent behind a GATEWAY that speaks AG-UI in its own request body and its own output envelope (`{"eventType":"…Event","event":{…,"eventSequence":n}}`) — `agUi()` as three replaceable strategies: a reader (the gateway's body → the turn), the translation (AG-UI vocabulary, unchanged) and the framing (the envelope; each frame's number in its own stream handed in by the host, never a shared counter); every untrusted-input rule stays in the core whichever reader ran (shape and ids, no system/developer message, frontend tools by allow-list, state/context by validators, answers only for the kept pause; each value read once) | `agUi({ reader, translation, framing })` + `AgUiRequestReader` / `AgUiTurnRequest` / `AgUiTranslationStrategy` (`agentfootprint/ag-ui`), `SseFraming.frame(event, { sequence })` + `SseFramePosition` (`agentfootprint/observe`) | `src/ag-ui/adapter.ts` | 10.5.0 |
|
|
23
31
|
| checking forced tool choice per model without changing the existing boolean wire declaration; explicit requests refuse before transport, classifiers keep their strict parse alternative, wrappers preserve and fallback pairs intersect | `LLMProvider.supportsForcedToolChoice` + `forcedToolChoiceFor` + `UnsupportedToolChoiceError` (`agentfootprint/providers`) | `src/provider-contract/forcedToolChoice.ts` | 10.1.0 |
|
|
24
32
|
| a typed answer constrained by the PROVIDER'S OWN structured output instead of asked for in prose — the schema sent as Anthropic's `output_config.format`, the agent keeping its tools; one function builds the API-compatible wire copy (objects closed, unsupported constraints moved into the description, recursion / external `$ref` / complex enums / open values / open-keyed maps refused at build by node), the parser still judges; per-model capability with unknown ids read as the newest generation, refused by name at run start and before transport; a `'refusal'` / `'max_tokens'` stop fails the attempt by name even when it parses; `_findings` allowed on the format when the ledger is armed | `.outputSchema(parser, { strategy: 'native', jsonSchema })` + `LLMProvider.carriesNativeOutputSchema` / `supportsNativeOutputSchema` + `nativeOutputSchemaFor` + `UnsupportedNativeOutputError` (`agentfootprint/providers`) + `answerGuarantee: 'native'` + `OutputAttempt.stopReason` | `src/provider-contract/nativeOutputSchema.ts` | 10.3.0 |
|
|
25
33
|
| replaying Anthropic thinking in its original content order; refusing known unsafe active-tool replay, observing each permitted completed-turn omission before sending, and retaining that decision across checkpoints | `LLMMessage.replay` + `UnsafeThinkingReplayError` + `LLMCallHooks.onReplayPrepared` + `agentfootprint.agent.thinking_omitted` | `src/adapters/llm/anthropicThinkingReplay.ts` | 10.1.0 |
|
|
@@ -32,8 +40,9 @@ not in this table, search `src/index.ts` for the nearest noun before writing cod
|
|
|
32
40
|
| identifying which same-name tool call a permission check or credential event describes — captured at dispatch, including resume and inner pull failures; qualify with run identity, missing fields stay unknown | `ToolCallEventIdentity` + `bindToolSecurityEvents` | `src/core/agent/toolSecurityEvents.ts` | 9.137.0 |
|
|
33
41
|
| guiding an evidence repair to ask for missing context without inventing values | `recoveryInstruction` + `EvidenceRecoveryContext` | `src/core/agent/evidence/` | 9.96.0 |
|
|
34
42
|
| checking a typed final answer against scoped evidence before streaming or memory delivery — optional host-authored checks with enforce/observe modes, canonical JSON and bounded read-only artifacts | `answerValidation` + `AnswerValidationError` | `src/answer-validation/` | 9.95.0 |
|
|
43
|
+
| an output guard that sees which tools ran — fail the run when the answer presents code but no code-execution tool ran; this run's tool calls (name, call id, outcome ok/error/not-run; never arguments or results) handed to the enforce check, per run, bounded | `AnswerValidationContext.toolCalls` + `AnswerToolCallsView` + `limits.maxToolCalls` | `src/answer-validation/toolLedger.ts` | 10.5.0 |
|
|
35
44
|
| turning a written operational procedure (a runbook, a triage playbook) into ONE agent tool whose every answer is EVIDENCE — coverage folded up from the inner tools it calls, rule name+version, verdict rows with GENERATED meanings, and the recorded walk as an artifact ticket, never bytes | `runbookAsTool` — dials: `procedure` (factory, invoked per call with `ctx.tools`) + `resultKind` (`'verdict/*'` arms the rowset projection; anything else ships spine + the chart's `report`) + `rules {name, version}` (default absent ⇒ `rule_version: 'undeclared'`) + `verdicts {decider, maxRows}` (default 50; `verdict_meanings` = statically declared branches + this run's rule labels + the DEFAULT branch's label, which reaches evidence only when the chart calls `decide(s, rules, {branch, label})` — fp ≥9.16.1, the default is chosen by NO rule so nothing else can name it, and inside a generated fan-out branch the static walk is blind too; an undeclared or blank label stays ABSENT from the map, never invented from a branch id, and there is deliberately NO caller-supplied meanings map) + `presentation` (`'prose'` default = ship `table` + `VERDICT_RENDER_NOTE` "output it VERBATIM"; `'panel'` = the HOST renders the rowset, so NO `table` key at all + `PANEL_RENDER_NOTE` "the rows are already on the reader's screen — do not reproduce them"; the rowset half is byte-identical across modes, `table` stays RESERVED in both, an unknown value THROWS at definition) + `walk {cap, recording}` (cap default 500; over-cap ⇒ control-flow projection, declared · `recording: true` or `{label, maxBytes}`, default OFF — ALSO files the inner chart's own `{snapshot, events, structure}` under `recording/run` and puts its ref on the spine as `walk.recording_ref`, because the ROW projection cannot be drawn; snapshot read from the REDACTED mirror so one `redact` means the same for both; over `maxBytes` (`DEFAULT_RECORDING_MAX_BYTES` = 5,000,000) it is REFUSED not truncated; every absence — no store / over size / unserializable / store threw — is STATED in `walk.recording_note`, and the four `recording_*` fields are absent entirely when the dial is off) + `composedOf` (drift-checked at agent BUILD) + kept `recorders`/`keepRecord`/`keepRecordLimit`/`redact`; reserved state keys `verdicts`/`coverage`/`report` (the `report` bag lands BESIDE the spine, never over it — a report field spelling `af_coverage`/`af_provenance`/`rule_version`/`walk`/`report_note` or a live projection key is discarded and NAMED in `result.report_note`; precedence is explicit in `report.ts`, never spread order); inner `absent()` passes through VERBATIM unless the call said `allowAbsent`; walk kind `recording/chart-walk` + `walk_segment` discriminant | `src/core/runbook/` | 9.76.0, recording 9.79.0 |
|
|
36
|
-
| speaking MCP from a BROWSER — the SDK is browser-clean (its client + streamableHttp bundle at `platform:'browser'` with zero `node:` edges and never pull in `client/stdio.js`); the one barrier was that `lazyRequire` gets CALLED there, so the fix is to let the caller supply what the loader would have found | `mcpClient({ sdk })` (`McpSdk` = the two SDK modules you imported statically; the library STILL builds the transport, so headers/fetch/gateway vending/`retryOnThrottle`/`_meta` all keep working) · `mcpClient({ connection })` (`McpConnection` = listTools/callTool/close, deliberately NO `connect` — you already did; the only arm that reaches the SDK's `jsonSchemaValidator`, i.e. CSP) + `McpConnectionOptions`; `refuseConflictingOptions` REFUSES at construction every option a transport would have consumed, naming where it moved (a knob naming a behaviour that no longer happens is the defect class); `transportUrl` resolves a relative `url` against `globalThis.location.href` (absolute takes the identical branch, Node refuses by name); `sdkLoadFailure` classifies the seven load sites so a browser is never told to install a package it has (resolution failure ⇒
|
|
45
|
+
| speaking MCP from a BROWSER — the SDK is browser-clean (its client + streamableHttp bundle at `platform:'browser'` with zero `node:` edges and never pull in `client/stdio.js`); the one barrier was that `lazyRequire` gets CALLED there, so the fix is to let the caller supply what the loader would have found | `mcpClient({ sdk })` (`McpSdk` = the two SDK modules you imported statically; the library STILL builds the transport, so headers/fetch/gateway vending/`retryOnThrottle`/`_meta` all keep working) · `mcpClient({ connection })` (`McpConnection` = listTools/callTool/close, deliberately NO `connect` — you already did; the only arm that reaches the SDK's `jsonSchemaValidator`, i.e. CSP) + `McpConnectionOptions`; `refuseConflictingOptions` REFUSES at construction every option a transport would have consumed, naming where it moved (a knob naming a behaviour that no longer happens is the defect class); `transportUrl` resolves a relative `url` against `globalThis.location.href` (absolute takes the identical branch, Node refuses by name); `sdkLoadFailure` classifies the seven load sites so a browser is never told to install a package it has (resolution failure ⇒ the site's own absent-package message, which names the `sdk` hook); `retryingFetch` + `ThrottleFetch` promoted out of `@internal` so the connection arm keeps its 429 handling. stdio keeps `lazyRequire` FOREVER — it spawns a subprocess. ZERO packaging change: no subpath, no `browser` condition (TypeScript is blind to it), peer stays optional (no literal dynamic `import()`). Fenced by `test/mcp/browserGraph.test.ts` | `src/mcp/` | 9.81.0 |
|
|
37
46
|
| calling ANOTHER registered tool from inside a tool's `execute` — composition over the agent's own dispatch map instead of importing the module and building a second query stack | `agentToolDispatch` + `ctx.tools` (ToolDispatch has/call) — sees static and skill-carried tools, NEVER ToolProvider-delivered ones (no build-time list, the 9.72.0 caveat); inner calls get the outer facts with hasArtifacts false and a derived toolCallId, `needs` resolved fail-closed non-interactively, `checkIn` and `wants` tools refused by name, no nested dispatch; declare ingredients via `composedOf` (and `gates` for a pausing procedure) — both travel MCP `_meta` | `src/core/agent/toolDispatch.ts` | 9.76.0 |
|
|
38
47
|
| a tool returning numbers WITH the caveats that make them honest — interval/aggregation grain, is-it-a-counter, when the world was measured, which ground was NOT covered — as typed data the model reads compactly and the record keeps whole | `describedResult()` + `tools.semantics_declared` (model sees `semanticsForModel` projection; `coverage` field absorbed by the coverage()/absent() channel; the old `semantic()` declaration door was removed in 10.0.0) | `src/semantics/` | 9.53.0 |
|
|
39
48
|
| the same typed tool result declared in ONE spelling — camelCase `measuredAt`/`isCounter`/`filterNote`, respelled to the unchanged snake_case wire — with a missing source a COMPILE error; which result helper to return (rows → describedResult, a value with limits → coverage, nothing → absent); an EMPTY data list refused with the branch to write ("if nothing matched, return absent({ what, checked }) instead"), the declaration door and the gate | `describedResult()` + `DescribedResultDeclaration` (`provenance` required whenever `series`/`facts` is present; the snake_case spelling refused, naming the camelCase one) | `src/semantics/described.ts` | 9.119.0, empty-list refusal 9.125.0 |
|
|
@@ -134,6 +143,8 @@ not in this table, search `src/index.ts` for the nearest noun before writing cod
|
|
|
134
143
|
| a per-request deadline on your gateway provider, so a gateway that never answers (or a stream that goes silent) fails typed instead of hanging the run: bounds the response headers, a `complete()` body and EACH stream read (first chunk, then every gap — a stream that keeps talking is never cut off); a miss aborts the request and raises `reason: 'timeout'`, `retryable: true` (withRetry re-opens it while no chunk reached the caller); the caller's `req.signal` still wins; omitted = the fetch gets exactly `req.signal` as before | `timeoutMs` + `invokeModelGateway` + `InvokeModelGatewayError` (`reason: 'timeout'`) | `src/adapters/llm/InvokeModelGatewayProvider.ts` | 9.130.0 |
|
|
135
144
|
| Replay a saved complete domain-event batch with the same fork grouping and nested drill projection as live run steps | `ingestDomainEvents` + `getSteps` + `clear` | `src/recorders/observability/RunStepRecorder.ts` | 10.0.0 |
|
|
136
145
|
| experimental, not yet validated in real use: additive saved-record shapes for scoped historical verification observations; paired checkpoint readers and writers validate retained evidence and counters without judging old observations again, and native continuation refuses an unarmed evidence carrier; protocol only — no runtime verifier, model declaration parser or answer badge is enabled | `FindingsRow` + optional `AgentRunCheckpoint.claimVerification` | `src/core/` | 10.2.0 |
|
|
146
|
+
| an AG-UI frontend (`@ag-ui/client`, CopilotKit, the AG-UI Dojo) reading an agentfootprint run with no glue code — the run's served events translated into AG-UI 1.0 events: streamed text, tool calls with arguments and results, reasoning, ReAct iterations and compositions as steps, a nested agent (a `Sequence` step, a `Parallel` branch) as a sub-agent with its parent links, a pause as an interrupt, a failure as `RUN_ERROR` in the record's words; `CUSTOM` an allow-list of events with projected fields (`AG_UI_CUSTOM_EVENTS`), reasoning only on request; ids minted from the record's address under the request's run id (unique across a thread when branches reuse a provider's tool-call id); nothing a redaction policy hides on the wire, at any depth; framed by the official `@ag-ui/encoder` (optional peer, loaded only when a framing is built) | `agUiSerializer` + `agUiSse` + `AG_UI_CUSTOM_EVENTS` (`agentfootprint/ag-ui`) + `RunTranslation` / `RunSettlement` (the port, `agentfootprint/hosting`) | `src/ag-ui/` | 10.4.0 |
|
|
147
|
+
| writing a run's Server-Sent Events in a different frame shape — the framing is a strategy: `toSSE({ framing })`, default the frames it always wrote | `SseFraming` + `agentfootprintSse` (`agentfootprint/observe`) | `src/hosting/stream.ts` | 10.4.0 |
|
|
137
148
|
|
|
138
149
|
**Maintaining this table:** a new public capability adds a row, in the same
|
|
139
150
|
change that adds the capability. `test/docs/capability-index.test.ts` fails if a
|
package/README.md
CHANGED
|
@@ -228,6 +228,50 @@ Build the entire app against in-memory mocks with **zero API cost**, then swap r
|
|
|
228
228
|
|
|
229
229
|
The flowchart, recorders, and tests don't change between dev and prod.
|
|
230
230
|
|
|
231
|
+
## Any AG-UI frontend — no glue code
|
|
232
|
+
|
|
233
|
+
AG-UI frontends (CopilotKit, the AG-UI Dojo, any `@ag-ui/client` app) all speak one protocol: POST a `RunAgentInput`, read a stream of typed events. An agentfootprint run is already a stream of typed events, so the only missing piece is the adapter between them — `agUi()`. Hand it to `streamHandler`, a plain `(request) => Promise<Response>` that mounts in Next.js, Hono, Bun, Deno or Workers, and the frontend shows streamed text, tool calls with their results, steps and sub-agents.
|
|
234
|
+
|
|
235
|
+
A browser request is untrusted, so the handler decides nothing on its word: it builds a fresh agent for every request, binds the thread to the caller *your* verifier proves (`verifiedThreads` — a checked bearer token or sign-in, never a header read as a name), keeps the conversation on the server (`sessions`) and takes only the person's newest message from the page. It reads only what the run *serves*, so anything your redaction policy hides never reaches the browser.
|
|
236
|
+
|
|
237
|
+
```ts
|
|
238
|
+
// npm install agentfootprint @ag-ui/core @ag-ui/encoder
|
|
239
|
+
import { Agent } from 'agentfootprint';
|
|
240
|
+
import { mock } from 'agentfootprint/providers';
|
|
241
|
+
import { memorySessions, streamHandler, verifiedThreads } from 'agentfootprint/hosting';
|
|
242
|
+
import { agUi } from 'agentfootprint/ag-ui';
|
|
243
|
+
|
|
244
|
+
// Who is calling — PROVEN, not claimed. A real app: jwksIdentity({ jwksUrl, issuer, audience })
|
|
245
|
+
// from 'agentfootprint/security'. This demo verifier knows one token.
|
|
246
|
+
const verify = async (token: string) => {
|
|
247
|
+
if (token !== 'demo-token-for-ada') throw new Error('unknown token');
|
|
248
|
+
return { userId: 'ada' };
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
const handler = streamHandler({
|
|
252
|
+
// A fresh agent per request — nothing one caller's run leaves behind reaches another.
|
|
253
|
+
agent: () =>
|
|
254
|
+
Agent.create({ provider: mock({ reply: 'Hello from agentfootprint.' }), model: 'mock' })
|
|
255
|
+
.system('Be brief.')
|
|
256
|
+
.build(),
|
|
257
|
+
adapter: agUi(),
|
|
258
|
+
threads: verifiedThreads({ verify }), // no valid token → 401; the thread is the caller's own
|
|
259
|
+
sessions: memorySessions(), // the conversation lives on the server (one turn per thread, per process)
|
|
260
|
+
}); // Next.js: export const POST = handler;
|
|
261
|
+
|
|
262
|
+
// What an AG-UI frontend sends, and what it reads back:
|
|
263
|
+
const response = await handler(
|
|
264
|
+
new Request('http://localhost/agent', {
|
|
265
|
+
method: 'POST',
|
|
266
|
+
headers: { 'content-type': 'application/json', authorization: 'Bearer demo-token-for-ada' },
|
|
267
|
+
body: JSON.stringify({ threadId: 't1', runId: 'r1', messages: [{ id: 'u1', role: 'user', content: 'Hi' }] }),
|
|
268
|
+
}),
|
|
269
|
+
);
|
|
270
|
+
console.log(await response.text()); // data: {"type":"RUN_STARTED",…} … data: {"type":"RUN_FINISHED",…}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Two turns with a tool call, end to end: [`examples/deploy/ag-ui.ts`](examples/deploy/ag-ui.ts) · frontend tools, interrupts, what a page may not decide, and what goes out: [AG-UI frontends](https://agentfootprint.dev/docs/infrastructure/ag-ui/).
|
|
274
|
+
|
|
231
275
|
## Building with an AI coding assistant
|
|
232
276
|
|
|
233
277
|
agentfootprint is written to be used — and maintained — by coding agents.
|
|
@@ -34,9 +34,9 @@ Two more absences: there is **no runtime force-stop governor** (`routeRecorder()
|
|
|
34
34
|
only *labels* a spinning run; `maxIterations` is the hard stop), and there is **no
|
|
35
35
|
automatic re-delivery of an ageing skill body** (the inert `refreshPolicy` was removed in 10.0.0 — use `surfaceMode: 'both'`).
|
|
36
36
|
|
|
37
|
-
## Subpath map —
|
|
37
|
+
## Subpath map — 19 doors
|
|
38
38
|
|
|
39
|
-
`agentfootprint` (main barrel: `Agent`, `LLMCall`, `defineTool`, control flow, patterns, `defineRAG`, pause/resume) · `/providers` (`mock`, `anthropic`, `openai`, `bedrock`, `ollama`, `mcpClient`, embedders — every provider, so bundlers never walk the vendor SDKs from the main barrel) · `/context` (`defineSkill`, `defineFact`, `defineSteering`, `defineInstruction`, `skillGraph`, `skillsFromDir`, the scorers) · `/memory` (`defineMemory`, `InMemoryStore`, `mockEmbedder`, the stores) · `/rag` (stores + loaders; `defineRAG` itself is on the main barrel) · `/observe` (recorders, tracing, `RunStep`) · `/resilience` (provider decorators) · `/reliability` (only the reliability gate's distinct `CircuitOpenError`; rules live on `/resilience`) · `/cache` (prefix-cache strategies, chosen from the provider's declared `promptCaching` by `cacheStrategyFor`) · `/security` · `/hosting` · `/events` · `/skill-graph` (the routing layer with no framework attached, for a host that is not this agent) · `/recipes` (`defineAgentRecipe` — one named, versioned agent setup, applied with `.recipe()`) · `/maps` (`Claim<T>` and the map-engagement vocabulary behind `.maps()`) · `/classify` (the calibrated-classifier port: `Classifier`, `mockClassifier`) · `/ontology` (`defineOntology` — a declared map of the domain, mounted with `.ontology()`) · `/time` (`convertForTool` + `sugarForms` + `granularityMsOf` — the time layer's own answer to whether and how a tool reads a window, for an app outside a run; the steps `convertExact`, `convertWidened`, `periodFactProblem` too). `package.json` `exports` is the complete list; a path not on it does not resolve.
|
|
39
|
+
`agentfootprint` (main barrel: `Agent`, `LLMCall`, `defineTool`, control flow, patterns, `defineRAG`, pause/resume) · `/providers` (`mock`, `anthropic`, `openai`, `bedrock`, `ollama`, `mcpClient`, embedders — every provider, so bundlers never walk the vendor SDKs from the main barrel) · `/context` (`defineSkill`, `defineFact`, `defineSteering`, `defineInstruction`, `skillGraph`, `skillsFromDir`, the scorers) · `/memory` (`defineMemory`, `InMemoryStore`, `mockEmbedder`, the stores) · `/rag` (stores + loaders; `defineRAG` itself is on the main barrel) · `/observe` (recorders, tracing, `RunStep`) · `/resilience` (provider decorators) · `/reliability` (only the reliability gate's distinct `CircuitOpenError`; rules live on `/resilience`) · `/cache` (prefix-cache strategies, chosen from the provider's declared `promptCaching` by `cacheStrategyFor`) · `/security` · `/hosting` · `/events` · `/skill-graph` (the routing layer with no framework attached, for a host that is not this agent) · `/recipes` (`defineAgentRecipe` — one named, versioned agent setup, applied with `.recipe()`) · `/maps` (`Claim<T>` and the map-engagement vocabulary behind `.maps()`) · `/classify` (the calibrated-classifier port: `Classifier`, `mockClassifier`) · `/ontology` (`defineOntology` — a declared map of the domain, mounted with `.ontology()`) · `/time` (`convertForTool` + `sugarForms` + `granularityMsOf` — the time layer's own answer to whether and how a tool reads a window, for an app outside a run; the steps `convertExact`, `convertWidened`, `periodFactProblem` too) · `/ag-ui` (`agUi()` — the AG-UI adapter: `streamHandler({ agent: () => buildAgent(), adapter: agUi(), threads: verifiedThreads(identity), sessions })` from `/hosting` serves agents to any AG-UI frontend, a fresh agent per request, the thread bound to the VERIFIED caller; `agUiSerializer` + `agUiSse` for a transport of your own; framed by the optional peer `@ag-ui/encoder`). `package.json` `exports` is the complete list; a path not on it does not resolve.
|
|
40
40
|
|
|
41
41
|
## Core Concepts
|
|
42
42
|
|
|
@@ -8,18 +8,27 @@ Building Generative AI applications is mostly **context engineering** — decidi
|
|
|
8
8
|
import {
|
|
9
9
|
Agent, LLMCall, defineTool,
|
|
10
10
|
Sequence, Parallel, Conditional, Loop,
|
|
11
|
-
defineSkill, defineSteering, defineInstruction, defineFact,
|
|
12
|
-
defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
|
|
13
|
-
InMemoryStore, mockEmbedder,
|
|
14
|
-
anthropic, openai, bedrock, ollama, mock,
|
|
15
11
|
askHuman, pauseHere, isPaused,
|
|
16
|
-
withRetry, withFallback, resilientProvider,
|
|
17
12
|
} from 'agentfootprint';
|
|
13
|
+
import { defineSkill, defineSteering, defineInstruction, defineFact } from 'agentfootprint/context';
|
|
14
|
+
import {
|
|
15
|
+
defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
|
|
16
|
+
InMemoryStore, mockEmbedder,
|
|
17
|
+
} from 'agentfootprint/memory';
|
|
18
|
+
import { anthropic, openai, bedrock, ollama, mock, mcpClient } from 'agentfootprint/providers';
|
|
19
|
+
import { withRetry, withFallback, fallbackProvider } from 'agentfootprint/resilience';
|
|
18
20
|
```
|
|
19
21
|
|
|
20
|
-
**
|
|
21
|
-
|
|
22
|
-
`
|
|
22
|
+
**Import each name from the door that exports it.** `package.json` `exports` is
|
|
23
|
+
exhaustive: a path that is not a door does not resolve, and a name imported from
|
|
24
|
+
a door that does not export it fails to compile (and is `undefined` under
|
|
25
|
+
`require`). The core API is on `agentfootprint`. LLM providers, embedders,
|
|
26
|
+
`mcpClient` and MCP transports such as `agentCoreRuntimeMcpTransport` are on
|
|
27
|
+
`agentfootprint/providers`. Memory, its stores included, is on
|
|
28
|
+
`agentfootprint/memory`, context engineering on `agentfootprint/context`,
|
|
29
|
+
resilience on `agentfootprint/resilience`, and observability on
|
|
30
|
+
`agentfootprint/observe`. Paths such as `agentfootprint/instructions` and
|
|
31
|
+
`agentfootprint/explain` do not exist.
|
|
23
32
|
|
|
24
33
|
## The 6-layer mental model
|
|
25
34
|
|
|
@@ -57,7 +66,8 @@ Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool
|
|
|
57
66
|
### Hello agent — mock-first
|
|
58
67
|
|
|
59
68
|
```typescript
|
|
60
|
-
import { Agent
|
|
69
|
+
import { Agent } from 'agentfootprint';
|
|
70
|
+
import { mock } from 'agentfootprint/providers';
|
|
61
71
|
|
|
62
72
|
const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
|
|
63
73
|
.system('You are a helpful assistant.')
|
|
@@ -135,7 +145,8 @@ Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECA
|
|
|
135
145
|
### MCP (Model Context Protocol — connect to external MCP servers)
|
|
136
146
|
|
|
137
147
|
```typescript
|
|
138
|
-
import { Agent
|
|
148
|
+
import { Agent } from 'agentfootprint';
|
|
149
|
+
import { mcpClient } from 'agentfootprint/providers';
|
|
139
150
|
|
|
140
151
|
const slack = await mcpClient({
|
|
141
152
|
name: 'slack',
|
|
@@ -189,7 +200,7 @@ const tot = Parallel.create()
|
|
|
189
200
|
## Anti-patterns — Don't
|
|
190
201
|
|
|
191
202
|
- ❌ `agent.run('string')` → use `agent.run({ message: '...', identity? })`
|
|
192
|
-
- ❌
|
|
203
|
+
- ❌ Paths that are not doors: `agentfootprint/instructions`, `agentfootprint/explain` (see `package.json` `exports`)
|
|
193
204
|
- ❌ `.memoryPipeline(pipeline)` (v1) → use `.memory(defineMemory({...}))`
|
|
194
205
|
- ❌ Shipping a `ReflexionAgent` class → compose `Sequence(Agent, critique-LLM, Agent)`
|
|
195
206
|
- ❌ Closures or class instances in scope (can't be cloned)
|
|
@@ -8,18 +8,27 @@ Building Generative AI applications is mostly **context engineering** — decidi
|
|
|
8
8
|
import {
|
|
9
9
|
Agent, LLMCall, defineTool,
|
|
10
10
|
Sequence, Parallel, Conditional, Loop,
|
|
11
|
-
defineSkill, defineSteering, defineInstruction, defineFact,
|
|
12
|
-
defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
|
|
13
|
-
InMemoryStore, mockEmbedder,
|
|
14
|
-
anthropic, openai, bedrock, ollama, mock,
|
|
15
11
|
askHuman, pauseHere, isPaused,
|
|
16
|
-
withRetry, withFallback, resilientProvider,
|
|
17
12
|
} from 'agentfootprint';
|
|
13
|
+
import { defineSkill, defineSteering, defineInstruction, defineFact } from 'agentfootprint/context';
|
|
14
|
+
import {
|
|
15
|
+
defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
|
|
16
|
+
InMemoryStore, mockEmbedder,
|
|
17
|
+
} from 'agentfootprint/memory';
|
|
18
|
+
import { anthropic, openai, bedrock, ollama, mock, mcpClient } from 'agentfootprint/providers';
|
|
19
|
+
import { withRetry, withFallback, fallbackProvider } from 'agentfootprint/resilience';
|
|
18
20
|
```
|
|
19
21
|
|
|
20
|
-
**
|
|
21
|
-
|
|
22
|
-
`
|
|
22
|
+
**Import each name from the door that exports it.** `package.json` `exports` is
|
|
23
|
+
exhaustive: a path that is not a door does not resolve, and a name imported from
|
|
24
|
+
a door that does not export it fails to compile (and is `undefined` under
|
|
25
|
+
`require`). The core API is on `agentfootprint`. LLM providers, embedders,
|
|
26
|
+
`mcpClient` and MCP transports such as `agentCoreRuntimeMcpTransport` are on
|
|
27
|
+
`agentfootprint/providers`. Memory, its stores included, is on
|
|
28
|
+
`agentfootprint/memory`, context engineering on `agentfootprint/context`,
|
|
29
|
+
resilience on `agentfootprint/resilience`, and observability on
|
|
30
|
+
`agentfootprint/observe`. Paths such as `agentfootprint/instructions` and
|
|
31
|
+
`agentfootprint/explain` do not exist.
|
|
23
32
|
|
|
24
33
|
## The 6-layer mental model
|
|
25
34
|
|
|
@@ -57,7 +66,8 @@ Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool
|
|
|
57
66
|
### Hello agent — mock-first
|
|
58
67
|
|
|
59
68
|
```typescript
|
|
60
|
-
import { Agent
|
|
69
|
+
import { Agent } from 'agentfootprint';
|
|
70
|
+
import { mock } from 'agentfootprint/providers';
|
|
61
71
|
|
|
62
72
|
const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
|
|
63
73
|
.system('You are a helpful assistant.')
|
|
@@ -135,7 +145,8 @@ Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECA
|
|
|
135
145
|
### MCP (Model Context Protocol — connect to external MCP servers)
|
|
136
146
|
|
|
137
147
|
```typescript
|
|
138
|
-
import { Agent
|
|
148
|
+
import { Agent } from 'agentfootprint';
|
|
149
|
+
import { mcpClient } from 'agentfootprint/providers';
|
|
139
150
|
|
|
140
151
|
const slack = await mcpClient({
|
|
141
152
|
name: 'slack',
|
|
@@ -189,7 +200,7 @@ const tot = Parallel.create()
|
|
|
189
200
|
## Anti-patterns — Don't
|
|
190
201
|
|
|
191
202
|
- ❌ `agent.run('string')` → use `agent.run({ message: '...', identity? })`
|
|
192
|
-
- ❌
|
|
203
|
+
- ❌ Paths that are not doors: `agentfootprint/instructions`, `agentfootprint/explain` (see `package.json` `exports`)
|
|
193
204
|
- ❌ `.memoryPipeline(pipeline)` (v1) → use `.memory(defineMemory({...}))`
|
|
194
205
|
- ❌ Shipping a `ReflexionAgent` class → compose `Sequence(Agent, critique-LLM, Agent)`
|
|
195
206
|
- ❌ Closures or class instances in scope (can't be cloned)
|
|
@@ -8,18 +8,27 @@ Building Generative AI applications is mostly **context engineering** — decidi
|
|
|
8
8
|
import {
|
|
9
9
|
Agent, LLMCall, defineTool,
|
|
10
10
|
Sequence, Parallel, Conditional, Loop,
|
|
11
|
-
defineSkill, defineSteering, defineInstruction, defineFact,
|
|
12
|
-
defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
|
|
13
|
-
InMemoryStore, mockEmbedder,
|
|
14
|
-
anthropic, openai, bedrock, ollama, mock,
|
|
15
11
|
askHuman, pauseHere, isPaused,
|
|
16
|
-
withRetry, withFallback, resilientProvider,
|
|
17
12
|
} from 'agentfootprint';
|
|
13
|
+
import { defineSkill, defineSteering, defineInstruction, defineFact } from 'agentfootprint/context';
|
|
14
|
+
import {
|
|
15
|
+
defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
|
|
16
|
+
InMemoryStore, mockEmbedder,
|
|
17
|
+
} from 'agentfootprint/memory';
|
|
18
|
+
import { anthropic, openai, bedrock, ollama, mock, mcpClient } from 'agentfootprint/providers';
|
|
19
|
+
import { withRetry, withFallback, fallbackProvider } from 'agentfootprint/resilience';
|
|
18
20
|
```
|
|
19
21
|
|
|
20
|
-
**
|
|
21
|
-
|
|
22
|
-
`
|
|
22
|
+
**Import each name from the door that exports it.** `package.json` `exports` is
|
|
23
|
+
exhaustive: a path that is not a door does not resolve, and a name imported from
|
|
24
|
+
a door that does not export it fails to compile (and is `undefined` under
|
|
25
|
+
`require`). The core API is on `agentfootprint`. LLM providers, embedders,
|
|
26
|
+
`mcpClient` and MCP transports such as `agentCoreRuntimeMcpTransport` are on
|
|
27
|
+
`agentfootprint/providers`. Memory, its stores included, is on
|
|
28
|
+
`agentfootprint/memory`, context engineering on `agentfootprint/context`,
|
|
29
|
+
resilience on `agentfootprint/resilience`, and observability on
|
|
30
|
+
`agentfootprint/observe`. Paths such as `agentfootprint/instructions` and
|
|
31
|
+
`agentfootprint/explain` do not exist.
|
|
23
32
|
|
|
24
33
|
## The 6-layer mental model
|
|
25
34
|
|
|
@@ -57,7 +66,8 @@ Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool
|
|
|
57
66
|
### Hello agent — mock-first
|
|
58
67
|
|
|
59
68
|
```typescript
|
|
60
|
-
import { Agent
|
|
69
|
+
import { Agent } from 'agentfootprint';
|
|
70
|
+
import { mock } from 'agentfootprint/providers';
|
|
61
71
|
|
|
62
72
|
const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
|
|
63
73
|
.system('You are a helpful assistant.')
|
|
@@ -135,7 +145,8 @@ Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECA
|
|
|
135
145
|
### MCP (Model Context Protocol — connect to external MCP servers)
|
|
136
146
|
|
|
137
147
|
```typescript
|
|
138
|
-
import { Agent
|
|
148
|
+
import { Agent } from 'agentfootprint';
|
|
149
|
+
import { mcpClient } from 'agentfootprint/providers';
|
|
139
150
|
|
|
140
151
|
const slack = await mcpClient({
|
|
141
152
|
name: 'slack',
|
|
@@ -189,7 +200,7 @@ const tot = Parallel.create()
|
|
|
189
200
|
## Anti-patterns — Don't
|
|
190
201
|
|
|
191
202
|
- ❌ `agent.run('string')` → use `agent.run({ message: '...', identity? })`
|
|
192
|
-
- ❌
|
|
203
|
+
- ❌ Paths that are not doors: `agentfootprint/instructions`, `agentfootprint/explain` (see `package.json` `exports`)
|
|
193
204
|
- ❌ `.memoryPipeline(pipeline)` (v1) → use `.memory(defineMemory({...}))`
|
|
194
205
|
- ❌ Shipping a `ReflexionAgent` class → compose `Sequence(Agent, critique-LLM, Agent)`
|
|
195
206
|
- ❌ Closures or class instances in scope (can't be cloned)
|
|
@@ -8,18 +8,27 @@ Building Generative AI applications is mostly **context engineering** — decidi
|
|
|
8
8
|
import {
|
|
9
9
|
Agent, LLMCall, defineTool,
|
|
10
10
|
Sequence, Parallel, Conditional, Loop,
|
|
11
|
-
defineSkill, defineSteering, defineInstruction, defineFact,
|
|
12
|
-
defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
|
|
13
|
-
InMemoryStore, mockEmbedder,
|
|
14
|
-
anthropic, openai, bedrock, ollama, mock,
|
|
15
11
|
askHuman, pauseHere, isPaused,
|
|
16
|
-
withRetry, withFallback, resilientProvider,
|
|
17
12
|
} from 'agentfootprint';
|
|
13
|
+
import { defineSkill, defineSteering, defineInstruction, defineFact } from 'agentfootprint/context';
|
|
14
|
+
import {
|
|
15
|
+
defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
|
|
16
|
+
InMemoryStore, mockEmbedder,
|
|
17
|
+
} from 'agentfootprint/memory';
|
|
18
|
+
import { anthropic, openai, bedrock, ollama, mock, mcpClient } from 'agentfootprint/providers';
|
|
19
|
+
import { withRetry, withFallback, fallbackProvider } from 'agentfootprint/resilience';
|
|
18
20
|
```
|
|
19
21
|
|
|
20
|
-
**
|
|
21
|
-
|
|
22
|
-
`
|
|
22
|
+
**Import each name from the door that exports it.** `package.json` `exports` is
|
|
23
|
+
exhaustive: a path that is not a door does not resolve, and a name imported from
|
|
24
|
+
a door that does not export it fails to compile (and is `undefined` under
|
|
25
|
+
`require`). The core API is on `agentfootprint`. LLM providers, embedders,
|
|
26
|
+
`mcpClient` and MCP transports such as `agentCoreRuntimeMcpTransport` are on
|
|
27
|
+
`agentfootprint/providers`. Memory, its stores included, is on
|
|
28
|
+
`agentfootprint/memory`, context engineering on `agentfootprint/context`,
|
|
29
|
+
resilience on `agentfootprint/resilience`, and observability on
|
|
30
|
+
`agentfootprint/observe`. Paths such as `agentfootprint/instructions` and
|
|
31
|
+
`agentfootprint/explain` do not exist.
|
|
23
32
|
|
|
24
33
|
## The 6-layer mental model
|
|
25
34
|
|
|
@@ -57,7 +66,8 @@ Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool
|
|
|
57
66
|
### Hello agent — mock-first
|
|
58
67
|
|
|
59
68
|
```typescript
|
|
60
|
-
import { Agent
|
|
69
|
+
import { Agent } from 'agentfootprint';
|
|
70
|
+
import { mock } from 'agentfootprint/providers';
|
|
61
71
|
|
|
62
72
|
const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
|
|
63
73
|
.system('You are a helpful assistant.')
|
|
@@ -135,7 +145,8 @@ Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECA
|
|
|
135
145
|
### MCP (Model Context Protocol — connect to external MCP servers)
|
|
136
146
|
|
|
137
147
|
```typescript
|
|
138
|
-
import { Agent
|
|
148
|
+
import { Agent } from 'agentfootprint';
|
|
149
|
+
import { mcpClient } from 'agentfootprint/providers';
|
|
139
150
|
|
|
140
151
|
const slack = await mcpClient({
|
|
141
152
|
name: 'slack',
|
|
@@ -189,7 +200,7 @@ const tot = Parallel.create()
|
|
|
189
200
|
## Anti-patterns — Don't
|
|
190
201
|
|
|
191
202
|
- ❌ `agent.run('string')` → use `agent.run({ message: '...', identity? })`
|
|
192
|
-
- ❌
|
|
203
|
+
- ❌ Paths that are not doors: `agentfootprint/instructions`, `agentfootprint/explain` (see `package.json` `exports`)
|
|
193
204
|
- ❌ `.memoryPipeline(pipeline)` (v1) → use `.memory(defineMemory({...}))`
|
|
194
205
|
- ❌ Shipping a `ReflexionAgent` class → compose `Sequence(Agent, critique-LLM, Agent)`
|
|
195
206
|
- ❌ Closures or class instances in scope (can't be cloned)
|
|
@@ -8,18 +8,27 @@ Building Generative AI applications is mostly **context engineering** — decidi
|
|
|
8
8
|
import {
|
|
9
9
|
Agent, LLMCall, defineTool,
|
|
10
10
|
Sequence, Parallel, Conditional, Loop,
|
|
11
|
-
defineSkill, defineSteering, defineInstruction, defineFact,
|
|
12
|
-
defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
|
|
13
|
-
InMemoryStore, mockEmbedder,
|
|
14
|
-
anthropic, openai, bedrock, ollama, mock,
|
|
15
11
|
askHuman, pauseHere, isPaused,
|
|
16
|
-
withRetry, withFallback, resilientProvider,
|
|
17
12
|
} from 'agentfootprint';
|
|
13
|
+
import { defineSkill, defineSteering, defineInstruction, defineFact } from 'agentfootprint/context';
|
|
14
|
+
import {
|
|
15
|
+
defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
|
|
16
|
+
InMemoryStore, mockEmbedder,
|
|
17
|
+
} from 'agentfootprint/memory';
|
|
18
|
+
import { anthropic, openai, bedrock, ollama, mock, mcpClient } from 'agentfootprint/providers';
|
|
19
|
+
import { withRetry, withFallback, fallbackProvider } from 'agentfootprint/resilience';
|
|
18
20
|
```
|
|
19
21
|
|
|
20
|
-
**
|
|
21
|
-
|
|
22
|
-
`
|
|
22
|
+
**Import each name from the door that exports it.** `package.json` `exports` is
|
|
23
|
+
exhaustive: a path that is not a door does not resolve, and a name imported from
|
|
24
|
+
a door that does not export it fails to compile (and is `undefined` under
|
|
25
|
+
`require`). The core API is on `agentfootprint`. LLM providers, embedders,
|
|
26
|
+
`mcpClient` and MCP transports such as `agentCoreRuntimeMcpTransport` are on
|
|
27
|
+
`agentfootprint/providers`. Memory, its stores included, is on
|
|
28
|
+
`agentfootprint/memory`, context engineering on `agentfootprint/context`,
|
|
29
|
+
resilience on `agentfootprint/resilience`, and observability on
|
|
30
|
+
`agentfootprint/observe`. Paths such as `agentfootprint/instructions` and
|
|
31
|
+
`agentfootprint/explain` do not exist.
|
|
23
32
|
|
|
24
33
|
## The 6-layer mental model
|
|
25
34
|
|
|
@@ -57,7 +66,8 @@ Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool
|
|
|
57
66
|
### Hello agent — mock-first
|
|
58
67
|
|
|
59
68
|
```typescript
|
|
60
|
-
import { Agent
|
|
69
|
+
import { Agent } from 'agentfootprint';
|
|
70
|
+
import { mock } from 'agentfootprint/providers';
|
|
61
71
|
|
|
62
72
|
const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
|
|
63
73
|
.system('You are a helpful assistant.')
|
|
@@ -135,7 +145,8 @@ Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECA
|
|
|
135
145
|
### MCP (Model Context Protocol — connect to external MCP servers)
|
|
136
146
|
|
|
137
147
|
```typescript
|
|
138
|
-
import { Agent
|
|
148
|
+
import { Agent } from 'agentfootprint';
|
|
149
|
+
import { mcpClient } from 'agentfootprint/providers';
|
|
139
150
|
|
|
140
151
|
const slack = await mcpClient({
|
|
141
152
|
name: 'slack',
|
|
@@ -189,7 +200,7 @@ const tot = Parallel.create()
|
|
|
189
200
|
## Anti-patterns — Don't
|
|
190
201
|
|
|
191
202
|
- ❌ `agent.run('string')` → use `agent.run({ message: '...', identity? })`
|
|
192
|
-
- ❌
|
|
203
|
+
- ❌ Paths that are not doors: `agentfootprint/instructions`, `agentfootprint/explain` (see `package.json` `exports`)
|
|
193
204
|
- ❌ `.memoryPipeline(pipeline)` (v1) → use `.memory(defineMemory({...}))`
|
|
194
205
|
- ❌ Shipping a `ReflexionAgent` class → compose `Sequence(Agent, critique-LLM, Agent)`
|
|
195
206
|
- ❌ Closures or class instances in scope (can't be cloned)
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
exports.AnthropicProvider = exports.anthropic = void 0;
|
|
22
22
|
const lazyRequire_js_1 = require("../../lib/lazyRequire.js");
|
|
23
|
+
const abort_js_1 = require("../../lib/abort.js");
|
|
23
24
|
const contextWindow_js_1 = require("../../provider-contract/contextWindow.js");
|
|
24
25
|
const retryAfter_js_1 = require("./retryAfter.js");
|
|
25
26
|
const anthropicCacheWire_js_1 = require("./anthropicCacheWire.js");
|
|
@@ -99,13 +100,19 @@ function anthropic(options = {}) {
|
|
|
99
100
|
// the same function.
|
|
100
101
|
thinkingMode: (model) => modeOf(modelOf(model)),
|
|
101
102
|
async complete(req, hooks) {
|
|
103
|
+
// A cancelled call sends nothing (lib/abort.ts, law 1).
|
|
104
|
+
(0, abort_js_1.throwIfAborted)(req.signal);
|
|
102
105
|
const preparation = (0, anthropicThinkingReplay_js_1.prepareAnthropicReplay)(req, modelOf(req.model), 'anthropic');
|
|
103
106
|
const params = buildParams(preparation.request);
|
|
104
107
|
const bindingFactory = (0, anthropicThinkingReplay_js_1.thinkingReplayBinding)(params, params.model);
|
|
105
108
|
if (preparation.omissions.length > 0)
|
|
106
109
|
hooks?.onReplayPrepared?.(preparation);
|
|
107
110
|
try {
|
|
108
|
-
|
|
111
|
+
// The signal rides the SDK's request options, so an abort cancels the
|
|
112
|
+
// HTTP request itself; the race refuses an answer that lands after it.
|
|
113
|
+
const message = await (0, abort_js_1.untilAborted)(req.signal
|
|
114
|
+
? client.messages.create(params, { signal: req.signal })
|
|
115
|
+
: client.messages.create(params), req.signal);
|
|
109
116
|
// Manifest read from the FINAL params — after tool mapping and cache
|
|
110
117
|
// markers — because the whole point is catching what the body says,
|
|
111
118
|
// not what the request intended (wireManifest.ts).
|
|
@@ -116,10 +123,11 @@ function anthropic(options = {}) {
|
|
|
116
123
|
};
|
|
117
124
|
}
|
|
118
125
|
catch (err) {
|
|
119
|
-
throw wrapError(err);
|
|
126
|
+
throw wrapError(err, req.signal);
|
|
120
127
|
}
|
|
121
128
|
},
|
|
122
129
|
async *stream(req, hooks) {
|
|
130
|
+
(0, abort_js_1.throwIfAborted)(req.signal);
|
|
123
131
|
const preparation = (0, anthropicThinkingReplay_js_1.prepareAnthropicReplay)(req, modelOf(req.model), 'anthropic');
|
|
124
132
|
const params = buildParams(preparation.request);
|
|
125
133
|
const bindingFactory = (0, anthropicThinkingReplay_js_1.thinkingReplayBinding)(params, params.model);
|
|
@@ -127,15 +135,20 @@ function anthropic(options = {}) {
|
|
|
127
135
|
hooks?.onReplayPrepared?.(preparation);
|
|
128
136
|
let stream;
|
|
129
137
|
try {
|
|
130
|
-
stream =
|
|
138
|
+
stream = req.signal
|
|
139
|
+
? client.messages.stream(params, { signal: req.signal })
|
|
140
|
+
: client.messages.stream(params);
|
|
131
141
|
}
|
|
132
142
|
catch (err) {
|
|
133
|
-
throw wrapError(err);
|
|
143
|
+
throw wrapError(err, req.signal);
|
|
134
144
|
}
|
|
145
|
+
const opened = stream;
|
|
135
146
|
let tokenIndex = 0;
|
|
136
147
|
const toolArguments = new anthropicToolArguments_js_1.AnthropicToolArguments();
|
|
137
148
|
try {
|
|
138
|
-
|
|
149
|
+
// An abort closes the SDK stream and ends this loop at once, even
|
|
150
|
+
// when a read is still pending (lib/abort.ts, laws 2–3).
|
|
151
|
+
for await (const event of (0, abort_js_1.abortableIterable)(opened, req.signal, () => opened.abort?.())) {
|
|
139
152
|
toolArguments.observe(event);
|
|
140
153
|
if (event.type === 'content_block_delta' &&
|
|
141
154
|
event.delta?.type === 'text_delta' &&
|
|
@@ -144,7 +157,7 @@ function anthropic(options = {}) {
|
|
|
144
157
|
tokenIndex++;
|
|
145
158
|
}
|
|
146
159
|
}
|
|
147
|
-
const final = await
|
|
160
|
+
const final = await (0, abort_js_1.untilAborted)(opened.finalMessage(), req.signal);
|
|
148
161
|
toolArguments.assertTerminal(final.content.some((block) => block.type === 'tool_use'));
|
|
149
162
|
const argumentFailures = new Map();
|
|
150
163
|
const checkedMessage = {
|
|
@@ -166,7 +179,7 @@ function anthropic(options = {}) {
|
|
|
166
179
|
yield { tokenIndex, content: '', done: true, response };
|
|
167
180
|
}
|
|
168
181
|
catch (err) {
|
|
169
|
-
throw wrapError(err);
|
|
182
|
+
throw wrapError(err, req.signal);
|
|
170
183
|
}
|
|
171
184
|
},
|
|
172
185
|
};
|
|
@@ -230,7 +243,12 @@ function resolveClient(options) {
|
|
|
230
243
|
...(options.maxRetries !== undefined ? { maxRetries: options.maxRetries } : {}),
|
|
231
244
|
});
|
|
232
245
|
}
|
|
233
|
-
function wrapError(err) {
|
|
246
|
+
function wrapError(err, signal) {
|
|
247
|
+
// A cancelled call fails AS the cancellation, whatever the SDK threw for it
|
|
248
|
+
// (its own `APIUserAbortError` included) — never as a provider error that a
|
|
249
|
+
// retry would re-send (lib/abort.ts).
|
|
250
|
+
if (signal?.aborted)
|
|
251
|
+
return (0, abort_js_1.abortErrorOf)(signal);
|
|
234
252
|
// See OpenAIProvider.wrapError — one shared detector, one typed error, so
|
|
235
253
|
// "prompt is too long" reads the same whichever vendor said it.
|
|
236
254
|
const tooBig = (0, contextWindow_js_1.asContextWindowExceeded)(err, { provider: 'anthropic' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnthropicProvider.js","sourceRoot":"","sources":["../../../src/adapters/llm/AnthropicProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAUH,6DAAuD;AACvD,+EAAmF;AACnF,mDAAwD;AACxD,mEAAmE;AACnE,yEAA8D;AAC9D,6DAG8B;AAC9B,6EAA6F;AAC7F,uDAAmD;AACnD,2EAAqE;AACrE,4FAAsF;AAEtF,qEAAqE;AACrE,yEAAyE;AACzE,6DAA6D;AAC7D,yEAKoC;
|
|
1
|
+
{"version":3,"file":"AnthropicProvider.js","sourceRoot":"","sources":["../../../src/adapters/llm/AnthropicProvider.ts"],"names":[],"mappings":"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"}
|