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
@@ -1,34 +0,0 @@
1
- import type { ChannelEmitterClass } from "./types.js";
2
- /**
3
- * Registers a {@link ChannelEmitterClass} so the framework can rebuild
4
- * instances after a workflow step boundary. Call this once at module load
5
- * time, alongside the class definition.
6
- *
7
- * Framework-shipped emitters (Slack, subagent, schedule, http) call this at
8
- * the bottom of their module file. User-authored emitters do the same in
9
- * their channel module so importing the channel file is enough to make the
10
- * emitter discoverable to the runtime codec.
11
- *
12
- * @example
13
- * ```ts
14
- * class MyEmitter implements ChannelEmitter {
15
- * static readonly kind = "my-emitter";
16
- * readonly kind = "my-emitter";
17
- * // ...
18
- * }
19
- * registerChannelEmitter(MyEmitter);
20
- * ```
21
- */
22
- export declare function registerChannelEmitter<E extends ChannelEmitterClass>(cls: E): void;
23
- /**
24
- * Returns the registered {@link ChannelEmitterClass} for one `kind`, or
25
- * `undefined` if no class has been registered. The codec throws a more
26
- * descriptive error when `undefined` is returned at deserialization time.
27
- */
28
- export declare function getChannelEmitterClass(kind: string): ChannelEmitterClass | undefined;
29
- /**
30
- * Returns the set of currently-registered emitter kinds. Used by tests and
31
- * by diagnostic tooling that wants to enumerate available emitters.
32
- */
33
- export declare function listRegisteredChannelEmitterKinds(): readonly string[];
34
- //# sourceMappingURL=emitter-registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emitter-registry.d.ts","sourceRoot":"","sources":["../../../src/channel/emitter-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAiBtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAoBlF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAEpF;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,IAAI,SAAS,MAAM,EAAE,CAErE"}
@@ -1,63 +0,0 @@
1
- /**
2
- * Process-global registry mapping a {@link ChannelEmitterClass.kind} to its
3
- * class. Populated by side-effecting `registerChannelEmitter` calls at
4
- * module load time.
5
- *
6
- * Used by the {@link ChannelEmitterKey} codec in `context/keys.ts` to
7
- * deserialize emitter state across workflow step boundaries — the codec
8
- * has no compile-time knowledge of which emitters exist, so it asks the
9
- * registry by `kind` instead.
10
- *
11
- * The registry is keyed by string `kind`. Two distinct classes registering
12
- * the same `kind` is a programming error and throws.
13
- */
14
- const REGISTRY = new Map();
15
- /**
16
- * Registers a {@link ChannelEmitterClass} so the framework can rebuild
17
- * instances after a workflow step boundary. Call this once at module load
18
- * time, alongside the class definition.
19
- *
20
- * Framework-shipped emitters (Slack, subagent, schedule, http) call this at
21
- * the bottom of their module file. User-authored emitters do the same in
22
- * their channel module so importing the channel file is enough to make the
23
- * emitter discoverable to the runtime codec.
24
- *
25
- * @example
26
- * ```ts
27
- * class MyEmitter implements ChannelEmitter {
28
- * static readonly kind = "my-emitter";
29
- * readonly kind = "my-emitter";
30
- * // ...
31
- * }
32
- * registerChannelEmitter(MyEmitter);
33
- * ```
34
- */
35
- export function registerChannelEmitter(cls) {
36
- if (typeof cls.kind !== "string" || cls.kind.length === 0) {
37
- throw new TypeError("registerChannelEmitter: class must declare a non-empty static `kind` field.");
38
- }
39
- if (typeof cls.deserialize !== "function") {
40
- throw new TypeError(`registerChannelEmitter: class for kind "${cls.kind}" must declare a static \`deserialize\` method.`);
41
- }
42
- const existing = REGISTRY.get(cls.kind);
43
- if (existing !== undefined && existing !== cls) {
44
- throw new Error(`registerChannelEmitter: duplicate registration for kind "${cls.kind}". A different class is already registered.`);
45
- }
46
- REGISTRY.set(cls.kind, cls);
47
- }
48
- /**
49
- * Returns the registered {@link ChannelEmitterClass} for one `kind`, or
50
- * `undefined` if no class has been registered. The codec throws a more
51
- * descriptive error when `undefined` is returned at deserialization time.
52
- */
53
- export function getChannelEmitterClass(kind) {
54
- return REGISTRY.get(kind);
55
- }
56
- /**
57
- * Returns the set of currently-registered emitter kinds. Used by tests and
58
- * by diagnostic tooling that wants to enumerate available emitters.
59
- */
60
- export function listRegisteredChannelEmitterKinds() {
61
- return [...REGISTRY.keys()];
62
- }
63
- //# sourceMappingURL=emitter-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emitter-registry.js","sourceRoot":"","sources":["../../../src/channel/emitter-registry.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;AAExD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,sBAAsB,CAAgC,GAAM;IAC1E,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,SAAS,CACjB,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QAC1C,MAAM,IAAI,SAAS,CACjB,2CAA2C,GAAG,CAAC,IAAI,iDAAiD,CACrG,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,4DAA4D,GAAG,CAAC,IAAI,6CAA6C,CAClH,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iCAAiC;IAC/C,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9B,CAAC"}
@@ -1,16 +0,0 @@
1
- import type { HandleMessageStreamEvent } from "../protocol/message.js";
2
- import type { ChannelEmitter, EventEmitFn } from "./types.js";
3
- /**
4
- * Stateless emitter for the HTTP channel.
5
- *
6
- * Passes every event straight through to the stream. Consumers read events
7
- * from the stream endpoint.
8
- */
9
- export declare class HttpChannelEmitter implements ChannelEmitter {
10
- static readonly kind = "http";
11
- readonly kind = "http";
12
- onEvent(event: HandleMessageStreamEvent, emit: EventEmitFn): Promise<void>;
13
- serialize(): Record<string, unknown>;
14
- static deserialize(_state: Record<string, unknown>): HttpChannelEmitter;
15
- }
16
- //# sourceMappingURL=http-emitter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-emitter.d.ts","sourceRoot":"","sources":["../../../src/channel/http-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IACvD,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,QAAQ,CAAC,IAAI,UAAU;IAEjB,OAAO,CAAC,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhF,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,kBAAkB;CAGxE"}
@@ -1,22 +0,0 @@
1
- import { registerChannelEmitter } from "./emitter-registry.js";
2
- /**
3
- * Stateless emitter for the HTTP channel.
4
- *
5
- * Passes every event straight through to the stream. Consumers read events
6
- * from the stream endpoint.
7
- */
8
- export class HttpChannelEmitter {
9
- static kind = "http";
10
- kind = "http";
11
- async onEvent(event, emit) {
12
- await emit(event);
13
- }
14
- serialize() {
15
- return {};
16
- }
17
- static deserialize(_state) {
18
- return new HttpChannelEmitter();
19
- }
20
- }
21
- registerChannelEmitter(HttpChannelEmitter);
22
- //# sourceMappingURL=http-emitter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-emitter.js","sourceRoot":"","sources":["../../../src/channel/http-emitter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAG/D;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IAC7B,MAAM,CAAU,IAAI,GAAG,MAAM,CAAC;IACrB,IAAI,GAAG,MAAM,CAAC;IAEvB,KAAK,CAAC,OAAO,CAAC,KAA+B,EAAE,IAAiB;QAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,SAAS;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAA+B;QAChD,OAAO,IAAI,kBAAkB,EAAE,CAAC;IAClC,CAAC;;AAGH,sBAAsB,CAAC,kBAAkB,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- import type { HandleMessageStreamEvent } from "../protocol/message.js";
2
- import type { ChannelEmitter, EventEmitFn } from "./types.js";
3
- /**
4
- * Stateless emitter for the schedule channel.
5
- *
6
- * Passes every event straight through to the stream.
7
- */
8
- export declare class ScheduleChannelEmitter implements ChannelEmitter {
9
- static readonly kind = "schedule";
10
- readonly kind = "schedule";
11
- onEvent(event: HandleMessageStreamEvent, emit: EventEmitFn): Promise<void>;
12
- serialize(): Record<string, unknown>;
13
- static deserialize(_state: Record<string, unknown>): ScheduleChannelEmitter;
14
- }
15
- //# sourceMappingURL=schedule-emitter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schedule-emitter.d.ts","sourceRoot":"","sources":["../../../src/channel/schedule-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAc;IAClC,QAAQ,CAAC,IAAI,cAAc;IAErB,OAAO,CAAC,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhF,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,sBAAsB;CAG5E"}
@@ -1,21 +0,0 @@
1
- import { registerChannelEmitter } from "./emitter-registry.js";
2
- /**
3
- * Stateless emitter for the schedule channel.
4
- *
5
- * Passes every event straight through to the stream.
6
- */
7
- export class ScheduleChannelEmitter {
8
- static kind = "schedule";
9
- kind = "schedule";
10
- async onEvent(event, emit) {
11
- await emit(event);
12
- }
13
- serialize() {
14
- return {};
15
- }
16
- static deserialize(_state) {
17
- return new ScheduleChannelEmitter();
18
- }
19
- }
20
- registerChannelEmitter(ScheduleChannelEmitter);
21
- //# sourceMappingURL=schedule-emitter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schedule-emitter.js","sourceRoot":"","sources":["../../../src/channel/schedule-emitter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAG/D;;;;GAIG;AACH,MAAM,OAAO,sBAAsB;IACjC,MAAM,CAAU,IAAI,GAAG,UAAU,CAAC;IACzB,IAAI,GAAG,UAAU,CAAC;IAE3B,KAAK,CAAC,OAAO,CAAC,KAA+B,EAAE,IAAiB;QAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,SAAS;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAA+B;QAChD,OAAO,IAAI,sBAAsB,EAAE,CAAC;IACtC,CAAC;;AAGH,sBAAsB,CAAC,sBAAsB,CAAC,CAAC"}
@@ -1,56 +0,0 @@
1
- import type { SerializedThread } from "chat";
2
- import type { HandleMessageStreamEvent } from "../protocol/message.js";
3
- import type { RuntimeInputRequest, RuntimeInputResult } from "../runtime/input/types.js";
4
- import type { ChannelEmitter, EventEmitFn } from "./types.js";
5
- /**
6
- * Minimal serializable state for the Slack emitter.
7
- */
8
- export interface SlackChannelEmitterState {
9
- readonly botToken?: string;
10
- readonly serializedThread: SerializedThread;
11
- }
12
- /**
13
- * Returns `true` when the lowercased, trimmed text is an affirmative
14
- * response. Used by {@link SlackChannelEmitter.resolveInput} to decide
15
- * whether a Slack reply approves or denies a pending tool call.
16
- */
17
- export declare function isAffirmativeText(text: string): boolean;
18
- /**
19
- * Emitter that rehydrates a Chat SDK `Thread` from serialized state and
20
- * uses `thread.startTyping()` to show typing status with tool names while
21
- * the agent is working, then posts the final reply via `thread.post()`.
22
- */
23
- export declare class SlackChannelEmitter implements ChannelEmitter {
24
- static readonly kind = "slack";
25
- readonly kind = "slack";
26
- private readonly _state;
27
- private _pendingToolCallMessage;
28
- private _thread;
29
- constructor(state: SlackChannelEmitterState);
30
- get botToken(): string | undefined;
31
- get serializedThread(): SerializedThread;
32
- serialize(): Record<string, unknown>;
33
- static deserialize(state: Record<string, unknown>): SlackChannelEmitter;
34
- resolveInput(input: {
35
- readonly message: string;
36
- readonly requests: readonly RuntimeInputRequest[];
37
- }): readonly RuntimeInputResult[] | undefined;
38
- onEvent(event: HandleMessageStreamEvent, emit: EventEmitFn): Promise<void>;
39
- private consumePendingToolCallMessage;
40
- private consumePendingToolCallStatus;
41
- private clearPendingToolCallMessage;
42
- private setPendingToolCallMessage;
43
- private post;
44
- private startTyping;
45
- /**
46
- * Lazily rehydrates the Chat SDK Thread from serialized state.
47
- *
48
- * `@chat-adapter/slack` and `chat` are listed in
49
- * `WORKFLOW_BUILDER_DEFERRED_PACKAGES` so the initial
50
- * `@workflow/builders` pass externalizes them (avoiding `node:*`
51
- * errors in the workflow VM). esbuild's final Vercel-function
52
- * re-bundle resolves and inlines them with `platform: "node"`.
53
- */
54
- private getThread;
55
- }
56
- //# sourceMappingURL=slack-emitter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slack-emitter.d.ts","sourceRoot":"","sources":["../../../src/channel/slack-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAE7C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEzF,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;CAC7C;AAmDD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAmBD;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IACxD,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAW;IAC/B,QAAQ,CAAC,IAAI,WAAW;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,uBAAuB,CAAuB;IACtD,OAAO,CAAC,OAAO,CAAiC;gBAEpC,KAAK,EAAE,wBAAwB;IAI3C,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,IAAI,gBAAgB,IAAI,gBAAgB,CAEvC;IAED,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAOpC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB;IAOvE,YAAY,CAAC,KAAK,EAAE;QAClB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;KACnD,GAAG,SAAS,kBAAkB,EAAE,GAAG,SAAS;IA2CvC,OAAO,CAAC,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAyChF,OAAO,CAAC,6BAA6B;IAMrC,OAAO,CAAC,4BAA4B;IASpC,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,yBAAyB;YAKnB,IAAI;YAWJ,WAAW;IASzB;;;;;;;;OAQG;YACW,SAAS;CAexB"}
@@ -1,235 +0,0 @@
1
- import { registerChannelEmitter } from "./emitter-registry.js";
2
- function labelForAction(action) {
3
- switch (action.kind) {
4
- case "activate-skill":
5
- return "activate-skill";
6
- case "subagent-call":
7
- return action.subagentName;
8
- case "tool-call":
9
- return action.toolName;
10
- }
11
- }
12
- function labelForInputRequest(request) {
13
- switch (request.kind) {
14
- case "question":
15
- return "question";
16
- case "tool-approval":
17
- return request.toolName;
18
- }
19
- }
20
- // ---------------------------------------------------------------------------
21
- // Text classification
22
- // ---------------------------------------------------------------------------
23
- const AFFIRMATIVE_PATTERNS = new Set([
24
- "y",
25
- "yes",
26
- "yeah",
27
- "yep",
28
- "yup",
29
- "ok",
30
- "okay",
31
- "sure",
32
- "approve",
33
- "approved",
34
- "confirm",
35
- "confirmed",
36
- "go",
37
- "go ahead",
38
- "do it",
39
- "proceed",
40
- "accept",
41
- ]);
42
- /**
43
- * Returns `true` when the lowercased, trimmed text is an affirmative
44
- * response. Used by {@link SlackChannelEmitter.resolveInput} to decide
45
- * whether a Slack reply approves or denies a pending tool call.
46
- */
47
- export function isAffirmativeText(text) {
48
- return AFFIRMATIVE_PATTERNS.has(text);
49
- }
50
- function derivePendingToolCallStatus(text) {
51
- const firstLine = text
52
- .split(/\r?\n/u)
53
- .map((line) => line.trim())
54
- .find((line) => line.length > 0);
55
- if (firstLine === undefined) {
56
- return null;
57
- }
58
- return firstLine.replace(/\s+/gu, " ");
59
- }
60
- // ---------------------------------------------------------------------------
61
- // Emitter
62
- // ---------------------------------------------------------------------------
63
- /**
64
- * Emitter that rehydrates a Chat SDK `Thread` from serialized state and
65
- * uses `thread.startTyping()` to show typing status with tool names while
66
- * the agent is working, then posts the final reply via `thread.post()`.
67
- */
68
- export class SlackChannelEmitter {
69
- static kind = "slack";
70
- kind = "slack";
71
- _state;
72
- _pendingToolCallMessage = null;
73
- _thread = null;
74
- constructor(state) {
75
- this._state = state;
76
- }
77
- get botToken() {
78
- return this._state.botToken;
79
- }
80
- get serializedThread() {
81
- return this._state.serializedThread;
82
- }
83
- serialize() {
84
- return {
85
- botToken: this._state.botToken,
86
- serializedThread: this._state.serializedThread,
87
- };
88
- }
89
- static deserialize(state) {
90
- return new SlackChannelEmitter({
91
- botToken: state.botToken,
92
- serializedThread: state.serializedThread,
93
- });
94
- }
95
- resolveInput(input) {
96
- const text = input.message.trim().toLowerCase();
97
- if (text.length === 0) {
98
- return undefined;
99
- }
100
- const approved = isAffirmativeText(text);
101
- const results = [];
102
- for (const request of input.requests) {
103
- if (request.kind === "tool-approval") {
104
- const result = approved
105
- ? { approvalId: request.approvalId, approved: true, kind: "tool-approval-result" }
106
- : {
107
- approvalId: request.approvalId,
108
- approved: false,
109
- kind: "tool-approval-result",
110
- reason: `User replied: "${input.message.trim()}"`,
111
- };
112
- results.push(result);
113
- }
114
- else if (request.kind === "question") {
115
- const matchedOption = request.options?.find((opt) => opt.id.toLowerCase() === text || opt.label.toLowerCase() === text);
116
- if (matchedOption) {
117
- results.push({
118
- callId: request.action.callId,
119
- kind: "question-result",
120
- output: { optionId: matchedOption.id, status: "answered" },
121
- });
122
- }
123
- else if (request.allowFreeform !== false) {
124
- results.push({
125
- callId: request.action.callId,
126
- kind: "question-result",
127
- output: { status: "answered", text: input.message.trim() },
128
- });
129
- }
130
- }
131
- }
132
- return results.length > 0 ? results : undefined;
133
- }
134
- async onEvent(event, emit) {
135
- await emit(event);
136
- switch (event.type) {
137
- case "turn.started":
138
- this.clearPendingToolCallMessage();
139
- await this.startTyping("Thinking…");
140
- break;
141
- case "actions.requested": {
142
- const labels = event.data.actions.map(labelForAction);
143
- await this.startTyping(this.consumePendingToolCallStatus() ?? `Running ${labels.join(", ")}…`);
144
- break;
145
- }
146
- case "input.requested": {
147
- const pendingMessage = this.consumePendingToolCallMessage();
148
- if (pendingMessage !== null) {
149
- await this.post(pendingMessage);
150
- }
151
- const labels = event.data.requests.map(labelForInputRequest);
152
- await this.startTyping(`Waiting on ${labels.join(", ")}…`);
153
- break;
154
- }
155
- case "message.completed":
156
- if (event.data.message !== null) {
157
- if (event.data.finishReason === "tool-calls") {
158
- this.setPendingToolCallMessage(event.data.message);
159
- }
160
- else {
161
- this.clearPendingToolCallMessage();
162
- await this.post(event.data.message);
163
- }
164
- }
165
- break;
166
- case "run.failed":
167
- this.clearPendingToolCallMessage();
168
- await this.post("Something went wrong.");
169
- break;
170
- }
171
- }
172
- consumePendingToolCallMessage() {
173
- const message = this._pendingToolCallMessage;
174
- this._pendingToolCallMessage = null;
175
- return message;
176
- }
177
- consumePendingToolCallStatus() {
178
- const message = this.consumePendingToolCallMessage();
179
- if (message === null) {
180
- return null;
181
- }
182
- return derivePendingToolCallStatus(message);
183
- }
184
- clearPendingToolCallMessage() {
185
- this._pendingToolCallMessage = null;
186
- }
187
- setPendingToolCallMessage(text) {
188
- const normalized = text.trim();
189
- this._pendingToolCallMessage = normalized.length > 0 ? normalized : null;
190
- }
191
- async post(text) {
192
- try {
193
- const thread = await this.getThread();
194
- // Route assistant output through the chat SDK's markdown renderer so
195
- // Slack-native mrkdwn and table blocks are used when available.
196
- await thread.post({ markdown: text });
197
- }
198
- catch (error) {
199
- console.error("[ash] Slack message delivery failed.", error);
200
- }
201
- }
202
- async startTyping(status) {
203
- try {
204
- const thread = await this.getThread();
205
- await thread.startTyping(status);
206
- }
207
- catch {
208
- // Best-effort — not all apps support typing status.
209
- }
210
- }
211
- /**
212
- * Lazily rehydrates the Chat SDK Thread from serialized state.
213
- *
214
- * `@chat-adapter/slack` and `chat` are listed in
215
- * `WORKFLOW_BUILDER_DEFERRED_PACKAGES` so the initial
216
- * `@workflow/builders` pass externalizes them (avoiding `node:*`
217
- * errors in the workflow VM). esbuild's final Vercel-function
218
- * re-bundle resolves and inlines them with `platform: "node"`.
219
- */
220
- async getThread() {
221
- if (this._thread !== null) {
222
- return this._thread;
223
- }
224
- const [slackModule, chatModule] = (await Promise.all([
225
- import("@chat-adapter/slack"),
226
- import("chat"),
227
- ]));
228
- const adapter = slackModule.createSlackAdapter({ botToken: this.botToken });
229
- const thread = chatModule.ThreadImpl.fromJSON(this.serializedThread, adapter);
230
- this._thread = thread;
231
- return thread;
232
- }
233
- }
234
- registerChannelEmitter(SlackChannelEmitter);
235
- //# sourceMappingURL=slack-emitter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slack-emitter.js","sourceRoot":"","sources":["../../../src/channel/slack-emitter.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- import { type HandleMessageStreamEvent } from "../protocol/message.js";
2
- import type { ChannelEmitter, EventEmitFn } from "./types.js";
3
- /**
4
- * Serializable state for the subagent emitter.
5
- *
6
- * Both fields are constant for the lifetime of one child run and are
7
- * round-tripped through the {@link ChannelEmitterKey} codec so the
8
- * emitter can be reconstructed at every workflow step boundary.
9
- */
10
- export interface SubagentChannelEmitterState {
11
- readonly callId: string;
12
- readonly subagentName: string;
13
- }
14
- /**
15
- * Channel emitter attached to a delegated subagent child run.
16
- *
17
- * Wraps every event in a `subagent.event` envelope tagged with the
18
- * child's call id and subagent name and writes the envelope to the
19
- * child's event stream. The parent's subagent tool wrapper drains
20
- * that stream and forwards each pre-wrapped envelope verbatim to its
21
- * own emit function — no envelope-construction logic in the pump.
22
- *
23
- * Holding the wrapping responsibility inside the channel emitter
24
- * (rather than in the parent-side pump) keeps delivery policy in the
25
- * channel layer (CLAUDE.md rule 17) and makes the subagent emitter
26
- * structurally and behaviorally parallel to other channel emitters
27
- * like {@link SlackChannelEmitter} that hold serializable state and
28
- * do real work in `onEvent`.
29
- */
30
- export declare class SubagentChannelEmitter implements ChannelEmitter {
31
- static readonly kind = "subagent";
32
- readonly kind = "subagent";
33
- private readonly _state;
34
- constructor(state: SubagentChannelEmitterState);
35
- get callId(): string;
36
- get subagentName(): string;
37
- onEvent(event: HandleMessageStreamEvent, emit: EventEmitFn): Promise<void>;
38
- serialize(): Record<string, unknown>;
39
- static deserialize(state: Record<string, unknown>): SubagentChannelEmitter;
40
- }
41
- //# sourceMappingURL=subagent-emitter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subagent-emitter.d.ts","sourceRoot":"","sources":["../../../src/channel/subagent-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAc;IAClC,QAAQ,CAAC,IAAI,cAAc;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;gBAEzC,KAAK,EAAE,2BAA2B;IAI9C,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAEK,OAAO,CAAC,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhF,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAOpC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,sBAAsB;CAM3E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"subagent-emitter.js","sourceRoot":"","sources":["../../../src/channel/subagent-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,GAE9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAe/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,sBAAsB;IACjC,MAAM,CAAU,IAAI,GAAG,UAAU,CAAC;IACzB,IAAI,GAAG,UAAU,CAAC;IAEV,MAAM,CAA8B;IAErD,YAAY,KAAkC;QAC5C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAA+B,EAAE,IAAiB;QAC9D,MAAM,IAAI,CACR,6BAA6B,CAAC;YAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,KAAK;YACL,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SACvC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SACvC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,KAA8B;QAC/C,OAAO,IAAI,sBAAsB,CAAC;YAChC,MAAM,EAAE,KAAK,CAAC,MAAgB;YAC9B,YAAY,EAAE,KAAK,CAAC,YAAsB;SAC3C,CAAC,CAAC;IACL,CAAC;;AAGH,sBAAsB,CAAC,sBAAsB,CAAC,CAAC"}
@@ -1,27 +0,0 @@
1
- import type { HarnessSession } from "../harness/types.js";
2
- import type { AshContext } from "./container.js";
3
- /**
4
- * Opaque snapshot returned by {@link hydrateStateKeys} and consumed by
5
- * {@link commitStateKeys} for reference-equality change detection.
6
- */
7
- export type StateSnapshot = ReadonlyMap<string, unknown>;
8
- /**
9
- * Hydrates all registered state keys onto the context from `session.state`.
10
- *
11
- * For each state key in the global registry:
12
- * - If `session.state[key.name]` exists, deserializes it (via codec if present).
13
- * - Otherwise, uses `key.initial()` to produce the default value.
14
- *
15
- * Returns an opaque snapshot used by {@link commitStateKeys} to detect which
16
- * keys were modified during the step.
17
- */
18
- export declare function hydrateStateKeys(ctx: AshContext, session: HarnessSession): Promise<StateSnapshot>;
19
- /**
20
- * Commits modified state keys back to `session.state`.
21
- *
22
- * Compares each state key's current context value against the snapshot taken
23
- * during hydration. Only keys whose value changed (reference inequality) are
24
- * written. Returns the session unchanged when nothing was modified.
25
- */
26
- export declare function commitStateKeys(ctx: AshContext, session: HarnessSession, snapshot: StateSnapshot): HarnessSession;
27
- //# sourceMappingURL=state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/context/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEzD;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,CAcxB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,aAAa,GACtB,cAAc,CAiBhB"}
@@ -1,53 +0,0 @@
1
- import { getStateKeys } from "./key.js";
2
- /**
3
- * Hydrates all registered state keys onto the context from `session.state`.
4
- *
5
- * For each state key in the global registry:
6
- * - If `session.state[key.name]` exists, deserializes it (via codec if present).
7
- * - Otherwise, uses `key.initial()` to produce the default value.
8
- *
9
- * Returns an opaque snapshot used by {@link commitStateKeys} to detect which
10
- * keys were modified during the step.
11
- */
12
- export async function hydrateStateKeys(ctx, session) {
13
- const snapshot = new Map();
14
- for (const key of getStateKeys()) {
15
- const raw = session.state?.[key.name];
16
- let value;
17
- if (raw !== undefined) {
18
- value = key.codec ? await key.codec.deserialize(raw) : raw;
19
- }
20
- else {
21
- value = key.initial?.();
22
- }
23
- ctx.set(key, value);
24
- snapshot.set(key.name, value);
25
- }
26
- return snapshot;
27
- }
28
- /**
29
- * Commits modified state keys back to `session.state`.
30
- *
31
- * Compares each state key's current context value against the snapshot taken
32
- * during hydration. Only keys whose value changed (reference inequality) are
33
- * written. Returns the session unchanged when nothing was modified.
34
- */
35
- export function commitStateKeys(ctx, session, snapshot) {
36
- let newState = null;
37
- for (const key of getStateKeys()) {
38
- if (ctx.has(key)) {
39
- const current = ctx.get(key);
40
- if (current !== snapshot.get(key.name)) {
41
- if (newState === null) {
42
- newState = { ...session.state };
43
- }
44
- newState[key.name] = key.codec ? key.codec.serialize(current) : current;
45
- }
46
- }
47
- }
48
- if (newState !== null) {
49
- return { ...session, state: newState };
50
- }
51
- return session;
52
- }
53
- //# sourceMappingURL=state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/context/state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAQxC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAe,EACf,OAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAc,CAAC;QACnB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1B,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACpB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAe,EACf,OAAuB,EACvB,QAAuB;IAEvB,IAAI,QAAQ,GAAmC,IAAI,CAAC;IACpD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,OAAO,KAAK,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,QAAQ,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClC,CAAC;gBACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}