agent-relay 2.3.14 → 2.3.16

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 (1420) hide show
  1. package/README.md +42 -176
  2. package/bin/agent-relay-broker-darwin-arm64 +0 -0
  3. package/bin/agent-relay-broker-darwin-x64 +0 -0
  4. package/bin/agent-relay-broker-linux-arm64 +0 -0
  5. package/bin/agent-relay-broker-linux-x64 +0 -0
  6. package/dist/index.cjs +50319 -63390
  7. package/dist/src/cli/bootstrap.d.ts +6 -0
  8. package/dist/src/cli/bootstrap.d.ts.map +1 -0
  9. package/dist/src/cli/bootstrap.js +109 -0
  10. package/dist/src/cli/bootstrap.js.map +1 -0
  11. package/dist/src/cli/commands/agent-management.d.ts +51 -0
  12. package/dist/src/cli/commands/agent-management.d.ts.map +1 -0
  13. package/dist/src/cli/commands/agent-management.js +290 -0
  14. package/dist/src/cli/commands/agent-management.js.map +1 -0
  15. package/dist/src/cli/commands/auth.d.ts +9 -0
  16. package/dist/src/cli/commands/auth.d.ts.map +1 -0
  17. package/dist/src/cli/commands/auth.js +33 -0
  18. package/dist/src/cli/commands/auth.js.map +1 -0
  19. package/dist/src/cli/commands/cloud.d.ts +18 -0
  20. package/dist/src/cli/commands/cloud.d.ts.map +1 -0
  21. package/dist/src/cli/commands/cloud.js +392 -0
  22. package/dist/src/cli/commands/cloud.js.map +1 -0
  23. package/dist/src/cli/commands/core.d.ts +107 -0
  24. package/dist/src/cli/commands/core.d.ts.map +1 -0
  25. package/dist/src/cli/commands/core.js +299 -0
  26. package/dist/src/cli/commands/core.js.map +1 -0
  27. package/dist/src/cli/commands/doctor.d.ts +1 -1
  28. package/dist/src/cli/commands/doctor.d.ts.map +1 -1
  29. package/dist/src/cli/commands/doctor.js +1 -485
  30. package/dist/src/cli/commands/doctor.js.map +1 -1
  31. package/dist/src/cli/commands/messaging.d.ts +61 -0
  32. package/dist/src/cli/commands/messaging.d.ts.map +1 -0
  33. package/dist/src/cli/commands/messaging.js +213 -0
  34. package/dist/src/cli/commands/messaging.js.map +1 -0
  35. package/dist/src/cli/commands/monitoring.d.ts +57 -0
  36. package/dist/src/cli/commands/monitoring.d.ts.map +1 -0
  37. package/dist/src/cli/commands/monitoring.js +350 -0
  38. package/dist/src/cli/commands/monitoring.js.map +1 -0
  39. package/dist/src/cli/commands/setup.d.ts +29 -0
  40. package/dist/src/cli/commands/setup.d.ts.map +1 -0
  41. package/dist/src/cli/commands/setup.js +324 -0
  42. package/dist/src/cli/commands/setup.js.map +1 -0
  43. package/dist/src/cli/commands/swarm.d.ts +3 -0
  44. package/dist/src/cli/commands/swarm.d.ts.map +1 -0
  45. package/dist/src/cli/commands/swarm.js +108 -0
  46. package/dist/src/cli/commands/swarm.js.map +1 -0
  47. package/dist/src/cli/index.d.ts +1 -28
  48. package/dist/src/cli/index.d.ts.map +1 -1
  49. package/dist/src/cli/index.js +4 -4936
  50. package/dist/src/cli/index.js.map +1 -1
  51. package/dist/src/cli/lib/agent-management-listing.d.ts +39 -0
  52. package/dist/src/cli/lib/agent-management-listing.d.ts.map +1 -0
  53. package/dist/src/cli/lib/agent-management-listing.js +253 -0
  54. package/dist/src/cli/lib/agent-management-listing.js.map +1 -0
  55. package/dist/src/cli/lib/auth-ssh.d.ts +48 -0
  56. package/dist/src/cli/lib/auth-ssh.d.ts.map +1 -0
  57. package/dist/src/cli/lib/auth-ssh.js +572 -0
  58. package/dist/src/cli/lib/auth-ssh.js.map +1 -0
  59. package/dist/src/cli/lib/bridge.d.ts +8 -0
  60. package/dist/src/cli/lib/bridge.d.ts.map +1 -0
  61. package/dist/src/cli/lib/bridge.js +100 -0
  62. package/dist/src/cli/lib/bridge.js.map +1 -0
  63. package/dist/src/cli/lib/broker-lifecycle.d.ts +20 -0
  64. package/dist/src/cli/lib/broker-lifecycle.d.ts.map +1 -0
  65. package/dist/src/cli/lib/broker-lifecycle.js +843 -0
  66. package/dist/src/cli/lib/broker-lifecycle.js.map +1 -0
  67. package/dist/src/cli/lib/client-factory.d.ts +24 -0
  68. package/dist/src/cli/lib/client-factory.d.ts.map +1 -0
  69. package/dist/src/cli/lib/client-factory.js +20 -0
  70. package/dist/src/cli/lib/client-factory.js.map +1 -0
  71. package/dist/src/cli/lib/cloud-client.d.ts +39 -0
  72. package/dist/src/cli/lib/cloud-client.d.ts.map +1 -0
  73. package/dist/src/cli/lib/cloud-client.js +120 -0
  74. package/dist/src/cli/lib/cloud-client.js.map +1 -0
  75. package/dist/src/cli/lib/core-maintenance.d.ts +13 -0
  76. package/dist/src/cli/lib/core-maintenance.d.ts.map +1 -0
  77. package/dist/src/cli/lib/core-maintenance.js +250 -0
  78. package/dist/src/cli/lib/core-maintenance.js.map +1 -0
  79. package/dist/src/cli/lib/doctor.d.ts +2 -0
  80. package/dist/src/cli/lib/doctor.d.ts.map +1 -0
  81. package/dist/src/cli/lib/doctor.js +484 -0
  82. package/dist/src/cli/lib/doctor.js.map +1 -0
  83. package/dist/src/cli/lib/formatting.d.ts +8 -0
  84. package/dist/src/cli/lib/formatting.d.ts.map +1 -0
  85. package/dist/src/cli/lib/formatting.js +48 -0
  86. package/dist/src/cli/lib/formatting.js.map +1 -0
  87. package/dist/src/cli/lib/index.d.ts +5 -0
  88. package/dist/src/cli/lib/index.d.ts.map +1 -0
  89. package/dist/src/cli/lib/index.js +5 -0
  90. package/dist/src/cli/lib/index.js.map +1 -0
  91. package/dist/src/cli/lib/jsonc.d.ts +8 -0
  92. package/dist/src/cli/lib/jsonc.d.ts.map +1 -0
  93. package/dist/src/cli/lib/jsonc.js +88 -0
  94. package/dist/src/cli/lib/jsonc.js.map +1 -0
  95. package/dist/src/cli/lib/monitoring-health.d.ts +32 -0
  96. package/dist/src/cli/lib/monitoring-health.d.ts.map +1 -0
  97. package/dist/src/cli/lib/monitoring-health.js +2 -0
  98. package/dist/src/cli/lib/monitoring-health.js.map +1 -0
  99. package/dist/src/cli/lib/paths.d.ts +2 -0
  100. package/dist/src/cli/lib/paths.d.ts.map +1 -0
  101. package/dist/src/cli/lib/paths.js +5 -0
  102. package/dist/src/cli/lib/paths.js.map +1 -0
  103. package/dist/src/index.d.ts +1 -5
  104. package/dist/src/index.d.ts.map +1 -1
  105. package/dist/src/index.js +1 -5
  106. package/dist/src/index.js.map +1 -1
  107. package/install.sh +0 -30
  108. package/package.json +84 -98
  109. package/packages/acp-bridge/README.md +8 -8
  110. package/packages/acp-bridge/dist/acp-agent.d.ts +8 -7
  111. package/packages/acp-bridge/dist/acp-agent.d.ts.map +1 -1
  112. package/packages/acp-bridge/dist/acp-agent.js +118 -143
  113. package/packages/acp-bridge/dist/acp-agent.js.map +1 -1
  114. package/packages/acp-bridge/dist/cli.d.ts +1 -1
  115. package/packages/acp-bridge/dist/cli.js +3 -3
  116. package/packages/acp-bridge/dist/index.d.ts +2 -2
  117. package/packages/acp-bridge/dist/index.d.ts.map +1 -1
  118. package/packages/acp-bridge/dist/index.js +1 -1
  119. package/packages/acp-bridge/dist/index.js.map +1 -1
  120. package/packages/acp-bridge/dist/types.d.ts +3 -3
  121. package/packages/acp-bridge/package.json +3 -3
  122. package/packages/acp-bridge/src/acp-agent.ts +123 -160
  123. package/packages/acp-bridge/src/cli.ts +3 -3
  124. package/packages/acp-bridge/src/index.ts +2 -2
  125. package/packages/acp-bridge/src/types.ts +3 -3
  126. package/packages/config/dist/bridge-config.d.ts +5 -5
  127. package/packages/config/dist/bridge-config.d.ts.map +1 -1
  128. package/packages/config/dist/bridge-config.js +16 -9
  129. package/packages/config/dist/bridge-config.js.map +1 -1
  130. package/packages/config/dist/cli-auth-config.d.ts +1 -1
  131. package/packages/config/dist/cli-auth-config.js +1 -1
  132. package/packages/config/dist/cli-registry.generated.d.ts +340 -0
  133. package/packages/config/dist/cli-registry.generated.d.ts.map +1 -0
  134. package/packages/config/dist/cli-registry.generated.js +297 -0
  135. package/packages/config/dist/cli-registry.generated.js.map +1 -0
  136. package/packages/config/dist/index.d.ts +1 -0
  137. package/packages/config/dist/index.d.ts.map +1 -1
  138. package/packages/config/dist/index.js +1 -0
  139. package/packages/config/dist/index.js.map +1 -1
  140. package/packages/config/dist/project-namespace.d.ts +9 -9
  141. package/packages/config/dist/project-namespace.js +3 -3
  142. package/packages/config/dist/relay-config.d.ts +1 -1
  143. package/packages/config/dist/relay-config.js +1 -1
  144. package/packages/config/dist/schemas.js +1 -1
  145. package/packages/config/dist/shadow-config.d.ts +2 -1
  146. package/packages/config/dist/shadow-config.d.ts.map +1 -1
  147. package/packages/config/dist/shadow-config.js.map +1 -1
  148. package/packages/config/package.json +2 -3
  149. package/packages/config/src/bridge-config.test.ts +20 -6
  150. package/packages/config/src/bridge-config.ts +20 -10
  151. package/packages/config/src/cli-auth-config.ts +1 -1
  152. package/packages/config/src/cli-registry.generated.ts +328 -0
  153. package/packages/config/src/index.ts +1 -0
  154. package/packages/config/src/project-namespace.ts +9 -9
  155. package/packages/config/src/relay-config.ts +1 -1
  156. package/packages/config/src/schemas.ts +1 -1
  157. package/packages/config/src/shadow-config.ts +8 -1
  158. package/packages/contracts/fixtures/error-fixtures.json +42 -0
  159. package/packages/contracts/fixtures/event-fixtures.json +161 -0
  160. package/packages/contracts/fixtures/health-fixtures.json +35 -0
  161. package/packages/contracts/fixtures/identity-fixtures.json +58 -0
  162. package/packages/contracts/fixtures/replay-fixtures.json +33 -0
  163. package/packages/hooks/dist/inbox-check/types.d.ts +2 -2
  164. package/packages/hooks/dist/types.d.ts +9 -3
  165. package/packages/hooks/dist/types.d.ts.map +1 -1
  166. package/packages/hooks/dist/types.js +1 -1
  167. package/packages/hooks/dist/types.js.map +1 -1
  168. package/packages/hooks/package.json +5 -5
  169. package/packages/hooks/src/inbox-check/types.ts +2 -2
  170. package/packages/hooks/src/types.ts +11 -3
  171. package/packages/memory/package.json +2 -2
  172. package/packages/policy/package.json +2 -2
  173. package/packages/sdk/.mcp.json +14 -0
  174. package/packages/sdk/.trajectories/active/traj_1771875803391_84ca57b2.json +50 -0
  175. package/packages/sdk/.trajectories/active/traj_1771891934534_06504121.json +50 -0
  176. package/packages/sdk/.trajectories/active/traj_1771891957929_211afc4e.json +50 -0
  177. package/packages/sdk/.trajectories/active/traj_1771891982509_38c84638.json +50 -0
  178. package/packages/sdk/.trajectories/completed/traj_1771875803188_cd6d181c.json +80 -0
  179. package/packages/sdk/.trajectories/completed/traj_1771875803204_f2aeb8c8.json +80 -0
  180. package/packages/sdk/.trajectories/completed/traj_1771875803210_d65f3f1a.json +80 -0
  181. package/packages/sdk/.trajectories/completed/traj_1771875803218_e454a25d.json +80 -0
  182. package/packages/sdk/.trajectories/completed/traj_1771875803223_d7a64815.json +80 -0
  183. package/packages/sdk/.trajectories/completed/traj_1771875803227_7e56da5b.json +80 -0
  184. package/packages/sdk/.trajectories/completed/traj_1771875803235_4fbf93b4.json +80 -0
  185. package/packages/sdk/.trajectories/completed/traj_1771875803243_47931c71.json +80 -0
  186. package/packages/sdk/.trajectories/completed/traj_1771875803258_3816f3fe.json +80 -0
  187. package/packages/sdk/.trajectories/completed/traj_1771875803268_8061140e.json +80 -0
  188. package/packages/sdk/.trajectories/completed/traj_1771875803326_ae6f9c78.json +80 -0
  189. package/packages/sdk/.trajectories/completed/traj_1771875808396_cbde0a6c.json +91 -0
  190. package/packages/sdk/.trajectories/completed/traj_1771875812026_aa2442bb.json +91 -0
  191. package/packages/sdk/.trajectories/completed/traj_1771875815431_c2c656c5.json +91 -0
  192. package/packages/sdk/.trajectories/completed/traj_1771875818645_3a4dbf02.json +91 -0
  193. package/packages/sdk/.trajectories/completed/traj_1771891934403_24923c03.json +80 -0
  194. package/packages/sdk/.trajectories/completed/traj_1771891934421_dca16e24.json +80 -0
  195. package/packages/sdk/.trajectories/completed/traj_1771891934430_057706f7.json +80 -0
  196. package/packages/sdk/.trajectories/completed/traj_1771891934442_faf97382.json +80 -0
  197. package/packages/sdk/.trajectories/completed/traj_1771891934454_5542ecd5.json +80 -0
  198. package/packages/sdk/.trajectories/completed/traj_1771891934464_12202a08.json +80 -0
  199. package/packages/sdk/.trajectories/completed/traj_1771891934487_94378275.json +80 -0
  200. package/packages/sdk/.trajectories/completed/traj_1771891934503_ca728c13.json +80 -0
  201. package/packages/sdk/.trajectories/completed/traj_1771891934519_100af69a.json +80 -0
  202. package/packages/sdk/.trajectories/completed/traj_1771891934536_62ad39d9.json +80 -0
  203. package/packages/sdk/.trajectories/completed/traj_1771891934553_d6798a52.json +80 -0
  204. package/packages/sdk/.trajectories/completed/traj_1771891939537_541c8096.json +91 -0
  205. package/packages/sdk/.trajectories/completed/traj_1771891942985_36ab9a4d.json +91 -0
  206. package/packages/sdk/.trajectories/completed/traj_1771891946453_e8a6e05f.json +91 -0
  207. package/packages/sdk/.trajectories/completed/traj_1771891949838_5de0de84.json +91 -0
  208. package/packages/sdk/.trajectories/completed/traj_1771891957807_0ecfb4f4.json +80 -0
  209. package/packages/sdk/.trajectories/completed/traj_1771891957827_c4539239.json +80 -0
  210. package/packages/sdk/.trajectories/completed/traj_1771891957836_91168b48.json +80 -0
  211. package/packages/sdk/.trajectories/completed/traj_1771891957848_8c5cad0b.json +80 -0
  212. package/packages/sdk/.trajectories/completed/traj_1771891957857_0986b293.json +80 -0
  213. package/packages/sdk/.trajectories/completed/traj_1771891957872_8a3113af.json +80 -0
  214. package/packages/sdk/.trajectories/completed/traj_1771891957884_0bb85208.json +80 -0
  215. package/packages/sdk/.trajectories/completed/traj_1771891957892_86c75e2e.json +80 -0
  216. package/packages/sdk/.trajectories/completed/traj_1771891957907_98ca0e6f.json +80 -0
  217. package/packages/sdk/.trajectories/completed/traj_1771891957918_d9091231.json +80 -0
  218. package/packages/sdk/.trajectories/completed/traj_1771891957931_dcaf77ed.json +80 -0
  219. package/packages/sdk/.trajectories/completed/traj_1771891962931_eb1fdee2.json +91 -0
  220. package/packages/sdk/.trajectories/completed/traj_1771891966262_9061a93f.json +91 -0
  221. package/packages/sdk/.trajectories/completed/traj_1771891969915_1adaba19.json +91 -0
  222. package/packages/sdk/.trajectories/completed/traj_1771891973588_f08b79e9.json +91 -0
  223. package/packages/sdk/.trajectories/completed/traj_1771891982421_f1985bce.json +80 -0
  224. package/packages/sdk/.trajectories/completed/traj_1771891982432_e7a84163.json +80 -0
  225. package/packages/sdk/.trajectories/completed/traj_1771891982447_369b842a.json +80 -0
  226. package/packages/sdk/.trajectories/completed/traj_1771891982469_5fc45199.json +80 -0
  227. package/packages/sdk/.trajectories/completed/traj_1771891982495_454c7cb3.json +80 -0
  228. package/packages/sdk/.trajectories/completed/traj_1771891982514_08098e03.json +80 -0
  229. package/packages/sdk/.trajectories/completed/traj_1771891982526_b351d778.json +80 -0
  230. package/packages/sdk/.trajectories/completed/traj_1771891982533_fa542d83.json +80 -0
  231. package/packages/sdk/.trajectories/completed/traj_1771891982540_18ab24dc.json +80 -0
  232. package/packages/sdk/.trajectories/completed/traj_1771891982544_5b4fa163.json +80 -0
  233. package/packages/sdk/.trajectories/completed/traj_1771891982548_c13f089a.json +80 -0
  234. package/packages/sdk/.trajectories/completed/traj_1771891987510_23f6da1f.json +91 -0
  235. package/packages/sdk/.trajectories/completed/traj_1771891991466_912c2e04.json +91 -0
  236. package/packages/sdk/.trajectories/completed/traj_1771891994891_60604be2.json +91 -0
  237. package/packages/sdk/.trajectories/completed/traj_1771891998370_cfaf9b8b.json +91 -0
  238. package/packages/sdk/README.md +68 -838
  239. package/packages/sdk/dist/__tests__/contract-fixtures.test.d.ts +2 -0
  240. package/packages/sdk/dist/__tests__/contract-fixtures.test.d.ts.map +1 -0
  241. package/packages/sdk/dist/__tests__/contract-fixtures.test.js +85 -0
  242. package/packages/sdk/dist/__tests__/contract-fixtures.test.js.map +1 -0
  243. package/packages/sdk/dist/__tests__/facade.test.js +305 -0
  244. package/packages/sdk/dist/__tests__/facade.test.js.map +1 -0
  245. package/packages/sdk/dist/__tests__/integration.test.js +169 -0
  246. package/packages/sdk/dist/__tests__/integration.test.js.map +1 -0
  247. package/packages/sdk/dist/__tests__/pty.test.d.ts +2 -0
  248. package/packages/sdk/dist/__tests__/pty.test.d.ts.map +1 -0
  249. package/packages/sdk/dist/__tests__/pty.test.js +20 -0
  250. package/packages/sdk/dist/__tests__/pty.test.js.map +1 -0
  251. package/packages/sdk/dist/__tests__/quickstart.test.js +176 -0
  252. package/packages/sdk/dist/__tests__/quickstart.test.js.map +1 -0
  253. package/packages/sdk/dist/__tests__/spawn-from-env.test.d.ts +2 -0
  254. package/packages/sdk/dist/__tests__/spawn-from-env.test.d.ts.map +1 -0
  255. package/packages/sdk/dist/__tests__/spawn-from-env.test.js +206 -0
  256. package/packages/sdk/dist/__tests__/spawn-from-env.test.js.map +1 -0
  257. package/packages/sdk/dist/__tests__/unit.test.js +347 -0
  258. package/packages/sdk/dist/__tests__/unit.test.js.map +1 -0
  259. package/packages/sdk/dist/client.d.ts +140 -526
  260. package/packages/sdk/dist/client.d.ts.map +1 -1
  261. package/packages/sdk/dist/client.js +430 -1509
  262. package/packages/sdk/dist/client.js.map +1 -1
  263. package/packages/sdk/dist/examples/workflow-superiority.d.ts +32 -0
  264. package/packages/sdk/dist/examples/workflow-superiority.d.ts.map +1 -0
  265. package/packages/sdk/dist/examples/workflow-superiority.js +1421 -0
  266. package/packages/sdk/dist/examples/workflow-superiority.js.map +1 -0
  267. package/packages/sdk/dist/index.d.ts +13 -20
  268. package/packages/sdk/dist/index.d.ts.map +1 -1
  269. package/packages/sdk/dist/index.js +12 -26
  270. package/packages/sdk/dist/index.js.map +1 -1
  271. package/packages/sdk/dist/logs.d.ts +70 -25
  272. package/packages/sdk/dist/logs.d.ts.map +1 -1
  273. package/packages/sdk/dist/logs.js +238 -42
  274. package/packages/sdk/dist/logs.js.map +1 -1
  275. package/packages/sdk/dist/models.d.ts +9 -0
  276. package/packages/sdk/dist/models.d.ts.map +1 -0
  277. package/packages/sdk/dist/models.js +17 -0
  278. package/packages/sdk/dist/models.js.map +1 -0
  279. package/packages/sdk/dist/protocol.d.ts +366 -0
  280. package/packages/sdk/dist/protocol.d.ts.map +1 -0
  281. package/packages/sdk/dist/pty.d.ts.map +1 -0
  282. package/packages/sdk/dist/pty.js +26 -0
  283. package/packages/sdk/dist/pty.js.map +1 -0
  284. package/packages/sdk/dist/relay-adapter.d.ts +139 -0
  285. package/packages/sdk/dist/relay-adapter.d.ts.map +1 -0
  286. package/packages/sdk/dist/relay-adapter.js +210 -0
  287. package/packages/sdk/dist/relay-adapter.js.map +1 -0
  288. package/packages/sdk/dist/relay.d.ts +304 -0
  289. package/packages/sdk/dist/relay.d.ts.map +1 -0
  290. package/packages/sdk/dist/relay.js +910 -0
  291. package/packages/sdk/dist/relay.js.map +1 -0
  292. package/packages/sdk/dist/shadow.d.ts +101 -0
  293. package/packages/sdk/dist/shadow.d.ts.map +1 -0
  294. package/packages/sdk/dist/shadow.js.map +1 -0
  295. package/packages/sdk/dist/spawn-from-env.d.ts +77 -0
  296. package/packages/sdk/dist/spawn-from-env.d.ts.map +1 -0
  297. package/packages/sdk/dist/spawn-from-env.js +172 -0
  298. package/packages/sdk/dist/spawn-from-env.js.map +1 -0
  299. package/packages/sdk/dist/workflows/builder.d.ts +114 -0
  300. package/packages/sdk/dist/workflows/builder.d.ts.map +1 -0
  301. package/packages/sdk/dist/workflows/builder.js +201 -0
  302. package/packages/sdk/dist/workflows/builder.js.map +1 -0
  303. package/packages/sdk/dist/workflows/cli.d.ts +11 -0
  304. package/packages/sdk/dist/workflows/cli.d.ts.map +1 -0
  305. package/packages/sdk/dist/workflows/cli.js +144 -0
  306. package/packages/sdk/dist/workflows/cli.js.map +1 -0
  307. package/packages/sdk/dist/workflows/coordinator.d.ts +73 -0
  308. package/packages/sdk/dist/workflows/coordinator.d.ts.map +1 -0
  309. package/packages/sdk/dist/workflows/coordinator.js +647 -0
  310. package/packages/sdk/dist/workflows/coordinator.js.map +1 -0
  311. package/packages/sdk/dist/workflows/custom-steps.d.ts +73 -0
  312. package/packages/sdk/dist/workflows/custom-steps.d.ts.map +1 -0
  313. package/packages/sdk/dist/workflows/custom-steps.js +321 -0
  314. package/packages/sdk/dist/workflows/custom-steps.js.map +1 -0
  315. package/packages/sdk/dist/workflows/dry-run-format.d.ts +6 -0
  316. package/packages/sdk/dist/workflows/dry-run-format.d.ts.map +1 -0
  317. package/packages/sdk/dist/workflows/dry-run-format.js +68 -0
  318. package/packages/sdk/dist/workflows/dry-run-format.js.map +1 -0
  319. package/packages/sdk/dist/workflows/file-db.d.ts +33 -0
  320. package/packages/sdk/dist/workflows/file-db.d.ts.map +1 -0
  321. package/packages/sdk/dist/workflows/file-db.js +108 -0
  322. package/packages/sdk/dist/workflows/file-db.js.map +1 -0
  323. package/packages/sdk/dist/workflows/index.d.ts +15 -0
  324. package/packages/sdk/dist/workflows/index.d.ts.map +1 -0
  325. package/packages/sdk/dist/workflows/index.js +15 -0
  326. package/packages/sdk/dist/workflows/index.js.map +1 -0
  327. package/packages/sdk/dist/workflows/run.d.ts +38 -0
  328. package/packages/sdk/dist/workflows/run.d.ts.map +1 -0
  329. package/packages/sdk/dist/workflows/run.js +25 -0
  330. package/packages/sdk/dist/workflows/run.js.map +1 -0
  331. package/packages/sdk/dist/workflows/runner.d.ts +320 -0
  332. package/packages/sdk/dist/workflows/runner.d.ts.map +1 -0
  333. package/packages/sdk/dist/workflows/runner.js +2821 -0
  334. package/packages/sdk/dist/workflows/runner.js.map +1 -0
  335. package/packages/sdk/dist/workflows/templates.d.ts +47 -0
  336. package/packages/sdk/dist/workflows/templates.d.ts.map +1 -0
  337. package/packages/sdk/dist/workflows/templates.js +405 -0
  338. package/packages/sdk/dist/workflows/templates.js.map +1 -0
  339. package/packages/sdk/dist/workflows/trajectory.d.ts +87 -0
  340. package/packages/sdk/dist/workflows/trajectory.d.ts.map +1 -0
  341. package/packages/sdk/dist/workflows/trajectory.js +441 -0
  342. package/packages/sdk/dist/workflows/trajectory.js.map +1 -0
  343. package/packages/sdk/dist/workflows/types.d.ts +306 -0
  344. package/packages/sdk/dist/workflows/types.d.ts.map +1 -0
  345. package/packages/sdk/dist/workflows/types.js +23 -0
  346. package/packages/sdk/dist/workflows/types.js.map +1 -0
  347. package/packages/sdk/dist/workflows/validator.d.ts +11 -0
  348. package/packages/sdk/dist/workflows/validator.d.ts.map +1 -0
  349. package/packages/sdk/dist/workflows/validator.js +128 -0
  350. package/packages/sdk/dist/workflows/validator.js.map +1 -0
  351. package/packages/sdk/package.json +59 -53
  352. package/packages/sdk/scripts/bundle-agent-relay.mjs +53 -0
  353. package/packages/sdk/src/__tests__/contract-fixtures.test.ts +122 -0
  354. package/packages/sdk/src/__tests__/error-scenarios.test.ts +682 -0
  355. package/packages/sdk/src/__tests__/facade.test.ts +364 -0
  356. package/packages/sdk/src/__tests__/idle-nudge.test.ts +438 -0
  357. package/packages/sdk/src/__tests__/integration.test.ts +204 -0
  358. package/packages/sdk/src/__tests__/orchestration-upgrades.test.ts +797 -0
  359. package/packages/sdk/src/__tests__/pty.test.ts +24 -0
  360. package/packages/sdk/src/__tests__/quickstart.test.ts +198 -0
  361. package/packages/sdk/src/__tests__/spawn-from-env.test.ts +282 -0
  362. package/packages/sdk/src/__tests__/swarm-coordinator.test.ts +909 -0
  363. package/packages/sdk/src/__tests__/unit.test.ts +435 -0
  364. package/packages/sdk/src/__tests__/workflow-runner.test.ts +489 -0
  365. package/packages/sdk/src/__tests__/yaml-validation.test.ts +890 -0
  366. package/packages/sdk/src/client.ts +527 -1911
  367. package/packages/sdk/src/examples/workflow-superiority.ts +1485 -0
  368. package/packages/sdk/src/examples/workflows/README.md +156 -0
  369. package/packages/sdk/src/examples/workflows/ralph-overnight.yaml +421 -0
  370. package/packages/sdk/src/examples/workflows/ralph-swarm.yaml +411 -0
  371. package/packages/sdk/src/examples/workflows/ralph-tdd.yaml +259 -0
  372. package/packages/sdk/src/index.ts +13 -116
  373. package/packages/sdk/src/logs.ts +282 -54
  374. package/packages/sdk/src/models.ts +36 -0
  375. package/packages/sdk/src/protocol.ts +385 -0
  376. package/packages/sdk/src/pty.ts +35 -0
  377. package/packages/sdk/src/relay-adapter.ts +316 -0
  378. package/packages/sdk/src/relay.ts +1147 -0
  379. package/packages/sdk/src/shadow.ts +228 -0
  380. package/packages/sdk/src/spawn-from-env.ts +245 -0
  381. package/packages/sdk/src/workflows/README.md +656 -0
  382. package/packages/sdk/src/workflows/builder.ts +278 -0
  383. package/packages/sdk/src/workflows/builtin-templates/bug-fix.yaml +135 -0
  384. package/packages/sdk/src/workflows/builtin-templates/code-review.yaml +133 -0
  385. package/packages/sdk/src/workflows/builtin-templates/competitive.yaml +103 -0
  386. package/packages/sdk/src/workflows/builtin-templates/documentation.yaml +120 -0
  387. package/packages/sdk/src/workflows/builtin-templates/feature-dev.yaml +142 -0
  388. package/packages/sdk/src/workflows/builtin-templates/refactor.yaml +141 -0
  389. package/packages/sdk/src/workflows/builtin-templates/review-loop.yaml +223 -0
  390. package/packages/sdk/src/workflows/builtin-templates/security-audit.yaml +129 -0
  391. package/packages/sdk/src/workflows/cli.ts +162 -0
  392. package/packages/sdk/src/workflows/coordinator.ts +842 -0
  393. package/packages/sdk/src/workflows/custom-steps.ts +450 -0
  394. package/packages/sdk/src/workflows/dry-run-format.ts +75 -0
  395. package/packages/sdk/src/workflows/file-db.ts +117 -0
  396. package/packages/sdk/src/workflows/index.ts +24 -0
  397. package/packages/sdk/src/workflows/run.ts +72 -0
  398. package/packages/sdk/src/workflows/runner.ts +3409 -0
  399. package/packages/sdk/src/workflows/schema.json +651 -0
  400. package/packages/sdk/src/workflows/templates.ts +552 -0
  401. package/packages/sdk/src/workflows/trajectory.ts +631 -0
  402. package/packages/sdk/src/workflows/types.ts +389 -0
  403. package/packages/sdk/src/workflows/validator.ts +151 -0
  404. package/packages/sdk/tsconfig.build.json +25 -0
  405. package/packages/sdk/tsconfig.json +17 -18
  406. package/packages/sdk/vitest.config.ts +1 -1
  407. package/packages/sdk-py/README.md +106 -21
  408. package/packages/sdk-py/agent_relay/__init__.py +21 -0
  409. package/packages/sdk-py/agent_relay/models.py +206 -0
  410. package/packages/sdk-py/pyproject.toml +2 -2
  411. package/packages/sdk-py/src/agent_relay/__init__.py +76 -0
  412. package/packages/sdk-py/src/agent_relay/builder.py +430 -109
  413. package/packages/sdk-py/src/agent_relay/templates.py +197 -0
  414. package/packages/sdk-py/src/agent_relay/types.py +489 -15
  415. package/packages/sdk-py/tests/test_builder.py +115 -1
  416. package/packages/sdk-py/tests/test_workflow_templates.py +450 -0
  417. package/packages/shared/cli-registry.yaml +193 -0
  418. package/packages/shared/codegen-py.mjs +215 -0
  419. package/packages/shared/codegen-ts.mjs +227 -0
  420. package/packages/telemetry/dist/events.d.ts +8 -8
  421. package/packages/telemetry/dist/index.d.ts +1 -1
  422. package/packages/telemetry/package.json +2 -2
  423. package/packages/telemetry/src/events.ts +9 -9
  424. package/packages/telemetry/src/index.ts +2 -2
  425. package/packages/trajectory/package.json +2 -2
  426. package/packages/user-directory/dist/user-directory.js +1 -1
  427. package/packages/user-directory/dist/user-directory.js.map +1 -1
  428. package/packages/user-directory/package.json +2 -2
  429. package/packages/user-directory/src/user-directory.ts +1 -1
  430. package/packages/utils/dist/cjs/client-helpers.js +4 -4
  431. package/packages/utils/dist/cjs/discovery.js +9 -6
  432. package/packages/utils/dist/cjs/errors.js +5 -5
  433. package/packages/utils/dist/cjs/legacy-protocol.js +70 -0
  434. package/packages/utils/dist/cjs/logger.js +3 -3
  435. package/packages/utils/dist/cjs/precompiled-patterns.js +33 -2
  436. package/packages/utils/dist/cjs/relay-pty-path.js +0 -6
  437. package/packages/utils/dist/client-helpers.d.ts +1 -1
  438. package/packages/utils/dist/client-helpers.d.ts.map +1 -1
  439. package/packages/utils/dist/client-helpers.js +1 -1
  440. package/packages/utils/dist/client-helpers.js.map +1 -1
  441. package/packages/utils/dist/discovery.d.ts +7 -7
  442. package/packages/utils/dist/discovery.d.ts.map +1 -1
  443. package/packages/utils/dist/discovery.js +20 -17
  444. package/packages/utils/dist/discovery.js.map +1 -1
  445. package/packages/utils/dist/errors.d.ts +1 -1
  446. package/packages/utils/dist/errors.js +3 -3
  447. package/packages/utils/dist/legacy-protocol.d.ts +46 -0
  448. package/packages/utils/dist/legacy-protocol.d.ts.map +1 -0
  449. package/packages/utils/dist/legacy-protocol.js +47 -0
  450. package/packages/utils/dist/legacy-protocol.js.map +1 -0
  451. package/packages/utils/dist/logger.d.ts +2 -2
  452. package/packages/utils/dist/logger.js +2 -2
  453. package/packages/utils/dist/precompiled-patterns.d.ts.map +1 -1
  454. package/packages/utils/dist/precompiled-patterns.js +28 -2
  455. package/packages/utils/dist/precompiled-patterns.js.map +1 -1
  456. package/packages/utils/dist/relay-pty-path.d.ts.map +1 -1
  457. package/packages/utils/dist/relay-pty-path.js +1 -10
  458. package/packages/utils/dist/relay-pty-path.js.map +1 -1
  459. package/packages/utils/package.json +2 -3
  460. package/packages/utils/src/client-helpers.ts +1 -1
  461. package/packages/utils/src/consolidation.test.ts +3 -3
  462. package/packages/utils/src/discovery.test.ts +3 -3
  463. package/packages/utils/src/discovery.ts +21 -18
  464. package/packages/utils/src/errors.test.ts +6 -11
  465. package/packages/utils/src/errors.ts +3 -3
  466. package/packages/utils/src/legacy-protocol.ts +151 -0
  467. package/packages/utils/src/logger.ts +2 -2
  468. package/packages/utils/src/precompiled-patterns.test.ts +8 -0
  469. package/packages/utils/src/precompiled-patterns.ts +40 -2
  470. package/packages/utils/src/relay-pty-path.test.ts +23 -34
  471. package/packages/utils/src/relay-pty-path.ts +1 -11
  472. package/relay-snippets/agent-relay-protocol.md +6 -43
  473. package/relay-snippets/agent-relay-snippet.md +59 -203
  474. package/scripts/postinstall.js +44 -171
  475. package/bin/relay-pty-darwin-arm64 +0 -0
  476. package/bin/relay-pty-darwin-x64 +0 -0
  477. package/bin/relay-pty-linux-arm64 +0 -0
  478. package/bin/relay-pty-linux-x64 +0 -0
  479. package/dist/src/bridge/index.d.ts +0 -8
  480. package/dist/src/bridge/index.d.ts.map +0 -1
  481. package/dist/src/bridge/index.js +0 -8
  482. package/dist/src/bridge/index.js.map +0 -1
  483. package/dist/src/continuity/index.d.ts +0 -5
  484. package/dist/src/continuity/index.d.ts.map +0 -1
  485. package/dist/src/continuity/index.js +0 -5
  486. package/dist/src/continuity/index.js.map +0 -1
  487. package/dist/src/daemon/index.d.ts +0 -8
  488. package/dist/src/daemon/index.d.ts.map +0 -1
  489. package/dist/src/daemon/index.js +0 -9
  490. package/dist/src/daemon/index.js.map +0 -1
  491. package/dist/src/protocol/index.d.ts +0 -8
  492. package/dist/src/protocol/index.d.ts.map +0 -1
  493. package/dist/src/protocol/index.js +0 -8
  494. package/dist/src/protocol/index.js.map +0 -1
  495. package/dist/src/resiliency/index.d.ts +0 -5
  496. package/dist/src/resiliency/index.d.ts.map +0 -1
  497. package/dist/src/resiliency/index.js +0 -5
  498. package/dist/src/resiliency/index.js.map +0 -1
  499. package/dist/src/state/index.d.ts +0 -5
  500. package/dist/src/state/index.d.ts.map +0 -1
  501. package/dist/src/state/index.js +0 -5
  502. package/dist/src/state/index.js.map +0 -1
  503. package/dist/src/storage/index.d.ts +0 -8
  504. package/dist/src/storage/index.d.ts.map +0 -1
  505. package/dist/src/storage/index.js +0 -8
  506. package/dist/src/storage/index.js.map +0 -1
  507. package/dist/src/wrapper/index.d.ts +0 -8
  508. package/dist/src/wrapper/index.d.ts.map +0 -1
  509. package/dist/src/wrapper/index.js +0 -11
  510. package/dist/src/wrapper/index.js.map +0 -1
  511. package/packages/bridge/dist/cli-resolution.d.ts +0 -32
  512. package/packages/bridge/dist/cli-resolution.d.ts.map +0 -1
  513. package/packages/bridge/dist/cli-resolution.js +0 -88
  514. package/packages/bridge/dist/cli-resolution.js.map +0 -1
  515. package/packages/bridge/dist/index.d.ts +0 -9
  516. package/packages/bridge/dist/index.d.ts.map +0 -1
  517. package/packages/bridge/dist/index.js +0 -11
  518. package/packages/bridge/dist/index.js.map +0 -1
  519. package/packages/bridge/dist/multi-project-client.d.ts +0 -99
  520. package/packages/bridge/dist/multi-project-client.d.ts.map +0 -1
  521. package/packages/bridge/dist/multi-project-client.js +0 -389
  522. package/packages/bridge/dist/multi-project-client.js.map +0 -1
  523. package/packages/bridge/dist/shadow-cli.d.ts +0 -17
  524. package/packages/bridge/dist/shadow-cli.d.ts.map +0 -1
  525. package/packages/bridge/dist/shadow-cli.js +0 -75
  526. package/packages/bridge/dist/shadow-cli.js.map +0 -1
  527. package/packages/bridge/dist/spawner.d.ts +0 -263
  528. package/packages/bridge/dist/spawner.d.ts.map +0 -1
  529. package/packages/bridge/dist/spawner.js +0 -1758
  530. package/packages/bridge/dist/spawner.js.map +0 -1
  531. package/packages/bridge/dist/types.d.ts +0 -141
  532. package/packages/bridge/dist/types.d.ts.map +0 -1
  533. package/packages/bridge/dist/types.js +0 -6
  534. package/packages/bridge/dist/types.js.map +0 -1
  535. package/packages/bridge/dist/utils.d.ts +0 -39
  536. package/packages/bridge/dist/utils.d.ts.map +0 -1
  537. package/packages/bridge/dist/utils.js +0 -98
  538. package/packages/bridge/dist/utils.js.map +0 -1
  539. package/packages/bridge/package.json +0 -45
  540. package/packages/bridge/src/cli-resolution.test.ts +0 -225
  541. package/packages/bridge/src/cli-resolution.ts +0 -100
  542. package/packages/bridge/src/index.ts +0 -34
  543. package/packages/bridge/src/multi-project-client.test.ts +0 -340
  544. package/packages/bridge/src/multi-project-client.ts +0 -469
  545. package/packages/bridge/src/shadow-cli.ts +0 -95
  546. package/packages/bridge/src/spawner-mcp.test.ts +0 -505
  547. package/packages/bridge/src/spawner.ts +0 -2067
  548. package/packages/bridge/src/types.ts +0 -153
  549. package/packages/bridge/src/utils.test.ts +0 -235
  550. package/packages/bridge/src/utils.ts +0 -113
  551. package/packages/bridge/tsconfig.json +0 -29
  552. package/packages/bridge/vitest.config.ts +0 -9
  553. package/packages/broker-sdk/README.md +0 -97
  554. package/packages/broker-sdk/dist/__tests__/facade.test.js +0 -257
  555. package/packages/broker-sdk/dist/__tests__/facade.test.js.map +0 -1
  556. package/packages/broker-sdk/dist/__tests__/integration.test.js +0 -139
  557. package/packages/broker-sdk/dist/__tests__/integration.test.js.map +0 -1
  558. package/packages/broker-sdk/dist/__tests__/quickstart.test.js +0 -176
  559. package/packages/broker-sdk/dist/__tests__/quickstart.test.js.map +0 -1
  560. package/packages/broker-sdk/dist/__tests__/unit.test.js +0 -192
  561. package/packages/broker-sdk/dist/__tests__/unit.test.js.map +0 -1
  562. package/packages/broker-sdk/dist/client.d.ts +0 -95
  563. package/packages/broker-sdk/dist/client.d.ts.map +0 -1
  564. package/packages/broker-sdk/dist/client.js +0 -372
  565. package/packages/broker-sdk/dist/client.js.map +0 -1
  566. package/packages/broker-sdk/dist/index.d.ts +0 -10
  567. package/packages/broker-sdk/dist/index.d.ts.map +0 -1
  568. package/packages/broker-sdk/dist/index.js +0 -10
  569. package/packages/broker-sdk/dist/index.js.map +0 -1
  570. package/packages/broker-sdk/dist/logs.d.ts +0 -47
  571. package/packages/broker-sdk/dist/logs.d.ts.map +0 -1
  572. package/packages/broker-sdk/dist/logs.js +0 -137
  573. package/packages/broker-sdk/dist/logs.js.map +0 -1
  574. package/packages/broker-sdk/dist/protocol.d.ts +0 -258
  575. package/packages/broker-sdk/dist/protocol.d.ts.map +0 -1
  576. package/packages/broker-sdk/dist/pty.d.ts.map +0 -1
  577. package/packages/broker-sdk/dist/pty.js +0 -14
  578. package/packages/broker-sdk/dist/pty.js.map +0 -1
  579. package/packages/broker-sdk/dist/relay.d.ts +0 -178
  580. package/packages/broker-sdk/dist/relay.d.ts.map +0 -1
  581. package/packages/broker-sdk/dist/relay.js +0 -494
  582. package/packages/broker-sdk/dist/relay.js.map +0 -1
  583. package/packages/broker-sdk/dist/relaycast.d.ts +0 -73
  584. package/packages/broker-sdk/dist/relaycast.d.ts.map +0 -1
  585. package/packages/broker-sdk/dist/relaycast.js +0 -184
  586. package/packages/broker-sdk/dist/relaycast.js.map +0 -1
  587. package/packages/broker-sdk/dist/shadow.d.ts +0 -100
  588. package/packages/broker-sdk/dist/shadow.d.ts.map +0 -1
  589. package/packages/broker-sdk/dist/shadow.js.map +0 -1
  590. package/packages/broker-sdk/dist/workflows/builder.d.ts +0 -101
  591. package/packages/broker-sdk/dist/workflows/builder.d.ts.map +0 -1
  592. package/packages/broker-sdk/dist/workflows/builder.js +0 -179
  593. package/packages/broker-sdk/dist/workflows/builder.js.map +0 -1
  594. package/packages/broker-sdk/dist/workflows/cli.d.ts +0 -10
  595. package/packages/broker-sdk/dist/workflows/cli.d.ts.map +0 -1
  596. package/packages/broker-sdk/dist/workflows/cli.js +0 -82
  597. package/packages/broker-sdk/dist/workflows/cli.js.map +0 -1
  598. package/packages/broker-sdk/dist/workflows/coordinator.d.ts +0 -69
  599. package/packages/broker-sdk/dist/workflows/coordinator.d.ts.map +0 -1
  600. package/packages/broker-sdk/dist/workflows/coordinator.js +0 -585
  601. package/packages/broker-sdk/dist/workflows/coordinator.js.map +0 -1
  602. package/packages/broker-sdk/dist/workflows/index.d.ts +0 -11
  603. package/packages/broker-sdk/dist/workflows/index.d.ts.map +0 -1
  604. package/packages/broker-sdk/dist/workflows/index.js +0 -11
  605. package/packages/broker-sdk/dist/workflows/index.js.map +0 -1
  606. package/packages/broker-sdk/dist/workflows/run.d.ts +0 -33
  607. package/packages/broker-sdk/dist/workflows/run.d.ts.map +0 -1
  608. package/packages/broker-sdk/dist/workflows/run.js +0 -28
  609. package/packages/broker-sdk/dist/workflows/run.js.map +0 -1
  610. package/packages/broker-sdk/dist/workflows/runner.d.ts +0 -140
  611. package/packages/broker-sdk/dist/workflows/runner.d.ts.map +0 -1
  612. package/packages/broker-sdk/dist/workflows/runner.js +0 -962
  613. package/packages/broker-sdk/dist/workflows/runner.js.map +0 -1
  614. package/packages/broker-sdk/dist/workflows/templates.d.ts +0 -47
  615. package/packages/broker-sdk/dist/workflows/templates.d.ts.map +0 -1
  616. package/packages/broker-sdk/dist/workflows/templates.js +0 -395
  617. package/packages/broker-sdk/dist/workflows/templates.js.map +0 -1
  618. package/packages/broker-sdk/dist/workflows/trajectory.d.ts +0 -80
  619. package/packages/broker-sdk/dist/workflows/trajectory.d.ts.map +0 -1
  620. package/packages/broker-sdk/dist/workflows/trajectory.js +0 -362
  621. package/packages/broker-sdk/dist/workflows/trajectory.js.map +0 -1
  622. package/packages/broker-sdk/dist/workflows/types.d.ts +0 -140
  623. package/packages/broker-sdk/dist/workflows/types.d.ts.map +0 -1
  624. package/packages/broker-sdk/dist/workflows/types.js +0 -8
  625. package/packages/broker-sdk/dist/workflows/types.js.map +0 -1
  626. package/packages/broker-sdk/package.json +0 -81
  627. package/packages/broker-sdk/scripts/bundle-agent-relay.mjs +0 -53
  628. package/packages/broker-sdk/src/__tests__/error-scenarios.test.ts +0 -682
  629. package/packages/broker-sdk/src/__tests__/facade.test.ts +0 -296
  630. package/packages/broker-sdk/src/__tests__/integration.test.ts +0 -170
  631. package/packages/broker-sdk/src/__tests__/quickstart.test.ts +0 -198
  632. package/packages/broker-sdk/src/__tests__/swarm-coordinator.test.ts +0 -772
  633. package/packages/broker-sdk/src/__tests__/unit.test.ts +0 -243
  634. package/packages/broker-sdk/src/__tests__/workflow-runner.test.ts +0 -333
  635. package/packages/broker-sdk/src/client.ts +0 -510
  636. package/packages/broker-sdk/src/index.ts +0 -9
  637. package/packages/broker-sdk/src/logs.ts +0 -163
  638. package/packages/broker-sdk/src/protocol.ts +0 -276
  639. package/packages/broker-sdk/src/pty.ts +0 -16
  640. package/packages/broker-sdk/src/relay.ts +0 -625
  641. package/packages/broker-sdk/src/relaycast.ts +0 -221
  642. package/packages/broker-sdk/src/shadow.ts +0 -230
  643. package/packages/broker-sdk/src/workflows/README.md +0 -544
  644. package/packages/broker-sdk/src/workflows/builder.ts +0 -241
  645. package/packages/broker-sdk/src/workflows/builtin-templates/bug-fix.yaml +0 -75
  646. package/packages/broker-sdk/src/workflows/builtin-templates/code-review.yaml +0 -82
  647. package/packages/broker-sdk/src/workflows/builtin-templates/documentation.yaml +0 -70
  648. package/packages/broker-sdk/src/workflows/builtin-templates/feature-dev.yaml +0 -76
  649. package/packages/broker-sdk/src/workflows/builtin-templates/refactor.yaml +0 -82
  650. package/packages/broker-sdk/src/workflows/builtin-templates/security-audit.yaml +0 -84
  651. package/packages/broker-sdk/src/workflows/cli.ts +0 -93
  652. package/packages/broker-sdk/src/workflows/coordinator.ts +0 -758
  653. package/packages/broker-sdk/src/workflows/index.ts +0 -10
  654. package/packages/broker-sdk/src/workflows/run.ts +0 -55
  655. package/packages/broker-sdk/src/workflows/runner.ts +0 -1271
  656. package/packages/broker-sdk/src/workflows/schema.json +0 -333
  657. package/packages/broker-sdk/src/workflows/templates.ts +0 -544
  658. package/packages/broker-sdk/src/workflows/trajectory.ts +0 -507
  659. package/packages/broker-sdk/src/workflows/types.ts +0 -208
  660. package/packages/broker-sdk/tsconfig.json +0 -22
  661. package/packages/broker-sdk/vitest.config.ts +0 -9
  662. package/packages/continuity/dist/formatter.d.ts +0 -57
  663. package/packages/continuity/dist/formatter.d.ts.map +0 -1
  664. package/packages/continuity/dist/formatter.js +0 -448
  665. package/packages/continuity/dist/formatter.js.map +0 -1
  666. package/packages/continuity/dist/handoff-store.d.ts +0 -67
  667. package/packages/continuity/dist/handoff-store.d.ts.map +0 -1
  668. package/packages/continuity/dist/handoff-store.js +0 -472
  669. package/packages/continuity/dist/handoff-store.js.map +0 -1
  670. package/packages/continuity/dist/index.d.ts +0 -10
  671. package/packages/continuity/dist/index.d.ts.map +0 -1
  672. package/packages/continuity/dist/index.js +0 -11
  673. package/packages/continuity/dist/index.js.map +0 -1
  674. package/packages/continuity/dist/ledger-store.d.ts +0 -110
  675. package/packages/continuity/dist/ledger-store.d.ts.map +0 -1
  676. package/packages/continuity/dist/ledger-store.js +0 -500
  677. package/packages/continuity/dist/ledger-store.js.map +0 -1
  678. package/packages/continuity/dist/manager.d.ts +0 -183
  679. package/packages/continuity/dist/manager.d.ts.map +0 -1
  680. package/packages/continuity/dist/manager.js +0 -616
  681. package/packages/continuity/dist/manager.js.map +0 -1
  682. package/packages/continuity/dist/parser.d.ts +0 -76
  683. package/packages/continuity/dist/parser.d.ts.map +0 -1
  684. package/packages/continuity/dist/parser.js +0 -579
  685. package/packages/continuity/dist/parser.js.map +0 -1
  686. package/packages/continuity/dist/types.d.ts +0 -180
  687. package/packages/continuity/dist/types.d.ts.map +0 -1
  688. package/packages/continuity/dist/types.js +0 -2
  689. package/packages/continuity/dist/types.js.map +0 -1
  690. package/packages/continuity/package.json +0 -40
  691. package/packages/continuity/src/formatter.ts +0 -536
  692. package/packages/continuity/src/handoff-store.ts +0 -523
  693. package/packages/continuity/src/index.ts +0 -12
  694. package/packages/continuity/src/ledger-store.ts +0 -594
  695. package/packages/continuity/src/manager.test.ts +0 -291
  696. package/packages/continuity/src/manager.ts +0 -774
  697. package/packages/continuity/src/parser.test.ts +0 -292
  698. package/packages/continuity/src/parser.ts +0 -680
  699. package/packages/continuity/src/types.ts +0 -211
  700. package/packages/continuity/tsconfig.json +0 -21
  701. package/packages/continuity/vitest.config.ts +0 -9
  702. package/packages/daemon/dist/agent-manager.d.ts +0 -134
  703. package/packages/daemon/dist/agent-manager.d.ts.map +0 -1
  704. package/packages/daemon/dist/agent-manager.js +0 -578
  705. package/packages/daemon/dist/agent-manager.js.map +0 -1
  706. package/packages/daemon/dist/agent-registry.d.ts +0 -99
  707. package/packages/daemon/dist/agent-registry.d.ts.map +0 -1
  708. package/packages/daemon/dist/agent-registry.js +0 -213
  709. package/packages/daemon/dist/agent-registry.js.map +0 -1
  710. package/packages/daemon/dist/agent-signing.d.ts +0 -158
  711. package/packages/daemon/dist/agent-signing.d.ts.map +0 -1
  712. package/packages/daemon/dist/agent-signing.js +0 -523
  713. package/packages/daemon/dist/agent-signing.js.map +0 -1
  714. package/packages/daemon/dist/api.d.ts +0 -106
  715. package/packages/daemon/dist/api.d.ts.map +0 -1
  716. package/packages/daemon/dist/api.js +0 -895
  717. package/packages/daemon/dist/api.js.map +0 -1
  718. package/packages/daemon/dist/auth.d.ts +0 -94
  719. package/packages/daemon/dist/auth.d.ts.map +0 -1
  720. package/packages/daemon/dist/auth.js +0 -197
  721. package/packages/daemon/dist/auth.js.map +0 -1
  722. package/packages/daemon/dist/channel-membership-store.d.ts +0 -55
  723. package/packages/daemon/dist/channel-membership-store.d.ts.map +0 -1
  724. package/packages/daemon/dist/channel-membership-store.js +0 -176
  725. package/packages/daemon/dist/channel-membership-store.js.map +0 -1
  726. package/packages/daemon/dist/cli-auth.d.ts +0 -97
  727. package/packages/daemon/dist/cli-auth.d.ts.map +0 -1
  728. package/packages/daemon/dist/cli-auth.js +0 -808
  729. package/packages/daemon/dist/cli-auth.js.map +0 -1
  730. package/packages/daemon/dist/cloud-sync.d.ts +0 -263
  731. package/packages/daemon/dist/cloud-sync.d.ts.map +0 -1
  732. package/packages/daemon/dist/cloud-sync.js +0 -820
  733. package/packages/daemon/dist/cloud-sync.js.map +0 -1
  734. package/packages/daemon/dist/connection.d.ts +0 -137
  735. package/packages/daemon/dist/connection.d.ts.map +0 -1
  736. package/packages/daemon/dist/connection.js +0 -465
  737. package/packages/daemon/dist/connection.js.map +0 -1
  738. package/packages/daemon/dist/consensus-integration.d.ts +0 -168
  739. package/packages/daemon/dist/consensus-integration.d.ts.map +0 -1
  740. package/packages/daemon/dist/consensus-integration.js +0 -371
  741. package/packages/daemon/dist/consensus-integration.js.map +0 -1
  742. package/packages/daemon/dist/consensus.d.ts +0 -269
  743. package/packages/daemon/dist/consensus.d.ts.map +0 -1
  744. package/packages/daemon/dist/consensus.js +0 -632
  745. package/packages/daemon/dist/consensus.js.map +0 -1
  746. package/packages/daemon/dist/delivery-tracker.d.ts +0 -34
  747. package/packages/daemon/dist/delivery-tracker.d.ts.map +0 -1
  748. package/packages/daemon/dist/delivery-tracker.js +0 -104
  749. package/packages/daemon/dist/delivery-tracker.js.map +0 -1
  750. package/packages/daemon/dist/enhanced-features.d.ts +0 -118
  751. package/packages/daemon/dist/enhanced-features.d.ts.map +0 -1
  752. package/packages/daemon/dist/enhanced-features.js +0 -177
  753. package/packages/daemon/dist/enhanced-features.js.map +0 -1
  754. package/packages/daemon/dist/index.d.ts +0 -29
  755. package/packages/daemon/dist/index.d.ts.map +0 -1
  756. package/packages/daemon/dist/index.js +0 -34
  757. package/packages/daemon/dist/index.js.map +0 -1
  758. package/packages/daemon/dist/orchestrator.d.ts +0 -217
  759. package/packages/daemon/dist/orchestrator.d.ts.map +0 -1
  760. package/packages/daemon/dist/orchestrator.js +0 -1172
  761. package/packages/daemon/dist/orchestrator.js.map +0 -1
  762. package/packages/daemon/dist/rate-limiter.d.ts +0 -68
  763. package/packages/daemon/dist/rate-limiter.d.ts.map +0 -1
  764. package/packages/daemon/dist/rate-limiter.js +0 -130
  765. package/packages/daemon/dist/rate-limiter.js.map +0 -1
  766. package/packages/daemon/dist/registry.d.ts +0 -9
  767. package/packages/daemon/dist/registry.d.ts.map +0 -1
  768. package/packages/daemon/dist/registry.js +0 -9
  769. package/packages/daemon/dist/registry.js.map +0 -1
  770. package/packages/daemon/dist/repo-manager.d.ts +0 -116
  771. package/packages/daemon/dist/repo-manager.d.ts.map +0 -1
  772. package/packages/daemon/dist/repo-manager.js +0 -384
  773. package/packages/daemon/dist/repo-manager.js.map +0 -1
  774. package/packages/daemon/dist/router.d.ts +0 -389
  775. package/packages/daemon/dist/router.d.ts.map +0 -1
  776. package/packages/daemon/dist/router.js +0 -1607
  777. package/packages/daemon/dist/router.js.map +0 -1
  778. package/packages/daemon/dist/server.d.ts +0 -201
  779. package/packages/daemon/dist/server.d.ts.map +0 -1
  780. package/packages/daemon/dist/server.js +0 -1791
  781. package/packages/daemon/dist/server.js.map +0 -1
  782. package/packages/daemon/dist/spawn-manager.d.ts +0 -119
  783. package/packages/daemon/dist/spawn-manager.d.ts.map +0 -1
  784. package/packages/daemon/dist/spawn-manager.js +0 -319
  785. package/packages/daemon/dist/spawn-manager.js.map +0 -1
  786. package/packages/daemon/dist/sync-queue.d.ts +0 -116
  787. package/packages/daemon/dist/sync-queue.d.ts.map +0 -1
  788. package/packages/daemon/dist/sync-queue.js +0 -361
  789. package/packages/daemon/dist/sync-queue.js.map +0 -1
  790. package/packages/daemon/dist/types.d.ts +0 -133
  791. package/packages/daemon/dist/types.d.ts.map +0 -1
  792. package/packages/daemon/dist/types.js +0 -6
  793. package/packages/daemon/dist/types.js.map +0 -1
  794. package/packages/daemon/dist/workspace-manager.d.ts +0 -80
  795. package/packages/daemon/dist/workspace-manager.d.ts.map +0 -1
  796. package/packages/daemon/dist/workspace-manager.js +0 -314
  797. package/packages/daemon/dist/workspace-manager.js.map +0 -1
  798. package/packages/daemon/package.json +0 -56
  799. package/packages/daemon/src/agent-manager.ts +0 -679
  800. package/packages/daemon/src/agent-registry.ts +0 -284
  801. package/packages/daemon/src/agent-signing.ts +0 -707
  802. package/packages/daemon/src/api.ts +0 -1034
  803. package/packages/daemon/src/auth.ts +0 -276
  804. package/packages/daemon/src/channel-membership-store.ts +0 -217
  805. package/packages/daemon/src/cli-auth.ts +0 -945
  806. package/packages/daemon/src/cloud-sync.ts +0 -1100
  807. package/packages/daemon/src/connection.ts +0 -561
  808. package/packages/daemon/src/consensus-integration.ts +0 -510
  809. package/packages/daemon/src/consensus.ts +0 -848
  810. package/packages/daemon/src/delivery-tracker.ts +0 -145
  811. package/packages/daemon/src/enhanced-features.ts +0 -390
  812. package/packages/daemon/src/index.ts +0 -48
  813. package/packages/daemon/src/orchestrator.test.ts +0 -231
  814. package/packages/daemon/src/orchestrator.ts +0 -1376
  815. package/packages/daemon/src/rate-limiter.ts +0 -172
  816. package/packages/daemon/src/registry.ts +0 -8
  817. package/packages/daemon/src/repo-manager.ts +0 -468
  818. package/packages/daemon/src/router.test.ts +0 -181
  819. package/packages/daemon/src/router.ts +0 -1925
  820. package/packages/daemon/src/server.ts +0 -2051
  821. package/packages/daemon/src/spawn-manager-set-model.test.ts +0 -144
  822. package/packages/daemon/src/spawn-manager.ts +0 -415
  823. package/packages/daemon/src/sync-queue.ts +0 -477
  824. package/packages/daemon/src/types.ts +0 -158
  825. package/packages/daemon/src/workspace-manager.ts +0 -371
  826. package/packages/daemon/tsconfig.json +0 -21
  827. package/packages/daemon/vitest.config.ts +0 -9
  828. package/packages/mcp/CHANGELOG.md +0 -28
  829. package/packages/mcp/LICENSE +0 -190
  830. package/packages/mcp/README.md +0 -266
  831. package/packages/mcp/dist/bin.d.ts +0 -12
  832. package/packages/mcp/dist/bin.d.ts.map +0 -1
  833. package/packages/mcp/dist/bin.js +0 -179
  834. package/packages/mcp/dist/bin.js.map +0 -1
  835. package/packages/mcp/dist/client-adapter.d.ts +0 -164
  836. package/packages/mcp/dist/client-adapter.d.ts.map +0 -1
  837. package/packages/mcp/dist/client-adapter.js +0 -231
  838. package/packages/mcp/dist/client-adapter.js.map +0 -1
  839. package/packages/mcp/dist/cloud.d.ts +0 -13
  840. package/packages/mcp/dist/cloud.d.ts.map +0 -1
  841. package/packages/mcp/dist/cloud.js +0 -25
  842. package/packages/mcp/dist/cloud.js.map +0 -1
  843. package/packages/mcp/dist/errors.d.ts +0 -9
  844. package/packages/mcp/dist/errors.d.ts.map +0 -1
  845. package/packages/mcp/dist/errors.js +0 -9
  846. package/packages/mcp/dist/errors.js.map +0 -1
  847. package/packages/mcp/dist/file-transport.d.ts +0 -103
  848. package/packages/mcp/dist/file-transport.d.ts.map +0 -1
  849. package/packages/mcp/dist/file-transport.js +0 -204
  850. package/packages/mcp/dist/file-transport.js.map +0 -1
  851. package/packages/mcp/dist/hybrid-client.d.ts +0 -5
  852. package/packages/mcp/dist/hybrid-client.d.ts.map +0 -1
  853. package/packages/mcp/dist/hybrid-client.js +0 -23
  854. package/packages/mcp/dist/hybrid-client.js.map +0 -1
  855. package/packages/mcp/dist/index.d.ts +0 -11
  856. package/packages/mcp/dist/index.d.ts.map +0 -1
  857. package/packages/mcp/dist/index.js +0 -25
  858. package/packages/mcp/dist/index.js.map +0 -1
  859. package/packages/mcp/dist/install-cli.d.ts +0 -35
  860. package/packages/mcp/dist/install-cli.d.ts.map +0 -1
  861. package/packages/mcp/dist/install-cli.js +0 -157
  862. package/packages/mcp/dist/install-cli.js.map +0 -1
  863. package/packages/mcp/dist/install.d.ts +0 -123
  864. package/packages/mcp/dist/install.d.ts.map +0 -1
  865. package/packages/mcp/dist/install.js +0 -661
  866. package/packages/mcp/dist/install.js.map +0 -1
  867. package/packages/mcp/dist/prompts/index.d.ts +0 -2
  868. package/packages/mcp/dist/prompts/index.d.ts.map +0 -1
  869. package/packages/mcp/dist/prompts/index.js +0 -2
  870. package/packages/mcp/dist/prompts/index.js.map +0 -1
  871. package/packages/mcp/dist/prompts/protocol.d.ts +0 -11
  872. package/packages/mcp/dist/prompts/protocol.d.ts.map +0 -1
  873. package/packages/mcp/dist/prompts/protocol.js +0 -160
  874. package/packages/mcp/dist/prompts/protocol.js.map +0 -1
  875. package/packages/mcp/dist/resources/agents.d.ts +0 -11
  876. package/packages/mcp/dist/resources/agents.d.ts.map +0 -1
  877. package/packages/mcp/dist/resources/agents.js +0 -17
  878. package/packages/mcp/dist/resources/agents.js.map +0 -1
  879. package/packages/mcp/dist/resources/inbox.d.ts +0 -11
  880. package/packages/mcp/dist/resources/inbox.d.ts.map +0 -1
  881. package/packages/mcp/dist/resources/inbox.js +0 -17
  882. package/packages/mcp/dist/resources/inbox.js.map +0 -1
  883. package/packages/mcp/dist/resources/index.d.ts +0 -4
  884. package/packages/mcp/dist/resources/index.d.ts.map +0 -1
  885. package/packages/mcp/dist/resources/index.js +0 -4
  886. package/packages/mcp/dist/resources/index.js.map +0 -1
  887. package/packages/mcp/dist/resources/project.d.ts +0 -11
  888. package/packages/mcp/dist/resources/project.d.ts.map +0 -1
  889. package/packages/mcp/dist/resources/project.js +0 -21
  890. package/packages/mcp/dist/resources/project.js.map +0 -1
  891. package/packages/mcp/dist/server.d.ts +0 -23
  892. package/packages/mcp/dist/server.d.ts.map +0 -1
  893. package/packages/mcp/dist/server.js +0 -317
  894. package/packages/mcp/dist/server.js.map +0 -1
  895. package/packages/mcp/dist/simple.d.ts +0 -170
  896. package/packages/mcp/dist/simple.d.ts.map +0 -1
  897. package/packages/mcp/dist/simple.js +0 -120
  898. package/packages/mcp/dist/simple.js.map +0 -1
  899. package/packages/mcp/dist/tools/index.d.ts +0 -20
  900. package/packages/mcp/dist/tools/index.d.ts.map +0 -1
  901. package/packages/mcp/dist/tools/index.js +0 -20
  902. package/packages/mcp/dist/tools/index.js.map +0 -1
  903. package/packages/mcp/dist/tools/relay-broadcast.d.ts +0 -20
  904. package/packages/mcp/dist/tools/relay-broadcast.d.ts.map +0 -1
  905. package/packages/mcp/dist/tools/relay-broadcast.js +0 -25
  906. package/packages/mcp/dist/tools/relay-broadcast.js.map +0 -1
  907. package/packages/mcp/dist/tools/relay-channel.d.ts +0 -75
  908. package/packages/mcp/dist/tools/relay-channel.d.ts.map +0 -1
  909. package/packages/mcp/dist/tools/relay-channel.js +0 -124
  910. package/packages/mcp/dist/tools/relay-channel.js.map +0 -1
  911. package/packages/mcp/dist/tools/relay-connected.d.ts +0 -17
  912. package/packages/mcp/dist/tools/relay-connected.d.ts.map +0 -1
  913. package/packages/mcp/dist/tools/relay-connected.js +0 -54
  914. package/packages/mcp/dist/tools/relay-connected.js.map +0 -1
  915. package/packages/mcp/dist/tools/relay-consensus.d.ts +0 -45
  916. package/packages/mcp/dist/tools/relay-consensus.d.ts.map +0 -1
  917. package/packages/mcp/dist/tools/relay-consensus.js +0 -80
  918. package/packages/mcp/dist/tools/relay-consensus.js.map +0 -1
  919. package/packages/mcp/dist/tools/relay-continuity.d.ts +0 -35
  920. package/packages/mcp/dist/tools/relay-continuity.d.ts.map +0 -1
  921. package/packages/mcp/dist/tools/relay-continuity.js +0 -101
  922. package/packages/mcp/dist/tools/relay-continuity.js.map +0 -1
  923. package/packages/mcp/dist/tools/relay-health.d.ts +0 -20
  924. package/packages/mcp/dist/tools/relay-health.d.ts.map +0 -1
  925. package/packages/mcp/dist/tools/relay-health.js +0 -130
  926. package/packages/mcp/dist/tools/relay-health.js.map +0 -1
  927. package/packages/mcp/dist/tools/relay-inbox.d.ts +0 -26
  928. package/packages/mcp/dist/tools/relay-inbox.d.ts.map +0 -1
  929. package/packages/mcp/dist/tools/relay-inbox.js +0 -58
  930. package/packages/mcp/dist/tools/relay-inbox.js.map +0 -1
  931. package/packages/mcp/dist/tools/relay-logs.d.ts +0 -20
  932. package/packages/mcp/dist/tools/relay-logs.d.ts.map +0 -1
  933. package/packages/mcp/dist/tools/relay-logs.js +0 -90
  934. package/packages/mcp/dist/tools/relay-logs.js.map +0 -1
  935. package/packages/mcp/dist/tools/relay-messages.d.ts +0 -32
  936. package/packages/mcp/dist/tools/relay-messages.d.ts.map +0 -1
  937. package/packages/mcp/dist/tools/relay-messages.js +0 -61
  938. package/packages/mcp/dist/tools/relay-messages.js.map +0 -1
  939. package/packages/mcp/dist/tools/relay-metrics.d.ts +0 -17
  940. package/packages/mcp/dist/tools/relay-metrics.d.ts.map +0 -1
  941. package/packages/mcp/dist/tools/relay-metrics.js +0 -124
  942. package/packages/mcp/dist/tools/relay-metrics.js.map +0 -1
  943. package/packages/mcp/dist/tools/relay-release.d.ts +0 -20
  944. package/packages/mcp/dist/tools/relay-release.d.ts.map +0 -1
  945. package/packages/mcp/dist/tools/relay-release.js +0 -44
  946. package/packages/mcp/dist/tools/relay-release.js.map +0 -1
  947. package/packages/mcp/dist/tools/relay-remove-agent.d.ts +0 -20
  948. package/packages/mcp/dist/tools/relay-remove-agent.d.ts.map +0 -1
  949. package/packages/mcp/dist/tools/relay-remove-agent.js +0 -50
  950. package/packages/mcp/dist/tools/relay-remove-agent.js.map +0 -1
  951. package/packages/mcp/dist/tools/relay-send.d.ts +0 -29
  952. package/packages/mcp/dist/tools/relay-send.d.ts.map +0 -1
  953. package/packages/mcp/dist/tools/relay-send.js +0 -73
  954. package/packages/mcp/dist/tools/relay-send.js.map +0 -1
  955. package/packages/mcp/dist/tools/relay-set-model.d.ts +0 -23
  956. package/packages/mcp/dist/tools/relay-set-model.d.ts.map +0 -1
  957. package/packages/mcp/dist/tools/relay-set-model.js +0 -52
  958. package/packages/mcp/dist/tools/relay-set-model.js.map +0 -1
  959. package/packages/mcp/dist/tools/relay-shadow.d.ts +0 -30
  960. package/packages/mcp/dist/tools/relay-shadow.d.ts.map +0 -1
  961. package/packages/mcp/dist/tools/relay-shadow.js +0 -55
  962. package/packages/mcp/dist/tools/relay-shadow.js.map +0 -1
  963. package/packages/mcp/dist/tools/relay-spawn.d.ts +0 -36
  964. package/packages/mcp/dist/tools/relay-spawn.d.ts.map +0 -1
  965. package/packages/mcp/dist/tools/relay-spawn.js +0 -73
  966. package/packages/mcp/dist/tools/relay-spawn.js.map +0 -1
  967. package/packages/mcp/dist/tools/relay-status.d.ts +0 -11
  968. package/packages/mcp/dist/tools/relay-status.d.ts.map +0 -1
  969. package/packages/mcp/dist/tools/relay-status.js +0 -43
  970. package/packages/mcp/dist/tools/relay-status.js.map +0 -1
  971. package/packages/mcp/dist/tools/relay-subscribe.d.ts +0 -27
  972. package/packages/mcp/dist/tools/relay-subscribe.d.ts.map +0 -1
  973. package/packages/mcp/dist/tools/relay-subscribe.js +0 -49
  974. package/packages/mcp/dist/tools/relay-subscribe.js.map +0 -1
  975. package/packages/mcp/dist/tools/relay-who.d.ts +0 -20
  976. package/packages/mcp/dist/tools/relay-who.d.ts.map +0 -1
  977. package/packages/mcp/dist/tools/relay-who.js +0 -62
  978. package/packages/mcp/dist/tools/relay-who.js.map +0 -1
  979. package/packages/mcp/package.json +0 -82
  980. package/packages/mcp/src/bin.ts +0 -200
  981. package/packages/mcp/src/client-adapter.ts +0 -358
  982. package/packages/mcp/src/cloud.ts +0 -41
  983. package/packages/mcp/src/errors.ts +0 -17
  984. package/packages/mcp/src/file-transport.ts +0 -275
  985. package/packages/mcp/src/hybrid-client.ts +0 -25
  986. package/packages/mcp/src/index.ts +0 -143
  987. package/packages/mcp/src/install-cli.ts +0 -210
  988. package/packages/mcp/src/install.ts +0 -820
  989. package/packages/mcp/src/prompts/index.ts +0 -1
  990. package/packages/mcp/src/prompts/protocol.ts +0 -164
  991. package/packages/mcp/src/resources/agents.ts +0 -21
  992. package/packages/mcp/src/resources/inbox.ts +0 -21
  993. package/packages/mcp/src/resources/index.ts +0 -3
  994. package/packages/mcp/src/resources/project.ts +0 -29
  995. package/packages/mcp/src/server.ts +0 -475
  996. package/packages/mcp/src/simple.ts +0 -214
  997. package/packages/mcp/src/tools/index.ts +0 -155
  998. package/packages/mcp/src/tools/relay-broadcast.ts +0 -32
  999. package/packages/mcp/src/tools/relay-channel.ts +0 -151
  1000. package/packages/mcp/src/tools/relay-connected.ts +0 -67
  1001. package/packages/mcp/src/tools/relay-consensus.ts +0 -92
  1002. package/packages/mcp/src/tools/relay-continuity.ts +0 -127
  1003. package/packages/mcp/src/tools/relay-health.ts +0 -148
  1004. package/packages/mcp/src/tools/relay-inbox.ts +0 -70
  1005. package/packages/mcp/src/tools/relay-logs.ts +0 -106
  1006. package/packages/mcp/src/tools/relay-messages.ts +0 -66
  1007. package/packages/mcp/src/tools/relay-metrics.ts +0 -142
  1008. package/packages/mcp/src/tools/relay-release.ts +0 -54
  1009. package/packages/mcp/src/tools/relay-remove-agent.ts +0 -58
  1010. package/packages/mcp/src/tools/relay-send.ts +0 -84
  1011. package/packages/mcp/src/tools/relay-set-model.ts +0 -62
  1012. package/packages/mcp/src/tools/relay-shadow.ts +0 -67
  1013. package/packages/mcp/src/tools/relay-spawn.ts +0 -87
  1014. package/packages/mcp/src/tools/relay-status.ts +0 -57
  1015. package/packages/mcp/src/tools/relay-subscribe.ts +0 -61
  1016. package/packages/mcp/src/tools/relay-who.ts +0 -75
  1017. package/packages/mcp/tests/client.test.ts +0 -451
  1018. package/packages/mcp/tests/discover.test.ts +0 -256
  1019. package/packages/mcp/tests/install.test.ts +0 -123
  1020. package/packages/mcp/tests/prompts.test.ts +0 -12
  1021. package/packages/mcp/tests/resources.test.ts +0 -53
  1022. package/packages/mcp/tests/tools.test.ts +0 -1516
  1023. package/packages/mcp/tsconfig.json +0 -22
  1024. package/packages/mcp/vitest.config.ts +0 -9
  1025. package/packages/protocol/dist/channels.d.ts +0 -137
  1026. package/packages/protocol/dist/channels.d.ts.map +0 -1
  1027. package/packages/protocol/dist/channels.js +0 -154
  1028. package/packages/protocol/dist/channels.js.map +0 -1
  1029. package/packages/protocol/dist/framing.d.ts +0 -80
  1030. package/packages/protocol/dist/framing.d.ts.map +0 -1
  1031. package/packages/protocol/dist/framing.js +0 -206
  1032. package/packages/protocol/dist/framing.js.map +0 -1
  1033. package/packages/protocol/dist/id-generator.d.ts +0 -35
  1034. package/packages/protocol/dist/id-generator.d.ts.map +0 -1
  1035. package/packages/protocol/dist/id-generator.js +0 -60
  1036. package/packages/protocol/dist/id-generator.js.map +0 -1
  1037. package/packages/protocol/dist/index.d.ts +0 -5
  1038. package/packages/protocol/dist/index.d.ts.map +0 -1
  1039. package/packages/protocol/dist/index.js +0 -5
  1040. package/packages/protocol/dist/index.js.map +0 -1
  1041. package/packages/protocol/dist/relay-pty-schemas.d.ts +0 -340
  1042. package/packages/protocol/dist/relay-pty-schemas.d.ts.map +0 -1
  1043. package/packages/protocol/dist/relay-pty-schemas.js +0 -60
  1044. package/packages/protocol/dist/relay-pty-schemas.js.map +0 -1
  1045. package/packages/protocol/dist/types.d.ts +0 -793
  1046. package/packages/protocol/dist/types.d.ts.map +0 -1
  1047. package/packages/protocol/dist/types.js +0 -8
  1048. package/packages/protocol/dist/types.js.map +0 -1
  1049. package/packages/protocol/package.json +0 -61
  1050. package/packages/protocol/src/channels.test.ts +0 -330
  1051. package/packages/protocol/src/channels.ts +0 -270
  1052. package/packages/protocol/src/framing.test.ts +0 -164
  1053. package/packages/protocol/src/framing.ts +0 -242
  1054. package/packages/protocol/src/id-generator.ts +0 -69
  1055. package/packages/protocol/src/index.ts +0 -4
  1056. package/packages/protocol/src/relay-pty-schemas.ts +0 -400
  1057. package/packages/protocol/src/types.test.ts +0 -271
  1058. package/packages/protocol/src/types.ts +0 -988
  1059. package/packages/protocol/tsconfig.json +0 -21
  1060. package/packages/protocol/vitest.config.ts +0 -9
  1061. package/packages/resiliency/dist/cgroup-manager.d.ts +0 -152
  1062. package/packages/resiliency/dist/cgroup-manager.d.ts.map +0 -1
  1063. package/packages/resiliency/dist/cgroup-manager.js +0 -394
  1064. package/packages/resiliency/dist/cgroup-manager.js.map +0 -1
  1065. package/packages/resiliency/dist/context-persistence.d.ts +0 -140
  1066. package/packages/resiliency/dist/context-persistence.d.ts.map +0 -1
  1067. package/packages/resiliency/dist/context-persistence.js +0 -397
  1068. package/packages/resiliency/dist/context-persistence.js.map +0 -1
  1069. package/packages/resiliency/dist/crash-insights.d.ts +0 -156
  1070. package/packages/resiliency/dist/crash-insights.d.ts.map +0 -1
  1071. package/packages/resiliency/dist/crash-insights.js +0 -492
  1072. package/packages/resiliency/dist/crash-insights.js.map +0 -1
  1073. package/packages/resiliency/dist/gossip-health.d.ts +0 -137
  1074. package/packages/resiliency/dist/gossip-health.d.ts.map +0 -1
  1075. package/packages/resiliency/dist/gossip-health.js +0 -241
  1076. package/packages/resiliency/dist/gossip-health.js.map +0 -1
  1077. package/packages/resiliency/dist/health-monitor.d.ts +0 -97
  1078. package/packages/resiliency/dist/health-monitor.d.ts.map +0 -1
  1079. package/packages/resiliency/dist/health-monitor.js +0 -291
  1080. package/packages/resiliency/dist/health-monitor.js.map +0 -1
  1081. package/packages/resiliency/dist/index.d.ts +0 -69
  1082. package/packages/resiliency/dist/index.d.ts.map +0 -1
  1083. package/packages/resiliency/dist/index.js +0 -69
  1084. package/packages/resiliency/dist/index.js.map +0 -1
  1085. package/packages/resiliency/dist/leader-watchdog.d.ts +0 -109
  1086. package/packages/resiliency/dist/leader-watchdog.d.ts.map +0 -1
  1087. package/packages/resiliency/dist/leader-watchdog.js +0 -189
  1088. package/packages/resiliency/dist/leader-watchdog.js.map +0 -1
  1089. package/packages/resiliency/dist/logger.d.ts +0 -114
  1090. package/packages/resiliency/dist/logger.d.ts.map +0 -1
  1091. package/packages/resiliency/dist/logger.js +0 -250
  1092. package/packages/resiliency/dist/logger.js.map +0 -1
  1093. package/packages/resiliency/dist/memory-monitor.d.ts +0 -172
  1094. package/packages/resiliency/dist/memory-monitor.d.ts.map +0 -1
  1095. package/packages/resiliency/dist/memory-monitor.js +0 -599
  1096. package/packages/resiliency/dist/memory-monitor.js.map +0 -1
  1097. package/packages/resiliency/dist/metrics.d.ts +0 -115
  1098. package/packages/resiliency/dist/metrics.d.ts.map +0 -1
  1099. package/packages/resiliency/dist/metrics.js +0 -239
  1100. package/packages/resiliency/dist/metrics.js.map +0 -1
  1101. package/packages/resiliency/dist/provider-context.d.ts +0 -100
  1102. package/packages/resiliency/dist/provider-context.d.ts.map +0 -1
  1103. package/packages/resiliency/dist/provider-context.js +0 -362
  1104. package/packages/resiliency/dist/provider-context.js.map +0 -1
  1105. package/packages/resiliency/dist/stateless-lead.d.ts +0 -149
  1106. package/packages/resiliency/dist/stateless-lead.d.ts.map +0 -1
  1107. package/packages/resiliency/dist/stateless-lead.js +0 -308
  1108. package/packages/resiliency/dist/stateless-lead.js.map +0 -1
  1109. package/packages/resiliency/dist/supervisor.d.ts +0 -147
  1110. package/packages/resiliency/dist/supervisor.d.ts.map +0 -1
  1111. package/packages/resiliency/dist/supervisor.js +0 -459
  1112. package/packages/resiliency/dist/supervisor.js.map +0 -1
  1113. package/packages/resiliency/package.json +0 -38
  1114. package/packages/resiliency/src/cgroup-manager.ts +0 -468
  1115. package/packages/resiliency/src/context-persistence.ts +0 -538
  1116. package/packages/resiliency/src/crash-insights.test.ts +0 -620
  1117. package/packages/resiliency/src/crash-insights.ts +0 -660
  1118. package/packages/resiliency/src/gossip-health.ts +0 -333
  1119. package/packages/resiliency/src/health-monitor.ts +0 -371
  1120. package/packages/resiliency/src/index.ts +0 -157
  1121. package/packages/resiliency/src/leader-watchdog.ts +0 -260
  1122. package/packages/resiliency/src/logger.ts +0 -320
  1123. package/packages/resiliency/src/memory-monitor.test.ts +0 -637
  1124. package/packages/resiliency/src/memory-monitor.ts +0 -740
  1125. package/packages/resiliency/src/metrics.ts +0 -311
  1126. package/packages/resiliency/src/provider-context.ts +0 -452
  1127. package/packages/resiliency/src/stateless-lead.ts +0 -408
  1128. package/packages/resiliency/src/supervisor.ts +0 -578
  1129. package/packages/resiliency/tsconfig.json +0 -21
  1130. package/packages/resiliency/vitest.config.ts +0 -9
  1131. package/packages/sdk/dist/discovery.d.ts +0 -10
  1132. package/packages/sdk/dist/discovery.d.ts.map +0 -1
  1133. package/packages/sdk/dist/discovery.js +0 -22
  1134. package/packages/sdk/dist/discovery.js.map +0 -1
  1135. package/packages/sdk/dist/errors.d.ts +0 -9
  1136. package/packages/sdk/dist/errors.d.ts.map +0 -1
  1137. package/packages/sdk/dist/errors.js +0 -9
  1138. package/packages/sdk/dist/errors.js.map +0 -1
  1139. package/packages/sdk/dist/protocol/index.d.ts +0 -8
  1140. package/packages/sdk/dist/protocol/index.d.ts.map +0 -1
  1141. package/packages/sdk/dist/protocol/index.js +0 -8
  1142. package/packages/sdk/dist/protocol/index.js.map +0 -1
  1143. package/packages/sdk/examples/SWARM_CAPABILITIES.md +0 -498
  1144. package/packages/sdk/examples/SWARM_PATTERNS.md +0 -541
  1145. package/packages/sdk/src/client.test.ts +0 -1041
  1146. package/packages/sdk/src/discovery.ts +0 -38
  1147. package/packages/sdk/src/errors.ts +0 -17
  1148. package/packages/sdk/src/logs.test.ts +0 -98
  1149. package/packages/sdk/src/protocol/framing.test.ts +0 -164
  1150. package/packages/sdk/src/protocol/index.ts +0 -8
  1151. package/packages/spawner/.trajectories/index.json +0 -5
  1152. package/packages/spawner/API.md +0 -256
  1153. package/packages/spawner/dist/index.d.ts +0 -8
  1154. package/packages/spawner/dist/index.d.ts.map +0 -1
  1155. package/packages/spawner/dist/index.js +0 -8
  1156. package/packages/spawner/dist/index.js.map +0 -1
  1157. package/packages/spawner/dist/types.d.ts +0 -552
  1158. package/packages/spawner/dist/types.d.ts.map +0 -1
  1159. package/packages/spawner/dist/types.js +0 -193
  1160. package/packages/spawner/dist/types.js.map +0 -1
  1161. package/packages/spawner/package.json +0 -47
  1162. package/packages/spawner/src/index.ts +0 -8
  1163. package/packages/spawner/src/types.test.ts +0 -385
  1164. package/packages/spawner/src/types.ts +0 -228
  1165. package/packages/spawner/tsconfig.json +0 -19
  1166. package/packages/spawner/vitest.config.ts +0 -9
  1167. package/packages/state/dist/agent-state.d.ts +0 -40
  1168. package/packages/state/dist/agent-state.d.ts.map +0 -1
  1169. package/packages/state/dist/agent-state.js +0 -120
  1170. package/packages/state/dist/agent-state.js.map +0 -1
  1171. package/packages/state/dist/index.d.ts +0 -8
  1172. package/packages/state/dist/index.d.ts.map +0 -1
  1173. package/packages/state/dist/index.js +0 -8
  1174. package/packages/state/dist/index.js.map +0 -1
  1175. package/packages/state/package.json +0 -37
  1176. package/packages/state/src/agent-state.test.ts +0 -335
  1177. package/packages/state/src/agent-state.ts +0 -153
  1178. package/packages/state/src/index.ts +0 -12
  1179. package/packages/state/tsconfig.json +0 -21
  1180. package/packages/state/vitest.config.ts +0 -9
  1181. package/packages/storage/dist/adapter.d.ts +0 -189
  1182. package/packages/storage/dist/adapter.d.ts.map +0 -1
  1183. package/packages/storage/dist/adapter.js +0 -267
  1184. package/packages/storage/dist/adapter.js.map +0 -1
  1185. package/packages/storage/dist/batched-sqlite-adapter.d.ts +0 -75
  1186. package/packages/storage/dist/batched-sqlite-adapter.d.ts.map +0 -1
  1187. package/packages/storage/dist/batched-sqlite-adapter.js +0 -189
  1188. package/packages/storage/dist/batched-sqlite-adapter.js.map +0 -1
  1189. package/packages/storage/dist/dead-letter-queue.d.ts +0 -196
  1190. package/packages/storage/dist/dead-letter-queue.d.ts.map +0 -1
  1191. package/packages/storage/dist/dead-letter-queue.js +0 -427
  1192. package/packages/storage/dist/dead-letter-queue.js.map +0 -1
  1193. package/packages/storage/dist/dlq-adapter.d.ts +0 -195
  1194. package/packages/storage/dist/dlq-adapter.d.ts.map +0 -1
  1195. package/packages/storage/dist/dlq-adapter.js +0 -664
  1196. package/packages/storage/dist/dlq-adapter.js.map +0 -1
  1197. package/packages/storage/dist/index.d.ts +0 -6
  1198. package/packages/storage/dist/index.d.ts.map +0 -1
  1199. package/packages/storage/dist/index.js +0 -7
  1200. package/packages/storage/dist/index.js.map +0 -1
  1201. package/packages/storage/dist/jsonl-adapter.d.ts +0 -91
  1202. package/packages/storage/dist/jsonl-adapter.d.ts.map +0 -1
  1203. package/packages/storage/dist/jsonl-adapter.js +0 -580
  1204. package/packages/storage/dist/jsonl-adapter.js.map +0 -1
  1205. package/packages/storage/dist/sqlite-adapter.d.ts +0 -131
  1206. package/packages/storage/dist/sqlite-adapter.d.ts.map +0 -1
  1207. package/packages/storage/dist/sqlite-adapter.js +0 -865
  1208. package/packages/storage/dist/sqlite-adapter.js.map +0 -1
  1209. package/packages/storage/package.json +0 -74
  1210. package/packages/storage/src/adapter.ts +0 -446
  1211. package/packages/storage/src/batched-sqlite-adapter.test.ts +0 -256
  1212. package/packages/storage/src/batched-sqlite-adapter.ts +0 -239
  1213. package/packages/storage/src/dead-letter-queue.ts +0 -643
  1214. package/packages/storage/src/dlq-adapter.test.ts +0 -509
  1215. package/packages/storage/src/dlq-adapter.ts +0 -954
  1216. package/packages/storage/src/index.ts +0 -6
  1217. package/packages/storage/src/jsonl-adapter.test.ts +0 -239
  1218. package/packages/storage/src/jsonl-adapter.ts +0 -704
  1219. package/packages/storage/src/memory-adapter.test.ts +0 -36
  1220. package/packages/storage/src/sqlite-adapter.test.ts +0 -580
  1221. package/packages/storage/src/sqlite-adapter.ts +0 -1099
  1222. package/packages/storage/tsconfig.json +0 -21
  1223. package/packages/storage/vitest.config.ts +0 -9
  1224. package/packages/wrapper/dist/__fixtures__/claude-outputs.d.ts +0 -49
  1225. package/packages/wrapper/dist/__fixtures__/claude-outputs.d.ts.map +0 -1
  1226. package/packages/wrapper/dist/__fixtures__/claude-outputs.js +0 -443
  1227. package/packages/wrapper/dist/__fixtures__/claude-outputs.js.map +0 -1
  1228. package/packages/wrapper/dist/__fixtures__/codex-outputs.d.ts +0 -9
  1229. package/packages/wrapper/dist/__fixtures__/codex-outputs.d.ts.map +0 -1
  1230. package/packages/wrapper/dist/__fixtures__/codex-outputs.js +0 -94
  1231. package/packages/wrapper/dist/__fixtures__/codex-outputs.js.map +0 -1
  1232. package/packages/wrapper/dist/__fixtures__/gemini-outputs.d.ts +0 -19
  1233. package/packages/wrapper/dist/__fixtures__/gemini-outputs.d.ts.map +0 -1
  1234. package/packages/wrapper/dist/__fixtures__/gemini-outputs.js +0 -144
  1235. package/packages/wrapper/dist/__fixtures__/gemini-outputs.js.map +0 -1
  1236. package/packages/wrapper/dist/__fixtures__/index.d.ts +0 -68
  1237. package/packages/wrapper/dist/__fixtures__/index.d.ts.map +0 -1
  1238. package/packages/wrapper/dist/__fixtures__/index.js +0 -44
  1239. package/packages/wrapper/dist/__fixtures__/index.js.map +0 -1
  1240. package/packages/wrapper/dist/auth-detection.d.ts +0 -49
  1241. package/packages/wrapper/dist/auth-detection.d.ts.map +0 -1
  1242. package/packages/wrapper/dist/auth-detection.js +0 -199
  1243. package/packages/wrapper/dist/auth-detection.js.map +0 -1
  1244. package/packages/wrapper/dist/base-wrapper.d.ts +0 -254
  1245. package/packages/wrapper/dist/base-wrapper.d.ts.map +0 -1
  1246. package/packages/wrapper/dist/base-wrapper.js +0 -664
  1247. package/packages/wrapper/dist/base-wrapper.js.map +0 -1
  1248. package/packages/wrapper/dist/client.d.ts +0 -291
  1249. package/packages/wrapper/dist/client.d.ts.map +0 -1
  1250. package/packages/wrapper/dist/client.js +0 -926
  1251. package/packages/wrapper/dist/client.js.map +0 -1
  1252. package/packages/wrapper/dist/id-generator.d.ts +0 -35
  1253. package/packages/wrapper/dist/id-generator.d.ts.map +0 -1
  1254. package/packages/wrapper/dist/id-generator.js +0 -60
  1255. package/packages/wrapper/dist/id-generator.js.map +0 -1
  1256. package/packages/wrapper/dist/idle-detector.d.ts +0 -114
  1257. package/packages/wrapper/dist/idle-detector.d.ts.map +0 -1
  1258. package/packages/wrapper/dist/idle-detector.js +0 -317
  1259. package/packages/wrapper/dist/idle-detector.js.map +0 -1
  1260. package/packages/wrapper/dist/inbox.d.ts +0 -37
  1261. package/packages/wrapper/dist/inbox.d.ts.map +0 -1
  1262. package/packages/wrapper/dist/inbox.js +0 -73
  1263. package/packages/wrapper/dist/inbox.js.map +0 -1
  1264. package/packages/wrapper/dist/index.d.ts +0 -40
  1265. package/packages/wrapper/dist/index.d.ts.map +0 -1
  1266. package/packages/wrapper/dist/index.js +0 -53
  1267. package/packages/wrapper/dist/index.js.map +0 -1
  1268. package/packages/wrapper/dist/opencode-api.d.ts +0 -106
  1269. package/packages/wrapper/dist/opencode-api.d.ts.map +0 -1
  1270. package/packages/wrapper/dist/opencode-api.js +0 -219
  1271. package/packages/wrapper/dist/opencode-api.js.map +0 -1
  1272. package/packages/wrapper/dist/opencode-wrapper.d.ts +0 -161
  1273. package/packages/wrapper/dist/opencode-wrapper.d.ts.map +0 -1
  1274. package/packages/wrapper/dist/opencode-wrapper.js +0 -438
  1275. package/packages/wrapper/dist/opencode-wrapper.js.map +0 -1
  1276. package/packages/wrapper/dist/parser.d.ts +0 -236
  1277. package/packages/wrapper/dist/parser.d.ts.map +0 -1
  1278. package/packages/wrapper/dist/parser.js +0 -1238
  1279. package/packages/wrapper/dist/parser.js.map +0 -1
  1280. package/packages/wrapper/dist/prompt-composer.d.ts +0 -67
  1281. package/packages/wrapper/dist/prompt-composer.d.ts.map +0 -1
  1282. package/packages/wrapper/dist/prompt-composer.js +0 -168
  1283. package/packages/wrapper/dist/prompt-composer.js.map +0 -1
  1284. package/packages/wrapper/dist/relay-pty-orchestrator.d.ts +0 -486
  1285. package/packages/wrapper/dist/relay-pty-orchestrator.d.ts.map +0 -1
  1286. package/packages/wrapper/dist/relay-pty-orchestrator.js +0 -2550
  1287. package/packages/wrapper/dist/relay-pty-orchestrator.js.map +0 -1
  1288. package/packages/wrapper/dist/shared.d.ts +0 -262
  1289. package/packages/wrapper/dist/shared.d.ts.map +0 -1
  1290. package/packages/wrapper/dist/shared.js +0 -507
  1291. package/packages/wrapper/dist/shared.js.map +0 -1
  1292. package/packages/wrapper/dist/stuck-detector.d.ts +0 -161
  1293. package/packages/wrapper/dist/stuck-detector.d.ts.map +0 -1
  1294. package/packages/wrapper/dist/stuck-detector.js +0 -402
  1295. package/packages/wrapper/dist/stuck-detector.js.map +0 -1
  1296. package/packages/wrapper/dist/tmux-resolver.d.ts +0 -55
  1297. package/packages/wrapper/dist/tmux-resolver.d.ts.map +0 -1
  1298. package/packages/wrapper/dist/tmux-resolver.js +0 -175
  1299. package/packages/wrapper/dist/tmux-resolver.js.map +0 -1
  1300. package/packages/wrapper/dist/tmux-wrapper.d.ts +0 -352
  1301. package/packages/wrapper/dist/tmux-wrapper.d.ts.map +0 -1
  1302. package/packages/wrapper/dist/tmux-wrapper.js +0 -1816
  1303. package/packages/wrapper/dist/tmux-wrapper.js.map +0 -1
  1304. package/packages/wrapper/dist/trajectory-integration.d.ts +0 -292
  1305. package/packages/wrapper/dist/trajectory-integration.d.ts.map +0 -1
  1306. package/packages/wrapper/dist/trajectory-integration.js +0 -979
  1307. package/packages/wrapper/dist/trajectory-integration.js.map +0 -1
  1308. package/packages/wrapper/dist/wrapper-events.d.ts +0 -489
  1309. package/packages/wrapper/dist/wrapper-events.d.ts.map +0 -1
  1310. package/packages/wrapper/dist/wrapper-events.js +0 -252
  1311. package/packages/wrapper/dist/wrapper-events.js.map +0 -1
  1312. package/packages/wrapper/dist/wrapper-types.d.ts +0 -41
  1313. package/packages/wrapper/dist/wrapper-types.d.ts.map +0 -1
  1314. package/packages/wrapper/dist/wrapper-types.js +0 -7
  1315. package/packages/wrapper/dist/wrapper-types.js.map +0 -1
  1316. package/packages/wrapper/package.json +0 -60
  1317. package/packages/wrapper/src/__fixtures__/claude-outputs.ts +0 -471
  1318. package/packages/wrapper/src/__fixtures__/codex-outputs.ts +0 -99
  1319. package/packages/wrapper/src/__fixtures__/gemini-outputs.ts +0 -151
  1320. package/packages/wrapper/src/__fixtures__/index.ts +0 -47
  1321. package/packages/wrapper/src/auth-detection.ts +0 -244
  1322. package/packages/wrapper/src/base-wrapper.test.ts +0 -589
  1323. package/packages/wrapper/src/base-wrapper.ts +0 -841
  1324. package/packages/wrapper/src/client.test.ts +0 -351
  1325. package/packages/wrapper/src/client.ts +0 -1166
  1326. package/packages/wrapper/src/id-generator.test.ts +0 -71
  1327. package/packages/wrapper/src/id-generator.ts +0 -69
  1328. package/packages/wrapper/src/idle-detector.test.ts +0 -418
  1329. package/packages/wrapper/src/idle-detector.ts +0 -384
  1330. package/packages/wrapper/src/inbox.test.ts +0 -233
  1331. package/packages/wrapper/src/inbox.ts +0 -89
  1332. package/packages/wrapper/src/index.ts +0 -199
  1333. package/packages/wrapper/src/opencode-api.test.ts +0 -292
  1334. package/packages/wrapper/src/opencode-api.ts +0 -285
  1335. package/packages/wrapper/src/opencode-wrapper.ts +0 -541
  1336. package/packages/wrapper/src/parser.regression.test.ts +0 -251
  1337. package/packages/wrapper/src/parser.test.ts +0 -1359
  1338. package/packages/wrapper/src/parser.ts +0 -1477
  1339. package/packages/wrapper/src/prompt-composer.test.ts +0 -219
  1340. package/packages/wrapper/src/prompt-composer.ts +0 -231
  1341. package/packages/wrapper/src/relay-pty-orchestrator.test.ts +0 -1386
  1342. package/packages/wrapper/src/relay-pty-orchestrator.ts +0 -3041
  1343. package/packages/wrapper/src/shared.test.ts +0 -467
  1344. package/packages/wrapper/src/shared.ts +0 -652
  1345. package/packages/wrapper/src/stuck-detector.test.ts +0 -303
  1346. package/packages/wrapper/src/stuck-detector.ts +0 -511
  1347. package/packages/wrapper/src/tmux-resolver.test.ts +0 -104
  1348. package/packages/wrapper/src/tmux-resolver.ts +0 -207
  1349. package/packages/wrapper/src/tmux-wrapper.test.ts +0 -316
  1350. package/packages/wrapper/src/tmux-wrapper.ts +0 -2095
  1351. package/packages/wrapper/src/trajectory-detection.test.ts +0 -151
  1352. package/packages/wrapper/src/trajectory-integration.ts +0 -1261
  1353. package/packages/wrapper/src/wrapper-events.ts +0 -395
  1354. package/packages/wrapper/src/wrapper-types.ts +0 -45
  1355. package/packages/wrapper/tsconfig.json +0 -19
  1356. package/packages/wrapper/vitest.config.ts +0 -9
  1357. /package/packages/{broker-sdk → sdk}/dist/__tests__/facade.test.d.ts +0 -0
  1358. /package/packages/{broker-sdk → sdk}/dist/__tests__/facade.test.d.ts.map +0 -0
  1359. /package/packages/{broker-sdk → sdk}/dist/__tests__/integration.test.d.ts +0 -0
  1360. /package/packages/{broker-sdk → sdk}/dist/__tests__/integration.test.d.ts.map +0 -0
  1361. /package/packages/{broker-sdk → sdk}/dist/__tests__/quickstart.test.d.ts +0 -0
  1362. /package/packages/{broker-sdk → sdk}/dist/__tests__/quickstart.test.d.ts.map +0 -0
  1363. /package/packages/{broker-sdk → sdk}/dist/__tests__/unit.test.d.ts +0 -0
  1364. /package/packages/{broker-sdk → sdk}/dist/__tests__/unit.test.d.ts.map +0 -0
  1365. /package/packages/{broker-sdk → sdk}/dist/browser.d.ts +0 -0
  1366. /package/packages/{broker-sdk → sdk}/dist/browser.d.ts.map +0 -0
  1367. /package/packages/{broker-sdk → sdk}/dist/browser.js +0 -0
  1368. /package/packages/{broker-sdk → sdk}/dist/browser.js.map +0 -0
  1369. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.d.ts +0 -0
  1370. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.d.ts.map +0 -0
  1371. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.js +0 -0
  1372. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.js.map +0 -0
  1373. /package/packages/{broker-sdk → sdk}/dist/consensus.d.ts +0 -0
  1374. /package/packages/{broker-sdk → sdk}/dist/consensus.d.ts.map +0 -0
  1375. /package/packages/{broker-sdk → sdk}/dist/consensus.js +0 -0
  1376. /package/packages/{broker-sdk → sdk}/dist/consensus.js.map +0 -0
  1377. /package/packages/{broker-sdk → sdk}/dist/examples/demo.d.ts +0 -0
  1378. /package/packages/{broker-sdk → sdk}/dist/examples/demo.d.ts.map +0 -0
  1379. /package/packages/{broker-sdk → sdk}/dist/examples/demo.js +0 -0
  1380. /package/packages/{broker-sdk → sdk}/dist/examples/demo.js.map +0 -0
  1381. /package/packages/{broker-sdk → sdk}/dist/examples/example.d.ts +0 -0
  1382. /package/packages/{broker-sdk → sdk}/dist/examples/example.d.ts.map +0 -0
  1383. /package/packages/{broker-sdk → sdk}/dist/examples/example.js +0 -0
  1384. /package/packages/{broker-sdk → sdk}/dist/examples/example.js.map +0 -0
  1385. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.d.ts +0 -0
  1386. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.d.ts.map +0 -0
  1387. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.js +0 -0
  1388. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.js.map +0 -0
  1389. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.d.ts +0 -0
  1390. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.d.ts.map +0 -0
  1391. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.js +0 -0
  1392. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.js.map +0 -0
  1393. /package/packages/{broker-sdk → sdk}/dist/protocol.js +0 -0
  1394. /package/packages/{broker-sdk → sdk}/dist/protocol.js.map +0 -0
  1395. /package/packages/{broker-sdk → sdk}/dist/pty.d.ts +0 -0
  1396. /package/packages/{broker-sdk → sdk}/dist/shadow.js +0 -0
  1397. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.d.ts +0 -0
  1398. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.d.ts.map +0 -0
  1399. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.js +0 -0
  1400. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.js.map +0 -0
  1401. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.d.ts +0 -0
  1402. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.d.ts.map +0 -0
  1403. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.js +0 -0
  1404. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.js.map +0 -0
  1405. /package/packages/{broker-sdk → sdk}/dist/workflows/state.d.ts +0 -0
  1406. /package/packages/{broker-sdk → sdk}/dist/workflows/state.d.ts.map +0 -0
  1407. /package/packages/{broker-sdk → sdk}/dist/workflows/state.js +0 -0
  1408. /package/packages/{broker-sdk → sdk}/dist/workflows/state.js.map +0 -0
  1409. /package/packages/{broker-sdk → sdk}/src/__tests__/workflow-trajectory.test.ts +0 -0
  1410. /package/packages/{broker-sdk → sdk}/src/browser.ts +0 -0
  1411. /package/packages/{broker-sdk → sdk}/src/consensus-helpers.ts +0 -0
  1412. /package/packages/{broker-sdk → sdk}/src/consensus.ts +0 -0
  1413. /package/packages/{broker-sdk → sdk}/src/examples/demo.ts +0 -0
  1414. /package/packages/{broker-sdk → sdk}/src/examples/example.ts +0 -0
  1415. /package/packages/{broker-sdk → sdk}/src/examples/quickstart.ts +0 -0
  1416. /package/packages/{broker-sdk → sdk}/src/examples/ralph-loop.ts +0 -0
  1417. /package/packages/{broker-sdk → sdk}/src/examples/sample-prd.json +0 -0
  1418. /package/packages/{broker-sdk → sdk}/src/workflows/barrier.ts +0 -0
  1419. /package/packages/{broker-sdk → sdk}/src/workflows/memory-db.ts +0 -0
  1420. /package/packages/{broker-sdk → sdk}/src/workflows/state.ts +0 -0
@@ -1,1271 +0,0 @@
1
- /**
2
- * WorkflowRunner — parses relay.yaml, validates config, resolves templates,
3
- * executes steps (sequential/parallel/DAG), runs verification checks,
4
- * persists state to DB, and supports pause/resume/abort with retries.
5
- */
6
-
7
- import { randomBytes } from 'node:crypto';
8
- import { existsSync } from 'node:fs';
9
- import { readFile, writeFile, mkdir } from 'node:fs/promises';
10
- import { homedir } from 'node:os';
11
- import path from 'node:path';
12
-
13
- import { parse as parseYaml } from 'yaml';
14
-
15
- import { InMemoryWorkflowDb } from './memory-db.js';
16
- import type {
17
- AgentCli,
18
- AgentDefinition,
19
- ErrorHandlingConfig,
20
- RelayYamlConfig,
21
- SwarmPattern,
22
- VerificationCheck,
23
- WorkflowDefinition,
24
- WorkflowRunRow,
25
- WorkflowRunStatus,
26
- WorkflowStep,
27
- WorkflowStepRow,
28
- WorkflowStepStatus,
29
- } from './types.js';
30
- import { WorkflowTrajectory, type StepOutcome } from './trajectory.js';
31
-
32
- // ── AgentRelay SDK imports ──────────────────────────────────────────────────
33
-
34
- // Import from sub-paths to avoid pulling in the full @relaycast/sdk dependency.
35
- import { AgentRelay } from '../relay.js';
36
- import type { Agent, AgentRelayOptions } from '../relay.js';
37
- import { RelaycastApi } from '../relaycast.js';
38
-
39
- // ── DB adapter interface ────────────────────────────────────────────────────
40
-
41
- /** Minimal DB adapter so the runner is not coupled to a specific driver. */
42
- export interface WorkflowDb {
43
- insertRun(run: WorkflowRunRow): Promise<void>;
44
- updateRun(id: string, patch: Partial<WorkflowRunRow>): Promise<void>;
45
- getRun(id: string): Promise<WorkflowRunRow | null>;
46
-
47
- insertStep(step: WorkflowStepRow): Promise<void>;
48
- updateStep(id: string, patch: Partial<WorkflowStepRow>): Promise<void>;
49
- getStepsByRunId(runId: string): Promise<WorkflowStepRow[]>;
50
- }
51
-
52
- // ── Events ──────────────────────────────────────────────────────────────────
53
-
54
- export type WorkflowEvent =
55
- | { type: 'run:started'; runId: string }
56
- | { type: 'run:completed'; runId: string }
57
- | { type: 'run:failed'; runId: string; error: string }
58
- | { type: 'run:cancelled'; runId: string }
59
- | { type: 'step:started'; runId: string; stepName: string }
60
- | { type: 'step:completed'; runId: string; stepName: string; output?: string }
61
- | { type: 'step:failed'; runId: string; stepName: string; error: string }
62
- | { type: 'step:skipped'; runId: string; stepName: string }
63
- | { type: 'step:retrying'; runId: string; stepName: string; attempt: number };
64
-
65
- export type WorkflowEventListener = (event: WorkflowEvent) => void;
66
-
67
- // ── Runner options ──────────────────────────────────────────────────────────
68
-
69
- export interface WorkflowRunnerOptions {
70
- db?: WorkflowDb;
71
- workspaceId?: string;
72
- relay?: AgentRelayOptions;
73
- cwd?: string;
74
- summaryDir?: string;
75
- }
76
-
77
- // ── Variable context for template resolution ────────────────────────────────
78
-
79
- export interface VariableContext {
80
- [key: string]: string | number | boolean | undefined;
81
- }
82
-
83
- // ── Internal step state ─────────────────────────────────────────────────────
84
-
85
- interface StepState {
86
- row: WorkflowStepRow;
87
- agent?: Agent;
88
- }
89
-
90
- // ── WorkflowRunner ──────────────────────────────────────────────────────────
91
-
92
- export class WorkflowRunner {
93
- private readonly db: WorkflowDb;
94
- private readonly workspaceId: string;
95
- private readonly relayOptions: AgentRelayOptions;
96
- private readonly cwd: string;
97
- private readonly summaryDir: string;
98
-
99
- private relay?: AgentRelay;
100
- private relaycastApi?: RelaycastApi;
101
- private channel?: string;
102
- private trajectory?: WorkflowTrajectory;
103
- private abortController?: AbortController;
104
- private paused = false;
105
- private pauseResolver?: () => void;
106
- private listeners: WorkflowEventListener[] = [];
107
-
108
- constructor(options: WorkflowRunnerOptions = {}) {
109
- this.db = options.db ?? new InMemoryWorkflowDb();
110
- this.workspaceId = options.workspaceId ?? 'local';
111
- this.relayOptions = options.relay ?? {};
112
- this.cwd = options.cwd ?? process.cwd();
113
- this.summaryDir = options.summaryDir ?? path.join(this.cwd, '.relay', 'summaries');
114
- }
115
-
116
- // ── Relaycast auto-provisioning ────────────────────────────────────────
117
-
118
- /**
119
- * Ensure a Relaycast workspace API key is available for the broker.
120
- * Resolution order:
121
- * 1. RELAY_API_KEY environment variable
122
- * 2. Cached credentials at ~/.agent-relay/relaycast.json
123
- * 3. Auto-create a new workspace via the Relaycast API
124
- */
125
- private async ensureRelaycastApiKey(channel: string): Promise<void> {
126
- if (process.env.RELAY_API_KEY) return;
127
-
128
- // Check cached credentials — prefer per-project cache (written by the local
129
- // relay daemon) over the legacy global cache so concurrent workflows from
130
- // different repos never stomp each other's credentials.
131
- const projectCachePath = path.join(this.cwd, '.agent-relay', 'relaycast.json');
132
- const globalCachePath = path.join(homedir(), '.agent-relay', 'relaycast.json');
133
-
134
- for (const cachePath of [projectCachePath, globalCachePath]) {
135
- if (existsSync(cachePath)) {
136
- try {
137
- const raw = await readFile(cachePath, 'utf-8');
138
- const creds = JSON.parse(raw);
139
- if (creds.api_key) {
140
- process.env.RELAY_API_KEY = creds.api_key;
141
- return;
142
- }
143
- } catch {
144
- // Cache corrupt — try next path
145
- }
146
- }
147
- }
148
-
149
- // Auto-create a Relaycast workspace with a unique name
150
- const workspaceName = `relay-${channel}-${randomBytes(4).toString('hex')}`;
151
- const baseUrl = process.env.RELAYCAST_BASE_URL ?? 'https://api.relaycast.dev';
152
- const res = await fetch(`${baseUrl}/v1/workspaces`, {
153
- method: 'POST',
154
- headers: { 'content-type': 'application/json' },
155
- body: JSON.stringify({ name: workspaceName }),
156
- });
157
-
158
- if (!res.ok) {
159
- throw new Error(
160
- `Failed to auto-create Relaycast workspace: ${res.status} ${await res.text()}`,
161
- );
162
- }
163
-
164
- const body = (await res.json()) as Record<string, any>;
165
- const data = (body.data ?? body) as Record<string, any>;
166
- const apiKey = data.api_key as string;
167
- const workspaceId = (data.workspace_id ?? data.id) as string;
168
-
169
- if (!apiKey) {
170
- throw new Error('Relaycast workspace response missing api_key');
171
- }
172
-
173
- // Cache credentials in the per-project directory so concurrent workflows
174
- // from different repos each get their own workspace credentials.
175
- const cacheDir = path.dirname(projectCachePath);
176
- await mkdir(cacheDir, { recursive: true, mode: 0o700 });
177
- await writeFile(
178
- projectCachePath,
179
- JSON.stringify({
180
- workspace_id: workspaceId,
181
- api_key: apiKey,
182
- agent_id: '',
183
- agent_name: null,
184
- updated_at: new Date().toISOString(),
185
- }),
186
- { mode: 0o600 },
187
- );
188
-
189
- process.env.RELAY_API_KEY = apiKey;
190
- }
191
-
192
- // ── Event subscription ──────────────────────────────────────────────────
193
-
194
- on(listener: WorkflowEventListener): () => void {
195
- this.listeners.push(listener);
196
- return () => {
197
- this.listeners = this.listeners.filter((l) => l !== listener);
198
- };
199
- }
200
-
201
- private emit(event: WorkflowEvent): void {
202
- for (const listener of this.listeners) {
203
- listener(event);
204
- }
205
- }
206
-
207
- // ── Parsing & validation ────────────────────────────────────────────────
208
-
209
- /** Parse a relay.yaml file from disk. */
210
- async parseYamlFile(filePath: string): Promise<RelayYamlConfig> {
211
- const absPath = path.resolve(this.cwd, filePath);
212
- const raw = await readFile(absPath, 'utf-8');
213
- return this.parseYamlString(raw, absPath);
214
- }
215
-
216
- /** Parse a relay.yaml string. */
217
- parseYamlString(raw: string, source = '<string>'): RelayYamlConfig {
218
- const parsed = parseYaml(raw);
219
- this.validateConfig(parsed, source);
220
- return parsed as RelayYamlConfig;
221
- }
222
-
223
- /** Validate a config object against the RelayYamlConfig shape. */
224
- validateConfig(config: unknown, source = '<config>'): asserts config is RelayYamlConfig {
225
- if (typeof config !== 'object' || config === null) {
226
- throw new Error(`${source}: config must be a non-null object`);
227
- }
228
-
229
- const c = config as Record<string, unknown>;
230
-
231
- if (typeof c.version !== 'string') {
232
- throw new Error(`${source}: missing required field "version"`);
233
- }
234
- if (typeof c.name !== 'string') {
235
- throw new Error(`${source}: missing required field "name"`);
236
- }
237
- if (typeof c.swarm !== 'object' || c.swarm === null) {
238
- throw new Error(`${source}: missing required field "swarm"`);
239
- }
240
- const swarm = c.swarm as Record<string, unknown>;
241
- if (typeof swarm.pattern !== 'string') {
242
- throw new Error(`${source}: missing required field "swarm.pattern"`);
243
- }
244
- if (!Array.isArray(c.agents) || c.agents.length === 0) {
245
- throw new Error(`${source}: "agents" must be a non-empty array`);
246
- }
247
-
248
- for (const agent of c.agents) {
249
- if (typeof agent !== 'object' || agent === null) {
250
- throw new Error(`${source}: each agent must be an object`);
251
- }
252
- const a = agent as Record<string, unknown>;
253
- if (typeof a.name !== 'string') {
254
- throw new Error(`${source}: each agent must have a string "name"`);
255
- }
256
- if (typeof a.cli !== 'string') {
257
- throw new Error(`${source}: each agent must have a string "cli"`);
258
- }
259
- }
260
-
261
- if (c.workflows !== undefined) {
262
- if (!Array.isArray(c.workflows)) {
263
- throw new Error(`${source}: "workflows" must be an array`);
264
- }
265
- for (const wf of c.workflows) {
266
- this.validateWorkflow(wf, source);
267
- }
268
- }
269
- }
270
-
271
- private validateWorkflow(wf: unknown, source: string): void {
272
- if (typeof wf !== 'object' || wf === null) {
273
- throw new Error(`${source}: each workflow must be an object`);
274
- }
275
- const w = wf as Record<string, unknown>;
276
- if (typeof w.name !== 'string') {
277
- throw new Error(`${source}: each workflow must have a string "name"`);
278
- }
279
- if (!Array.isArray(w.steps) || w.steps.length === 0) {
280
- throw new Error(`${source}: workflow "${w.name}" must have a non-empty "steps" array`);
281
- }
282
- for (const step of w.steps) {
283
- if (typeof step !== 'object' || step === null) {
284
- throw new Error(`${source}: each step must be an object`);
285
- }
286
- const s = step as Record<string, unknown>;
287
- if (typeof s.name !== 'string' || typeof s.agent !== 'string' || typeof s.task !== 'string') {
288
- throw new Error(`${source}: each step must have "name", "agent", and "task" string fields`);
289
- }
290
- }
291
-
292
- // Validate DAG: check for unknown dependencies and cycles
293
- const stepNames = new Set((w.steps as WorkflowStep[]).map((s) => s.name));
294
- for (const step of w.steps as WorkflowStep[]) {
295
- if (step.dependsOn) {
296
- for (const dep of step.dependsOn) {
297
- if (!stepNames.has(dep)) {
298
- throw new Error(`${source}: step "${step.name}" depends on unknown step "${dep}"`);
299
- }
300
- }
301
- }
302
- }
303
- this.detectCycles(w.steps as WorkflowStep[], source, w.name as string);
304
- }
305
-
306
- private detectCycles(steps: WorkflowStep[], source: string, workflowName: string): void {
307
- const adj = new Map<string, string[]>();
308
- for (const step of steps) {
309
- adj.set(step.name, step.dependsOn ?? []);
310
- }
311
-
312
- const visited = new Set<string>();
313
- const inStack = new Set<string>();
314
-
315
- const dfs = (node: string): void => {
316
- if (inStack.has(node)) {
317
- throw new Error(`${source}: workflow "${workflowName}" contains a dependency cycle involving "${node}"`);
318
- }
319
- if (visited.has(node)) return;
320
- inStack.add(node);
321
- for (const dep of adj.get(node) ?? []) {
322
- dfs(dep);
323
- }
324
- inStack.delete(node);
325
- visited.add(node);
326
- };
327
-
328
- for (const step of steps) {
329
- dfs(step.name);
330
- }
331
- }
332
-
333
- // ── Template variable resolution ────────────────────────────────────────
334
-
335
- /** Resolve {{variable}} placeholders in all task strings. */
336
- resolveVariables(config: RelayYamlConfig, vars: VariableContext): RelayYamlConfig {
337
- const resolved = structuredClone(config);
338
-
339
- for (const agent of resolved.agents) {
340
- if (agent.task) {
341
- agent.task = this.interpolate(agent.task, vars);
342
- }
343
- }
344
-
345
- if (resolved.workflows) {
346
- for (const wf of resolved.workflows) {
347
- for (const step of wf.steps) {
348
- step.task = this.interpolate(step.task, vars);
349
- }
350
- }
351
- }
352
-
353
- return resolved;
354
- }
355
-
356
- private interpolate(template: string, vars: VariableContext): string {
357
- return template.replace(/\{\{([\w][\w.\-]*)\}\}/g, (_match, key: string) => {
358
- // Skip step-output placeholders — they are resolved at execution time by interpolateStepTask()
359
- if (key.startsWith('steps.')) {
360
- return _match;
361
- }
362
-
363
- // Resolve dot-path variables like steps.plan.output
364
- const value = this.resolveDotPath(key, vars);
365
- if (value === undefined) {
366
- throw new Error(`Unresolved variable: {{${key}}}`);
367
- }
368
- return String(value);
369
- });
370
- }
371
-
372
- private resolveDotPath(key: string, vars: VariableContext): string | number | boolean | undefined {
373
- // Simple key — direct lookup
374
- if (!key.includes('.')) {
375
- return vars[key];
376
- }
377
-
378
- // Dot-path — walk into nested context
379
- const parts = key.split('.');
380
- let current: unknown = vars;
381
- for (const part of parts) {
382
- if (current === null || current === undefined || typeof current !== 'object') {
383
- return undefined;
384
- }
385
- current = (current as Record<string, unknown>)[part];
386
- }
387
-
388
- if (current === undefined || current === null) {
389
- return undefined;
390
- }
391
- if (typeof current === 'string' || typeof current === 'number' || typeof current === 'boolean') {
392
- return current;
393
- }
394
- return String(current);
395
- }
396
-
397
- /** Build a nested context from completed step outputs for {{steps.X.output}} resolution. */
398
- private buildStepOutputContext(stepStates: Map<string, StepState>): VariableContext {
399
- const steps: Record<string, { output: string }> = {};
400
- for (const [name, state] of stepStates) {
401
- if (state.row.status === 'completed' && state.row.output !== undefined) {
402
- steps[name] = { output: state.row.output };
403
- }
404
- }
405
- return { steps } as unknown as VariableContext;
406
- }
407
-
408
- /** Interpolate step-output variables, silently skipping unresolved ones (they may be user vars). */
409
- private interpolateStepTask(template: string, context: VariableContext): string {
410
- return template.replace(/\{\{(steps\.[\w\-]+\.output)\}\}/g, (_match, key: string) => {
411
- const value = this.resolveDotPath(key, context);
412
- if (value === undefined) {
413
- // Leave unresolved — may not be an error if the template doesn't depend on prior steps
414
- return _match;
415
- }
416
- return String(value);
417
- });
418
- }
419
-
420
- // ── Execution ───────────────────────────────────────────────────────────
421
-
422
- /** Execute a named workflow from a validated config. */
423
- async execute(
424
- config: RelayYamlConfig,
425
- workflowName?: string,
426
- vars?: VariableContext,
427
- ): Promise<WorkflowRunRow> {
428
- const resolved = vars ? this.resolveVariables(config, vars) : config;
429
- const workflows = resolved.workflows ?? [];
430
-
431
- const workflow = workflowName
432
- ? workflows.find((w) => w.name === workflowName)
433
- : workflows[0];
434
-
435
- if (!workflow) {
436
- throw new Error(
437
- workflowName
438
- ? `Workflow "${workflowName}" not found in config`
439
- : 'No workflows defined in config',
440
- );
441
- }
442
-
443
- const runId = this.generateId();
444
- const now = new Date().toISOString();
445
-
446
- const run: WorkflowRunRow = {
447
- id: runId,
448
- workspaceId: this.workspaceId,
449
- workflowName: workflow.name,
450
- pattern: resolved.swarm.pattern,
451
- status: 'pending',
452
- config: resolved,
453
- startedAt: now,
454
- createdAt: now,
455
- updatedAt: now,
456
- };
457
-
458
- await this.db.insertRun(run);
459
-
460
- // Build step rows
461
- const stepStates = new Map<string, StepState>();
462
- for (const step of workflow.steps) {
463
- const stepRow: WorkflowStepRow = {
464
- id: this.generateId(),
465
- runId,
466
- stepName: step.name,
467
- agentName: step.agent,
468
- status: 'pending',
469
- task: step.task,
470
- dependsOn: step.dependsOn ?? [],
471
- retryCount: 0,
472
- createdAt: now,
473
- updatedAt: now,
474
- };
475
- await this.db.insertStep(stepRow);
476
- stepStates.set(step.name, { row: stepRow });
477
- }
478
-
479
- // Start execution
480
- this.abortController = new AbortController();
481
- this.paused = false;
482
-
483
- // Initialize trajectory recording
484
- this.trajectory = new WorkflowTrajectory(resolved.trajectories, runId, this.cwd);
485
-
486
- try {
487
- await this.updateRunStatus(runId, 'running');
488
- this.emit({ type: 'run:started', runId });
489
-
490
- // Analyze DAG for trajectory context
491
- const dagInfo = this.analyzeDAG(workflow.steps);
492
- await this.trajectory.start(workflow.name, workflow.steps.length, dagInfo);
493
-
494
- const channel = resolved.swarm.channel ?? 'general';
495
- this.channel = channel;
496
- await this.ensureRelaycastApiKey(channel);
497
-
498
- this.relay = new AgentRelay({
499
- ...this.relayOptions,
500
- channels: [channel],
501
- });
502
-
503
- // Create the dedicated workflow channel and join it
504
- this.relaycastApi = new RelaycastApi({
505
- agentName: 'WorkflowRunner',
506
- cachePath: path.join(this.cwd, '.agent-relay', 'relaycast.json'),
507
- });
508
- await this.relaycastApi.createChannel(channel, workflow.description);
509
- await this.relaycastApi.joinChannel(channel);
510
- this.postToChannel(
511
- `Workflow **${workflow.name}** started — ${workflow.steps.length} steps, pattern: ${resolved.swarm.pattern}`,
512
- );
513
-
514
- const agentMap = new Map<string, AgentDefinition>();
515
- for (const agent of resolved.agents) {
516
- agentMap.set(agent.name, agent);
517
- }
518
-
519
- await this.executeSteps(
520
- workflow,
521
- stepStates,
522
- agentMap,
523
- resolved.errorHandling,
524
- runId,
525
- );
526
-
527
- // Check if all steps completed
528
- const allCompleted = [...stepStates.values()].every(
529
- (s) => s.row.status === 'completed' || s.row.status === 'skipped',
530
- );
531
-
532
- if (allCompleted) {
533
- await this.updateRunStatus(runId, 'completed');
534
- this.emit({ type: 'run:completed', runId });
535
-
536
- // Complete trajectory with summary
537
- const outcomes = this.collectOutcomes(stepStates, workflow.steps);
538
- const summary = this.trajectory.buildRunSummary(outcomes);
539
- const confidence = this.trajectory.computeConfidence(outcomes);
540
- await this.trajectory.complete(summary, confidence, {
541
- learnings: this.trajectory.extractLearnings(outcomes),
542
- challenges: this.trajectory.extractChallenges(outcomes),
543
- });
544
-
545
- // Post rich completion report to channel
546
- this.postCompletionReport(workflow.name, outcomes, summary, confidence);
547
- } else {
548
- const failedStep = [...stepStates.values()].find((s) => s.row.status === 'failed');
549
- const errorMsg = failedStep?.row.error ?? 'One or more steps failed';
550
- await this.updateRunStatus(runId, 'failed', errorMsg);
551
- this.emit({ type: 'run:failed', runId, error: errorMsg });
552
-
553
- const outcomes = this.collectOutcomes(stepStates, workflow.steps);
554
- this.postFailureReport(workflow.name, outcomes, errorMsg);
555
-
556
- // Abandon trajectory on failure
557
- await this.trajectory.abandon(errorMsg);
558
- }
559
- } catch (err) {
560
- const errorMsg = err instanceof Error ? err.message : String(err);
561
- const status: WorkflowRunStatus = this.abortController?.signal.aborted ? 'cancelled' : 'failed';
562
- await this.updateRunStatus(runId, status, errorMsg);
563
-
564
- if (status === 'cancelled') {
565
- this.emit({ type: 'run:cancelled', runId });
566
- this.postToChannel(`Workflow **${workflow.name}** cancelled`);
567
- await this.trajectory.abandon('Cancelled by user');
568
- } else {
569
- this.emit({ type: 'run:failed', runId, error: errorMsg });
570
- this.postToChannel(`Workflow failed: ${errorMsg}`);
571
- await this.trajectory.abandon(errorMsg);
572
- }
573
- } finally {
574
- await this.relay?.shutdown();
575
- this.relay = undefined;
576
- this.relaycastApi = undefined;
577
- this.channel = undefined;
578
- this.trajectory = undefined;
579
- this.abortController = undefined;
580
- }
581
-
582
- const finalRun = await this.db.getRun(runId);
583
- return finalRun ?? run;
584
- }
585
-
586
- /** Resume a previously paused or partially completed run. */
587
- async resume(runId: string, vars?: VariableContext): Promise<WorkflowRunRow> {
588
- const run = await this.db.getRun(runId);
589
- if (!run) {
590
- throw new Error(`Run "${runId}" not found`);
591
- }
592
-
593
- if (run.status !== 'running' && run.status !== 'failed') {
594
- throw new Error(`Run "${runId}" is in status "${run.status}" and cannot be resumed`);
595
- }
596
-
597
- const config = vars ? this.resolveVariables(run.config, vars) : run.config;
598
- const workflows = config.workflows ?? [];
599
- const workflow = workflows.find((w) => w.name === run.workflowName);
600
- if (!workflow) {
601
- throw new Error(`Workflow "${run.workflowName}" not found in stored config`);
602
- }
603
-
604
- const existingSteps = await this.db.getStepsByRunId(runId);
605
- const stepStates = new Map<string, StepState>();
606
- for (const stepRow of existingSteps) {
607
- stepStates.set(stepRow.stepName, { row: stepRow });
608
- }
609
-
610
- // Reset failed steps to pending for retry
611
- for (const [, state] of stepStates) {
612
- if (state.row.status === 'failed') {
613
- state.row.status = 'pending';
614
- state.row.error = undefined;
615
- await this.db.updateStep(state.row.id, {
616
- status: 'pending',
617
- error: undefined,
618
- updatedAt: new Date().toISOString(),
619
- });
620
- }
621
- }
622
-
623
- this.abortController = new AbortController();
624
- this.paused = false;
625
-
626
- // Initialize trajectory for resumed run
627
- this.trajectory = new WorkflowTrajectory(config.trajectories, runId, this.cwd);
628
-
629
- try {
630
- await this.updateRunStatus(runId, 'running');
631
-
632
- const pendingCount = [...stepStates.values()].filter((s) => s.row.status === 'pending').length;
633
- await this.trajectory.start(
634
- workflow.name,
635
- workflow.steps.length,
636
- `Resumed run: ${pendingCount} pending steps of ${workflow.steps.length} total`,
637
- );
638
-
639
- const resumeChannel = config.swarm.channel ?? 'general';
640
- this.channel = resumeChannel;
641
- await this.ensureRelaycastApiKey(resumeChannel);
642
-
643
- this.relay = new AgentRelay({
644
- ...this.relayOptions,
645
- channels: [resumeChannel],
646
- });
647
-
648
- // Ensure channel exists and join it for resumed runs
649
- this.relaycastApi = new RelaycastApi({
650
- agentName: 'WorkflowRunner',
651
- cachePath: path.join(this.cwd, '.agent-relay', 'relaycast.json'),
652
- });
653
- await this.relaycastApi.createChannel(resumeChannel);
654
- await this.relaycastApi.joinChannel(resumeChannel);
655
- this.postToChannel(
656
- `Workflow **${workflow.name}** resumed — ${pendingCount} pending steps`,
657
- );
658
-
659
- const agentMap = new Map<string, AgentDefinition>();
660
- for (const agent of config.agents) {
661
- agentMap.set(agent.name, agent);
662
- }
663
-
664
- await this.executeSteps(workflow, stepStates, agentMap, config.errorHandling, runId);
665
-
666
- const allCompleted = [...stepStates.values()].every(
667
- (s) => s.row.status === 'completed' || s.row.status === 'skipped',
668
- );
669
-
670
- if (allCompleted) {
671
- await this.updateRunStatus(runId, 'completed');
672
- this.emit({ type: 'run:completed', runId });
673
-
674
- const outcomes = this.collectOutcomes(stepStates, workflow.steps);
675
- const summary = this.trajectory.buildRunSummary(outcomes);
676
- const confidence = this.trajectory.computeConfidence(outcomes);
677
- await this.trajectory.complete(summary, confidence, {
678
- learnings: this.trajectory.extractLearnings(outcomes),
679
- challenges: this.trajectory.extractChallenges(outcomes),
680
- });
681
-
682
- this.postCompletionReport(workflow.name, outcomes, summary, confidence);
683
- } else {
684
- const failedStep = [...stepStates.values()].find((s) => s.row.status === 'failed');
685
- const errorMsg = failedStep?.row.error ?? 'One or more steps failed';
686
- await this.updateRunStatus(runId, 'failed', errorMsg);
687
- this.emit({ type: 'run:failed', runId, error: errorMsg });
688
-
689
- const outcomes = this.collectOutcomes(stepStates, workflow.steps);
690
- this.postFailureReport(workflow.name, outcomes, errorMsg);
691
- await this.trajectory.abandon(errorMsg);
692
- }
693
- } catch (err) {
694
- const errorMsg = err instanceof Error ? err.message : String(err);
695
- await this.updateRunStatus(runId, 'failed', errorMsg);
696
- this.emit({ type: 'run:failed', runId, error: errorMsg });
697
- this.postToChannel(`Workflow failed: ${errorMsg}`);
698
- await this.trajectory.abandon(errorMsg);
699
- } finally {
700
- await this.relay?.shutdown();
701
- this.relay = undefined;
702
- this.relaycastApi = undefined;
703
- this.channel = undefined;
704
- this.trajectory = undefined;
705
- this.abortController = undefined;
706
- }
707
-
708
- const finalRun = await this.db.getRun(runId);
709
- return finalRun ?? run;
710
- }
711
-
712
- /** Pause execution. Currently-running steps will finish but no new steps start. */
713
- pause(): void {
714
- this.paused = true;
715
- }
716
-
717
- /** Resume after a pause(). */
718
- unpause(): void {
719
- this.paused = false;
720
- this.pauseResolver?.();
721
- this.pauseResolver = undefined;
722
- }
723
-
724
- /** Abort the current run. Running agents are released. */
725
- abort(): void {
726
- // Unblock waitIfPaused() so the run loop can exit
727
- this.pauseResolver?.();
728
- this.pauseResolver = undefined;
729
- this.abortController?.abort();
730
- }
731
-
732
- // ── Step execution engine ─────────────────────────────────────────────
733
-
734
- private async executeSteps(
735
- workflow: WorkflowDefinition,
736
- stepStates: Map<string, StepState>,
737
- agentMap: Map<string, AgentDefinition>,
738
- errorHandling: ErrorHandlingConfig | undefined,
739
- runId: string,
740
- ): Promise<void> {
741
- const rawStrategy = errorHandling?.strategy ?? workflow.onError ?? 'fail-fast';
742
- // Map shorthand onError values to canonical strategy names.
743
- // 'retry' maps to 'fail-fast' so downstream steps are properly skipped after retries exhaust.
744
- const strategy = rawStrategy === 'fail' ? 'fail-fast'
745
- : rawStrategy === 'skip' ? 'continue'
746
- : rawStrategy === 'retry' ? 'fail-fast'
747
- : rawStrategy;
748
-
749
- // DAG-based execution: repeatedly find ready steps and run them in parallel
750
- while (true) {
751
- this.checkAborted();
752
- await this.waitIfPaused();
753
-
754
- const readySteps = this.findReadySteps(workflow.steps, stepStates);
755
- if (readySteps.length === 0) {
756
- // No steps ready — either all done or blocked
757
- break;
758
- }
759
-
760
- // Begin a track chapter if multiple parallel steps are starting
761
- if (readySteps.length > 1 && this.trajectory) {
762
- const trackNames = readySteps.map((s) => s.name).join(', ');
763
- await this.trajectory.beginTrack(trackNames);
764
- }
765
-
766
- const results = await Promise.allSettled(
767
- readySteps.map((step) =>
768
- this.executeStep(step, stepStates, agentMap, errorHandling, runId),
769
- ),
770
- );
771
-
772
- // Collect outcomes from this batch for convergence reflection
773
- const batchOutcomes: StepOutcome[] = [];
774
-
775
- for (let i = 0; i < results.length; i++) {
776
- const result = results[i];
777
- const step = readySteps[i];
778
- const state = stepStates.get(step.name);
779
-
780
- if (result.status === 'rejected') {
781
- const error = result.reason instanceof Error ? result.reason.message : String(result.reason);
782
- if (state && state.row.status !== 'failed') {
783
- await this.markStepFailed(state, error, runId);
784
- }
785
-
786
- batchOutcomes.push({
787
- name: step.name,
788
- agent: step.agent,
789
- status: 'failed',
790
- attempts: (state?.row.retryCount ?? 0) + 1,
791
- error,
792
- });
793
-
794
- if (strategy === 'fail-fast') {
795
- // Mark all pending downstream steps as skipped
796
- await this.markDownstreamSkipped(step.name, workflow.steps, stepStates, runId);
797
- throw new Error(`Step "${step.name}" failed: ${error}`);
798
- }
799
-
800
- if (strategy === 'continue') {
801
- await this.markDownstreamSkipped(step.name, workflow.steps, stepStates, runId);
802
- }
803
- } else {
804
- batchOutcomes.push({
805
- name: step.name,
806
- agent: step.agent,
807
- status: state?.row.status === 'completed' ? 'completed' : 'failed',
808
- attempts: (state?.row.retryCount ?? 0) + 1,
809
- output: state?.row.output,
810
- verificationPassed: state?.row.status === 'completed' && step.verification !== undefined,
811
- });
812
- }
813
- }
814
-
815
- // Reflect at convergence when a parallel batch completes
816
- if (readySteps.length > 1 && this.trajectory?.shouldReflectOnConverge()) {
817
- const label = readySteps.map((s) => s.name).join(' + ');
818
- // Find steps that this batch unblocks
819
- const completedNames = new Set(batchOutcomes.filter((o) => o.status === 'completed').map((o) => o.name));
820
- const unblocked = workflow.steps
821
- .filter((s) => s.dependsOn?.some((dep) => completedNames.has(dep)))
822
- .filter((s) => {
823
- const st = stepStates.get(s.name);
824
- return st && st.row.status === 'pending';
825
- })
826
- .map((s) => s.name);
827
-
828
- await this.trajectory.synthesizeAndReflect(label, batchOutcomes, unblocked.length > 0 ? unblocked : undefined);
829
- }
830
- }
831
- }
832
-
833
- private findReadySteps(
834
- steps: WorkflowStep[],
835
- stepStates: Map<string, StepState>,
836
- ): WorkflowStep[] {
837
- return steps.filter((step) => {
838
- const state = stepStates.get(step.name);
839
- if (!state || state.row.status !== 'pending') return false;
840
-
841
- const deps = step.dependsOn ?? [];
842
- return deps.every((dep) => {
843
- const depState = stepStates.get(dep);
844
- return depState && (depState.row.status === 'completed' || depState.row.status === 'skipped');
845
- });
846
- });
847
- }
848
-
849
- private async executeStep(
850
- step: WorkflowStep,
851
- stepStates: Map<string, StepState>,
852
- agentMap: Map<string, AgentDefinition>,
853
- errorHandling: ErrorHandlingConfig | undefined,
854
- runId: string,
855
- ): Promise<void> {
856
- const state = stepStates.get(step.name);
857
- if (!state) throw new Error(`Step state not found: ${step.name}`);
858
-
859
- const agentDef = agentMap.get(step.agent);
860
- if (!agentDef) {
861
- throw new Error(`Agent "${step.agent}" not found in config`);
862
- }
863
-
864
- const maxRetries = step.retries ?? agentDef.constraints?.retries ?? errorHandling?.maxRetries ?? 0;
865
- const retryDelay = errorHandling?.retryDelayMs ?? 1000;
866
- const timeoutMs = step.timeoutMs ?? agentDef.constraints?.timeoutMs;
867
-
868
- let lastError: string | undefined;
869
-
870
- for (let attempt = 0; attempt <= maxRetries; attempt++) {
871
- this.checkAborted();
872
-
873
- if (attempt > 0) {
874
- this.emit({ type: 'step:retrying', runId, stepName: step.name, attempt });
875
- this.postToChannel(`**[${step.name}]** Retrying (attempt ${attempt + 1}/${maxRetries + 1})`);
876
- state.row.retryCount = attempt;
877
- await this.db.updateStep(state.row.id, {
878
- retryCount: attempt,
879
- updatedAt: new Date().toISOString(),
880
- });
881
- await this.trajectory?.stepRetrying(step, attempt, maxRetries);
882
- await this.delay(retryDelay);
883
- }
884
-
885
- try {
886
- // Mark step as running
887
- state.row.status = 'running';
888
- state.row.startedAt = new Date().toISOString();
889
- await this.db.updateStep(state.row.id, {
890
- status: 'running',
891
- startedAt: state.row.startedAt,
892
- updatedAt: new Date().toISOString(),
893
- });
894
- this.emit({ type: 'step:started', runId, stepName: step.name });
895
- this.postToChannel(`**[${step.name}]** Started (agent: ${agentDef.name})`);
896
- await this.trajectory?.stepStarted(step, agentDef.name);
897
-
898
- // Resolve step-output variables (e.g. {{steps.plan.output}}) at execution time
899
- const stepOutputContext = this.buildStepOutputContext(stepStates);
900
- const resolvedTask = this.interpolateStepTask(step.task, stepOutputContext);
901
-
902
- // Spawn agent via AgentRelay
903
- const resolvedStep = { ...step, task: resolvedTask };
904
- const output = await this.spawnAndWait(agentDef, resolvedStep, timeoutMs);
905
-
906
- // Run verification if configured
907
- if (step.verification) {
908
- this.runVerification(step.verification, output, step.name);
909
- }
910
-
911
- // Mark completed
912
- state.row.status = 'completed';
913
- state.row.output = output;
914
- state.row.completedAt = new Date().toISOString();
915
- await this.db.updateStep(state.row.id, {
916
- status: 'completed',
917
- output,
918
- completedAt: state.row.completedAt,
919
- updatedAt: new Date().toISOString(),
920
- });
921
- this.emit({ type: 'step:completed', runId, stepName: step.name, output });
922
- this.postToChannel(
923
- `**[${step.name}]** Completed\n${output.slice(0, 500)}${output.length > 500 ? '\n...(truncated)' : ''}`,
924
- );
925
- await this.trajectory?.stepCompleted(step, output, attempt + 1);
926
- return;
927
- } catch (err) {
928
- lastError = err instanceof Error ? err.message : String(err);
929
- }
930
- }
931
-
932
- // All retries exhausted — record decision and mark failed
933
- await this.trajectory?.stepFailed(step, lastError ?? 'Unknown error', maxRetries + 1, maxRetries);
934
- await this.trajectory?.decide(
935
- `How to handle ${step.name} failure`,
936
- 'exhausted',
937
- `All ${maxRetries + 1} attempts failed: ${lastError ?? 'Unknown error'}`,
938
- );
939
- this.postToChannel(`**[${step.name}]** Failed: ${lastError ?? 'Unknown error'}`);
940
- await this.markStepFailed(state, lastError ?? 'Unknown error', runId);
941
- throw new Error(`Step "${step.name}" failed after ${maxRetries} retries: ${lastError ?? 'Unknown error'}`);
942
- }
943
-
944
- private async spawnAndWait(
945
- agentDef: AgentDefinition,
946
- step: WorkflowStep,
947
- timeoutMs?: number,
948
- ): Promise<string> {
949
- if (!this.relay) {
950
- throw new Error('AgentRelay not initialized');
951
- }
952
-
953
- // Append self-termination instructions to the task
954
- const agentName = `${step.name}-${this.generateShortId()}`;
955
- const taskWithExit = step.task + '\n\n---\n' +
956
- 'IMPORTANT: When you have fully completed this task, you MUST self-terminate by calling ' +
957
- `the MCP tool: remove_agent(name="${agentName}", reason="Task completed"). ` +
958
- 'Do not wait for further input — release yourself immediately after finishing.';
959
-
960
- const agentChannels = this.channel ? [this.channel] : agentDef.channels;
961
-
962
- const agent = await this.relay.spawnPty({
963
- name: agentName,
964
- cli: agentDef.cli,
965
- args: agentDef.constraints?.model ? ['--model', agentDef.constraints.model] : [],
966
- channels: agentChannels,
967
- task: taskWithExit,
968
- idleThresholdSecs: agentDef.constraints?.idleThresholdSecs,
969
- });
970
-
971
- // Register the spawned agent in Relaycast for observability + start heartbeat
972
- let stopHeartbeat: (() => void) | undefined;
973
- if (this.relaycastApi) {
974
- const agentClient = await this.relaycastApi.registerExternalAgent(
975
- agent.name,
976
- `Workflow agent for step "${step.name}" (${agentDef.cli})`,
977
- ).catch(() => null);
978
-
979
- // Keep the agent online in the dashboard while it's working
980
- if (agentClient) {
981
- stopHeartbeat = this.relaycastApi.startHeartbeat(agentClient);
982
- }
983
- }
984
-
985
- // Invite the spawned agent to the workflow channel
986
- if (this.channel && this.relaycastApi) {
987
- await this.relaycastApi.inviteToChannel(this.channel, agent.name).catch(() => {});
988
- }
989
-
990
- // Post task assignment to channel for observability
991
- const taskPreview = step.task.slice(0, 500) + (step.task.length > 500 ? '...' : '');
992
- this.postToChannel(`**[${step.name}]** Assigned to \`${agent.name}\`:\n${taskPreview}`);
993
-
994
- // Task was already delivered as initial_task via spawnPty above.
995
-
996
- // Wait for agent to exit (self-termination via /exit)
997
- const exitResult = await agent.waitForExit(timeoutMs);
998
-
999
- // Stop heartbeat now that agent has exited
1000
- stopHeartbeat?.();
1001
-
1002
- if (exitResult === 'timeout') {
1003
- // Safety net: check if the verification file exists before giving up.
1004
- // The agent may have completed work but failed to /exit.
1005
- if (step.verification?.type === 'file_exists') {
1006
- const verifyPath = path.resolve(this.cwd, step.verification.value);
1007
- if (existsSync(verifyPath)) {
1008
- this.postToChannel(
1009
- `**[${step.name}]** Agent idle after completing work — releasing`,
1010
- );
1011
- await agent.release();
1012
- // Fall through to read output below
1013
- } else {
1014
- await agent.release();
1015
- throw new Error(`Step "${step.name}" timed out after ${timeoutMs}ms`);
1016
- }
1017
- } else {
1018
- await agent.release();
1019
- throw new Error(`Step "${step.name}" timed out after ${timeoutMs}ms`);
1020
- }
1021
- }
1022
-
1023
- // Read output from summary file if it exists
1024
- const summaryPath = path.join(this.summaryDir, `${step.name}.md`);
1025
- const output = existsSync(summaryPath)
1026
- ? await readFile(summaryPath, 'utf-8')
1027
- : exitResult === 'timeout'
1028
- ? 'Agent completed (released after idle timeout)'
1029
- : `Agent exited (${exitResult})`;
1030
-
1031
- return output;
1032
- }
1033
-
1034
- // ── Verification ────────────────────────────────────────────────────────
1035
-
1036
- private runVerification(check: VerificationCheck, output: string, stepName: string): void {
1037
- switch (check.type) {
1038
- case 'output_contains':
1039
- if (!output.includes(check.value)) {
1040
- throw new Error(
1041
- `Verification failed for "${stepName}": output does not contain "${check.value}"`,
1042
- );
1043
- }
1044
- break;
1045
-
1046
- case 'exit_code':
1047
- // exit_code verification is implicitly satisfied if the agent exited successfully
1048
- break;
1049
-
1050
- case 'file_exists':
1051
- if (!existsSync(path.resolve(this.cwd, check.value))) {
1052
- throw new Error(
1053
- `Verification failed for "${stepName}": file "${check.value}" does not exist`,
1054
- );
1055
- }
1056
- break;
1057
-
1058
- case 'custom':
1059
- // Custom verifications are evaluated by callers; no-op here
1060
- break;
1061
- }
1062
- }
1063
-
1064
- // ── State helpers ─────────────────────────────────────────────────────
1065
-
1066
- private async updateRunStatus(
1067
- runId: string,
1068
- status: WorkflowRunStatus,
1069
- error?: string,
1070
- ): Promise<void> {
1071
- const patch: Partial<WorkflowRunRow> = {
1072
- status,
1073
- updatedAt: new Date().toISOString(),
1074
- };
1075
- if (status === 'completed' || status === 'failed' || status === 'cancelled') {
1076
- patch.completedAt = new Date().toISOString();
1077
- }
1078
- if (error) {
1079
- patch.error = error;
1080
- }
1081
- await this.db.updateRun(runId, patch);
1082
- }
1083
-
1084
- private async markStepFailed(state: StepState, error: string, runId: string): Promise<void> {
1085
- state.row.status = 'failed';
1086
- state.row.error = error;
1087
- state.row.completedAt = new Date().toISOString();
1088
- await this.db.updateStep(state.row.id, {
1089
- status: 'failed',
1090
- error,
1091
- completedAt: state.row.completedAt,
1092
- updatedAt: new Date().toISOString(),
1093
- });
1094
- this.emit({ type: 'step:failed', runId, stepName: state.row.stepName, error });
1095
- }
1096
-
1097
- private async markDownstreamSkipped(
1098
- failedStepName: string,
1099
- allSteps: WorkflowStep[],
1100
- stepStates: Map<string, StepState>,
1101
- runId: string,
1102
- ): Promise<void> {
1103
- const queue = [failedStepName];
1104
- const visited = new Set<string>();
1105
-
1106
- while (queue.length > 0) {
1107
- const current = queue.shift()!;
1108
- if (visited.has(current)) continue;
1109
- visited.add(current);
1110
-
1111
- for (const step of allSteps) {
1112
- if (step.dependsOn?.includes(current)) {
1113
- const state = stepStates.get(step.name);
1114
- if (state && state.row.status === 'pending') {
1115
- state.row.status = 'skipped';
1116
- await this.db.updateStep(state.row.id, {
1117
- status: 'skipped',
1118
- updatedAt: new Date().toISOString(),
1119
- });
1120
- this.emit({ type: 'step:skipped', runId, stepName: step.name });
1121
- this.postToChannel(`**[${step.name}]** Skipped — upstream dependency "${current}" failed`);
1122
- await this.trajectory?.stepSkipped(step, `Upstream dependency "${current}" failed`);
1123
- await this.trajectory?.decide(
1124
- `Whether to skip ${step.name}`,
1125
- 'skip',
1126
- `Upstream dependency "${current}" failed`,
1127
- );
1128
- queue.push(step.name);
1129
- }
1130
- }
1131
- }
1132
- }
1133
- }
1134
-
1135
- // ── Control flow helpers ──────────────────────────────────────────────
1136
-
1137
- private checkAborted(): void {
1138
- if (this.abortController?.signal.aborted) {
1139
- throw new Error('Workflow aborted');
1140
- }
1141
- }
1142
-
1143
- private async waitIfPaused(): Promise<void> {
1144
- if (!this.paused) return;
1145
- await new Promise<void>((resolve) => {
1146
- this.pauseResolver = resolve;
1147
- });
1148
- }
1149
-
1150
- private delay(ms: number): Promise<void> {
1151
- return new Promise((resolve) => setTimeout(resolve, ms));
1152
- }
1153
-
1154
- // ── Channel messaging ──────────────────────────────────────────────────
1155
-
1156
- /** Post a message to the workflow channel. Fire-and-forget — never throws or blocks. */
1157
- private postToChannel(text: string): void {
1158
- if (!this.relaycastApi || !this.channel) return;
1159
- this.relaycastApi.sendToChannel(this.channel, text).catch(() => {
1160
- // Non-critical — don't break workflow execution
1161
- });
1162
- }
1163
-
1164
- /** Post a rich completion report to the channel. */
1165
- private postCompletionReport(
1166
- workflowName: string,
1167
- outcomes: StepOutcome[],
1168
- summary: string,
1169
- confidence: number,
1170
- ): void {
1171
- const completed = outcomes.filter((o) => o.status === 'completed');
1172
- const skipped = outcomes.filter((o) => o.status === 'skipped');
1173
- const retried = outcomes.filter((o) => o.attempts > 1);
1174
-
1175
- const lines: string[] = [
1176
- `## Workflow **${workflowName}** — Complete`,
1177
- '',
1178
- summary,
1179
- `Confidence: ${Math.round(confidence * 100)}%`,
1180
- '',
1181
- '### Steps',
1182
- ...completed.map((o) =>
1183
- `- **${o.name}** (${o.agent}) — passed${o.verificationPassed ? ' (verified)' : ''}${o.attempts > 1 ? ` after ${o.attempts} attempts` : ''}`,
1184
- ),
1185
- ...skipped.map((o) => `- **${o.name}** — skipped`),
1186
- ];
1187
-
1188
- if (retried.length > 0) {
1189
- lines.push('', '### Retries');
1190
- for (const o of retried) {
1191
- lines.push(`- ${o.name}: ${o.attempts} attempts`);
1192
- }
1193
- }
1194
-
1195
- this.postToChannel(lines.join('\n'));
1196
- }
1197
-
1198
- /** Post a failure report to the channel. */
1199
- private postFailureReport(
1200
- workflowName: string,
1201
- outcomes: StepOutcome[],
1202
- errorMsg: string,
1203
- ): void {
1204
- const completed = outcomes.filter((o) => o.status === 'completed');
1205
- const failed = outcomes.filter((o) => o.status === 'failed');
1206
- const skipped = outcomes.filter((o) => o.status === 'skipped');
1207
-
1208
- const lines: string[] = [
1209
- `## Workflow **${workflowName}** — Failed`,
1210
- '',
1211
- `${completed.length}/${outcomes.length} steps passed. Error: ${errorMsg}`,
1212
- '',
1213
- '### Steps',
1214
- ...completed.map((o) => `- **${o.name}** (${o.agent}) — passed`),
1215
- ...failed.map((o) => `- **${o.name}** (${o.agent}) — FAILED: ${o.error ?? 'unknown'}`),
1216
- ...skipped.map((o) => `- **${o.name}** — skipped`),
1217
- ];
1218
-
1219
- this.postToChannel(lines.join('\n'));
1220
- }
1221
-
1222
- // ── Trajectory helpers ────────────────────────────────────────────────
1223
-
1224
- /** Analyze DAG structure for trajectory context. */
1225
- private analyzeDAG(steps: WorkflowStep[]): string {
1226
- const roots = steps.filter((s) => !s.dependsOn?.length);
1227
- const withDeps = steps.filter((s) => s.dependsOn?.length);
1228
-
1229
- const parts = [`Parsed ${steps.length} steps`];
1230
- if (roots.length > 1) {
1231
- parts.push(`${roots.length} parallel tracks`);
1232
- }
1233
- if (withDeps.length > 0) {
1234
- parts.push(`${withDeps.length} dependent steps`);
1235
- }
1236
- parts.push('DAG validated, no cycles');
1237
- return parts.join(', ');
1238
- }
1239
-
1240
- /** Collect step outcomes for trajectory synthesis. */
1241
- private collectOutcomes(stepStates: Map<string, StepState>, steps?: WorkflowStep[]): StepOutcome[] {
1242
- const stepsWithVerification = new Set(
1243
- steps?.filter((s) => s.verification).map((s) => s.name) ?? [],
1244
- );
1245
- const outcomes: StepOutcome[] = [];
1246
- for (const [name, state] of stepStates) {
1247
- outcomes.push({
1248
- name,
1249
- agent: state.row.agentName,
1250
- status: state.row.status === 'completed' ? 'completed'
1251
- : state.row.status === 'skipped' ? 'skipped'
1252
- : 'failed',
1253
- attempts: state.row.retryCount + 1,
1254
- output: state.row.output,
1255
- error: state.row.error,
1256
- verificationPassed: state.row.status === 'completed' && stepsWithVerification.has(name),
1257
- });
1258
- }
1259
- return outcomes;
1260
- }
1261
-
1262
- // ── ID generation ─────────────────────────────────────────────────────
1263
-
1264
- private generateId(): string {
1265
- return randomBytes(12).toString('hex');
1266
- }
1267
-
1268
- private generateShortId(): string {
1269
- return randomBytes(4).toString('hex');
1270
- }
1271
- }