agentfootprint 10.3.1 → 10.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (749) hide show
  1. package/AGENTS.md +2 -2
  2. package/CAPABILITIES.md +12 -1
  3. package/README.md +44 -0
  4. package/ai-instructions/claude-code/SKILL.md +2 -2
  5. package/ai-instructions/clinerules +22 -11
  6. package/ai-instructions/copilot-instructions.md +22 -11
  7. package/ai-instructions/cursor/agentfootprint.md +22 -11
  8. package/ai-instructions/kiro/agentfootprint.md +22 -11
  9. package/ai-instructions/windsurfrules +22 -11
  10. package/dist/adapters/llm/AnthropicProvider.js +26 -8
  11. package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
  12. package/dist/adapters/llm/BedrockProvider.js +23 -7
  13. package/dist/adapters/llm/BedrockProvider.js.map +1 -1
  14. package/dist/adapters/llm/BrowserAnthropicProvider.js +57 -49
  15. package/dist/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
  16. package/dist/adapters/llm/BrowserOpenAIProvider.js +50 -42
  17. package/dist/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  18. package/dist/adapters/llm/FoundryLocalProvider.js +174 -212
  19. package/dist/adapters/llm/FoundryLocalProvider.js.map +1 -1
  20. package/dist/adapters/llm/GeminiProvider.js +23 -9
  21. package/dist/adapters/llm/GeminiProvider.js.map +1 -1
  22. package/dist/adapters/llm/InvokeModelGatewayProvider.js +32 -9
  23. package/dist/adapters/llm/InvokeModelGatewayProvider.js.map +1 -1
  24. package/dist/adapters/llm/MockProvider.js +11 -3
  25. package/dist/adapters/llm/MockProvider.js.map +1 -1
  26. package/dist/adapters/llm/OllamaProvider.js +129 -167
  27. package/dist/adapters/llm/OllamaProvider.js.map +1 -1
  28. package/dist/adapters/llm/OpenAIProvider.js +36 -9
  29. package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
  30. package/dist/adapters/mcp/agentcoreRuntime/errorType.js +24 -0
  31. package/dist/adapters/mcp/agentcoreRuntime/errorType.js.map +1 -0
  32. package/dist/adapters/mcp/agentcoreRuntime/invoke.js +272 -0
  33. package/dist/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -0
  34. package/dist/adapters/mcp/agentcoreRuntime/safeAnswer.js +415 -0
  35. package/dist/adapters/mcp/agentcoreRuntime/safeAnswer.js.map +1 -0
  36. package/dist/adapters/mcp/agentcoreRuntime/session.js +179 -0
  37. package/dist/adapters/mcp/agentcoreRuntime/session.js.map +1 -0
  38. package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js +117 -0
  39. package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -0
  40. package/dist/adapters/mcp/agentcoreRuntime/strictJson.js +220 -0
  41. package/dist/adapters/mcp/agentcoreRuntime/strictJson.js.map +1 -0
  42. package/dist/adapters/mcp/agentcoreRuntime/transport.js +222 -0
  43. package/dist/adapters/mcp/agentcoreRuntime/transport.js.map +1 -0
  44. package/dist/adapters/memory/agentcore.js +435 -20
  45. package/dist/adapters/memory/agentcore.js.map +1 -1
  46. package/dist/adapters/memory/memoryBank.js +16 -3
  47. package/dist/adapters/memory/memoryBank.js.map +1 -1
  48. package/dist/adapters/memory/pgVector.js +10 -4
  49. package/dist/adapters/memory/pgVector.js.map +1 -1
  50. package/dist/adapters/memory/redis.js +11 -3
  51. package/dist/adapters/memory/redis.js.map +1 -1
  52. package/dist/adapters/memory/s3Vectors.js +8 -3
  53. package/dist/adapters/memory/s3Vectors.js.map +1 -1
  54. package/dist/adapters/memory/sqliteVector.js +10 -4
  55. package/dist/adapters/memory/sqliteVector.js.map +1 -1
  56. package/dist/ag-ui/adapter.js +126 -0
  57. package/dist/ag-ui/adapter.js.map +1 -0
  58. package/dist/ag-ui/framing.js +68 -0
  59. package/dist/ag-ui/framing.js.map +1 -0
  60. package/dist/ag-ui/frontendTools.js +69 -0
  61. package/dist/ag-ui/frontendTools.js.map +1 -0
  62. package/dist/ag-ui/ids.js +54 -0
  63. package/dist/ag-ui/ids.js.map +1 -0
  64. package/dist/ag-ui/index.js +29 -0
  65. package/dist/ag-ui/index.js.map +1 -0
  66. package/dist/ag-ui/request.js +416 -0
  67. package/dist/ag-ui/request.js.map +1 -0
  68. package/dist/ag-ui/serializer.js +899 -0
  69. package/dist/ag-ui/serializer.js.map +1 -0
  70. package/dist/ag-ui/types.js +22 -0
  71. package/dist/ag-ui/types.js.map +1 -0
  72. package/dist/answer-validation/index.js +8 -1
  73. package/dist/answer-validation/index.js.map +1 -1
  74. package/dist/answer-validation/toolLedger.js +130 -0
  75. package/dist/answer-validation/toolLedger.js.map +1 -0
  76. package/dist/answer-validation/types.js.map +1 -1
  77. package/dist/answer-validation/validate.js +25 -3
  78. package/dist/answer-validation/validate.js.map +1 -1
  79. package/dist/classify/typesafe.js +31 -23
  80. package/dist/classify/typesafe.js.map +1 -1
  81. package/dist/core/Agent.js +106 -20
  82. package/dist/core/Agent.js.map +1 -1
  83. package/dist/core/LLMCall.js +16 -6
  84. package/dist/core/LLMCall.js.map +1 -1
  85. package/dist/core/RunnerBase.js +99 -13
  86. package/dist/core/RunnerBase.js.map +1 -1
  87. package/dist/core/agent/buildAgentChart.js +17 -5
  88. package/dist/core/agent/buildAgentChart.js.map +1 -1
  89. package/dist/core/agent/buildAgentMessageApiChart.js +22 -2
  90. package/dist/core/agent/buildAgentMessageApiChart.js.map +1 -1
  91. package/dist/core/agent/buildDynamicAgentChart.js +23 -4
  92. package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
  93. package/dist/core/agent/buildMessageApiChart.js +22 -2
  94. package/dist/core/agent/buildMessageApiChart.js.map +1 -1
  95. package/dist/core/agent/callerIdentity.js +2 -1
  96. package/dist/core/agent/callerIdentity.js.map +1 -1
  97. package/dist/core/agent/stages/answerValidation.js +22 -1
  98. package/dist/core/agent/stages/answerValidation.js.map +1 -1
  99. package/dist/core/agent/stages/callLLM.js +19 -3
  100. package/dist/core/agent/stages/callLLM.js.map +1 -1
  101. package/dist/core/agent/stages/routeTurn.js +17 -4
  102. package/dist/core/agent/stages/routeTurn.js.map +1 -1
  103. package/dist/core/agent/stages/seed.js +58 -8
  104. package/dist/core/agent/stages/seed.js.map +1 -1
  105. package/dist/core/agent/stages/timeLayer.js +2 -2
  106. package/dist/core/agent/stages/timeLayer.js.map +1 -1
  107. package/dist/core/agent/stages/toolCalls.js +85 -25
  108. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  109. package/dist/core/agent/window/strategies/summarizeOldest.js +4 -0
  110. package/dist/core/agent/window/strategies/summarizeOldest.js.map +1 -1
  111. package/dist/core/agent/window/summarize.js +6 -3
  112. package/dist/core/agent/window/summarize.js.map +1 -1
  113. package/dist/core/memberRun.js +293 -0
  114. package/dist/core/memberRun.js.map +1 -0
  115. package/dist/core/requestOfRun.js +28 -0
  116. package/dist/core/requestOfRun.js.map +1 -0
  117. package/dist/core/slots/buildToolsSlot.js +11 -25
  118. package/dist/core/slots/buildToolsSlot.js.map +1 -1
  119. package/dist/core-flow/Conditional.js +39 -12
  120. package/dist/core-flow/Conditional.js.map +1 -1
  121. package/dist/core-flow/Graph.js +48 -17
  122. package/dist/core-flow/Graph.js.map +1 -1
  123. package/dist/core-flow/Loop.js +39 -13
  124. package/dist/core-flow/Loop.js.map +1 -1
  125. package/dist/core-flow/Parallel.js +53 -21
  126. package/dist/core-flow/Parallel.js.map +1 -1
  127. package/dist/core-flow/Sequence.js +39 -12
  128. package/dist/core-flow/Sequence.js.map +1 -1
  129. package/dist/core-flow/Workflow.js +44 -14
  130. package/dist/core-flow/Workflow.js.map +1 -1
  131. package/dist/doors/ag-ui.js +36 -0
  132. package/dist/doors/ag-ui.js.map +1 -0
  133. package/dist/doors/security.js +2 -1
  134. package/dist/doors/security.js.map +1 -1
  135. package/dist/esm/adapters/llm/AnthropicProvider.d.ts +9 -2
  136. package/dist/esm/adapters/llm/AnthropicProvider.js +26 -8
  137. package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
  138. package/dist/esm/adapters/llm/BedrockProvider.d.ts +6 -1
  139. package/dist/esm/adapters/llm/BedrockProvider.js +23 -7
  140. package/dist/esm/adapters/llm/BedrockProvider.js.map +1 -1
  141. package/dist/esm/adapters/llm/BrowserAnthropicProvider.js +57 -49
  142. package/dist/esm/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
  143. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js +50 -42
  144. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  145. package/dist/esm/adapters/llm/FoundryLocalProvider.js +171 -209
  146. package/dist/esm/adapters/llm/FoundryLocalProvider.js.map +1 -1
  147. package/dist/esm/adapters/llm/GeminiProvider.js +23 -9
  148. package/dist/esm/adapters/llm/GeminiProvider.js.map +1 -1
  149. package/dist/esm/adapters/llm/InvokeModelGatewayProvider.js +32 -9
  150. package/dist/esm/adapters/llm/InvokeModelGatewayProvider.js.map +1 -1
  151. package/dist/esm/adapters/llm/MockProvider.js +11 -3
  152. package/dist/esm/adapters/llm/MockProvider.js.map +1 -1
  153. package/dist/esm/adapters/llm/OllamaProvider.js +126 -164
  154. package/dist/esm/adapters/llm/OllamaProvider.js.map +1 -1
  155. package/dist/esm/adapters/llm/OpenAIProvider.d.ts +6 -1
  156. package/dist/esm/adapters/llm/OpenAIProvider.js +36 -9
  157. package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
  158. package/dist/esm/adapters/mcp/agentcoreRuntime/errorType.d.ts +12 -0
  159. package/dist/esm/adapters/mcp/agentcoreRuntime/errorType.js +20 -0
  160. package/dist/esm/adapters/mcp/agentcoreRuntime/errorType.js.map +1 -0
  161. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.d.ts +116 -0
  162. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js +267 -0
  163. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -0
  164. package/dist/esm/adapters/mcp/agentcoreRuntime/safeAnswer.d.ts +49 -0
  165. package/dist/esm/adapters/mcp/agentcoreRuntime/safeAnswer.js +409 -0
  166. package/dist/esm/adapters/mcp/agentcoreRuntime/safeAnswer.js.map +1 -0
  167. package/dist/esm/adapters/mcp/agentcoreRuntime/session.d.ts +80 -0
  168. package/dist/esm/adapters/mcp/agentcoreRuntime/session.js +175 -0
  169. package/dist/esm/adapters/mcp/agentcoreRuntime/session.js.map +1 -0
  170. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +61 -0
  171. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js +112 -0
  172. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -0
  173. package/dist/esm/adapters/mcp/agentcoreRuntime/strictJson.d.ts +37 -0
  174. package/dist/esm/adapters/mcp/agentcoreRuntime/strictJson.js +215 -0
  175. package/dist/esm/adapters/mcp/agentcoreRuntime/strictJson.js.map +1 -0
  176. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.d.ts +199 -0
  177. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js +217 -0
  178. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js.map +1 -0
  179. package/dist/esm/adapters/memory/agentcore.d.ts +152 -7
  180. package/dist/esm/adapters/memory/agentcore.js +433 -19
  181. package/dist/esm/adapters/memory/agentcore.js.map +1 -1
  182. package/dist/esm/adapters/memory/memoryBank.d.ts +3 -2
  183. package/dist/esm/adapters/memory/memoryBank.js +16 -3
  184. package/dist/esm/adapters/memory/memoryBank.js.map +1 -1
  185. package/dist/esm/adapters/memory/pgVector.js +10 -4
  186. package/dist/esm/adapters/memory/pgVector.js.map +1 -1
  187. package/dist/esm/adapters/memory/redis.d.ts +8 -3
  188. package/dist/esm/adapters/memory/redis.js +11 -3
  189. package/dist/esm/adapters/memory/redis.js.map +1 -1
  190. package/dist/esm/adapters/memory/s3Vectors.js +8 -3
  191. package/dist/esm/adapters/memory/s3Vectors.js.map +1 -1
  192. package/dist/esm/adapters/memory/sqliteVector.js +10 -4
  193. package/dist/esm/adapters/memory/sqliteVector.js.map +1 -1
  194. package/dist/esm/ag-ui/adapter.d.ts +118 -0
  195. package/dist/esm/ag-ui/adapter.js +122 -0
  196. package/dist/esm/ag-ui/adapter.js.map +1 -0
  197. package/dist/esm/ag-ui/framing.d.ts +52 -0
  198. package/dist/esm/ag-ui/framing.js +64 -0
  199. package/dist/esm/ag-ui/framing.js.map +1 -0
  200. package/dist/esm/ag-ui/frontendTools.d.ts +37 -0
  201. package/dist/esm/ag-ui/frontendTools.js +64 -0
  202. package/dist/esm/ag-ui/frontendTools.js.map +1 -0
  203. package/dist/esm/ag-ui/ids.d.ts +43 -0
  204. package/dist/esm/ag-ui/ids.js +49 -0
  205. package/dist/esm/ag-ui/ids.js.map +1 -0
  206. package/dist/esm/ag-ui/index.d.ts +19 -0
  207. package/dist/esm/ag-ui/index.js +19 -0
  208. package/dist/esm/ag-ui/index.js.map +1 -0
  209. package/dist/esm/ag-ui/request.d.ts +151 -0
  210. package/dist/esm/ag-ui/request.js +408 -0
  211. package/dist/esm/ag-ui/request.js.map +1 -0
  212. package/dist/esm/ag-ui/serializer.d.ts +173 -0
  213. package/dist/esm/ag-ui/serializer.js +895 -0
  214. package/dist/esm/ag-ui/serializer.js.map +1 -0
  215. package/dist/esm/ag-ui/types.d.ts +305 -0
  216. package/dist/esm/ag-ui/types.js +19 -0
  217. package/dist/esm/ag-ui/types.js.map +1 -0
  218. package/dist/esm/answer-validation/index.d.ts +2 -1
  219. package/dist/esm/answer-validation/index.js +1 -0
  220. package/dist/esm/answer-validation/index.js.map +1 -1
  221. package/dist/esm/answer-validation/toolLedger.d.ts +65 -0
  222. package/dist/esm/answer-validation/toolLedger.js +121 -0
  223. package/dist/esm/answer-validation/toolLedger.js.map +1 -0
  224. package/dist/esm/answer-validation/types.d.ts +48 -0
  225. package/dist/esm/answer-validation/types.js.map +1 -1
  226. package/dist/esm/answer-validation/validate.d.ts +2 -2
  227. package/dist/esm/answer-validation/validate.js +25 -3
  228. package/dist/esm/answer-validation/validate.js.map +1 -1
  229. package/dist/esm/classify/typesafe.js +30 -22
  230. package/dist/esm/classify/typesafe.js.map +1 -1
  231. package/dist/esm/core/Agent.d.ts +11 -1
  232. package/dist/esm/core/Agent.js +107 -21
  233. package/dist/esm/core/Agent.js.map +1 -1
  234. package/dist/esm/core/LLMCall.d.ts +2 -1
  235. package/dist/esm/core/LLMCall.js +17 -7
  236. package/dist/esm/core/LLMCall.js.map +1 -1
  237. package/dist/esm/core/RunnerBase.d.ts +39 -8
  238. package/dist/esm/core/RunnerBase.js +97 -12
  239. package/dist/esm/core/RunnerBase.js.map +1 -1
  240. package/dist/esm/core/agent/buildAgentChart.js +17 -5
  241. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  242. package/dist/esm/core/agent/buildAgentMessageApiChart.d.ts +16 -0
  243. package/dist/esm/core/agent/buildAgentMessageApiChart.js +22 -2
  244. package/dist/esm/core/agent/buildAgentMessageApiChart.js.map +1 -1
  245. package/dist/esm/core/agent/buildDynamicAgentChart.js +23 -4
  246. package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
  247. package/dist/esm/core/agent/buildMessageApiChart.d.ts +16 -0
  248. package/dist/esm/core/agent/buildMessageApiChart.js +22 -2
  249. package/dist/esm/core/agent/buildMessageApiChart.js.map +1 -1
  250. package/dist/esm/core/agent/callerIdentity.js +2 -1
  251. package/dist/esm/core/agent/callerIdentity.js.map +1 -1
  252. package/dist/esm/core/agent/stages/answerValidation.js +22 -1
  253. package/dist/esm/core/agent/stages/answerValidation.js.map +1 -1
  254. package/dist/esm/core/agent/stages/callLLM.js +19 -3
  255. package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
  256. package/dist/esm/core/agent/stages/routeTurn.d.ts +1 -1
  257. package/dist/esm/core/agent/stages/routeTurn.js +17 -4
  258. package/dist/esm/core/agent/stages/routeTurn.js.map +1 -1
  259. package/dist/esm/core/agent/stages/seed.d.ts +18 -1
  260. package/dist/esm/core/agent/stages/seed.js +58 -8
  261. package/dist/esm/core/agent/stages/seed.js.map +1 -1
  262. package/dist/esm/core/agent/stages/timeLayer.js +2 -2
  263. package/dist/esm/core/agent/stages/timeLayer.js.map +1 -1
  264. package/dist/esm/core/agent/stages/toolCalls.d.ts +32 -1
  265. package/dist/esm/core/agent/stages/toolCalls.js +85 -25
  266. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  267. package/dist/esm/core/agent/types.d.ts +26 -6
  268. package/dist/esm/core/agent/window/strategies/summarizeOldest.js +4 -0
  269. package/dist/esm/core/agent/window/strategies/summarizeOldest.js.map +1 -1
  270. package/dist/esm/core/agent/window/summarize.js +6 -3
  271. package/dist/esm/core/agent/window/summarize.js.map +1 -1
  272. package/dist/esm/core/memberRun.d.ts +153 -0
  273. package/dist/esm/core/memberRun.js +273 -0
  274. package/dist/esm/core/memberRun.js.map +1 -0
  275. package/dist/esm/core/requestOfRun.d.ts +21 -0
  276. package/dist/esm/core/requestOfRun.js +24 -0
  277. package/dist/esm/core/requestOfRun.js.map +1 -0
  278. package/dist/esm/core/runner.d.ts +15 -3
  279. package/dist/esm/core/slots/buildToolsSlot.d.ts +0 -16
  280. package/dist/esm/core/slots/buildToolsSlot.js +11 -25
  281. package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
  282. package/dist/esm/core-flow/Conditional.d.ts +10 -1
  283. package/dist/esm/core-flow/Conditional.js +40 -13
  284. package/dist/esm/core-flow/Conditional.js.map +1 -1
  285. package/dist/esm/core-flow/Graph.d.ts +2 -1
  286. package/dist/esm/core-flow/Graph.js +49 -18
  287. package/dist/esm/core-flow/Graph.js.map +1 -1
  288. package/dist/esm/core-flow/Loop.d.ts +10 -1
  289. package/dist/esm/core-flow/Loop.js +40 -14
  290. package/dist/esm/core-flow/Loop.js.map +1 -1
  291. package/dist/esm/core-flow/Parallel.d.ts +10 -1
  292. package/dist/esm/core-flow/Parallel.js +54 -22
  293. package/dist/esm/core-flow/Parallel.js.map +1 -1
  294. package/dist/esm/core-flow/Sequence.d.ts +10 -1
  295. package/dist/esm/core-flow/Sequence.js +40 -13
  296. package/dist/esm/core-flow/Sequence.js.map +1 -1
  297. package/dist/esm/core-flow/Workflow.d.ts +2 -1
  298. package/dist/esm/core-flow/Workflow.js +45 -15
  299. package/dist/esm/core-flow/Workflow.js.map +1 -1
  300. package/dist/esm/doors/ag-ui.d.ts +19 -0
  301. package/dist/esm/doors/ag-ui.js +20 -0
  302. package/dist/esm/doors/ag-ui.js.map +1 -0
  303. package/dist/esm/doors/security.d.ts +2 -1
  304. package/dist/esm/doors/security.js +2 -1
  305. package/dist/esm/doors/security.js.map +1 -1
  306. package/dist/esm/events/payloads.d.ts +4 -2
  307. package/dist/esm/hosting/envelope.js +5 -0
  308. package/dist/esm/hosting/envelope.js.map +1 -1
  309. package/dist/esm/hosting/httpHost.js +5 -78
  310. package/dist/esm/hosting/httpHost.js.map +1 -1
  311. package/dist/esm/hosting/index.d.ts +5 -1
  312. package/dist/esm/hosting/index.js +2 -0
  313. package/dist/esm/hosting/index.js.map +1 -1
  314. package/dist/esm/hosting/pendingAsk.d.ts +19 -0
  315. package/dist/esm/hosting/pendingAsk.js +38 -0
  316. package/dist/esm/hosting/pendingAsk.js.map +1 -0
  317. package/dist/esm/hosting/protocolAdapter.d.ts +232 -0
  318. package/dist/esm/hosting/protocolAdapter.js +23 -0
  319. package/dist/esm/hosting/protocolAdapter.js.map +1 -0
  320. package/dist/esm/hosting/refusalStatus.d.ts +30 -0
  321. package/dist/esm/hosting/refusalStatus.js +85 -0
  322. package/dist/esm/hosting/refusalStatus.js.map +1 -0
  323. package/dist/esm/hosting/requestSealing.d.ts +65 -0
  324. package/dist/esm/hosting/requestSealing.js +79 -0
  325. package/dist/esm/hosting/requestSealing.js.map +1 -0
  326. package/dist/esm/hosting/standingAgent.js +24 -34
  327. package/dist/esm/hosting/standingAgent.js.map +1 -1
  328. package/dist/esm/hosting/stream.d.ts +60 -0
  329. package/dist/esm/hosting/stream.js +38 -2
  330. package/dist/esm/hosting/stream.js.map +1 -1
  331. package/dist/esm/hosting/streamHandler.d.ts +153 -0
  332. package/dist/esm/hosting/streamHandler.js +517 -0
  333. package/dist/esm/hosting/streamHandler.js.map +1 -0
  334. package/dist/esm/hosting/types.d.ts +44 -0
  335. package/dist/esm/hosting/types.js.map +1 -1
  336. package/dist/esm/hosting/verifiedThreads.d.ts +29 -0
  337. package/dist/esm/hosting/verifiedThreads.js +46 -0
  338. package/dist/esm/hosting/verifiedThreads.js.map +1 -0
  339. package/dist/esm/identity/requestContext.d.ts +96 -0
  340. package/dist/esm/identity/requestContext.js +131 -0
  341. package/dist/esm/identity/requestContext.js.map +1 -0
  342. package/dist/esm/identity/requestCredentials.d.ts +99 -0
  343. package/dist/esm/identity/requestCredentials.js +157 -0
  344. package/dist/esm/identity/requestCredentials.js.map +1 -0
  345. package/dist/esm/identity/types.d.ts +11 -0
  346. package/dist/esm/identity/types.js.map +1 -1
  347. package/dist/esm/identity.d.ts +2 -0
  348. package/dist/esm/identity.js +5 -0
  349. package/dist/esm/identity.js.map +1 -1
  350. package/dist/esm/index.d.ts +3 -1
  351. package/dist/esm/index.js +7 -0
  352. package/dist/esm/index.js.map +1 -1
  353. package/dist/esm/injection-engine/buildInjectionEngineSubflow.d.ts +11 -0
  354. package/dist/esm/injection-engine/buildInjectionEngineSubflow.js +39 -5
  355. package/dist/esm/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
  356. package/dist/esm/injection-engine/constrainedEnumPick.js +4 -2
  357. package/dist/esm/injection-engine/constrainedEnumPick.js.map +1 -1
  358. package/dist/esm/injection-engine/evaluator.d.ts +6 -0
  359. package/dist/esm/injection-engine/evaluator.js +19 -1
  360. package/dist/esm/injection-engine/evaluator.js.map +1 -1
  361. package/dist/esm/injection-engine/skillGraph.js +26 -8
  362. package/dist/esm/injection-engine/skillGraph.js.map +1 -1
  363. package/dist/esm/injection-engine/skillIntent.d.ts +4 -2
  364. package/dist/esm/injection-engine/skillIntent.js +3 -0
  365. package/dist/esm/injection-engine/skillIntent.js.map +1 -1
  366. package/dist/esm/injection-engine/types.d.ts +27 -1
  367. package/dist/esm/injection-engine/types.js +15 -0
  368. package/dist/esm/injection-engine/types.js.map +1 -1
  369. package/dist/esm/lib/abort.d.ts +143 -0
  370. package/dist/esm/lib/abort.js +322 -0
  371. package/dist/esm/lib/abort.js.map +1 -0
  372. package/dist/esm/lib/humanizeLLMError.d.ts +15 -0
  373. package/dist/esm/lib/humanizeLLMError.js +22 -7
  374. package/dist/esm/lib/humanizeLLMError.js.map +1 -1
  375. package/dist/esm/maps/engagement/parkCard.d.ts +5 -1
  376. package/dist/esm/maps/engagement/parkCard.js +10 -3
  377. package/dist/esm/maps/engagement/parkCard.js.map +1 -1
  378. package/dist/esm/mcp/mcpClient.js +30 -2
  379. package/dist/esm/mcp/mcpClient.js.map +1 -1
  380. package/dist/esm/mcp/mcpServe.js +5 -1
  381. package/dist/esm/mcp/mcpServe.js.map +1 -1
  382. package/dist/esm/mcp/plainData.d.ts +44 -0
  383. package/dist/esm/mcp/plainData.js +204 -0
  384. package/dist/esm/mcp/plainData.js.map +1 -0
  385. package/dist/esm/mcp/sdkLoadFailure.d.ts +6 -7
  386. package/dist/esm/mcp/sdkLoadFailure.js +4 -4
  387. package/dist/esm/mcp/sdkLoadFailure.js.map +1 -1
  388. package/dist/esm/mcp/throttleRetry.d.ts +51 -0
  389. package/dist/esm/mcp/throttleRetry.js +37 -4
  390. package/dist/esm/mcp/throttleRetry.js.map +1 -1
  391. package/dist/esm/mcp/toolResult.js +8 -50
  392. package/dist/esm/mcp/toolResult.js.map +1 -1
  393. package/dist/esm/mcp/types.d.ts +10 -6
  394. package/dist/esm/memory/beats/llmExtractor.js +6 -3
  395. package/dist/esm/memory/beats/llmExtractor.js.map +1 -1
  396. package/dist/esm/memory/define.js +45 -1
  397. package/dist/esm/memory/define.js.map +1 -1
  398. package/dist/esm/memory/define.types.d.ts +24 -0
  399. package/dist/esm/memory/define.types.js.map +1 -1
  400. package/dist/esm/memory/facts/llmFactExtractor.js +6 -3
  401. package/dist/esm/memory/facts/llmFactExtractor.js.map +1 -1
  402. package/dist/esm/memory/stages/formatDefault.js +3 -1
  403. package/dist/esm/memory/stages/formatDefault.js.map +1 -1
  404. package/dist/esm/memory/stages/summarize.js +16 -5
  405. package/dist/esm/memory/stages/summarize.js.map +1 -1
  406. package/dist/esm/memory/store/InMemoryStore.d.ts +8 -3
  407. package/dist/esm/memory/store/InMemoryStore.js +12 -3
  408. package/dist/esm/memory/store/InMemoryStore.js.map +1 -1
  409. package/dist/esm/memory/store/index.d.ts +1 -0
  410. package/dist/esm/memory/store/index.js +5 -0
  411. package/dist/esm/memory/store/index.js.map +1 -1
  412. package/dist/esm/memory/store/types.d.ts +38 -4
  413. package/dist/esm/memory/store/writeOptions.d.ts +118 -0
  414. package/dist/esm/memory/store/writeOptions.js +242 -0
  415. package/dist/esm/memory/store/writeOptions.js.map +1 -0
  416. package/dist/esm/memory-providers.d.ts +1 -1
  417. package/dist/esm/memory-providers.js +4 -1
  418. package/dist/esm/memory-providers.js.map +1 -1
  419. package/dist/esm/patterns/LlmRouter.js +10 -5
  420. package/dist/esm/patterns/LlmRouter.js.map +1 -1
  421. package/dist/esm/patterns/MapReduce.js +8 -2
  422. package/dist/esm/patterns/MapReduce.js.map +1 -1
  423. package/dist/esm/redaction/conversation.js +3 -0
  424. package/dist/esm/redaction/conversation.js.map +1 -1
  425. package/dist/esm/redaction/knownStrings.js +1 -0
  426. package/dist/esm/redaction/knownStrings.js.map +1 -1
  427. package/dist/esm/reliability/buildReliabilityGateChart.js +7 -1
  428. package/dist/esm/reliability/buildReliabilityGateChart.js.map +1 -1
  429. package/dist/esm/resilience/withCircuitBreaker.js +5 -2
  430. package/dist/esm/resilience/withCircuitBreaker.js.map +1 -1
  431. package/dist/esm/resilience/withFallback.js +6 -0
  432. package/dist/esm/resilience/withFallback.js.map +1 -1
  433. package/dist/esm/resilience/withRetry.js +5 -0
  434. package/dist/esm/resilience/withRetry.js.map +1 -1
  435. package/dist/esm/time-travel/servedView.js +1 -1
  436. package/dist/esm/time-travel/servedView.js.map +1 -1
  437. package/dist/esm/tool-providers/index.d.ts +5 -0
  438. package/dist/esm/tool-providers/index.js +6 -0
  439. package/dist/esm/tool-providers/index.js.map +1 -1
  440. package/dist/esm/tools/hostFilled.d.ts +110 -0
  441. package/dist/esm/tools/hostFilled.js +509 -0
  442. package/dist/esm/tools/hostFilled.js.map +1 -0
  443. package/dist/esm/trace-toolpack/selfExplain.d.ts +8 -0
  444. package/dist/esm/trace-toolpack/selfExplain.js +25 -2
  445. package/dist/esm/trace-toolpack/selfExplain.js.map +1 -1
  446. package/dist/hosting/envelope.js +5 -0
  447. package/dist/hosting/envelope.js.map +1 -1
  448. package/dist/hosting/httpHost.js +5 -78
  449. package/dist/hosting/httpHost.js.map +1 -1
  450. package/dist/hosting/index.js +9 -3
  451. package/dist/hosting/index.js.map +1 -1
  452. package/dist/hosting/pendingAsk.js +42 -0
  453. package/dist/hosting/pendingAsk.js.map +1 -0
  454. package/dist/hosting/protocolAdapter.js +24 -0
  455. package/dist/hosting/protocolAdapter.js.map +1 -0
  456. package/dist/hosting/refusalStatus.js +88 -0
  457. package/dist/hosting/refusalStatus.js.map +1 -0
  458. package/dist/hosting/requestSealing.js +83 -0
  459. package/dist/hosting/requestSealing.js.map +1 -0
  460. package/dist/hosting/standingAgent.js +25 -35
  461. package/dist/hosting/standingAgent.js.map +1 -1
  462. package/dist/hosting/stream.js +39 -3
  463. package/dist/hosting/stream.js.map +1 -1
  464. package/dist/hosting/streamHandler.js +521 -0
  465. package/dist/hosting/streamHandler.js.map +1 -0
  466. package/dist/hosting/types.js.map +1 -1
  467. package/dist/hosting/verifiedThreads.js +50 -0
  468. package/dist/hosting/verifiedThreads.js.map +1 -0
  469. package/dist/identity/requestContext.js +139 -0
  470. package/dist/identity/requestContext.js.map +1 -0
  471. package/dist/identity/requestCredentials.js +165 -0
  472. package/dist/identity/requestCredentials.js.map +1 -0
  473. package/dist/identity/types.js.map +1 -1
  474. package/dist/identity.js +13 -1
  475. package/dist/identity.js.map +1 -1
  476. package/dist/index.js +20 -3
  477. package/dist/index.js.map +1 -1
  478. package/dist/injection-engine/buildInjectionEngineSubflow.js +38 -4
  479. package/dist/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
  480. package/dist/injection-engine/constrainedEnumPick.js +4 -2
  481. package/dist/injection-engine/constrainedEnumPick.js.map +1 -1
  482. package/dist/injection-engine/evaluator.js +18 -0
  483. package/dist/injection-engine/evaluator.js.map +1 -1
  484. package/dist/injection-engine/skillGraph.js +25 -7
  485. package/dist/injection-engine/skillGraph.js.map +1 -1
  486. package/dist/injection-engine/skillIntent.js +3 -0
  487. package/dist/injection-engine/skillIntent.js.map +1 -1
  488. package/dist/injection-engine/types.js +17 -1
  489. package/dist/injection-engine/types.js.map +1 -1
  490. package/dist/lib/abort.js +336 -0
  491. package/dist/lib/abort.js.map +1 -0
  492. package/dist/lib/humanizeLLMError.js +23 -8
  493. package/dist/lib/humanizeLLMError.js.map +1 -1
  494. package/dist/maps/engagement/parkCard.js +10 -3
  495. package/dist/maps/engagement/parkCard.js.map +1 -1
  496. package/dist/mcp/mcpClient.js +30 -2
  497. package/dist/mcp/mcpClient.js.map +1 -1
  498. package/dist/mcp/mcpServe.js +5 -1
  499. package/dist/mcp/mcpServe.js.map +1 -1
  500. package/dist/mcp/plainData.js +208 -0
  501. package/dist/mcp/plainData.js.map +1 -0
  502. package/dist/mcp/sdkLoadFailure.js +4 -4
  503. package/dist/mcp/sdkLoadFailure.js.map +1 -1
  504. package/dist/mcp/throttleRetry.js +41 -6
  505. package/dist/mcp/throttleRetry.js.map +1 -1
  506. package/dist/mcp/toolResult.js +8 -50
  507. package/dist/mcp/toolResult.js.map +1 -1
  508. package/dist/memory/beats/llmExtractor.js +6 -3
  509. package/dist/memory/beats/llmExtractor.js.map +1 -1
  510. package/dist/memory/define.js +45 -1
  511. package/dist/memory/define.js.map +1 -1
  512. package/dist/memory/define.types.js.map +1 -1
  513. package/dist/memory/facts/llmFactExtractor.js +6 -3
  514. package/dist/memory/facts/llmFactExtractor.js.map +1 -1
  515. package/dist/memory/stages/formatDefault.js +3 -1
  516. package/dist/memory/stages/formatDefault.js.map +1 -1
  517. package/dist/memory/stages/summarize.js +16 -5
  518. package/dist/memory/stages/summarize.js.map +1 -1
  519. package/dist/memory/store/InMemoryStore.js +12 -3
  520. package/dist/memory/store/InMemoryStore.js.map +1 -1
  521. package/dist/memory/store/index.js +11 -1
  522. package/dist/memory/store/index.js.map +1 -1
  523. package/dist/memory/store/writeOptions.js +250 -0
  524. package/dist/memory/store/writeOptions.js.map +1 -0
  525. package/dist/memory-providers.js +4 -1
  526. package/dist/memory-providers.js.map +1 -1
  527. package/dist/patterns/LlmRouter.js +9 -4
  528. package/dist/patterns/LlmRouter.js.map +1 -1
  529. package/dist/patterns/MapReduce.js +8 -2
  530. package/dist/patterns/MapReduce.js.map +1 -1
  531. package/dist/redaction/conversation.js +3 -0
  532. package/dist/redaction/conversation.js.map +1 -1
  533. package/dist/redaction/knownStrings.js +1 -0
  534. package/dist/redaction/knownStrings.js.map +1 -1
  535. package/dist/reliability/buildReliabilityGateChart.js +7 -1
  536. package/dist/reliability/buildReliabilityGateChart.js.map +1 -1
  537. package/dist/resilience/withCircuitBreaker.js +5 -2
  538. package/dist/resilience/withCircuitBreaker.js.map +1 -1
  539. package/dist/resilience/withFallback.js +6 -0
  540. package/dist/resilience/withFallback.js.map +1 -1
  541. package/dist/resilience/withRetry.js +5 -0
  542. package/dist/resilience/withRetry.js.map +1 -1
  543. package/dist/time-travel/servedView.js +1 -1
  544. package/dist/time-travel/servedView.js.map +1 -1
  545. package/dist/tool-providers/index.js +10 -1
  546. package/dist/tool-providers/index.js.map +1 -1
  547. package/dist/tools/hostFilled.js +517 -0
  548. package/dist/tools/hostFilled.js.map +1 -0
  549. package/dist/trace-toolpack/selfExplain.js +25 -2
  550. package/dist/trace-toolpack/selfExplain.js.map +1 -1
  551. package/dist/types/adapters/llm/AnthropicProvider.d.ts +9 -2
  552. package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
  553. package/dist/types/adapters/llm/BedrockProvider.d.ts +6 -1
  554. package/dist/types/adapters/llm/BedrockProvider.d.ts.map +1 -1
  555. package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts.map +1 -1
  556. package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts.map +1 -1
  557. package/dist/types/adapters/llm/FoundryLocalProvider.d.ts.map +1 -1
  558. package/dist/types/adapters/llm/GeminiProvider.d.ts.map +1 -1
  559. package/dist/types/adapters/llm/InvokeModelGatewayProvider.d.ts.map +1 -1
  560. package/dist/types/adapters/llm/MockProvider.d.ts.map +1 -1
  561. package/dist/types/adapters/llm/OllamaProvider.d.ts.map +1 -1
  562. package/dist/types/adapters/llm/OpenAIProvider.d.ts +6 -1
  563. package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
  564. package/dist/types/adapters/mcp/agentcoreRuntime/errorType.d.ts +13 -0
  565. package/dist/types/adapters/mcp/agentcoreRuntime/errorType.d.ts.map +1 -0
  566. package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts +117 -0
  567. package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts.map +1 -0
  568. package/dist/types/adapters/mcp/agentcoreRuntime/safeAnswer.d.ts +50 -0
  569. package/dist/types/adapters/mcp/agentcoreRuntime/safeAnswer.d.ts.map +1 -0
  570. package/dist/types/adapters/mcp/agentcoreRuntime/session.d.ts +81 -0
  571. package/dist/types/adapters/mcp/agentcoreRuntime/session.d.ts.map +1 -0
  572. package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +62 -0
  573. package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts.map +1 -0
  574. package/dist/types/adapters/mcp/agentcoreRuntime/strictJson.d.ts +38 -0
  575. package/dist/types/adapters/mcp/agentcoreRuntime/strictJson.d.ts.map +1 -0
  576. package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts +200 -0
  577. package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts.map +1 -0
  578. package/dist/types/adapters/memory/agentcore.d.ts +152 -7
  579. package/dist/types/adapters/memory/agentcore.d.ts.map +1 -1
  580. package/dist/types/adapters/memory/memoryBank.d.ts +3 -2
  581. package/dist/types/adapters/memory/memoryBank.d.ts.map +1 -1
  582. package/dist/types/adapters/memory/pgVector.d.ts.map +1 -1
  583. package/dist/types/adapters/memory/redis.d.ts +8 -3
  584. package/dist/types/adapters/memory/redis.d.ts.map +1 -1
  585. package/dist/types/adapters/memory/s3Vectors.d.ts.map +1 -1
  586. package/dist/types/adapters/memory/sqliteVector.d.ts.map +1 -1
  587. package/dist/types/ag-ui/adapter.d.ts +119 -0
  588. package/dist/types/ag-ui/adapter.d.ts.map +1 -0
  589. package/dist/types/ag-ui/framing.d.ts +53 -0
  590. package/dist/types/ag-ui/framing.d.ts.map +1 -0
  591. package/dist/types/ag-ui/frontendTools.d.ts +38 -0
  592. package/dist/types/ag-ui/frontendTools.d.ts.map +1 -0
  593. package/dist/types/ag-ui/ids.d.ts +44 -0
  594. package/dist/types/ag-ui/ids.d.ts.map +1 -0
  595. package/dist/types/ag-ui/index.d.ts +20 -0
  596. package/dist/types/ag-ui/index.d.ts.map +1 -0
  597. package/dist/types/ag-ui/request.d.ts +152 -0
  598. package/dist/types/ag-ui/request.d.ts.map +1 -0
  599. package/dist/types/ag-ui/serializer.d.ts +174 -0
  600. package/dist/types/ag-ui/serializer.d.ts.map +1 -0
  601. package/dist/types/ag-ui/types.d.ts +306 -0
  602. package/dist/types/ag-ui/types.d.ts.map +1 -0
  603. package/dist/types/answer-validation/index.d.ts +2 -1
  604. package/dist/types/answer-validation/index.d.ts.map +1 -1
  605. package/dist/types/answer-validation/toolLedger.d.ts +66 -0
  606. package/dist/types/answer-validation/toolLedger.d.ts.map +1 -0
  607. package/dist/types/answer-validation/types.d.ts +48 -0
  608. package/dist/types/answer-validation/types.d.ts.map +1 -1
  609. package/dist/types/answer-validation/validate.d.ts +2 -2
  610. package/dist/types/answer-validation/validate.d.ts.map +1 -1
  611. package/dist/types/classify/typesafe.d.ts.map +1 -1
  612. package/dist/types/core/Agent.d.ts +11 -1
  613. package/dist/types/core/Agent.d.ts.map +1 -1
  614. package/dist/types/core/LLMCall.d.ts +2 -1
  615. package/dist/types/core/LLMCall.d.ts.map +1 -1
  616. package/dist/types/core/RunnerBase.d.ts +39 -8
  617. package/dist/types/core/RunnerBase.d.ts.map +1 -1
  618. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  619. package/dist/types/core/agent/buildAgentMessageApiChart.d.ts +16 -0
  620. package/dist/types/core/agent/buildAgentMessageApiChart.d.ts.map +1 -1
  621. package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
  622. package/dist/types/core/agent/buildMessageApiChart.d.ts +16 -0
  623. package/dist/types/core/agent/buildMessageApiChart.d.ts.map +1 -1
  624. package/dist/types/core/agent/callerIdentity.d.ts.map +1 -1
  625. package/dist/types/core/agent/stages/answerValidation.d.ts.map +1 -1
  626. package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
  627. package/dist/types/core/agent/stages/routeTurn.d.ts +1 -1
  628. package/dist/types/core/agent/stages/routeTurn.d.ts.map +1 -1
  629. package/dist/types/core/agent/stages/seed.d.ts +18 -1
  630. package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
  631. package/dist/types/core/agent/stages/toolCalls.d.ts +32 -1
  632. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  633. package/dist/types/core/agent/types.d.ts +26 -6
  634. package/dist/types/core/agent/types.d.ts.map +1 -1
  635. package/dist/types/core/agent/window/strategies/summarizeOldest.d.ts.map +1 -1
  636. package/dist/types/core/agent/window/summarize.d.ts.map +1 -1
  637. package/dist/types/core/memberRun.d.ts +154 -0
  638. package/dist/types/core/memberRun.d.ts.map +1 -0
  639. package/dist/types/core/requestOfRun.d.ts +22 -0
  640. package/dist/types/core/requestOfRun.d.ts.map +1 -0
  641. package/dist/types/core/runner.d.ts +15 -3
  642. package/dist/types/core/runner.d.ts.map +1 -1
  643. package/dist/types/core/slots/buildToolsSlot.d.ts +0 -16
  644. package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
  645. package/dist/types/core-flow/Conditional.d.ts +10 -1
  646. package/dist/types/core-flow/Conditional.d.ts.map +1 -1
  647. package/dist/types/core-flow/Graph.d.ts +2 -1
  648. package/dist/types/core-flow/Graph.d.ts.map +1 -1
  649. package/dist/types/core-flow/Loop.d.ts +10 -1
  650. package/dist/types/core-flow/Loop.d.ts.map +1 -1
  651. package/dist/types/core-flow/Parallel.d.ts +10 -1
  652. package/dist/types/core-flow/Parallel.d.ts.map +1 -1
  653. package/dist/types/core-flow/Sequence.d.ts +10 -1
  654. package/dist/types/core-flow/Sequence.d.ts.map +1 -1
  655. package/dist/types/core-flow/Workflow.d.ts +2 -1
  656. package/dist/types/core-flow/Workflow.d.ts.map +1 -1
  657. package/dist/types/doors/ag-ui.d.ts +20 -0
  658. package/dist/types/doors/ag-ui.d.ts.map +1 -0
  659. package/dist/types/doors/security.d.ts +2 -1
  660. package/dist/types/doors/security.d.ts.map +1 -1
  661. package/dist/types/events/payloads.d.ts +4 -2
  662. package/dist/types/events/payloads.d.ts.map +1 -1
  663. package/dist/types/hosting/httpHost.d.ts.map +1 -1
  664. package/dist/types/hosting/index.d.ts +5 -1
  665. package/dist/types/hosting/index.d.ts.map +1 -1
  666. package/dist/types/hosting/pendingAsk.d.ts +20 -0
  667. package/dist/types/hosting/pendingAsk.d.ts.map +1 -0
  668. package/dist/types/hosting/protocolAdapter.d.ts +233 -0
  669. package/dist/types/hosting/protocolAdapter.d.ts.map +1 -0
  670. package/dist/types/hosting/refusalStatus.d.ts +31 -0
  671. package/dist/types/hosting/refusalStatus.d.ts.map +1 -0
  672. package/dist/types/hosting/requestSealing.d.ts +66 -0
  673. package/dist/types/hosting/requestSealing.d.ts.map +1 -0
  674. package/dist/types/hosting/standingAgent.d.ts.map +1 -1
  675. package/dist/types/hosting/stream.d.ts +60 -0
  676. package/dist/types/hosting/stream.d.ts.map +1 -1
  677. package/dist/types/hosting/streamHandler.d.ts +154 -0
  678. package/dist/types/hosting/streamHandler.d.ts.map +1 -0
  679. package/dist/types/hosting/types.d.ts +44 -0
  680. package/dist/types/hosting/types.d.ts.map +1 -1
  681. package/dist/types/hosting/verifiedThreads.d.ts +30 -0
  682. package/dist/types/hosting/verifiedThreads.d.ts.map +1 -0
  683. package/dist/types/identity/requestContext.d.ts +97 -0
  684. package/dist/types/identity/requestContext.d.ts.map +1 -0
  685. package/dist/types/identity/requestCredentials.d.ts +100 -0
  686. package/dist/types/identity/requestCredentials.d.ts.map +1 -0
  687. package/dist/types/identity/types.d.ts +11 -0
  688. package/dist/types/identity/types.d.ts.map +1 -1
  689. package/dist/types/identity.d.ts +2 -0
  690. package/dist/types/identity.d.ts.map +1 -1
  691. package/dist/types/index.d.ts +3 -1
  692. package/dist/types/index.d.ts.map +1 -1
  693. package/dist/types/injection-engine/buildInjectionEngineSubflow.d.ts +11 -0
  694. package/dist/types/injection-engine/buildInjectionEngineSubflow.d.ts.map +1 -1
  695. package/dist/types/injection-engine/constrainedEnumPick.d.ts.map +1 -1
  696. package/dist/types/injection-engine/evaluator.d.ts +6 -0
  697. package/dist/types/injection-engine/evaluator.d.ts.map +1 -1
  698. package/dist/types/injection-engine/skillIntent.d.ts +4 -2
  699. package/dist/types/injection-engine/skillIntent.d.ts.map +1 -1
  700. package/dist/types/injection-engine/types.d.ts +27 -1
  701. package/dist/types/injection-engine/types.d.ts.map +1 -1
  702. package/dist/types/lib/abort.d.ts +144 -0
  703. package/dist/types/lib/abort.d.ts.map +1 -0
  704. package/dist/types/lib/humanizeLLMError.d.ts +15 -0
  705. package/dist/types/lib/humanizeLLMError.d.ts.map +1 -1
  706. package/dist/types/maps/engagement/parkCard.d.ts +5 -1
  707. package/dist/types/maps/engagement/parkCard.d.ts.map +1 -1
  708. package/dist/types/mcp/mcpServe.d.ts.map +1 -1
  709. package/dist/types/mcp/plainData.d.ts +45 -0
  710. package/dist/types/mcp/plainData.d.ts.map +1 -0
  711. package/dist/types/mcp/sdkLoadFailure.d.ts +6 -7
  712. package/dist/types/mcp/sdkLoadFailure.d.ts.map +1 -1
  713. package/dist/types/mcp/throttleRetry.d.ts +51 -0
  714. package/dist/types/mcp/throttleRetry.d.ts.map +1 -1
  715. package/dist/types/mcp/toolResult.d.ts.map +1 -1
  716. package/dist/types/mcp/types.d.ts +10 -6
  717. package/dist/types/mcp/types.d.ts.map +1 -1
  718. package/dist/types/memory/beats/llmExtractor.d.ts.map +1 -1
  719. package/dist/types/memory/define.d.ts.map +1 -1
  720. package/dist/types/memory/define.types.d.ts +24 -0
  721. package/dist/types/memory/define.types.d.ts.map +1 -1
  722. package/dist/types/memory/facts/llmFactExtractor.d.ts.map +1 -1
  723. package/dist/types/memory/stages/formatDefault.d.ts.map +1 -1
  724. package/dist/types/memory/stages/summarize.d.ts.map +1 -1
  725. package/dist/types/memory/store/InMemoryStore.d.ts +8 -3
  726. package/dist/types/memory/store/InMemoryStore.d.ts.map +1 -1
  727. package/dist/types/memory/store/index.d.ts +1 -0
  728. package/dist/types/memory/store/index.d.ts.map +1 -1
  729. package/dist/types/memory/store/types.d.ts +38 -4
  730. package/dist/types/memory/store/types.d.ts.map +1 -1
  731. package/dist/types/memory/store/writeOptions.d.ts +119 -0
  732. package/dist/types/memory/store/writeOptions.d.ts.map +1 -0
  733. package/dist/types/memory-providers.d.ts +1 -1
  734. package/dist/types/memory-providers.d.ts.map +1 -1
  735. package/dist/types/patterns/LlmRouter.d.ts.map +1 -1
  736. package/dist/types/patterns/MapReduce.d.ts.map +1 -1
  737. package/dist/types/redaction/conversation.d.ts.map +1 -1
  738. package/dist/types/redaction/knownStrings.d.ts.map +1 -1
  739. package/dist/types/reliability/buildReliabilityGateChart.d.ts.map +1 -1
  740. package/dist/types/resilience/withCircuitBreaker.d.ts.map +1 -1
  741. package/dist/types/resilience/withFallback.d.ts.map +1 -1
  742. package/dist/types/resilience/withRetry.d.ts.map +1 -1
  743. package/dist/types/tool-providers/index.d.ts +5 -0
  744. package/dist/types/tool-providers/index.d.ts.map +1 -1
  745. package/dist/types/tools/hostFilled.d.ts +111 -0
  746. package/dist/types/tools/hostFilled.d.ts.map +1 -0
  747. package/dist/types/trace-toolpack/selfExplain.d.ts +8 -0
  748. package/dist/types/trace-toolpack/selfExplain.d.ts.map +1 -1
  749. package/package.json +25 -1
package/AGENTS.md CHANGED
@@ -34,9 +34,9 @@ Two more absences: there is **no runtime force-stop governor** (`routeRecorder()
34
34
  only *labels* a spinning run; `maxIterations` is the hard stop), and there is **no
35
35
  automatic re-delivery of an ageing skill body** (the inert `refreshPolicy` was removed in 10.0.0 — use `surfaceMode: 'both'`).
36
36
 
37
- ## Subpath map — 18 doors
37
+ ## Subpath map — 19 doors
38
38
 
39
- `agentfootprint` (main barrel: `Agent`, `LLMCall`, `defineTool`, control flow, patterns, `defineRAG`, pause/resume) · `/providers` (`mock`, `anthropic`, `openai`, `bedrock`, `ollama`, `mcpClient`, embedders — every provider, so bundlers never walk the vendor SDKs from the main barrel) · `/context` (`defineSkill`, `defineFact`, `defineSteering`, `defineInstruction`, `skillGraph`, `skillsFromDir`, the scorers) · `/memory` (`defineMemory`, `InMemoryStore`, `mockEmbedder`, the stores) · `/rag` (stores + loaders; `defineRAG` itself is on the main barrel) · `/observe` (recorders, tracing, `RunStep`) · `/resilience` (provider decorators) · `/reliability` (only the reliability gate's distinct `CircuitOpenError`; rules live on `/resilience`) · `/cache` (prefix-cache strategies, chosen from the provider's declared `promptCaching` by `cacheStrategyFor`) · `/security` · `/hosting` · `/events` · `/skill-graph` (the routing layer with no framework attached, for a host that is not this agent) · `/recipes` (`defineAgentRecipe` — one named, versioned agent setup, applied with `.recipe()`) · `/maps` (`Claim<T>` and the map-engagement vocabulary behind `.maps()`) · `/classify` (the calibrated-classifier port: `Classifier`, `mockClassifier`) · `/ontology` (`defineOntology` — a declared map of the domain, mounted with `.ontology()`) · `/time` (`convertForTool` + `sugarForms` + `granularityMsOf` — the time layer's own answer to whether and how a tool reads a window, for an app outside a run; the steps `convertExact`, `convertWidened`, `periodFactProblem` too). `package.json` `exports` is the complete list; a path not on it does not resolve.
39
+ `agentfootprint` (main barrel: `Agent`, `LLMCall`, `defineTool`, control flow, patterns, `defineRAG`, pause/resume) · `/providers` (`mock`, `anthropic`, `openai`, `bedrock`, `ollama`, `mcpClient`, embedders — every provider, so bundlers never walk the vendor SDKs from the main barrel) · `/context` (`defineSkill`, `defineFact`, `defineSteering`, `defineInstruction`, `skillGraph`, `skillsFromDir`, the scorers) · `/memory` (`defineMemory`, `InMemoryStore`, `mockEmbedder`, the stores) · `/rag` (stores + loaders; `defineRAG` itself is on the main barrel) · `/observe` (recorders, tracing, `RunStep`) · `/resilience` (provider decorators) · `/reliability` (only the reliability gate's distinct `CircuitOpenError`; rules live on `/resilience`) · `/cache` (prefix-cache strategies, chosen from the provider's declared `promptCaching` by `cacheStrategyFor`) · `/security` · `/hosting` · `/events` · `/skill-graph` (the routing layer with no framework attached, for a host that is not this agent) · `/recipes` (`defineAgentRecipe` — one named, versioned agent setup, applied with `.recipe()`) · `/maps` (`Claim<T>` and the map-engagement vocabulary behind `.maps()`) · `/classify` (the calibrated-classifier port: `Classifier`, `mockClassifier`) · `/ontology` (`defineOntology` — a declared map of the domain, mounted with `.ontology()`) · `/time` (`convertForTool` + `sugarForms` + `granularityMsOf` — the time layer's own answer to whether and how a tool reads a window, for an app outside a run; the steps `convertExact`, `convertWidened`, `periodFactProblem` too) · `/ag-ui` (`agUi()` — the AG-UI adapter: `streamHandler({ agent: () => buildAgent(), adapter: agUi(), threads: verifiedThreads(identity), sessions })` from `/hosting` serves agents to any AG-UI frontend, a fresh agent per request, the thread bound to the VERIFIED caller; `agUiSerializer` + `agUiSse` for a transport of your own; framed by the optional peer `@ag-ui/encoder`). `package.json` `exports` is the complete list; a path not on it does not resolve.
40
40
 
41
41
  ## Core Concepts
42
42
 
package/CAPABILITIES.md CHANGED
@@ -20,6 +20,14 @@ not in this table, search `src/index.ts` for the nearest noun before writing cod
20
20
 
21
21
  | If you are about to build… | It is | Where | Since |
22
22
  |---|---|---|---|
23
+ | giving a tool the credential that arrived WITH the incoming request (an encrypted per-request token, a session key) — sealed per run so no copy, log or state carries it, read only by the run that carried it (its composition members included, at any depth; a resume serves the resume's request), failing closed by name when absent; strategies for bearer, API-key header and decrypt-then-read; through a host, the app seals each request's credential from its headers (`sealRequest`) and the host hands it to that request's run only — a handle returned twice refused, a sealer's throw refused in fixed words | `requestContext` + `requestCredentials` + `asBearer` / `asApiKey` / `decodedWith` + `RequestCredentialError` (`agentfootprint/security`), `run(input, { request })`; `sealRequest` + `RequestSealer` on `standingAgent` / `streamHandler` (`agentfootprint/hosting`) | `src/identity/requestCredentials.ts` | 10.5.0 |
24
+ | hiding a credential or identity ARGUMENT of a tool (an MCP server's `token` field) from the model — removed from the schema the model sees, a model-sent value refused by name, filled from `ctx.credential` / `ctx.identity` inside `execute`, echoes of the credential scrubbed from results and errors | `hostFilled` + `fromCredential` / `fromIdentity` + `HostFilledArgumentError` | `src/tools/hostFilled.ts` | 10.5.0 |
25
+ | running the same composition (Sequence / Parallel / Conditional / Loop / workflow / graph, nested) for many users at once without their member agents sharing memory or identity — the caller's identity passed once to the composition and handed to every member at any depth; with none, each run is its own conversation; a mounted agent no run reaches refused by name, never run under a placeholder or its instance's last caller | `Sequence.run({ message, identity })` (and every composition's input) + `MemberIdentityError` | `src/core/memberRun.ts` | 10.4.0 |
26
+ | keeping a memory write out of a managed service's long-term extraction, or filing what it derives under one tenant's namespace — vendor-neutral write options on the `MemoryStore` port (`put`/`putMany`/`putIfVersion`), declared per store and REFUSED BY NAME where not honoured (never dropped), bound by `defineMemory` to every write AND search of a memory (the scope comes only from the run's identity; a per-call scope, an empty one, a search namespace that does not hold it segment for segment, or one that omits the person's actor is refused; `requireNamespaceScope` refuses unscoped access) and checked before the first turn; AgentCore maps them to `CreateEvent`'s `extractionMode: 'SKIP'` and `extractionConfig.namespaceVariables` only when its client and SDK can carry them, checks AgentCore's variable domain first, and ships a one-to-one tenant encoder into its alphabet | `MemoryWriteOptions` (`extraction: 'skip'`, `namespaceScope`) + `MemoryStore.writeOptions` + `defineMemory({ writeOptions, namespaceScope })` + `SearchOptions.namespaceScope` + `UnsupportedMemoryWriteOptionError` + `refuseUnhonouredWriteOptions` + `agentCoreNamespaceValue` (`agentfootprint/memory`) | `src/memory/store/writeOptions.ts` | 10.4.0 |
27
+ | calling an MCP server somebody deployed TO AWS Bedrock AgentCore Runtime (`--protocol MCP`) — through `InvokeAgentRuntime` with SigV4, or a bearer token over the documented HTTPS endpoint (the SDK has no bearer scheme); a fresh runtime session per call by default (`'per-call'` carries no session id, so one client can serve every user) or one per client (`'reuse'` keys each client's connection — its `runtimeSessionId` and the server's `Mcp-Session-Id` — by a handle the transport issues); what the MCP client reads of a failure rewritten from fixed sentences and safe ids (status, a plain error type, a JSON-RPC code), never the service's text (which can quote the signed request); a bearer token vended as a machine token only; the runtime's "Session operation in progress" refusal (JSON-RPC -32005 inside an HTTP 200, which MCP clients never retry; or the API's 409 `RetryableConflictException`) retried with bounded backoff by the SAME loop as the 429 retry, one small decision function — and nothing else re-sent: the SDK client's own retry is off, so a 5xx or a dropped connection is never replayed | `agentCoreRuntimeMcpTransport` + `agentCoreRuntimeUrl` + `AGENTCORE_RUNTIME_SESSION_HEADER` (`agentfootprint/providers`) | `src/adapters/mcp/agentcoreRuntime/` | 10.4.0 |
28
+ | bundling an app that speaks MCP (esbuild, webpack, a Lambda zip without `node_modules`) — the MCP and AWS SDKs load through a lazy `require` a bundler cannot follow, so the caller hands over the modules it imported statically | `mcpClient({ sdk: { Client, StreamableHTTPClientTransport } })` · `agentCoreRuntimeMcpTransport({ sdk })` (SigV4 only; `_sdk` = the older name, both-different refused, `sdk` beside `{ bearer }` refused); a missing or wrong SDK is refused when the client/transport is BUILT, in words naming `sdk`, never at the first tool call. Docs: mcp-client "Bundling (esbuild, webpack)". Fenced by `test/mcp/bundling.test.ts` | `src/mcp/` | 10.5.0 |
29
+ | serving agents to AG-UI frontends (CopilotKit, the AG-UI Dojo, an `@ag-ui/client` app) from any framework with no glue code — POST a `RunAgentInput`, stream AG-UI events back; the request is untrusted browser input: only the newest user message is conversation (the page's copy is never read), a system/developer message refused, an answer taken only for the pause the server keeps, frontend tools only by the app's name allow-list with its own contract (they run in the page, no server privilege), `state`/`context` only through the app's validators, no identity/credential/redaction from a request; a fresh runner per request, the thread bound to the caller the app authenticates, the conversation and paused runs kept server-side, one turn per thread, door guard, body ceiling, SSE keep-alive | `streamHandler` + `ProtocolAdapter` + `verifiedThreads` (`agentfootprint/hosting`) + `agUi` (`agentfootprint/ag-ui`) | `src/hosting/streamHandler.ts` | 10.4.0 |
30
+ | serving an agent behind a GATEWAY that speaks AG-UI in its own request body and its own output envelope (`{"eventType":"…Event","event":{…,"eventSequence":n}}`) — `agUi()` as three replaceable strategies: a reader (the gateway's body → the turn), the translation (AG-UI vocabulary, unchanged) and the framing (the envelope; each frame's number in its own stream handed in by the host, never a shared counter); every untrusted-input rule stays in the core whichever reader ran (shape and ids, no system/developer message, frontend tools by allow-list, state/context by validators, answers only for the kept pause; each value read once) | `agUi({ reader, translation, framing })` + `AgUiRequestReader` / `AgUiTurnRequest` / `AgUiTranslationStrategy` (`agentfootprint/ag-ui`), `SseFraming.frame(event, { sequence })` + `SseFramePosition` (`agentfootprint/observe`) | `src/ag-ui/adapter.ts` | 10.5.0 |
23
31
  | checking forced tool choice per model without changing the existing boolean wire declaration; explicit requests refuse before transport, classifiers keep their strict parse alternative, wrappers preserve and fallback pairs intersect | `LLMProvider.supportsForcedToolChoice` + `forcedToolChoiceFor` + `UnsupportedToolChoiceError` (`agentfootprint/providers`) | `src/provider-contract/forcedToolChoice.ts` | 10.1.0 |
24
32
  | a typed answer constrained by the PROVIDER'S OWN structured output instead of asked for in prose — the schema sent as Anthropic's `output_config.format`, the agent keeping its tools; one function builds the API-compatible wire copy (objects closed, unsupported constraints moved into the description, recursion / external `$ref` / complex enums / open values / open-keyed maps refused at build by node), the parser still judges; per-model capability with unknown ids read as the newest generation, refused by name at run start and before transport; a `'refusal'` / `'max_tokens'` stop fails the attempt by name even when it parses; `_findings` allowed on the format when the ledger is armed | `.outputSchema(parser, { strategy: 'native', jsonSchema })` + `LLMProvider.carriesNativeOutputSchema` / `supportsNativeOutputSchema` + `nativeOutputSchemaFor` + `UnsupportedNativeOutputError` (`agentfootprint/providers`) + `answerGuarantee: 'native'` + `OutputAttempt.stopReason` | `src/provider-contract/nativeOutputSchema.ts` | 10.3.0 |
25
33
  | replaying Anthropic thinking in its original content order; refusing known unsafe active-tool replay, observing each permitted completed-turn omission before sending, and retaining that decision across checkpoints | `LLMMessage.replay` + `UnsafeThinkingReplayError` + `LLMCallHooks.onReplayPrepared` + `agentfootprint.agent.thinking_omitted` | `src/adapters/llm/anthropicThinkingReplay.ts` | 10.1.0 |
@@ -32,8 +40,9 @@ not in this table, search `src/index.ts` for the nearest noun before writing cod
32
40
  | identifying which same-name tool call a permission check or credential event describes — captured at dispatch, including resume and inner pull failures; qualify with run identity, missing fields stay unknown | `ToolCallEventIdentity` + `bindToolSecurityEvents` | `src/core/agent/toolSecurityEvents.ts` | 9.137.0 |
33
41
  | guiding an evidence repair to ask for missing context without inventing values | `recoveryInstruction` + `EvidenceRecoveryContext` | `src/core/agent/evidence/` | 9.96.0 |
34
42
  | checking a typed final answer against scoped evidence before streaming or memory delivery — optional host-authored checks with enforce/observe modes, canonical JSON and bounded read-only artifacts | `answerValidation` + `AnswerValidationError` | `src/answer-validation/` | 9.95.0 |
43
+ | an output guard that sees which tools ran — fail the run when the answer presents code but no code-execution tool ran; this run's tool calls (name, call id, outcome ok/error/not-run; never arguments or results) handed to the enforce check, per run, bounded | `AnswerValidationContext.toolCalls` + `AnswerToolCallsView` + `limits.maxToolCalls` | `src/answer-validation/toolLedger.ts` | 10.5.0 |
35
44
  | turning a written operational procedure (a runbook, a triage playbook) into ONE agent tool whose every answer is EVIDENCE — coverage folded up from the inner tools it calls, rule name+version, verdict rows with GENERATED meanings, and the recorded walk as an artifact ticket, never bytes | `runbookAsTool` — dials: `procedure` (factory, invoked per call with `ctx.tools`) + `resultKind` (`'verdict/*'` arms the rowset projection; anything else ships spine + the chart's `report`) + `rules {name, version}` (default absent ⇒ `rule_version: 'undeclared'`) + `verdicts {decider, maxRows}` (default 50; `verdict_meanings` = statically declared branches + this run's rule labels + the DEFAULT branch's label, which reaches evidence only when the chart calls `decide(s, rules, {branch, label})` — fp ≥9.16.1, the default is chosen by NO rule so nothing else can name it, and inside a generated fan-out branch the static walk is blind too; an undeclared or blank label stays ABSENT from the map, never invented from a branch id, and there is deliberately NO caller-supplied meanings map) + `presentation` (`'prose'` default = ship `table` + `VERDICT_RENDER_NOTE` "output it VERBATIM"; `'panel'` = the HOST renders the rowset, so NO `table` key at all + `PANEL_RENDER_NOTE` "the rows are already on the reader's screen — do not reproduce them"; the rowset half is byte-identical across modes, `table` stays RESERVED in both, an unknown value THROWS at definition) + `walk {cap, recording}` (cap default 500; over-cap ⇒ control-flow projection, declared · `recording: true` or `{label, maxBytes}`, default OFF — ALSO files the inner chart's own `{snapshot, events, structure}` under `recording/run` and puts its ref on the spine as `walk.recording_ref`, because the ROW projection cannot be drawn; snapshot read from the REDACTED mirror so one `redact` means the same for both; over `maxBytes` (`DEFAULT_RECORDING_MAX_BYTES` = 5,000,000) it is REFUSED not truncated; every absence — no store / over size / unserializable / store threw — is STATED in `walk.recording_note`, and the four `recording_*` fields are absent entirely when the dial is off) + `composedOf` (drift-checked at agent BUILD) + kept `recorders`/`keepRecord`/`keepRecordLimit`/`redact`; reserved state keys `verdicts`/`coverage`/`report` (the `report` bag lands BESIDE the spine, never over it — a report field spelling `af_coverage`/`af_provenance`/`rule_version`/`walk`/`report_note` or a live projection key is discarded and NAMED in `result.report_note`; precedence is explicit in `report.ts`, never spread order); inner `absent()` passes through VERBATIM unless the call said `allowAbsent`; walk kind `recording/chart-walk` + `walk_segment` discriminant | `src/core/runbook/` | 9.76.0, recording 9.79.0 |
36
- | speaking MCP from a BROWSER — the SDK is browser-clean (its client + streamableHttp bundle at `platform:'browser'` with zero `node:` edges and never pull in `client/stdio.js`); the one barrier was that `lazyRequire` gets CALLED there, so the fix is to let the caller supply what the loader would have found | `mcpClient({ sdk })` (`McpSdk` = the two SDK modules you imported statically; the library STILL builds the transport, so headers/fetch/gateway vending/`retryOnThrottle`/`_meta` all keep working) · `mcpClient({ connection })` (`McpConnection` = listTools/callTool/close, deliberately NO `connect` — you already did; the only arm that reaches the SDK's `jsonSchemaValidator`, i.e. CSP) + `McpConnectionOptions`; `refuseConflictingOptions` REFUSES at construction every option a transport would have consumed, naming where it moved (a knob naming a behaviour that no longer happens is the defect class); `transportUrl` resolves a relative `url` against `globalThis.location.href` (absolute takes the identical branch, Node refuses by name); `sdkLoadFailure` classifies the seven load sites so a browser is never told to install a package it has (resolution failure ⇒ byte-identical historical message); `retryingFetch` + `ThrottleFetch` promoted out of `@internal` so the connection arm keeps its 429 handling. stdio keeps `lazyRequire` FOREVER — it spawns a subprocess. ZERO packaging change: no subpath, no `browser` condition (TypeScript is blind to it), peer stays optional (no literal dynamic `import()`). Fenced by `test/mcp/browserGraph.test.ts` | `src/mcp/` | 9.81.0 |
45
+ | speaking MCP from a BROWSER — the SDK is browser-clean (its client + streamableHttp bundle at `platform:'browser'` with zero `node:` edges and never pull in `client/stdio.js`); the one barrier was that `lazyRequire` gets CALLED there, so the fix is to let the caller supply what the loader would have found | `mcpClient({ sdk })` (`McpSdk` = the two SDK modules you imported statically; the library STILL builds the transport, so headers/fetch/gateway vending/`retryOnThrottle`/`_meta` all keep working) · `mcpClient({ connection })` (`McpConnection` = listTools/callTool/close, deliberately NO `connect` — you already did; the only arm that reaches the SDK's `jsonSchemaValidator`, i.e. CSP) + `McpConnectionOptions`; `refuseConflictingOptions` REFUSES at construction every option a transport would have consumed, naming where it moved (a knob naming a behaviour that no longer happens is the defect class); `transportUrl` resolves a relative `url` against `globalThis.location.href` (absolute takes the identical branch, Node refuses by name); `sdkLoadFailure` classifies the seven load sites so a browser is never told to install a package it has (resolution failure ⇒ the site's own absent-package message, which names the `sdk` hook); `retryingFetch` + `ThrottleFetch` promoted out of `@internal` so the connection arm keeps its 429 handling. stdio keeps `lazyRequire` FOREVER — it spawns a subprocess. ZERO packaging change: no subpath, no `browser` condition (TypeScript is blind to it), peer stays optional (no literal dynamic `import()`). Fenced by `test/mcp/browserGraph.test.ts` | `src/mcp/` | 9.81.0 |
37
46
  | calling ANOTHER registered tool from inside a tool's `execute` — composition over the agent's own dispatch map instead of importing the module and building a second query stack | `agentToolDispatch` + `ctx.tools` (ToolDispatch has/call) — sees static and skill-carried tools, NEVER ToolProvider-delivered ones (no build-time list, the 9.72.0 caveat); inner calls get the outer facts with hasArtifacts false and a derived toolCallId, `needs` resolved fail-closed non-interactively, `checkIn` and `wants` tools refused by name, no nested dispatch; declare ingredients via `composedOf` (and `gates` for a pausing procedure) — both travel MCP `_meta` | `src/core/agent/toolDispatch.ts` | 9.76.0 |
38
47
  | a tool returning numbers WITH the caveats that make them honest — interval/aggregation grain, is-it-a-counter, when the world was measured, which ground was NOT covered — as typed data the model reads compactly and the record keeps whole | `describedResult()` + `tools.semantics_declared` (model sees `semanticsForModel` projection; `coverage` field absorbed by the coverage()/absent() channel; the old `semantic()` declaration door was removed in 10.0.0) | `src/semantics/` | 9.53.0 |
39
48
  | the same typed tool result declared in ONE spelling — camelCase `measuredAt`/`isCounter`/`filterNote`, respelled to the unchanged snake_case wire — with a missing source a COMPILE error; which result helper to return (rows → describedResult, a value with limits → coverage, nothing → absent); an EMPTY data list refused with the branch to write ("if nothing matched, return absent({ what, checked }) instead"), the declaration door and the gate | `describedResult()` + `DescribedResultDeclaration` (`provenance` required whenever `series`/`facts` is present; the snake_case spelling refused, naming the camelCase one) | `src/semantics/described.ts` | 9.119.0, empty-list refusal 9.125.0 |
@@ -134,6 +143,8 @@ not in this table, search `src/index.ts` for the nearest noun before writing cod
134
143
  | a per-request deadline on your gateway provider, so a gateway that never answers (or a stream that goes silent) fails typed instead of hanging the run: bounds the response headers, a `complete()` body and EACH stream read (first chunk, then every gap — a stream that keeps talking is never cut off); a miss aborts the request and raises `reason: 'timeout'`, `retryable: true` (withRetry re-opens it while no chunk reached the caller); the caller's `req.signal` still wins; omitted = the fetch gets exactly `req.signal` as before | `timeoutMs` + `invokeModelGateway` + `InvokeModelGatewayError` (`reason: 'timeout'`) | `src/adapters/llm/InvokeModelGatewayProvider.ts` | 9.130.0 |
135
144
  | Replay a saved complete domain-event batch with the same fork grouping and nested drill projection as live run steps | `ingestDomainEvents` + `getSteps` + `clear` | `src/recorders/observability/RunStepRecorder.ts` | 10.0.0 |
136
145
  | experimental, not yet validated in real use: additive saved-record shapes for scoped historical verification observations; paired checkpoint readers and writers validate retained evidence and counters without judging old observations again, and native continuation refuses an unarmed evidence carrier; protocol only — no runtime verifier, model declaration parser or answer badge is enabled | `FindingsRow` + optional `AgentRunCheckpoint.claimVerification` | `src/core/` | 10.2.0 |
146
+ | an AG-UI frontend (`@ag-ui/client`, CopilotKit, the AG-UI Dojo) reading an agentfootprint run with no glue code — the run's served events translated into AG-UI 1.0 events: streamed text, tool calls with arguments and results, reasoning, ReAct iterations and compositions as steps, a nested agent (a `Sequence` step, a `Parallel` branch) as a sub-agent with its parent links, a pause as an interrupt, a failure as `RUN_ERROR` in the record's words; `CUSTOM` an allow-list of events with projected fields (`AG_UI_CUSTOM_EVENTS`), reasoning only on request; ids minted from the record's address under the request's run id (unique across a thread when branches reuse a provider's tool-call id); nothing a redaction policy hides on the wire, at any depth; framed by the official `@ag-ui/encoder` (optional peer, loaded only when a framing is built) | `agUiSerializer` + `agUiSse` + `AG_UI_CUSTOM_EVENTS` (`agentfootprint/ag-ui`) + `RunTranslation` / `RunSettlement` (the port, `agentfootprint/hosting`) | `src/ag-ui/` | 10.4.0 |
147
+ | writing a run's Server-Sent Events in a different frame shape — the framing is a strategy: `toSSE({ framing })`, default the frames it always wrote | `SseFraming` + `agentfootprintSse` (`agentfootprint/observe`) | `src/hosting/stream.ts` | 10.4.0 |
137
148
 
138
149
  **Maintaining this table:** a new public capability adds a row, in the same
139
150
  change that adds the capability. `test/docs/capability-index.test.ts` fails if a
package/README.md CHANGED
@@ -228,6 +228,50 @@ Build the entire app against in-memory mocks with **zero API cost**, then swap r
228
228
 
229
229
  The flowchart, recorders, and tests don't change between dev and prod.
230
230
 
231
+ ## Any AG-UI frontend — no glue code
232
+
233
+ AG-UI frontends (CopilotKit, the AG-UI Dojo, any `@ag-ui/client` app) all speak one protocol: POST a `RunAgentInput`, read a stream of typed events. An agentfootprint run is already a stream of typed events, so the only missing piece is the adapter between them — `agUi()`. Hand it to `streamHandler`, a plain `(request) => Promise<Response>` that mounts in Next.js, Hono, Bun, Deno or Workers, and the frontend shows streamed text, tool calls with their results, steps and sub-agents.
234
+
235
+ A browser request is untrusted, so the handler decides nothing on its word: it builds a fresh agent for every request, binds the thread to the caller *your* verifier proves (`verifiedThreads` — a checked bearer token or sign-in, never a header read as a name), keeps the conversation on the server (`sessions`) and takes only the person's newest message from the page. It reads only what the run *serves*, so anything your redaction policy hides never reaches the browser.
236
+
237
+ ```ts
238
+ // npm install agentfootprint @ag-ui/core @ag-ui/encoder
239
+ import { Agent } from 'agentfootprint';
240
+ import { mock } from 'agentfootprint/providers';
241
+ import { memorySessions, streamHandler, verifiedThreads } from 'agentfootprint/hosting';
242
+ import { agUi } from 'agentfootprint/ag-ui';
243
+
244
+ // Who is calling — PROVEN, not claimed. A real app: jwksIdentity({ jwksUrl, issuer, audience })
245
+ // from 'agentfootprint/security'. This demo verifier knows one token.
246
+ const verify = async (token: string) => {
247
+ if (token !== 'demo-token-for-ada') throw new Error('unknown token');
248
+ return { userId: 'ada' };
249
+ };
250
+
251
+ const handler = streamHandler({
252
+ // A fresh agent per request — nothing one caller's run leaves behind reaches another.
253
+ agent: () =>
254
+ Agent.create({ provider: mock({ reply: 'Hello from agentfootprint.' }), model: 'mock' })
255
+ .system('Be brief.')
256
+ .build(),
257
+ adapter: agUi(),
258
+ threads: verifiedThreads({ verify }), // no valid token → 401; the thread is the caller's own
259
+ sessions: memorySessions(), // the conversation lives on the server (one turn per thread, per process)
260
+ }); // Next.js: export const POST = handler;
261
+
262
+ // What an AG-UI frontend sends, and what it reads back:
263
+ const response = await handler(
264
+ new Request('http://localhost/agent', {
265
+ method: 'POST',
266
+ headers: { 'content-type': 'application/json', authorization: 'Bearer demo-token-for-ada' },
267
+ body: JSON.stringify({ threadId: 't1', runId: 'r1', messages: [{ id: 'u1', role: 'user', content: 'Hi' }] }),
268
+ }),
269
+ );
270
+ console.log(await response.text()); // data: {"type":"RUN_STARTED",…} … data: {"type":"RUN_FINISHED",…}
271
+ ```
272
+
273
+ Two turns with a tool call, end to end: [`examples/deploy/ag-ui.ts`](examples/deploy/ag-ui.ts) · frontend tools, interrupts, what a page may not decide, and what goes out: [AG-UI frontends](https://agentfootprint.dev/docs/infrastructure/ag-ui/).
274
+
231
275
  ## Building with an AI coding assistant
232
276
 
233
277
  agentfootprint is written to be used — and maintained — by coding agents.
@@ -34,9 +34,9 @@ Two more absences: there is **no runtime force-stop governor** (`routeRecorder()
34
34
  only *labels* a spinning run; `maxIterations` is the hard stop), and there is **no
35
35
  automatic re-delivery of an ageing skill body** (the inert `refreshPolicy` was removed in 10.0.0 — use `surfaceMode: 'both'`).
36
36
 
37
- ## Subpath map — 18 doors
37
+ ## Subpath map — 19 doors
38
38
 
39
- `agentfootprint` (main barrel: `Agent`, `LLMCall`, `defineTool`, control flow, patterns, `defineRAG`, pause/resume) · `/providers` (`mock`, `anthropic`, `openai`, `bedrock`, `ollama`, `mcpClient`, embedders — every provider, so bundlers never walk the vendor SDKs from the main barrel) · `/context` (`defineSkill`, `defineFact`, `defineSteering`, `defineInstruction`, `skillGraph`, `skillsFromDir`, the scorers) · `/memory` (`defineMemory`, `InMemoryStore`, `mockEmbedder`, the stores) · `/rag` (stores + loaders; `defineRAG` itself is on the main barrel) · `/observe` (recorders, tracing, `RunStep`) · `/resilience` (provider decorators) · `/reliability` (only the reliability gate's distinct `CircuitOpenError`; rules live on `/resilience`) · `/cache` (prefix-cache strategies, chosen from the provider's declared `promptCaching` by `cacheStrategyFor`) · `/security` · `/hosting` · `/events` · `/skill-graph` (the routing layer with no framework attached, for a host that is not this agent) · `/recipes` (`defineAgentRecipe` — one named, versioned agent setup, applied with `.recipe()`) · `/maps` (`Claim<T>` and the map-engagement vocabulary behind `.maps()`) · `/classify` (the calibrated-classifier port: `Classifier`, `mockClassifier`) · `/ontology` (`defineOntology` — a declared map of the domain, mounted with `.ontology()`) · `/time` (`convertForTool` + `sugarForms` + `granularityMsOf` — the time layer's own answer to whether and how a tool reads a window, for an app outside a run; the steps `convertExact`, `convertWidened`, `periodFactProblem` too). `package.json` `exports` is the complete list; a path not on it does not resolve.
39
+ `agentfootprint` (main barrel: `Agent`, `LLMCall`, `defineTool`, control flow, patterns, `defineRAG`, pause/resume) · `/providers` (`mock`, `anthropic`, `openai`, `bedrock`, `ollama`, `mcpClient`, embedders — every provider, so bundlers never walk the vendor SDKs from the main barrel) · `/context` (`defineSkill`, `defineFact`, `defineSteering`, `defineInstruction`, `skillGraph`, `skillsFromDir`, the scorers) · `/memory` (`defineMemory`, `InMemoryStore`, `mockEmbedder`, the stores) · `/rag` (stores + loaders; `defineRAG` itself is on the main barrel) · `/observe` (recorders, tracing, `RunStep`) · `/resilience` (provider decorators) · `/reliability` (only the reliability gate's distinct `CircuitOpenError`; rules live on `/resilience`) · `/cache` (prefix-cache strategies, chosen from the provider's declared `promptCaching` by `cacheStrategyFor`) · `/security` · `/hosting` · `/events` · `/skill-graph` (the routing layer with no framework attached, for a host that is not this agent) · `/recipes` (`defineAgentRecipe` — one named, versioned agent setup, applied with `.recipe()`) · `/maps` (`Claim<T>` and the map-engagement vocabulary behind `.maps()`) · `/classify` (the calibrated-classifier port: `Classifier`, `mockClassifier`) · `/ontology` (`defineOntology` — a declared map of the domain, mounted with `.ontology()`) · `/time` (`convertForTool` + `sugarForms` + `granularityMsOf` — the time layer's own answer to whether and how a tool reads a window, for an app outside a run; the steps `convertExact`, `convertWidened`, `periodFactProblem` too) · `/ag-ui` (`agUi()` — the AG-UI adapter: `streamHandler({ agent: () => buildAgent(), adapter: agUi(), threads: verifiedThreads(identity), sessions })` from `/hosting` serves agents to any AG-UI frontend, a fresh agent per request, the thread bound to the VERIFIED caller; `agUiSerializer` + `agUiSse` for a transport of your own; framed by the optional peer `@ag-ui/encoder`). `package.json` `exports` is the complete list; a path not on it does not resolve.
40
40
 
41
41
  ## Core Concepts
42
42
 
@@ -8,18 +8,27 @@ Building Generative AI applications is mostly **context engineering** — decidi
8
8
  import {
9
9
  Agent, LLMCall, defineTool,
10
10
  Sequence, Parallel, Conditional, Loop,
11
- defineSkill, defineSteering, defineInstruction, defineFact,
12
- defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
13
- InMemoryStore, mockEmbedder,
14
- anthropic, openai, bedrock, ollama, mock,
15
11
  askHuman, pauseHere, isPaused,
16
- withRetry, withFallback, resilientProvider,
17
12
  } from 'agentfootprint';
13
+ import { defineSkill, defineSteering, defineInstruction, defineFact } from 'agentfootprint/context';
14
+ import {
15
+ defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
16
+ InMemoryStore, mockEmbedder,
17
+ } from 'agentfootprint/memory';
18
+ import { anthropic, openai, bedrock, ollama, mock, mcpClient } from 'agentfootprint/providers';
19
+ import { withRetry, withFallback, fallbackProvider } from 'agentfootprint/resilience';
18
20
  ```
19
21
 
20
- **Top-level barrel only.** Don't import from stale subpaths like
21
- `agentfootprint/instructions`, `agentfootprint/observe`,
22
- `agentfootprint/security`, `agentfootprint/explain`.
22
+ **Import each name from the door that exports it.** `package.json` `exports` is
23
+ exhaustive: a path that is not a door does not resolve, and a name imported from
24
+ a door that does not export it fails to compile (and is `undefined` under
25
+ `require`). The core API is on `agentfootprint`. LLM providers, embedders,
26
+ `mcpClient` and MCP transports such as `agentCoreRuntimeMcpTransport` are on
27
+ `agentfootprint/providers`. Memory, its stores included, is on
28
+ `agentfootprint/memory`, context engineering on `agentfootprint/context`,
29
+ resilience on `agentfootprint/resilience`, and observability on
30
+ `agentfootprint/observe`. Paths such as `agentfootprint/instructions` and
31
+ `agentfootprint/explain` do not exist.
23
32
 
24
33
  ## The 6-layer mental model
25
34
 
@@ -57,7 +66,8 @@ Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool
57
66
  ### Hello agent — mock-first
58
67
 
59
68
  ```typescript
60
- import { Agent, mock } from 'agentfootprint';
69
+ import { Agent } from 'agentfootprint';
70
+ import { mock } from 'agentfootprint/providers';
61
71
 
62
72
  const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
63
73
  .system('You are a helpful assistant.')
@@ -135,7 +145,8 @@ Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECA
135
145
  ### MCP (Model Context Protocol — connect to external MCP servers)
136
146
 
137
147
  ```typescript
138
- import { Agent, mcpClient } from 'agentfootprint';
148
+ import { Agent } from 'agentfootprint';
149
+ import { mcpClient } from 'agentfootprint/providers';
139
150
 
140
151
  const slack = await mcpClient({
141
152
  name: 'slack',
@@ -189,7 +200,7 @@ const tot = Parallel.create()
189
200
  ## Anti-patterns — Don't
190
201
 
191
202
  - ❌ `agent.run('string')` → use `agent.run({ message: '...', identity? })`
192
- - ❌ Stale subpaths: `agentfootprint/instructions`, `agentfootprint/observe`, `agentfootprint/security`
203
+ - ❌ Paths that are not doors: `agentfootprint/instructions`, `agentfootprint/explain` (see `package.json` `exports`)
193
204
  - ❌ `.memoryPipeline(pipeline)` (v1) → use `.memory(defineMemory({...}))`
194
205
  - ❌ Shipping a `ReflexionAgent` class → compose `Sequence(Agent, critique-LLM, Agent)`
195
206
  - ❌ Closures or class instances in scope (can't be cloned)
@@ -8,18 +8,27 @@ Building Generative AI applications is mostly **context engineering** — decidi
8
8
  import {
9
9
  Agent, LLMCall, defineTool,
10
10
  Sequence, Parallel, Conditional, Loop,
11
- defineSkill, defineSteering, defineInstruction, defineFact,
12
- defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
13
- InMemoryStore, mockEmbedder,
14
- anthropic, openai, bedrock, ollama, mock,
15
11
  askHuman, pauseHere, isPaused,
16
- withRetry, withFallback, resilientProvider,
17
12
  } from 'agentfootprint';
13
+ import { defineSkill, defineSteering, defineInstruction, defineFact } from 'agentfootprint/context';
14
+ import {
15
+ defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
16
+ InMemoryStore, mockEmbedder,
17
+ } from 'agentfootprint/memory';
18
+ import { anthropic, openai, bedrock, ollama, mock, mcpClient } from 'agentfootprint/providers';
19
+ import { withRetry, withFallback, fallbackProvider } from 'agentfootprint/resilience';
18
20
  ```
19
21
 
20
- **Top-level barrel only.** Don't import from stale subpaths like
21
- `agentfootprint/instructions`, `agentfootprint/observe`,
22
- `agentfootprint/security`, `agentfootprint/explain`.
22
+ **Import each name from the door that exports it.** `package.json` `exports` is
23
+ exhaustive: a path that is not a door does not resolve, and a name imported from
24
+ a door that does not export it fails to compile (and is `undefined` under
25
+ `require`). The core API is on `agentfootprint`. LLM providers, embedders,
26
+ `mcpClient` and MCP transports such as `agentCoreRuntimeMcpTransport` are on
27
+ `agentfootprint/providers`. Memory, its stores included, is on
28
+ `agentfootprint/memory`, context engineering on `agentfootprint/context`,
29
+ resilience on `agentfootprint/resilience`, and observability on
30
+ `agentfootprint/observe`. Paths such as `agentfootprint/instructions` and
31
+ `agentfootprint/explain` do not exist.
23
32
 
24
33
  ## The 6-layer mental model
25
34
 
@@ -57,7 +66,8 @@ Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool
57
66
  ### Hello agent — mock-first
58
67
 
59
68
  ```typescript
60
- import { Agent, mock } from 'agentfootprint';
69
+ import { Agent } from 'agentfootprint';
70
+ import { mock } from 'agentfootprint/providers';
61
71
 
62
72
  const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
63
73
  .system('You are a helpful assistant.')
@@ -135,7 +145,8 @@ Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECA
135
145
  ### MCP (Model Context Protocol — connect to external MCP servers)
136
146
 
137
147
  ```typescript
138
- import { Agent, mcpClient } from 'agentfootprint';
148
+ import { Agent } from 'agentfootprint';
149
+ import { mcpClient } from 'agentfootprint/providers';
139
150
 
140
151
  const slack = await mcpClient({
141
152
  name: 'slack',
@@ -189,7 +200,7 @@ const tot = Parallel.create()
189
200
  ## Anti-patterns — Don't
190
201
 
191
202
  - ❌ `agent.run('string')` → use `agent.run({ message: '...', identity? })`
192
- - ❌ Stale subpaths: `agentfootprint/instructions`, `agentfootprint/observe`, `agentfootprint/security`
203
+ - ❌ Paths that are not doors: `agentfootprint/instructions`, `agentfootprint/explain` (see `package.json` `exports`)
193
204
  - ❌ `.memoryPipeline(pipeline)` (v1) → use `.memory(defineMemory({...}))`
194
205
  - ❌ Shipping a `ReflexionAgent` class → compose `Sequence(Agent, critique-LLM, Agent)`
195
206
  - ❌ Closures or class instances in scope (can't be cloned)
@@ -8,18 +8,27 @@ Building Generative AI applications is mostly **context engineering** — decidi
8
8
  import {
9
9
  Agent, LLMCall, defineTool,
10
10
  Sequence, Parallel, Conditional, Loop,
11
- defineSkill, defineSteering, defineInstruction, defineFact,
12
- defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
13
- InMemoryStore, mockEmbedder,
14
- anthropic, openai, bedrock, ollama, mock,
15
11
  askHuman, pauseHere, isPaused,
16
- withRetry, withFallback, resilientProvider,
17
12
  } from 'agentfootprint';
13
+ import { defineSkill, defineSteering, defineInstruction, defineFact } from 'agentfootprint/context';
14
+ import {
15
+ defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
16
+ InMemoryStore, mockEmbedder,
17
+ } from 'agentfootprint/memory';
18
+ import { anthropic, openai, bedrock, ollama, mock, mcpClient } from 'agentfootprint/providers';
19
+ import { withRetry, withFallback, fallbackProvider } from 'agentfootprint/resilience';
18
20
  ```
19
21
 
20
- **Top-level barrel only.** Don't import from stale subpaths like
21
- `agentfootprint/instructions`, `agentfootprint/observe`,
22
- `agentfootprint/security`, `agentfootprint/explain`.
22
+ **Import each name from the door that exports it.** `package.json` `exports` is
23
+ exhaustive: a path that is not a door does not resolve, and a name imported from
24
+ a door that does not export it fails to compile (and is `undefined` under
25
+ `require`). The core API is on `agentfootprint`. LLM providers, embedders,
26
+ `mcpClient` and MCP transports such as `agentCoreRuntimeMcpTransport` are on
27
+ `agentfootprint/providers`. Memory, its stores included, is on
28
+ `agentfootprint/memory`, context engineering on `agentfootprint/context`,
29
+ resilience on `agentfootprint/resilience`, and observability on
30
+ `agentfootprint/observe`. Paths such as `agentfootprint/instructions` and
31
+ `agentfootprint/explain` do not exist.
23
32
 
24
33
  ## The 6-layer mental model
25
34
 
@@ -57,7 +66,8 @@ Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool
57
66
  ### Hello agent — mock-first
58
67
 
59
68
  ```typescript
60
- import { Agent, mock } from 'agentfootprint';
69
+ import { Agent } from 'agentfootprint';
70
+ import { mock } from 'agentfootprint/providers';
61
71
 
62
72
  const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
63
73
  .system('You are a helpful assistant.')
@@ -135,7 +145,8 @@ Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECA
135
145
  ### MCP (Model Context Protocol — connect to external MCP servers)
136
146
 
137
147
  ```typescript
138
- import { Agent, mcpClient } from 'agentfootprint';
148
+ import { Agent } from 'agentfootprint';
149
+ import { mcpClient } from 'agentfootprint/providers';
139
150
 
140
151
  const slack = await mcpClient({
141
152
  name: 'slack',
@@ -189,7 +200,7 @@ const tot = Parallel.create()
189
200
  ## Anti-patterns — Don't
190
201
 
191
202
  - ❌ `agent.run('string')` → use `agent.run({ message: '...', identity? })`
192
- - ❌ Stale subpaths: `agentfootprint/instructions`, `agentfootprint/observe`, `agentfootprint/security`
203
+ - ❌ Paths that are not doors: `agentfootprint/instructions`, `agentfootprint/explain` (see `package.json` `exports`)
193
204
  - ❌ `.memoryPipeline(pipeline)` (v1) → use `.memory(defineMemory({...}))`
194
205
  - ❌ Shipping a `ReflexionAgent` class → compose `Sequence(Agent, critique-LLM, Agent)`
195
206
  - ❌ Closures or class instances in scope (can't be cloned)
@@ -8,18 +8,27 @@ Building Generative AI applications is mostly **context engineering** — decidi
8
8
  import {
9
9
  Agent, LLMCall, defineTool,
10
10
  Sequence, Parallel, Conditional, Loop,
11
- defineSkill, defineSteering, defineInstruction, defineFact,
12
- defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
13
- InMemoryStore, mockEmbedder,
14
- anthropic, openai, bedrock, ollama, mock,
15
11
  askHuman, pauseHere, isPaused,
16
- withRetry, withFallback, resilientProvider,
17
12
  } from 'agentfootprint';
13
+ import { defineSkill, defineSteering, defineInstruction, defineFact } from 'agentfootprint/context';
14
+ import {
15
+ defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
16
+ InMemoryStore, mockEmbedder,
17
+ } from 'agentfootprint/memory';
18
+ import { anthropic, openai, bedrock, ollama, mock, mcpClient } from 'agentfootprint/providers';
19
+ import { withRetry, withFallback, fallbackProvider } from 'agentfootprint/resilience';
18
20
  ```
19
21
 
20
- **Top-level barrel only.** Don't import from stale subpaths like
21
- `agentfootprint/instructions`, `agentfootprint/observe`,
22
- `agentfootprint/security`, `agentfootprint/explain`.
22
+ **Import each name from the door that exports it.** `package.json` `exports` is
23
+ exhaustive: a path that is not a door does not resolve, and a name imported from
24
+ a door that does not export it fails to compile (and is `undefined` under
25
+ `require`). The core API is on `agentfootprint`. LLM providers, embedders,
26
+ `mcpClient` and MCP transports such as `agentCoreRuntimeMcpTransport` are on
27
+ `agentfootprint/providers`. Memory, its stores included, is on
28
+ `agentfootprint/memory`, context engineering on `agentfootprint/context`,
29
+ resilience on `agentfootprint/resilience`, and observability on
30
+ `agentfootprint/observe`. Paths such as `agentfootprint/instructions` and
31
+ `agentfootprint/explain` do not exist.
23
32
 
24
33
  ## The 6-layer mental model
25
34
 
@@ -57,7 +66,8 @@ Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool
57
66
  ### Hello agent — mock-first
58
67
 
59
68
  ```typescript
60
- import { Agent, mock } from 'agentfootprint';
69
+ import { Agent } from 'agentfootprint';
70
+ import { mock } from 'agentfootprint/providers';
61
71
 
62
72
  const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
63
73
  .system('You are a helpful assistant.')
@@ -135,7 +145,8 @@ Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECA
135
145
  ### MCP (Model Context Protocol — connect to external MCP servers)
136
146
 
137
147
  ```typescript
138
- import { Agent, mcpClient } from 'agentfootprint';
148
+ import { Agent } from 'agentfootprint';
149
+ import { mcpClient } from 'agentfootprint/providers';
139
150
 
140
151
  const slack = await mcpClient({
141
152
  name: 'slack',
@@ -189,7 +200,7 @@ const tot = Parallel.create()
189
200
  ## Anti-patterns — Don't
190
201
 
191
202
  - ❌ `agent.run('string')` → use `agent.run({ message: '...', identity? })`
192
- - ❌ Stale subpaths: `agentfootprint/instructions`, `agentfootprint/observe`, `agentfootprint/security`
203
+ - ❌ Paths that are not doors: `agentfootprint/instructions`, `agentfootprint/explain` (see `package.json` `exports`)
193
204
  - ❌ `.memoryPipeline(pipeline)` (v1) → use `.memory(defineMemory({...}))`
194
205
  - ❌ Shipping a `ReflexionAgent` class → compose `Sequence(Agent, critique-LLM, Agent)`
195
206
  - ❌ Closures or class instances in scope (can't be cloned)
@@ -8,18 +8,27 @@ Building Generative AI applications is mostly **context engineering** — decidi
8
8
  import {
9
9
  Agent, LLMCall, defineTool,
10
10
  Sequence, Parallel, Conditional, Loop,
11
- defineSkill, defineSteering, defineInstruction, defineFact,
12
- defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
13
- InMemoryStore, mockEmbedder,
14
- anthropic, openai, bedrock, ollama, mock,
15
11
  askHuman, pauseHere, isPaused,
16
- withRetry, withFallback, resilientProvider,
17
12
  } from 'agentfootprint';
13
+ import { defineSkill, defineSteering, defineInstruction, defineFact } from 'agentfootprint/context';
14
+ import {
15
+ defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, SNAPSHOT_PROJECTIONS,
16
+ InMemoryStore, mockEmbedder,
17
+ } from 'agentfootprint/memory';
18
+ import { anthropic, openai, bedrock, ollama, mock, mcpClient } from 'agentfootprint/providers';
19
+ import { withRetry, withFallback, fallbackProvider } from 'agentfootprint/resilience';
18
20
  ```
19
21
 
20
- **Top-level barrel only.** Don't import from stale subpaths like
21
- `agentfootprint/instructions`, `agentfootprint/observe`,
22
- `agentfootprint/security`, `agentfootprint/explain`.
22
+ **Import each name from the door that exports it.** `package.json` `exports` is
23
+ exhaustive: a path that is not a door does not resolve, and a name imported from
24
+ a door that does not export it fails to compile (and is `undefined` under
25
+ `require`). The core API is on `agentfootprint`. LLM providers, embedders,
26
+ `mcpClient` and MCP transports such as `agentCoreRuntimeMcpTransport` are on
27
+ `agentfootprint/providers`. Memory, its stores included, is on
28
+ `agentfootprint/memory`, context engineering on `agentfootprint/context`,
29
+ resilience on `agentfootprint/resilience`, and observability on
30
+ `agentfootprint/observe`. Paths such as `agentfootprint/instructions` and
31
+ `agentfootprint/explain` do not exist.
23
32
 
24
33
  ## The 6-layer mental model
25
34
 
@@ -57,7 +66,8 @@ Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool
57
66
  ### Hello agent — mock-first
58
67
 
59
68
  ```typescript
60
- import { Agent, mock } from 'agentfootprint';
69
+ import { Agent } from 'agentfootprint';
70
+ import { mock } from 'agentfootprint/providers';
61
71
 
62
72
  const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
63
73
  .system('You are a helpful assistant.')
@@ -135,7 +145,8 @@ Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECA
135
145
  ### MCP (Model Context Protocol — connect to external MCP servers)
136
146
 
137
147
  ```typescript
138
- import { Agent, mcpClient } from 'agentfootprint';
148
+ import { Agent } from 'agentfootprint';
149
+ import { mcpClient } from 'agentfootprint/providers';
139
150
 
140
151
  const slack = await mcpClient({
141
152
  name: 'slack',
@@ -189,7 +200,7 @@ const tot = Parallel.create()
189
200
  ## Anti-patterns — Don't
190
201
 
191
202
  - ❌ `agent.run('string')` → use `agent.run({ message: '...', identity? })`
192
- - ❌ Stale subpaths: `agentfootprint/instructions`, `agentfootprint/observe`, `agentfootprint/security`
203
+ - ❌ Paths that are not doors: `agentfootprint/instructions`, `agentfootprint/explain` (see `package.json` `exports`)
193
204
  - ❌ `.memoryPipeline(pipeline)` (v1) → use `.memory(defineMemory({...}))`
194
205
  - ❌ Shipping a `ReflexionAgent` class → compose `Sequence(Agent, critique-LLM, Agent)`
195
206
  - ❌ Closures or class instances in scope (can't be cloned)
@@ -20,6 +20,7 @@
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
21
  exports.AnthropicProvider = exports.anthropic = void 0;
22
22
  const lazyRequire_js_1 = require("../../lib/lazyRequire.js");
23
+ const abort_js_1 = require("../../lib/abort.js");
23
24
  const contextWindow_js_1 = require("../../provider-contract/contextWindow.js");
24
25
  const retryAfter_js_1 = require("./retryAfter.js");
25
26
  const anthropicCacheWire_js_1 = require("./anthropicCacheWire.js");
@@ -99,13 +100,19 @@ function anthropic(options = {}) {
99
100
  // the same function.
100
101
  thinkingMode: (model) => modeOf(modelOf(model)),
101
102
  async complete(req, hooks) {
103
+ // A cancelled call sends nothing (lib/abort.ts, law 1).
104
+ (0, abort_js_1.throwIfAborted)(req.signal);
102
105
  const preparation = (0, anthropicThinkingReplay_js_1.prepareAnthropicReplay)(req, modelOf(req.model), 'anthropic');
103
106
  const params = buildParams(preparation.request);
104
107
  const bindingFactory = (0, anthropicThinkingReplay_js_1.thinkingReplayBinding)(params, params.model);
105
108
  if (preparation.omissions.length > 0)
106
109
  hooks?.onReplayPrepared?.(preparation);
107
110
  try {
108
- const message = await client.messages.create(params);
111
+ // The signal rides the SDK's request options, so an abort cancels the
112
+ // HTTP request itself; the race refuses an answer that lands after it.
113
+ const message = await (0, abort_js_1.untilAborted)(req.signal
114
+ ? client.messages.create(params, { signal: req.signal })
115
+ : client.messages.create(params), req.signal);
109
116
  // Manifest read from the FINAL params — after tool mapping and cache
110
117
  // markers — because the whole point is catching what the body says,
111
118
  // not what the request intended (wireManifest.ts).
@@ -116,10 +123,11 @@ function anthropic(options = {}) {
116
123
  };
117
124
  }
118
125
  catch (err) {
119
- throw wrapError(err);
126
+ throw wrapError(err, req.signal);
120
127
  }
121
128
  },
122
129
  async *stream(req, hooks) {
130
+ (0, abort_js_1.throwIfAborted)(req.signal);
123
131
  const preparation = (0, anthropicThinkingReplay_js_1.prepareAnthropicReplay)(req, modelOf(req.model), 'anthropic');
124
132
  const params = buildParams(preparation.request);
125
133
  const bindingFactory = (0, anthropicThinkingReplay_js_1.thinkingReplayBinding)(params, params.model);
@@ -127,15 +135,20 @@ function anthropic(options = {}) {
127
135
  hooks?.onReplayPrepared?.(preparation);
128
136
  let stream;
129
137
  try {
130
- stream = client.messages.stream(params);
138
+ stream = req.signal
139
+ ? client.messages.stream(params, { signal: req.signal })
140
+ : client.messages.stream(params);
131
141
  }
132
142
  catch (err) {
133
- throw wrapError(err);
143
+ throw wrapError(err, req.signal);
134
144
  }
145
+ const opened = stream;
135
146
  let tokenIndex = 0;
136
147
  const toolArguments = new anthropicToolArguments_js_1.AnthropicToolArguments();
137
148
  try {
138
- for await (const event of stream) {
149
+ // An abort closes the SDK stream and ends this loop at once, even
150
+ // when a read is still pending (lib/abort.ts, laws 2–3).
151
+ for await (const event of (0, abort_js_1.abortableIterable)(opened, req.signal, () => opened.abort?.())) {
139
152
  toolArguments.observe(event);
140
153
  if (event.type === 'content_block_delta' &&
141
154
  event.delta?.type === 'text_delta' &&
@@ -144,7 +157,7 @@ function anthropic(options = {}) {
144
157
  tokenIndex++;
145
158
  }
146
159
  }
147
- const final = await stream.finalMessage();
160
+ const final = await (0, abort_js_1.untilAborted)(opened.finalMessage(), req.signal);
148
161
  toolArguments.assertTerminal(final.content.some((block) => block.type === 'tool_use'));
149
162
  const argumentFailures = new Map();
150
163
  const checkedMessage = {
@@ -166,7 +179,7 @@ function anthropic(options = {}) {
166
179
  yield { tokenIndex, content: '', done: true, response };
167
180
  }
168
181
  catch (err) {
169
- throw wrapError(err);
182
+ throw wrapError(err, req.signal);
170
183
  }
171
184
  },
172
185
  };
@@ -230,7 +243,12 @@ function resolveClient(options) {
230
243
  ...(options.maxRetries !== undefined ? { maxRetries: options.maxRetries } : {}),
231
244
  });
232
245
  }
233
- function wrapError(err) {
246
+ function wrapError(err, signal) {
247
+ // A cancelled call fails AS the cancellation, whatever the SDK threw for it
248
+ // (its own `APIUserAbortError` included) — never as a provider error that a
249
+ // retry would re-send (lib/abort.ts).
250
+ if (signal?.aborted)
251
+ return (0, abort_js_1.abortErrorOf)(signal);
234
252
  // See OpenAIProvider.wrapError — one shared detector, one typed error, so
235
253
  // "prompt is too long" reads the same whichever vendor said it.
236
254
  const tooBig = (0, contextWindow_js_1.asContextWindowExceeded)(err, { provider: 'anthropic' });
@@ -1 +1 @@
1
- {"version":3,"file":"AnthropicProvider.js","sourceRoot":"","sources":["../../../src/adapters/llm/AnthropicProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnthropicProvider.js","sourceRoot":"","sources":["../../../src/adapters/llm/AnthropicProvider.ts"],"names":[],"mappings":"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"}