agentfootprint 10.4.0 → 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/CAPABILITIES.md +6 -1
- 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/invoke.js +15 -8
- package/dist/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
- package/dist/adapters/mcp/agentcoreRuntime/transport.js +21 -3
- package/dist/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
- package/dist/ag-ui/adapter.js +69 -14
- package/dist/ag-ui/adapter.js.map +1 -1
- package/dist/ag-ui/framing.js +3 -1
- package/dist/ag-ui/framing.js.map +1 -1
- package/dist/ag-ui/index.js +4 -2
- package/dist/ag-ui/index.js.map +1 -1
- package/dist/ag-ui/request.js +66 -6
- package/dist/ag-ui/request.js.map +1 -1
- 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 +69 -16
- 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 +83 -11
- package/dist/core/RunnerBase.js.map +1 -1
- package/dist/core/agent/buildAgentChart.js +16 -8
- 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 +22 -7
- 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/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 +14 -1
- package/dist/core/agent/stages/routeTurn.js.map +1 -1
- package/dist/core/agent/stages/seed.js +9 -0
- package/dist/core/agent/stages/seed.js.map +1 -1
- package/dist/core/agent/stages/toolCalls.js +59 -20
- 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 +58 -9
- package/dist/core/memberRun.js.map +1 -1
- 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 +17 -11
- package/dist/core-flow/Conditional.js.map +1 -1
- package/dist/core-flow/Graph.js +17 -11
- package/dist/core-flow/Graph.js.map +1 -1
- package/dist/core-flow/Loop.js +17 -11
- package/dist/core-flow/Loop.js.map +1 -1
- package/dist/core-flow/Parallel.js +25 -14
- package/dist/core-flow/Parallel.js.map +1 -1
- package/dist/core-flow/Sequence.js +17 -11
- package/dist/core-flow/Sequence.js.map +1 -1
- package/dist/core-flow/Workflow.js +17 -11
- package/dist/core-flow/Workflow.js.map +1 -1
- 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/invoke.d.ts +1 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js +15 -8
- package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.d.ts +26 -3
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js +21 -3
- package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
- package/dist/esm/ag-ui/adapter.d.ts +61 -11
- package/dist/esm/ag-ui/adapter.js +70 -15
- package/dist/esm/ag-ui/adapter.js.map +1 -1
- package/dist/esm/ag-ui/framing.d.ts +2 -1
- package/dist/esm/ag-ui/framing.js +3 -1
- package/dist/esm/ag-ui/framing.js.map +1 -1
- package/dist/esm/ag-ui/index.d.ts +6 -4
- package/dist/esm/ag-ui/index.js +6 -4
- package/dist/esm/ag-ui/index.js.map +1 -1
- package/dist/esm/ag-ui/request.d.ts +86 -7
- package/dist/esm/ag-ui/request.js +63 -5
- package/dist/esm/ag-ui/request.js.map +1 -1
- 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 +9 -1
- package/dist/esm/core/Agent.js +71 -18
- 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 +80 -9
- package/dist/esm/core/RunnerBase.js.map +1 -1
- package/dist/esm/core/agent/buildAgentChart.js +16 -8
- 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 +22 -7
- 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/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.js +14 -1
- package/dist/esm/core/agent/stages/routeTurn.js.map +1 -1
- package/dist/esm/core/agent/stages/seed.d.ts +7 -0
- package/dist/esm/core/agent/stages/seed.js +9 -0
- package/dist/esm/core/agent/stages/seed.js.map +1 -1
- package/dist/esm/core/agent/stages/toolCalls.d.ts +21 -0
- package/dist/esm/core/agent/stages/toolCalls.js +59 -20
- package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/esm/core/agent/types.d.ts +10 -0
- 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 +23 -2
- package/dist/esm/core/memberRun.js +54 -8
- package/dist/esm/core/memberRun.js.map +1 -1
- 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 +2 -1
- package/dist/esm/core-flow/Conditional.js +18 -12
- 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 +18 -12
- package/dist/esm/core-flow/Graph.js.map +1 -1
- package/dist/esm/core-flow/Loop.d.ts +2 -1
- package/dist/esm/core-flow/Loop.js +18 -12
- package/dist/esm/core-flow/Loop.js.map +1 -1
- package/dist/esm/core-flow/Parallel.d.ts +2 -1
- package/dist/esm/core-flow/Parallel.js +26 -15
- package/dist/esm/core-flow/Parallel.js.map +1 -1
- package/dist/esm/core-flow/Sequence.d.ts +2 -1
- package/dist/esm/core-flow/Sequence.js +18 -12
- 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 +18 -12
- package/dist/esm/core-flow/Workflow.js.map +1 -1
- 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/index.d.ts +1 -0
- package/dist/esm/hosting/index.js.map +1 -1
- package/dist/esm/hosting/protocolAdapter.d.ts +4 -1
- package/dist/esm/hosting/refusalStatus.js +4 -0
- package/dist/esm/hosting/refusalStatus.js.map +1 -1
- 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 +23 -3
- package/dist/esm/hosting/standingAgent.js.map +1 -1
- package/dist/esm/hosting/stream.d.ts +23 -2
- package/dist/esm/hosting/stream.js +5 -1
- package/dist/esm/hosting/stream.js.map +1 -1
- package/dist/esm/hosting/streamHandler.d.ts +26 -7
- package/dist/esm/hosting/streamHandler.js +36 -12
- package/dist/esm/hosting/streamHandler.js.map +1 -1
- package/dist/esm/hosting/types.d.ts +29 -0
- package/dist/esm/hosting/types.js.map +1 -1
- 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 -2
- package/dist/esm/index.js +5 -1
- 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/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/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/facts/llmFactExtractor.js +6 -3
- package/dist/esm/memory/facts/llmFactExtractor.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/patterns/LlmRouter.js +10 -5
- package/dist/esm/patterns/LlmRouter.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/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/hosting/index.js.map +1 -1
- package/dist/hosting/refusalStatus.js +4 -0
- package/dist/hosting/refusalStatus.js.map +1 -1
- package/dist/hosting/requestSealing.js +83 -0
- package/dist/hosting/requestSealing.js.map +1 -0
- package/dist/hosting/standingAgent.js +23 -3
- package/dist/hosting/standingAgent.js.map +1 -1
- package/dist/hosting/stream.js +5 -1
- package/dist/hosting/stream.js.map +1 -1
- package/dist/hosting/streamHandler.js +36 -12
- package/dist/hosting/streamHandler.js.map +1 -1
- package/dist/hosting/types.js.map +1 -1
- 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 +15 -4
- 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/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/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/facts/llmFactExtractor.js +6 -3
- package/dist/memory/facts/llmFactExtractor.js.map +1 -1
- package/dist/memory/stages/summarize.js +16 -5
- package/dist/memory/stages/summarize.js.map +1 -1
- package/dist/patterns/LlmRouter.js +9 -4
- package/dist/patterns/LlmRouter.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/tools/hostFilled.js +517 -0
- package/dist/tools/hostFilled.js.map +1 -0
- 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/invoke.d.ts +1 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts.map +1 -1
- package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts +26 -3
- package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts.map +1 -1
- package/dist/types/ag-ui/adapter.d.ts +61 -11
- package/dist/types/ag-ui/adapter.d.ts.map +1 -1
- package/dist/types/ag-ui/framing.d.ts +2 -1
- package/dist/types/ag-ui/framing.d.ts.map +1 -1
- package/dist/types/ag-ui/index.d.ts +6 -4
- package/dist/types/ag-ui/index.d.ts.map +1 -1
- package/dist/types/ag-ui/request.d.ts +86 -7
- package/dist/types/ag-ui/request.d.ts.map +1 -1
- 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 +9 -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/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.map +1 -1
- package/dist/types/core/agent/stages/seed.d.ts +7 -0
- package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
- package/dist/types/core/agent/stages/toolCalls.d.ts +21 -0
- package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +10 -0
- 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 +23 -2
- package/dist/types/core/memberRun.d.ts.map +1 -1
- 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 +2 -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 +2 -1
- package/dist/types/core-flow/Loop.d.ts.map +1 -1
- package/dist/types/core-flow/Parallel.d.ts +2 -1
- package/dist/types/core-flow/Parallel.d.ts.map +1 -1
- package/dist/types/core-flow/Sequence.d.ts +2 -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/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/index.d.ts +1 -0
- package/dist/types/hosting/index.d.ts.map +1 -1
- package/dist/types/hosting/protocolAdapter.d.ts +4 -1
- package/dist/types/hosting/protocolAdapter.d.ts.map +1 -1
- package/dist/types/hosting/refusalStatus.d.ts.map +1 -1
- 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 +23 -2
- package/dist/types/hosting/stream.d.ts.map +1 -1
- package/dist/types/hosting/streamHandler.d.ts +26 -7
- package/dist/types/hosting/streamHandler.d.ts.map +1 -1
- package/dist/types/hosting/types.d.ts +29 -0
- package/dist/types/hosting/types.d.ts.map +1 -1
- 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 -2
- 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/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/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/facts/llmFactExtractor.d.ts.map +1 -1
- package/dist/types/memory/stages/summarize.d.ts.map +1 -1
- package/dist/types/patterns/LlmRouter.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/tools/hostFilled.d.ts +111 -0
- package/dist/types/tools/hostFilled.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Emits: agentfootprint.composition.enter / exit (via compositionRecorder).
|
|
11
11
|
*/
|
|
12
12
|
import { FlowChartExecutor, flowChart, } from 'footprintjs';
|
|
13
|
-
import { RunnerBase, makeRunId,
|
|
13
|
+
import { RunnerBase, makeRunId, underRunSignal } from '../core/RunnerBase.js';
|
|
14
14
|
import { normalizeRunInput } from '../core/runInput.js';
|
|
15
15
|
import { ContextRecorder } from '../recorders/core/ContextRecorder.js';
|
|
16
16
|
import { streamRecorder } from '../recorders/core/StreamRecorder.js';
|
|
@@ -19,6 +19,7 @@ import { compositionRecorder } from '../recorders/core/CompositionRecorder.js';
|
|
|
19
19
|
import { typedEmit } from '../recorders/core/typedEmit.js';
|
|
20
20
|
import { composedInput, readsMessageFromIfAny } from '../core/messageFrom.js';
|
|
21
21
|
import { adoptParentRun, parentRunIn, readsParentRun, closeParentRun, openParentRun, reopenParentRun, withParentRun, } from '../core/memberRun.js';
|
|
22
|
+
import { requestOf } from '../core/requestOfRun.js';
|
|
22
23
|
import { adoptMemberRedaction } from '../redaction/declared.js';
|
|
23
24
|
import { carryVerdict, childOutcome, raiseChildVerdict } from './childOutcome.js';
|
|
24
25
|
/** Default string→{message} mapper used between consecutive steps. */
|
|
@@ -81,16 +82,19 @@ export class Sequence extends RunnerBase {
|
|
|
81
82
|
};
|
|
82
83
|
}
|
|
83
84
|
async run(input, options) {
|
|
85
|
+
// The incoming request, refused here — before anything moves — when
|
|
86
|
+
// requestContext() did not build it.
|
|
87
|
+
const request = requestOf(options, 'Sequence.run');
|
|
84
88
|
const runInput = normalizeRunInput(input, 'Sequence.run');
|
|
85
89
|
const executor = this.createExecutor();
|
|
86
90
|
this.lastExecutor = executor;
|
|
87
91
|
// The run every member serves — built once, here, from THIS run's id.
|
|
88
|
-
const parentRun = openParentRun(this.currentRunContext.runId, runInput.identity, 'Sequence.run');
|
|
92
|
+
const parentRun = openParentRun(this.currentRunContext.runId, runInput.identity, 'Sequence.run', request);
|
|
89
93
|
try {
|
|
90
|
-
const result = await executor.run({
|
|
94
|
+
const result = await underRunSignal(options, (engine) => executor.run({
|
|
91
95
|
input: { message: runInput.message, parentRun: parentRun.link },
|
|
92
|
-
...(
|
|
93
|
-
});
|
|
96
|
+
...(engine ?? {}),
|
|
97
|
+
}));
|
|
94
98
|
return this.finalizeResult(executor, result);
|
|
95
99
|
}
|
|
96
100
|
finally {
|
|
@@ -99,14 +103,16 @@ export class Sequence extends RunnerBase {
|
|
|
99
103
|
}
|
|
100
104
|
}
|
|
101
105
|
async resume(checkpoint, input, options) {
|
|
102
|
-
// The
|
|
103
|
-
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
// The paused run its members serve, re-opened from the checkpoint's own record.
|
|
107
|
-
const parentRun = reopenParentRun(checkpoint.sharedState, 'Sequence.resume');
|
|
106
|
+
// The incoming request, and the paused run its members serve (re-opened
|
|
107
|
+
// from the checkpoint's own record) — both refused before anything moves.
|
|
108
|
+
const request = requestOf(options, 'Sequence.resume');
|
|
109
|
+
const parentRun = reopenParentRun(checkpoint.sharedState, 'Sequence.resume', request);
|
|
108
110
|
try {
|
|
109
|
-
|
|
111
|
+
// The leg's policy — the paused run's marks — goes to ITS executor, never via the instance.
|
|
112
|
+
const resumeLeg = this.emitPauseResume(checkpoint, input);
|
|
113
|
+
const executor = this.createExecutor(resumeLeg);
|
|
114
|
+
this.lastExecutor = executor;
|
|
115
|
+
const result = await underRunSignal(options, (engine) => executor.resume(checkpoint, input, engine));
|
|
110
116
|
return this.finalizeResult(executor, result);
|
|
111
117
|
}
|
|
112
118
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sequence.js","sourceRoot":"","sources":["../../../src/core-flow/Sequence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,iBAAiB,EACjB,SAAS,
|
|
1
|
+
{"version":3,"file":"Sequence.js","sourceRoot":"","sources":["../../../src/core-flow/Sequence.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,7 +62,8 @@
|
|
|
62
62
|
* workflow(parse, reply); // ✗ compile error: Ticket is not { refundUsd }
|
|
63
63
|
* ```
|
|
64
64
|
*/
|
|
65
|
-
import { type FlowchartCheckpoint, type
|
|
65
|
+
import { type FlowchartCheckpoint, type StructureRecorder } from 'footprintjs';
|
|
66
|
+
import type { RunOptions } from '../core/runner.js';
|
|
66
67
|
import type { RunnerPauseOutcome } from '../core/pause.js';
|
|
67
68
|
import type { Runner } from '../core/runner.js';
|
|
68
69
|
import { RunnerBase } from '../core/RunnerBase.js';
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
import { FlowChartExecutor, flowChart, } from 'footprintjs';
|
|
66
66
|
import { composedInput, readsMessageFromIfAny } from '../core/messageFrom.js';
|
|
67
67
|
import { adoptMemberRedaction } from '../redaction/declared.js';
|
|
68
|
-
import { RunnerBase, makeRunId,
|
|
68
|
+
import { RunnerBase, makeRunId, underRunSignal } from '../core/RunnerBase.js';
|
|
69
69
|
import { agentRecorder } from '../recorders/core/AgentRecorder.js';
|
|
70
70
|
import { compositionRecorder } from '../recorders/core/CompositionRecorder.js';
|
|
71
71
|
import { ContextRecorder } from '../recorders/core/ContextRecorder.js';
|
|
@@ -73,6 +73,7 @@ import { streamRecorder } from '../recorders/core/StreamRecorder.js';
|
|
|
73
73
|
import { typedEmit } from '../recorders/core/typedEmit.js';
|
|
74
74
|
import { carryVerdict, childOutcome, raiseChildVerdict } from './childOutcome.js';
|
|
75
75
|
import { adoptParentRun, parentRunIn, readsParentRun, closeParentRun, openParentRun, reopenParentRun, withParentRun, } from '../core/memberRun.js';
|
|
76
|
+
import { requestOf } from '../core/requestOfRun.js';
|
|
76
77
|
/**
|
|
77
78
|
* Hand the previous step's value to the next step as its input args.
|
|
78
79
|
*
|
|
@@ -125,17 +126,20 @@ export class Workflow extends RunnerBase {
|
|
|
125
126
|
this.initChart(() => this.buildChart());
|
|
126
127
|
}
|
|
127
128
|
async run(input, options) {
|
|
129
|
+
// The incoming request, refused here — before anything moves — when
|
|
130
|
+
// requestContext() did not build it.
|
|
131
|
+
const request = requestOf(options, 'Workflow.run');
|
|
128
132
|
const executor = this.createExecutor();
|
|
129
133
|
this.lastExecutor = executor;
|
|
130
134
|
// The run every step serves — the caller's identity when the input names
|
|
131
135
|
// one (`input.identity`, as `AgentInput` does), else this run's own
|
|
132
136
|
// conversation (`core/memberRun.ts`).
|
|
133
|
-
const parentRun = openParentRun(this.currentRunContext.runId, input?.identity, 'Workflow.run');
|
|
137
|
+
const parentRun = openParentRun(this.currentRunContext.runId, input?.identity, 'Workflow.run', request);
|
|
134
138
|
try {
|
|
135
|
-
const result = await executor.run({
|
|
139
|
+
const result = await underRunSignal(options, (engine) => executor.run({
|
|
136
140
|
input: { ...input, parentRun: parentRun.link },
|
|
137
|
-
...(
|
|
138
|
-
});
|
|
141
|
+
...(engine ?? {}),
|
|
142
|
+
}));
|
|
139
143
|
return this.finalizeResult(executor, result);
|
|
140
144
|
}
|
|
141
145
|
finally {
|
|
@@ -144,14 +148,16 @@ export class Workflow extends RunnerBase {
|
|
|
144
148
|
}
|
|
145
149
|
}
|
|
146
150
|
async resume(checkpoint, input, options) {
|
|
147
|
-
// The
|
|
148
|
-
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
// The paused run its members serve, re-opened from the checkpoint's own record.
|
|
152
|
-
const parentRun = reopenParentRun(checkpoint.sharedState, 'Workflow.resume');
|
|
151
|
+
// The incoming request, and the paused run its members serve (re-opened
|
|
152
|
+
// from the checkpoint's own record) — both refused before anything moves.
|
|
153
|
+
const request = requestOf(options, 'Workflow.resume');
|
|
154
|
+
const parentRun = reopenParentRun(checkpoint.sharedState, 'Workflow.resume', request);
|
|
153
155
|
try {
|
|
154
|
-
|
|
156
|
+
// The leg's policy — the paused run's marks — goes to ITS executor, never via the instance.
|
|
157
|
+
const resumeLeg = this.emitPauseResume(checkpoint, input);
|
|
158
|
+
const executor = this.createExecutor(resumeLeg);
|
|
159
|
+
this.lastExecutor = executor;
|
|
160
|
+
const result = await underRunSignal(options, (engine) => executor.resume(checkpoint, input, engine));
|
|
155
161
|
return this.finalizeResult(executor, result);
|
|
156
162
|
}
|
|
157
163
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workflow.js","sourceRoot":"","sources":["../../../src/core-flow/Workflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAEH,OAAO,EACL,iBAAiB,EACjB,SAAS,
|
|
1
|
+
{"version":3,"file":"Workflow.js","sourceRoot":"","sources":["../../../src/core-flow/Workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
* `PermissionChecker` port, and thinking-block redaction.
|
|
8
8
|
* • Identity — the `CredentialProvider` port, the credential kinds
|
|
9
9
|
* (`bearer`, `apiKey`, `basic`, `headers`), `staticTokens`,
|
|
10
|
-
* `withCredentialRetry`, and `
|
|
10
|
+
* `withCredentialRetry`, `agentCoreIdentity`, and `requestCredentials`
|
|
11
|
+
* over a run's sealed `requestContext`.
|
|
11
12
|
* • Who is calling — the inbound verifiers `jwksIdentity` and
|
|
12
13
|
* `oidcIdentity`, and `identityFromConfig` / `identityConfigFromEnv`,
|
|
13
14
|
* which pick one strategy per deployment from config at boot.
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
* `PermissionChecker` port, and thinking-block redaction.
|
|
8
8
|
* • Identity — the `CredentialProvider` port, the credential kinds
|
|
9
9
|
* (`bearer`, `apiKey`, `basic`, `headers`), `staticTokens`,
|
|
10
|
-
* `withCredentialRetry`, and `
|
|
10
|
+
* `withCredentialRetry`, `agentCoreIdentity`, and `requestCredentials`
|
|
11
|
+
* over a run's sealed `requestContext`.
|
|
11
12
|
* • Who is calling — the inbound verifiers `jwksIdentity` and
|
|
12
13
|
* `oidcIdentity`, and `identityFromConfig` / `identityConfigFromEnv`,
|
|
13
14
|
* which pick one strategy per deployment from config at boot.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../../src/doors/security.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../../src/doors/security.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
|
|
@@ -663,8 +663,10 @@ export interface ContextEvaluatedPayload {
|
|
|
663
663
|
* fact this evaluation could not supply, so it was skipped whole.
|
|
664
664
|
* `'parked'` (9.58.0): a member of a map the mount kernel parked —
|
|
665
665
|
* served without corroboration for the grace window; the map's own
|
|
666
|
-
* cursor is untouched and evidence re-engages it.
|
|
667
|
-
|
|
666
|
+
* cursor is untouched and evidence re-engages it.
|
|
667
|
+
* `'hidden'`: a skill the caller's role may not see (`skill_read`),
|
|
668
|
+
* refused whatever tried to activate it. */
|
|
669
|
+
readonly reason: 'predicate-threw' | 'unknown-trigger-kind' | 'unknown-fact' | 'parked' | 'hidden';
|
|
668
670
|
readonly error?: string;
|
|
669
671
|
}[];
|
|
670
672
|
/** Count of active injections by trigger kind (always / rule / on-tool-return / llm-activated). */
|
|
@@ -99,6 +99,7 @@ export type { ConversationHandshake, HandshakeFacts, HttpHost, HttpHostHandle, H
|
|
|
99
99
|
export type { HeldConversation, PlanFacts, ProtocolAdapter, ProtocolPlan, ProtocolRequestFacts, ProtocolTurn, RunSettlement, RunTranslation, StreamRunContext, ThreadBinder, ThreadBinding, } from './protocolAdapter.js';
|
|
100
100
|
export { streamHandler, DEFAULT_STREAM_HEARTBEAT_MS, DEFAULT_STREAM_MAX_BODY_BYTES, type StreamHandler, type StreamHandlerOptions, type StreamRunner, } from './streamHandler.js';
|
|
101
101
|
export { verifiedThreads } from './verifiedThreads.js';
|
|
102
|
+
export type { RequestSealer, RequestSealFacts } from './requestSealing.js';
|
|
102
103
|
export { memorySessions } from './memorySessions.js';
|
|
103
104
|
export { sqliteSessions, SqliteUnavailableError, UnreadableSessionFileError, } from './sqliteSessions.js';
|
|
104
105
|
export type { SqliteSessions, SqliteSessionsOptions } from './sqliteSessions.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hosting/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AAEH,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,eAAe,CAAC;AAEvB,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAC/E,oCAAoC;AAEpC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA6BtD,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,6BAA6B,GAI9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hosting/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -223,7 +223,10 @@ export interface ProtocolAdapter<TRequest, TEvent> {
|
|
|
223
223
|
open(request: TRequest, resumed?: unknown): RunTranslation<TEvent>;
|
|
224
224
|
/**
|
|
225
225
|
* How its events are written — built once per host, so a framing that loads
|
|
226
|
-
* an optional peer refuses when the host is built, not mid-request.
|
|
226
|
+
* an optional peer refuses when the host is built, not mid-request. One
|
|
227
|
+
* framing serves every stream at once, so it keeps nothing per stream: the
|
|
228
|
+
* host counts each stream's frames and hands the number to `frame`
|
|
229
|
+
* (`SseFramePosition`).
|
|
227
230
|
*/
|
|
228
231
|
framing(): SseFraming<TEvent>;
|
|
229
232
|
}
|
|
@@ -77,5 +77,9 @@ export const REFUSAL_STATUS = Object.freeze({
|
|
|
77
77
|
ERR_ORIGIN_NOT_ALLOWED: 403,
|
|
78
78
|
ERR_HOST_NOT_ALLOWED: 421,
|
|
79
79
|
ERR_INVALID_SESSION_ID: 400,
|
|
80
|
+
// The app's `sealRequest` could not seal the credential the request carries
|
|
81
|
+
// (a header missing or unreadable) — the request is what is wrong, and the
|
|
82
|
+
// same caller can send it again with the credential.
|
|
83
|
+
ERR_REQUEST_NOT_SEALED: 400,
|
|
80
84
|
});
|
|
81
85
|
//# sourceMappingURL=refusalStatus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refusalStatus.js","sourceRoot":"","sources":["../../../src/hosting/refusalStatus.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAqC,MAAM,CAAC,MAAM,CAAC;IAC5E,eAAe,EAAE,GAAG;IACpB,kBAAkB,EAAE,GAAG;IACvB,qBAAqB,EAAE,GAAG;IAC1B,qBAAqB,EAAE,GAAG;IAC1B,kBAAkB,EAAE,GAAG;IACvB,qBAAqB,EAAE,GAAG;IAC1B,yBAAyB,EAAE,GAAG;IAC9B,mBAAmB,EAAE,GAAG;IACxB,6BAA6B,EAAE,GAAG;IAClC,sBAAsB,EAAE,GAAG;IAC3B,qBAAqB,EAAE,GAAG;IAC1B,wBAAwB,EAAE,GAAG;IAC7B,8EAA8E;IAC9E,8EAA8E;IAC9E,mCAAmC,EAAE,GAAG;IACxC,yEAAyE;IACzE,qBAAqB,EAAE,GAAG;IAC1B,wDAAwD;IACxD,6EAA6E;IAC7E,2DAA2D;IAC3D,6EAA6E;IAC7E,4EAA4E;IAC5E,oDAAoD;IACpD,4EAA4E;IAC5E,iEAAiE;IACjE,yEAAyE;IACzE,uCAAuC;IACvC,2EAA2E;IAC3E,0EAA0E;IAC1E,iEAAiE;IACjE,yBAAyB,EAAE,GAAG;IAC9B,iCAAiC,EAAE,GAAG;IACtC,qBAAqB,EAAE,GAAG;IAC1B,qBAAqB,EAAE,GAAG;IAC1B,6BAA6B,EAAE,GAAG;IAClC,6BAA6B,EAAE,GAAG;IAClC,wBAAwB,EAAE,GAAG;IAC7B,qBAAqB,EAAE,GAAG;IAC1B,6EAA6E;IAC7E,0EAA0E;IAC1E,yDAAyD;IACzD,mEAAmE;IACnE,iEAAiE;IACjE,gFAAgF;IAChF,0EAA0E;IAC1E,0BAA0B,EAAE,GAAG;IAC/B,sBAAsB,EAAE,GAAG;IAC3B,oBAAoB,EAAE,GAAG;IACzB,sBAAsB,EAAE,GAAG;CAC5B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"refusalStatus.js","sourceRoot":"","sources":["../../../src/hosting/refusalStatus.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAqC,MAAM,CAAC,MAAM,CAAC;IAC5E,eAAe,EAAE,GAAG;IACpB,kBAAkB,EAAE,GAAG;IACvB,qBAAqB,EAAE,GAAG;IAC1B,qBAAqB,EAAE,GAAG;IAC1B,kBAAkB,EAAE,GAAG;IACvB,qBAAqB,EAAE,GAAG;IAC1B,yBAAyB,EAAE,GAAG;IAC9B,mBAAmB,EAAE,GAAG;IACxB,6BAA6B,EAAE,GAAG;IAClC,sBAAsB,EAAE,GAAG;IAC3B,qBAAqB,EAAE,GAAG;IAC1B,wBAAwB,EAAE,GAAG;IAC7B,8EAA8E;IAC9E,8EAA8E;IAC9E,mCAAmC,EAAE,GAAG;IACxC,yEAAyE;IACzE,qBAAqB,EAAE,GAAG;IAC1B,wDAAwD;IACxD,6EAA6E;IAC7E,2DAA2D;IAC3D,6EAA6E;IAC7E,4EAA4E;IAC5E,oDAAoD;IACpD,4EAA4E;IAC5E,iEAAiE;IACjE,yEAAyE;IACzE,uCAAuC;IACvC,2EAA2E;IAC3E,0EAA0E;IAC1E,iEAAiE;IACjE,yBAAyB,EAAE,GAAG;IAC9B,iCAAiC,EAAE,GAAG;IACtC,qBAAqB,EAAE,GAAG;IAC1B,qBAAqB,EAAE,GAAG;IAC1B,6BAA6B,EAAE,GAAG;IAClC,6BAA6B,EAAE,GAAG;IAClC,wBAAwB,EAAE,GAAG;IAC7B,qBAAqB,EAAE,GAAG;IAC1B,6EAA6E;IAC7E,0EAA0E;IAC1E,yDAAyD;IACzD,mEAAmE;IACnE,iEAAiE;IACjE,gFAAgF;IAChF,0EAA0E;IAC1E,0BAA0B,EAAE,GAAG;IAC/B,sBAAsB,EAAE,GAAG;IAC3B,oBAAoB,EAAE,GAAG;IACzB,sBAAsB,EAAE,GAAG;IAC3B,4EAA4E;IAC5E,2EAA2E;IAC3E,qDAAqD;IACrD,sBAAsB,EAAE,GAAG;CAC5B,CAAC,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* requestSealing — a host hands each run the credential that arrived with ITS
|
|
3
|
+
* request, sealed for that run alone.
|
|
4
|
+
*
|
|
5
|
+
* `requestContext({ secrets })` (`agentfootprint/security`) seals a request's
|
|
6
|
+
* secrets; `requestCredentials` vends them to the tools that declare a `needs`
|
|
7
|
+
* for them. A host that runs the agent for you (`standingAgent`,
|
|
8
|
+
* `streamHandler`) cannot know which header holds the credential, so it asks
|
|
9
|
+
* the app — once per request, with the request's headers — through the
|
|
10
|
+
* {@link RequestSealer} option `sealRequest`, and passes the handle to that
|
|
11
|
+
* request's `run()` / `resume()` and nowhere else. The sealer is handed the
|
|
12
|
+
* headers ONLY: nothing about who is calling, so it can never be tempted to
|
|
13
|
+
* look a stored credential up by a name the caller could have claimed.
|
|
14
|
+
*
|
|
15
|
+
* THE RULES, in one funnel ({@link requestSealing}):
|
|
16
|
+
* - asked only for a request that runs, after the caller is bound and every
|
|
17
|
+
* refusal is behind it — a refused request never seals anything;
|
|
18
|
+
* - the answer is a handle `requestContext` built, or `undefined` (no
|
|
19
|
+
* request: a tool that needs one fails closed, by name);
|
|
20
|
+
* - ONE HANDLE, ONE RUN, PROCESS-WIDE: a handle any host was handed before
|
|
21
|
+
* is refused, so a sealer that caches one — even one shared by two doors
|
|
22
|
+
* — cannot hand one caller's credential to another caller's run;
|
|
23
|
+
* - a sealer that throws refuses the request in FIXED words
|
|
24
|
+
* (`ERR_REQUEST_NOT_SEALED`, 400). Its own message is never sent: it may
|
|
25
|
+
* quote the value it could not read.
|
|
26
|
+
* The handle never enters a frame, a stored session or a checkpoint; the
|
|
27
|
+
* headers never leave the sealer.
|
|
28
|
+
*
|
|
29
|
+
* Pattern: guarded strategy call. Role: hosting, run input.
|
|
30
|
+
*/
|
|
31
|
+
import { type RequestContext } from '../identity/requestContext.js';
|
|
32
|
+
/** What a host hands the app's {@link RequestSealer} — one request's headers, and nothing else. */
|
|
33
|
+
export interface RequestSealFacts {
|
|
34
|
+
/**
|
|
35
|
+
* The request's headers, names lower-cased — where a per-request credential
|
|
36
|
+
* travels (a gateway's encrypted token, a session-bound key). Untrusted, as
|
|
37
|
+
* every header is: what a sealer reads here is the CALLER's credential for
|
|
38
|
+
* the caller's own run, never proof of who the caller is — so seal what the
|
|
39
|
+
* request CARRIES, and never look a stored credential up by a header.
|
|
40
|
+
*/
|
|
41
|
+
readonly headers: Readonly<Record<string, string>>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The app's port that seals one request's credential for its run: return
|
|
45
|
+
* `requestContext({ secrets })`, or `undefined` for a request that carries
|
|
46
|
+
* none. Called once per request that runs; return a NEW handle every time.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```ts
|
|
50
|
+
* sealRequest: ({ headers }) =>
|
|
51
|
+
* headers['x-crm-token'] === undefined
|
|
52
|
+
* ? undefined
|
|
53
|
+
* : requestContext({ secrets: { crmToken: headers['x-crm-token'] } }),
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export type RequestSealer = (facts: RequestSealFacts) => RequestContext | undefined | Promise<RequestContext | undefined>;
|
|
57
|
+
/** The code a request refused by its sealer carries — the status is 400. */
|
|
58
|
+
export declare const REQUEST_NOT_SEALED = "ERR_REQUEST_NOT_SEALED";
|
|
59
|
+
/**
|
|
60
|
+
* The one funnel a host seals through: the app's sealer, checked. `undefined`
|
|
61
|
+
* when no sealer was given — the host passes no request, exactly as before.
|
|
62
|
+
*
|
|
63
|
+
* @throws TypeError at construction when `sealer` is not a function.
|
|
64
|
+
*/
|
|
65
|
+
export declare function requestSealing(sealer: RequestSealer | undefined, door: string): ((facts: RequestSealFacts) => Promise<RequestContext | undefined>) | undefined;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* requestSealing — a host hands each run the credential that arrived with ITS
|
|
3
|
+
* request, sealed for that run alone.
|
|
4
|
+
*
|
|
5
|
+
* `requestContext({ secrets })` (`agentfootprint/security`) seals a request's
|
|
6
|
+
* secrets; `requestCredentials` vends them to the tools that declare a `needs`
|
|
7
|
+
* for them. A host that runs the agent for you (`standingAgent`,
|
|
8
|
+
* `streamHandler`) cannot know which header holds the credential, so it asks
|
|
9
|
+
* the app — once per request, with the request's headers — through the
|
|
10
|
+
* {@link RequestSealer} option `sealRequest`, and passes the handle to that
|
|
11
|
+
* request's `run()` / `resume()` and nowhere else. The sealer is handed the
|
|
12
|
+
* headers ONLY: nothing about who is calling, so it can never be tempted to
|
|
13
|
+
* look a stored credential up by a name the caller could have claimed.
|
|
14
|
+
*
|
|
15
|
+
* THE RULES, in one funnel ({@link requestSealing}):
|
|
16
|
+
* - asked only for a request that runs, after the caller is bound and every
|
|
17
|
+
* refusal is behind it — a refused request never seals anything;
|
|
18
|
+
* - the answer is a handle `requestContext` built, or `undefined` (no
|
|
19
|
+
* request: a tool that needs one fails closed, by name);
|
|
20
|
+
* - ONE HANDLE, ONE RUN, PROCESS-WIDE: a handle any host was handed before
|
|
21
|
+
* is refused, so a sealer that caches one — even one shared by two doors
|
|
22
|
+
* — cannot hand one caller's credential to another caller's run;
|
|
23
|
+
* - a sealer that throws refuses the request in FIXED words
|
|
24
|
+
* (`ERR_REQUEST_NOT_SEALED`, 400). Its own message is never sent: it may
|
|
25
|
+
* quote the value it could not read.
|
|
26
|
+
* The handle never enters a frame, a stored session or a checkpoint; the
|
|
27
|
+
* headers never leave the sealer.
|
|
28
|
+
*
|
|
29
|
+
* Pattern: guarded strategy call. Role: hosting, run input.
|
|
30
|
+
*/
|
|
31
|
+
import { isRequestContext } from '../identity/requestContext.js';
|
|
32
|
+
import { WireRequestRefusal } from './errors.js';
|
|
33
|
+
/** The code a request refused by its sealer carries — the status is 400. */
|
|
34
|
+
export const REQUEST_NOT_SEALED = 'ERR_REQUEST_NOT_SEALED';
|
|
35
|
+
/**
|
|
36
|
+
* Every handle any host in this process handed to a run — held weakly,
|
|
37
|
+
* compared by identity. Module-wide on purpose: two doors sharing one caching
|
|
38
|
+
* sealer must not each accept the same handle once.
|
|
39
|
+
*/
|
|
40
|
+
const handedToARun = new WeakSet();
|
|
41
|
+
/**
|
|
42
|
+
* The one funnel a host seals through: the app's sealer, checked. `undefined`
|
|
43
|
+
* when no sealer was given — the host passes no request, exactly as before.
|
|
44
|
+
*
|
|
45
|
+
* @throws TypeError at construction when `sealer` is not a function.
|
|
46
|
+
*/
|
|
47
|
+
export function requestSealing(sealer, door) {
|
|
48
|
+
if (sealer === undefined)
|
|
49
|
+
return undefined;
|
|
50
|
+
if (typeof sealer !== 'function') {
|
|
51
|
+
throw new TypeError(`[hosting] '${door}': sealRequest must be a function that returns ` +
|
|
52
|
+
'requestContext({ secrets }) for one request, or undefined.');
|
|
53
|
+
}
|
|
54
|
+
return async (facts) => {
|
|
55
|
+
let handle;
|
|
56
|
+
try {
|
|
57
|
+
handle = await sealer(facts);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// Never the sealer's message: it may quote the value it could not read.
|
|
61
|
+
throw new WireRequestRefusal(REQUEST_NOT_SEALED, `'${door}': the credentials this request carries could not be sealed for its run.`, 400);
|
|
62
|
+
}
|
|
63
|
+
if (handle === undefined)
|
|
64
|
+
return undefined;
|
|
65
|
+
if (!isRequestContext(handle)) {
|
|
66
|
+
throw new TypeError(`[hosting] '${door}': sealRequest must return a handle built by ` +
|
|
67
|
+
'requestContext({ secrets }), or undefined — a plain object is refused, because its ' +
|
|
68
|
+
'values would travel wherever the run options are logged or copied.');
|
|
69
|
+
}
|
|
70
|
+
if (handedToARun.has(handle)) {
|
|
71
|
+
throw new TypeError(`[hosting] '${door}': sealRequest returned a handle it returned before. Every ` +
|
|
72
|
+
"request seals its own — a shared handle hands one caller's credential to another " +
|
|
73
|
+
"caller's run.");
|
|
74
|
+
}
|
|
75
|
+
handedToARun.add(handle);
|
|
76
|
+
return handle;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=requestSealing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestSealing.js","sourceRoot":"","sources":["../../../src/hosting/requestSealing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,gBAAgB,EAAuB,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AA+BjD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAE3D;;;;GAIG;AACH,MAAM,YAAY,GAAG,IAAI,OAAO,EAAU,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAiC,EACjC,IAAY;IAEZ,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CACjB,cAAc,IAAI,iDAAiD;YACjE,4DAA4D,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,wEAAwE;YACxE,MAAM,IAAI,kBAAkB,CAC1B,kBAAkB,EAClB,IAAI,IAAI,0EAA0E,EAClF,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC3C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,SAAS,CACjB,cAAc,IAAI,+CAA+C;gBAC/D,qFAAqF;gBACrF,oEAAoE,CACvE,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CACjB,cAAc,IAAI,6DAA6D;gBAC7E,mFAAmF;gBACnF,eAAe,CAClB,CAAC;QACJ,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -115,6 +115,7 @@ import { withHostedConversation } from '../core/agent/servingConversation.js';
|
|
|
115
115
|
import { verifyRequestIdentity } from './identityVerification.js';
|
|
116
116
|
import { spendKeyFor, spendLedger } from './admission.js';
|
|
117
117
|
import { beginIngress, recordHostRefusal } from './ingressRecord.js';
|
|
118
|
+
import { requestSealing } from './requestSealing.js';
|
|
118
119
|
import { openTurnArtifacts } from './turnArtifacts.js';
|
|
119
120
|
import { SESSION_LIST_OP, SESSION_TRANSCRIPT_OP } from './sessionWire.js';
|
|
120
121
|
import { DEFAULT_ARTIFACT_OPS_PER_SESSION, DEFAULT_MAX_ACTIVE_SESSIONS, TURN_ARTIFACTS_TIMEOUT_MS, } from './types.js';
|
|
@@ -177,6 +178,12 @@ export async function standingAgent(options) {
|
|
|
177
178
|
const identityOptions = options.identity;
|
|
178
179
|
/** The admission policy (9.26.0), or `undefined`. */
|
|
179
180
|
const admission = options.admission;
|
|
181
|
+
/**
|
|
182
|
+
* The app's sealer for a request's own credential, checked once per run, or
|
|
183
|
+
* `undefined` — no run carries a request, as before. Refused at
|
|
184
|
+
* construction when it is not a function.
|
|
185
|
+
*/
|
|
186
|
+
const sealRequest = requestSealing(options.sealRequest, 'standingAgent');
|
|
180
187
|
/**
|
|
181
188
|
* The rolling-window accountant — built ONLY when a policy exists, because
|
|
182
189
|
* with no policy nobody would ever read it and keeping a per-caller map of a
|
|
@@ -1428,6 +1435,17 @@ export async function standingAgent(options) {
|
|
|
1428
1435
|
const runOptions = sessionId === undefined
|
|
1429
1436
|
? withHostedConversation(optionsForRun, globalThis.crypto.randomUUID())
|
|
1430
1437
|
: optionsForRun;
|
|
1438
|
+
/**
|
|
1439
|
+
* The options THIS run is handed, with the credential the request
|
|
1440
|
+
* carries sealed by the app (`sealRequest`) — asked only on the two
|
|
1441
|
+
* paths that run, after every refusal, so a refused request seals
|
|
1442
|
+
* nothing. The handle rides the run's options alone: never the reply,
|
|
1443
|
+
* the stored session or the checkpoint.
|
|
1444
|
+
*/
|
|
1445
|
+
const withSealedRequest = async () => {
|
|
1446
|
+
const sealed = await sealRequest?.({ headers: request.headers ?? {} });
|
|
1447
|
+
return sealed === undefined ? runOptions : { ...runOptions, request: sealed };
|
|
1448
|
+
};
|
|
1431
1449
|
// ── The one discriminant ─────────────────────────────────────────
|
|
1432
1450
|
// A request carrying `decision` answers a pending question; a request
|
|
1433
1451
|
// without one is a new message. Never inferred from the text: reading
|
|
@@ -1483,7 +1501,8 @@ export async function standingAgent(options) {
|
|
|
1483
1501
|
return;
|
|
1484
1502
|
}
|
|
1485
1503
|
}
|
|
1486
|
-
|
|
1504
|
+
const resumeOptions = await withSealedRequest();
|
|
1505
|
+
await deliver(lane, await runner.resume(paused.checkpoint, request.decision, resumeOptions), store, reply, sessionId, offer, paused);
|
|
1487
1506
|
return;
|
|
1488
1507
|
}
|
|
1489
1508
|
if (paused && sessionId !== undefined) {
|
|
@@ -1492,9 +1511,10 @@ export async function standingAgent(options) {
|
|
|
1492
1511
|
reply.fail(new AwaitingDecisionError(sessionId, paused.pending));
|
|
1493
1512
|
return;
|
|
1494
1513
|
}
|
|
1514
|
+
const turnOptions = await withSealedRequest();
|
|
1495
1515
|
const output = prior
|
|
1496
|
-
? await runner.run({ message: request.input, continueFrom: prior },
|
|
1497
|
-
: await runner.run({ message: request.input },
|
|
1516
|
+
? await runner.run({ message: request.input, continueFrom: prior }, turnOptions)
|
|
1517
|
+
: await runner.run({ message: request.input }, turnOptions);
|
|
1498
1518
|
await deliver(lane, output, store, reply, sessionId, offer);
|
|
1499
1519
|
}
|
|
1500
1520
|
catch (err) {
|