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
@@ -0,0 +1,408 @@
1
+ /**
2
+ * request — an AG-UI request (`RunAgentInput`) read as UNTRUSTED browser input,
3
+ * and the one turn it may ask for.
4
+ *
5
+ * Three steps. The first is the app's to replace; the other two are the CORE,
6
+ * and run whichever reader produced the request — so a reader can map another
7
+ * body onto a turn, and never weaken a rule:
8
+ *
9
+ * the READER a body → an {@link AgUiTurnRequest}. The default takes
10
+ * the body as an AG-UI `RunAgentInput`; a gateway that
11
+ * sends its own body shape passes its own
12
+ * ({@link AgUiRequestReader}). Mapping only — it decides
13
+ * nothing below;
14
+ * readAgUiRequest what a custom reader produced, copied as plain JSON (so
15
+ * a getter or a proxy cannot answer the check one way and
16
+ * the plan another; the default reader's body is parsed
17
+ * JSON already and is read as it is), then
18
+ * readAgUiRunInput its SHAPE, field by field, and
19
+ * the ids' FORMAT and length — nothing here is trusted,
20
+ * nothing the server holds is read;
21
+ * planAgUiTurn the turn, from the request AND what the server holds
22
+ * for the bound conversation.
23
+ *
24
+ * The core's steps refuse by NAME (a `WireRequestRefusal`: its own status and
25
+ * code; the field named, the value never quoted back).
26
+ *
27
+ * WHAT A REQUEST MAY DECIDE, and what it may not:
28
+ * - the newest USER message is the run's message. Nothing else the browser
29
+ * sends is ever conversation: its assistant and tool messages are its own
30
+ * copy of what the server said, and the server's copy is the one kept
31
+ * (`sessions`, or the agent's memory under the bound session). A system or
32
+ * developer message is refused — the agent's instructions are its own;
33
+ * - an ANSWER is taken only for the pause the server is keeping, matched to
34
+ * the ids that pause handed out (`AgUiSuspension`): a resume entry naming
35
+ * its interrupt, or the tool message answering the frontend tool call it is
36
+ * waiting on. Any other tool result is refused — never folded in;
37
+ * - a frontend tool runs only when the app allow-listed its NAME — with the
38
+ * app's own description and schema, never the page's (a description the
39
+ * model reads is an instruction) — and only on a host that keeps the paused
40
+ * run until the page answers;
41
+ * - `state` and `context` reach the agent only through the app's validators;
42
+ * without one, a request carrying either is refused;
43
+ * - identity, credentials and redaction never come from a request: the host
44
+ * binds the thread to the caller the app authenticates (`ThreadBinder`).
45
+ * `forwardedProps` is never read.
46
+ */
47
+ import { WireRequestRefusal } from '../hosting/errors.js';
48
+ /** The longest thread or run id read — longer is refused, never truncated. */
49
+ export const AG_UI_MAX_ID_LENGTH = 128;
50
+ /**
51
+ * The thread and run id alphabet: letters, digits and `._:-`, starting with a
52
+ * letter or digit — every id an AG-UI SDK mints (a UUID, a ULID) and nothing
53
+ * that could carry markup, a path or a control character into a log line.
54
+ */
55
+ const ID_FORMAT = /^[A-Za-z0-9][A-Za-z0-9._:-]*$/;
56
+ /** The longest message, tool-call or interrupt id read. */
57
+ const MAX_ITEM_ID_LENGTH = 400;
58
+ /** A tool name the page may declare — the provider-portable alphabet. */
59
+ const TOOL_NAME = /^[A-Za-z0-9_-]{1,64}$/;
60
+ const ROLES = new Set([
61
+ 'user',
62
+ 'assistant',
63
+ 'tool',
64
+ 'system',
65
+ 'developer',
66
+ 'reasoning',
67
+ 'activity',
68
+ ]);
69
+ /** A refusal of the request's shape — names the field, never its value. */
70
+ const malformed = (what) => new WireRequestRefusal('ERR_INVALID_RUN_INPUT', `AG-UI: ${what}`, 400);
71
+ /** A refusal of what this agent does not accept from a page — its own code. */
72
+ const refused = (code, what, status = 400) => new WireRequestRefusal(code, `AG-UI: ${what}`, status);
73
+ const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
74
+ /** A thread or run id: present, bounded, and in the id alphabet. */
75
+ function runId(value, field) {
76
+ if (typeof value !== 'string' || value.length === 0)
77
+ throw malformed(`\`${field}\` must be a non-empty string.`);
78
+ if (value.length > AG_UI_MAX_ID_LENGTH)
79
+ throw malformed(`\`${field}\` is longer than ${AG_UI_MAX_ID_LENGTH} characters.`);
80
+ if (!ID_FORMAT.test(value))
81
+ throw malformed(`\`${field}\` must be letters, digits and . _ : - only, starting with a letter or digit.`);
82
+ return value;
83
+ }
84
+ /** A message, call or interrupt id: present and bounded. */
85
+ function itemId(value, field) {
86
+ if (typeof value !== 'string' || value.length === 0)
87
+ throw malformed(`\`${field}\` must be a non-empty string.`);
88
+ if (value.length > MAX_ITEM_ID_LENGTH)
89
+ throw malformed(`\`${field}\` is longer than ${MAX_ITEM_ID_LENGTH} characters.`);
90
+ return value;
91
+ }
92
+ function list(value, field) {
93
+ if (value === undefined || value === null)
94
+ return [];
95
+ if (!Array.isArray(value))
96
+ throw malformed(`\`${field}\` must be an array.`);
97
+ return value;
98
+ }
99
+ function content(value, at, optional = false) {
100
+ if (value === undefined && optional)
101
+ return;
102
+ if (typeof value === 'string')
103
+ return;
104
+ if (!Array.isArray(value))
105
+ throw malformed(`\`${at}.content\` must be a string or a list of parts.`);
106
+ for (const part of value) {
107
+ if (!isRecord(part) || typeof part.type !== 'string')
108
+ throw malformed(`every part of \`${at}.content\` must have a \`type\`.`);
109
+ if (part.type === 'text' && typeof part.text !== 'string')
110
+ throw malformed(`a text part of \`${at}.content\` must carry \`text\`.`);
111
+ }
112
+ }
113
+ function message(value, i) {
114
+ const at = `messages[${i}]`;
115
+ if (!isRecord(value))
116
+ throw malformed(`\`${at}\` must be an object.`);
117
+ itemId(value.id, `${at}.id`);
118
+ if (typeof value.role !== 'string' || !ROLES.has(value.role))
119
+ throw malformed(`\`${at}.role\` is not an AG-UI role.`);
120
+ switch (value.role) {
121
+ case 'user':
122
+ case 'tool':
123
+ content(value.content, at);
124
+ if (value.role === 'tool')
125
+ itemId(value.toolCallId, `${at}.toolCallId`);
126
+ break;
127
+ case 'assistant':
128
+ content(value.content, at, true);
129
+ list(value.toolCalls, `${at}.toolCalls`).forEach((call, j) => {
130
+ const where = `${at}.toolCalls[${j}]`;
131
+ if (!isRecord(call) || !isRecord(call.function))
132
+ throw malformed(`\`${where}\` must be a function call.`);
133
+ itemId(call.id, `${where}.id`);
134
+ if (typeof call.function.name !== 'string' || typeof call.function.arguments !== 'string')
135
+ throw malformed(`\`${where}.function\` must carry \`name\` and \`arguments\` strings.`);
136
+ });
137
+ break;
138
+ default:
139
+ break;
140
+ }
141
+ return value;
142
+ }
143
+ /**
144
+ * Read one AG-UI request body — its shape and its ids — refusing what the
145
+ * protocol does not allow by the field's NAME, never by its value.
146
+ *
147
+ * @throws WireRequestRefusal (400, `ERR_INVALID_RUN_INPUT`)
148
+ */
149
+ export function readAgUiRunInput(body) {
150
+ if (!isRecord(body))
151
+ throw malformed('the body must be a RunAgentInput object.');
152
+ runId(body.threadId, 'threadId');
153
+ runId(body.runId, 'runId');
154
+ if (body.parentRunId !== undefined)
155
+ runId(body.parentRunId, 'parentRunId');
156
+ if (!Array.isArray(body.messages))
157
+ throw malformed('`messages` must be an array.');
158
+ const messages = body.messages.map(message);
159
+ const tools = list(body.tools, 'tools');
160
+ const named = new Set();
161
+ tools.forEach((tool, i) => {
162
+ if (!isRecord(tool) || typeof tool.name !== 'string' || !TOOL_NAME.test(tool.name))
163
+ throw malformed(`\`tools[${i}].name\` must be a tool name (letters, digits, _ and -).`);
164
+ if (named.has(tool.name))
165
+ throw malformed(`\`tools[${i}].name\` repeats a tool already declared.`);
166
+ named.add(tool.name);
167
+ });
168
+ const context = list(body.context, 'context');
169
+ context.forEach((entry, i) => {
170
+ if (!isRecord(entry) ||
171
+ typeof entry.description !== 'string' ||
172
+ typeof entry.value !== 'string')
173
+ throw malformed(`\`context[${i}]\` must carry \`description\` and \`value\` strings.`);
174
+ });
175
+ const resume = list(body.resume, 'resume');
176
+ resume.forEach((entry, i) => {
177
+ if (!isRecord(entry))
178
+ throw malformed(`\`resume[${i}]\` must be an object.`);
179
+ itemId(entry.interruptId, `resume[${i}].interruptId`);
180
+ if (entry.status !== 'resolved' && entry.status !== 'cancelled')
181
+ throw malformed(`\`resume[${i}].status\` must be 'resolved' or 'cancelled'.`);
182
+ });
183
+ return {
184
+ ...body,
185
+ messages,
186
+ tools: tools,
187
+ context: context,
188
+ ...(resume.length > 0 && { resume: resume }),
189
+ };
190
+ }
191
+ /** The default reader: the body IS an AG-UI `RunAgentInput`. */
192
+ export const runAgentInputReader = ({ body }) => body;
193
+ /**
194
+ * The core's read of one request: `reader` maps the body, and what it produced
195
+ * is checked by {@link readAgUiRunInput} — whichever reader it was. A custom
196
+ * reader's answer is copied as plain JSON first; the default reader's is the
197
+ * parsed body itself, read exactly as before readers were replaceable.
198
+ *
199
+ * @throws WireRequestRefusal — the reader's own refusal, or the core's by name
200
+ * (400, `ERR_INVALID_RUN_INPUT`).
201
+ */
202
+ export function readAgUiRequest(reader, request) {
203
+ if (reader === runAgentInputReader)
204
+ return readAgUiRunInput(request.body);
205
+ let answer;
206
+ let produced;
207
+ try {
208
+ answer = reader(request);
209
+ if (!isThenable(answer))
210
+ produced = plainJson(answer);
211
+ }
212
+ catch (err) {
213
+ if (err instanceof WireRequestRefusal)
214
+ throw err;
215
+ // Never the reader's message: it may quote the body it could not read.
216
+ throw malformed('the request reader could not read the body.');
217
+ }
218
+ // An app's mistake, never the caller's: a reader answers at once. (A
219
+ // Promise copied as JSON would be `{}`, refused as the CALLER's fault.)
220
+ if (isThenable(answer))
221
+ throw new TypeError('agUi(): reader must return the turn itself, not a Promise.');
222
+ return readAgUiRunInput(produced);
223
+ }
224
+ const isThenable = (value) => typeof value?.then === 'function';
225
+ /**
226
+ * A custom reader's answer as plain JSON — every value read ONCE, here: a
227
+ * getter, a proxy or a `toJSON` cannot answer the core's check one way and its
228
+ * plan another. JSON's own rules apply (a non-finite number becomes `null`); a
229
+ * value JSON cannot hold (a cycle, a BigInt, nesting too deep to write) is
230
+ * refused as a malformed request.
231
+ */
232
+ function plainJson(value) {
233
+ const text = JSON.stringify(value);
234
+ return text === undefined ? undefined : JSON.parse(text);
235
+ }
236
+ /**
237
+ * Plan one turn: the request (read by {@link readAgUiRunInput}) against what
238
+ * the server holds for its bound conversation.
239
+ *
240
+ * @throws WireRequestRefusal — by name, for everything a page may not decide.
241
+ */
242
+ export function planAgUiTurn(input, held, facts, rules) {
243
+ input.messages.forEach((m, i) => {
244
+ if (m.role === 'system' || m.role === 'developer')
245
+ throw refused('ERR_INSTRUCTIONS_NOT_CARRIED', `messages[${i}] is a ${m.role} message. The agent's instructions are its own; a page ` +
246
+ `cannot send them.`);
247
+ });
248
+ const tools = toolsOf(input, facts, rules);
249
+ const accepted = {};
250
+ const state = validated('state', input.state, rules.accept.state, facts);
251
+ if (state !== undefined)
252
+ accepted.state = state;
253
+ const context = validated('context', input.context.length === 0 ? undefined : input.context, rules.accept.context, facts);
254
+ if (context !== undefined)
255
+ accepted.context = context;
256
+ return {
257
+ turn: turnOf(input, held, facts),
258
+ ...(tools.length > 0 && { tools }),
259
+ ...(Object.keys(accepted).length > 0 && { accepted }),
260
+ };
261
+ }
262
+ /** The frontend tools this request enables: allow-listed by name AND declared by the page. */
263
+ function toolsOf(input, facts, rules) {
264
+ const tools = [];
265
+ input.tools.forEach((declared, i) => {
266
+ const build = rules.frontendTools.get(declared.name);
267
+ if (build === undefined)
268
+ throw refused('ERR_TOOL_NOT_ALLOWED', `tools[${i}] names a tool this agent does not let the page run. A frontend tool runs ` +
269
+ `only when the app allow-lists it: agUi({ frontendTools }).`);
270
+ tools.push(build());
271
+ });
272
+ if (tools.length > 0 && !facts.keepsPauses)
273
+ throw refused('ERR_CLIENT_TOOLS_NOT_CARRIED', `the page offers frontend tools, and their results arrive in the page's NEXT request — ` +
274
+ `this host keeps no paused run to continue. Serve it with threads and sessions.`);
275
+ return tools;
276
+ }
277
+ /** A page value the app's validator accepted, or `undefined` for an empty one. */
278
+ function validated(name, value, validator, facts) {
279
+ if (isEmpty(value))
280
+ return undefined;
281
+ const upper = name.toUpperCase();
282
+ if (validator === undefined)
283
+ throw refused(`ERR_${upper}_NOT_CARRIED`, `the request carries \`${name}\`, and this agent accepts none from a page. To accept it, ` +
284
+ `validate it: agUi({ accept: { ${name} } }).`);
285
+ try {
286
+ return validator(value, {
287
+ ...(facts.thread !== undefined && { thread: facts.thread }),
288
+ headers: facts.headers,
289
+ });
290
+ }
291
+ catch (err) {
292
+ if (err instanceof WireRequestRefusal)
293
+ throw err;
294
+ // Never the validator's message: it may describe the value it refused.
295
+ throw refused(`ERR_${upper}_REFUSED`, `the app's validator refused \`${name}\`.`);
296
+ }
297
+ }
298
+ const isEmpty = (value) => value === undefined ||
299
+ value === null ||
300
+ (Array.isArray(value) && value.length === 0) ||
301
+ (isRecord(value) && Object.keys(value).length === 0);
302
+ /** The turn the request asks for, against what the server holds. */
303
+ function turnOf(input, held, facts) {
304
+ const resume = input.resume ?? [];
305
+ const last = input.messages[input.messages.length - 1];
306
+ const awaiting = held.awaiting;
307
+ if (awaiting === undefined) {
308
+ if (resume.length > 0)
309
+ throw refused('ERR_NO_PENDING_ASK', facts.keepsPauses
310
+ ? 'the request answers an interrupt, and this thread is waiting on none.'
311
+ : 'the request answers an interrupt, and this host keeps no paused run to continue.', 409);
312
+ if (last?.role === 'tool')
313
+ throw refused('ERR_UNKNOWN_TOOL_CALL', `messages[${input.messages.length - 1}] answers a tool call this thread is not ` +
314
+ `waiting on. A tool result is taken only for a frontend tool the run is paused on.`);
315
+ return { kind: 'message', message: newestMessage(input, facts) };
316
+ }
317
+ const suspension = readAgUiSuspension(awaiting.suspension);
318
+ if (suspension === undefined)
319
+ throw refused('ERR_AWAITING_DECISION', 'this thread is waiting on an answer another door asked for; answer it there.', 409);
320
+ const call = suspension.call;
321
+ if (call?.client === true)
322
+ return { kind: 'answer', answer: clientResult(input, call) };
323
+ if (resume.length === 0)
324
+ throw refused('ERR_AWAITING_DECISION', 'this thread is waiting on the answer to its interrupt; send it in `resume`.', 409);
325
+ const known = resume.findIndex((entry) => entry.interruptId !== suspension.interruptId);
326
+ if (known >= 0 || resume.length !== 1)
327
+ throw refused('ERR_UNKNOWN_INTERRUPT', `resume[${Math.max(known, 0)}] does not answer the interrupt this thread is waiting on.`);
328
+ const entry = resume[0];
329
+ if (entry.status === 'cancelled')
330
+ throw refused('ERR_CANCEL_NOT_CARRIED', 'the request cancels the interrupt, and this agent continues a paused run only with an ' +
331
+ 'answer. Answer it — a decline is an answer.');
332
+ return { kind: 'answer', answer: entry.payload };
333
+ }
334
+ /** The page's result for the frontend tool call the run is paused on — the newest message. */
335
+ function clientResult(input, call) {
336
+ const at = input.messages.length - 1;
337
+ const last = input.messages[at];
338
+ if (last?.role === 'tool' && last.toolCallId === call.toolCallId)
339
+ return textOf(last.content, at);
340
+ if (last?.role === 'tool')
341
+ throw refused('ERR_UNKNOWN_TOOL_CALL', `messages[${at}] answers a tool call this thread is not waiting on.`);
342
+ throw refused('ERR_AWAITING_DECISION', 'this thread is waiting on the result of a tool the page runs; send it as the newest ' +
343
+ 'message, a `tool` message for that call.', 409);
344
+ }
345
+ /** The newest message — the person's — as the run's message. */
346
+ function newestMessage(input, facts) {
347
+ const at = input.messages.length - 1;
348
+ const last = input.messages[at];
349
+ if (last === undefined || last.role !== 'user')
350
+ throw refused('ERR_NO_USER_TURN', 'the newest message must be the person’s (`role: user`) — it is what the agent answers.');
351
+ if (!facts.keepsConversation && at > 0)
352
+ throw refused('ERR_CONVERSATION_NOT_KEPT', 'the request continues a conversation, and this host keeps none: the page’s copy is ' +
353
+ 'never taken as what was said. Serve it with threads (and sessions, or an agent ' +
354
+ 'with memory) to continue one.');
355
+ const text = textOf(last.content, at);
356
+ if (text.trim().length === 0)
357
+ throw refused('ERR_NO_USER_TURN', `messages[${at}] says nothing.`);
358
+ return text;
359
+ }
360
+ /** A message body as text — a media part refused by name, never dropped. */
361
+ function textOf(value, at) {
362
+ if (value === undefined)
363
+ return '';
364
+ if (typeof value === 'string')
365
+ return value;
366
+ let out = '';
367
+ for (const part of value) {
368
+ if (part.type !== 'text')
369
+ throw refused('ERR_MEDIA_NOT_CARRIED', `messages[${at}] carries a ${part.type} part; this agent is given text only.`);
370
+ out += part.text;
371
+ }
372
+ return out;
373
+ }
374
+ const isText = (value) => typeof value === 'string';
375
+ const texts = (value) => Array.isArray(value) && value.every(isText);
376
+ /**
377
+ * A stored suspension record, checked — the store holds bytes; a record that
378
+ * is not one this adapter wrote is `undefined`, and nothing is matched to it.
379
+ */
380
+ export function readAgUiSuspension(value) {
381
+ if (!isRecord(value) || value.version !== 1 || !isText(value.runId))
382
+ return undefined;
383
+ if (value.interruptId !== undefined && !isText(value.interruptId))
384
+ return undefined;
385
+ if (typeof value.rootAgent !== 'boolean' || !Array.isArray(value.scopes))
386
+ return undefined;
387
+ const call = value.call;
388
+ if (call !== undefined &&
389
+ (!isRecord(call) ||
390
+ !isText(call.toolCallId) ||
391
+ typeof call.client !== 'boolean' ||
392
+ !texts(call.mount)))
393
+ return undefined;
394
+ for (const scope of value.scopes) {
395
+ if (!isRecord(scope) || !texts(scope.mount) || !texts(scope.steps))
396
+ return undefined;
397
+ if (!Array.isArray(scope.calls))
398
+ return undefined;
399
+ for (const open of scope.calls)
400
+ if (!isRecord(open) || !isText(open.toolCallId) || typeof open.client !== 'boolean')
401
+ return undefined;
402
+ for (const field of ['subagentRunId', 'name', 'parentSubagentRunId', 'messageId'])
403
+ if (scope[field] !== undefined && !isText(scope[field]))
404
+ return undefined;
405
+ }
406
+ return value;
407
+ }
408
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/ag-ui/request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * serializer — one run's served agentfootprint events → AG-UI events.
3
+ *
4
+ * Pattern: a per-run state machine (`RunTranslation`), pure — no I/O, no clock,
5
+ * no import of `@ag-ui/*`. Frames are the framing strategy's job
6
+ * (`framing.ts`); reading a request is the adapter's (`adapter.ts`).
7
+ * Role: the Lens over a run for an AG-UI reader. It composes what that reader
8
+ * is served, from the RECORD only: every value it writes comes from a
9
+ * served event (the placeholder wherever a redaction policy selected a
10
+ * value), from the record's address (`meta.runtimeStageId`,
11
+ * `meta.subflowPath` — never selected by a policy), or from the
12
+ * AG-UI request's own ids. It never reads the run's live values, so
13
+ * nothing a policy hides can reach an AG-UI event. The record's own
14
+ * run id is never written: it counts every run the process made.
15
+ *
16
+ * THE MAPPING
17
+ * agent.turn_start (nested) → SUBAGENT_STARTED (a sub-agent's turn)
18
+ * agent.turn_end → SUBAGENT_FINISHED / the root answer
19
+ * agent.iteration_start/_end → STEP_STARTED/_FINISHED `iteration <n>`
20
+ * composition.enter/exit → STEP_STARTED/_FINISHED `<Kind>[:<mount>]`
21
+ * stream.token → TEXT_MESSAGE_START/CONTENT/END
22
+ * stream.llm_end (no agent around) → one whole TEXT message (an LLM call that streams nothing)
23
+ * stream.thinking_delta/_end → REASONING_START … REASONING_END (only with `reasoning: true`)
24
+ * stream.tool_start → TOOL_CALL_START + TOOL_CALL_ARGS + TOOL_CALL_END
25
+ * stream.tool_end → TOOL_CALL_RESULT
26
+ * pause.request + settle('paused') → RUN_FINISHED { outcome: interrupt }
27
+ * settle('paused', awaiting caller) → RUN_FINISHED { outcome: success, pendingToolCallIds }
28
+ * (a tool the client runs: its call is left to answer)
29
+ * error.fatal + settle('failed') → RUN_ERROR — the served error.fatal's words when they
30
+ * are a fixed sentence, else "The run failed."
31
+ * an allow-listed event → CUSTOM { name: <event type>, value: <its listed fields> }
32
+ * anything else → nothing
33
+ *
34
+ * WHAT LEAVES THE PROCESS. An AG-UI stream goes to a browser, so nothing goes
35
+ * out by default that a person is not meant to read. Every value comes from a
36
+ * served payload; `CUSTOM` carries only the event types on an allow-list, each
37
+ * with the fields its projection picks ({@link AG_UI_CUSTOM_EVENTS} — the whole
38
+ * record, such as `context.injected`'s assembled prompt or `error.retried`'s
39
+ * raw error, stays off the wire unless the app lists it); the model's
40
+ * reasoning goes out only when the app says so; and a failure is described by
41
+ * the record, never by the thrown value. Identity on the meta (`principal`,
42
+ * `tenant`, `sessionId`) is never written.
43
+ *
44
+ * WHO OWNS AN EVENT. Each agent's turn opens a SCOPE at its mount — the
45
+ * subflow path its `turn_start` fired at (`[]` for the root agent, `step-p/x`
46
+ * for an agent in a parallel branch). An event belongs to the deepest open scope
47
+ * whose mount prefixes its own subflow path, segment by segment, and carries
48
+ * that scope's `subagentRunId`. Parallel branches have different mounts, so
49
+ * their interleaved events can never be attributed to each other.
50
+ *
51
+ * A RUN THAT CONTINUES A PAUSE. A paused run hands back `suspension()` — the
52
+ * ids it gave the client (the interrupt, the open call) and every scope and
53
+ * step open at the pause. The run that continues it passes that as `resume`:
54
+ * the same sub-agents re-open (AG-UI: "a later run may continue the same
55
+ * invocation"), their steps re-open, and the first result in the paused call's
56
+ * scope answers that call under its own id — or, for a tool the client ran, is
57
+ * not written at all, because the client holds the result it sent.
58
+ *
59
+ * TEXT. The reply is what the record streamed (`stream.token`) — the channel
60
+ * `toSSE({ format: 'text' })` and a hosted reply read. An agent turn whose
61
+ * answer streamed no token (a provider without `stream()`) is written whole
62
+ * from `turn_end.finalContent`, unless the record marks it refused. An
63
+ * agent's `llm_end.content` is a DRAFT the library may be holding back
64
+ * (answer validation, an output policy) and is never written.
65
+ */
66
+ import type { AgentfootprintEvent } from '../events/registry.js';
67
+ import type { RunTranslation } from '../hosting/protocolAdapter.js';
68
+ import { type AgUiEvent, type AgUiSuspension } from './types.js';
69
+ /** What a CUSTOM projection is told beside the payload: where the event landed. */
70
+ export interface AgUiCustomContext {
71
+ /** The AG-UI id of the tool call open where the event happened, when one is. */
72
+ readonly toolCallId?: string;
73
+ }
74
+ /**
75
+ * One allow-listed event's `CUSTOM` value: the fields of its SERVED payload
76
+ * that go out (the payload is the one every listener receives — the
77
+ * placeholder wherever a redaction policy selected a value). Return only what
78
+ * a person using the frontend is meant to read.
79
+ */
80
+ export type AgUiCustomProjection = (payload: Readonly<Record<string, unknown>>, at: AgUiCustomContext) => unknown;
81
+ /**
82
+ * The agentfootprint events that go out as AG-UI `CUSTOM` by default, each with
83
+ * the fields it carries: progress (which call, which iteration), spend, the
84
+ * loop's route, the answer's standing and a provider's retries — counts and the
85
+ * library's own words. Content (a tool's own progress `payload`,
86
+ * `context.injected`'s assembled prompt, `error.retried`'s raw error, memory,
87
+ * permission and credential facts) stays off the wire unless an app lists it:
88
+ * `agUiSerializer({ ..., custom: { ...AG_UI_CUSTOM_EVENTS, [type]: projection } })`.
89
+ */
90
+ export declare const AG_UI_CUSTOM_EVENTS: Readonly<Record<string, AgUiCustomProjection>>;
91
+ /** Options for {@link agUiSerializer}. */
92
+ export interface AgUiSerializerOptions {
93
+ /** The conversation this run belongs to — `RunAgentInput.threadId`. */
94
+ readonly threadId: string;
95
+ /** This run's AG-UI id — `RunAgentInput.runId`. Every id the run mints is under it. */
96
+ readonly runId: string;
97
+ /**
98
+ * The events with no AG-UI equivalent that go out as `CUSTOM`, keyed by event
99
+ * type, each with the projection that picks its fields. Default
100
+ * {@link AG_UI_CUSTOM_EVENTS}; `{}` sends none. An event not listed sends
101
+ * nothing. Events the mapping consumes (tokens, tool calls, turns,
102
+ * iterations, compositions, the pause and the fatal error) are never CUSTOM.
103
+ */
104
+ readonly custom?: Readonly<Record<string, AgUiCustomProjection>>;
105
+ /**
106
+ * Write the model's reasoning — `REASONING_*` events from the served
107
+ * `stream.thinking_*` events. Default `false`: a model's chain of thought is
108
+ * shown to a person only when the app decides it is.
109
+ */
110
+ readonly reasoning?: boolean;
111
+ /**
112
+ * What a FAILED tool call's result says. Default `'withheld'`: the fixed words
113
+ * "The tool failed." — the record's result for a failed call is the thrown
114
+ * text, which may hold a connection string, a path or a provider's response.
115
+ * `'served'` sends the record's own result (still the served value: the
116
+ * placeholder wherever a redaction policy selected one).
117
+ */
118
+ readonly toolErrors?: 'withheld' | 'served';
119
+ /**
120
+ * Which served events are this run's. Default: the events of the first run
121
+ * an event names (plus events that name no run). Pass it when the listener
122
+ * can hear more than one run — an instance several callers share — so the
123
+ * translation never binds to whichever run spoke first.
124
+ */
125
+ readonly owns?: (event: AgentfootprintEvent) => boolean;
126
+ /**
127
+ * The paused run this one continues — what that run's translation returned
128
+ * from `suspension()` after it settled `'paused'`. Its suspended sub-agents
129
+ * and open steps re-open under the same ids, and the call it stopped in is
130
+ * answered under its own id (or, for a frontend tool, not at all: the client
131
+ * already holds the result it sent).
132
+ */
133
+ readonly resume?: AgUiSuspension;
134
+ }
135
+ /** One run's AG-UI translation — and, once it pauses, what its continuation needs. */
136
+ export interface AgUiTranslation extends RunTranslation<AgUiEvent> {
137
+ /**
138
+ * The record to `resume` from. Before settling, what a `'paused'` settlement
139
+ * with the same `awaiting` will hand out (keep it first, then settle); after
140
+ * `settle({ kind: 'paused' })`, what it handed out; after any other ending,
141
+ * `undefined`.
142
+ */
143
+ suspension(awaiting?: 'person' | 'caller'): AgUiSuspension | undefined;
144
+ }
145
+ /** Said by `TOOL_CALL_RESULT` for a failed call, unless `toolErrors: 'served'`. */
146
+ export declare const AG_UI_TOOL_FAILED = "The tool failed.";
147
+ /** Said by `RUN_ERROR` when the run's `error.fatal` is not one of the record's fixed sentences. */
148
+ export declare const AG_UI_RUN_FAILED = "The run failed.";
149
+ /** Said by `SUBAGENT_ERROR` for a sub-agent whose turn ended without an answer. */
150
+ export declare const AG_UI_SUBAGENT_UNFINISHED = "The sub-agent's turn ended without an answer.";
151
+ /** Said by `SUBAGENT_ERROR` for a sub-agent still running when its run was cancelled. */
152
+ export declare const AG_UI_SUBAGENT_CANCELLED = "The run was cancelled before this sub-agent finished.";
153
+ /**
154
+ * The AG-UI serializer for ONE run: feed it every served agentfootprint event
155
+ * of the run, in order, then settle it once. `RUN_STARTED` comes before the
156
+ * first event it returns; `RUN_FINISHED` or `RUN_ERROR` is the last thing
157
+ * `settle` returns, with everything still open closed before it.
158
+ *
159
+ * @example
160
+ * ```ts
161
+ * const ag = agUiSerializer({ threadId, runId });
162
+ * const off = agent.on('*', (event) => send(ag.event(event)));
163
+ * try {
164
+ * const out = await agent.run({ message });
165
+ * send(ag.settle({ kind: isPaused(out) ? 'paused' : 'finished' }));
166
+ * } catch {
167
+ * send(ag.settle({ kind: 'failed' })); // described by the record, never by the thrown value
168
+ * } finally {
169
+ * off();
170
+ * }
171
+ * ```
172
+ */
173
+ export declare function agUiSerializer(options: AgUiSerializerOptions): AgUiTranslation;