experimental-ash 0.2.0-alpha.2 → 0.2.0-alpha.21

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 (585) hide show
  1. package/dist/src/channel/http-channel.d.ts +26 -0
  2. package/dist/src/channel/http-channel.d.ts.map +1 -0
  3. package/dist/src/channel/http-channel.js +24 -0
  4. package/dist/src/channel/http-channel.js.map +1 -0
  5. package/dist/src/channel/resolve-text.d.ts +20 -0
  6. package/dist/src/channel/resolve-text.d.ts.map +1 -0
  7. package/dist/src/channel/resolve-text.js +60 -0
  8. package/dist/src/channel/resolve-text.js.map +1 -0
  9. package/dist/src/channel/schedule-channel.d.ts +16 -0
  10. package/dist/src/channel/schedule-channel.d.ts.map +1 -0
  11. package/dist/src/channel/schedule-channel.js +20 -0
  12. package/dist/src/channel/schedule-channel.js.map +1 -0
  13. package/dist/src/channel/schedule.d.ts +4 -6
  14. package/dist/src/channel/schedule.d.ts.map +1 -1
  15. package/dist/src/channel/schedule.js +6 -9
  16. package/dist/src/channel/schedule.js.map +1 -1
  17. package/dist/src/channel/slack-channel.d.ts +125 -0
  18. package/dist/src/channel/slack-channel.d.ts.map +1 -0
  19. package/dist/src/channel/slack-channel.js +320 -0
  20. package/dist/src/channel/slack-channel.js.map +1 -0
  21. package/dist/src/channel/subagent-channel.d.ts +41 -0
  22. package/dist/src/channel/subagent-channel.d.ts.map +1 -0
  23. package/dist/src/channel/{subagent-emitter.js → subagent-channel.js} +15 -19
  24. package/dist/src/channel/subagent-channel.js.map +1 -0
  25. package/dist/src/channel/types.d.ts +157 -90
  26. package/dist/src/channel/types.d.ts.map +1 -1
  27. package/dist/src/channel/types.js +64 -1
  28. package/dist/src/channel/types.js.map +1 -1
  29. package/dist/src/cli/dev/input-requests.d.ts +4 -4
  30. package/dist/src/cli/dev/input-requests.d.ts.map +1 -1
  31. package/dist/src/cli/dev/input-requests.js +34 -65
  32. package/dist/src/cli/dev/input-requests.js.map +1 -1
  33. package/dist/src/cli/dev/repl.d.ts.map +1 -1
  34. package/dist/src/cli/dev/repl.js +41 -24
  35. package/dist/src/cli/dev/repl.js.map +1 -1
  36. package/dist/src/client/index.d.ts +3 -2
  37. package/dist/src/client/index.d.ts.map +1 -1
  38. package/dist/src/client/index.js +1 -0
  39. package/dist/src/client/index.js.map +1 -1
  40. package/dist/src/client/message-response.d.ts +5 -5
  41. package/dist/src/client/message-response.d.ts.map +1 -1
  42. package/dist/src/client/message-response.js +6 -6
  43. package/dist/src/client/message-response.js.map +1 -1
  44. package/dist/src/client/open-stream.d.ts +1 -1
  45. package/dist/src/client/open-stream.d.ts.map +1 -1
  46. package/dist/src/client/open-stream.js +1 -1
  47. package/dist/src/client/open-stream.js.map +1 -1
  48. package/dist/src/client/session-utils.d.ts +3 -3
  49. package/dist/src/client/session-utils.d.ts.map +1 -1
  50. package/dist/src/client/session-utils.js +4 -4
  51. package/dist/src/client/session-utils.js.map +1 -1
  52. package/dist/src/client/session.d.ts +5 -5
  53. package/dist/src/client/session.js +28 -28
  54. package/dist/src/client/session.js.map +1 -1
  55. package/dist/src/client/types.d.ts +8 -8
  56. package/dist/src/client/types.d.ts.map +1 -1
  57. package/dist/src/compiler/channel-url.d.ts +1 -1
  58. package/dist/src/compiler/channel-url.js +1 -1
  59. package/dist/src/compiler/manifest.d.ts +38 -5
  60. package/dist/src/compiler/manifest.d.ts.map +1 -1
  61. package/dist/src/compiler/manifest.js +15 -1
  62. package/dist/src/compiler/manifest.js.map +1 -1
  63. package/dist/src/compiler/module-map.js +8 -0
  64. package/dist/src/compiler/module-map.js.map +1 -1
  65. package/dist/src/compiler/normalize-channel.d.ts +1 -1
  66. package/dist/src/compiler/normalize-channel.js +3 -3
  67. package/dist/src/compiler/normalize-channel.js.map +1 -1
  68. package/dist/src/compiler/normalize-connection.d.ts +14 -0
  69. package/dist/src/compiler/normalize-connection.d.ts.map +1 -0
  70. package/dist/src/compiler/normalize-connection.js +29 -0
  71. package/dist/src/compiler/normalize-connection.js.map +1 -0
  72. package/dist/src/compiler/normalize-manifest.d.ts.map +1 -1
  73. package/dist/src/compiler/normalize-manifest.js +2 -0
  74. package/dist/src/compiler/normalize-manifest.js.map +1 -1
  75. package/dist/src/context/accessors.d.ts +13 -12
  76. package/dist/src/context/accessors.d.ts.map +1 -1
  77. package/dist/src/context/accessors.js +16 -17
  78. package/dist/src/context/accessors.js.map +1 -1
  79. package/dist/src/context/container.d.ts +17 -19
  80. package/dist/src/context/container.d.ts.map +1 -1
  81. package/dist/src/context/container.js +21 -14
  82. package/dist/src/context/container.js.map +1 -1
  83. package/dist/src/context/durable-context.d.ts +18 -0
  84. package/dist/src/context/durable-context.d.ts.map +1 -0
  85. package/dist/src/context/durable-context.js +49 -0
  86. package/dist/src/context/durable-context.js.map +1 -0
  87. package/dist/src/context/key.d.ts +43 -83
  88. package/dist/src/context/key.d.ts.map +1 -1
  89. package/dist/src/context/key.js +58 -80
  90. package/dist/src/context/key.js.map +1 -1
  91. package/dist/src/context/keys.d.ts +8 -20
  92. package/dist/src/context/keys.d.ts.map +1 -1
  93. package/dist/src/context/keys.js +20 -34
  94. package/dist/src/context/keys.js.map +1 -1
  95. package/dist/src/context/provider.d.ts +2 -2
  96. package/dist/src/context/provider.d.ts.map +1 -1
  97. package/dist/src/context/providers/connection.d.ts +4 -0
  98. package/dist/src/context/providers/connection.d.ts.map +1 -0
  99. package/dist/src/context/providers/connection.js +18 -0
  100. package/dist/src/context/providers/connection.js.map +1 -0
  101. package/dist/src/context/providers/session.d.ts.map +1 -1
  102. package/dist/src/context/providers/session.js +1 -2
  103. package/dist/src/context/providers/session.js.map +1 -1
  104. package/dist/src/context/providers/skill.d.ts.map +1 -1
  105. package/dist/src/context/providers/skill.js +2 -15
  106. package/dist/src/context/providers/skill.js.map +1 -1
  107. package/dist/src/context/run-step.d.ts +6 -8
  108. package/dist/src/context/run-step.d.ts.map +1 -1
  109. package/dist/src/context/run-step.js +15 -17
  110. package/dist/src/context/run-step.js.map +1 -1
  111. package/dist/src/context/seed-keys.d.ts +21 -0
  112. package/dist/src/context/seed-keys.d.ts.map +1 -0
  113. package/dist/src/context/seed-keys.js +31 -0
  114. package/dist/src/context/seed-keys.js.map +1 -0
  115. package/dist/src/context/serialize.d.ts +8 -9
  116. package/dist/src/context/serialize.d.ts.map +1 -1
  117. package/dist/src/context/serialize.js +38 -15
  118. package/dist/src/context/serialize.js.map +1 -1
  119. package/dist/src/discover/connections.d.ts +48 -0
  120. package/dist/src/discover/connections.d.ts.map +1 -0
  121. package/dist/src/discover/connections.js +169 -0
  122. package/dist/src/discover/connections.js.map +1 -0
  123. package/dist/src/discover/discover-agent.d.ts +1 -0
  124. package/dist/src/discover/discover-agent.d.ts.map +1 -1
  125. package/dist/src/discover/discover-agent.js +8 -0
  126. package/dist/src/discover/discover-agent.js.map +1 -1
  127. package/dist/src/discover/discover-subagent.js +7 -0
  128. package/dist/src/discover/discover-subagent.js.map +1 -1
  129. package/dist/src/discover/filesystem.d.ts +3 -3
  130. package/dist/src/discover/filesystem.d.ts.map +1 -1
  131. package/dist/src/discover/filesystem.js +7 -0
  132. package/dist/src/discover/filesystem.js.map +1 -1
  133. package/dist/src/discover/grammar.d.ts +20 -4
  134. package/dist/src/discover/grammar.d.ts.map +1 -1
  135. package/dist/src/discover/grammar.js +31 -5
  136. package/dist/src/discover/grammar.js.map +1 -1
  137. package/dist/src/discover/manifest.d.ts +28 -1
  138. package/dist/src/discover/manifest.d.ts.map +1 -1
  139. package/dist/src/discover/manifest.js +11 -1
  140. package/dist/src/discover/manifest.js.map +1 -1
  141. package/dist/src/evals/runner/artifacts.js +1 -1
  142. package/dist/src/evals/runner/artifacts.js.map +1 -1
  143. package/dist/src/evals/runner/derive-run-facts.js +5 -5
  144. package/dist/src/evals/runner/derive-run-facts.js.map +1 -1
  145. package/dist/src/evals/runner/execute-case.js +4 -4
  146. package/dist/src/evals/runner/execute-case.js.map +1 -1
  147. package/dist/src/evals/runner/execute-suite.js +1 -1
  148. package/dist/src/evals/runner/execute-suite.js.map +1 -1
  149. package/dist/src/evals/runner/reporters/braintrust.js +2 -2
  150. package/dist/src/evals/runner/reporters/braintrust.js.map +1 -1
  151. package/dist/src/evals/types.d.ts +4 -4
  152. package/dist/src/evals/types.d.ts.map +1 -1
  153. package/dist/src/execution/continuous-entry.d.ts +18 -9
  154. package/dist/src/execution/continuous-entry.d.ts.map +1 -1
  155. package/dist/src/execution/continuous-entry.js +62 -18
  156. package/dist/src/execution/continuous-entry.js.map +1 -1
  157. package/dist/src/execution/continuous-runtime.d.ts +1 -1
  158. package/dist/src/execution/continuous-runtime.d.ts.map +1 -1
  159. package/dist/src/execution/continuous-runtime.js +14 -10
  160. package/dist/src/execution/continuous-runtime.js.map +1 -1
  161. package/dist/src/execution/node-step.d.ts +1 -2
  162. package/dist/src/execution/node-step.d.ts.map +1 -1
  163. package/dist/src/execution/node-step.js +42 -55
  164. package/dist/src/execution/node-step.js.map +1 -1
  165. package/dist/src/execution/runtime-context.d.ts +3 -0
  166. package/dist/src/execution/runtime-context.d.ts.map +1 -1
  167. package/dist/src/execution/runtime-context.js +6 -4
  168. package/dist/src/execution/runtime-context.js.map +1 -1
  169. package/dist/src/execution/session.d.ts +2 -1
  170. package/dist/src/execution/session.d.ts.map +1 -1
  171. package/dist/src/execution/session.js +1 -0
  172. package/dist/src/execution/session.js.map +1 -1
  173. package/dist/src/execution/skills/access.d.ts.map +1 -1
  174. package/dist/src/execution/skills/instructions.d.ts +6 -6
  175. package/dist/src/execution/skills/instructions.d.ts.map +1 -1
  176. package/dist/src/execution/skills/instructions.js +15 -15
  177. package/dist/src/execution/skills/instructions.js.map +1 -1
  178. package/dist/src/execution/skills/types.d.ts +4 -4
  179. package/dist/src/execution/skills/types.d.ts.map +1 -1
  180. package/dist/src/execution/step-context.d.ts +27 -0
  181. package/dist/src/execution/step-context.d.ts.map +1 -0
  182. package/dist/src/execution/step-context.js +54 -0
  183. package/dist/src/execution/step-context.js.map +1 -0
  184. package/dist/src/execution/subagent-tool.d.ts +1 -1
  185. package/dist/src/execution/subagent-tool.d.ts.map +1 -1
  186. package/dist/src/execution/subagent-tool.js +3 -4
  187. package/dist/src/execution/subagent-tool.js.map +1 -1
  188. package/dist/src/execution/tool-compaction.d.ts +1 -3
  189. package/dist/src/execution/tool-compaction.d.ts.map +1 -1
  190. package/dist/src/execution/tool-compaction.js +6 -20
  191. package/dist/src/execution/tool-compaction.js.map +1 -1
  192. package/dist/src/execution/types.d.ts +1 -1
  193. package/dist/src/execution/types.d.ts.map +1 -1
  194. package/dist/src/execution/workflow-entry.d.ts +4 -5
  195. package/dist/src/execution/workflow-entry.d.ts.map +1 -1
  196. package/dist/src/execution/workflow-entry.js +7 -2
  197. package/dist/src/execution/workflow-entry.js.map +1 -1
  198. package/dist/src/execution/workflow-runtime.d.ts.map +1 -1
  199. package/dist/src/execution/workflow-runtime.js +10 -5
  200. package/dist/src/execution/workflow-runtime.js.map +1 -1
  201. package/dist/src/execution/workflow-steps.d.ts +13 -6
  202. package/dist/src/execution/workflow-steps.d.ts.map +1 -1
  203. package/dist/src/execution/workflow-steps.js +24 -19
  204. package/dist/src/execution/workflow-steps.js.map +1 -1
  205. package/dist/src/harness/emission.d.ts +36 -27
  206. package/dist/src/harness/emission.d.ts.map +1 -1
  207. package/dist/src/harness/emission.js +130 -84
  208. package/dist/src/harness/emission.js.map +1 -1
  209. package/dist/src/harness/execute-tool.d.ts +52 -0
  210. package/dist/src/harness/execute-tool.d.ts.map +1 -0
  211. package/dist/src/harness/execute-tool.js +59 -0
  212. package/dist/src/harness/execute-tool.js.map +1 -0
  213. package/dist/src/harness/input-extraction.d.ts +3 -3
  214. package/dist/src/harness/input-extraction.d.ts.map +1 -1
  215. package/dist/src/harness/input-extraction.js +15 -8
  216. package/dist/src/harness/input-extraction.js.map +1 -1
  217. package/dist/src/harness/input-requests.d.ts +46 -40
  218. package/dist/src/harness/input-requests.d.ts.map +1 -1
  219. package/dist/src/harness/input-requests.js +169 -245
  220. package/dist/src/harness/input-requests.js.map +1 -1
  221. package/dist/src/harness/messages.d.ts +10 -9
  222. package/dist/src/harness/messages.d.ts.map +1 -1
  223. package/dist/src/harness/messages.js +23 -20
  224. package/dist/src/harness/messages.js.map +1 -1
  225. package/dist/src/harness/provider-tools.d.ts +2 -2
  226. package/dist/src/harness/provider-tools.d.ts.map +1 -1
  227. package/dist/src/harness/provider-tools.js +7 -3
  228. package/dist/src/harness/provider-tools.js.map +1 -1
  229. package/dist/src/harness/step-hooks.d.ts +77 -0
  230. package/dist/src/harness/step-hooks.d.ts.map +1 -0
  231. package/dist/src/harness/step-hooks.js +192 -0
  232. package/dist/src/harness/step-hooks.js.map +1 -0
  233. package/dist/src/harness/tool-loop.d.ts +4 -2
  234. package/dist/src/harness/tool-loop.d.ts.map +1 -1
  235. package/dist/src/harness/tool-loop.js +130 -181
  236. package/dist/src/harness/tool-loop.js.map +1 -1
  237. package/dist/src/harness/tools.d.ts +12 -16
  238. package/dist/src/harness/tools.d.ts.map +1 -1
  239. package/dist/src/harness/tools.js +39 -33
  240. package/dist/src/harness/tools.js.map +1 -1
  241. package/dist/src/harness/types.d.ts +44 -28
  242. package/dist/src/harness/types.d.ts.map +1 -1
  243. package/dist/src/harness/types.js +6 -1
  244. package/dist/src/harness/types.js.map +1 -1
  245. package/dist/src/internal/application/compiled-artifacts.d.ts +5 -3
  246. package/dist/src/internal/application/compiled-artifacts.d.ts.map +1 -1
  247. package/dist/src/internal/application/compiled-artifacts.js +19 -40
  248. package/dist/src/internal/application/compiled-artifacts.js.map +1 -1
  249. package/dist/src/internal/application/package.js +1 -1
  250. package/dist/src/internal/authored-definition/channel.d.ts +3 -3
  251. package/dist/src/internal/authored-definition/channel.d.ts.map +1 -1
  252. package/dist/src/internal/authored-definition/channel.js +28 -4
  253. package/dist/src/internal/authored-definition/channel.js.map +1 -1
  254. package/dist/src/internal/authored-definition/connection.d.ts +10 -0
  255. package/dist/src/internal/authored-definition/connection.d.ts.map +1 -0
  256. package/dist/src/internal/authored-definition/connection.js +134 -0
  257. package/dist/src/internal/authored-definition/connection.js.map +1 -0
  258. package/dist/src/internal/authored-module.js +1 -1
  259. package/dist/src/internal/authored-module.js.map +1 -1
  260. package/dist/src/internal/message/builder.d.ts +1 -2
  261. package/dist/src/internal/message/builder.d.ts.map +1 -1
  262. package/dist/src/internal/message/builder.js +4 -12
  263. package/dist/src/internal/message/builder.js.map +1 -1
  264. package/dist/src/internal/nitro/host/configure-message-routes.d.ts +3 -1
  265. package/dist/src/internal/nitro/host/configure-message-routes.d.ts.map +1 -1
  266. package/dist/src/internal/nitro/host/configure-message-routes.js +124 -25
  267. package/dist/src/internal/nitro/host/configure-message-routes.js.map +1 -1
  268. package/dist/src/internal/nitro/host/create-application-nitro.d.ts.map +1 -1
  269. package/dist/src/internal/nitro/host/create-application-nitro.js +63 -21
  270. package/dist/src/internal/nitro/host/create-application-nitro.js.map +1 -1
  271. package/dist/src/internal/nitro/host/load-home-page-web-assets.d.ts +13 -0
  272. package/dist/src/internal/nitro/host/load-home-page-web-assets.d.ts.map +1 -0
  273. package/dist/src/internal/nitro/host/load-home-page-web-assets.js +35 -0
  274. package/dist/src/internal/nitro/host/load-home-page-web-assets.js.map +1 -0
  275. package/dist/src/internal/nitro/host/prepare-application-host.js +1 -1
  276. package/dist/src/internal/nitro/host/prepare-application-host.js.map +1 -1
  277. package/dist/src/internal/nitro/routes/channel-dispatch.d.ts +10 -18
  278. package/dist/src/internal/nitro/routes/channel-dispatch.d.ts.map +1 -1
  279. package/dist/src/internal/nitro/routes/channel-dispatch.js +16 -45
  280. package/dist/src/internal/nitro/routes/channel-dispatch.js.map +1 -1
  281. package/dist/src/internal/nitro/routes/home-page/build-home-page-response.d.ts +88 -0
  282. package/dist/src/internal/nitro/routes/home-page/build-home-page-response.d.ts.map +1 -0
  283. package/dist/src/internal/nitro/routes/home-page/build-home-page-response.js +175 -0
  284. package/dist/src/internal/nitro/routes/home-page/build-home-page-response.js.map +1 -0
  285. package/dist/src/internal/nitro/routes/home.d.ts +7 -0
  286. package/dist/src/internal/nitro/routes/home.d.ts.map +1 -0
  287. package/dist/src/internal/nitro/routes/home.js +22 -0
  288. package/dist/src/internal/nitro/routes/home.js.map +1 -0
  289. package/dist/src/internal/nitro/routes/index.d.ts +3 -8
  290. package/dist/src/internal/nitro/routes/index.d.ts.map +1 -1
  291. package/dist/src/internal/nitro/routes/index.js +18 -36
  292. package/dist/src/internal/nitro/routes/index.js.map +1 -1
  293. package/dist/src/internal/nitro/routes/runtime-artifacts.d.ts +10 -3
  294. package/dist/src/internal/nitro/routes/runtime-artifacts.d.ts.map +1 -1
  295. package/dist/src/internal/nitro/routes/runtime-artifacts.js +2 -9
  296. package/dist/src/internal/nitro/routes/runtime-artifacts.js.map +1 -1
  297. package/dist/src/internal/nitro/routes/runtime-stack.d.ts +8 -7
  298. package/dist/src/internal/nitro/routes/runtime-stack.d.ts.map +1 -1
  299. package/dist/src/internal/nitro/routes/runtime-stack.js +10 -10
  300. package/dist/src/internal/nitro/routes/runtime-stack.js.map +1 -1
  301. package/dist/src/internal/nitro/routes/schedule-task.d.ts +7 -7
  302. package/dist/src/internal/nitro/routes/schedule-task.d.ts.map +1 -1
  303. package/dist/src/internal/nitro/routes/schedule-task.js +22 -30
  304. package/dist/src/internal/nitro/routes/schedule-task.js.map +1 -1
  305. package/dist/src/internal/nitro/routes/web-ui/assets/index.js +10 -0
  306. package/dist/src/internal/nitro/routes/web-ui/assets/style.css +2 -0
  307. package/dist/src/internal/nitro/routes/web-ui/index.html +17 -0
  308. package/dist/src/internal/nitro/routes/workflow-data.d.ts +32 -0
  309. package/dist/src/internal/nitro/routes/workflow-data.d.ts.map +1 -0
  310. package/dist/src/internal/nitro/routes/workflow-data.js +142 -0
  311. package/dist/src/internal/nitro/routes/workflow-data.js.map +1 -0
  312. package/dist/src/internal/nitro/routes/workflow-route-helpers.d.ts +46 -0
  313. package/dist/src/internal/nitro/routes/workflow-route-helpers.d.ts.map +1 -0
  314. package/dist/src/internal/nitro/routes/workflow-route-helpers.js +137 -0
  315. package/dist/src/internal/nitro/routes/workflow-route-helpers.js.map +1 -0
  316. package/dist/src/internal/nitro/routes/workflow-run-events.d.ts +14 -0
  317. package/dist/src/internal/nitro/routes/workflow-run-events.d.ts.map +1 -0
  318. package/dist/src/internal/nitro/routes/workflow-run-events.js +42 -0
  319. package/dist/src/internal/nitro/routes/workflow-run-events.js.map +1 -0
  320. package/dist/src/internal/nitro/routes/workflow-run-steps.d.ts +14 -0
  321. package/dist/src/internal/nitro/routes/workflow-run-steps.d.ts.map +1 -0
  322. package/dist/src/internal/nitro/routes/workflow-run-steps.js +42 -0
  323. package/dist/src/internal/nitro/routes/workflow-run-steps.js.map +1 -0
  324. package/dist/src/internal/nitro/routes/workflow-run.d.ts +13 -0
  325. package/dist/src/internal/nitro/routes/workflow-run.d.ts.map +1 -0
  326. package/dist/src/internal/nitro/routes/workflow-run.js +35 -0
  327. package/dist/src/internal/nitro/routes/workflow-run.js.map +1 -0
  328. package/dist/src/internal/nitro/routes/workflow-runs.d.ts +11 -0
  329. package/dist/src/internal/nitro/routes/workflow-runs.d.ts.map +1 -0
  330. package/dist/src/internal/nitro/routes/workflow-runs.js +29 -0
  331. package/dist/src/internal/nitro/routes/workflow-runs.js.map +1 -0
  332. package/dist/src/protocol/message.d.ts +160 -76
  333. package/dist/src/protocol/message.d.ts.map +1 -1
  334. package/dist/src/protocol/message.js +92 -36
  335. package/dist/src/protocol/message.js.map +1 -1
  336. package/dist/src/protocol/routes.d.ts +11 -3
  337. package/dist/src/protocol/routes.d.ts.map +1 -1
  338. package/dist/src/protocol/routes.js +12 -4
  339. package/dist/src/protocol/routes.js.map +1 -1
  340. package/dist/src/public/channels/auth.d.ts +32 -81
  341. package/dist/src/public/channels/auth.d.ts.map +1 -1
  342. package/dist/src/public/channels/auth.js +23 -86
  343. package/dist/src/public/channels/auth.js.map +1 -1
  344. package/dist/src/public/channels/http.d.ts +66 -26
  345. package/dist/src/public/channels/http.d.ts.map +1 -1
  346. package/dist/src/public/channels/http.js +88 -78
  347. package/dist/src/public/channels/http.js.map +1 -1
  348. package/dist/src/public/channels/index.d.ts +9 -10
  349. package/dist/src/public/channels/index.d.ts.map +1 -1
  350. package/dist/src/public/channels/index.js +9 -9
  351. package/dist/src/public/channels/index.js.map +1 -1
  352. package/dist/src/public/channels/slack/index.d.ts +104 -37
  353. package/dist/src/public/channels/slack/index.d.ts.map +1 -1
  354. package/dist/src/public/channels/slack/index.js +168 -47
  355. package/dist/src/public/channels/slack/index.js.map +1 -1
  356. package/dist/src/public/channels/slack/lowlevel.d.ts +5 -5
  357. package/dist/src/public/channels/slack/lowlevel.d.ts.map +1 -1
  358. package/dist/src/public/channels/slack/lowlevel.js +4 -4
  359. package/dist/src/public/channels/slack/lowlevel.js.map +1 -1
  360. package/dist/src/public/connections/index.d.ts +25 -0
  361. package/dist/src/public/connections/index.d.ts.map +1 -0
  362. package/dist/src/public/connections/index.js +24 -0
  363. package/dist/src/public/connections/index.js.map +1 -0
  364. package/dist/src/public/definitions/channel.d.ts +89 -60
  365. package/dist/src/public/definitions/channel.d.ts.map +1 -1
  366. package/dist/src/public/definitions/channel.js +42 -24
  367. package/dist/src/public/definitions/channel.js.map +1 -1
  368. package/dist/src/public/definitions/connections/mcp.d.ts +60 -0
  369. package/dist/src/public/definitions/connections/mcp.d.ts.map +1 -0
  370. package/dist/src/public/definitions/connections/mcp.js +7 -0
  371. package/dist/src/public/definitions/connections/mcp.js.map +1 -0
  372. package/dist/src/public/definitions/tool.d.ts +14 -7
  373. package/dist/src/public/definitions/tool.d.ts.map +1 -1
  374. package/dist/src/public/definitions/tool.js.map +1 -1
  375. package/dist/src/public/index.d.ts +10 -9
  376. package/dist/src/public/index.d.ts.map +1 -1
  377. package/dist/src/public/index.js +7 -6
  378. package/dist/src/public/index.js.map +1 -1
  379. package/dist/src/public/sandboxes/internal.d.ts +1 -1
  380. package/dist/src/public/sandboxes/internal.js +1 -1
  381. package/dist/src/public/tools/defaults.d.ts +6 -6
  382. package/dist/src/public/tools/defaults.d.ts.map +1 -1
  383. package/dist/src/public/tools/defaults.js +6 -6
  384. package/dist/src/public/tools/defaults.js.map +1 -1
  385. package/dist/src/public/tools/internal.d.ts +1 -1
  386. package/dist/src/public/tools/internal.js +1 -1
  387. package/dist/src/runtime/actions/types.d.ts +21 -18
  388. package/dist/src/runtime/actions/types.d.ts.map +1 -1
  389. package/dist/src/runtime/actions/types.js +22 -19
  390. package/dist/src/runtime/actions/types.js.map +1 -1
  391. package/dist/src/runtime/agent/bootstrap-model-utils.d.ts +37 -0
  392. package/dist/src/runtime/agent/bootstrap-model-utils.d.ts.map +1 -0
  393. package/dist/src/runtime/agent/bootstrap-model-utils.js +149 -0
  394. package/dist/src/runtime/agent/bootstrap-model-utils.js.map +1 -0
  395. package/dist/src/runtime/agent/bootstrap-model.d.ts.map +1 -1
  396. package/dist/src/runtime/agent/bootstrap-model.js +11 -80
  397. package/dist/src/runtime/agent/bootstrap-model.js.map +1 -1
  398. package/dist/src/runtime/agent/bootstrap.d.ts.map +1 -1
  399. package/dist/src/runtime/agent/bootstrap.js +4 -1
  400. package/dist/src/runtime/agent/bootstrap.js.map +1 -1
  401. package/dist/src/runtime/agent/mock-model-adapter.d.ts.map +1 -1
  402. package/dist/src/runtime/agent/mock-model-adapter.js +72 -134
  403. package/dist/src/runtime/agent/mock-model-adapter.js.map +1 -1
  404. package/dist/src/runtime/channels/registry.d.ts +21 -0
  405. package/dist/src/runtime/channels/registry.d.ts.map +1 -0
  406. package/dist/src/runtime/channels/registry.js +65 -0
  407. package/dist/src/runtime/channels/registry.js.map +1 -0
  408. package/dist/src/runtime/connections/mcp-client.d.ts +48 -0
  409. package/dist/src/runtime/connections/mcp-client.d.ts.map +1 -0
  410. package/dist/src/runtime/connections/mcp-client.js +182 -0
  411. package/dist/src/runtime/connections/mcp-client.js.map +1 -0
  412. package/dist/src/runtime/connections/registry.d.ts +33 -0
  413. package/dist/src/runtime/connections/registry.d.ts.map +1 -0
  414. package/dist/src/runtime/connections/registry.js +54 -0
  415. package/dist/src/runtime/connections/registry.js.map +1 -0
  416. package/dist/src/runtime/connections/types.d.ts +75 -0
  417. package/dist/src/runtime/connections/types.d.ts.map +1 -0
  418. package/dist/src/runtime/connections/types.js +9 -0
  419. package/dist/src/runtime/connections/types.js.map +1 -0
  420. package/dist/src/runtime/framework-channels/index.d.ts +6 -6
  421. package/dist/src/runtime/framework-channels/index.d.ts.map +1 -1
  422. package/dist/src/runtime/framework-channels/index.js +16 -14
  423. package/dist/src/runtime/framework-channels/index.js.map +1 -1
  424. package/dist/src/runtime/framework-tools/ask-question.js +4 -4
  425. package/dist/src/runtime/framework-tools/ask-question.js.map +1 -1
  426. package/dist/src/runtime/framework-tools/connection-execute.d.ts +10 -0
  427. package/dist/src/runtime/framework-tools/connection-execute.d.ts.map +1 -0
  428. package/dist/src/runtime/framework-tools/connection-execute.js +50 -0
  429. package/dist/src/runtime/framework-tools/connection-execute.js.map +1 -0
  430. package/dist/src/runtime/framework-tools/connection-search.d.ts +43 -0
  431. package/dist/src/runtime/framework-tools/connection-search.d.ts.map +1 -0
  432. package/dist/src/runtime/framework-tools/connection-search.js +135 -0
  433. package/dist/src/runtime/framework-tools/connection-search.js.map +1 -0
  434. package/dist/src/runtime/framework-tools/file-state.d.ts +5 -5
  435. package/dist/src/runtime/framework-tools/file-state.d.ts.map +1 -1
  436. package/dist/src/runtime/framework-tools/file-state.js +6 -8
  437. package/dist/src/runtime/framework-tools/file-state.js.map +1 -1
  438. package/dist/src/runtime/framework-tools/index.d.ts +3 -1
  439. package/dist/src/runtime/framework-tools/index.d.ts.map +1 -1
  440. package/dist/src/runtime/framework-tools/index.js +10 -1
  441. package/dist/src/runtime/framework-tools/index.js.map +1 -1
  442. package/dist/src/runtime/framework-tools/skill.d.ts +4 -4
  443. package/dist/src/runtime/framework-tools/skill.d.ts.map +1 -1
  444. package/dist/src/runtime/framework-tools/skill.js +14 -11
  445. package/dist/src/runtime/framework-tools/skill.js.map +1 -1
  446. package/dist/src/runtime/framework-tools/todo.d.ts.map +1 -1
  447. package/dist/src/runtime/framework-tools/todo.js +2 -4
  448. package/dist/src/runtime/framework-tools/todo.js.map +1 -1
  449. package/dist/src/runtime/input/types.d.ts +40 -115
  450. package/dist/src/runtime/input/types.d.ts.map +1 -1
  451. package/dist/src/runtime/input/types.js +28 -66
  452. package/dist/src/runtime/input/types.js.map +1 -1
  453. package/dist/src/runtime/loaders/module-map.js +8 -0
  454. package/dist/src/runtime/loaders/module-map.js.map +1 -1
  455. package/dist/src/runtime/prompt/compose.d.ts +4 -1
  456. package/dist/src/runtime/prompt/compose.d.ts.map +1 -1
  457. package/dist/src/runtime/prompt/compose.js +18 -1
  458. package/dist/src/runtime/prompt/compose.js.map +1 -1
  459. package/dist/src/runtime/prompt/connections.d.ts +10 -0
  460. package/dist/src/runtime/prompt/connections.d.ts.map +1 -0
  461. package/dist/src/runtime/prompt/connections.js +25 -0
  462. package/dist/src/runtime/prompt/connections.js.map +1 -0
  463. package/dist/src/runtime/resolve-agent-graph.d.ts.map +1 -1
  464. package/dist/src/runtime/resolve-agent-graph.js +29 -7
  465. package/dist/src/runtime/resolve-agent-graph.js.map +1 -1
  466. package/dist/src/runtime/resolve-agent.d.ts.map +1 -1
  467. package/dist/src/runtime/resolve-agent.js +3 -0
  468. package/dist/src/runtime/resolve-agent.js.map +1 -1
  469. package/dist/src/runtime/resolve-channel.d.ts.map +1 -1
  470. package/dist/src/runtime/resolve-channel.js +1 -0
  471. package/dist/src/runtime/resolve-channel.js.map +1 -1
  472. package/dist/src/runtime/resolve-connection.d.ts +16 -0
  473. package/dist/src/runtime/resolve-connection.d.ts.map +1 -0
  474. package/dist/src/runtime/resolve-connection.js +69 -0
  475. package/dist/src/runtime/resolve-connection.js.map +1 -0
  476. package/dist/src/runtime/resolve-tool.d.ts.map +1 -1
  477. package/dist/src/runtime/resolve-tool.js +8 -0
  478. package/dist/src/runtime/resolve-tool.js.map +1 -1
  479. package/dist/src/runtime/sessions/auth.d.ts +1 -1
  480. package/dist/src/runtime/sessions/compiled-agent-cache.d.ts +2 -0
  481. package/dist/src/runtime/sessions/compiled-agent-cache.d.ts.map +1 -1
  482. package/dist/src/runtime/sessions/compiled-agent-cache.js +14 -0
  483. package/dist/src/runtime/sessions/compiled-agent-cache.js.map +1 -1
  484. package/dist/src/runtime/skills/fragment-context.d.ts +2 -2
  485. package/dist/src/runtime/skills/fragment-context.d.ts.map +1 -1
  486. package/dist/src/runtime/skills/fragment-context.js +2 -2
  487. package/dist/src/runtime/skills/fragment-context.js.map +1 -1
  488. package/dist/src/runtime/standard-schema.d.ts +28 -0
  489. package/dist/src/runtime/standard-schema.d.ts.map +1 -0
  490. package/dist/src/runtime/standard-schema.js +65 -0
  491. package/dist/src/runtime/standard-schema.js.map +1 -0
  492. package/dist/src/runtime/types.d.ts +29 -3
  493. package/dist/src/runtime/types.d.ts.map +1 -1
  494. package/dist/src/services/dev-client/send-message.d.ts +2 -2
  495. package/dist/src/services/dev-client/send-message.d.ts.map +1 -1
  496. package/dist/src/services/dev-client/send-message.js +21 -22
  497. package/dist/src/services/dev-client/send-message.js.map +1 -1
  498. package/dist/src/services/dev-client/session.d.ts +5 -5
  499. package/dist/src/services/dev-client/session.d.ts.map +1 -1
  500. package/dist/src/services/dev-client/session.js +2 -2
  501. package/dist/src/services/dev-client/session.js.map +1 -1
  502. package/dist/src/services/dev-client.d.ts +6 -6
  503. package/dist/src/services/dev-client.d.ts.map +1 -1
  504. package/dist/src/services/dev-client.js +3 -3
  505. package/dist/src/services/dev-client.js.map +1 -1
  506. package/docs/external-agent-protocol.md +37 -34
  507. package/docs/internals/channels.md +15 -12
  508. package/docs/internals/context.md +81 -161
  509. package/docs/internals/message-runtime.md +28 -26
  510. package/docs/public/README.md +22 -20
  511. package/docs/public/auth-and-route-protection.md +15 -12
  512. package/docs/public/channels/README.md +16 -11
  513. package/docs/public/cli-build-and-debugging.md +1 -1
  514. package/docs/public/context-control.md +7 -3
  515. package/docs/public/evals.md +3 -3
  516. package/docs/public/getting-started.md +15 -12
  517. package/docs/public/human-in-the-loop.md +45 -57
  518. package/docs/public/migration-guide.md +71 -0
  519. package/docs/public/project-layout.md +5 -0
  520. package/docs/public/runs-and-streaming.md +32 -25
  521. package/docs/public/schedules.md +4 -4
  522. package/docs/public/session-context.md +131 -15
  523. package/docs/public/skills.md +27 -3
  524. package/docs/public/subagents.md +2 -2
  525. package/docs/public/tools.md +23 -30
  526. package/docs/public/typescript-api.md +16 -12
  527. package/docs/public/vercel-deployment.md +3 -4
  528. package/docs/public/workspace.md +11 -11
  529. package/package.json +18 -11
  530. package/dist/src/channel/emitter-registry.d.ts +0 -34
  531. package/dist/src/channel/emitter-registry.d.ts.map +0 -1
  532. package/dist/src/channel/emitter-registry.js +0 -63
  533. package/dist/src/channel/emitter-registry.js.map +0 -1
  534. package/dist/src/channel/http-emitter.d.ts +0 -16
  535. package/dist/src/channel/http-emitter.d.ts.map +0 -1
  536. package/dist/src/channel/http-emitter.js +0 -22
  537. package/dist/src/channel/http-emitter.js.map +0 -1
  538. package/dist/src/channel/schedule-emitter.d.ts +0 -15
  539. package/dist/src/channel/schedule-emitter.d.ts.map +0 -1
  540. package/dist/src/channel/schedule-emitter.js +0 -21
  541. package/dist/src/channel/schedule-emitter.js.map +0 -1
  542. package/dist/src/channel/slack-emitter.d.ts +0 -56
  543. package/dist/src/channel/slack-emitter.d.ts.map +0 -1
  544. package/dist/src/channel/slack-emitter.js +0 -235
  545. package/dist/src/channel/slack-emitter.js.map +0 -1
  546. package/dist/src/channel/subagent-emitter.d.ts +0 -41
  547. package/dist/src/channel/subagent-emitter.d.ts.map +0 -1
  548. package/dist/src/channel/subagent-emitter.js.map +0 -1
  549. package/dist/src/context/state.d.ts +0 -27
  550. package/dist/src/context/state.d.ts.map +0 -1
  551. package/dist/src/context/state.js +0 -53
  552. package/dist/src/context/state.js.map +0 -1
  553. package/dist/src/internal/message/nitro-route-shims.d.ts +0 -6
  554. package/dist/src/internal/message/nitro-route-shims.d.ts.map +0 -1
  555. package/dist/src/internal/message/nitro-route-shims.js +0 -38
  556. package/dist/src/internal/message/nitro-route-shims.js.map +0 -1
  557. package/dist/src/internal/message/rewrite-generated-imports.d.ts +0 -15
  558. package/dist/src/internal/message/rewrite-generated-imports.d.ts.map +0 -1
  559. package/dist/src/internal/message/rewrite-generated-imports.js +0 -59
  560. package/dist/src/internal/message/rewrite-generated-imports.js.map +0 -1
  561. package/dist/src/internal/nitro/host/channel-url-matcher.d.ts +0 -35
  562. package/dist/src/internal/nitro/host/channel-url-matcher.d.ts.map +0 -1
  563. package/dist/src/internal/nitro/host/channel-url-matcher.js +0 -57
  564. package/dist/src/internal/nitro/host/channel-url-matcher.js.map +0 -1
  565. package/dist/src/internal/nitro/routes/home-page/build-home-page-view-model.d.ts +0 -11
  566. package/dist/src/internal/nitro/routes/home-page/build-home-page-view-model.d.ts.map +0 -1
  567. package/dist/src/internal/nitro/routes/home-page/build-home-page-view-model.js +0 -264
  568. package/dist/src/internal/nitro/routes/home-page/build-home-page-view-model.js.map +0 -1
  569. package/dist/src/internal/nitro/routes/home-page/render-home-page.d.ts +0 -9
  570. package/dist/src/internal/nitro/routes/home-page/render-home-page.d.ts.map +0 -1
  571. package/dist/src/internal/nitro/routes/home-page/render-home-page.js +0 -15
  572. package/dist/src/internal/nitro/routes/home-page/render-home-page.js.map +0 -1
  573. package/dist/src/internal/nitro/routes/index.html +0 -525
  574. package/dist/src/internal/nitro/runtime-configuration.d.ts +0 -16
  575. package/dist/src/internal/nitro/runtime-configuration.d.ts.map +0 -1
  576. package/dist/src/internal/nitro/runtime-configuration.js +0 -23
  577. package/dist/src/internal/nitro/runtime-configuration.js.map +0 -1
  578. package/dist/src/internal/nitro/shims/runtime-configuration-plugin.d.ts +0 -10
  579. package/dist/src/internal/nitro/shims/runtime-configuration-plugin.d.ts.map +0 -1
  580. package/dist/src/internal/nitro/shims/runtime-configuration-plugin.js +0 -17
  581. package/dist/src/internal/nitro/shims/runtime-configuration-plugin.js.map +0 -1
  582. package/dist/src/runtime/tools/execute-tool.d.ts +0 -20
  583. package/dist/src/runtime/tools/execute-tool.d.ts.map +0 -1
  584. package/dist/src/runtime/tools/execute-tool.js +0 -69
  585. package/dist/src/runtime/tools/execute-tool.js.map +0 -1
@@ -0,0 +1,182 @@
1
+ import { createMCPClient } from "@ai-sdk/mcp";
2
+ /**
3
+ * Wraps one `MCPClient` from `@ai-sdk/mcp` for a single connection.
4
+ *
5
+ * Created lazily per-connection per-session. Caches tool metadata after
6
+ * the first `getToolMetadata()` call.
7
+ */
8
+ export class McpConnectionClient {
9
+ #clientPromise;
10
+ #client;
11
+ #toolsPromise;
12
+ #tools;
13
+ #connection;
14
+ constructor(connection) {
15
+ this.#connection = connection;
16
+ }
17
+ /**
18
+ * Connects to the MCP server, trying Streamable HTTP first and
19
+ * falling back to SSE if the server returns a 404 (indicating it
20
+ * only supports the older SSE transport).
21
+ *
22
+ * Concurrent callers share the same connection promise to avoid
23
+ * duplicate connections.
24
+ */
25
+ async connect() {
26
+ if (this.#client !== undefined) {
27
+ return this.#client;
28
+ }
29
+ if (this.#clientPromise !== undefined) {
30
+ return this.#clientPromise;
31
+ }
32
+ this.#clientPromise = this.#createClient();
33
+ try {
34
+ this.#client = await this.#clientPromise;
35
+ return this.#client;
36
+ }
37
+ catch (error) {
38
+ this.#clientPromise = undefined;
39
+ throw error;
40
+ }
41
+ }
42
+ async #createClient() {
43
+ const headers = await resolveHeaders(this.#connection);
44
+ const url = this.#connection.url;
45
+ try {
46
+ return await createMCPClient({
47
+ transport: { type: "http", url, headers },
48
+ });
49
+ }
50
+ catch {
51
+ return await createMCPClient({
52
+ transport: { type: "sse", url, headers },
53
+ });
54
+ }
55
+ }
56
+ /**
57
+ * Returns cached tool metadata for all tools this connection exposes,
58
+ * after applying any configured tool filter.
59
+ *
60
+ * The first call fetches tools from the server via `listTools()` and
61
+ * creates the AI SDK tool set in parallel. Subsequent calls return
62
+ * the cached result. Concurrent callers share the same in-flight
63
+ * promise.
64
+ */
65
+ async getToolMetadata() {
66
+ const tools = await this.#ensureTools();
67
+ return tools.metadata;
68
+ }
69
+ /**
70
+ * Executes a named tool through the AI SDK's tool executor, which
71
+ * handles the JSON-RPC `tools/call` internally.
72
+ */
73
+ async executeTool(toolName, args) {
74
+ const { executors } = await this.#ensureTools();
75
+ const executor = executors.get(toolName);
76
+ if (executor === undefined) {
77
+ throw new Error(`Tool "${toolName}" not found in connection "${this.#connection.connectionName}".`);
78
+ }
79
+ return executor(args);
80
+ }
81
+ async #ensureTools() {
82
+ if (this.#tools !== undefined) {
83
+ return this.#tools;
84
+ }
85
+ if (this.#toolsPromise !== undefined) {
86
+ return this.#toolsPromise;
87
+ }
88
+ this.#toolsPromise = this.#fetchTools();
89
+ try {
90
+ this.#tools = await this.#toolsPromise;
91
+ return this.#tools;
92
+ }
93
+ catch (error) {
94
+ this.#toolsPromise = undefined;
95
+ throw error;
96
+ }
97
+ }
98
+ async #fetchTools() {
99
+ const client = await this.connect();
100
+ const listResult = await client.listTools();
101
+ const filter = this.#connection.tools;
102
+ const filteredTools = filter !== undefined
103
+ ? listResult.tools.filter((t) => passesToolFilter(t.name, filter))
104
+ : listResult.tools;
105
+ const toolSet = client.toolsFromDefinitions({ tools: filteredTools });
106
+ const metadata = [];
107
+ const executors = new Map();
108
+ for (const tool of filteredTools) {
109
+ metadata.push({
110
+ annotations: tool.annotations,
111
+ description: tool.description ?? "",
112
+ inputSchema: (tool.inputSchema ?? {}),
113
+ name: tool.name,
114
+ });
115
+ const sdkTool = toolSet[tool.name];
116
+ if (sdkTool !== undefined) {
117
+ executors.set(tool.name, sdkTool.execute);
118
+ }
119
+ }
120
+ return { executors, metadata };
121
+ }
122
+ async close() {
123
+ if (this.#client !== undefined) {
124
+ await this.#client.close();
125
+ this.#client = undefined;
126
+ }
127
+ this.#clientPromise = undefined;
128
+ this.#toolsPromise = undefined;
129
+ this.#tools = undefined;
130
+ }
131
+ }
132
+ /**
133
+ * Returns `true` when a tool name passes the configured filter.
134
+ */
135
+ export function passesToolFilter(toolName, filter) {
136
+ if (filter === undefined) {
137
+ return true;
138
+ }
139
+ if ("allow" in filter) {
140
+ return filter.allow.includes(toolName);
141
+ }
142
+ return !filter.block.includes(toolName);
143
+ }
144
+ /**
145
+ * Merges `authorization` (Bearer token) and `headers` into one
146
+ * flat `Record<string, string>` for the transport layer.
147
+ */
148
+ export async function resolveHeaders(connection) {
149
+ const merged = {};
150
+ if (connection.authorization !== undefined) {
151
+ const token = await resolveHeaderValue(connection.authorization.token);
152
+ merged.Authorization = `Bearer ${token}`;
153
+ }
154
+ if (connection.headers !== undefined) {
155
+ const resolved = await resolveHeadersDefinition(connection.headers);
156
+ for (const [key, value] of Object.entries(resolved)) {
157
+ if (connection.authorization !== undefined && key.toLowerCase() === "authorization") {
158
+ throw new Error(`Connection "${connection.connectionName}" headers must not include an "Authorization" key when "authorization" is also provided.`);
159
+ }
160
+ merged[key] = value;
161
+ }
162
+ }
163
+ return merged;
164
+ }
165
+ async function resolveHeadersDefinition(headers) {
166
+ if (typeof headers === "function") {
167
+ return await headers();
168
+ }
169
+ const result = {};
170
+ const entries = Object.entries(headers);
171
+ for (const [key, value] of entries) {
172
+ result[key] = await resolveHeaderValue(value);
173
+ }
174
+ return result;
175
+ }
176
+ async function resolveHeaderValue(value) {
177
+ if (typeof value === "function") {
178
+ return await value();
179
+ }
180
+ return await value;
181
+ }
182
+ //# sourceMappingURL=mcp-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../../../src/runtime/connections/mcp-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { ResolvedConnectionDefinition } from "../types.js";
2
+ import { McpConnectionClient } from "./mcp-client.js";
3
+ import type { ConnectionRegistry } from "./types.js";
4
+ /**
5
+ * Per-session container mapping connection names to lazily-initialized
6
+ * client wrappers.
7
+ *
8
+ * Currently all connections use MCP, but the registry is protocol-agnostic
9
+ * and will dispatch to the appropriate client type when additional
10
+ * protocols (e.g. OpenAPI) are supported.
11
+ */
12
+ export declare class ConnectionRegistryImpl implements ConnectionRegistry {
13
+ #private;
14
+ constructor(connections: readonly ResolvedConnectionDefinition[]);
15
+ /**
16
+ * Returns the client for the named connection, creating it on first
17
+ * access.
18
+ */
19
+ getClient(connectionName: string): McpConnectionClient;
20
+ /**
21
+ * Returns all registered connection names.
22
+ */
23
+ getConnectionNames(): readonly string[];
24
+ /**
25
+ * Returns the resolved definitions for all connections.
26
+ */
27
+ getConnections(): readonly ResolvedConnectionDefinition[];
28
+ /**
29
+ * Closes all active client connections.
30
+ */
31
+ dispose(): Promise<void>;
32
+ }
33
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/runtime/connections/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;;;;;GAOG;AACH,qBAAa,sBAAuB,YAAW,kBAAkB;;gBAInD,WAAW,EAAE,SAAS,4BAA4B,EAAE;IAIhE;;;OAGG;IACH,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,mBAAmB;IAgBtD;;OAEG;IACH,kBAAkB,IAAI,SAAS,MAAM,EAAE;IAIvC;;OAEG;IACH,cAAc,IAAI,SAAS,4BAA4B,EAAE;IAIzD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAK/B"}
@@ -0,0 +1,54 @@
1
+ import { McpConnectionClient } from "./mcp-client.js";
2
+ /**
3
+ * Per-session container mapping connection names to lazily-initialized
4
+ * client wrappers.
5
+ *
6
+ * Currently all connections use MCP, but the registry is protocol-agnostic
7
+ * and will dispatch to the appropriate client type when additional
8
+ * protocols (e.g. OpenAPI) are supported.
9
+ */
10
+ export class ConnectionRegistryImpl {
11
+ #clients = new Map();
12
+ #connections;
13
+ constructor(connections) {
14
+ this.#connections = connections;
15
+ }
16
+ /**
17
+ * Returns the client for the named connection, creating it on first
18
+ * access.
19
+ */
20
+ getClient(connectionName) {
21
+ const existing = this.#clients.get(connectionName);
22
+ if (existing !== undefined) {
23
+ return existing;
24
+ }
25
+ const connection = this.#connections.find((c) => c.connectionName === connectionName);
26
+ if (connection === undefined) {
27
+ throw new Error(`Connection "${connectionName}" is not registered.`);
28
+ }
29
+ const client = new McpConnectionClient(connection);
30
+ this.#clients.set(connectionName, client);
31
+ return client;
32
+ }
33
+ /**
34
+ * Returns all registered connection names.
35
+ */
36
+ getConnectionNames() {
37
+ return this.#connections.map((c) => c.connectionName);
38
+ }
39
+ /**
40
+ * Returns the resolved definitions for all connections.
41
+ */
42
+ getConnections() {
43
+ return this.#connections;
44
+ }
45
+ /**
46
+ * Closes all active client connections.
47
+ */
48
+ async dispose() {
49
+ const closePromises = [...this.#clients.values()].map((client) => client.close());
50
+ await Promise.allSettled(closePromises);
51
+ this.#clients.clear();
52
+ }
53
+ }
54
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/runtime/connections/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD;;;;;;;GAOG;AACH,MAAM,OAAO,sBAAsB;IACjC,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IAClD,YAAY,CAA0C;IAEtD,YAAY,WAAoD;QAC9D,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,cAAsB;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,CAAC;QACtF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,eAAe,cAAc,sBAAsB,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAClF,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Protocol-agnostic interfaces for the connection system.
3
+ *
4
+ * Framework tools (`connection_search`, `connection_execute`) and the
5
+ * context provider depend only on these interfaces, not on any
6
+ * protocol-specific implementation such as MCP.
7
+ */
8
+ import type { ResolvedConnectionDefinition } from "../types.js";
9
+ /** A single header value, supporting static strings and dynamic resolution. */
10
+ export type HeaderValue = string | Promise<string> | (() => string | Promise<string>);
11
+ /**
12
+ * Arbitrary HTTP headers sent with every request to a connection server.
13
+ *
14
+ * Static form: key-value pairs where each value may be a string, Promise,
15
+ * or function. Function form: a callback returning the full headers map,
16
+ * useful when multiple headers must be resolved together.
17
+ */
18
+ export type HeadersDefinition = Readonly<Record<string, HeaderValue>> | (() => Record<string, string> | Promise<Record<string, string>>);
19
+ /**
20
+ * Client-side tool filter applied after `listTools()`.
21
+ *
22
+ * Exactly one of `allow` or `block` must be specified:
23
+ * - `allow` — only named tools are surfaced to the model.
24
+ * - `block` — named tools are hidden; all others are surfaced.
25
+ */
26
+ export type ToolFilterDefinition = {
27
+ readonly allow: readonly string[];
28
+ } | {
29
+ readonly block: readonly string[];
30
+ };
31
+ /**
32
+ * Credentials for authenticating with a connection server.
33
+ *
34
+ * The `token` field is flexible: it accepts a plain string for static
35
+ * credentials, a `Promise` for one-time async resolution, or a function
36
+ * for per-request token refresh. The runtime normalizes all forms into
37
+ * a resolved string before sending the `Authorization: Bearer <token>`
38
+ * header.
39
+ *
40
+ * Shared across all connection types (MCP, future OpenAPI, etc.).
41
+ */
42
+ export interface AuthorizationDefinition {
43
+ /**
44
+ * Bearer token used to authenticate with the connection server.
45
+ *
46
+ * Accepted forms:
47
+ * - `string` — static token, e.g. an environment variable.
48
+ * - `Promise<string>` — resolved once at connection time.
49
+ * - `() => string | Promise<string>` — called per-request for
50
+ * dynamic or refreshable tokens.
51
+ */
52
+ token: string | Promise<string> | (() => string | Promise<string>);
53
+ }
54
+ /** Metadata for a single tool exposed by a connection. */
55
+ export interface ConnectionToolMetadata {
56
+ readonly annotations?: Record<string, unknown>;
57
+ readonly description: string;
58
+ readonly inputSchema: Record<string, unknown>;
59
+ readonly name: string;
60
+ }
61
+ /** A live client for a single connection. */
62
+ export interface ConnectionClient {
63
+ close(): Promise<void>;
64
+ connect(): Promise<unknown>;
65
+ executeTool(toolName: string, args: unknown): Promise<unknown>;
66
+ getToolMetadata(): Promise<readonly ConnectionToolMetadata[]>;
67
+ }
68
+ /** Per-session container mapping connection names to clients. */
69
+ export interface ConnectionRegistry {
70
+ dispose(): Promise<void>;
71
+ getClient(connectionName: string): ConnectionClient;
72
+ getConnectionNames(): readonly string[];
73
+ getConnections(): readonly ResolvedConnectionDefinition[];
74
+ }
75
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/runtime/connections/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAEhE,+EAA+E;AAC/E,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GACzB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,GACrC,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACrC;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAE1C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;CACpE;AAED,0DAA0D;AAC1D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,eAAe,IAAI,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAC;CAC/D;AAED,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACpD,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAAC;IACxC,cAAc,IAAI,SAAS,4BAA4B,EAAE,CAAC;CAC3D"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Protocol-agnostic interfaces for the connection system.
3
+ *
4
+ * Framework tools (`connection_search`, `connection_execute`) and the
5
+ * context provider depend only on these interfaces, not on any
6
+ * protocol-specific implementation such as MCP.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/runtime/connections/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -6,17 +6,17 @@ import type { ResolvedChannelDefinition } from "../types.js";
6
6
  */
7
7
  export declare const HTTP_MESSAGE_CHANNEL_NAME = ".well-known/ash/v1/message";
8
8
  /**
9
- * Logical name of the framework-shipped HTTP run-stream channel. Authors
9
+ * Logical name of the framework-shipped HTTP session-stream channel. Authors
10
10
  * who want to override or disable it create a file at the matching logical
11
- * filesystem path: `agent/channels/.well-known/ash/v1/runs/[runId]/stream.ts`.
11
+ * filesystem path: `agent/channels/.well-known/ash/v1/sessions/[sessionId]/stream.ts`.
12
12
  */
13
- export declare const HTTP_RUN_STREAM_CHANNEL_NAME = ".well-known/ash/v1/runs/[runId]/stream";
13
+ export declare const HTTP_SESSION_STREAM_CHANNEL_NAME = ".well-known/ash/v1/sessions/[sessionId]/stream";
14
14
  /**
15
15
  * Returns the framework-shipped channel definitions that mount by default.
16
16
  *
17
- * Authors override one of these by creating an authored channel at the same
17
+ * Authors override one of these by creating an authored route at the same
18
18
  * logical filesystem path (filename collision wins) or remove one by
19
- * exporting `disableChannel()` from such a file. Both interactions are
19
+ * exporting `disableRoute()` from such a file. Both interactions are
20
20
  * resolved in `resolve-agent-graph.ts` before the channels reach the Nitro
21
21
  * mounting loop.
22
22
  *
@@ -42,7 +42,7 @@ export declare const HTTP_RUN_STREAM_CHANNEL_NAME = ".well-known/ash/v1/runs/[ru
42
42
  export declare function getFrameworkChannelDefinitions(): readonly ResolvedChannelDefinition[];
43
43
  /**
44
44
  * Returns the set of all known framework channel logical names. Used by
45
- * `resolve-agent-graph.ts` to validate `disableChannel()` targets against
45
+ * `resolve-agent-graph.ts` to validate `disableRoute()` targets against
46
46
  * the framework default set so unknown disable names produce a diagnostic.
47
47
  */
48
48
  export declare function getAllFrameworkChannelNames(): ReadonlySet<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/framework-channels/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,+BAA+B,CAAC;AAEtE;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,2CAA2C,CAAC;AAErF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,8BAA8B,IAAI,SAAS,yBAAyB,EAAE,CAwBrF;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,WAAW,CAAC,MAAM,CAAC,CAEjE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/framework-channels/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,+BAA+B,CAAC;AAEtE;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,mDAAmD,CAAC;AAEjG;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,8BAA8B,IAAI,SAAS,yBAAyB,EAAE,CA0BrF;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,WAAW,CAAC,MAAM,CAAC,CAEjE"}
@@ -1,5 +1,5 @@
1
1
  import { none, vercelOidc } from "../../public/channels/auth.js";
2
- import { httpMessageChannel, httpRunStreamChannel } from "../../public/channels/http.js";
2
+ import { httpRoute, httpRunStreamRoute } from "../../public/channels/http.js";
3
3
  /**
4
4
  * Logical name of the framework-shipped HTTP message channel. Authors who
5
5
  * want to override or disable it create a file at the matching logical
@@ -7,17 +7,17 @@ import { httpMessageChannel, httpRunStreamChannel } from "../../public/channels/
7
7
  */
8
8
  export const HTTP_MESSAGE_CHANNEL_NAME = ".well-known/ash/v1/message";
9
9
  /**
10
- * Logical name of the framework-shipped HTTP run-stream channel. Authors
10
+ * Logical name of the framework-shipped HTTP session-stream channel. Authors
11
11
  * who want to override or disable it create a file at the matching logical
12
- * filesystem path: `agent/channels/.well-known/ash/v1/runs/[runId]/stream.ts`.
12
+ * filesystem path: `agent/channels/.well-known/ash/v1/sessions/[sessionId]/stream.ts`.
13
13
  */
14
- export const HTTP_RUN_STREAM_CHANNEL_NAME = ".well-known/ash/v1/runs/[runId]/stream";
14
+ export const HTTP_SESSION_STREAM_CHANNEL_NAME = ".well-known/ash/v1/sessions/[sessionId]/stream";
15
15
  /**
16
16
  * Returns the framework-shipped channel definitions that mount by default.
17
17
  *
18
- * Authors override one of these by creating an authored channel at the same
18
+ * Authors override one of these by creating an authored route at the same
19
19
  * logical filesystem path (filename collision wins) or remove one by
20
- * exporting `disableChannel()` from such a file. Both interactions are
20
+ * exporting `disableRoute()` from such a file. Both interactions are
21
21
  * resolved in `resolve-agent-graph.ts` before the channels reach the Nitro
22
22
  * mounting loop.
23
23
  *
@@ -42,36 +42,38 @@ export const HTTP_RUN_STREAM_CHANNEL_NAME = ".well-known/ash/v1/runs/[runId]/str
42
42
  */
43
43
  export function getFrameworkChannelDefinitions() {
44
44
  const auth = resolveFrameworkHttpAuth();
45
- const message = httpMessageChannel({ auth });
46
- const stream = httpRunStreamChannel({ auth });
45
+ const message = httpRoute({ auth });
46
+ const stream = httpRunStreamRoute({ auth });
47
47
  return [
48
48
  {
49
49
  name: HTTP_MESSAGE_CHANNEL_NAME,
50
50
  method: message.method ?? "POST",
51
51
  urlPath: "/.well-known/ash/v1/message",
52
52
  fetch: message.fetch,
53
+ serializableChannels: message.serializableChannels,
53
54
  logicalPath: `framework://channels/${HTTP_MESSAGE_CHANNEL_NAME}`,
54
55
  sourceId: "ash:framework:http-message",
55
56
  sourceKind: "module",
56
57
  },
57
58
  {
58
- name: HTTP_RUN_STREAM_CHANNEL_NAME,
59
+ name: HTTP_SESSION_STREAM_CHANNEL_NAME,
59
60
  method: stream.method ?? "GET",
60
- urlPath: "/.well-known/ash/v1/runs/:runId/stream",
61
+ urlPath: "/.well-known/ash/v1/sessions/:sessionId/stream",
61
62
  fetch: stream.fetch,
62
- logicalPath: `framework://channels/${HTTP_RUN_STREAM_CHANNEL_NAME}`,
63
- sourceId: "ash:framework:http-run-stream",
63
+ serializableChannels: stream.serializableChannels,
64
+ logicalPath: `framework://channels/${HTTP_SESSION_STREAM_CHANNEL_NAME}`,
65
+ sourceId: "ash:framework:http-session-stream",
64
66
  sourceKind: "module",
65
67
  },
66
68
  ];
67
69
  }
68
70
  /**
69
71
  * Returns the set of all known framework channel logical names. Used by
70
- * `resolve-agent-graph.ts` to validate `disableChannel()` targets against
72
+ * `resolve-agent-graph.ts` to validate `disableRoute()` targets against
71
73
  * the framework default set so unknown disable names produce a diagnostic.
72
74
  */
73
75
  export function getAllFrameworkChannelNames() {
74
- return new Set([HTTP_MESSAGE_CHANNEL_NAME, HTTP_RUN_STREAM_CHANNEL_NAME]);
76
+ return new Set([HTTP_MESSAGE_CHANNEL_NAME, HTTP_SESSION_STREAM_CHANNEL_NAME]);
75
77
  }
76
78
  /**
77
79
  * Returns the inbound `AuthFn` used by the framework-shipped HTTP
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime/framework-channels/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAGzF;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AAEtE;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,wCAAwC,CAAC;AAErF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,8BAA8B;IAC5C,MAAM,IAAI,GAAG,wBAAwB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,OAAO;QACL;YACE,IAAI,EAAE,yBAAyB;YAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM;YAChC,OAAO,EAAE,6BAA6B;YACtC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,wBAAwB,yBAAyB,EAAE;YAChE,QAAQ,EAAE,4BAA4B;YACtC,UAAU,EAAE,QAAQ;SACrB;QACD;YACE,IAAI,EAAE,4BAA4B;YAClC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;YAC9B,OAAO,EAAE,wCAAwC;YACjD,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,wBAAwB,4BAA4B,EAAE;YACnE,QAAQ,EAAE,+BAA+B;YACzC,UAAU,EAAE,QAAQ;SACrB;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO,IAAI,GAAG,CAAC,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;GAMG;AACH,SAAS,wBAAwB;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IACD,OAAO,IAAI,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime/framework-channels/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAG9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AAEtE;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,gDAAgD,CAAC;AAEjG;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,8BAA8B;IAC5C,MAAM,IAAI,GAAG,wBAAwB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,OAAO;QACL;YACE,IAAI,EAAE,yBAAyB;YAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM;YAChC,OAAO,EAAE,6BAA6B;YACtC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;YAClD,WAAW,EAAE,wBAAwB,yBAAyB,EAAE;YAChE,QAAQ,EAAE,4BAA4B;YACtC,UAAU,EAAE,QAAQ;SACrB;QACD;YACE,IAAI,EAAE,gCAAgC;YACtC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;YAC9B,OAAO,EAAE,gDAAgD;YACzD,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,WAAW,EAAE,wBAAwB,gCAAgC,EAAE;YACvE,QAAQ,EAAE,mCAAmC;YAC7C,UAAU,EAAE,QAAQ;SACrB;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO,IAAI,GAAG,CAAC,CAAC,yBAAyB,EAAE,gCAAgC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,wBAAwB;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IACD,OAAO,IAAI,EAAE,CAAC;AAChB,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import { z } from "zod";
2
- import { runtimeQuestionInputRequestSchema } from "../input/types.js";
2
+ import { inputRequestSchema } from "../input/types.js";
3
3
  /**
4
4
  * Stable model-visible name for the framework question tool.
5
5
  */
6
6
  export const ASK_QUESTION_TOOL_NAME = "ask_question";
7
- const askQuestionToolInputSchema = runtimeQuestionInputRequestSchema.omit({
7
+ const askQuestionToolInputSchema = inputRequestSchema.omit({
8
8
  action: true,
9
- kind: true,
10
- toolName: true,
9
+ display: true,
10
+ requestId: true,
11
11
  });
12
12
  const { $schema: _jsonSchemaVersion, ...askQuestionInputSchema } = z.toJSONSchema(askQuestionToolInputSchema);
13
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ask-question.js","sourceRoot":"","sources":["../../../../src/runtime/framework-tools/ask-question.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAGtE;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAc,CAAC;AAErD,MAAM,0BAA0B,GAAG,iCAAiC,CAAC,IAAI,CAAC;IACxE,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AACH,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,sBAAsB,EAAE,GAAG,CAAC,CAAC,YAAY,CAC/E,0BAA0B,CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAiD,CAAC;AAE3F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAA2B;IAClE,WAAW,EACT,wIAAwI;IAC1I,WAAW,EAAE,yBAAyB;IACtC,WAAW,EAAE,4BAA4B;IACzC,IAAI,EAAE,sBAAsB;IAC5B,QAAQ,EAAE,uBAAuB;IACjC,UAAU,EAAE,QAAQ;CACrB,CAAC"}
1
+ {"version":3,"file":"ask-question.js","sourceRoot":"","sources":["../../../../src/runtime/framework-tools/ask-question.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAc,CAAC;AAErD,MAAM,0BAA0B,GAAG,kBAAkB,CAAC,IAAI,CAAC;IACzD,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AACH,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,sBAAsB,EAAE,GAAG,CAAC,CAAC,YAAY,CAC/E,0BAA0B,CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAiD,CAAC;AAE3F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAA2B;IAClE,WAAW,EACT,wIAAwI;IAC1I,WAAW,EAAE,yBAAyB;IACtC,WAAW,EAAE,4BAA4B;IACzC,IAAI,EAAE,sBAAsB;IAC5B,QAAQ,EAAE,uBAAuB;IACjC,UAAU,EAAE,QAAQ;CACrB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ResolvedToolDefinition } from "../types.js";
2
+ /**
3
+ * Framework-provided `connection_execute` tool.
4
+ *
5
+ * Executes a specific tool from a connection. The model must use the
6
+ * search tool first to discover the exact tool name, connection name,
7
+ * and input schema.
8
+ */
9
+ export declare const CONNECTION_EXECUTE_TOOL_DEFINITION: ResolvedToolDefinition;
10
+ //# sourceMappingURL=connection-execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-execute.d.ts","sourceRoot":"","sources":["../../../../src/runtime/framework-tools/connection-execute.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAW1D;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC,EAAE,sBA8BhD,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { requireContext } from "../../context/container.js";
2
+ import { CONNECTION_SEARCH_TOOL_DEFINITION, ConnectionRegistryKey } from "./connection-search.js";
3
+ const SEARCH_NAME = CONNECTION_SEARCH_TOOL_DEFINITION.name;
4
+ /**
5
+ * Framework-provided `connection_execute` tool.
6
+ *
7
+ * Executes a specific tool from a connection. The model must use the
8
+ * search tool first to discover the exact tool name, connection name,
9
+ * and input schema.
10
+ */
11
+ export const CONNECTION_EXECUTE_TOOL_DEFINITION = {
12
+ description: `Call a tool from a connection. Use ${SEARCH_NAME} first to find the tool.`,
13
+ execute: async (input) => executeConnectionExecute(input),
14
+ inputSchema: {
15
+ additionalProperties: false,
16
+ properties: {
17
+ connection: {
18
+ description: `Exact connection name string from the ${SEARCH_NAME} result.`,
19
+ type: "string",
20
+ },
21
+ parameters: {
22
+ description: `Object matching the inputSchema from the ${SEARCH_NAME} result. Pass {} if no parameters are needed.`,
23
+ type: "object",
24
+ },
25
+ tool: {
26
+ description: `Exact tool name string from the ${SEARCH_NAME} result (e.g. 'list_projects', not 'list projects').`,
27
+ type: "string",
28
+ },
29
+ },
30
+ required: ["connection", "tool", "parameters"],
31
+ type: "object",
32
+ },
33
+ logicalPath: "ash:framework/connection-execute",
34
+ name: "connection_execute",
35
+ // TODO: This approves all connection tools once `connection_execute` is
36
+ // approved once. NeedsApprovalContext needs toolInput so we can scope
37
+ // approval per connection/remote-tool pair.
38
+ needsApproval: ({ approvedTools, toolName }) => !approvedTools.has(toolName),
39
+ sourceId: "ash:connection-execute-tool",
40
+ sourceKind: "module",
41
+ };
42
+ async function executeConnectionExecute(input) {
43
+ const registry = requireContext().tryGet(ConnectionRegistryKey);
44
+ if (registry === undefined) {
45
+ throw new Error("No connection registry available.");
46
+ }
47
+ const client = registry.getClient(input.connection);
48
+ return client.executeTool(input.tool, input.parameters ?? {});
49
+ }
50
+ //# sourceMappingURL=connection-execute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-execute.js","sourceRoot":"","sources":["../../../../src/runtime/framework-tools/connection-execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,iCAAiC,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAQlG,MAAM,WAAW,GAAG,iCAAiC,CAAC,IAAI,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAA2B;IACxE,WAAW,EAAE,sCAAsC,WAAW,0BAA0B;IACxF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAA+B,CAAC;IACnF,WAAW,EAAE;QACX,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,WAAW,EAAE,yCAAyC,WAAW,UAAU;gBAC3E,IAAI,EAAE,QAAQ;aACf;YACD,UAAU,EAAE;gBACV,WAAW,EAAE,4CAA4C,WAAW,+CAA+C;gBACnH,IAAI,EAAE,QAAQ;aACf;YACD,IAAI,EAAE;gBACJ,WAAW,EAAE,mCAAmC,WAAW,sDAAsD;gBACjH,IAAI,EAAE,QAAQ;aACf;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC;QAC9C,IAAI,EAAE,QAAQ;KACf;IACD,WAAW,EAAE,kCAAkC;IAC/C,IAAI,EAAE,oBAAoB;IAC1B,wEAAwE;IACxE,sEAAsE;IACtE,4CAA4C;IAC5C,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC5E,QAAQ,EAAE,6BAA6B;IACvC,UAAU,EAAE,QAAQ;CACrB,CAAC;AAEF,KAAK,UAAU,wBAAwB,CAAC,KAA6B;IACnE,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAChE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;AAChE,CAAC"}