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.
Files changed (519) hide show
  1. package/CAPABILITIES.md +6 -1
  2. package/ai-instructions/clinerules +22 -11
  3. package/ai-instructions/copilot-instructions.md +22 -11
  4. package/ai-instructions/cursor/agentfootprint.md +22 -11
  5. package/ai-instructions/kiro/agentfootprint.md +22 -11
  6. package/ai-instructions/windsurfrules +22 -11
  7. package/dist/adapters/llm/AnthropicProvider.js +26 -8
  8. package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
  9. package/dist/adapters/llm/BedrockProvider.js +23 -7
  10. package/dist/adapters/llm/BedrockProvider.js.map +1 -1
  11. package/dist/adapters/llm/BrowserAnthropicProvider.js +57 -49
  12. package/dist/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
  13. package/dist/adapters/llm/BrowserOpenAIProvider.js +50 -42
  14. package/dist/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  15. package/dist/adapters/llm/FoundryLocalProvider.js +174 -212
  16. package/dist/adapters/llm/FoundryLocalProvider.js.map +1 -1
  17. package/dist/adapters/llm/GeminiProvider.js +23 -9
  18. package/dist/adapters/llm/GeminiProvider.js.map +1 -1
  19. package/dist/adapters/llm/InvokeModelGatewayProvider.js +32 -9
  20. package/dist/adapters/llm/InvokeModelGatewayProvider.js.map +1 -1
  21. package/dist/adapters/llm/MockProvider.js +11 -3
  22. package/dist/adapters/llm/MockProvider.js.map +1 -1
  23. package/dist/adapters/llm/OllamaProvider.js +129 -167
  24. package/dist/adapters/llm/OllamaProvider.js.map +1 -1
  25. package/dist/adapters/llm/OpenAIProvider.js +36 -9
  26. package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
  27. package/dist/adapters/mcp/agentcoreRuntime/invoke.js +15 -8
  28. package/dist/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
  29. package/dist/adapters/mcp/agentcoreRuntime/transport.js +21 -3
  30. package/dist/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
  31. package/dist/ag-ui/adapter.js +69 -14
  32. package/dist/ag-ui/adapter.js.map +1 -1
  33. package/dist/ag-ui/framing.js +3 -1
  34. package/dist/ag-ui/framing.js.map +1 -1
  35. package/dist/ag-ui/index.js +4 -2
  36. package/dist/ag-ui/index.js.map +1 -1
  37. package/dist/ag-ui/request.js +66 -6
  38. package/dist/ag-ui/request.js.map +1 -1
  39. package/dist/answer-validation/index.js +8 -1
  40. package/dist/answer-validation/index.js.map +1 -1
  41. package/dist/answer-validation/toolLedger.js +130 -0
  42. package/dist/answer-validation/toolLedger.js.map +1 -0
  43. package/dist/answer-validation/types.js.map +1 -1
  44. package/dist/answer-validation/validate.js +25 -3
  45. package/dist/answer-validation/validate.js.map +1 -1
  46. package/dist/classify/typesafe.js +31 -23
  47. package/dist/classify/typesafe.js.map +1 -1
  48. package/dist/core/Agent.js +69 -16
  49. package/dist/core/Agent.js.map +1 -1
  50. package/dist/core/LLMCall.js +16 -6
  51. package/dist/core/LLMCall.js.map +1 -1
  52. package/dist/core/RunnerBase.js +83 -11
  53. package/dist/core/RunnerBase.js.map +1 -1
  54. package/dist/core/agent/buildAgentChart.js +16 -8
  55. package/dist/core/agent/buildAgentChart.js.map +1 -1
  56. package/dist/core/agent/buildAgentMessageApiChart.js +22 -2
  57. package/dist/core/agent/buildAgentMessageApiChart.js.map +1 -1
  58. package/dist/core/agent/buildDynamicAgentChart.js +22 -7
  59. package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
  60. package/dist/core/agent/buildMessageApiChart.js +22 -2
  61. package/dist/core/agent/buildMessageApiChart.js.map +1 -1
  62. package/dist/core/agent/stages/answerValidation.js +22 -1
  63. package/dist/core/agent/stages/answerValidation.js.map +1 -1
  64. package/dist/core/agent/stages/callLLM.js +19 -3
  65. package/dist/core/agent/stages/callLLM.js.map +1 -1
  66. package/dist/core/agent/stages/routeTurn.js +14 -1
  67. package/dist/core/agent/stages/routeTurn.js.map +1 -1
  68. package/dist/core/agent/stages/seed.js +9 -0
  69. package/dist/core/agent/stages/seed.js.map +1 -1
  70. package/dist/core/agent/stages/toolCalls.js +59 -20
  71. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  72. package/dist/core/agent/window/strategies/summarizeOldest.js +4 -0
  73. package/dist/core/agent/window/strategies/summarizeOldest.js.map +1 -1
  74. package/dist/core/agent/window/summarize.js +6 -3
  75. package/dist/core/agent/window/summarize.js.map +1 -1
  76. package/dist/core/memberRun.js +58 -9
  77. package/dist/core/memberRun.js.map +1 -1
  78. package/dist/core/requestOfRun.js +28 -0
  79. package/dist/core/requestOfRun.js.map +1 -0
  80. package/dist/core/slots/buildToolsSlot.js +11 -25
  81. package/dist/core/slots/buildToolsSlot.js.map +1 -1
  82. package/dist/core-flow/Conditional.js +17 -11
  83. package/dist/core-flow/Conditional.js.map +1 -1
  84. package/dist/core-flow/Graph.js +17 -11
  85. package/dist/core-flow/Graph.js.map +1 -1
  86. package/dist/core-flow/Loop.js +17 -11
  87. package/dist/core-flow/Loop.js.map +1 -1
  88. package/dist/core-flow/Parallel.js +25 -14
  89. package/dist/core-flow/Parallel.js.map +1 -1
  90. package/dist/core-flow/Sequence.js +17 -11
  91. package/dist/core-flow/Sequence.js.map +1 -1
  92. package/dist/core-flow/Workflow.js +17 -11
  93. package/dist/core-flow/Workflow.js.map +1 -1
  94. package/dist/doors/security.js +2 -1
  95. package/dist/doors/security.js.map +1 -1
  96. package/dist/esm/adapters/llm/AnthropicProvider.d.ts +9 -2
  97. package/dist/esm/adapters/llm/AnthropicProvider.js +26 -8
  98. package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
  99. package/dist/esm/adapters/llm/BedrockProvider.d.ts +6 -1
  100. package/dist/esm/adapters/llm/BedrockProvider.js +23 -7
  101. package/dist/esm/adapters/llm/BedrockProvider.js.map +1 -1
  102. package/dist/esm/adapters/llm/BrowserAnthropicProvider.js +57 -49
  103. package/dist/esm/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
  104. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js +50 -42
  105. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  106. package/dist/esm/adapters/llm/FoundryLocalProvider.js +171 -209
  107. package/dist/esm/adapters/llm/FoundryLocalProvider.js.map +1 -1
  108. package/dist/esm/adapters/llm/GeminiProvider.js +23 -9
  109. package/dist/esm/adapters/llm/GeminiProvider.js.map +1 -1
  110. package/dist/esm/adapters/llm/InvokeModelGatewayProvider.js +32 -9
  111. package/dist/esm/adapters/llm/InvokeModelGatewayProvider.js.map +1 -1
  112. package/dist/esm/adapters/llm/MockProvider.js +11 -3
  113. package/dist/esm/adapters/llm/MockProvider.js.map +1 -1
  114. package/dist/esm/adapters/llm/OllamaProvider.js +126 -164
  115. package/dist/esm/adapters/llm/OllamaProvider.js.map +1 -1
  116. package/dist/esm/adapters/llm/OpenAIProvider.d.ts +6 -1
  117. package/dist/esm/adapters/llm/OpenAIProvider.js +36 -9
  118. package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
  119. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.d.ts +1 -1
  120. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js +15 -8
  121. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
  122. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.d.ts +26 -3
  123. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js +21 -3
  124. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
  125. package/dist/esm/ag-ui/adapter.d.ts +61 -11
  126. package/dist/esm/ag-ui/adapter.js +70 -15
  127. package/dist/esm/ag-ui/adapter.js.map +1 -1
  128. package/dist/esm/ag-ui/framing.d.ts +2 -1
  129. package/dist/esm/ag-ui/framing.js +3 -1
  130. package/dist/esm/ag-ui/framing.js.map +1 -1
  131. package/dist/esm/ag-ui/index.d.ts +6 -4
  132. package/dist/esm/ag-ui/index.js +6 -4
  133. package/dist/esm/ag-ui/index.js.map +1 -1
  134. package/dist/esm/ag-ui/request.d.ts +86 -7
  135. package/dist/esm/ag-ui/request.js +63 -5
  136. package/dist/esm/ag-ui/request.js.map +1 -1
  137. package/dist/esm/answer-validation/index.d.ts +2 -1
  138. package/dist/esm/answer-validation/index.js +1 -0
  139. package/dist/esm/answer-validation/index.js.map +1 -1
  140. package/dist/esm/answer-validation/toolLedger.d.ts +65 -0
  141. package/dist/esm/answer-validation/toolLedger.js +121 -0
  142. package/dist/esm/answer-validation/toolLedger.js.map +1 -0
  143. package/dist/esm/answer-validation/types.d.ts +48 -0
  144. package/dist/esm/answer-validation/types.js.map +1 -1
  145. package/dist/esm/answer-validation/validate.d.ts +2 -2
  146. package/dist/esm/answer-validation/validate.js +25 -3
  147. package/dist/esm/answer-validation/validate.js.map +1 -1
  148. package/dist/esm/classify/typesafe.js +30 -22
  149. package/dist/esm/classify/typesafe.js.map +1 -1
  150. package/dist/esm/core/Agent.d.ts +9 -1
  151. package/dist/esm/core/Agent.js +71 -18
  152. package/dist/esm/core/Agent.js.map +1 -1
  153. package/dist/esm/core/LLMCall.d.ts +2 -1
  154. package/dist/esm/core/LLMCall.js +17 -7
  155. package/dist/esm/core/LLMCall.js.map +1 -1
  156. package/dist/esm/core/RunnerBase.d.ts +39 -8
  157. package/dist/esm/core/RunnerBase.js +80 -9
  158. package/dist/esm/core/RunnerBase.js.map +1 -1
  159. package/dist/esm/core/agent/buildAgentChart.js +16 -8
  160. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  161. package/dist/esm/core/agent/buildAgentMessageApiChart.d.ts +16 -0
  162. package/dist/esm/core/agent/buildAgentMessageApiChart.js +22 -2
  163. package/dist/esm/core/agent/buildAgentMessageApiChart.js.map +1 -1
  164. package/dist/esm/core/agent/buildDynamicAgentChart.js +22 -7
  165. package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
  166. package/dist/esm/core/agent/buildMessageApiChart.d.ts +16 -0
  167. package/dist/esm/core/agent/buildMessageApiChart.js +22 -2
  168. package/dist/esm/core/agent/buildMessageApiChart.js.map +1 -1
  169. package/dist/esm/core/agent/stages/answerValidation.js +22 -1
  170. package/dist/esm/core/agent/stages/answerValidation.js.map +1 -1
  171. package/dist/esm/core/agent/stages/callLLM.js +19 -3
  172. package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
  173. package/dist/esm/core/agent/stages/routeTurn.js +14 -1
  174. package/dist/esm/core/agent/stages/routeTurn.js.map +1 -1
  175. package/dist/esm/core/agent/stages/seed.d.ts +7 -0
  176. package/dist/esm/core/agent/stages/seed.js +9 -0
  177. package/dist/esm/core/agent/stages/seed.js.map +1 -1
  178. package/dist/esm/core/agent/stages/toolCalls.d.ts +21 -0
  179. package/dist/esm/core/agent/stages/toolCalls.js +59 -20
  180. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  181. package/dist/esm/core/agent/types.d.ts +10 -0
  182. package/dist/esm/core/agent/window/strategies/summarizeOldest.js +4 -0
  183. package/dist/esm/core/agent/window/strategies/summarizeOldest.js.map +1 -1
  184. package/dist/esm/core/agent/window/summarize.js +6 -3
  185. package/dist/esm/core/agent/window/summarize.js.map +1 -1
  186. package/dist/esm/core/memberRun.d.ts +23 -2
  187. package/dist/esm/core/memberRun.js +54 -8
  188. package/dist/esm/core/memberRun.js.map +1 -1
  189. package/dist/esm/core/requestOfRun.d.ts +21 -0
  190. package/dist/esm/core/requestOfRun.js +24 -0
  191. package/dist/esm/core/requestOfRun.js.map +1 -0
  192. package/dist/esm/core/runner.d.ts +15 -3
  193. package/dist/esm/core/slots/buildToolsSlot.d.ts +0 -16
  194. package/dist/esm/core/slots/buildToolsSlot.js +11 -25
  195. package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
  196. package/dist/esm/core-flow/Conditional.d.ts +2 -1
  197. package/dist/esm/core-flow/Conditional.js +18 -12
  198. package/dist/esm/core-flow/Conditional.js.map +1 -1
  199. package/dist/esm/core-flow/Graph.d.ts +2 -1
  200. package/dist/esm/core-flow/Graph.js +18 -12
  201. package/dist/esm/core-flow/Graph.js.map +1 -1
  202. package/dist/esm/core-flow/Loop.d.ts +2 -1
  203. package/dist/esm/core-flow/Loop.js +18 -12
  204. package/dist/esm/core-flow/Loop.js.map +1 -1
  205. package/dist/esm/core-flow/Parallel.d.ts +2 -1
  206. package/dist/esm/core-flow/Parallel.js +26 -15
  207. package/dist/esm/core-flow/Parallel.js.map +1 -1
  208. package/dist/esm/core-flow/Sequence.d.ts +2 -1
  209. package/dist/esm/core-flow/Sequence.js +18 -12
  210. package/dist/esm/core-flow/Sequence.js.map +1 -1
  211. package/dist/esm/core-flow/Workflow.d.ts +2 -1
  212. package/dist/esm/core-flow/Workflow.js +18 -12
  213. package/dist/esm/core-flow/Workflow.js.map +1 -1
  214. package/dist/esm/doors/security.d.ts +2 -1
  215. package/dist/esm/doors/security.js +2 -1
  216. package/dist/esm/doors/security.js.map +1 -1
  217. package/dist/esm/events/payloads.d.ts +4 -2
  218. package/dist/esm/hosting/index.d.ts +1 -0
  219. package/dist/esm/hosting/index.js.map +1 -1
  220. package/dist/esm/hosting/protocolAdapter.d.ts +4 -1
  221. package/dist/esm/hosting/refusalStatus.js +4 -0
  222. package/dist/esm/hosting/refusalStatus.js.map +1 -1
  223. package/dist/esm/hosting/requestSealing.d.ts +65 -0
  224. package/dist/esm/hosting/requestSealing.js +79 -0
  225. package/dist/esm/hosting/requestSealing.js.map +1 -0
  226. package/dist/esm/hosting/standingAgent.js +23 -3
  227. package/dist/esm/hosting/standingAgent.js.map +1 -1
  228. package/dist/esm/hosting/stream.d.ts +23 -2
  229. package/dist/esm/hosting/stream.js +5 -1
  230. package/dist/esm/hosting/stream.js.map +1 -1
  231. package/dist/esm/hosting/streamHandler.d.ts +26 -7
  232. package/dist/esm/hosting/streamHandler.js +36 -12
  233. package/dist/esm/hosting/streamHandler.js.map +1 -1
  234. package/dist/esm/hosting/types.d.ts +29 -0
  235. package/dist/esm/hosting/types.js.map +1 -1
  236. package/dist/esm/identity/requestContext.d.ts +96 -0
  237. package/dist/esm/identity/requestContext.js +131 -0
  238. package/dist/esm/identity/requestContext.js.map +1 -0
  239. package/dist/esm/identity/requestCredentials.d.ts +99 -0
  240. package/dist/esm/identity/requestCredentials.js +157 -0
  241. package/dist/esm/identity/requestCredentials.js.map +1 -0
  242. package/dist/esm/identity/types.d.ts +11 -0
  243. package/dist/esm/identity/types.js.map +1 -1
  244. package/dist/esm/identity.d.ts +2 -0
  245. package/dist/esm/identity.js +5 -0
  246. package/dist/esm/identity.js.map +1 -1
  247. package/dist/esm/index.d.ts +3 -2
  248. package/dist/esm/index.js +5 -1
  249. package/dist/esm/index.js.map +1 -1
  250. package/dist/esm/injection-engine/buildInjectionEngineSubflow.d.ts +11 -0
  251. package/dist/esm/injection-engine/buildInjectionEngineSubflow.js +39 -5
  252. package/dist/esm/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
  253. package/dist/esm/injection-engine/constrainedEnumPick.js +4 -2
  254. package/dist/esm/injection-engine/constrainedEnumPick.js.map +1 -1
  255. package/dist/esm/injection-engine/evaluator.d.ts +6 -0
  256. package/dist/esm/injection-engine/evaluator.js +19 -1
  257. package/dist/esm/injection-engine/evaluator.js.map +1 -1
  258. package/dist/esm/injection-engine/skillGraph.js +26 -8
  259. package/dist/esm/injection-engine/skillGraph.js.map +1 -1
  260. package/dist/esm/injection-engine/skillIntent.d.ts +4 -2
  261. package/dist/esm/injection-engine/skillIntent.js +3 -0
  262. package/dist/esm/injection-engine/skillIntent.js.map +1 -1
  263. package/dist/esm/injection-engine/types.d.ts +27 -1
  264. package/dist/esm/injection-engine/types.js +15 -0
  265. package/dist/esm/injection-engine/types.js.map +1 -1
  266. package/dist/esm/lib/abort.d.ts +143 -0
  267. package/dist/esm/lib/abort.js +322 -0
  268. package/dist/esm/lib/abort.js.map +1 -0
  269. package/dist/esm/maps/engagement/parkCard.d.ts +5 -1
  270. package/dist/esm/maps/engagement/parkCard.js +10 -3
  271. package/dist/esm/maps/engagement/parkCard.js.map +1 -1
  272. package/dist/esm/mcp/mcpClient.js +30 -2
  273. package/dist/esm/mcp/mcpClient.js.map +1 -1
  274. package/dist/esm/mcp/mcpServe.js +5 -1
  275. package/dist/esm/mcp/mcpServe.js.map +1 -1
  276. package/dist/esm/mcp/plainData.d.ts +44 -0
  277. package/dist/esm/mcp/plainData.js +204 -0
  278. package/dist/esm/mcp/plainData.js.map +1 -0
  279. package/dist/esm/mcp/sdkLoadFailure.d.ts +6 -7
  280. package/dist/esm/mcp/sdkLoadFailure.js +4 -4
  281. package/dist/esm/mcp/sdkLoadFailure.js.map +1 -1
  282. package/dist/esm/mcp/toolResult.js +8 -50
  283. package/dist/esm/mcp/toolResult.js.map +1 -1
  284. package/dist/esm/mcp/types.d.ts +10 -6
  285. package/dist/esm/memory/beats/llmExtractor.js +6 -3
  286. package/dist/esm/memory/beats/llmExtractor.js.map +1 -1
  287. package/dist/esm/memory/facts/llmFactExtractor.js +6 -3
  288. package/dist/esm/memory/facts/llmFactExtractor.js.map +1 -1
  289. package/dist/esm/memory/stages/summarize.js +16 -5
  290. package/dist/esm/memory/stages/summarize.js.map +1 -1
  291. package/dist/esm/patterns/LlmRouter.js +10 -5
  292. package/dist/esm/patterns/LlmRouter.js.map +1 -1
  293. package/dist/esm/redaction/conversation.js +3 -0
  294. package/dist/esm/redaction/conversation.js.map +1 -1
  295. package/dist/esm/redaction/knownStrings.js +1 -0
  296. package/dist/esm/redaction/knownStrings.js.map +1 -1
  297. package/dist/esm/reliability/buildReliabilityGateChart.js +7 -1
  298. package/dist/esm/reliability/buildReliabilityGateChart.js.map +1 -1
  299. package/dist/esm/resilience/withCircuitBreaker.js +5 -2
  300. package/dist/esm/resilience/withCircuitBreaker.js.map +1 -1
  301. package/dist/esm/resilience/withFallback.js +6 -0
  302. package/dist/esm/resilience/withFallback.js.map +1 -1
  303. package/dist/esm/resilience/withRetry.js +5 -0
  304. package/dist/esm/resilience/withRetry.js.map +1 -1
  305. package/dist/esm/time-travel/servedView.js +1 -1
  306. package/dist/esm/time-travel/servedView.js.map +1 -1
  307. package/dist/esm/tools/hostFilled.d.ts +110 -0
  308. package/dist/esm/tools/hostFilled.js +509 -0
  309. package/dist/esm/tools/hostFilled.js.map +1 -0
  310. package/dist/hosting/index.js.map +1 -1
  311. package/dist/hosting/refusalStatus.js +4 -0
  312. package/dist/hosting/refusalStatus.js.map +1 -1
  313. package/dist/hosting/requestSealing.js +83 -0
  314. package/dist/hosting/requestSealing.js.map +1 -0
  315. package/dist/hosting/standingAgent.js +23 -3
  316. package/dist/hosting/standingAgent.js.map +1 -1
  317. package/dist/hosting/stream.js +5 -1
  318. package/dist/hosting/stream.js.map +1 -1
  319. package/dist/hosting/streamHandler.js +36 -12
  320. package/dist/hosting/streamHandler.js.map +1 -1
  321. package/dist/hosting/types.js.map +1 -1
  322. package/dist/identity/requestContext.js +139 -0
  323. package/dist/identity/requestContext.js.map +1 -0
  324. package/dist/identity/requestCredentials.js +165 -0
  325. package/dist/identity/requestCredentials.js.map +1 -0
  326. package/dist/identity/types.js.map +1 -1
  327. package/dist/identity.js +13 -1
  328. package/dist/identity.js.map +1 -1
  329. package/dist/index.js +15 -4
  330. package/dist/index.js.map +1 -1
  331. package/dist/injection-engine/buildInjectionEngineSubflow.js +38 -4
  332. package/dist/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
  333. package/dist/injection-engine/constrainedEnumPick.js +4 -2
  334. package/dist/injection-engine/constrainedEnumPick.js.map +1 -1
  335. package/dist/injection-engine/evaluator.js +18 -0
  336. package/dist/injection-engine/evaluator.js.map +1 -1
  337. package/dist/injection-engine/skillGraph.js +25 -7
  338. package/dist/injection-engine/skillGraph.js.map +1 -1
  339. package/dist/injection-engine/skillIntent.js +3 -0
  340. package/dist/injection-engine/skillIntent.js.map +1 -1
  341. package/dist/injection-engine/types.js +17 -1
  342. package/dist/injection-engine/types.js.map +1 -1
  343. package/dist/lib/abort.js +336 -0
  344. package/dist/lib/abort.js.map +1 -0
  345. package/dist/maps/engagement/parkCard.js +10 -3
  346. package/dist/maps/engagement/parkCard.js.map +1 -1
  347. package/dist/mcp/mcpClient.js +30 -2
  348. package/dist/mcp/mcpClient.js.map +1 -1
  349. package/dist/mcp/mcpServe.js +5 -1
  350. package/dist/mcp/mcpServe.js.map +1 -1
  351. package/dist/mcp/plainData.js +208 -0
  352. package/dist/mcp/plainData.js.map +1 -0
  353. package/dist/mcp/sdkLoadFailure.js +4 -4
  354. package/dist/mcp/sdkLoadFailure.js.map +1 -1
  355. package/dist/mcp/toolResult.js +8 -50
  356. package/dist/mcp/toolResult.js.map +1 -1
  357. package/dist/memory/beats/llmExtractor.js +6 -3
  358. package/dist/memory/beats/llmExtractor.js.map +1 -1
  359. package/dist/memory/facts/llmFactExtractor.js +6 -3
  360. package/dist/memory/facts/llmFactExtractor.js.map +1 -1
  361. package/dist/memory/stages/summarize.js +16 -5
  362. package/dist/memory/stages/summarize.js.map +1 -1
  363. package/dist/patterns/LlmRouter.js +9 -4
  364. package/dist/patterns/LlmRouter.js.map +1 -1
  365. package/dist/redaction/conversation.js +3 -0
  366. package/dist/redaction/conversation.js.map +1 -1
  367. package/dist/redaction/knownStrings.js +1 -0
  368. package/dist/redaction/knownStrings.js.map +1 -1
  369. package/dist/reliability/buildReliabilityGateChart.js +7 -1
  370. package/dist/reliability/buildReliabilityGateChart.js.map +1 -1
  371. package/dist/resilience/withCircuitBreaker.js +5 -2
  372. package/dist/resilience/withCircuitBreaker.js.map +1 -1
  373. package/dist/resilience/withFallback.js +6 -0
  374. package/dist/resilience/withFallback.js.map +1 -1
  375. package/dist/resilience/withRetry.js +5 -0
  376. package/dist/resilience/withRetry.js.map +1 -1
  377. package/dist/time-travel/servedView.js +1 -1
  378. package/dist/time-travel/servedView.js.map +1 -1
  379. package/dist/tools/hostFilled.js +517 -0
  380. package/dist/tools/hostFilled.js.map +1 -0
  381. package/dist/types/adapters/llm/AnthropicProvider.d.ts +9 -2
  382. package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
  383. package/dist/types/adapters/llm/BedrockProvider.d.ts +6 -1
  384. package/dist/types/adapters/llm/BedrockProvider.d.ts.map +1 -1
  385. package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts.map +1 -1
  386. package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts.map +1 -1
  387. package/dist/types/adapters/llm/FoundryLocalProvider.d.ts.map +1 -1
  388. package/dist/types/adapters/llm/GeminiProvider.d.ts.map +1 -1
  389. package/dist/types/adapters/llm/InvokeModelGatewayProvider.d.ts.map +1 -1
  390. package/dist/types/adapters/llm/MockProvider.d.ts.map +1 -1
  391. package/dist/types/adapters/llm/OllamaProvider.d.ts.map +1 -1
  392. package/dist/types/adapters/llm/OpenAIProvider.d.ts +6 -1
  393. package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
  394. package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts +1 -1
  395. package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts.map +1 -1
  396. package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts +26 -3
  397. package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts.map +1 -1
  398. package/dist/types/ag-ui/adapter.d.ts +61 -11
  399. package/dist/types/ag-ui/adapter.d.ts.map +1 -1
  400. package/dist/types/ag-ui/framing.d.ts +2 -1
  401. package/dist/types/ag-ui/framing.d.ts.map +1 -1
  402. package/dist/types/ag-ui/index.d.ts +6 -4
  403. package/dist/types/ag-ui/index.d.ts.map +1 -1
  404. package/dist/types/ag-ui/request.d.ts +86 -7
  405. package/dist/types/ag-ui/request.d.ts.map +1 -1
  406. package/dist/types/answer-validation/index.d.ts +2 -1
  407. package/dist/types/answer-validation/index.d.ts.map +1 -1
  408. package/dist/types/answer-validation/toolLedger.d.ts +66 -0
  409. package/dist/types/answer-validation/toolLedger.d.ts.map +1 -0
  410. package/dist/types/answer-validation/types.d.ts +48 -0
  411. package/dist/types/answer-validation/types.d.ts.map +1 -1
  412. package/dist/types/answer-validation/validate.d.ts +2 -2
  413. package/dist/types/answer-validation/validate.d.ts.map +1 -1
  414. package/dist/types/classify/typesafe.d.ts.map +1 -1
  415. package/dist/types/core/Agent.d.ts +9 -1
  416. package/dist/types/core/Agent.d.ts.map +1 -1
  417. package/dist/types/core/LLMCall.d.ts +2 -1
  418. package/dist/types/core/LLMCall.d.ts.map +1 -1
  419. package/dist/types/core/RunnerBase.d.ts +39 -8
  420. package/dist/types/core/RunnerBase.d.ts.map +1 -1
  421. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  422. package/dist/types/core/agent/buildAgentMessageApiChart.d.ts +16 -0
  423. package/dist/types/core/agent/buildAgentMessageApiChart.d.ts.map +1 -1
  424. package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
  425. package/dist/types/core/agent/buildMessageApiChart.d.ts +16 -0
  426. package/dist/types/core/agent/buildMessageApiChart.d.ts.map +1 -1
  427. package/dist/types/core/agent/stages/answerValidation.d.ts.map +1 -1
  428. package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
  429. package/dist/types/core/agent/stages/routeTurn.d.ts.map +1 -1
  430. package/dist/types/core/agent/stages/seed.d.ts +7 -0
  431. package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
  432. package/dist/types/core/agent/stages/toolCalls.d.ts +21 -0
  433. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  434. package/dist/types/core/agent/types.d.ts +10 -0
  435. package/dist/types/core/agent/types.d.ts.map +1 -1
  436. package/dist/types/core/agent/window/strategies/summarizeOldest.d.ts.map +1 -1
  437. package/dist/types/core/agent/window/summarize.d.ts.map +1 -1
  438. package/dist/types/core/memberRun.d.ts +23 -2
  439. package/dist/types/core/memberRun.d.ts.map +1 -1
  440. package/dist/types/core/requestOfRun.d.ts +22 -0
  441. package/dist/types/core/requestOfRun.d.ts.map +1 -0
  442. package/dist/types/core/runner.d.ts +15 -3
  443. package/dist/types/core/runner.d.ts.map +1 -1
  444. package/dist/types/core/slots/buildToolsSlot.d.ts +0 -16
  445. package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
  446. package/dist/types/core-flow/Conditional.d.ts +2 -1
  447. package/dist/types/core-flow/Conditional.d.ts.map +1 -1
  448. package/dist/types/core-flow/Graph.d.ts +2 -1
  449. package/dist/types/core-flow/Graph.d.ts.map +1 -1
  450. package/dist/types/core-flow/Loop.d.ts +2 -1
  451. package/dist/types/core-flow/Loop.d.ts.map +1 -1
  452. package/dist/types/core-flow/Parallel.d.ts +2 -1
  453. package/dist/types/core-flow/Parallel.d.ts.map +1 -1
  454. package/dist/types/core-flow/Sequence.d.ts +2 -1
  455. package/dist/types/core-flow/Sequence.d.ts.map +1 -1
  456. package/dist/types/core-flow/Workflow.d.ts +2 -1
  457. package/dist/types/core-flow/Workflow.d.ts.map +1 -1
  458. package/dist/types/doors/security.d.ts +2 -1
  459. package/dist/types/doors/security.d.ts.map +1 -1
  460. package/dist/types/events/payloads.d.ts +4 -2
  461. package/dist/types/events/payloads.d.ts.map +1 -1
  462. package/dist/types/hosting/index.d.ts +1 -0
  463. package/dist/types/hosting/index.d.ts.map +1 -1
  464. package/dist/types/hosting/protocolAdapter.d.ts +4 -1
  465. package/dist/types/hosting/protocolAdapter.d.ts.map +1 -1
  466. package/dist/types/hosting/refusalStatus.d.ts.map +1 -1
  467. package/dist/types/hosting/requestSealing.d.ts +66 -0
  468. package/dist/types/hosting/requestSealing.d.ts.map +1 -0
  469. package/dist/types/hosting/standingAgent.d.ts.map +1 -1
  470. package/dist/types/hosting/stream.d.ts +23 -2
  471. package/dist/types/hosting/stream.d.ts.map +1 -1
  472. package/dist/types/hosting/streamHandler.d.ts +26 -7
  473. package/dist/types/hosting/streamHandler.d.ts.map +1 -1
  474. package/dist/types/hosting/types.d.ts +29 -0
  475. package/dist/types/hosting/types.d.ts.map +1 -1
  476. package/dist/types/identity/requestContext.d.ts +97 -0
  477. package/dist/types/identity/requestContext.d.ts.map +1 -0
  478. package/dist/types/identity/requestCredentials.d.ts +100 -0
  479. package/dist/types/identity/requestCredentials.d.ts.map +1 -0
  480. package/dist/types/identity/types.d.ts +11 -0
  481. package/dist/types/identity/types.d.ts.map +1 -1
  482. package/dist/types/identity.d.ts +2 -0
  483. package/dist/types/identity.d.ts.map +1 -1
  484. package/dist/types/index.d.ts +3 -2
  485. package/dist/types/index.d.ts.map +1 -1
  486. package/dist/types/injection-engine/buildInjectionEngineSubflow.d.ts +11 -0
  487. package/dist/types/injection-engine/buildInjectionEngineSubflow.d.ts.map +1 -1
  488. package/dist/types/injection-engine/constrainedEnumPick.d.ts.map +1 -1
  489. package/dist/types/injection-engine/evaluator.d.ts +6 -0
  490. package/dist/types/injection-engine/evaluator.d.ts.map +1 -1
  491. package/dist/types/injection-engine/skillIntent.d.ts +4 -2
  492. package/dist/types/injection-engine/skillIntent.d.ts.map +1 -1
  493. package/dist/types/injection-engine/types.d.ts +27 -1
  494. package/dist/types/injection-engine/types.d.ts.map +1 -1
  495. package/dist/types/lib/abort.d.ts +144 -0
  496. package/dist/types/lib/abort.d.ts.map +1 -0
  497. package/dist/types/maps/engagement/parkCard.d.ts +5 -1
  498. package/dist/types/maps/engagement/parkCard.d.ts.map +1 -1
  499. package/dist/types/mcp/mcpServe.d.ts.map +1 -1
  500. package/dist/types/mcp/plainData.d.ts +45 -0
  501. package/dist/types/mcp/plainData.d.ts.map +1 -0
  502. package/dist/types/mcp/sdkLoadFailure.d.ts +6 -7
  503. package/dist/types/mcp/sdkLoadFailure.d.ts.map +1 -1
  504. package/dist/types/mcp/toolResult.d.ts.map +1 -1
  505. package/dist/types/mcp/types.d.ts +10 -6
  506. package/dist/types/mcp/types.d.ts.map +1 -1
  507. package/dist/types/memory/beats/llmExtractor.d.ts.map +1 -1
  508. package/dist/types/memory/facts/llmFactExtractor.d.ts.map +1 -1
  509. package/dist/types/memory/stages/summarize.d.ts.map +1 -1
  510. package/dist/types/patterns/LlmRouter.d.ts.map +1 -1
  511. package/dist/types/redaction/conversation.d.ts.map +1 -1
  512. package/dist/types/redaction/knownStrings.d.ts.map +1 -1
  513. package/dist/types/reliability/buildReliabilityGateChart.d.ts.map +1 -1
  514. package/dist/types/resilience/withCircuitBreaker.d.ts.map +1 -1
  515. package/dist/types/resilience/withFallback.d.ts.map +1 -1
  516. package/dist/types/resilience/withRetry.d.ts.map +1 -1
  517. package/dist/types/tools/hostFilled.d.ts +111 -0
  518. package/dist/types/tools/hostFilled.d.ts.map +1 -0
  519. package/package.json +1 -1
@@ -0,0 +1,509 @@
1
+ /**
2
+ * hostFilled — tool arguments the HOST fills, from the run's credential or
3
+ * identity. The model never sees them and cannot set them.
4
+ *
5
+ * ```ts
6
+ * import { hostFilled, fromCredential, fromIdentity } from 'agentfootprint';
7
+ *
8
+ * // An MCP server whose every tool takes a `token` argument:
9
+ * const tools = hostFilled(await crm.tools(), {
10
+ * token: fromCredential({ service: 'crm' }), // ctx.credential, resolved per call
11
+ * tenantId: fromIdentity('tenant'), // ctx.identity.tenant
12
+ * });
13
+ * ```
14
+ *
15
+ * ── What it does ────────────────────────────────────────────────────────────
16
+ * 1. **Removes the field from the schema the model sees** (`properties` and
17
+ * `required`). The model is never told the argument exists.
18
+ * 2. **Refuses a model-supplied value by name.** A call that sends the field
19
+ * anyway — guessed, injected by a document, copied from another tool — is
20
+ * refused with a result naming the argument, and the tool does not run.
21
+ * 3. **Fills it at the last moment**, inside `execute`, from `ctx.credential`
22
+ * (the tool's declared `needs`, which `fromCredential({ service })` sets
23
+ * when the tool has none) or `ctx.identity`. A missing value refuses the
24
+ * call by name — never an empty or default value.
25
+ *
26
+ * ── Why a wrapper around `execute` ──────────────────────────────────────────
27
+ * The filled value exists only inside the call: the arguments every dispatch
28
+ * door records (`tool_start`, history, the commit log, a consent pause's
29
+ * checkpoint) are the MODEL's arguments, which never held it. Wrapping
30
+ * `execute` makes that true at every door — the agent loop, a resumed call,
31
+ * an inner `ctx.tools` call and `mcpServe` — without each door knowing.
32
+ *
33
+ * A credential value is also SCRUBBED on the way out: every occurrence in the
34
+ * tool's result is replaced by `[host-filled]`, and a thrown error that
35
+ * carries it (an SDK that echoes its request) is replaced by one that does
36
+ * not. That is defence in depth for a server that echoes; it cannot cover a
37
+ * value the tool transforms (base64, hashing) or sends elsewhere itself.
38
+ * Identity values are not secrets and are not scrubbed.
39
+ *
40
+ * Pattern: Decorator over `Tool` (declaration + execute). Role: tools, argument law.
41
+ */
42
+ /**
43
+ * Fill the argument from the call's credential. With `service`, the tool's
44
+ * `needs` is declared for you (a tool that already declares one must name the
45
+ * same service, or omit `service`).
46
+ */
47
+ export function fromCredential(options = {}) {
48
+ return { from: 'credential', ...options };
49
+ }
50
+ /** Fill the argument from the identity the run's caller named. */
51
+ export function fromIdentity(field) {
52
+ return { from: 'identity', field };
53
+ }
54
+ /**
55
+ * A model sent a value for an argument the host fills. The call is refused
56
+ * and the tool does not run. Names the arguments, never a value.
57
+ */
58
+ export class HostFilledArgumentError extends Error {
59
+ toolName;
60
+ fields;
61
+ code = 'ERR_HOST_FILLED_ARGUMENT';
62
+ constructor(toolName, fields) {
63
+ super(`tool '${toolName}': ${fields.map((f) => `'${f}'`).join(', ')} ` +
64
+ `${fields.length === 1 ? 'is' : 'are'} filled by the host and cannot be set by the ` +
65
+ 'caller — call the tool again without it.');
66
+ this.toolName = toolName;
67
+ this.fields = fields;
68
+ this.name = 'HostFilledArgumentError';
69
+ }
70
+ }
71
+ /**
72
+ * A host-filled argument had no value for this call — no credential was
73
+ * resolved, the credential has no single value to read, or the run's caller
74
+ * named no such identity field. The call is refused; nothing is guessed.
75
+ */
76
+ export class HostFilledValueMissingError extends Error {
77
+ toolName;
78
+ field;
79
+ code = 'ERR_HOST_FILLED_VALUE_MISSING';
80
+ constructor(toolName, field, why) {
81
+ super(`tool '${toolName}': argument '${field}' is filled by the host, and ${why}.`);
82
+ this.toolName = toolName;
83
+ this.field = field;
84
+ this.name = 'HostFilledValueMissingError';
85
+ }
86
+ }
87
+ /** Below this length a credential's OTHER values (header values) are not scrubbed. */
88
+ const MIN_SCRUB_LENGTH = 8;
89
+ /** What replaces a credential value in a result or an error. */
90
+ export const HOST_FILLED_PLACEHOLDER = '[host-filled]';
91
+ export function hostFilled(toolOrTools, fills) {
92
+ const checked = checkFills(fills);
93
+ if (!Array.isArray(toolOrTools))
94
+ return wrapTool(toolOrTools, checked, true);
95
+ const tools = toolOrTools;
96
+ const unused = new Set(Object.keys(checked));
97
+ const out = tools.map((tool) => {
98
+ const own = Object.fromEntries(
99
+ // The tools that take the field as an argument of the call. One that
100
+ // declares it only through a root combinator (`allOf`/`anyOf`/`oneOf`,
101
+ // `if`/`then`, `$defs`) takes it too, and cannot have it removed — it is
102
+ // refused, never left model-settable. One that names it only inside a
103
+ // nested object (a `cursor.token` pagination field) has a different
104
+ // argument and is left alone.
105
+ Object.entries(checked).filter(([field]) => {
106
+ if (Object.hasOwn(propertiesOf(tool), field))
107
+ return true;
108
+ if (declaresAtRoot(tool.schema?.inputSchema, field))
109
+ refuseNested(tool, field);
110
+ return false;
111
+ }));
112
+ for (const field of Object.keys(own))
113
+ unused.delete(field);
114
+ return Object.keys(own).length === 0 ? tool : wrapTool(tool, own, false);
115
+ });
116
+ if (unused.size > 0) {
117
+ throw new TypeError(`hostFilled: no tool in the list declares ${[...unused].map((f) => `'${f}'`).join(', ')}.`);
118
+ }
119
+ return out;
120
+ }
121
+ // ─── Build-time checks ──────────────────────────────────────────────
122
+ function checkFills(fills) {
123
+ if (fills === null || typeof fills !== 'object' || Array.isArray(fills)) {
124
+ throw new TypeError('hostFilled: `fills` must be an object of argument → fill.');
125
+ }
126
+ const names = Object.keys(fills);
127
+ if (names.length === 0)
128
+ throw new TypeError('hostFilled: `fills` names no argument.');
129
+ for (const name of names) {
130
+ const fill = fills[name];
131
+ const ok = (fill?.from === 'credential' &&
132
+ (fill.read === undefined ||
133
+ typeof fill.read === 'function')) ||
134
+ (fill?.from === 'identity' &&
135
+ ['principal', 'tenant', 'conversationId'].includes(fill.field));
136
+ if (!ok) {
137
+ throw new TypeError(`hostFilled: argument '${name}' needs fromCredential(…) or fromIdentity('principal' | ` +
138
+ "'tenant' | 'conversationId').");
139
+ }
140
+ }
141
+ return fills;
142
+ }
143
+ function propertiesOf(tool) {
144
+ const props = tool.schema?.inputSchema
145
+ ?.properties;
146
+ return props !== null && typeof props === 'object' ? props : {};
147
+ }
148
+ /** The one service a tool's credential fills read, checked against its own `needs`. */
149
+ function needsFor(tool, fills) {
150
+ const name = tool.schema.name;
151
+ const credentialFills = Object.entries(fills).filter((e) => e[1].from === 'credential');
152
+ if (credentialFills.length === 0)
153
+ return tool.needs;
154
+ const named = new Set(credentialFills.map(([, f]) => f.service).filter((s) => s !== undefined));
155
+ if (named.size > 1) {
156
+ throw new TypeError(`hostFilled: tool '${name}' takes ONE credential (its \`needs\`), and the fills name ` +
157
+ `${[...named].map((s) => `'${s}'`).join(' and ')}.`);
158
+ }
159
+ const service = [...named][0];
160
+ if (tool.needs !== undefined) {
161
+ if (service !== undefined && service !== tool.needs.credential) {
162
+ throw new TypeError(`hostFilled: tool '${name}' already needs credential '${tool.needs.credential}', and a ` +
163
+ `fill names '${service}'.`);
164
+ }
165
+ return tool.needs;
166
+ }
167
+ if (service === undefined) {
168
+ throw new TypeError(`hostFilled: tool '${name}' declares no \`needs\` — say which credential fills ` +
169
+ `${credentialFills.map(([f]) => `'${f}'`).join(', ')}: fromCredential({ service }).`);
170
+ }
171
+ const declared = credentialFills.find(([, f]) => f.service === service)?.[1];
172
+ return {
173
+ credential: service,
174
+ ...(declared?.scopes !== undefined && { scopes: declared.scopes }),
175
+ ...(declared?.mode !== undefined && { mode: declared.mode }),
176
+ };
177
+ }
178
+ function wrapTool(tool, fills, strict) {
179
+ const name = tool.schema.name;
180
+ const props = propertiesOf(tool);
181
+ for (const field of Object.keys(fills)) {
182
+ if (strict && !Object.hasOwn(props, field)) {
183
+ if (declaresAtRoot(tool.schema.inputSchema, field))
184
+ refuseNested(tool, field);
185
+ throw new TypeError(`hostFilled: tool '${name}' has no argument '${field}'.`);
186
+ }
187
+ // Also named in a combinator or a nested schema: it cannot be removed from
188
+ // everything the model reads, so the tool is refused rather than left
189
+ // half-hidden.
190
+ if (mentionsElsewhere(tool.schema.inputSchema, field))
191
+ refuseNested(tool, field);
192
+ if (tool.wants !== undefined && Object.hasOwn(tool.wants, field)) {
193
+ throw new TypeError(`hostFilled: tool '${name}' declares '${field}' under \`wants\` — an argument is filled ` +
194
+ 'by the host or resolved from a ref, not both.');
195
+ }
196
+ if (tool.askOrAssume !== undefined && Object.hasOwn(tool.askOrAssume, field)) {
197
+ throw new TypeError(`hostFilled: tool '${name}' declares '${field}' under \`askOrAssume\` — an argument is ` +
198
+ 'filled by the host or asked of a person, not both.');
199
+ }
200
+ }
201
+ const needs = needsFor(tool, fills);
202
+ const inputSchema = withoutFields(tool.schema.inputSchema, Object.keys(fills));
203
+ const fieldNames = Object.keys(fills);
204
+ const inner = tool.execute.bind(tool);
205
+ return {
206
+ ...tool,
207
+ schema: { ...tool.schema, inputSchema },
208
+ ...(needs !== undefined && { needs }),
209
+ async execute(args, ctx) {
210
+ const given = isRecord(args) ? fieldNames.filter((f) => Object.hasOwn(args, f)) : [];
211
+ if (given.length > 0)
212
+ throw new HostFilledArgumentError(name, given);
213
+ const filled = {};
214
+ const secrets = [];
215
+ for (const field of fieldNames) {
216
+ const fill = fills[field];
217
+ const value = valueOf(name, field, fill, ctx);
218
+ filled[field] = value;
219
+ if (fill.from === 'credential')
220
+ secrets.push(value, ...credentialValues(ctx.credential));
221
+ }
222
+ const base = isRecord(args) ? args : {};
223
+ try {
224
+ const result = await inner({ ...base, ...filled }, ctx);
225
+ return secrets.length === 0 ? result : scrubValue(result, secrets);
226
+ }
227
+ catch (err) {
228
+ throw secrets.length === 0 || !carries(err, secrets, 0, new Set())
229
+ ? err
230
+ : scrubbedError(err, secrets);
231
+ }
232
+ },
233
+ };
234
+ }
235
+ /**
236
+ * Whether `field` is named anywhere in the schema OTHER than the root's own
237
+ * `properties` / `required` — a combinator (`allOf`/`anyOf`/`oneOf`, `if`/
238
+ * `then`/`else`, `not`), `$defs`, `dependentRequired`/`dependencies`, or a
239
+ * nested object's `properties`/`required`. The root's own property schema is
240
+ * not walked.
241
+ */
242
+ function mentionsElsewhere(schema, field) {
243
+ if (schema === null || typeof schema !== 'object')
244
+ return false;
245
+ const seen = new Set();
246
+ const walk = (node, root) => {
247
+ if (node === null || typeof node !== 'object' || seen.has(node))
248
+ return false;
249
+ seen.add(node);
250
+ if (Array.isArray(node))
251
+ return node.some((n) => walk(n, false));
252
+ const obj = node;
253
+ if (!root) {
254
+ const props = obj.properties;
255
+ if (props !== null && typeof props === 'object' && Object.hasOwn(props, field))
256
+ return true;
257
+ if (Array.isArray(obj.required) && obj.required.includes(field))
258
+ return true;
259
+ }
260
+ for (const key of ['dependentRequired', 'dependencies', 'dependentSchemas']) {
261
+ const dep = obj[key];
262
+ if (dep !== null && typeof dep === 'object') {
263
+ if (Object.hasOwn(dep, field))
264
+ return true;
265
+ for (const v of Object.values(dep)) {
266
+ if (Array.isArray(v) && v.includes(field))
267
+ return true;
268
+ }
269
+ }
270
+ }
271
+ for (const [key, value] of Object.entries(obj)) {
272
+ if (root && key === 'required')
273
+ continue;
274
+ if (root && key === 'properties' && value !== null && typeof value === 'object') {
275
+ for (const [prop, sub] of Object.entries(value)) {
276
+ if (prop !== field && walk(sub, false))
277
+ return true;
278
+ }
279
+ continue;
280
+ }
281
+ if (walk(value, false))
282
+ return true;
283
+ }
284
+ return false;
285
+ };
286
+ return walk(schema, true);
287
+ }
288
+ /**
289
+ * Whether the ROOT object's shape names `field` through a combinator or a
290
+ * definition — anything that makes it an argument of the call without being
291
+ * one of the root's own `properties`. Nested objects' properties are not
292
+ * walked.
293
+ */
294
+ function declaresAtRoot(schema, field) {
295
+ const SHAPE_KEYS = [
296
+ 'allOf',
297
+ 'anyOf',
298
+ 'oneOf',
299
+ 'not',
300
+ 'if',
301
+ 'then',
302
+ 'else',
303
+ '$defs',
304
+ 'definitions',
305
+ ];
306
+ const seen = new Set();
307
+ const walk = (node, root) => {
308
+ if (node === null || typeof node !== 'object' || seen.has(node))
309
+ return false;
310
+ seen.add(node);
311
+ if (Array.isArray(node))
312
+ return node.some((n) => walk(n, false));
313
+ const obj = node;
314
+ if (!root) {
315
+ const props = obj.properties;
316
+ if (props !== null && typeof props === 'object' && Object.hasOwn(props, field))
317
+ return true;
318
+ if (Array.isArray(obj.required) && obj.required.includes(field))
319
+ return true;
320
+ }
321
+ for (const key of ['dependentRequired', 'dependencies', 'dependentSchemas']) {
322
+ const dep = obj[key];
323
+ if (dep !== null && typeof dep === 'object' && Object.hasOwn(dep, field))
324
+ return true;
325
+ }
326
+ for (const key of SHAPE_KEYS) {
327
+ const value = obj[key];
328
+ if (value === null || typeof value !== 'object')
329
+ continue;
330
+ // `$defs` / `definitions` are maps of schemas; the others are schemas or lists.
331
+ const children = key === '$defs' || key === 'definitions' ? Object.values(value) : [value];
332
+ if (children.some((c) => walk(c, false)))
333
+ return true;
334
+ }
335
+ return false;
336
+ };
337
+ return walk(schema, true);
338
+ }
339
+ function refuseNested(tool, field) {
340
+ throw new TypeError(`hostFilled: tool '${tool.schema.name}' names '${field}' inside a nested schema or a ` +
341
+ 'combinator (allOf/anyOf/oneOf, $defs, dependentRequired …), where it cannot be removed ' +
342
+ 'from what the model reads — declare it as a top-level property, or wrap the tool yourself.');
343
+ }
344
+ function withoutFields(schema, fields) {
345
+ const props = { ...(schema.properties ?? {}) };
346
+ for (const f of fields)
347
+ delete props[f];
348
+ const out = { ...schema, properties: props };
349
+ if (Array.isArray(schema.required)) {
350
+ const required = schema.required.filter((r) => typeof r !== 'string' || !fields.includes(r));
351
+ if (required.length > 0)
352
+ out.required = required;
353
+ else
354
+ delete out.required;
355
+ }
356
+ return out;
357
+ }
358
+ // ─── Dispatch-time fill ─────────────────────────────────────────────
359
+ function valueOf(tool, field, fill, ctx) {
360
+ if (fill.from === 'identity') {
361
+ const value = ctx?.identity?.[fill.field];
362
+ if (typeof value !== 'string' || value === '') {
363
+ throw new HostFilledValueMissingError(tool, field, `the run's caller named no identity ${fill.field}`);
364
+ }
365
+ return value;
366
+ }
367
+ const credential = ctx?.credential;
368
+ if (credential === undefined) {
369
+ throw new HostFilledValueMissingError(tool, field, 'no credential was resolved for the call');
370
+ }
371
+ let value;
372
+ try {
373
+ value = fill.read !== undefined ? fill.read(credential) : defaultRead(credential);
374
+ }
375
+ catch {
376
+ value = undefined;
377
+ }
378
+ if (typeof value !== 'string' || value === '') {
379
+ throw new HostFilledValueMissingError(tool, field, `its '${credential.kind}' credential has no single value to fill it with` +
380
+ (fill.read === undefined ? ' — pass fromCredential({ read })' : ''));
381
+ }
382
+ return value;
383
+ }
384
+ /**
385
+ * Every value of the credential itself, beside the filled one — its raw
386
+ * token or key and its header values — so an echo of the bare token is
387
+ * scrubbed even when `read` filled a decorated form (`Bearer …`).
388
+ */
389
+ function credentialValues(credential) {
390
+ if (credential === undefined)
391
+ return [];
392
+ const out = [defaultRead(credential)];
393
+ try {
394
+ for (const v of Object.values(credential.toHeaders())) {
395
+ out.push(v);
396
+ if (typeof v === 'string' && /^(?:Bearer|Basic) /.test(v))
397
+ out.push(v.slice(v.indexOf(' ') + 1));
398
+ }
399
+ }
400
+ catch {
401
+ // A credential that cannot produce headers adds nothing.
402
+ }
403
+ // A short value (a header like `json`) would mangle ordinary text; only a
404
+ // value long enough to be a credential is scrubbed. The filled value itself
405
+ // is always scrubbed.
406
+ return out.filter((v) => typeof v === 'string' && v.length >= MIN_SCRUB_LENGTH);
407
+ }
408
+ function defaultRead(credential) {
409
+ const c = credential;
410
+ if (c.kind === 'bearer')
411
+ return c.token;
412
+ if (c.kind === 'apiKey')
413
+ return c.key;
414
+ return undefined;
415
+ }
416
+ // ─── Scrub on the way out ───────────────────────────────────────────
417
+ function isRecord(v) {
418
+ return v !== null && typeof v === 'object' && !Array.isArray(v);
419
+ }
420
+ function isPlainContainer(v) {
421
+ if (Array.isArray(v))
422
+ return true;
423
+ if (v === null || typeof v !== 'object')
424
+ return false;
425
+ const proto = Object.getPrototypeOf(v);
426
+ return proto === Object.prototype || proto === null;
427
+ }
428
+ function scrubText(text, secrets) {
429
+ let out = text;
430
+ // Longest first, so `Bearer x` is replaced whole before `x`.
431
+ for (const s of [...new Set(secrets)].sort((a, b) => b.length - a.length)) {
432
+ out = out.split(s).join(HOST_FILLED_PLACEHOLDER);
433
+ }
434
+ return out;
435
+ }
436
+ /** The value with every occurrence of a secret replaced; the SAME value when none. */
437
+ function scrubValue(value, secrets, seen = new Map()) {
438
+ if (typeof value === 'string')
439
+ return scrubText(value, secrets);
440
+ if (!isPlainContainer(value))
441
+ return value;
442
+ const prior = seen.get(value);
443
+ if (prior !== undefined)
444
+ return prior;
445
+ if (Array.isArray(value)) {
446
+ const out = [];
447
+ seen.set(value, out);
448
+ let changed = false;
449
+ for (const item of value) {
450
+ const next = scrubValue(item, secrets, seen);
451
+ if (next !== item)
452
+ changed = true;
453
+ out.push(next);
454
+ }
455
+ if (!changed)
456
+ seen.set(value, value);
457
+ return changed ? out : value;
458
+ }
459
+ const out = {};
460
+ seen.set(value, out);
461
+ let changed = false;
462
+ for (const key of Object.keys(value)) {
463
+ const item = value[key];
464
+ const next = scrubValue(item, secrets, seen);
465
+ if (next !== item)
466
+ changed = true;
467
+ out[key] = next;
468
+ }
469
+ if (!changed)
470
+ seen.set(value, value);
471
+ return changed ? out : value;
472
+ }
473
+ /** Whether a thrown value carries a secret anywhere a reader could find it. */
474
+ function carries(value, secrets, depth, seen) {
475
+ if (typeof value === 'string')
476
+ return secrets.some((s) => value.includes(s));
477
+ if (value === null || typeof value !== 'object' || depth > 8 || seen.has(value))
478
+ return false;
479
+ seen.add(value);
480
+ // An error's own fields are mostly non-enumerable (`message`, `stack`,
481
+ // `cause`, `AggregateError.errors`), so every own name is read.
482
+ const keys = value instanceof Error ? Object.getOwnPropertyNames(value) : Object.keys(value);
483
+ for (const key of keys) {
484
+ let item;
485
+ try {
486
+ item = value[key];
487
+ }
488
+ catch {
489
+ continue;
490
+ }
491
+ if (carries(item, secrets, depth + 1, seen))
492
+ return true;
493
+ }
494
+ return false;
495
+ }
496
+ /** A replacement error: the name and the scrubbed message, nothing else. */
497
+ function scrubbedError(err, secrets) {
498
+ let message;
499
+ try {
500
+ message = err instanceof Error ? String(err.message) : String(err);
501
+ }
502
+ catch {
503
+ message = 'the tool failed';
504
+ }
505
+ const out = new Error(scrubText(message, secrets));
506
+ out.name = err instanceof Error ? scrubText(err.name, secrets) : 'Error';
507
+ return out;
508
+ }
509
+ //# sourceMappingURL=hostFilled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostFilled.js","sourceRoot":"","sources":["../../../src/tools/hostFilled.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hosting/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hosting/index.ts"],"names":[],"mappings":"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"}
@@ -80,5 +80,9 @@ exports.REFUSAL_STATUS = Object.freeze({
80
80
  ERR_ORIGIN_NOT_ALLOWED: 403,
81
81
  ERR_HOST_NOT_ALLOWED: 421,
82
82
  ERR_INVALID_SESSION_ID: 400,
83
+ // The app's `sealRequest` could not seal the credential the request carries
84
+ // (a header missing or unreadable) — the request is what is wrong, and the
85
+ // same caller can send it again with the credential.
86
+ ERR_REQUEST_NOT_SEALED: 400,
83
87
  });
84
88
  //# sourceMappingURL=refusalStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"refusalStatus.js","sourceRoot":"","sources":["../../src/hosting/refusalStatus.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACU,QAAA,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;AACU,QAAA,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,83 @@
1
+ "use strict";
2
+ /**
3
+ * requestSealing — a host hands each run the credential that arrived with ITS
4
+ * request, sealed for that run alone.
5
+ *
6
+ * `requestContext({ secrets })` (`agentfootprint/security`) seals a request's
7
+ * secrets; `requestCredentials` vends them to the tools that declare a `needs`
8
+ * for them. A host that runs the agent for you (`standingAgent`,
9
+ * `streamHandler`) cannot know which header holds the credential, so it asks
10
+ * the app — once per request, with the request's headers — through the
11
+ * {@link RequestSealer} option `sealRequest`, and passes the handle to that
12
+ * request's `run()` / `resume()` and nowhere else. The sealer is handed the
13
+ * headers ONLY: nothing about who is calling, so it can never be tempted to
14
+ * look a stored credential up by a name the caller could have claimed.
15
+ *
16
+ * THE RULES, in one funnel ({@link requestSealing}):
17
+ * - asked only for a request that runs, after the caller is bound and every
18
+ * refusal is behind it — a refused request never seals anything;
19
+ * - the answer is a handle `requestContext` built, or `undefined` (no
20
+ * request: a tool that needs one fails closed, by name);
21
+ * - ONE HANDLE, ONE RUN, PROCESS-WIDE: a handle any host was handed before
22
+ * is refused, so a sealer that caches one — even one shared by two doors
23
+ * — cannot hand one caller's credential to another caller's run;
24
+ * - a sealer that throws refuses the request in FIXED words
25
+ * (`ERR_REQUEST_NOT_SEALED`, 400). Its own message is never sent: it may
26
+ * quote the value it could not read.
27
+ * The handle never enters a frame, a stored session or a checkpoint; the
28
+ * headers never leave the sealer.
29
+ *
30
+ * Pattern: guarded strategy call. Role: hosting, run input.
31
+ */
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.requestSealing = exports.REQUEST_NOT_SEALED = void 0;
34
+ const requestContext_js_1 = require("../identity/requestContext.js");
35
+ const errors_js_1 = require("./errors.js");
36
+ /** The code a request refused by its sealer carries — the status is 400. */
37
+ exports.REQUEST_NOT_SEALED = 'ERR_REQUEST_NOT_SEALED';
38
+ /**
39
+ * Every handle any host in this process handed to a run — held weakly,
40
+ * compared by identity. Module-wide on purpose: two doors sharing one caching
41
+ * sealer must not each accept the same handle once.
42
+ */
43
+ const handedToARun = new WeakSet();
44
+ /**
45
+ * The one funnel a host seals through: the app's sealer, checked. `undefined`
46
+ * when no sealer was given — the host passes no request, exactly as before.
47
+ *
48
+ * @throws TypeError at construction when `sealer` is not a function.
49
+ */
50
+ function requestSealing(sealer, door) {
51
+ if (sealer === undefined)
52
+ return undefined;
53
+ if (typeof sealer !== 'function') {
54
+ throw new TypeError(`[hosting] '${door}': sealRequest must be a function that returns ` +
55
+ 'requestContext({ secrets }) for one request, or undefined.');
56
+ }
57
+ return async (facts) => {
58
+ let handle;
59
+ try {
60
+ handle = await sealer(facts);
61
+ }
62
+ catch {
63
+ // Never the sealer's message: it may quote the value it could not read.
64
+ throw new errors_js_1.WireRequestRefusal(exports.REQUEST_NOT_SEALED, `'${door}': the credentials this request carries could not be sealed for its run.`, 400);
65
+ }
66
+ if (handle === undefined)
67
+ return undefined;
68
+ if (!(0, requestContext_js_1.isRequestContext)(handle)) {
69
+ throw new TypeError(`[hosting] '${door}': sealRequest must return a handle built by ` +
70
+ 'requestContext({ secrets }), or undefined — a plain object is refused, because its ' +
71
+ 'values would travel wherever the run options are logged or copied.');
72
+ }
73
+ if (handedToARun.has(handle)) {
74
+ throw new TypeError(`[hosting] '${door}': sealRequest returned a handle it returned before. Every ` +
75
+ "request seals its own — a shared handle hands one caller's credential to another " +
76
+ "caller's run.");
77
+ }
78
+ handedToARun.add(handle);
79
+ return handle;
80
+ };
81
+ }
82
+ exports.requestSealing = requestSealing;
83
+ //# sourceMappingURL=requestSealing.js.map