agentfootprint 10.3.1 → 10.4.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 (414) hide show
  1. package/AGENTS.md +2 -2
  2. package/CAPABILITIES.md +6 -0
  3. package/README.md +44 -0
  4. package/ai-instructions/claude-code/SKILL.md +2 -2
  5. package/dist/adapters/mcp/agentcoreRuntime/errorType.js +24 -0
  6. package/dist/adapters/mcp/agentcoreRuntime/errorType.js.map +1 -0
  7. package/dist/adapters/mcp/agentcoreRuntime/invoke.js +265 -0
  8. package/dist/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -0
  9. package/dist/adapters/mcp/agentcoreRuntime/safeAnswer.js +415 -0
  10. package/dist/adapters/mcp/agentcoreRuntime/safeAnswer.js.map +1 -0
  11. package/dist/adapters/mcp/agentcoreRuntime/session.js +179 -0
  12. package/dist/adapters/mcp/agentcoreRuntime/session.js.map +1 -0
  13. package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js +117 -0
  14. package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -0
  15. package/dist/adapters/mcp/agentcoreRuntime/strictJson.js +220 -0
  16. package/dist/adapters/mcp/agentcoreRuntime/strictJson.js.map +1 -0
  17. package/dist/adapters/mcp/agentcoreRuntime/transport.js +204 -0
  18. package/dist/adapters/mcp/agentcoreRuntime/transport.js.map +1 -0
  19. package/dist/adapters/memory/agentcore.js +435 -20
  20. package/dist/adapters/memory/agentcore.js.map +1 -1
  21. package/dist/adapters/memory/memoryBank.js +16 -3
  22. package/dist/adapters/memory/memoryBank.js.map +1 -1
  23. package/dist/adapters/memory/pgVector.js +10 -4
  24. package/dist/adapters/memory/pgVector.js.map +1 -1
  25. package/dist/adapters/memory/redis.js +11 -3
  26. package/dist/adapters/memory/redis.js.map +1 -1
  27. package/dist/adapters/memory/s3Vectors.js +8 -3
  28. package/dist/adapters/memory/s3Vectors.js.map +1 -1
  29. package/dist/adapters/memory/sqliteVector.js +10 -4
  30. package/dist/adapters/memory/sqliteVector.js.map +1 -1
  31. package/dist/ag-ui/adapter.js +71 -0
  32. package/dist/ag-ui/adapter.js.map +1 -0
  33. package/dist/ag-ui/framing.js +66 -0
  34. package/dist/ag-ui/framing.js.map +1 -0
  35. package/dist/ag-ui/frontendTools.js +69 -0
  36. package/dist/ag-ui/frontendTools.js.map +1 -0
  37. package/dist/ag-ui/ids.js +54 -0
  38. package/dist/ag-ui/ids.js.map +1 -0
  39. package/dist/ag-ui/index.js +27 -0
  40. package/dist/ag-ui/index.js.map +1 -0
  41. package/dist/ag-ui/request.js +356 -0
  42. package/dist/ag-ui/request.js.map +1 -0
  43. package/dist/ag-ui/serializer.js +899 -0
  44. package/dist/ag-ui/serializer.js.map +1 -0
  45. package/dist/ag-ui/types.js +22 -0
  46. package/dist/ag-ui/types.js.map +1 -0
  47. package/dist/core/Agent.js +38 -5
  48. package/dist/core/Agent.js.map +1 -1
  49. package/dist/core/RunnerBase.js +16 -2
  50. package/dist/core/RunnerBase.js.map +1 -1
  51. package/dist/core/agent/buildAgentChart.js +4 -0
  52. package/dist/core/agent/buildAgentChart.js.map +1 -1
  53. package/dist/core/agent/buildDynamicAgentChart.js +4 -0
  54. package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
  55. package/dist/core/agent/callerIdentity.js +2 -1
  56. package/dist/core/agent/callerIdentity.js.map +1 -1
  57. package/dist/core/agent/stages/routeTurn.js +3 -3
  58. package/dist/core/agent/stages/routeTurn.js.map +1 -1
  59. package/dist/core/agent/stages/seed.js +49 -8
  60. package/dist/core/agent/stages/seed.js.map +1 -1
  61. package/dist/core/agent/stages/timeLayer.js +2 -2
  62. package/dist/core/agent/stages/timeLayer.js.map +1 -1
  63. package/dist/core/agent/stages/toolCalls.js +26 -5
  64. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  65. package/dist/core/memberRun.js +244 -0
  66. package/dist/core/memberRun.js.map +1 -0
  67. package/dist/core/slots/buildToolsSlot.js +1 -1
  68. package/dist/core/slots/buildToolsSlot.js.map +1 -1
  69. package/dist/core-flow/Conditional.js +29 -8
  70. package/dist/core-flow/Conditional.js.map +1 -1
  71. package/dist/core-flow/Graph.js +38 -13
  72. package/dist/core-flow/Graph.js.map +1 -1
  73. package/dist/core-flow/Loop.js +29 -9
  74. package/dist/core-flow/Loop.js.map +1 -1
  75. package/dist/core-flow/Parallel.js +35 -14
  76. package/dist/core-flow/Parallel.js.map +1 -1
  77. package/dist/core-flow/Sequence.js +29 -8
  78. package/dist/core-flow/Sequence.js.map +1 -1
  79. package/dist/core-flow/Workflow.js +34 -10
  80. package/dist/core-flow/Workflow.js.map +1 -1
  81. package/dist/doors/ag-ui.js +36 -0
  82. package/dist/doors/ag-ui.js.map +1 -0
  83. package/dist/esm/adapters/mcp/agentcoreRuntime/errorType.d.ts +12 -0
  84. package/dist/esm/adapters/mcp/agentcoreRuntime/errorType.js +20 -0
  85. package/dist/esm/adapters/mcp/agentcoreRuntime/errorType.js.map +1 -0
  86. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.d.ts +116 -0
  87. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js +260 -0
  88. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -0
  89. package/dist/esm/adapters/mcp/agentcoreRuntime/safeAnswer.d.ts +49 -0
  90. package/dist/esm/adapters/mcp/agentcoreRuntime/safeAnswer.js +409 -0
  91. package/dist/esm/adapters/mcp/agentcoreRuntime/safeAnswer.js.map +1 -0
  92. package/dist/esm/adapters/mcp/agentcoreRuntime/session.d.ts +80 -0
  93. package/dist/esm/adapters/mcp/agentcoreRuntime/session.js +175 -0
  94. package/dist/esm/adapters/mcp/agentcoreRuntime/session.js.map +1 -0
  95. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +61 -0
  96. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js +112 -0
  97. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -0
  98. package/dist/esm/adapters/mcp/agentcoreRuntime/strictJson.d.ts +37 -0
  99. package/dist/esm/adapters/mcp/agentcoreRuntime/strictJson.js +215 -0
  100. package/dist/esm/adapters/mcp/agentcoreRuntime/strictJson.js.map +1 -0
  101. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.d.ts +176 -0
  102. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js +199 -0
  103. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js.map +1 -0
  104. package/dist/esm/adapters/memory/agentcore.d.ts +152 -7
  105. package/dist/esm/adapters/memory/agentcore.js +433 -19
  106. package/dist/esm/adapters/memory/agentcore.js.map +1 -1
  107. package/dist/esm/adapters/memory/memoryBank.d.ts +3 -2
  108. package/dist/esm/adapters/memory/memoryBank.js +16 -3
  109. package/dist/esm/adapters/memory/memoryBank.js.map +1 -1
  110. package/dist/esm/adapters/memory/pgVector.js +10 -4
  111. package/dist/esm/adapters/memory/pgVector.js.map +1 -1
  112. package/dist/esm/adapters/memory/redis.d.ts +8 -3
  113. package/dist/esm/adapters/memory/redis.js +11 -3
  114. package/dist/esm/adapters/memory/redis.js.map +1 -1
  115. package/dist/esm/adapters/memory/s3Vectors.js +8 -3
  116. package/dist/esm/adapters/memory/s3Vectors.js.map +1 -1
  117. package/dist/esm/adapters/memory/sqliteVector.js +10 -4
  118. package/dist/esm/adapters/memory/sqliteVector.js.map +1 -1
  119. package/dist/esm/ag-ui/adapter.d.ts +68 -0
  120. package/dist/esm/ag-ui/adapter.js +67 -0
  121. package/dist/esm/ag-ui/adapter.js.map +1 -0
  122. package/dist/esm/ag-ui/framing.d.ts +51 -0
  123. package/dist/esm/ag-ui/framing.js +62 -0
  124. package/dist/esm/ag-ui/framing.js.map +1 -0
  125. package/dist/esm/ag-ui/frontendTools.d.ts +37 -0
  126. package/dist/esm/ag-ui/frontendTools.js +64 -0
  127. package/dist/esm/ag-ui/frontendTools.js.map +1 -0
  128. package/dist/esm/ag-ui/ids.d.ts +43 -0
  129. package/dist/esm/ag-ui/ids.js +49 -0
  130. package/dist/esm/ag-ui/ids.js.map +1 -0
  131. package/dist/esm/ag-ui/index.d.ts +17 -0
  132. package/dist/esm/ag-ui/index.js +17 -0
  133. package/dist/esm/ag-ui/index.js.map +1 -0
  134. package/dist/esm/ag-ui/request.d.ts +72 -0
  135. package/dist/esm/ag-ui/request.js +350 -0
  136. package/dist/esm/ag-ui/request.js.map +1 -0
  137. package/dist/esm/ag-ui/serializer.d.ts +173 -0
  138. package/dist/esm/ag-ui/serializer.js +895 -0
  139. package/dist/esm/ag-ui/serializer.js.map +1 -0
  140. package/dist/esm/ag-ui/types.d.ts +305 -0
  141. package/dist/esm/ag-ui/types.js +19 -0
  142. package/dist/esm/ag-ui/types.js.map +1 -0
  143. package/dist/esm/core/Agent.d.ts +2 -0
  144. package/dist/esm/core/Agent.js +38 -5
  145. package/dist/esm/core/Agent.js.map +1 -1
  146. package/dist/esm/core/RunnerBase.js +17 -3
  147. package/dist/esm/core/RunnerBase.js.map +1 -1
  148. package/dist/esm/core/agent/buildAgentChart.js +4 -0
  149. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  150. package/dist/esm/core/agent/buildDynamicAgentChart.js +4 -0
  151. package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
  152. package/dist/esm/core/agent/callerIdentity.js +2 -1
  153. package/dist/esm/core/agent/callerIdentity.js.map +1 -1
  154. package/dist/esm/core/agent/stages/routeTurn.d.ts +1 -1
  155. package/dist/esm/core/agent/stages/routeTurn.js +3 -3
  156. package/dist/esm/core/agent/stages/routeTurn.js.map +1 -1
  157. package/dist/esm/core/agent/stages/seed.d.ts +11 -1
  158. package/dist/esm/core/agent/stages/seed.js +49 -8
  159. package/dist/esm/core/agent/stages/seed.js.map +1 -1
  160. package/dist/esm/core/agent/stages/timeLayer.js +2 -2
  161. package/dist/esm/core/agent/stages/timeLayer.js.map +1 -1
  162. package/dist/esm/core/agent/stages/toolCalls.d.ts +11 -1
  163. package/dist/esm/core/agent/stages/toolCalls.js +26 -5
  164. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  165. package/dist/esm/core/agent/types.d.ts +16 -6
  166. package/dist/esm/core/memberRun.d.ts +132 -0
  167. package/dist/esm/core/memberRun.js +227 -0
  168. package/dist/esm/core/memberRun.js.map +1 -0
  169. package/dist/esm/core/slots/buildToolsSlot.d.ts +1 -1
  170. package/dist/esm/core/slots/buildToolsSlot.js +1 -1
  171. package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
  172. package/dist/esm/core-flow/Conditional.d.ts +8 -0
  173. package/dist/esm/core-flow/Conditional.js +29 -8
  174. package/dist/esm/core-flow/Conditional.js.map +1 -1
  175. package/dist/esm/core-flow/Graph.js +38 -13
  176. package/dist/esm/core-flow/Graph.js.map +1 -1
  177. package/dist/esm/core-flow/Loop.d.ts +8 -0
  178. package/dist/esm/core-flow/Loop.js +29 -9
  179. package/dist/esm/core-flow/Loop.js.map +1 -1
  180. package/dist/esm/core-flow/Parallel.d.ts +8 -0
  181. package/dist/esm/core-flow/Parallel.js +35 -14
  182. package/dist/esm/core-flow/Parallel.js.map +1 -1
  183. package/dist/esm/core-flow/Sequence.d.ts +8 -0
  184. package/dist/esm/core-flow/Sequence.js +29 -8
  185. package/dist/esm/core-flow/Sequence.js.map +1 -1
  186. package/dist/esm/core-flow/Workflow.js +34 -10
  187. package/dist/esm/core-flow/Workflow.js.map +1 -1
  188. package/dist/esm/doors/ag-ui.d.ts +19 -0
  189. package/dist/esm/doors/ag-ui.js +20 -0
  190. package/dist/esm/doors/ag-ui.js.map +1 -0
  191. package/dist/esm/hosting/envelope.js +5 -0
  192. package/dist/esm/hosting/envelope.js.map +1 -1
  193. package/dist/esm/hosting/httpHost.js +5 -78
  194. package/dist/esm/hosting/httpHost.js.map +1 -1
  195. package/dist/esm/hosting/index.d.ts +4 -1
  196. package/dist/esm/hosting/index.js +2 -0
  197. package/dist/esm/hosting/index.js.map +1 -1
  198. package/dist/esm/hosting/pendingAsk.d.ts +19 -0
  199. package/dist/esm/hosting/pendingAsk.js +38 -0
  200. package/dist/esm/hosting/pendingAsk.js.map +1 -0
  201. package/dist/esm/hosting/protocolAdapter.d.ts +229 -0
  202. package/dist/esm/hosting/protocolAdapter.js +23 -0
  203. package/dist/esm/hosting/protocolAdapter.js.map +1 -0
  204. package/dist/esm/hosting/refusalStatus.d.ts +30 -0
  205. package/dist/esm/hosting/refusalStatus.js +81 -0
  206. package/dist/esm/hosting/refusalStatus.js.map +1 -0
  207. package/dist/esm/hosting/standingAgent.js +1 -31
  208. package/dist/esm/hosting/standingAgent.js.map +1 -1
  209. package/dist/esm/hosting/stream.d.ts +39 -0
  210. package/dist/esm/hosting/stream.js +34 -2
  211. package/dist/esm/hosting/stream.js.map +1 -1
  212. package/dist/esm/hosting/streamHandler.d.ts +134 -0
  213. package/dist/esm/hosting/streamHandler.js +493 -0
  214. package/dist/esm/hosting/streamHandler.js.map +1 -0
  215. package/dist/esm/hosting/types.d.ts +15 -0
  216. package/dist/esm/hosting/types.js.map +1 -1
  217. package/dist/esm/hosting/verifiedThreads.d.ts +29 -0
  218. package/dist/esm/hosting/verifiedThreads.js +46 -0
  219. package/dist/esm/hosting/verifiedThreads.js.map +1 -0
  220. package/dist/esm/index.d.ts +1 -0
  221. package/dist/esm/index.js +3 -0
  222. package/dist/esm/index.js.map +1 -1
  223. package/dist/esm/lib/humanizeLLMError.d.ts +15 -0
  224. package/dist/esm/lib/humanizeLLMError.js +22 -7
  225. package/dist/esm/lib/humanizeLLMError.js.map +1 -1
  226. package/dist/esm/mcp/throttleRetry.d.ts +51 -0
  227. package/dist/esm/mcp/throttleRetry.js +37 -4
  228. package/dist/esm/mcp/throttleRetry.js.map +1 -1
  229. package/dist/esm/memory/define.js +45 -1
  230. package/dist/esm/memory/define.js.map +1 -1
  231. package/dist/esm/memory/define.types.d.ts +24 -0
  232. package/dist/esm/memory/define.types.js.map +1 -1
  233. package/dist/esm/memory/stages/formatDefault.js +3 -1
  234. package/dist/esm/memory/stages/formatDefault.js.map +1 -1
  235. package/dist/esm/memory/store/InMemoryStore.d.ts +8 -3
  236. package/dist/esm/memory/store/InMemoryStore.js +12 -3
  237. package/dist/esm/memory/store/InMemoryStore.js.map +1 -1
  238. package/dist/esm/memory/store/index.d.ts +1 -0
  239. package/dist/esm/memory/store/index.js +5 -0
  240. package/dist/esm/memory/store/index.js.map +1 -1
  241. package/dist/esm/memory/store/types.d.ts +38 -4
  242. package/dist/esm/memory/store/writeOptions.d.ts +118 -0
  243. package/dist/esm/memory/store/writeOptions.js +242 -0
  244. package/dist/esm/memory/store/writeOptions.js.map +1 -0
  245. package/dist/esm/memory-providers.d.ts +1 -1
  246. package/dist/esm/memory-providers.js +4 -1
  247. package/dist/esm/memory-providers.js.map +1 -1
  248. package/dist/esm/patterns/MapReduce.js +8 -2
  249. package/dist/esm/patterns/MapReduce.js.map +1 -1
  250. package/dist/esm/tool-providers/index.d.ts +5 -0
  251. package/dist/esm/tool-providers/index.js +6 -0
  252. package/dist/esm/tool-providers/index.js.map +1 -1
  253. package/dist/esm/trace-toolpack/selfExplain.d.ts +8 -0
  254. package/dist/esm/trace-toolpack/selfExplain.js +25 -2
  255. package/dist/esm/trace-toolpack/selfExplain.js.map +1 -1
  256. package/dist/hosting/envelope.js +5 -0
  257. package/dist/hosting/envelope.js.map +1 -1
  258. package/dist/hosting/httpHost.js +5 -78
  259. package/dist/hosting/httpHost.js.map +1 -1
  260. package/dist/hosting/index.js +9 -3
  261. package/dist/hosting/index.js.map +1 -1
  262. package/dist/hosting/pendingAsk.js +42 -0
  263. package/dist/hosting/pendingAsk.js.map +1 -0
  264. package/dist/hosting/protocolAdapter.js +24 -0
  265. package/dist/hosting/protocolAdapter.js.map +1 -0
  266. package/dist/hosting/refusalStatus.js +84 -0
  267. package/dist/hosting/refusalStatus.js.map +1 -0
  268. package/dist/hosting/standingAgent.js +2 -32
  269. package/dist/hosting/standingAgent.js.map +1 -1
  270. package/dist/hosting/stream.js +35 -3
  271. package/dist/hosting/stream.js.map +1 -1
  272. package/dist/hosting/streamHandler.js +497 -0
  273. package/dist/hosting/streamHandler.js.map +1 -0
  274. package/dist/hosting/types.js.map +1 -1
  275. package/dist/hosting/verifiedThreads.js +50 -0
  276. package/dist/hosting/verifiedThreads.js.map +1 -0
  277. package/dist/index.js +9 -3
  278. package/dist/index.js.map +1 -1
  279. package/dist/lib/humanizeLLMError.js +23 -8
  280. package/dist/lib/humanizeLLMError.js.map +1 -1
  281. package/dist/mcp/throttleRetry.js +41 -6
  282. package/dist/mcp/throttleRetry.js.map +1 -1
  283. package/dist/memory/define.js +45 -1
  284. package/dist/memory/define.js.map +1 -1
  285. package/dist/memory/define.types.js.map +1 -1
  286. package/dist/memory/stages/formatDefault.js +3 -1
  287. package/dist/memory/stages/formatDefault.js.map +1 -1
  288. package/dist/memory/store/InMemoryStore.js +12 -3
  289. package/dist/memory/store/InMemoryStore.js.map +1 -1
  290. package/dist/memory/store/index.js +11 -1
  291. package/dist/memory/store/index.js.map +1 -1
  292. package/dist/memory/store/writeOptions.js +250 -0
  293. package/dist/memory/store/writeOptions.js.map +1 -0
  294. package/dist/memory-providers.js +4 -1
  295. package/dist/memory-providers.js.map +1 -1
  296. package/dist/patterns/MapReduce.js +8 -2
  297. package/dist/patterns/MapReduce.js.map +1 -1
  298. package/dist/tool-providers/index.js +10 -1
  299. package/dist/tool-providers/index.js.map +1 -1
  300. package/dist/trace-toolpack/selfExplain.js +25 -2
  301. package/dist/trace-toolpack/selfExplain.js.map +1 -1
  302. package/dist/types/adapters/mcp/agentcoreRuntime/errorType.d.ts +13 -0
  303. package/dist/types/adapters/mcp/agentcoreRuntime/errorType.d.ts.map +1 -0
  304. package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts +117 -0
  305. package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts.map +1 -0
  306. package/dist/types/adapters/mcp/agentcoreRuntime/safeAnswer.d.ts +50 -0
  307. package/dist/types/adapters/mcp/agentcoreRuntime/safeAnswer.d.ts.map +1 -0
  308. package/dist/types/adapters/mcp/agentcoreRuntime/session.d.ts +81 -0
  309. package/dist/types/adapters/mcp/agentcoreRuntime/session.d.ts.map +1 -0
  310. package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +62 -0
  311. package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts.map +1 -0
  312. package/dist/types/adapters/mcp/agentcoreRuntime/strictJson.d.ts +38 -0
  313. package/dist/types/adapters/mcp/agentcoreRuntime/strictJson.d.ts.map +1 -0
  314. package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts +177 -0
  315. package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts.map +1 -0
  316. package/dist/types/adapters/memory/agentcore.d.ts +152 -7
  317. package/dist/types/adapters/memory/agentcore.d.ts.map +1 -1
  318. package/dist/types/adapters/memory/memoryBank.d.ts +3 -2
  319. package/dist/types/adapters/memory/memoryBank.d.ts.map +1 -1
  320. package/dist/types/adapters/memory/pgVector.d.ts.map +1 -1
  321. package/dist/types/adapters/memory/redis.d.ts +8 -3
  322. package/dist/types/adapters/memory/redis.d.ts.map +1 -1
  323. package/dist/types/adapters/memory/s3Vectors.d.ts.map +1 -1
  324. package/dist/types/adapters/memory/sqliteVector.d.ts.map +1 -1
  325. package/dist/types/ag-ui/adapter.d.ts +69 -0
  326. package/dist/types/ag-ui/adapter.d.ts.map +1 -0
  327. package/dist/types/ag-ui/framing.d.ts +52 -0
  328. package/dist/types/ag-ui/framing.d.ts.map +1 -0
  329. package/dist/types/ag-ui/frontendTools.d.ts +38 -0
  330. package/dist/types/ag-ui/frontendTools.d.ts.map +1 -0
  331. package/dist/types/ag-ui/ids.d.ts +44 -0
  332. package/dist/types/ag-ui/ids.d.ts.map +1 -0
  333. package/dist/types/ag-ui/index.d.ts +18 -0
  334. package/dist/types/ag-ui/index.d.ts.map +1 -0
  335. package/dist/types/ag-ui/request.d.ts +73 -0
  336. package/dist/types/ag-ui/request.d.ts.map +1 -0
  337. package/dist/types/ag-ui/serializer.d.ts +174 -0
  338. package/dist/types/ag-ui/serializer.d.ts.map +1 -0
  339. package/dist/types/ag-ui/types.d.ts +306 -0
  340. package/dist/types/ag-ui/types.d.ts.map +1 -0
  341. package/dist/types/core/Agent.d.ts +2 -0
  342. package/dist/types/core/Agent.d.ts.map +1 -1
  343. package/dist/types/core/RunnerBase.d.ts.map +1 -1
  344. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  345. package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
  346. package/dist/types/core/agent/callerIdentity.d.ts.map +1 -1
  347. package/dist/types/core/agent/stages/routeTurn.d.ts +1 -1
  348. package/dist/types/core/agent/stages/routeTurn.d.ts.map +1 -1
  349. package/dist/types/core/agent/stages/seed.d.ts +11 -1
  350. package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
  351. package/dist/types/core/agent/stages/toolCalls.d.ts +11 -1
  352. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  353. package/dist/types/core/agent/types.d.ts +16 -6
  354. package/dist/types/core/agent/types.d.ts.map +1 -1
  355. package/dist/types/core/memberRun.d.ts +133 -0
  356. package/dist/types/core/memberRun.d.ts.map +1 -0
  357. package/dist/types/core/slots/buildToolsSlot.d.ts +1 -1
  358. package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
  359. package/dist/types/core-flow/Conditional.d.ts +8 -0
  360. package/dist/types/core-flow/Conditional.d.ts.map +1 -1
  361. package/dist/types/core-flow/Graph.d.ts.map +1 -1
  362. package/dist/types/core-flow/Loop.d.ts +8 -0
  363. package/dist/types/core-flow/Loop.d.ts.map +1 -1
  364. package/dist/types/core-flow/Parallel.d.ts +8 -0
  365. package/dist/types/core-flow/Parallel.d.ts.map +1 -1
  366. package/dist/types/core-flow/Sequence.d.ts +8 -0
  367. package/dist/types/core-flow/Sequence.d.ts.map +1 -1
  368. package/dist/types/core-flow/Workflow.d.ts.map +1 -1
  369. package/dist/types/doors/ag-ui.d.ts +20 -0
  370. package/dist/types/doors/ag-ui.d.ts.map +1 -0
  371. package/dist/types/hosting/httpHost.d.ts.map +1 -1
  372. package/dist/types/hosting/index.d.ts +4 -1
  373. package/dist/types/hosting/index.d.ts.map +1 -1
  374. package/dist/types/hosting/pendingAsk.d.ts +20 -0
  375. package/dist/types/hosting/pendingAsk.d.ts.map +1 -0
  376. package/dist/types/hosting/protocolAdapter.d.ts +230 -0
  377. package/dist/types/hosting/protocolAdapter.d.ts.map +1 -0
  378. package/dist/types/hosting/refusalStatus.d.ts +31 -0
  379. package/dist/types/hosting/refusalStatus.d.ts.map +1 -0
  380. package/dist/types/hosting/standingAgent.d.ts.map +1 -1
  381. package/dist/types/hosting/stream.d.ts +39 -0
  382. package/dist/types/hosting/stream.d.ts.map +1 -1
  383. package/dist/types/hosting/streamHandler.d.ts +135 -0
  384. package/dist/types/hosting/streamHandler.d.ts.map +1 -0
  385. package/dist/types/hosting/types.d.ts +15 -0
  386. package/dist/types/hosting/types.d.ts.map +1 -1
  387. package/dist/types/hosting/verifiedThreads.d.ts +30 -0
  388. package/dist/types/hosting/verifiedThreads.d.ts.map +1 -0
  389. package/dist/types/index.d.ts +1 -0
  390. package/dist/types/index.d.ts.map +1 -1
  391. package/dist/types/lib/humanizeLLMError.d.ts +15 -0
  392. package/dist/types/lib/humanizeLLMError.d.ts.map +1 -1
  393. package/dist/types/mcp/throttleRetry.d.ts +51 -0
  394. package/dist/types/mcp/throttleRetry.d.ts.map +1 -1
  395. package/dist/types/memory/define.d.ts.map +1 -1
  396. package/dist/types/memory/define.types.d.ts +24 -0
  397. package/dist/types/memory/define.types.d.ts.map +1 -1
  398. package/dist/types/memory/stages/formatDefault.d.ts.map +1 -1
  399. package/dist/types/memory/store/InMemoryStore.d.ts +8 -3
  400. package/dist/types/memory/store/InMemoryStore.d.ts.map +1 -1
  401. package/dist/types/memory/store/index.d.ts +1 -0
  402. package/dist/types/memory/store/index.d.ts.map +1 -1
  403. package/dist/types/memory/store/types.d.ts +38 -4
  404. package/dist/types/memory/store/types.d.ts.map +1 -1
  405. package/dist/types/memory/store/writeOptions.d.ts +119 -0
  406. package/dist/types/memory/store/writeOptions.d.ts.map +1 -0
  407. package/dist/types/memory-providers.d.ts +1 -1
  408. package/dist/types/memory-providers.d.ts.map +1 -1
  409. package/dist/types/patterns/MapReduce.d.ts.map +1 -1
  410. package/dist/types/tool-providers/index.d.ts +5 -0
  411. package/dist/types/tool-providers/index.d.ts.map +1 -1
  412. package/dist/types/trace-toolpack/selfExplain.d.ts +8 -0
  413. package/dist/types/trace-toolpack/selfExplain.d.ts.map +1 -1
  414. package/package.json +25 -1
@@ -0,0 +1,415 @@
1
+ "use strict";
2
+ /**
3
+ * safeAnswer — what the MCP client may read of an answer: read ONCE, checked,
4
+ * and handed on as the canonical form of exactly what was checked.
5
+ *
6
+ * ── Why an allow-list ────────────────────────────────────────────────────────
7
+ * Whatever an answer's body says becomes the MCP client's error text, and a
8
+ * failed tool call hands that text to the model, the run's history and
9
+ * `tool_end`. Service text can carry anything the request did: AWS answers a
10
+ * signature mismatch with the whole signed request (the session token among
11
+ * it), its validation errors quote the value they refused, a proxy may echo a
12
+ * header. So a failure is RE-WRITTEN from parts that cannot carry a secret:
13
+ * the status; the AWS error type when it is a plain name; `Retry-After` when
14
+ * it is seconds or a date; and for a JSON-RPC error its integer `code`, the
15
+ * client's own `id`, and its `message` ONLY when it is one of the fixed
16
+ * sentences the MCP SDK and the AgentCore Runtime contract use
17
+ * ({@link KNOWN_ERROR_MESSAGES}).
18
+ *
19
+ * ── Why one reading ──────────────────────────────────────────────────────────
20
+ * A check that reads a body one way and a client that reads the same bytes
21
+ * another is a parser differential: a crafted answer passes the check and is
22
+ * used as something else. So a 2xx answer is never handed on as its raw bytes.
23
+ * It is classified by ONE rule (its media type, exactly `application/json` or
24
+ * `text/event-stream`, UTF-8), decoded strictly, parsed once
25
+ * (`strictJson.ts` — a duplicated key, trailing data or a byte-order mark is
26
+ * refused), checked, and RE-SERIALIZED: the client reads the value that was
27
+ * checked, never the bytes it came from. One message per body or event — a
28
+ * batch is refused. An answer that cannot be read unambiguously is refused by
29
+ * name, as a 502 whose text is this library's.
30
+ *
31
+ * Pattern: pure functions + one TransformStream. Role: outer ring, the
32
+ * transport's one rule for what the client reads.
33
+ */
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.failureSentence = exports.safeAnswer = exports.isAuthFailure = exports.KNOWN_ERROR_MESSAGES = void 0;
36
+ const errorType_js_1 = require("./errorType.js");
37
+ const strictJson_js_1 = require("./strictJson.js");
38
+ /**
39
+ * JSON-RPC error messages a reply may keep word for word — fixed strings that
40
+ * carry nothing of the request: the JSON-RPC 2.0 standard errors, the MCP
41
+ * Streamable HTTP session error, and the AgentCore Runtime MCP contract's
42
+ * mappings of its exceptions.
43
+ */
44
+ exports.KNOWN_ERROR_MESSAGES = new Set([
45
+ 'Parse error',
46
+ 'Invalid Request',
47
+ 'Method not found',
48
+ 'Invalid params',
49
+ 'Internal error',
50
+ 'Session not found',
51
+ 'Session operation in progress, please retry',
52
+ 'Resource conflict - Resource already exists',
53
+ 'Rate limit exceeded - Too many requests',
54
+ 'Authentication error - Invalid credentials',
55
+ 'Authorization error - Insufficient permissions',
56
+ 'Tool execution error',
57
+ ]);
58
+ /**
59
+ * AWS error types that mean "who you are, or what you may do" — whatever
60
+ * status they arrive with (`IncompleteSignatureException` is a 400).
61
+ */
62
+ const AUTH_FAILURE_TYPES = new Set([
63
+ 'AccessDeniedException',
64
+ 'ExpiredTokenException',
65
+ 'IncompleteSignatureException',
66
+ 'InvalidClientTokenId',
67
+ 'InvalidSignatureException',
68
+ 'MissingAuthenticationTokenException',
69
+ 'SignatureDoesNotMatch',
70
+ 'UnauthorizedException',
71
+ 'UnrecognizedClientException',
72
+ ]);
73
+ /** An error type that is a plain name — anything else is not repeated. */
74
+ const PLAIN_TYPE = /^[A-Za-z][A-Za-z0-9]{0,99}$/;
75
+ /** A token the client may read back as it is: a request id, an event id or type, a session header. */
76
+ const PLAIN_TOKEN = /^[A-Za-z0-9_.:-]{1,128}$/;
77
+ /** `Retry-After`: delay-seconds, or an HTTP date. */
78
+ const RETRY_AFTER = /^(?:\d{1,10}|[A-Za-z]{3}, \d{2} [A-Za-z]{3} \d{4} \d{2}:\d{2}:\d{2} GMT)$/;
79
+ /** The response headers a 2xx answer keeps (besides its canonical content type). */
80
+ const KEPT_HEADERS = ['mcp-session-id', 'mcp-protocol-version'];
81
+ /** An answer this transport will not hand on, and why — in its own words. */
82
+ class Unreadable extends Error {
83
+ reason;
84
+ constructor(reason) {
85
+ super(reason);
86
+ this.reason = reason;
87
+ }
88
+ }
89
+ /** Is this answer an authentication or authorization failure? */
90
+ function isAuthFailure(status, type) {
91
+ if (status === 401 || status === 403)
92
+ return true;
93
+ return type !== undefined && AUTH_FAILURE_TYPES.has(type);
94
+ }
95
+ exports.isAuthFailure = isAuthFailure;
96
+ /**
97
+ * The answer the MCP client may read: a failure rewritten from safe parts; a
98
+ * 2xx read once and re-serialized; an answer that cannot be read
99
+ * unambiguously refused (502).
100
+ */
101
+ async function safeAnswer(response) {
102
+ if (!response.ok)
103
+ return safeFailure(response);
104
+ try {
105
+ return await safeSuccess(response);
106
+ }
107
+ catch (err) {
108
+ if (err instanceof Unreadable)
109
+ return refusal(response.status, err.reason);
110
+ throw err;
111
+ }
112
+ }
113
+ exports.safeAnswer = safeAnswer;
114
+ // ── 2xx ────────────────────────────────────────────────────────────────
115
+ async function safeSuccess(response) {
116
+ const kind = mediaKind(response.headers.get('content-type'));
117
+ if (kind === 'event-stream')
118
+ return safeStream(response);
119
+ const bytes = response.body === null ? new Uint8Array() : await bytesOf(response);
120
+ if (bytes.length === 0) {
121
+ // An empty answer (a 202 to a notification): nothing to read, nothing handed on.
122
+ const headers = keptHeaders(response.headers, undefined);
123
+ return new Response(null, { status: response.status, headers });
124
+ }
125
+ if (kind !== 'json') {
126
+ throw new Unreadable(kind === 'none'
127
+ ? 'a body with no content type'
128
+ : 'a body whose content type is neither application/json nor text/event-stream');
129
+ }
130
+ const message = oneMessage(parseOnce(decodeUtf8(bytes)));
131
+ return new Response(JSON.stringify(canonicalMessage(message)), {
132
+ status: response.status,
133
+ headers: keptHeaders(response.headers, 'application/json'),
134
+ });
135
+ }
136
+ /** The ONE media type the transport reads a 2xx body as, by one rule. */
137
+ function mediaKind(contentType) {
138
+ if (contentType === null || contentType.trim() === '')
139
+ return 'none';
140
+ const [type, ...params] = contentType.split(';').map((part) => part.trim().toLowerCase());
141
+ // Every parameter must be `charset=utf-8`: another charset is another reading.
142
+ const utf8 = params.every((p) => /^charset="?utf-8"?$/.test(p));
143
+ if (!utf8)
144
+ return 'other';
145
+ if (type === 'application/json')
146
+ return 'json';
147
+ if (type === 'text/event-stream')
148
+ return 'event-stream';
149
+ return 'other';
150
+ }
151
+ async function bytesOf(response) {
152
+ return new Uint8Array(await response.arrayBuffer());
153
+ }
154
+ /** UTF-8, strictly: an invalid sequence or a byte-order mark is refused. */
155
+ function decodeUtf8(bytes) {
156
+ try {
157
+ return new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(bytes);
158
+ }
159
+ catch {
160
+ throw new Unreadable('a body that is not UTF-8');
161
+ }
162
+ }
163
+ function parseOnce(text) {
164
+ try {
165
+ return (0, strictJson_js_1.parseStrictJson)(text);
166
+ }
167
+ catch (err) {
168
+ if (err instanceof strictJson_js_1.AmbiguousJsonError)
169
+ throw new Unreadable(err.reason);
170
+ throw err;
171
+ }
172
+ }
173
+ /** ONE JSON-RPC message — an object; a batch, or anything else, is refused. */
174
+ function oneMessage(value) {
175
+ if (Array.isArray(value))
176
+ throw new Unreadable('more than one message in one body');
177
+ if (value === null || typeof value !== 'object') {
178
+ throw new Unreadable('a body that is not a JSON-RPC message');
179
+ }
180
+ return value;
181
+ }
182
+ /** The message as the client may read it: an error rewritten, anything else as checked. */
183
+ function canonicalMessage(message) {
184
+ return 'error' in message ? safeErrorReply(message) : message;
185
+ }
186
+ /** The response headers a 2xx answer keeps, and its canonical content type. */
187
+ function keptHeaders(from, contentType) {
188
+ const headers = new Headers(contentType === undefined ? {} : { 'content-type': contentType });
189
+ for (const name of KEPT_HEADERS) {
190
+ const value = from.get(name);
191
+ if (value !== null && PLAIN_TOKEN.test(value))
192
+ headers.set(name, value);
193
+ }
194
+ return headers;
195
+ }
196
+ /** A 2xx answer the transport cannot read unambiguously — refused in its own words. */
197
+ function refusal(status, reason) {
198
+ return new Response(JSON.stringify({
199
+ message: `Unreadable answer (HTTP ${status}): ${reason}. It was not passed on, because a ` +
200
+ 'reading the transport could not check is a reading the model must not get.',
201
+ }), { status: 502, headers: { 'content-type': 'application/json' } });
202
+ }
203
+ // ── failures ───────────────────────────────────────────────────────────
204
+ /** A failure, rewritten from its status, its type and — for a JSON-RPC error — its code. */
205
+ async function safeFailure(response) {
206
+ const type = plainType((0, errorType_js_1.awsErrorType)(response.headers));
207
+ const reply = await failureReplyOf(response);
208
+ const body = reply !== undefined
209
+ ? safeErrorReply(reply)
210
+ : { message: failureSentence(response.status, type) };
211
+ const headers = new Headers({ 'content-type': 'application/json' });
212
+ if (type !== undefined)
213
+ headers.set('x-amzn-errortype', type);
214
+ const retryAfter = response.headers.get('retry-after')?.trim();
215
+ if (retryAfter !== undefined && RETRY_AFTER.test(retryAfter)) {
216
+ headers.set('retry-after', retryAfter);
217
+ }
218
+ return new Response(JSON.stringify(body), { status: response.status, headers });
219
+ }
220
+ /** The JSON-RPC error message a failure's body is — read once, strictly — or `undefined`. */
221
+ async function failureReplyOf(response) {
222
+ if (response.body === null || mediaKind(response.headers.get('content-type')) !== 'json') {
223
+ await response.body?.cancel().catch(() => undefined);
224
+ return undefined;
225
+ }
226
+ try {
227
+ const message = oneMessage(parseOnce(decodeUtf8(await bytesOf(response))));
228
+ return 'error' in message ? message : undefined;
229
+ }
230
+ catch {
231
+ return undefined;
232
+ }
233
+ }
234
+ /** The fixed sentence a failure with no JSON-RPC reply is answered with. */
235
+ function failureSentence(status, type) {
236
+ if (isAuthFailure(status, type)) {
237
+ return (`${type ?? 'Request refused'} (HTTP ${status}). The service's message for this request ` +
238
+ 'was not passed on, because AWS can quote the signed request in it, credentials ' +
239
+ 'included. Check the caller’s credentials and its permission to invoke this runtime.');
240
+ }
241
+ return (`${type ?? 'Request failed'} (HTTP ${status}). The service's message for this request ` +
242
+ 'was not passed on, because it can quote what the request carried.');
243
+ }
244
+ exports.failureSentence = failureSentence;
245
+ /** A JSON-RPC error reply rebuilt from safe parts only. */
246
+ function safeErrorReply(message) {
247
+ const error = message['error'];
248
+ const fields = error !== null && typeof error === 'object' && !Array.isArray(error)
249
+ ? error
250
+ : {};
251
+ const rawCode = fields['code'];
252
+ const code = typeof rawCode === 'number' && Number.isInteger(rawCode) ? rawCode : -32603;
253
+ const rawId = message['id'];
254
+ const id = typeof rawId === 'number' && Number.isFinite(rawId)
255
+ ? rawId
256
+ : typeof rawId === 'string' && PLAIN_TOKEN.test(rawId)
257
+ ? rawId
258
+ : null;
259
+ const rawMessage = fields['message'];
260
+ const text = typeof rawMessage === 'string' && exports.KNOWN_ERROR_MESSAGES.has(rawMessage)
261
+ ? rawMessage
262
+ : `Server error (JSON-RPC ${code}). Its message was not passed on, because it can quote ` +
263
+ 'what the request carried.';
264
+ return { jsonrpc: '2.0', id, error: { code, message: text } };
265
+ }
266
+ function plainType(type) {
267
+ return type !== undefined && PLAIN_TYPE.test(type) ? type : undefined;
268
+ }
269
+ // ── event streams ──────────────────────────────────────────────────────
270
+ /**
271
+ * A 2xx event stream, read once as it passes: each event parsed by the SSE
272
+ * rules, its data parsed strictly as ONE JSON-RPC message, and re-emitted in
273
+ * canonical form (`event`, `id` when plain, one `data` line) — an error
274
+ * rewritten. Events still reach the client as they arrive. An event that
275
+ * cannot be read unambiguously ends the stream with a refusal in this
276
+ * library's words.
277
+ */
278
+ function safeStream(response) {
279
+ const body = response.body;
280
+ if (body === null) {
281
+ return new Response(null, {
282
+ status: response.status,
283
+ headers: keptHeaders(response.headers, undefined),
284
+ });
285
+ }
286
+ const decoder = new TextDecoder('utf-8', { fatal: true });
287
+ const encoder = new TextEncoder();
288
+ const parser = sseParser((event) => encoder.encode(canonicalEvent(event)));
289
+ const stream = body.pipeThrough(new TransformStream({
290
+ transform(chunk, controller) {
291
+ let text;
292
+ try {
293
+ text = decoder.decode(chunk, { stream: true });
294
+ }
295
+ catch {
296
+ controller.error(new Error(streamRefusal('an event stream that is not UTF-8')));
297
+ return;
298
+ }
299
+ try {
300
+ for (const out of parser.push(text))
301
+ controller.enqueue(out);
302
+ }
303
+ catch (err) {
304
+ controller.error(new Error(streamRefusal(err instanceof Unreadable ? err.reason : 'an unreadable event')));
305
+ }
306
+ },
307
+ flush(controller) {
308
+ let tail;
309
+ try {
310
+ tail = decoder.decode();
311
+ }
312
+ catch {
313
+ controller.error(new Error(streamRefusal('an event stream that is not UTF-8')));
314
+ return;
315
+ }
316
+ try {
317
+ for (const out of [...parser.push(tail), ...parser.finish()])
318
+ controller.enqueue(out);
319
+ }
320
+ catch (err) {
321
+ controller.error(new Error(streamRefusal(err instanceof Unreadable ? err.reason : 'an unreadable event')));
322
+ }
323
+ },
324
+ }));
325
+ return new Response(stream, {
326
+ status: response.status,
327
+ headers: keptHeaders(response.headers, 'text/event-stream'),
328
+ });
329
+ }
330
+ function streamRefusal(reason) {
331
+ return (`agentCoreRuntimeMcpTransport: the event stream was cut: ${reason}. The rest was not ` +
332
+ 'passed on, because a reading the transport could not check is a reading the model must ' +
333
+ 'not get.');
334
+ }
335
+ /**
336
+ * The SSE line rules (WHATWG `text/event-stream`): lines end in CRLF, LF or CR;
337
+ * a blank line dispatches; `:` starts a comment; `data` lines join with `\n`;
338
+ * one leading space after the colon is dropped; an event with no data is not
339
+ * dispatched.
340
+ */
341
+ function sseParser(emit) {
342
+ let pending = '';
343
+ let data = [];
344
+ let type;
345
+ let id;
346
+ const line = (raw, out) => {
347
+ if (raw === '') {
348
+ if (data.length > 0) {
349
+ out.push(emit({
350
+ ...(type !== undefined && { type }),
351
+ ...(id !== undefined && { id }),
352
+ data: data.join('\n'),
353
+ }));
354
+ }
355
+ data = [];
356
+ type = undefined;
357
+ return;
358
+ }
359
+ if (raw.startsWith(':'))
360
+ return;
361
+ const colon = raw.indexOf(':');
362
+ const field = colon === -1 ? raw : raw.slice(0, colon);
363
+ const value = colon === -1 ? '' : raw.slice(colon + 1).replace(/^ /, '');
364
+ if (field === 'data')
365
+ data.push(value);
366
+ else if (field === 'event')
367
+ type = value;
368
+ else if (field === 'id' && !value.includes('\0'))
369
+ id = value;
370
+ };
371
+ return {
372
+ push(text) {
373
+ pending += text;
374
+ const out = [];
375
+ for (;;) {
376
+ const match = /\r\n|\n|\r/.exec(pending);
377
+ if (match === null)
378
+ break;
379
+ // A CR at the very end may be the first half of a CRLF still to come.
380
+ if (match[0] === '\r' && match.index === pending.length - 1)
381
+ break;
382
+ line(pending.slice(0, match.index), out);
383
+ pending = pending.slice(match.index + match[0].length);
384
+ }
385
+ return out;
386
+ },
387
+ finish() {
388
+ // The stream ended: a CR held back for a CRLF that never came ends its
389
+ // line. Text with no line end is an unfinished line, and an event with
390
+ // no blank line after it is not dispatched (the SSE rule).
391
+ const out = [];
392
+ if (pending.endsWith('\r'))
393
+ line(pending.slice(0, -1), out);
394
+ pending = '';
395
+ return out;
396
+ },
397
+ };
398
+ }
399
+ /** One event in canonical form — its data the ONE message it held, read strictly. */
400
+ function canonicalEvent(event) {
401
+ // An event type that is not a plain token cannot be re-emitted as it was,
402
+ // and re-emitting it as a default `message` would make the client act on an
403
+ // event it would have ignored — so it is dropped.
404
+ if (event.type !== undefined && !PLAIN_TOKEN.test(event.type))
405
+ return '';
406
+ const message = oneMessage(parseOnce(event.data));
407
+ const lines = [];
408
+ if (event.type !== undefined)
409
+ lines.push(`event: ${event.type}`);
410
+ if (event.id !== undefined && PLAIN_TOKEN.test(event.id))
411
+ lines.push(`id: ${event.id}`);
412
+ lines.push(`data: ${JSON.stringify(canonicalMessage(message))}`);
413
+ return `${lines.join('\n')}\n\n`;
414
+ }
415
+ //# sourceMappingURL=safeAnswer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeAnswer.js","sourceRoot":"","sources":["../../../../src/adapters/mcp/agentcoreRuntime/safeAnswer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ /**
3
+ * session — the session strategies: which AgentCore Runtime session a request
4
+ * lands in.
5
+ *
6
+ * ── The facts they rest on ───────────────────────────────────────────────────
7
+ * From the AgentCore Runtime MCP protocol contract and the `InvokeAgentRuntime`
8
+ * API reference:
9
+ *
10
+ * - The runtime routes by `Mcp-Session-Id` and always returns one. A client
11
+ * "must capture the Mcp-Session-Id returned in the response and include it
12
+ * in all subsequent requests" for microVM affinity; without it "each request
13
+ * may be routed to a new microVM".
14
+ * - `InvokeAgentRuntime` also carries `runtimeSessionId`
15
+ * (`X-Amzn-Bedrock-AgentCore-Runtime-Session-Id`, 33–256 characters), and
16
+ * the AWS SDK models it as an idempotency token — it fills a FRESH random id
17
+ * on every call that leaves it unset.
18
+ *
19
+ * ── 'per-call' (the default) ─────────────────────────────────────────────────
20
+ * Every request in a session of its own: this strategy sends a FRESH runtime
21
+ * session id with every request and no `Mcp-Session-Id`, and the
22
+ * `Mcp-Session-Id` a response carries is not handed to the MCP client, so
23
+ * nothing can carry one call's session into the next. Isolation by
24
+ * construction: a client shared by every user of a process (tools built once at
25
+ * startup — the common shape) never puts two users in one microVM. The price is
26
+ * a cold start per call, and it needs a STATELESS server (`stateless_http=True`,
27
+ * the runtime's recommended default) — a stateful one sees every request as a
28
+ * stranger.
29
+ *
30
+ * ── 'reuse' ──────────────────────────────────────────────────────────────────
31
+ * One session per CONNECTION (per `mcpClient` built on the transport), and the
32
+ * TRANSPORT owns the key. A request with no `Mcp-Session-Id` (a client's
33
+ * `initialize`) opens a connection with a fresh runtime session id; the
34
+ * `Mcp-Session-Id` the server returns for it is stored WITH that connection,
35
+ * and the client is handed an opaque handle of the transport's own in its
36
+ * place. Every later request carrying the handle is sent in that connection's
37
+ * runtime session with the server's own id; a handle the transport does not
38
+ * know is answered 404 "Session not found" here, never sent.
39
+ *
40
+ * Why a handle and not the server's id: the server's ids are unique only as far
41
+ * as the server makes them. One that numbers sessions per process hands every
42
+ * fresh microVM the same first id, and a map keyed by it would send the second
43
+ * client into the first one's microVM. A handle is ours, random, and per
44
+ * connection, so two clients on one transport are two sessions whatever the
45
+ * server returns — while ONE client is still one session for whoever calls
46
+ * through it. Build a client per conversation; never share a 'reuse' client
47
+ * between users.
48
+ *
49
+ * At most {@link MAX_CONNECTIONS} connections are remembered, least recently
50
+ * used forgotten first; a client's `DELETE` (its `close()`) forgets its own.
51
+ *
52
+ * Pattern: Strategy. Role: outer ring, vendor fact. Holds no credential.
53
+ */
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ exports.sessionStrategy = exports.MAX_CONNECTIONS = exports.MCP_SESSION_HEADER = exports.AGENTCORE_RUNTIME_SESSION_HEADER = void 0;
56
+ /** The runtime session header, as `InvokeAgentRuntime` binds `runtimeSessionId` to it. */
57
+ exports.AGENTCORE_RUNTIME_SESSION_HEADER = 'X-Amzn-Bedrock-AgentCore-Runtime-Session-Id';
58
+ /** The MCP Streamable HTTP session header. */
59
+ exports.MCP_SESSION_HEADER = 'Mcp-Session-Id';
60
+ /** How many connections a 'reuse' transport remembers before it forgets the least recently used. */
61
+ exports.MAX_CONNECTIONS = 256;
62
+ /**
63
+ * A fresh runtime session id — `crypto.randomUUID()`, 36 characters, inside the
64
+ * 33–256 the API takes. Never injectable: freshness IS the isolation, and a
65
+ * source that repeated itself would put two requests (or two clients) in one
66
+ * session.
67
+ */
68
+ const newId = () => globalThis.crypto.randomUUID();
69
+ /**
70
+ * Build the strategy for one transport.
71
+ *
72
+ * @throws when `kind` is not one of the two strategies.
73
+ */
74
+ function sessionStrategy(kind) {
75
+ if (kind === 'reuse')
76
+ return reuse();
77
+ if (kind === 'per-call')
78
+ return perCall();
79
+ throw new TypeError(`agentCoreRuntimeMcpTransport: \`session\` must be 'reuse' or 'per-call' — got ` +
80
+ `${JSON.stringify(kind)}. 'per-call' gives every request its own session (safe to share); ` +
81
+ `'reuse' keeps one runtime session per client (build one client per conversation).`);
82
+ }
83
+ exports.sessionStrategy = sessionStrategy;
84
+ function reuse() {
85
+ const connections = new Map();
86
+ const remember = (handle, connection) => {
87
+ connections.delete(handle);
88
+ connections.set(handle, connection); // most recently used last
89
+ while (connections.size > exports.MAX_CONNECTIONS) {
90
+ const oldest = connections.keys().next().value;
91
+ if (oldest === undefined)
92
+ break;
93
+ connections.delete(oldest);
94
+ }
95
+ };
96
+ return {
97
+ request(headers, method) {
98
+ const handle = headers.get(exports.MCP_SESSION_HEADER);
99
+ const known = handle === null ? undefined : connections.get(handle);
100
+ // A handle this transport did not issue, or has forgotten: fail closed.
101
+ if (handle !== null && known === undefined)
102
+ return { answer: sessionNotFound() };
103
+ const connection = known ?? { runtimeId: newId() };
104
+ if (handle !== null) {
105
+ if (method === 'DELETE')
106
+ connections.delete(handle);
107
+ else
108
+ remember(handle, connection);
109
+ }
110
+ // Set, not merged: these are the only session ids this request sends.
111
+ headers.set(exports.AGENTCORE_RUNTIME_SESSION_HEADER, connection.runtimeId);
112
+ if (connection.serverSessionId !== undefined) {
113
+ headers.set(exports.MCP_SESSION_HEADER, connection.serverSessionId);
114
+ }
115
+ else {
116
+ headers.delete(exports.MCP_SESSION_HEADER);
117
+ }
118
+ return {
119
+ settle: (response) => {
120
+ const returned = response.headers.get(exports.MCP_SESSION_HEADER);
121
+ if (returned === null)
122
+ return response;
123
+ if (handle === null) {
124
+ // A new connection: bound under a handle of our own, shown in the server's id's place.
125
+ const issued = newId();
126
+ remember(issued, { ...connection, serverSessionId: returned });
127
+ return withSessionHeader(response, issued);
128
+ }
129
+ if (method !== 'DELETE')
130
+ connection.serverSessionId = returned;
131
+ return withSessionHeader(response, handle);
132
+ },
133
+ };
134
+ },
135
+ };
136
+ }
137
+ function perCall() {
138
+ return {
139
+ request(headers) {
140
+ headers.delete(exports.MCP_SESSION_HEADER);
141
+ // A fresh runtime session of our own for every request — as fresh as the
142
+ // SDK's own default, and set the same way on both auth paths.
143
+ headers.set(exports.AGENTCORE_RUNTIME_SESSION_HEADER, newId());
144
+ return { settle: (response) => withSessionHeader(response, undefined) };
145
+ },
146
+ };
147
+ }
148
+ /**
149
+ * The response with its `Mcp-Session-Id` replaced by `value`, or removed when
150
+ * `value` is undefined. A fetched Response's headers are immutable, so the copy
151
+ * is rebuilt around the same body rather than edited.
152
+ */
153
+ function withSessionHeader(response, value) {
154
+ const current = response.headers.get(exports.MCP_SESSION_HEADER);
155
+ if (current === (value ?? null))
156
+ return response;
157
+ const headers = new Headers(response.headers);
158
+ if (value === undefined)
159
+ headers.delete(exports.MCP_SESSION_HEADER);
160
+ else
161
+ headers.set(exports.MCP_SESSION_HEADER, value);
162
+ return new Response(response.body, {
163
+ status: response.status,
164
+ statusText: response.statusText,
165
+ headers,
166
+ });
167
+ }
168
+ /**
169
+ * The MCP Streamable HTTP answer to a session the server does not know: 404,
170
+ * after which a client starts a new session with `initialize`.
171
+ */
172
+ function sessionNotFound() {
173
+ return new Response(JSON.stringify({
174
+ jsonrpc: '2.0',
175
+ id: null,
176
+ error: { code: -32001, message: 'Session not found' },
177
+ }), { status: 404, headers: { 'content-type': 'application/json' } });
178
+ }
179
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/adapters/mcp/agentcoreRuntime/session.ts"],"names":[],"mappings":"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"}