@relayflows/sdk 2.0.9 → 2.0.11

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 (485) hide show
  1. package/dist/adapters/base.d.ts +46 -0
  2. package/dist/adapters/base.d.ts.map +1 -0
  3. package/dist/adapters/base.js +15 -0
  4. package/dist/adapters/base.js.map +1 -0
  5. package/dist/adapters/claude.d.ts +5 -0
  6. package/dist/adapters/claude.d.ts.map +1 -0
  7. package/dist/adapters/claude.js +44 -0
  8. package/dist/adapters/claude.js.map +1 -0
  9. package/dist/adapters/codex.d.ts +5 -0
  10. package/dist/adapters/codex.d.ts.map +1 -0
  11. package/dist/adapters/codex.js +45 -0
  12. package/dist/adapters/codex.js.map +1 -0
  13. package/dist/adapters/index.d.ts +14 -0
  14. package/dist/adapters/index.d.ts.map +1 -0
  15. package/dist/adapters/index.js +29 -0
  16. package/dist/adapters/index.js.map +1 -0
  17. package/dist/adapters/wrapper.d.ts +12 -0
  18. package/dist/adapters/wrapper.d.ts.map +1 -0
  19. package/dist/adapters/wrapper.js +31 -0
  20. package/dist/adapters/wrapper.js.map +1 -0
  21. package/dist/agent-relay-receipt.d.ts +24 -0
  22. package/dist/agent-relay-receipt.d.ts.map +1 -0
  23. package/dist/agent-relay-receipt.js +66 -0
  24. package/dist/agent-relay-receipt.js.map +1 -0
  25. package/dist/agent-relay-state.d.ts +18 -0
  26. package/dist/agent-relay-state.d.ts.map +1 -0
  27. package/dist/agent-relay-state.js +58 -0
  28. package/dist/agent-relay-state.js.map +1 -0
  29. package/dist/agent-relay-transport.d.ts +31 -0
  30. package/dist/agent-relay-transport.d.ts.map +1 -0
  31. package/dist/agent-relay-transport.js +199 -0
  32. package/dist/agent-relay-transport.js.map +1 -0
  33. package/dist/authored-budget.d.ts +13 -0
  34. package/dist/authored-budget.d.ts.map +1 -0
  35. package/dist/authored-budget.js +78 -0
  36. package/dist/authored-budget.js.map +1 -0
  37. package/dist/authored-flow-error.d.ts +2 -21
  38. package/dist/authored-flow-error.d.ts.map +1 -1
  39. package/dist/authored-flow-error.js +1 -12
  40. package/dist/authored-flow-error.js.map +1 -1
  41. package/dist/authored-flow-executor.d.ts +13 -7
  42. package/dist/authored-flow-executor.d.ts.map +1 -1
  43. package/dist/authored-flow-executor.js +116 -235
  44. package/dist/authored-flow-executor.js.map +1 -1
  45. package/dist/authored-flow-loader.d.ts +10 -1
  46. package/dist/authored-flow-loader.d.ts.map +1 -1
  47. package/dist/authored-flow-loader.js +56 -3
  48. package/dist/authored-flow-loader.js.map +1 -1
  49. package/dist/authored-flow-operation.d.ts +9 -1
  50. package/dist/authored-flow-operation.d.ts.map +1 -1
  51. package/dist/authored-flow-operation.js +35 -4
  52. package/dist/authored-flow-operation.js.map +1 -1
  53. package/dist/authored-helper-effect.d.ts +12 -0
  54. package/dist/authored-helper-effect.d.ts.map +1 -0
  55. package/dist/authored-helper-effect.js +144 -0
  56. package/dist/authored-helper-effect.js.map +1 -0
  57. package/dist/authored-mcp.d.ts +17 -0
  58. package/dist/authored-mcp.d.ts.map +1 -0
  59. package/dist/authored-mcp.js +171 -0
  60. package/dist/authored-mcp.js.map +1 -0
  61. package/dist/authored-memory.d.ts +7 -0
  62. package/dist/authored-memory.d.ts.map +1 -0
  63. package/dist/authored-memory.js +60 -0
  64. package/dist/authored-memory.js.map +1 -0
  65. package/dist/authored-plugin-effect.d.ts +16 -0
  66. package/dist/authored-plugin-effect.d.ts.map +1 -0
  67. package/dist/authored-plugin-effect.js +163 -0
  68. package/dist/authored-plugin-effect.js.map +1 -0
  69. package/dist/authored-step-output.d.ts +23 -0
  70. package/dist/authored-step-output.d.ts.map +1 -0
  71. package/dist/authored-step-output.js +67 -0
  72. package/dist/authored-step-output.js.map +1 -0
  73. package/dist/authored-worker-step.d.ts +15 -0
  74. package/dist/authored-worker-step.d.ts.map +1 -0
  75. package/dist/authored-worker-step.js +136 -0
  76. package/dist/authored-worker-step.js.map +1 -0
  77. package/dist/budget-preflight.d.ts +5 -0
  78. package/dist/budget-preflight.d.ts.map +1 -0
  79. package/dist/budget-preflight.js +33 -0
  80. package/dist/budget-preflight.js.map +1 -0
  81. package/dist/budget.d.ts +14 -0
  82. package/dist/budget.d.ts.map +1 -0
  83. package/dist/budget.js +52 -0
  84. package/dist/budget.js.map +1 -0
  85. package/dist/bundle-transport.d.ts +18 -0
  86. package/dist/bundle-transport.d.ts.map +1 -0
  87. package/dist/bundle-transport.js +111 -0
  88. package/dist/bundle-transport.js.map +1 -0
  89. package/dist/bundle-typescript.d.ts +8 -0
  90. package/dist/bundle-typescript.d.ts.map +1 -0
  91. package/dist/bundle-typescript.js +108 -0
  92. package/dist/bundle-typescript.js.map +1 -0
  93. package/dist/bundle.d.ts +25 -0
  94. package/dist/bundle.d.ts.map +1 -0
  95. package/dist/bundle.js +199 -0
  96. package/dist/bundle.js.map +1 -0
  97. package/dist/child-stop.d.ts +59 -0
  98. package/dist/child-stop.d.ts.map +1 -0
  99. package/dist/child-stop.js +94 -0
  100. package/dist/child-stop.js.map +1 -0
  101. package/dist/cli/add.d.ts +6 -0
  102. package/dist/cli/add.d.ts.map +1 -0
  103. package/dist/cli/add.js +47 -0
  104. package/dist/cli/add.js.map +1 -0
  105. package/dist/cli/build.d.ts +13 -0
  106. package/dist/cli/build.d.ts.map +1 -0
  107. package/dist/cli/build.js +224 -0
  108. package/dist/cli/build.js.map +1 -0
  109. package/dist/cli/bundle-preflight.d.ts +5 -0
  110. package/dist/cli/bundle-preflight.d.ts.map +1 -0
  111. package/dist/cli/bundle-preflight.js +28 -0
  112. package/dist/cli/bundle-preflight.js.map +1 -0
  113. package/dist/cli/check-helper-body.d.ts +4 -0
  114. package/dist/cli/check-helper-body.d.ts.map +1 -0
  115. package/dist/cli/check-helper-body.js +15 -0
  116. package/dist/cli/check-helper-body.js.map +1 -0
  117. package/dist/cli/check-triggers.d.ts +14 -0
  118. package/dist/cli/check-triggers.d.ts.map +1 -0
  119. package/dist/cli/check-triggers.js +37 -0
  120. package/dist/cli/check-triggers.js.map +1 -0
  121. package/dist/cli/check-typescript.d.ts +20 -0
  122. package/dist/cli/check-typescript.d.ts.map +1 -0
  123. package/dist/cli/check-typescript.js +54 -0
  124. package/dist/cli/check-typescript.js.map +1 -0
  125. package/dist/cli/check.d.ts +36 -3
  126. package/dist/cli/check.d.ts.map +1 -1
  127. package/dist/cli/check.js +122 -11
  128. package/dist/cli/check.js.map +1 -1
  129. package/dist/cli/cloud-run.d.ts +8 -0
  130. package/dist/cli/cloud-run.d.ts.map +1 -0
  131. package/dist/cli/cloud-run.js +50 -0
  132. package/dist/cli/cloud-run.js.map +1 -0
  133. package/dist/cli/deploy.d.ts +9 -0
  134. package/dist/cli/deploy.d.ts.map +1 -0
  135. package/dist/cli/deploy.js +58 -0
  136. package/dist/cli/deploy.js.map +1 -0
  137. package/dist/cli/deterministic-failure.d.ts +5 -0
  138. package/dist/cli/deterministic-failure.d.ts.map +1 -0
  139. package/dist/cli/deterministic-failure.js +66 -0
  140. package/dist/cli/deterministic-failure.js.map +1 -0
  141. package/dist/cli/direct-run.d.ts.map +1 -1
  142. package/dist/cli/direct-run.js +83 -18
  143. package/dist/cli/direct-run.js.map +1 -1
  144. package/dist/cli/hn-monitor.d.ts.map +1 -1
  145. package/dist/cli/hn-monitor.js +2 -1
  146. package/dist/cli/hn-monitor.js.map +1 -1
  147. package/dist/cli/replay.d.ts +12 -0
  148. package/dist/cli/replay.d.ts.map +1 -0
  149. package/dist/cli/replay.js +82 -0
  150. package/dist/cli/replay.js.map +1 -0
  151. package/dist/cli/reuse.d.ts +8 -0
  152. package/dist/cli/reuse.d.ts.map +1 -0
  153. package/dist/cli/reuse.js +25 -0
  154. package/dist/cli/reuse.js.map +1 -0
  155. package/dist/cli/run-digest.d.ts +4 -0
  156. package/dist/cli/run-digest.d.ts.map +1 -0
  157. package/dist/cli/run-digest.js +24 -0
  158. package/dist/cli/run-digest.js.map +1 -0
  159. package/dist/cli/run.d.ts +16 -5
  160. package/dist/cli/run.d.ts.map +1 -1
  161. package/dist/cli/run.js +99 -17
  162. package/dist/cli/run.js.map +1 -1
  163. package/dist/cli/serve-webhook.d.ts +40 -0
  164. package/dist/cli/serve-webhook.d.ts.map +1 -0
  165. package/dist/cli/serve-webhook.js +233 -0
  166. package/dist/cli/serve-webhook.js.map +1 -0
  167. package/dist/cli/tick-runner.d.ts.map +1 -1
  168. package/dist/cli/tick-runner.js +2 -1
  169. package/dist/cli/tick-runner.js.map +1 -1
  170. package/dist/cli-adapter.d.ts +8 -14
  171. package/dist/cli-adapter.d.ts.map +1 -1
  172. package/dist/cli-adapter.js +19 -64
  173. package/dist/cli-adapter.js.map +1 -1
  174. package/dist/cli-watch.d.ts +13 -0
  175. package/dist/cli-watch.d.ts.map +1 -0
  176. package/dist/cli-watch.js +185 -0
  177. package/dist/cli-watch.js.map +1 -0
  178. package/dist/cli.d.ts +4 -0
  179. package/dist/cli.d.ts.map +1 -1
  180. package/dist/cli.js +387 -14
  181. package/dist/cli.js.map +1 -1
  182. package/dist/cloud-http.d.ts +22 -0
  183. package/dist/cloud-http.d.ts.map +1 -0
  184. package/dist/cloud-http.js +84 -0
  185. package/dist/cloud-http.js.map +1 -0
  186. package/dist/cloud-run.d.ts +38 -0
  187. package/dist/cloud-run.d.ts.map +1 -0
  188. package/dist/cloud-run.js +112 -0
  189. package/dist/cloud-run.js.map +1 -0
  190. package/dist/compile.d.ts +21 -3
  191. package/dist/compile.d.ts.map +1 -1
  192. package/dist/compile.js +97 -23
  193. package/dist/compile.js.map +1 -1
  194. package/dist/create-flow.d.ts +17 -0
  195. package/dist/create-flow.d.ts.map +1 -0
  196. package/dist/create-flow.js +72 -0
  197. package/dist/create-flow.js.map +1 -0
  198. package/dist/daemon-connection.d.ts +14 -0
  199. package/dist/daemon-connection.d.ts.map +1 -1
  200. package/dist/daemon-connection.js +33 -1
  201. package/dist/daemon-connection.js.map +1 -1
  202. package/dist/demo-hn-monitor.js +2 -1
  203. package/dist/demo-hn-monitor.js.map +1 -1
  204. package/dist/effect-channel.d.ts +30 -0
  205. package/dist/effect-channel.d.ts.map +1 -0
  206. package/dist/effect-channel.js +71 -0
  207. package/dist/effect-channel.js.map +1 -0
  208. package/dist/failure-kinds.d.ts +14 -3
  209. package/dist/failure-kinds.d.ts.map +1 -1
  210. package/dist/failure-kinds.js +27 -0
  211. package/dist/failure-kinds.js.map +1 -1
  212. package/dist/gate-contract.d.ts.map +1 -1
  213. package/dist/gate-contract.js +9 -0
  214. package/dist/gate-contract.js.map +1 -1
  215. package/dist/helper-preflight.d.ts +18 -0
  216. package/dist/helper-preflight.d.ts.map +1 -0
  217. package/dist/helper-preflight.js +32 -0
  218. package/dist/helper-preflight.js.map +1 -0
  219. package/dist/helper-storage.d.ts +5 -0
  220. package/dist/helper-storage.d.ts.map +1 -0
  221. package/dist/helper-storage.js +31 -0
  222. package/dist/helper-storage.js.map +1 -0
  223. package/dist/helper-writeback.d.ts +12 -0
  224. package/dist/helper-writeback.d.ts.map +1 -0
  225. package/dist/helper-writeback.js +95 -0
  226. package/dist/helper-writeback.js.map +1 -0
  227. package/dist/index.d.ts +10 -2
  228. package/dist/index.d.ts.map +1 -1
  229. package/dist/index.js +7 -1
  230. package/dist/index.js.map +1 -1
  231. package/dist/input-binding.d.ts +4 -0
  232. package/dist/input-binding.d.ts.map +1 -0
  233. package/dist/input-binding.js +78 -0
  234. package/dist/input-binding.js.map +1 -0
  235. package/dist/journal-client.d.ts +12 -4
  236. package/dist/journal-client.d.ts.map +1 -1
  237. package/dist/journal-client.js +17 -6
  238. package/dist/journal-client.js.map +1 -1
  239. package/dist/journal-offset.d.ts +3 -0
  240. package/dist/journal-offset.d.ts.map +1 -0
  241. package/dist/journal-offset.js +69 -0
  242. package/dist/journal-offset.js.map +1 -0
  243. package/dist/journal-reader.d.ts +30 -0
  244. package/dist/journal-reader.d.ts.map +1 -0
  245. package/dist/journal-reader.js +156 -0
  246. package/dist/journal-reader.js.map +1 -0
  247. package/dist/json-schema.d.ts +2 -0
  248. package/dist/json-schema.d.ts.map +1 -1
  249. package/dist/json-schema.js +38 -22
  250. package/dist/json-schema.js.map +1 -1
  251. package/dist/llm-worker.d.ts +16 -0
  252. package/dist/llm-worker.d.ts.map +1 -0
  253. package/dist/llm-worker.js +79 -0
  254. package/dist/llm-worker.js.map +1 -0
  255. package/dist/local-agent.d.ts +8 -0
  256. package/dist/local-agent.d.ts.map +1 -0
  257. package/dist/local-agent.js +25 -0
  258. package/dist/local-agent.js.map +1 -0
  259. package/dist/mcp-client.d.ts +15 -0
  260. package/dist/mcp-client.d.ts.map +1 -0
  261. package/dist/mcp-client.js +104 -0
  262. package/dist/mcp-client.js.map +1 -0
  263. package/dist/mcp-config.d.ts +4 -0
  264. package/dist/mcp-config.d.ts.map +1 -0
  265. package/dist/mcp-config.js +61 -0
  266. package/dist/mcp-config.js.map +1 -0
  267. package/dist/mcp-stdio.d.ts +24 -0
  268. package/dist/mcp-stdio.d.ts.map +1 -0
  269. package/dist/mcp-stdio.js +89 -0
  270. package/dist/mcp-stdio.js.map +1 -0
  271. package/dist/model-pricing.d.ts +22 -0
  272. package/dist/model-pricing.d.ts.map +1 -0
  273. package/dist/model-pricing.js +30 -0
  274. package/dist/model-pricing.js.map +1 -0
  275. package/dist/mount-registry.d.ts +9 -0
  276. package/dist/mount-registry.d.ts.map +1 -0
  277. package/dist/mount-registry.js +47 -0
  278. package/dist/mount-registry.js.map +1 -0
  279. package/dist/named-gate-lowering.d.ts +9 -0
  280. package/dist/named-gate-lowering.d.ts.map +1 -0
  281. package/dist/named-gate-lowering.js +152 -0
  282. package/dist/named-gate-lowering.js.map +1 -0
  283. package/dist/named-gates.d.ts +10 -0
  284. package/dist/named-gates.d.ts.map +1 -0
  285. package/dist/named-gates.js +69 -0
  286. package/dist/named-gates.js.map +1 -0
  287. package/dist/observer-link.d.ts +129 -0
  288. package/dist/observer-link.d.ts.map +1 -0
  289. package/dist/observer-link.js +274 -0
  290. package/dist/observer-link.js.map +1 -0
  291. package/dist/plugin-loader.d.ts +13 -0
  292. package/dist/plugin-loader.d.ts.map +1 -0
  293. package/dist/plugin-loader.js +110 -0
  294. package/dist/plugin-loader.js.map +1 -0
  295. package/dist/plugin-manifest.d.ts +27 -0
  296. package/dist/plugin-manifest.d.ts.map +1 -0
  297. package/dist/plugin-manifest.js +89 -0
  298. package/dist/plugin-manifest.js.map +1 -0
  299. package/dist/preflight.d.ts +26 -2
  300. package/dist/preflight.d.ts.map +1 -1
  301. package/dist/preflight.js +175 -1
  302. package/dist/preflight.js.map +1 -1
  303. package/dist/progress.d.ts +14 -0
  304. package/dist/progress.d.ts.map +1 -0
  305. package/dist/progress.js +39 -0
  306. package/dist/progress.js.map +1 -0
  307. package/dist/protocol.d.ts +11 -0
  308. package/dist/protocol.d.ts.map +1 -1
  309. package/dist/pty-sidechannel.d.ts +14 -0
  310. package/dist/pty-sidechannel.d.ts.map +1 -0
  311. package/dist/pty-sidechannel.js +103 -0
  312. package/dist/pty-sidechannel.js.map +1 -0
  313. package/dist/scope-compiler.d.ts +52 -0
  314. package/dist/scope-compiler.d.ts.map +1 -0
  315. package/dist/scope-compiler.js +62 -0
  316. package/dist/scope-compiler.js.map +1 -0
  317. package/dist/slack-preflight.d.ts +6 -0
  318. package/dist/slack-preflight.d.ts.map +1 -0
  319. package/dist/slack-preflight.js +28 -0
  320. package/dist/slack-preflight.js.map +1 -0
  321. package/dist/slack-writeback.d.ts +40 -0
  322. package/dist/slack-writeback.d.ts.map +1 -0
  323. package/dist/slack-writeback.js +60 -0
  324. package/dist/slack-writeback.js.map +1 -0
  325. package/dist/spec.d.ts +134 -4
  326. package/dist/spec.d.ts.map +1 -1
  327. package/dist/spec.js.map +1 -1
  328. package/dist/step-dependencies.d.ts.map +1 -1
  329. package/dist/step-dependencies.js +2 -1
  330. package/dist/step-dependencies.js.map +1 -1
  331. package/dist/step-fields.d.ts +4 -4
  332. package/dist/step-fields.d.ts.map +1 -1
  333. package/dist/step-fields.js +5 -2
  334. package/dist/step-fields.js.map +1 -1
  335. package/dist/trigger-executor.d.ts +7 -0
  336. package/dist/trigger-executor.d.ts.map +1 -0
  337. package/dist/trigger-executor.js +35 -0
  338. package/dist/trigger-executor.js.map +1 -0
  339. package/dist/validate.d.ts.map +1 -1
  340. package/dist/validate.js +53 -6
  341. package/dist/validate.js.map +1 -1
  342. package/dist/webhook-rate-limit.d.ts +29 -0
  343. package/dist/webhook-rate-limit.d.ts.map +1 -0
  344. package/dist/webhook-rate-limit.js +38 -0
  345. package/dist/webhook-rate-limit.js.map +1 -0
  346. package/dist/webhook-signature.d.ts +22 -0
  347. package/dist/webhook-signature.d.ts.map +1 -0
  348. package/dist/webhook-signature.js +53 -0
  349. package/dist/webhook-signature.js.map +1 -0
  350. package/dist/worker-cli.d.ts +16 -1
  351. package/dist/worker-cli.d.ts.map +1 -1
  352. package/dist/worker-cli.js +129 -12
  353. package/dist/worker-cli.js.map +1 -1
  354. package/dist/worker-input.d.ts +4 -0
  355. package/dist/worker-input.d.ts.map +1 -0
  356. package/dist/worker-input.js +14 -0
  357. package/dist/worker-input.js.map +1 -0
  358. package/dist/worker-lease.d.ts +5 -0
  359. package/dist/worker-lease.d.ts.map +1 -0
  360. package/dist/worker-lease.js +80 -0
  361. package/dist/worker-lease.js.map +1 -0
  362. package/dist/worker-spend.d.ts +19 -0
  363. package/dist/worker-spend.d.ts.map +1 -0
  364. package/dist/worker-spend.js +22 -0
  365. package/dist/worker-spend.js.map +1 -0
  366. package/dist/worker-usage.d.ts +7 -0
  367. package/dist/worker-usage.d.ts.map +1 -0
  368. package/dist/worker-usage.js +54 -0
  369. package/dist/worker-usage.js.map +1 -0
  370. package/dist/worker.d.ts +2 -0
  371. package/dist/worker.d.ts.map +1 -1
  372. package/dist/worker.js +29 -9
  373. package/dist/worker.js.map +1 -1
  374. package/dist/wrapper-session.d.ts +1 -1
  375. package/dist/wrapper-session.d.ts.map +1 -1
  376. package/dist/wrapper-session.js +56 -19
  377. package/dist/wrapper-session.js.map +1 -1
  378. package/dist/yaml-helper-effect.d.ts +8 -0
  379. package/dist/yaml-helper-effect.d.ts.map +1 -0
  380. package/dist/yaml-helper-effect.js +79 -0
  381. package/dist/yaml-helper-effect.js.map +1 -0
  382. package/dist/yaml-helpers.d.ts +18 -0
  383. package/dist/yaml-helpers.d.ts.map +1 -0
  384. package/dist/yaml-helpers.js +116 -0
  385. package/dist/yaml-helpers.js.map +1 -0
  386. package/package.json +19 -2
  387. package/src/adapters/base.ts +53 -0
  388. package/src/adapters/claude.ts +55 -0
  389. package/src/adapters/codex.ts +56 -0
  390. package/src/adapters/index.ts +36 -0
  391. package/src/adapters/wrapper.ts +42 -0
  392. package/src/agent-relay-receipt.ts +120 -0
  393. package/src/agent-relay-state.ts +73 -0
  394. package/src/agent-relay-transport.ts +273 -0
  395. package/src/authored-budget.ts +69 -0
  396. package/src/authored-flow-error.ts +10 -10
  397. package/src/authored-flow-executor.ts +171 -347
  398. package/src/authored-flow-loader.ts +60 -3
  399. package/src/authored-flow-operation.ts +38 -5
  400. package/src/authored-helper-effect.ts +143 -0
  401. package/src/authored-mcp.ts +166 -0
  402. package/src/authored-memory.ts +55 -0
  403. package/src/authored-plugin-effect.ts +152 -0
  404. package/src/authored-step-output.ts +107 -0
  405. package/src/authored-worker-step.ts +181 -0
  406. package/src/budget-preflight.ts +31 -0
  407. package/src/budget.ts +49 -0
  408. package/src/bundle-transport.ts +79 -0
  409. package/src/bundle-typescript.ts +98 -0
  410. package/src/bundle.ts +182 -0
  411. package/src/child-stop.ts +138 -0
  412. package/src/cli/add.ts +45 -0
  413. package/src/cli/build.ts +214 -0
  414. package/src/cli/bundle-preflight.ts +28 -0
  415. package/src/cli/check-helper-body.ts +14 -0
  416. package/src/cli/check-triggers.ts +41 -0
  417. package/src/cli/check-typescript.ts +63 -0
  418. package/src/cli/check.ts +132 -14
  419. package/src/cli/cloud-run.ts +47 -0
  420. package/src/cli/deploy.ts +52 -0
  421. package/src/cli/deterministic-failure.ts +69 -0
  422. package/src/cli/direct-run.ts +79 -18
  423. package/src/cli/hn-monitor.ts +2 -1
  424. package/src/cli/replay.ts +81 -0
  425. package/src/cli/reuse.ts +23 -0
  426. package/src/cli/run-digest.ts +24 -0
  427. package/src/cli/run.ts +104 -21
  428. package/src/cli/serve-webhook.ts +246 -0
  429. package/src/cli/tick-runner.ts +2 -1
  430. package/src/cli-adapter.ts +31 -74
  431. package/src/cli-watch.ts +174 -0
  432. package/src/cli.ts +396 -17
  433. package/src/cloud-http.ts +100 -0
  434. package/src/cloud-run.ts +137 -0
  435. package/src/compile.ts +102 -23
  436. package/src/create-flow.ts +82 -0
  437. package/src/daemon-connection.ts +32 -1
  438. package/src/demo-hn-monitor.ts +2 -1
  439. package/src/effect-channel.ts +97 -0
  440. package/src/failure-kinds.ts +38 -0
  441. package/src/gate-contract.ts +7 -0
  442. package/src/helper-preflight.ts +34 -0
  443. package/src/helper-storage.ts +23 -0
  444. package/src/helper-writeback.ts +83 -0
  445. package/src/index.ts +26 -0
  446. package/src/input-binding.ts +76 -0
  447. package/src/journal-client.ts +20 -7
  448. package/src/journal-offset.ts +60 -0
  449. package/src/journal-reader.ts +165 -0
  450. package/src/json-schema.ts +34 -18
  451. package/src/llm-worker.ts +82 -0
  452. package/src/local-agent.ts +30 -0
  453. package/src/mcp-client.ts +97 -0
  454. package/src/mcp-config.ts +42 -0
  455. package/src/mcp-stdio.ts +84 -0
  456. package/src/model-pricing.ts +32 -0
  457. package/src/mount-registry.ts +44 -0
  458. package/src/named-gate-lowering.ts +147 -0
  459. package/src/named-gates.ts +76 -0
  460. package/src/observer-link.ts +368 -0
  461. package/src/plugin-loader.ts +88 -0
  462. package/src/plugin-manifest.ts +76 -0
  463. package/src/preflight.ts +178 -4
  464. package/src/progress.ts +51 -0
  465. package/src/protocol.ts +12 -0
  466. package/src/pty-sidechannel.ts +92 -0
  467. package/src/scope-compiler.ts +105 -0
  468. package/src/slack-preflight.ts +25 -0
  469. package/src/slack-writeback.ts +63 -0
  470. package/src/spec.ts +112 -4
  471. package/src/step-dependencies.ts +3 -1
  472. package/src/step-fields.ts +5 -2
  473. package/src/trigger-executor.ts +34 -0
  474. package/src/validate.ts +47 -6
  475. package/src/webhook-rate-limit.ts +69 -0
  476. package/src/webhook-signature.ts +74 -0
  477. package/src/worker-cli.ts +150 -11
  478. package/src/worker-input.ts +15 -0
  479. package/src/worker-lease.ts +85 -0
  480. package/src/worker-spend.ts +23 -0
  481. package/src/worker-usage.ts +48 -0
  482. package/src/worker.ts +34 -10
  483. package/src/wrapper-session.ts +50 -15
  484. package/src/yaml-helper-effect.ts +78 -0
  485. package/src/yaml-helpers.ts +131 -0
@@ -0,0 +1,199 @@
1
+ import { createHash } from "node:crypto";
2
+ import { isIP } from "node:net";
3
+ import { setTimeout as delay } from "node:timers/promises";
4
+ import { claimRelayTask } from "./agent-relay-state.js";
5
+ import { canonicalize } from "./canonical.js";
6
+ import { isRecord, nonempty, readTaskReceipt, } from "./agent-relay-receipt.js";
7
+ export class AgentRelayTransportError extends Error {
8
+ cause;
9
+ constructor(message, cause) {
10
+ super(message);
11
+ this.cause = cause;
12
+ this.name = "AgentRelayTransportError";
13
+ }
14
+ }
15
+ export function readAgentRelayEnv(env = process.env) {
16
+ const agentToken = env.RELAY_AGENT_TOKEN?.trim();
17
+ if (!agentToken)
18
+ throw new AgentRelayTransportError("Relay task transport requires a pre-provisioned RELAY_AGENT_TOKEN.");
19
+ return {
20
+ baseUrl: env.RELAY_BASE_URL?.trim() || "https://cast.agentrelay.com",
21
+ agentToken,
22
+ };
23
+ }
24
+ /** Exact Relaycast #436 HTTP contract. Only terminal GET receipts can return. */
25
+ export async function runAgentRelayTask(request, options = {}) {
26
+ const env = options.agentToken
27
+ ? {
28
+ baseUrl: options.baseUrl || "https://cast.agentrelay.com",
29
+ agentToken: options.agentToken,
30
+ }
31
+ : { ...readAgentRelayEnv(), ...options };
32
+ const base = new URL(env.baseUrl);
33
+ if (base.username ||
34
+ base.password ||
35
+ base.search ||
36
+ base.hash ||
37
+ base.pathname !== "/" ||
38
+ !["https:", "http:"].includes(base.protocol))
39
+ throw new AgentRelayTransportError("Invalid Relay task base URL");
40
+ const loopback = base.hostname === "[::1]" ||
41
+ (isIP(base.hostname) === 4 && base.hostname.startsWith("127."));
42
+ if (base.protocol !== "https:" && !loopback) {
43
+ throw new AgentRelayTransportError("Relay task credentials require HTTPS outside literal loopback addresses");
44
+ }
45
+ const baseUrl = base.origin;
46
+ const timeoutMs = request.timeoutMs ?? 86_400_000;
47
+ if (!Number.isSafeInteger(timeoutMs) ||
48
+ timeoutMs < 1 ||
49
+ timeoutMs > 86_400_000 ||
50
+ ![
51
+ request.runId,
52
+ request.stepId,
53
+ request.idempotencyKey,
54
+ request.dataDir,
55
+ request.cli,
56
+ ].every(nonempty)) {
57
+ throw new AgentRelayTransportError("Relay task requires durable dispatch identity and a valid deadline");
58
+ }
59
+ const pollMs = options.pollMs ?? 1000;
60
+ if (!Number.isFinite(pollMs) || pollMs < 1)
61
+ throw new AgentRelayTransportError("Invalid Relay task polling interval");
62
+ const doFetch = options.fetch ?? globalThis.fetch;
63
+ const outer = options.signal ?? new AbortController().signal;
64
+ let deadline = Date.now() + timeoutMs + 30_000;
65
+ let missingDeadline = Date.now() + 30_000;
66
+ async function http(path, body) {
67
+ for (;;) {
68
+ outer.throwIfAborted();
69
+ if (Date.now() >= deadline)
70
+ throw new AgentRelayTransportError("Relay task status unavailable before its reconciliation deadline");
71
+ const bounded = AbortSignal.any([
72
+ outer,
73
+ AbortSignal.timeout(Math.min(15_000, Math.max(1, deadline - Date.now()))),
74
+ ]);
75
+ let response;
76
+ let value;
77
+ try {
78
+ response = await doFetch(new URL(path, baseUrl), {
79
+ method: body === undefined ? "GET" : "POST",
80
+ redirect: "error",
81
+ signal: bounded,
82
+ headers: {
83
+ authorization: `Bearer ${env.agentToken}`,
84
+ "content-type": "application/json",
85
+ ...(body === undefined
86
+ ? {}
87
+ : { "Idempotency-Key": request.idempotencyKey }),
88
+ },
89
+ ...(body === undefined ? {} : { body: canonicalize(body) }),
90
+ });
91
+ if (response.status === 404 &&
92
+ body === undefined &&
93
+ path.includes("/invocations/")) {
94
+ if (Date.now() >= missingDeadline)
95
+ throw new AgentRelayTransportError("Relay task dispatch remains unconfirmed; no repeat POST is permitted");
96
+ }
97
+ else if (!response.ok &&
98
+ response.status !== 429 &&
99
+ response.status < 500) {
100
+ // Never copy untrusted response bodies, URLs, or tokens into diagnostics.
101
+ throw new AgentRelayTransportError(`Relay task request refused with HTTP ${response.status}`);
102
+ }
103
+ if (response.ok)
104
+ value = await response.json();
105
+ if (body !== undefined && !response.ok)
106
+ return {}; // ambiguous POST: GET only below
107
+ }
108
+ catch (error) {
109
+ outer.throwIfAborted();
110
+ if (error instanceof AgentRelayTransportError)
111
+ throw error;
112
+ if (body !== undefined)
113
+ return {}; // response loss or invalid JSON never causes another POST
114
+ if (response?.ok && !bounded.aborted)
115
+ throw new AgentRelayTransportError("Relay task response was not valid JSON");
116
+ }
117
+ outer.throwIfAborted();
118
+ if (response?.ok && value !== undefined) {
119
+ if (!isRecord(value) || value.ok !== true || !isRecord(value.data))
120
+ throw new AgentRelayTransportError("Relay task response has an invalid data envelope");
121
+ return value.data;
122
+ }
123
+ await delay(pollMs, undefined, { signal: outer });
124
+ }
125
+ }
126
+ // Resolving the agent is read-only. Pin identity before any invocation so a
127
+ // restarted runner cannot create a second task using another caller's key.
128
+ const agent = await http("/v1/agent");
129
+ if (!nonempty(agent.id))
130
+ throw new AgentRelayTransportError("Relay task caller identity is missing");
131
+ if (!nonempty(agent.workspace_id))
132
+ throw new AgentRelayTransportError("Relay task workspace identity is missing");
133
+ // Pinned action-invoke-v1 identity contract from Relaycast #436.
134
+ const invocationId = "inv_idem_" +
135
+ createHash("sha256")
136
+ .update([
137
+ "action-invoke-v1",
138
+ agent.workspace_id,
139
+ agent.id,
140
+ "task.run",
141
+ request.idempotencyKey,
142
+ ].join("\0"))
143
+ .digest("hex");
144
+ const input = {
145
+ cli: request.cli,
146
+ task: request.task,
147
+ ...(request.model === undefined ? {} : { model: request.model }),
148
+ ...(request.worker_cwd === undefined
149
+ ? {}
150
+ : { worker_cwd: request.worker_cwd }),
151
+ ...(request.result_schema === undefined
152
+ ? {}
153
+ : { result_schema: request.result_schema }),
154
+ task_context: {
155
+ run_id: request.runId,
156
+ step_id: request.stepId,
157
+ dispatch_id: request.idempotencyKey,
158
+ timeout_ms: timeoutMs,
159
+ },
160
+ };
161
+ const { claim, created } = await claimRelayTask(request.dataDir, {
162
+ version: 1,
163
+ baseUrl,
164
+ callerId: agent.id,
165
+ workspaceId: agent.workspace_id,
166
+ invocationId,
167
+ runId: request.runId,
168
+ stepId: request.stepId,
169
+ idempotencyKey: request.idempotencyKey,
170
+ input,
171
+ startedAt: Date.now(),
172
+ });
173
+ // A restarted runner may recover a terminal receipt after the task deadline.
174
+ // Give that read one bounded window; never reopen or extend the remote task.
175
+ deadline = Math.max(claim.startedAt + timeoutMs + 30_000, Date.now() + 15_000);
176
+ missingDeadline = claim.startedAt + 30_000;
177
+ if (created) {
178
+ const ack = await http("/v1/actions/task.run/invoke", { input });
179
+ if (Object.keys(ack).length &&
180
+ (ack.invocation_id !== invocationId ||
181
+ ack.action_name !== "task.run" ||
182
+ canonicalize(ack.input) !== canonicalize(input))) {
183
+ throw new AgentRelayTransportError("Relay task acknowledgment has mismatched invocation or input");
184
+ }
185
+ }
186
+ let previous;
187
+ for (;;) {
188
+ const value = await http(`/v1/actions/task.run/invocations/${encodeURIComponent(invocationId)}`);
189
+ if (value.caller_id !== agent.id)
190
+ throw new AgentRelayTransportError("Relay task receipt belongs to another caller");
191
+ const receipt = readTaskReceipt(value, invocationId, input, previous);
192
+ outer.throwIfAborted();
193
+ if (receipt.status === "completed" || receipt.status === "failed")
194
+ return receipt;
195
+ previous = receipt;
196
+ await delay(pollMs, undefined, { signal: outer });
197
+ }
198
+ }
199
+ //# sourceMappingURL=agent-relay-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-relay-transport.js","sourceRoot":"","sources":["../src/agent-relay-transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { JournalClient } from './journal-client.js';
2
+ import type { RunOutcome } from './protocol.js';
3
+ import type { KernelRunSpec } from './spec.js';
4
+ /** Serialized admission for the internal authored runner's separate step runs. */
5
+ export declare class AuthoredBudget {
6
+ private readonly limit;
7
+ private failed;
8
+ private tail;
9
+ private charges;
10
+ constructor(header: unknown);
11
+ execute<T>(journal: JournalClient, spec: KernelRunSpec, consume: (outcome: RunOutcome) => Promise<T>): Promise<T>;
12
+ }
13
+ //# sourceMappingURL=authored-budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-budget.d.ts","sourceRoot":"","sources":["../src/authored-budget.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAoB,aAAa,EAAE,MAAM,WAAW,CAAC;AAEjE,kFAAkF;AAClF,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IACrD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,OAAO,CAAmF;gBAEtF,MAAM,EAAE,OAAO;IASrB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CA8CxH"}
@@ -0,0 +1,78 @@
1
+ import { BudgetSyntaxError, parseBudget, toKernelBudget } from './budget.js';
2
+ import { AuthoredFlowExecutionError } from './authored-flow-error.js';
3
+ /** Serialized admission for the internal authored runner's separate step runs. */
4
+ export class AuthoredBudget {
5
+ limit;
6
+ failed = false;
7
+ tail = Promise.resolve();
8
+ charges = [];
9
+ constructor(header) {
10
+ try {
11
+ this.limit = header === undefined ? undefined : toKernelBudget(parseBudget(header));
12
+ }
13
+ catch (error) {
14
+ if (error instanceof BudgetSyntaxError)
15
+ throw new AuthoredFlowExecutionError('budget_syntax_invalid', error.message);
16
+ throw error;
17
+ }
18
+ }
19
+ async execute(journal, spec, consume) {
20
+ if (this.limit === undefined)
21
+ return consume(await journal.runStart(spec));
22
+ const previous = this.tail;
23
+ let release;
24
+ this.tail = new Promise(resolve => { release = resolve; });
25
+ await previous;
26
+ try {
27
+ if (this.failed)
28
+ throw new AuthoredFlowExecutionError('step_failed', 'A prior budgeted step did not finish successfully.');
29
+ // Window selection follows journal timestamps, never the SDK host clock.
30
+ const day = this.charges.at(-1)?.day;
31
+ const total = this.charges.filter(c => this.limit.window !== 'day' || c.day === day)
32
+ .reduce((s, c) => ({ input: s.input + c.input, output: s.output + c.output, micro: s.micro + c.micro, ms: s.ms + c.ms }), { input: 0n, output: 0n, micro: 0n, ms: 0n });
33
+ const exactNumber = (n) => { if (n > BigInt(Number.MAX_SAFE_INTEGER))
34
+ throw new Error('budget counter overflow'); return Number(n); };
35
+ const outcome = await journal.runStart({ ...spec, budget: { ...this.limit, prior_spend: {
36
+ tokens_in: exactNumber(total.input), tokens_out: exactNumber(total.output),
37
+ dollars: `${total.micro / 1000000n}.${String(total.micro % 1000000n).padStart(6, '0')}`,
38
+ wallclock_ms: exactNumber(total.ms), ...(this.limit.window === 'day' && day !== undefined ? { day } : {}),
39
+ } } });
40
+ try {
41
+ if (outcome.completion_reason === 'budget_exceeded')
42
+ throw new AuthoredFlowExecutionError('step_failed', 'Flow budget exceeded before the next step.', 'budget_exceeded', outcome.run_id);
43
+ return await consume(outcome);
44
+ }
45
+ finally {
46
+ let seq = 1;
47
+ for (;;) {
48
+ const { entries } = await journal.journalRead(outcome.run_id, seq);
49
+ if (entries.length === 0)
50
+ break;
51
+ for (const raw of entries) {
52
+ const e = raw;
53
+ seq = e.seq + 1;
54
+ if (!['step.completed', 'memory.injected'].includes(e.entry_type))
55
+ continue;
56
+ const b = e.payload.budget;
57
+ if (b === undefined)
58
+ throw new Error('journal completion missing budget');
59
+ const [whole, fraction = ''] = b.dollars.split('.');
60
+ if (fraction.length > 6 && /[1-9]/.test(fraction.slice(6)))
61
+ throw new Error('budget accounting requires microdollar precision');
62
+ this.charges.push({ input: BigInt(b.tokens_in), output: BigInt(b.tokens_out),
63
+ micro: BigInt(whole) * 1000000n + BigInt(fraction.slice(0, 6).padEnd(6, '0')),
64
+ ms: BigInt(e.payload.spend?.wallclock_ms ?? 0), day: Math.floor(e.at_ms / 86_400_000) });
65
+ }
66
+ }
67
+ }
68
+ }
69
+ catch (error) {
70
+ this.failed = true;
71
+ throw error;
72
+ }
73
+ finally {
74
+ release();
75
+ }
76
+ }
77
+ }
78
+ //# sourceMappingURL=authored-budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-budget.js","sourceRoot":"","sources":["../src/authored-budget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAKtE,kFAAkF;AAClF,MAAM,OAAO,cAAc;IACR,KAAK,CAA+B;IAC7C,MAAM,GAAG,KAAK,CAAC;IACf,IAAI,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3C,OAAO,GAAgF,EAAE,CAAC;IAElG,YAAY,MAAe;QACzB,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iBAAiB;gBAAE,MAAM,IAAI,0BAA0B,CAAC,uBAAuB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACrH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,OAAsB,EAAE,IAAmB,EAAE,OAA4C;QACxG,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,QAAQ,CAAC;QACf,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,0BAA0B,CAAC,aAAa,EAAE,oDAAoD,CAAC,CAAC;YAC3H,yEAAyE;YACzE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAM,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;iBAClF,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EACtH,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAClD,MAAM,WAAW,GAAG,CAAC,CAAS,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9I,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;wBACtF,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;wBAC1E,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,QAAU,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,QAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;wBAC3F,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC1G,EAAE,EAAE,CAAC,CAAC;YACP,IAAI,CAAC;gBACH,IAAI,OAAO,CAAC,iBAAiB,KAAK,iBAAiB;oBAAE,MAAM,IAAI,0BAA0B,CAAC,aAAa,EAAE,4CAA4C,EAAE,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC1L,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;oBAAS,CAAC;gBACT,IAAI,GAAG,GAAG,CAAC,CAAC;gBACZ,SAAS,CAAC;oBACR,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBACnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;wBAAE,MAAM;oBAChC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;wBAC1B,MAAM,CAAC,GAAG,GAAqK,CAAC;wBAChL,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;wBAChB,IAAI,CAAC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;4BAAE,SAAS;wBAC5E,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;wBAC3B,IAAI,CAAC,KAAK,SAAS;4BAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;wBAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACpD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;wBAChI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;4BACzE,KAAK,EAAE,MAAM,CAAC,KAAM,CAAC,GAAG,QAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;4BAChF,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,EAAC,CAAC,CAAC;oBAC5F,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;IAC1B,CAAC;CACF"}
@@ -1,28 +1,9 @@
1
- import type { CheckFailureKind } from './failure-kinds.js';
2
1
  import type { CompletionReason as ProtocolCompletionReason, RunCompletionReason as ProtocolRunCompletionReason } from './protocol.js';
3
- export type AuthoredFlowExecutionErrorCode = 'agent_cli_unresolved' | 'agent_parked' | 'duplicate_completion' | 'journal_protocol_violation' | 'missing_completion' | 'operation_after_completion' | 'operation_callback_failed' | 'step_failed' | 'unsupported_completion' | 'unsupported_gate' | 'unsupported_header' | 'unsettled_derived_work' | 'unsupported_promise_lifecycle' | 'unsupported_workspace_permission' | 'unawaited_step' | 'unsupported_verb';
2
+ export type AuthoredFlowExecutionErrorCode = 'helper_provider.mount_required' | 'helper_provider.unsupported' | 'helper_slack.credential_missing' | 'helper_slack.mount_required' | 'budget_syntax_invalid' | 'budget_missing_price' | 'agent_cli_unresolved' | 'agent_parked' | 'llm_cli_unresolved' | 'llm_parked' | 'duplicate_completion' | 'journal_protocol_violation' | 'missing_completion' | 'memory_unreachable' | 'operation_after_completion' | 'operation_callback_failed' | 'step_failed' | 'lease_exceeded' | 'unsupported_completion' | 'unsupported_gate' | 'unsupported_header' | 'unsettled_derived_work' | 'unsupported_promise_lifecycle' | 'unsupported_workspace_permission' | 'unawaited_step' | 'unsupported_verb';
4
3
  export declare class AuthoredFlowExecutionError extends Error {
5
4
  readonly code: AuthoredFlowExecutionErrorCode;
6
5
  readonly completionReason?: (ProtocolCompletionReason | ProtocolRunCompletionReason) | undefined;
7
6
  readonly runId?: string | undefined;
8
- /**
9
- * Set only for `code === 'agent_cli_unresolved'`: the specific preflight
10
- * refusal kind (`cli_missing`, `model_unknown`, `model_unavailable`, ...)
11
- * `checkAuthoredFlow` actually produced, so a caller can distinguish a bad
12
- * model declaration from a missing CLI the same way the declarative
13
- * `flows check` path's `report.diagnostics[].kind` already lets it —
14
- * collapsing every refusal to one generic code would lose that taxonomy.
15
- */
16
- readonly refusalKind?: CheckFailureKind | undefined;
17
- constructor(code: AuthoredFlowExecutionErrorCode, message: string, completionReason?: (ProtocolCompletionReason | ProtocolRunCompletionReason) | undefined, runId?: string | undefined,
18
- /**
19
- * Set only for `code === 'agent_cli_unresolved'`: the specific preflight
20
- * refusal kind (`cli_missing`, `model_unknown`, `model_unavailable`, ...)
21
- * `checkAuthoredFlow` actually produced, so a caller can distinguish a bad
22
- * model declaration from a missing CLI the same way the declarative
23
- * `flows check` path's `report.diagnostics[].kind` already lets it —
24
- * collapsing every refusal to one generic code would lose that taxonomy.
25
- */
26
- refusalKind?: CheckFailureKind | undefined);
7
+ constructor(code: AuthoredFlowExecutionErrorCode, message: string, completionReason?: (ProtocolCompletionReason | ProtocolRunCompletionReason) | undefined, runId?: string | undefined);
27
8
  }
28
9
  //# sourceMappingURL=authored-flow-error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authored-flow-error.d.ts","sourceRoot":"","sources":["../src/authored-flow-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EACV,gBAAgB,IAAI,wBAAwB,EAC5C,mBAAmB,IAAI,2BAA2B,EACnD,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,8BAA8B,GACtC,sBAAsB,GACtB,cAAc,GACd,sBAAsB,GACtB,4BAA4B,GAC5B,oBAAoB,GACpB,4BAA4B,GAC5B,2BAA2B,GAC3B,aAAa,GACb,wBAAwB,GACxB,kBAAkB,GAClB,oBAAoB,GACpB,wBAAwB,GACxB,+BAA+B,GAC/B,kCAAkC,GAClC,gBAAgB,GAChB,kBAAkB,CAAC;AAEvB,qBAAa,0BAA2B,SAAQ,KAAK;IAEjD,QAAQ,CAAC,IAAI,EAAE,8BAA8B;IAE7C,QAAQ,CAAC,gBAAgB,CAAC,GAAE,wBAAwB,GAAG,2BAA2B;IAClF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM;IACvB;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB;gBAZ9B,IAAI,EAAE,8BAA8B,EAC7C,OAAO,EAAE,MAAM,EACN,gBAAgB,CAAC,GAAE,wBAAwB,GAAG,2BAA2B,aAAA,EACzE,KAAK,CAAC,EAAE,MAAM,YAAA;IACvB;;;;;;;OAOG;IACM,WAAW,CAAC,EAAE,gBAAgB,YAAA;CAK1C"}
1
+ {"version":3,"file":"authored-flow-error.d.ts","sourceRoot":"","sources":["../src/authored-flow-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,IAAI,wBAAwB,EAC5C,mBAAmB,IAAI,2BAA2B,EACnD,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,8BAA8B,GACtC,gCAAgC,GAChC,6BAA6B,GAC7B,iCAAiC,GACjC,6BAA6B,GAC7B,uBAAuB,GACvB,sBAAsB,GACtB,sBAAsB,GACtB,cAAc,GACd,oBAAoB,GACpB,YAAY,GACZ,sBAAsB,GACtB,4BAA4B,GAC5B,oBAAoB,GACpB,oBAAoB,GACpB,4BAA4B,GAC5B,2BAA2B,GAC3B,aAAa,GACb,gBAAgB,GAChB,wBAAwB,GACxB,kBAAkB,GAClB,oBAAoB,GACpB,wBAAwB,GACxB,+BAA+B,GAC/B,kCAAkC,GAClC,gBAAgB,GAChB,kBAAkB,CAAC;AAEvB,qBAAa,0BAA2B,SAAQ,KAAK;IAEjD,QAAQ,CAAC,IAAI,EAAE,8BAA8B;IAE7C,QAAQ,CAAC,gBAAgB,CAAC,GAAE,wBAAwB,GAAG,2BAA2B;IAClF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM;gBAHd,IAAI,EAAE,8BAA8B,EAC7C,OAAO,EAAE,MAAM,EACN,gBAAgB,CAAC,GAAE,wBAAwB,GAAG,2BAA2B,aAAA,EACzE,KAAK,CAAC,EAAE,MAAM,YAAA;CAK1B"}
@@ -2,22 +2,11 @@ export class AuthoredFlowExecutionError extends Error {
2
2
  code;
3
3
  completionReason;
4
4
  runId;
5
- refusalKind;
6
- constructor(code, message, completionReason, runId,
7
- /**
8
- * Set only for `code === 'agent_cli_unresolved'`: the specific preflight
9
- * refusal kind (`cli_missing`, `model_unknown`, `model_unavailable`, ...)
10
- * `checkAuthoredFlow` actually produced, so a caller can distinguish a bad
11
- * model declaration from a missing CLI the same way the declarative
12
- * `flows check` path's `report.diagnostics[].kind` already lets it —
13
- * collapsing every refusal to one generic code would lose that taxonomy.
14
- */
15
- refusalKind) {
5
+ constructor(code, message, completionReason, runId) {
16
6
  super(`${code}: ${message}`);
17
7
  this.code = code;
18
8
  this.completionReason = completionReason;
19
9
  this.runId = runId;
20
- this.refusalKind = refusalKind;
21
10
  this.name = 'AuthoredFlowExecutionError';
22
11
  }
23
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"authored-flow-error.js","sourceRoot":"","sources":["../src/authored-flow-error.ts"],"names":[],"mappings":"AAwBA,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAExC;IAEA;IACA;IASA;IAbX,YACW,IAAoC,EAC7C,OAAe,EACN,gBAAyE,EACzE,KAAc;IACvB;;;;;;;OAOG;IACM,WAA8B;QAEvC,KAAK,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QAdpB,SAAI,GAAJ,IAAI,CAAgC;QAEpC,qBAAgB,GAAhB,gBAAgB,CAAyD;QACzE,UAAK,GAAL,KAAK,CAAS;QASd,gBAAW,GAAX,WAAW,CAAmB;QAGvC,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"authored-flow-error.js","sourceRoot":"","sources":["../src/authored-flow-error.ts"],"names":[],"mappings":"AAiCA,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAExC;IAEA;IACA;IAJX,YACW,IAAoC,EAC7C,OAAe,EACN,gBAAyE,EACzE,KAAc;QAEvB,KAAK,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QALpB,SAAI,GAAJ,IAAI,CAAgC;QAEpC,qBAAgB,GAAhB,gBAAgB,CAAyD;QACzE,UAAK,GAAL,KAAK,CAAS;QAGvB,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF"}
@@ -1,9 +1,11 @@
1
- import type { FlowHandle } from '@relayflows/surface/runtime';
1
+ import { type FlowCompletionReason } from '@relayflows/surface';
2
+ import { type FlowHandle } from '@relayflows/surface/runtime';
3
+ import { type ProgressEvent } from './progress.js';
2
4
  import type { GetFlowDefinition } from './authored-flow-loader.js';
3
- import { type RunLifecycleOptions } from './cli/run.js';
5
+ import type { RunLifecycleOptions } from './cli/run.js';
4
6
  import { AuthoredFlowExecutionError, type AuthoredFlowExecutionErrorCode } from './authored-flow-error.js';
5
7
  import { JournalClient } from './journal-client.js';
6
- import type { CompletionReason as ProtocolCompletionReason, RunCompletionReason as ProtocolRunCompletionReason } from './protocol.js';
8
+ import type { CompletionReason as ProtocolCompletionReason } from './protocol.js';
7
9
  export { AuthoredFlowExecutionError, type AuthoredFlowExecutionErrorCode };
8
10
  export interface AuthoredFlowJournalStep {
9
11
  readonly id: string;
@@ -12,7 +14,7 @@ export interface AuthoredFlowJournalStep {
12
14
  }
13
15
  export interface AuthoredFlowExecutionResult {
14
16
  readonly name: string;
15
- readonly completionReason: ProtocolRunCompletionReason;
17
+ readonly completionReason: FlowCompletionReason;
16
18
  readonly journalSteps: readonly AuthoredFlowJournalStep[];
17
19
  }
18
20
  /**
@@ -20,9 +22,9 @@ export interface AuthoredFlowExecutionResult {
20
22
  *
21
23
  * This is deliberately not exported by the SDK package: without a durable
22
24
  * authored root, it is not a resumable public runner. The seam is narrow: an
23
- * empty-header flow may await plain `f.run(...)` steps and must finish with
24
- * `f.done("success")`. Every run and
25
- * the terminal marker is a compiled deterministic spec submitted through
25
+ * flow with an optional budget may await `f.run`, `f.llm`, and `f.agent` steps and must
26
+ * finish with `f.done("success")` or `f.done("needs_human")`. Each step and the terminal marker is
27
+ * a compiled spec submitted through
26
28
  * `JournalClient`; values are read back from `step.completed` journal entries.
27
29
  * Unsupported headers, verbs, gates, or completion lowering fail closed.
28
30
  */
@@ -34,6 +36,8 @@ export interface ExecuteAuthoredFlowOptions {
34
36
  * `getDefinition` instead; see authored-flow-loader.ts's comment on why.
35
37
  */
36
38
  readonly getDefinition?: GetFlowDefinition;
39
+ /** Helper receipt and mock-writeback storage; CLI passes its daemon data directory. */
40
+ readonly dataDir?: string;
37
41
  /**
38
42
  * The flow file's own path — passed straight to `checkAuthoredFlow`
39
43
  * (cli/check.ts) so `f.agent` resolves a CLI the same way a declarative
@@ -49,6 +53,8 @@ export interface ExecuteAuthoredFlowOptions {
49
53
  /** Passed straight through to classifyOutcome (cli/run.ts) for f.agent's wait. */
50
54
  readonly signal?: RunLifecycleOptions['signal'];
51
55
  readonly onWait?: RunLifecycleOptions['onWait'];
56
+ readonly onProgress?: (event: ProgressEvent) => void;
57
+ readonly localAgentStream?: string;
52
58
  }
53
59
  export declare function executeAuthoredFlow<Input = undefined>(handle: FlowHandle, journal: JournalClient, input?: Input, options?: ExecuteAuthoredFlowOptions): Promise<AuthoredFlowExecutionResult>;
54
60
  //# sourceMappingURL=authored-flow-executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authored-flow-executor.d.ts","sourceRoot":"","sources":["../src/authored-flow-executor.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAI9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,EACL,0BAA0B,EAC1B,KAAK,8BAA8B,EACpC,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,IAAI,wBAAwB,EAC5C,mBAAmB,IAAI,2BAA2B,EAEnD,MAAM,eAAe,CAAC;AAqBvB,OAAO,EAAE,0BAA0B,EAAE,KAAK,8BAA8B,EAAE,CAAC;AAW3E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;CACrD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;IACvD,QAAQ,CAAC,YAAY,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAC3D;AASD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAC3C;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,kFAAkF;IAClF,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;CACjD;AAED,wBAAsB,mBAAmB,CAAC,KAAK,GAAG,SAAS,EACzD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,KAAK,EACb,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,2BAA2B,CAAC,CAkTtC"}
1
+ {"version":3,"file":"authored-flow-executor.d.ts","sourceRoot":"","sources":["../src/authored-flow-executor.ts"],"names":[],"mappings":"AAcA,OAAO,EAML,KAAK,oBAAoB,EAG1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAmD,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE/G,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EACL,0BAA0B,EAC1B,KAAK,8BAA8B,EACpC,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,IAAI,wBAAwB,EAE7C,MAAM,eAAe,CAAC;AAoBvB,OAAO,EAAE,0BAA0B,EAAE,KAAK,8BAA8B,EAAE,CAAC;AAE3E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;CACrD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAC3D;AASD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAC3C,uFAAuF;IACvF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,kFAAkF;IAClF,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,wBAAsB,mBAAmB,CAAC,KAAK,GAAG,SAAS,EACzD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,KAAK,EACb,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,2BAA2B,CAAC,CAsQtC"}