agent-relay 2.3.14 → 2.3.15

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
@@ -0,0 +1,1485 @@
1
+ /**
2
+ * Workflow Superiority — Multi-Agent Implementation Campaign
3
+ *
4
+ * A fully specified DAG workflow that orchestrates Claude (lead + reviewer)
5
+ * and Codex workers across five implementation tiers to make the relay
6
+ * broker-sdk workflow system decisively superior to Agno and Swarms AI.
7
+ *
8
+ * Architecture:
9
+ * - Claude lead: orchestrates each phase, approves trajectories, makes
10
+ * final architectural decisions
11
+ * - Codex workers: implement code changes, one per specialization domain
12
+ * - Claude code-reviewer: independent review after every implementation phase
13
+ * (separate from lead to avoid confirmation bias)
14
+ *
15
+ * DAG phases:
16
+ * Phase 0 → Codebase analysis + spec approval
17
+ * Phase 1 → Type system extension (condition/loop/router/hitl/sub-workflow)
18
+ * Phase 2 → Execution engine (runner handles new primitives + session)
19
+ * Phase 3 → Meta-orchestration (parallel with Phase 4)
20
+ * Phase 4 → Storage backends (parallel with Phase 3)
21
+ * Phase 5 → Deployment & observability
22
+ * Phase 6 → Integration validation + final lead sign-off
23
+ *
24
+ * Run:
25
+ * npx tsx src/examples/workflow-superiority.ts
26
+ *
27
+ * Environment:
28
+ * RELAY_API_KEY — optional. If absent the runner auto-provisions a
29
+ * fresh Relaycast workspace for each run (fully isolated, no caching).
30
+ */
31
+
32
+ import { workflow } from '../workflows/builder.js';
33
+ import type { WorkflowEvent } from '../workflows/runner.js';
34
+
35
+ // ── Spec constants ────────────────────────────────────────────────────────────
36
+
37
+ const WORKFLOW_ROOT = 'packages/sdk/src/workflows';
38
+ const TYPES_FILE = `${WORKFLOW_ROOT}/types.ts`;
39
+ const RUNNER_FILE = `${WORKFLOW_ROOT}/runner.ts`;
40
+ const BUILDER_FILE = `${WORKFLOW_ROOT}/builder.ts`;
41
+ const SCHEMA_FILE = `${WORKFLOW_ROOT}/schema.json`;
42
+ const INDEX_FILE = `${WORKFLOW_ROOT}/index.ts`;
43
+ const MEMORY_DB = `${WORKFLOW_ROOT}/memory-db.ts`;
44
+ const COORDINATOR = `${WORKFLOW_ROOT}/coordinator.ts`;
45
+ const BARRIER_FILE = `${WORKFLOW_ROOT}/barrier.ts`;
46
+ const TEMPLATES = `${WORKFLOW_ROOT}/templates.ts`;
47
+
48
+ // NOTE: No withExit() wrapper needed — the WorkflowRunner automatically
49
+ // appends self-termination instructions in spawnAndWait() with the agent's
50
+ // actual runtime name. Adding a second exit instruction wastes tokens.
51
+
52
+ // ── Event handler ─────────────────────────────────────────────────────────────
53
+
54
+ const onEvent = (event: WorkflowEvent): void => {
55
+ const ts = new Date().toISOString();
56
+ switch (event.type) {
57
+ case 'run:started':
58
+ console.log(`[${ts}] 🚀 run started runId=${event.runId}`);
59
+ break;
60
+ case 'run:completed':
61
+ console.log(`[${ts}] ✅ run complete runId=${event.runId}`);
62
+ break;
63
+ case 'run:failed':
64
+ console.error(`[${ts}] ❌ run failed runId=${event.runId} error=${event.error}`);
65
+ break;
66
+ case 'step:started':
67
+ console.log(`[${ts}] → ${event.stepName}`);
68
+ break;
69
+ case 'step:completed':
70
+ console.log(`[${ts}] ✓ ${event.stepName}`);
71
+ break;
72
+ case 'step:failed':
73
+ console.error(`[${ts}] ✗ ${event.stepName}: ${event.error}`);
74
+ break;
75
+ case 'step:skipped':
76
+ console.log(`[${ts}] ⊘ ${event.stepName} (skipped)`);
77
+ break;
78
+ case 'step:retrying':
79
+ console.log(`[${ts}] ↺ ${event.stepName} attempt=${event.attempt}`);
80
+ break;
81
+ }
82
+ };
83
+
84
+ // ── Workflow definition ───────────────────────────────────────────────────────
85
+
86
+ const result = await workflow('broker-sdk-superiority')
87
+ .description(
88
+ 'Five-phase multi-agent campaign to make relay broker-sdk workflow system ' +
89
+ 'decisively superior to Agno and Swarms AI. Claude leads; Codex implements; ' +
90
+ 'Claude reviews after every phase.'
91
+ )
92
+ .pattern('dag')
93
+ .channel('wf-broker-sdk-superiority')
94
+ .maxConcurrency(3)
95
+ .timeout(28_800_000) // 8 hours — this is a large implementation campaign
96
+
97
+ // ── Agents ────────────────────────────────────────────────────────────────
98
+
99
+ .agent('lead', {
100
+ cli: 'claude',
101
+ role:
102
+ 'Lead architect. Sets direction, reviews each phase output, approves ' +
103
+ 'trajectories, and resolves architectural conflicts. Has final say on ' +
104
+ 'all design decisions.',
105
+ retries: 2,
106
+ })
107
+
108
+ .agent('code-reviewer', {
109
+ cli: 'claude',
110
+ role:
111
+ 'Independent code reviewer. Reviews implementation quality, correctness, ' +
112
+ 'TypeScript type safety, test coverage, and integration coherence after ' +
113
+ 'every phase. Catches issues the lead may have missed.',
114
+ retries: 2,
115
+ })
116
+
117
+ .agent('spec-analyst', {
118
+ cli: 'codex',
119
+ role:
120
+ 'Codebase analyst. Reads the existing workflow source files and produces ' +
121
+ 'a precise, file-by-file implementation plan for all five improvement tiers.',
122
+ retries: 2,
123
+ })
124
+
125
+ .agent('schema-implementer', {
126
+ cli: 'codex',
127
+ role:
128
+ 'Type system specialist. Extends TypeScript interfaces and JSON Schema ' +
129
+ 'definitions to support new workflow primitives.',
130
+ retries: 2,
131
+ })
132
+
133
+ .agent('engine-implementer', {
134
+ cli: 'codex',
135
+ role:
136
+ 'Execution engine specialist. Implements new step-type execution logic ' +
137
+ 'inside WorkflowRunner, adds session concept, and expands the event system.',
138
+ retries: 3,
139
+ })
140
+
141
+ .agent('meta-implementer', {
142
+ cli: 'codex',
143
+ role:
144
+ 'Meta-orchestration specialist. Implements sub-workflow composition, ' +
145
+ 'AutoWorkflowBuilder, and semantic pattern selection.',
146
+ retries: 2,
147
+ })
148
+
149
+ .agent('storage-implementer', {
150
+ cli: 'codex',
151
+ role:
152
+ 'Storage backend specialist. Implements PostgresWorkflowDb, ' +
153
+ 'SqliteWorkflowDb, and RedisWorkflowDb adapters.',
154
+ retries: 2,
155
+ })
156
+
157
+ .agent('deploy-implementer', {
158
+ cli: 'codex',
159
+ role:
160
+ 'Deployment and observability specialist. Implements relay workflow serve ' +
161
+ 'HTTP server, OTel tracing integration, and CLI improvements.',
162
+ retries: 2,
163
+ })
164
+
165
+ .agent('test-validator', {
166
+ cli: 'codex',
167
+ role:
168
+ 'Integration test specialist. Validates all phases compile, tests pass, ' + 'and exports are correct.',
169
+ retries: 2,
170
+ })
171
+
172
+ // ── Phase 0: Codebase Analysis ────────────────────────────────────────────
173
+
174
+ .step('codebase-analysis', {
175
+ agent: 'spec-analyst',
176
+ task: `
177
+ You are the first step in a large improvement campaign for the relay broker-sdk
178
+ workflow system. Your job is to read the existing source files and produce a
179
+ concrete, file-by-file implementation plan.
180
+
181
+ READ THESE FILES THOROUGHLY:
182
+ - ${TYPES_FILE}
183
+ - ${RUNNER_FILE}
184
+ - ${BUILDER_FILE}
185
+ - ${SCHEMA_FILE}
186
+ - ${INDEX_FILE}
187
+ - ${MEMORY_DB}
188
+ - ${COORDINATOR}
189
+ - ${BARRIER_FILE}
190
+ - ${TEMPLATES}
191
+
192
+ PRODUCE A DETAILED PLAN covering the following improvements (in priority order):
193
+
194
+ TIER 1 — Schema Primitives (new step types in types.ts + schema.json):
195
+ a) condition step: WorkflowStep gains optional "condition" string (CEL expr)
196
+ and optional "type" discriminant. When condition evaluates false → skip.
197
+ b) loop step: new LoopStepGroup interface { type:"loop", name, steps[],
198
+ until?: string (CEL expr on step outputs), maxIterations: number }
199
+ c) router step: new RouterStepGroup interface { type:"router", name,
200
+ selector: string (CEL expr), routes: RouterRoute[], default?: string[] }
201
+ RouterRoute: { match: string, steps: string[] }
202
+ d) parallel step group: new ParallelStepGroup interface { type:"parallel",
203
+ name, barrier?: "all"|"any"|"majority", timeout?: number, steps[] }
204
+ e) hitl step: new HitlStep interface { type:"hitl", name, message: string,
205
+ channel?: string, timeout?: number, onTimeout?: "skip"|"fail" }
206
+ f) flow shorthand: RelayYamlConfig gains optional "flow?: string" field,
207
+ parsed as "A -> B, C -> D" notation generating dependsOn edges
208
+ g) sub-workflow step: new SubWorkflowStep interface { type:"sub-workflow",
209
+ name, workflow: string (path or registry name), vars?: Record<string,string> }
210
+ h) Promote retries + timeoutMs to top-level WorkflowStep fields (they already
211
+ exist — verify they are exported and used correctly in runner.ts)
212
+
213
+ TIER 2 — Execution Engine (runner.ts):
214
+ a) Condition evaluation: before executing a step, if step.condition is set,
215
+ evaluate the CEL expression; if false, mark step skipped
216
+ b) Loop execution: LoopStepGroup runs its steps[].steps repeatedly until
217
+ until-condition is true or maxIterations reached
218
+ c) Router execution: evaluate selector, match route, execute branch steps
219
+ d) Parallel group: run steps concurrently with barrier semantics
220
+ e) HITL execution: pause run, write hitl-pending file, poll for response file
221
+ f) Sub-workflow: recursively create a WorkflowRunner and execute the referenced
222
+ config, return its output as the step output
223
+ g) Session concept: WorkflowRunner gains optional sessionId param; a session
224
+ groups multiple runs and shares state across them via SessionStore
225
+ h) Input schema validation: RelayYamlConfig gains optional inputSchema field
226
+ (JSON Schema object); validate vars before execution begins
227
+ i) Fallback agent: WorkflowStep gains optional fallbackAgent?: string;
228
+ if primary agent fails all retries, retry once with fallbackAgent
229
+ j) Expanded events: add 15+ new WorkflowEvent union members for loop iterations,
230
+ condition evaluations, router selections, hitl pauses, session updates
231
+
232
+ TIER 3 — Meta-Orchestration:
233
+ a) AutoWorkflowBuilder: new exported class that takes a task string and
234
+ available CLIs, calls a meta-agent to generate RelayYamlConfig, validates
235
+ it, and returns it (or optionally executes immediately)
236
+ b) Workflow registry: simple JSON file-based registry at
237
+ ~/.agent-relay/workflow-registry.json that maps name→path; CLI commands
238
+ relay workflow list, search, install, publish
239
+
240
+ TIER 4 — Storage Backends:
241
+ a) PostgresWorkflowDb: implements WorkflowDb interface using node-postgres (pg)
242
+ with schema migration on first connect
243
+ b) SqliteWorkflowDb: implements WorkflowDb using better-sqlite3 (sync API
244
+ wrapped in async interface)
245
+ c) RedisWorkflowDb: implements WorkflowDb using ioredis with JSON serialization
246
+ and optional TTL on run records
247
+ All three: exported from packages/sdk/src/workflows/db/ submodule
248
+
249
+ TIER 5 — Deployment & Observability:
250
+ a) relay workflow serve: new CLI subcommand that starts an Express/Fastify HTTP
251
+ server exposing POST /run, GET /runs/:id, GET /runs/:id/events (SSE),
252
+ POST /runs/:id/hitl/:step, POST /runs/:id/abort, GET /health
253
+ b) OTel tracing: optional otel?: { exportTo: string, endpoint: string,
254
+ serviceName: string } in RelayYamlConfig; runner creates spans for
255
+ run start/end and each step start/end using @opentelemetry/sdk-node
256
+ c) CLI improvements: relay workflow dry-run, relay workflow inspect,
257
+ relay workflow replay --from <step>
258
+
259
+ For each tier, specify:
260
+ 1. Which existing files change and what lines/sections to modify
261
+ 2. Which new files to create and their full path
262
+ 3. New TypeScript interface/type definitions (exact syntax)
263
+ 4. New function signatures with JSDoc
264
+
265
+ Output a structured plan with clear section headers.
266
+ End your output with: ANALYSIS_COMPLETE
267
+ `,
268
+ retries: 2,
269
+ verification: { type: 'output_contains', value: 'ANALYSIS_COMPLETE' },
270
+ })
271
+
272
+ .step('spec-approval', {
273
+ agent: 'lead',
274
+ task: `
275
+ Review the codebase analysis produced by the spec-analyst:
276
+
277
+ {{steps.codebase-analysis.output}}
278
+
279
+ Your job:
280
+ 1. Validate that the plan covers all five tiers correctly
281
+ 2. Identify any architectural risks or conflicts (e.g., breaking changes to
282
+ WorkflowStep that would break existing templates)
283
+ 3. Clarify the execution order for each tier
284
+ 4. Approve or amend the plan — note any changes clearly
285
+ 5. Establish a non-negotiable constraint: ALL existing tests in
286
+ packages/sdk/src/__tests__/ must remain passing after each phase
287
+
288
+ Key architectural decisions to make explicit:
289
+ - How should WorkflowStep handle the new type discriminant without breaking
290
+ existing YAML that has no "type" field? (answer: type defaults to "agent")
291
+ - Should LoopStepGroup and RouterStepGroup be separate from WorkflowStep in
292
+ the types, or unified via a discriminated union?
293
+ - Is the session concept stored in the same WorkflowDb or a separate SessionDb?
294
+ - For the hitl step, what is the polling mechanism? (file-based, HTTP endpoint,
295
+ or webhook?) Choose the simplest that works without requiring a server.
296
+
297
+ Output a concise approved plan with your decisions. End with: SPEC_APPROVED
298
+ `,
299
+ dependsOn: ['codebase-analysis'],
300
+ retries: 2,
301
+ verification: { type: 'output_contains', value: 'SPEC_APPROVED' },
302
+ })
303
+
304
+ // ── Phase 1: Type System Extension ────────────────────────────────────────
305
+
306
+ .step('p1-type-system', {
307
+ agent: 'schema-implementer',
308
+ task: `
309
+ Phase 1a: Extend the TypeScript type system for new workflow primitives.
310
+
311
+ Approved spec context:
312
+ {{steps.spec-approval.output}}
313
+
314
+ YOUR TASK: Modify ${TYPES_FILE} to add all new types.
315
+
316
+ SPECIFIC CHANGES:
317
+
318
+ 1. Add a StepType discriminant:
319
+ export type StepType = "agent" | "condition" | "loop" | "router" | "parallel" | "hitl" | "sub-workflow";
320
+
321
+ 2. Extend WorkflowStep to include new optional fields:
322
+ - type?: StepType (default "agent" when absent)
323
+ - condition?: string (CEL expression; step skipped if evaluates false)
324
+ - fallbackAgent?: string (agent name to use if primary fails all retries)
325
+
326
+ 3. Add new composite step group interfaces:
327
+
328
+ export interface LoopStepGroup {
329
+ type: "loop";
330
+ name: string;
331
+ description?: string;
332
+ steps: WorkflowStep[];
333
+ until?: string; // CEL expression evaluated after each iteration
334
+ maxIterations: number; // required — prevents runaway loops
335
+ timeoutMs?: number;
336
+ }
337
+
338
+ export interface RouterRoute {
339
+ match: string; // CEL expression or substring match
340
+ steps: string[]; // names of steps to execute for this route
341
+ }
342
+
343
+ export interface RouterStepGroup {
344
+ type: "router";
345
+ name: string;
346
+ description?: string;
347
+ selector: string; // CEL expression producing a string value
348
+ routes: RouterRoute[];
349
+ default?: string[]; // step names to run if no route matches
350
+ timeoutMs?: number;
351
+ }
352
+
353
+ export interface ParallelStepGroup {
354
+ type: "parallel";
355
+ name: string;
356
+ description?: string;
357
+ barrier?: "all" | "any" | "majority"; // default "all"
358
+ steps: WorkflowStep[];
359
+ timeoutMs?: number;
360
+ }
361
+
362
+ export interface HitlStep {
363
+ type: "hitl";
364
+ name: string;
365
+ description?: string;
366
+ message: string; // human-readable prompt shown to approver
367
+ channel?: string; // notification target e.g. "slack:#approvals"
368
+ timeoutMs?: number; // how long to wait before applying onTimeout
369
+ onTimeout?: "skip" | "fail" | "use-default"; // default "fail"
370
+ defaultResponse?: string; // used when onTimeout is "use-default"
371
+ }
372
+
373
+ export interface SubWorkflowStep {
374
+ type: "sub-workflow";
375
+ name: string;
376
+ description?: string;
377
+ workflow: string; // path to relay.yaml or registry name
378
+ vars?: Record<string, string>; // variable substitutions for the sub-workflow
379
+ timeoutMs?: number;
380
+ }
381
+
382
+ 4. Create a union type for any step or step group:
383
+ export type AnyWorkflowStep =
384
+ | WorkflowStep
385
+ | LoopStepGroup
386
+ | RouterStepGroup
387
+ | ParallelStepGroup
388
+ | HitlStep
389
+ | SubWorkflowStep;
390
+
391
+ 5. Update WorkflowDefinition.steps to use AnyWorkflowStep[]:
392
+ steps: AnyWorkflowStep[];
393
+
394
+ 6. Add session types:
395
+ export interface SessionConfig {
396
+ persist?: boolean; // default false
397
+ historyRuns?: number; // how many prior runs to inject as context
398
+ ttlMs?: number;
399
+ }
400
+
401
+ export interface SessionRow {
402
+ id: string;
403
+ workflowName: string;
404
+ runIds: string[];
405
+ stateSnapshot: Record<string, unknown>;
406
+ createdAt: string;
407
+ updatedAt: string;
408
+ }
409
+
410
+ 7. Add inputSchema to RelayYamlConfig:
411
+ inputSchema?: Record<string, unknown>; // JSON Schema object
412
+
413
+ 8. Add session to RelayYamlConfig:
414
+ session?: SessionConfig;
415
+
416
+ 9. Expand WorkflowEvent union in runner.ts — ADD to the existing union
417
+ (note: WorkflowEvent is defined in runner.ts, not types.ts, so create a
418
+ comment in types.ts pointing to runner.ts where these will be added):
419
+ // New events will be added to WorkflowEvent in runner.ts:
420
+ // loop:iteration-started, loop:iteration-completed, loop:ended,
421
+ // condition:evaluated, condition:skipped, router:evaluated,
422
+ // parallel:branch-started, parallel:branch-completed,
423
+ // hitl:paused, hitl:responded, hitl:timeout,
424
+ // subworkflow:started, subworkflow:completed,
425
+ // session:state-updated, validation:failed, fallback:agent-switched
426
+
427
+ 10. Export all new types from ${INDEX_FILE}
428
+
429
+ Make ALL changes. Run: npx tsc --noEmit to verify no type errors.
430
+ End your output with: TYPES_COMPLETE
431
+ `,
432
+ dependsOn: ['spec-approval'],
433
+ retries: 2,
434
+ verification: { type: 'output_contains', value: 'TYPES_COMPLETE' },
435
+ })
436
+
437
+ .step('p1-json-schema', {
438
+ agent: 'schema-implementer',
439
+ task: `
440
+ Phase 1b: Update the JSON Schema to match the new TypeScript types.
441
+
442
+ Prior type changes:
443
+ {{steps.p1-type-system.output}}
444
+
445
+ YOUR TASK: Update ${SCHEMA_FILE} to add definitions for all new step group types.
446
+
447
+ Add new $defs entries:
448
+ - StepType enum definition
449
+ - LoopStepGroup object with required: [type, name, steps, maxIterations]
450
+ - RouterRoute object
451
+ - RouterStepGroup object with required: [type, name, selector, routes]
452
+ - ParallelStepGroup object with required: [type, name, steps]
453
+ - HitlStep object with required: [type, name, message]
454
+ - SubWorkflowStep object with required: [type, name, workflow]
455
+ - SessionConfig object
456
+ - AnyWorkflowStep as oneOf the above plus existing WorkflowStep
457
+
458
+ Update workflow.steps array to use anyOf: [WorkflowStep, AnyWorkflowStep]
459
+ Update top-level RelayYamlConfig to include inputSchema and session properties.
460
+
461
+ Also update packages/sdk/src/workflows/builder.ts:
462
+ - Add a new builder method for sessions:
463
+ session(config: SessionConfig): this
464
+ - Add a new builder method for input schema:
465
+ inputSchema(schema: Record<string, unknown>): this
466
+
467
+ Verify with: cat ${SCHEMA_FILE} | python3 -m json.tool (or equivalent JSON lint)
468
+ End your output with: SCHEMA_COMPLETE
469
+ `,
470
+ dependsOn: ['p1-type-system'],
471
+ retries: 2,
472
+ verification: { type: 'output_contains', value: 'SCHEMA_COMPLETE' },
473
+ })
474
+
475
+ .step('p1-lead-review', {
476
+ agent: 'lead',
477
+ task: `
478
+ Phase 1 Lead Review: Validate the type system and schema changes.
479
+
480
+ Type system changes:
481
+ {{steps.p1-type-system.output}}
482
+
483
+ Schema changes:
484
+ {{steps.p1-json-schema.output}}
485
+
486
+ REVIEW CRITERIA:
487
+ 1. Do the new TypeScript interfaces correctly model the intended semantics?
488
+ 2. Is the AnyWorkflowStep discriminated union correctly structured? Each variant
489
+ must have a unique "type" literal so TypeScript can narrow the type.
490
+ 3. Does the WorkflowStep backward compatibility hold? (existing YAML with no
491
+ "type" field should still work — type defaults to "agent")
492
+ 4. Are the new fields in RelayYamlConfig (inputSchema, session) properly optional?
493
+ 5. Does the builder extension make sense? Are the new methods ergonomic?
494
+ 6. Any naming inconsistencies between the TypeScript types and JSON Schema?
495
+
496
+ If you find issues, describe them specifically with file:line references.
497
+ If the phase is acceptable, state what should be fixed in the engine phase.
498
+ End with: PHASE_1_APPROVED (even if you request minor fixes — fixes go to
499
+ the code-reviewer, who will direct the implementer if needed)
500
+ `,
501
+ dependsOn: ['p1-json-schema'],
502
+ retries: 1,
503
+ verification: { type: 'output_contains', value: 'PHASE_1_APPROVED' },
504
+ })
505
+
506
+ .step('p1-code-review', {
507
+ agent: 'code-reviewer',
508
+ task: `
509
+ Phase 1 Independent Code Review: TypeScript type system extension.
510
+ (Running in parallel with lead review — review the code independently.)
511
+
512
+ JSON Schema changes:
513
+ {{steps.p1-json-schema.output}}
514
+
515
+ YOUR INDEPENDENT REVIEW of ${TYPES_FILE}, ${SCHEMA_FILE}, ${BUILDER_FILE}:
516
+
517
+ Check:
518
+ 1. TypeScript strict-mode compliance — no implicit any, all fields typed
519
+ 2. JSDoc on every exported interface and type
520
+ 3. Correct use of discriminated unions (each variant's type field is a
521
+ string literal, not just string)
522
+ 4. AnyWorkflowStep is correctly exported from ${INDEX_FILE}
523
+ 5. Builder methods follow existing patterns (return this for chaining)
524
+ 6. JSON Schema $defs are correctly referenced in anyOf arrays
525
+ 7. No circular references in the type definitions
526
+ 8. Run: npx tsc --noEmit from packages/sdk and confirm zero errors
527
+
528
+ List any issues found. For each: file, line (if known), problem, fix required.
529
+ If zero issues: explicitly state "No issues found."
530
+ End with: CODE_REVIEW_1_COMPLETE
531
+ `,
532
+ dependsOn: ['p1-json-schema'],
533
+ retries: 1,
534
+ verification: { type: 'output_contains', value: 'CODE_REVIEW_1_COMPLETE' },
535
+ })
536
+
537
+ // ── Phase 2: Execution Engine ─────────────────────────────────────────────
538
+
539
+ .step('p2-condition-loop', {
540
+ agent: 'engine-implementer',
541
+ task: `
542
+ Phase 2a: Implement condition + loop execution in the WorkflowRunner.
543
+
544
+ Phase 1 review context:
545
+ {{steps.p1-code-review.output}}
546
+
547
+ YOUR TASK: Modify ${RUNNER_FILE} to handle condition and loop step types.
548
+
549
+ CONDITION STEP EXECUTION:
550
+ In the executeStep method (or wherever individual steps are dispatched):
551
+ 1. Check if step.type === "condition" OR if step.condition is set on a regular step
552
+ 2. If step.condition exists, evaluate the CEL expression using a lightweight
553
+ evaluator. Use the cel-js npm package (add to package.json if not present)
554
+ OR implement a minimal evaluator that handles:
555
+ - String contains: "X in Y.output"
556
+ - String equality: "steps.X.output == 'VALUE'"
557
+ - Boolean AND/OR
558
+ The expression context object should include:
559
+ { steps: Record<name, { output: string, status: string }>,
560
+ vars: VariableContext }
561
+ 3. If condition evaluates to false: mark step as "skipped", emit step:skipped event
562
+ 4. If condition evaluates to true (or no condition): proceed normally
563
+
564
+ Also add to WorkflowEvent union in runner.ts:
565
+ | { type: "condition:evaluated"; runId: string; stepName: string; result: boolean; expression: string }
566
+ | { type: "condition:skipped"; runId: string; stepName: string }
567
+
568
+ LOOP STEP GROUP EXECUTION:
569
+ Add a new method: private async executeLoopGroup(loop: LoopStepGroup, ...): Promise<string>
570
+ 1. Run loop.steps sequentially up to loop.maxIterations times
571
+ 2. After each iteration, evaluate loop.until CEL expression if provided
572
+ 3. If until evaluates to true, break and return last step output
573
+ 4. If maxIterations reached without satisfaction, fail with descriptive error
574
+ 5. Track step outputs by iteration: steps in context include "loop.STEP.output"
575
+ for the current iteration
576
+
577
+ Add to WorkflowEvent:
578
+ | { type: "loop:iteration-started"; runId: string; loopName: string; iteration: number }
579
+ | { type: "loop:iteration-completed"; runId: string; loopName: string; iteration: number; continuing: boolean }
580
+ | { type: "loop:ended"; runId: string; loopName: string; reason: "condition-met" | "max-iterations" }
581
+
582
+ In the main execution loop (findReadySteps / executeSteps), detect when a step
583
+ is a LoopStepGroup and route it to executeLoopGroup.
584
+
585
+ Run: npx tsc --noEmit to verify.
586
+ End your output with: CONDITION_LOOP_COMPLETE
587
+ `,
588
+ dependsOn: ['p1-code-review'],
589
+ retries: 2,
590
+ verification: { type: 'output_contains', value: 'CONDITION_LOOP_COMPLETE' },
591
+ })
592
+
593
+ .step('p2-input-validation', {
594
+ agent: 'schema-implementer',
595
+ task: `
596
+ Phase 2b: Implement input schema validation (runs in parallel with p2-condition-loop).
597
+
598
+ Phase 1 review context:
599
+ {{steps.p1-code-review.output}}
600
+
601
+ YOUR TASK: Add input schema validation to WorkflowRunner before execution starts.
602
+
603
+ In ${RUNNER_FILE}, in the execute() method, BEFORE the first findReadySteps call:
604
+
605
+ 1. If config.inputSchema is defined:
606
+ a. Import or inline a minimal JSON Schema validator. Use the ajv npm package
607
+ (add to package.json dependencies if not present).
608
+ b. Compile the schema: const validate = ajv.compile(config.inputSchema)
609
+ c. Validate the vars object against the schema
610
+ d. If invalid: emit { type: "validation:failed", runId, errors: AjvError[] }
611
+ and throw WorkflowValidationError with a human-readable message listing
612
+ each field error
613
+
614
+ 2. Add WorkflowValidationError class (extends Error) to runner.ts:
615
+ export class WorkflowValidationError extends Error {
616
+ constructor(public readonly errors: unknown[]) {
617
+ super("Workflow input validation failed: " + JSON.stringify(errors));
618
+ this.name = "WorkflowValidationError";
619
+ }
620
+ }
621
+
622
+ 3. Add to WorkflowEvent:
623
+ | { type: "validation:failed"; runId: string; errors: unknown[] }
624
+ | { type: "validation:passed"; runId: string }
625
+
626
+ 4. Export WorkflowValidationError from ${INDEX_FILE}
627
+
628
+ 5. Update builder.ts: add the inputSchema method to WorkflowBuilder that sets
629
+ config.inputSchema (this was noted in Phase 1 but implement it now if not done)
630
+
631
+ Run: npx tsc --noEmit to verify.
632
+ End your output with: INPUT_VALIDATION_COMPLETE
633
+ `,
634
+ dependsOn: ['p1-code-review'],
635
+ retries: 2,
636
+ verification: { type: 'output_contains', value: 'INPUT_VALIDATION_COMPLETE' },
637
+ })
638
+
639
+ .step('p2-router-hitl', {
640
+ agent: 'engine-implementer',
641
+ task: `
642
+ Phase 2c: Implement router + HITL step execution.
643
+
644
+ Condition/loop implementation:
645
+ {{steps.p2-condition-loop.output}}
646
+
647
+ YOUR TASK: Add router and HITL execution to ${RUNNER_FILE}.
648
+
649
+ ROUTER STEP GROUP EXECUTION:
650
+ Add: private async executeRouterGroup(router: RouterStepGroup, context, ...): Promise<string>
651
+ 1. Evaluate router.selector CEL expression to get a string value
652
+ 2. Iterate router.routes, find first route where match expression is true
653
+ (match can be substring check: selectorValue.includes(route.match) or
654
+ full CEL evaluation depending on complexity)
655
+ 3. Collect the branch step names to execute (from route.steps or router.default)
656
+ 4. Execute those steps (they must exist in the parent workflow's step list)
657
+ 5. Return concatenated outputs of the executed branch steps
658
+
659
+ Add to WorkflowEvent:
660
+ | { type: "router:evaluated"; runId: string; routerName: string; selectorValue: string; matchedRoute: string | null }
661
+ | { type: "router:branch-started"; runId: string; routerName: string; stepName: string }
662
+
663
+ HITL STEP EXECUTION:
664
+ Add: private async executeHitlStep(hitl: HitlStep, runId: string, ...): Promise<string>
665
+ 1. Write a file: {summaryDir}/{runId}/hitl-{hitl.name}-pending.json containing:
666
+ { runId, stepName: hitl.name, message: hitl.message, channel: hitl.channel,
667
+ pendingSince: ISO timestamp, timeoutMs: hitl.timeoutMs }
668
+ 2. Emit { type: "hitl:paused", runId, stepName, message, channel }
669
+ 3. Poll every 5 seconds for a response file:
670
+ {summaryDir}/{runId}/hitl-{hitl.name}-response.json
671
+ The response file should contain: { response: string, respondedBy?: string }
672
+ 4. If timeoutMs elapses without response:
673
+ - If onTimeout === "skip": mark step skipped, emit hitl:timeout, return ""
674
+ - If onTimeout === "use-default": emit hitl:timeout, return hitl.defaultResponse ?? ""
675
+ - Otherwise (default "fail"): throw Error("HITL step timed out")
676
+ 5. On response: delete pending file, emit hitl:responded, return response.response
677
+
678
+ Add to WorkflowEvent:
679
+ | { type: "hitl:paused"; runId: string; stepName: string; message: string; channel?: string }
680
+ | { type: "hitl:responded"; runId: string; stepName: string; response: string; respondedBy?: string }
681
+ | { type: "hitl:timeout"; runId: string; stepName: string; action: string }
682
+
683
+ Run: npx tsc --noEmit
684
+ End your output with: ROUTER_HITL_COMPLETE
685
+ `,
686
+ dependsOn: ['p2-condition-loop'],
687
+ retries: 2,
688
+ verification: { type: 'output_contains', value: 'ROUTER_HITL_COMPLETE' },
689
+ })
690
+
691
+ .step('p2-session-fallback', {
692
+ agent: 'engine-implementer',
693
+ task: `
694
+ Phase 2d: Implement session concept and fallback agent switching.
695
+
696
+ Router/HITL implementation:
697
+ {{steps.p2-router-hitl.output}}
698
+
699
+ YOUR TASK: Extend WorkflowRunner with session support and fallback agents.
700
+
701
+ SESSION CONCEPT:
702
+ A session groups multiple workflow runs, shares state across them, and can
703
+ inject prior run outputs as context into new runs.
704
+
705
+ 1. Extend WorkflowRunnerOptions in runner.ts:
706
+ sessionId?: string; // if provided, this run joins a named session
707
+
708
+ 2. Add a simple SessionStore (in-memory, backed by WorkflowDb if available):
709
+ - getSession(sessionId): returns { runIds: string[], stateSnapshot: Record }
710
+ - addRunToSession(sessionId, runId): appends runId to session run list
711
+ - getSessionHistory(sessionId, n): returns last n run outputs as context string
712
+
713
+ 3. In execute(), if sessionId is provided:
714
+ a. Load session history (last config.session?.historyRuns ?? 3 runs)
715
+ b. Prepend history context to the first step's task:
716
+ "[Session history - prior runs]\n{history}\n[Current task]\n{task}"
717
+ c. After run completes, call addRunToSession(sessionId, runId)
718
+
719
+ 4. Add to WorkflowEvent:
720
+ | { type: "session:run-added"; sessionId: string; runId: string }
721
+ | { type: "session:history-injected"; sessionId: string; historyRuns: number }
722
+
723
+ FALLBACK AGENT:
724
+ In the step execution method, after all retries on the primary agent are
725
+ exhausted:
726
+ 1. Check if step.fallbackAgent is defined
727
+ 2. If yes: look up the fallback agent definition by name from config.agents
728
+ 3. Re-attempt execution once with the fallback agent
729
+ 4. Emit { type: "fallback:agent-switched"; runId, stepName, fromAgent, toAgent }
730
+ 5. If fallback also fails: mark step as failed
731
+
732
+ Add to WorkflowEvent:
733
+ | { type: "fallback:agent-switched"; runId: string; stepName: string; fromAgent: string; toAgent: string }
734
+
735
+ Also implement the flow shorthand parser (if RelayYamlConfig.flow is set):
736
+ parseFlowString("A -> B, C -> D"): WorkflowStep[]
737
+ - "A -> B" means B.dependsOn = [A]
738
+ - "B, C" means B and C are in parallel (no dependency between them)
739
+ - "A, B -> C" means C.dependsOn = [A, B]
740
+ - Call this in execute() before building the step graph if config.flow is set
741
+
742
+ Run: npx tsc --noEmit
743
+ End your output with: SESSION_FALLBACK_COMPLETE
744
+ `,
745
+ dependsOn: ['p2-router-hitl'],
746
+ retries: 2,
747
+ verification: { type: 'output_contains', value: 'SESSION_FALLBACK_COMPLETE' },
748
+ })
749
+
750
+ .step('p2-lead-review', {
751
+ agent: 'lead',
752
+ task: `
753
+ Phase 2 Lead Review: Execution engine implementation.
754
+
755
+ Input validation:
756
+ {{steps.p2-input-validation.output}}
757
+
758
+ Session + fallback:
759
+ {{steps.p2-session-fallback.output}}
760
+
761
+ REVIEW:
762
+ 1. Is the CEL condition evaluator robust enough? Does it handle the common
763
+ patterns we need (output contains, equality, AND/OR)?
764
+ 2. Is the loop execution correctly isolated — do step names inside a loop
765
+ conflict with top-level step names in the output context?
766
+ 3. Is the HITL polling approach acceptable? (file-based polling every 5s)
767
+ Or should it use a simple readline/stdin approach instead?
768
+ 4. Does the session history injection make sense — will agents be overwhelmed
769
+ by injected context if historyRuns is large?
770
+ 5. Is the flow string parser correct for all cases:
771
+ "A -> B, C -> D" and "A, B -> C"?
772
+ 6. Are all new WorkflowEvent variants added to the union consistently?
773
+
774
+ Note any critical fixes needed before Phase 3 begins.
775
+ End with: PHASE_2_APPROVED
776
+ `,
777
+ dependsOn: ['p2-session-fallback', 'p2-input-validation'],
778
+ retries: 1,
779
+ verification: { type: 'output_contains', value: 'PHASE_2_APPROVED' },
780
+ })
781
+
782
+ .step('p2-code-review', {
783
+ agent: 'code-reviewer',
784
+ task: `
785
+ Phase 2 Independent Code Review: Execution engine.
786
+
787
+ Lead's review:
788
+ {{steps.p2-lead-review.output}}
789
+
790
+ INDEPENDENT REVIEW of ${RUNNER_FILE}:
791
+
792
+ 1. Correctness: does the condition evaluator correctly handle edge cases
793
+ (undefined step output, empty strings, non-boolean CEL results)?
794
+ 2. Loop safety: is there a guard against infinite loops if maxIterations is 0?
795
+ 3. HITL polling: does the polling correctly clean up pending files on both
796
+ success and timeout paths? No file handle leaks?
797
+ 4. Fallback agent: is the agent definition lookup null-safe? What if
798
+ fallbackAgent name doesn't exist in config.agents?
799
+ 5. Session history injection: is it correctly skipped when sessionId is absent?
800
+ 6. Flow parser: does it handle edge cases — empty string, single agent,
801
+ spaces around arrows?
802
+ 7. TypeScript: run npx tsc --noEmit and report results
803
+ 8. Existing tests: run npx jest packages/sdk and report pass/fail counts
804
+
805
+ List all issues with specific fixes. State "No issues" for clean sections.
806
+ End with: CODE_REVIEW_2_COMPLETE
807
+ `,
808
+ dependsOn: ['p2-lead-review'],
809
+ retries: 1,
810
+ verification: { type: 'output_contains', value: 'CODE_REVIEW_2_COMPLETE' },
811
+ })
812
+
813
+ // ── Phase 3: Meta-Orchestration (parallel with Phase 4) ───────────────────
814
+
815
+ .step('p3-sub-workflow', {
816
+ agent: 'meta-implementer',
817
+ task: `
818
+ Phase 3a: Implement sub-workflow step execution.
819
+
820
+ Phase 2 review context:
821
+ {{steps.p2-code-review.output}}
822
+
823
+ YOUR TASK: Add sub-workflow composition to ${RUNNER_FILE}.
824
+
825
+ SUB-WORKFLOW EXECUTION:
826
+ Add: private async executeSubWorkflow(step: SubWorkflowStep, vars, runId, ...): Promise<string>
827
+ 1. Resolve the workflow reference:
828
+ - If step.workflow starts with "./" or "/": treat as file path
829
+ - Otherwise: look up in the workflow registry at
830
+ ~/.agent-relay/workflow-registry.json (create if absent; plain JSON map)
831
+ 2. Load and parse the referenced relay.yaml file
832
+ 3. Merge step.vars with the current run's vars (step.vars take precedence)
833
+ 4. Create a new WorkflowRunner instance (child runner), share the same DB
834
+ 5. Execute the sub-workflow config via child runner
835
+ 6. Return the sub-workflow's run output (join all step outputs)
836
+
837
+ Add to WorkflowEvent:
838
+ | { type: "subworkflow:started"; runId: string; stepName: string; workflowRef: string }
839
+ | { type: "subworkflow:completed"; runId: string; stepName: string; output: string }
840
+ | { type: "subworkflow:failed"; runId: string; stepName: string; error: string }
841
+
842
+ WORKFLOW REGISTRY:
843
+ Create packages/sdk/src/workflows/registry.ts:
844
+
845
+ export interface WorkflowRegistryEntry {
846
+ name: string;
847
+ path: string;
848
+ description?: string;
849
+ tags?: string[];
850
+ installedAt: string;
851
+ }
852
+
853
+ export class WorkflowRegistry {
854
+ private readonly registryPath: string;
855
+ // Load registry from ~/.agent-relay/workflow-registry.json
856
+ async list(): Promise<WorkflowRegistryEntry[]>
857
+ async get(name: string): Promise<WorkflowRegistryEntry | null>
858
+ async register(entry: WorkflowRegistryEntry): Promise<void>
859
+ async unregister(name: string): Promise<void>
860
+ async resolvePath(nameOrPath: string): Promise<string>
861
+ // If starts with ./ or / return as-is; else look up in registry
862
+ }
863
+
864
+ Export WorkflowRegistry from ${INDEX_FILE}.
865
+
866
+ Run: npx tsc --noEmit
867
+ End with: SUB_WORKFLOW_COMPLETE
868
+ `,
869
+ dependsOn: ['p2-code-review'],
870
+ retries: 2,
871
+ verification: { type: 'output_contains', value: 'SUB_WORKFLOW_COMPLETE' },
872
+ })
873
+
874
+ .step('p3-auto-builder', {
875
+ agent: 'meta-implementer',
876
+ task: `
877
+ Phase 3b: Implement AutoWorkflowBuilder.
878
+
879
+ Sub-workflow implementation:
880
+ {{steps.p3-sub-workflow.output}}
881
+
882
+ YOUR TASK: Create packages/sdk/src/workflows/auto-builder.ts
883
+
884
+ The AutoWorkflowBuilder analyzes a task description and uses a meta-agent
885
+ to generate a complete RelayYamlConfig automatically.
886
+
887
+ export interface AutoBuildOptions {
888
+ availableClis?: AgentCli[]; // defaults to ["claude", "codex"]
889
+ maxAgents?: number; // defaults to 5
890
+ maxSteps?: number; // defaults to 10
891
+ preferredPattern?: SwarmPattern;
892
+ dryRun?: boolean; // if true, return config without executing
893
+ metaCli?: AgentCli; // CLI to use for the meta-agent (default "claude")
894
+ }
895
+
896
+ export interface AutoBuildResult {
897
+ config: RelayYamlConfig;
898
+ yaml: string;
899
+ reasoning: string; // why the meta-agent chose this structure
900
+ run?: WorkflowRunRow; // present if dryRun is false
901
+ }
902
+
903
+ export class AutoWorkflowBuilder {
904
+ constructor(private readonly options: AutoBuildOptions = {}) {}
905
+
906
+ async build(task: string): Promise<AutoBuildResult> {
907
+ // 1. Construct a meta-prompt that instructs the meta-agent to:
908
+ // a. Analyze the task
909
+ // b. Select the best swarm pattern
910
+ // c. Define agents (using available CLIs)
911
+ // d. Define workflow steps with appropriate dependencies
912
+ // e. Output a valid relay.yaml string (fenced in \`\`\`yaml...\`\`\`)
913
+ // f. Explain its reasoning
914
+ // 2. Spawn the meta-agent via AgentRelay
915
+ // 3. Extract the YAML from the response (find \`\`\`yaml ... \`\`\` block)
916
+ // 4. Parse and validate the config using WorkflowRunner.parseYamlString
917
+ // 5. If dryRun: return { config, yaml, reasoning }
918
+ // 6. Else: execute via WorkflowRunner and return { config, yaml, reasoning, run }
919
+ }
920
+
921
+ // Convenience: build and run immediately
922
+ async run(task: string): Promise<WorkflowRunRow> {
923
+ const result = await this.build(task);
924
+ if (!result.run) throw new Error("Set dryRun: false to execute");
925
+ return result.run;
926
+ }
927
+ }
928
+
929
+ // Convenience export
930
+ export async function autoWorkflow(task: string, options?: AutoBuildOptions): Promise<AutoBuildResult> {
931
+ return new AutoWorkflowBuilder(options).build(task);
932
+ }
933
+
934
+ Export AutoWorkflowBuilder and autoWorkflow from ${INDEX_FILE}.
935
+
936
+ Also add the meta-workflow type to types.ts if not already done:
937
+ export type MetaWorkflowConfig = RelayYamlConfig & { type: "meta-workflow" };
938
+ (A meta-workflow is a relay.yaml where steps are sub-workflow steps)
939
+
940
+ Run: npx tsc --noEmit
941
+ End with: AUTO_BUILDER_COMPLETE
942
+ `,
943
+ dependsOn: ['p3-sub-workflow'],
944
+ retries: 2,
945
+ verification: { type: 'output_contains', value: 'AUTO_BUILDER_COMPLETE' },
946
+ })
947
+
948
+ // ── Phase 4: Storage Backends (parallel with Phase 3) ────────────────────
949
+
950
+ .step('p4-db-adapters', {
951
+ agent: 'storage-implementer',
952
+ task: `
953
+ Phase 4: Implement production-ready WorkflowDb adapters.
954
+ (Runs in parallel with Phase 3 — no dependency between them.)
955
+
956
+ Phase 2 review context:
957
+ {{steps.p2-code-review.output}}
958
+
959
+ Create a new directory: packages/sdk/src/workflows/db/
960
+
961
+ Create these files:
962
+
963
+ 1. packages/sdk/src/workflows/db/postgres.ts
964
+ export class PostgresWorkflowDb implements WorkflowDb {
965
+ constructor(options: { connectionString: string; tablePrefix?: string })
966
+ // Creates tables on first connect if they don't exist:
967
+ // {prefix}workflow_runs, {prefix}workflow_steps
968
+ // Schema mirrors WorkflowRunRow and WorkflowStepRow
969
+ // Uses node-postgres (pg) — add to package.json if absent
970
+ async insertRun(run: WorkflowRunRow): Promise<void>
971
+ async updateRun(id: string, patch: Partial<WorkflowRunRow>): Promise<void>
972
+ async getRun(id: string): Promise<WorkflowRunRow | null>
973
+ async insertStep(step: WorkflowStepRow): Promise<void>
974
+ async updateStep(id: string, patch: Partial<WorkflowStepRow>): Promise<void>
975
+ async getStepsByRunId(runId: string): Promise<WorkflowStepRow[]>
976
+ async close(): Promise<void>
977
+ }
978
+
979
+ 2. packages/sdk/src/workflows/db/sqlite.ts
980
+ export class SqliteWorkflowDb implements WorkflowDb {
981
+ constructor(options: { path: string; tablePrefix?: string })
982
+ // Uses better-sqlite3 — synchronous API wrapped in async methods
983
+ // Same schema as PostgresWorkflowDb
984
+ // Creates tables if they don't exist on construction
985
+ }
986
+
987
+ 3. packages/sdk/src/workflows/db/redis.ts
988
+ export class RedisWorkflowDb implements WorkflowDb {
989
+ constructor(options: {
990
+ url: string;
991
+ keyPrefix?: string; // default "relay:workflow:"
992
+ runTtlMs?: number; // optional TTL on run records
993
+ })
994
+ // Uses ioredis — add to package.json if absent
995
+ // Stores runs as JSON strings at key: {prefix}run:{id}
996
+ // Stores step lists at key: {prefix}steps:{runId} (Redis list)
997
+ // Stores individual steps at: {prefix}step:{id}
998
+ }
999
+
1000
+ 4. packages/sdk/src/workflows/db/index.ts
1001
+ export { PostgresWorkflowDb } from './postgres.js';
1002
+ export { SqliteWorkflowDb } from './sqlite.js';
1003
+ export { RedisWorkflowDb } from './redis.js';
1004
+
1005
+ 5. Update packages/sdk/src/workflows/index.ts to export from db/:
1006
+ export * from './db/index.js';
1007
+
1008
+ IMPORTANT: Add the three packages to package.json as optional peer dependencies
1009
+ with peerDependenciesMeta markings optional: true, so users only need to install
1010
+ the adapter they use.
1011
+
1012
+ Run: npx tsc --noEmit (adapters will have type errors only if packages are absent;
1013
+ mark them as type-only imports with // @ts-expect-error if needed with clear comment)
1014
+ End with: DB_ADAPTERS_COMPLETE
1015
+ `,
1016
+ dependsOn: ['p2-code-review'],
1017
+ retries: 2,
1018
+ verification: { type: 'output_contains', value: 'DB_ADAPTERS_COMPLETE' },
1019
+ })
1020
+
1021
+ // ── Phase 3+4 Combined Review ─────────────────────────────────────────────
1022
+
1023
+ .step('p34-lead-review', {
1024
+ agent: 'lead',
1025
+ task: `
1026
+ Phase 3+4 Lead Review: Meta-orchestration and storage backends.
1027
+
1028
+ Phase 3 — AutoBuilder:
1029
+ {{steps.p3-auto-builder.output}}
1030
+
1031
+ Phase 4 — DB adapters:
1032
+ {{steps.p4-db-adapters.output}}
1033
+
1034
+ REVIEW:
1035
+
1036
+ META-ORCHESTRATION:
1037
+ 1. Is the sub-workflow execution correctly isolated? (child runner should not
1038
+ share the parent runner's event listeners, but should share the DB)
1039
+ 2. Does the WorkflowRegistry file path (~/.agent-relay/) correctly use os.homedir()?
1040
+ 3. Is the AutoWorkflowBuilder meta-prompt clear enough to reliably generate
1041
+ valid relay.yaml configs? What guardrails are needed?
1042
+ 4. Does the YAML extraction from meta-agent output handle cases where the
1043
+ agent outputs multiple code blocks?
1044
+
1045
+ DB ADAPTERS:
1046
+ 5. Are the SQL schemas in PostgresWorkflowDb and SqliteWorkflowDb correct?
1047
+ (JSON columns for config/stateSnapshot, TEXT for status, ISO timestamps)
1048
+ 6. Is the Redis adapter correctly handling concurrent updates?
1049
+ (Multiple parallel steps updating the same run record — race condition risk)
1050
+ 7. Are optional peer dependencies correctly marked in package.json?
1051
+ 8. Do the adapters correctly handle NULL/missing optional fields?
1052
+
1053
+ State fixes needed for the code reviewer to validate.
1054
+ End with: PHASE_34_APPROVED
1055
+ `,
1056
+ dependsOn: ['p3-auto-builder', 'p4-db-adapters'],
1057
+ retries: 1,
1058
+ verification: { type: 'output_contains', value: 'PHASE_34_APPROVED' },
1059
+ })
1060
+
1061
+ .step('p34-code-review', {
1062
+ agent: 'code-reviewer',
1063
+ task: `
1064
+ Phase 3+4 Independent Code Review.
1065
+
1066
+ Lead's notes:
1067
+ {{steps.p34-lead-review.output}}
1068
+
1069
+ REVIEW packages/sdk/src/workflows/registry.ts,
1070
+ packages/sdk/src/workflows/auto-builder.ts,
1071
+ packages/sdk/src/workflows/db/:
1072
+
1073
+ 1. Registry: does resolvePath correctly return file paths unchanged and look up
1074
+ by name for non-path strings? Is the registry JSON correctly pretty-printed?
1075
+ 2. AutoBuilder: is the meta-prompt templating safe from injection if the task
1076
+ string contains special characters or YAML-like content?
1077
+ 3. PostgresWorkflowDb: are SQL queries parameterized? (No string interpolation
1078
+ in SQL — security requirement)
1079
+ 4. SqliteWorkflowDb: does the sync API wrap correctly without blocking the event
1080
+ loop for extended periods?
1081
+ 5. RedisWorkflowDb: is the JSON serialization of WorkflowRunRow round-trip safe?
1082
+ (dates become strings, Record<string,unknown> stays correct)
1083
+ 6. All three adapters: does getStepsByRunId return steps in consistent order?
1084
+ 7. Run npx tsc --noEmit and report results
1085
+
1086
+ List issues with specific file + line references.
1087
+ End with: CODE_REVIEW_34_COMPLETE
1088
+ `,
1089
+ dependsOn: ['p34-lead-review'],
1090
+ retries: 1,
1091
+ verification: { type: 'output_contains', value: 'CODE_REVIEW_34_COMPLETE' },
1092
+ })
1093
+
1094
+ // ── Phase 5: Deployment and Observability ─────────────────────────────────
1095
+
1096
+ .step('p5-serve-command', {
1097
+ agent: 'deploy-implementer',
1098
+ task: `
1099
+ Phase 5a: Implement "relay workflow serve" HTTP server.
1100
+
1101
+ Phase 3+4 review context:
1102
+ {{steps.p34-code-review.output}}
1103
+
1104
+ YOUR TASK: Create packages/sdk/src/workflows/server.ts
1105
+
1106
+ Implement a lightweight HTTP server (use Node.js built-in http module — no
1107
+ Express/Fastify dependency) that exposes:
1108
+
1109
+ POST /run
1110
+ Body: { workflowPath: string, vars?: VariableContext, sessionId?: string }
1111
+ Response: { runId: string, status: "started" }
1112
+ Behavior: parse the relay.yaml at workflowPath, start execution (non-blocking),
1113
+ return runId immediately
1114
+
1115
+ GET /runs/:runId
1116
+ Response: WorkflowRunRow | { error: "not found" }
1117
+
1118
+ GET /runs/:runId/events
1119
+ Response: text/event-stream (Server-Sent Events)
1120
+ Each WorkflowEvent becomes a SSE data: {json}\n\n line
1121
+ Connection stays open until run completes or client disconnects
1122
+
1123
+ POST /runs/:runId/hitl/:stepName/respond
1124
+ Body: { response: string, respondedBy?: string }
1125
+ Behavior: write {summaryDir}/{runId}/hitl-{stepName}-response.json
1126
+ Response: { ok: true }
1127
+
1128
+ POST /runs/:runId/abort
1129
+ Behavior: call runner.abort(runId) if supported
1130
+ Response: { ok: true }
1131
+
1132
+ GET /health
1133
+ Response: { status: "ok", uptime: process.uptime() }
1134
+
1135
+ Also create packages/sdk/src/workflows/serve.ts — the CLI entry point:
1136
+ export async function serveWorkflows(options: {
1137
+ port?: number; // default 3747
1138
+ host?: string; // default "0.0.0.0"
1139
+ db?: WorkflowDb;
1140
+ }): Promise<void>
1141
+
1142
+ Export serveWorkflows from ${INDEX_FILE}.
1143
+
1144
+ The serve command will be integrated into the relay CLI in the next step.
1145
+
1146
+ Run: npx tsc --noEmit
1147
+ End with: SERVE_COMMAND_COMPLETE
1148
+ `,
1149
+ dependsOn: ['p34-code-review'],
1150
+ retries: 2,
1151
+ verification: { type: 'output_contains', value: 'SERVE_COMMAND_COMPLETE' },
1152
+ })
1153
+
1154
+ .step('p5-otel-tracing', {
1155
+ agent: 'deploy-implementer',
1156
+ task: `
1157
+ Phase 5b: Implement OpenTelemetry tracing integration.
1158
+ (Running in parallel with p5-serve-command — these are independent.)
1159
+
1160
+ Phase 3+4 review context:
1161
+ {{steps.p34-code-review.output}}
1162
+
1163
+ YOUR TASK: Add optional OTel tracing to WorkflowRunner.
1164
+
1165
+ 1. Add otel config to RelayYamlConfig in types.ts (if not already present):
1166
+ telemetry?: {
1167
+ otel?: boolean; // enable OTel tracing
1168
+ endpoint?: string; // OTLP endpoint, default "http://localhost:4318"
1169
+ serviceName?: string; // default "relay-workflows"
1170
+ exportTo?: "otlp" | "console" | "none"; // default "otlp"
1171
+ }
1172
+
1173
+ 2. Create packages/sdk/src/workflows/tracing.ts:
1174
+
1175
+ export interface TracingOptions {
1176
+ enabled: boolean;
1177
+ endpoint?: string;
1178
+ serviceName?: string;
1179
+ exportTo?: "otlp" | "console" | "none";
1180
+ }
1181
+
1182
+ export class WorkflowTracer {
1183
+ constructor(options: TracingOptions) {}
1184
+
1185
+ // Create root span for workflow run
1186
+ startRun(runId: string, workflowName: string, pattern: string): Span
1187
+
1188
+ // Create child span for a step
1189
+ startStep(parentSpan: Span, stepName: string, agentName: string): Span
1190
+
1191
+ // Record events on spans
1192
+ recordEvent(span: Span, event: WorkflowEvent): void
1193
+
1194
+ // End spans
1195
+ endSpan(span: Span, status: "ok" | "error", error?: string): void
1196
+
1197
+ // Shutdown exporter cleanly
1198
+ async shutdown(): Promise<void>
1199
+ }
1200
+
1201
+ Use @opentelemetry/sdk-node and @opentelemetry/api (add as optional peer deps
1202
+ with peerDependenciesMeta optional: true in package.json).
1203
+
1204
+ Guard all OTel imports with a try/catch or dynamic import so the runner works
1205
+ without OTel installed:
1206
+ let tracer: WorkflowTracer | null = null;
1207
+ try {
1208
+ const { WorkflowTracer } = await import('./tracing.js');
1209
+ tracer = new WorkflowTracer(config.telemetry?.otel ? { enabled: true, ...config.telemetry } : { enabled: false });
1210
+ } catch {
1211
+ // OTel packages not installed — tracing disabled
1212
+ }
1213
+
1214
+ 3. In WorkflowRunner.execute():
1215
+ - If tracer enabled: create root run span
1216
+ - In executeStep(): create child step span, record start/complete/fail events
1217
+ - On run complete: end root span
1218
+
1219
+ Export WorkflowTracer from ${INDEX_FILE}.
1220
+
1221
+ Run: npx tsc --noEmit
1222
+ End with: OTEL_TRACING_COMPLETE
1223
+ `,
1224
+ dependsOn: ['p34-code-review'],
1225
+ retries: 2,
1226
+ verification: { type: 'output_contains', value: 'OTEL_TRACING_COMPLETE' },
1227
+ })
1228
+
1229
+ .step('p5-cli-improvements', {
1230
+ agent: 'deploy-implementer',
1231
+ task: `
1232
+ Phase 5c: Implement CLI improvements.
1233
+
1234
+ OTel tracing implementation:
1235
+ {{steps.p5-otel-tracing.output}}
1236
+
1237
+ YOUR TASK: Find the CLI entry point for the relay workflow commands and add:
1238
+
1239
+ First, locate the CLI code (likely in packages/sdk/src/workflows/cli.ts):
1240
+ cat packages/sdk/src/workflows/cli.ts
1241
+
1242
+ Add these subcommands to the workflow CLI:
1243
+
1244
+ 1. relay workflow dry-run <yaml-path> [--var KEY=VALUE...]
1245
+ - Parse and validate the YAML (run validateConfig)
1246
+ - Resolve variable templates (show substituted values)
1247
+ - Show the resolved DAG: step names, dependencies, agent assignments
1248
+ - Show which steps can run in parallel
1249
+ - Do NOT actually execute — print "DRY RUN: would execute N steps across M agents"
1250
+
1251
+ 2. relay workflow inspect <yaml-path>
1252
+ - Show full config parsed and pretty-printed as JSON
1253
+ - Show detected swarm pattern with reason
1254
+ - Show agent topology (edges from SwarmCoordinator)
1255
+ - Show barrier definitions
1256
+ - Show coordination config
1257
+
1258
+ 3. relay workflow replay <runId> --from <step-name> [--db-path <sqlite-path>]
1259
+ - Load existing run record from DB (requires SqliteWorkflowDb)
1260
+ - Skip steps that completed successfully before the target step
1261
+ - Re-execute from the specified step name onwards
1262
+ - Useful for resuming failed runs without restarting from scratch
1263
+
1264
+ 4. relay workflow serve [--port <N>] [--db sqlite:<path>|postgres:<url>|redis:<url>]
1265
+ - Starts the HTTP server from p5-serve-command
1266
+ - Accepts DB connection string via --db flag, parses the scheme prefix
1267
+
1268
+ Also update the README at packages/sdk/src/workflows/README.md to document
1269
+ all new CLI commands with usage examples.
1270
+
1271
+ Run: npx tsc --noEmit
1272
+ End with: CLI_IMPROVEMENTS_COMPLETE
1273
+ `,
1274
+ dependsOn: ['p5-serve-command', 'p5-otel-tracing'],
1275
+ retries: 2,
1276
+ verification: { type: 'output_contains', value: 'CLI_IMPROVEMENTS_COMPLETE' },
1277
+ })
1278
+
1279
+ .step('p5-lead-review', {
1280
+ agent: 'lead',
1281
+ task: `
1282
+ Phase 5 Lead Review: Deployment and observability.
1283
+
1284
+ Serve command:
1285
+ {{steps.p5-serve-command.output}}
1286
+
1287
+ OTel tracing:
1288
+ {{steps.p5-otel-tracing.output}}
1289
+
1290
+ CLI improvements:
1291
+ {{steps.p5-cli-improvements.output}}
1292
+
1293
+ REVIEW:
1294
+ 1. HTTP server: is SSE implemented correctly? (headers: Content-Type: text/event-stream,
1295
+ Cache-Control: no-cache, Connection: keep-alive; proper flushing with res.write)
1296
+ 2. HTTP server: is the HITL respond endpoint correctly writing the response file
1297
+ to the same path the runner is polling?
1298
+ 3. OTel: is the dynamic import guard (try/catch) robust? Will it work in CJS builds?
1299
+ 4. OTel: are span hierarchies correct — run span is parent, step spans are children?
1300
+ 5. CLI dry-run: does it show enough information to be useful for debugging?
1301
+ 6. CLI replay: what happens if a replay step depends on a step that was NOT
1302
+ completed in the prior run? (Should fail with clear error message.)
1303
+ 7. Is the README updated with accurate examples?
1304
+
1305
+ Note critical fixes. End with: PHASE_5_APPROVED
1306
+ `,
1307
+ dependsOn: ['p5-cli-improvements'],
1308
+ retries: 1,
1309
+ verification: { type: 'output_contains', value: 'PHASE_5_APPROVED' },
1310
+ })
1311
+
1312
+ .step('p5-code-review', {
1313
+ agent: 'code-reviewer',
1314
+ task: `
1315
+ Phase 5 Independent Code Review: Deployment and observability.
1316
+ (Running in parallel with lead review — review the code independently.)
1317
+
1318
+ CLI improvements:
1319
+ {{steps.p5-cli-improvements.output}}
1320
+
1321
+ REVIEW packages/sdk/src/workflows/server.ts,
1322
+ packages/sdk/src/workflows/tracing.ts,
1323
+ packages/sdk/src/workflows/cli.ts:
1324
+
1325
+ 1. HTTP server: no prototype pollution risk in request body parsing?
1326
+ (Validate Content-Type, parse JSON safely with try/catch)
1327
+ 2. SSE endpoint: does it correctly handle client disconnect without leaving
1328
+ zombie event listeners on the WorkflowRunner?
1329
+ 3. HITL respond: path traversal risk? (runId and stepName used in file path —
1330
+ must sanitize to alphanumeric + hyphen only)
1331
+ 4. OTel: does shutdown() await the exporter flush before process.exit?
1332
+ 5. CLI replay: is the step-skip logic correct? (A skipped-previously-completed
1333
+ step should return its stored output for downstream template resolution)
1334
+ 6. Run npx jest packages/sdk and report pass/fail counts
1335
+ 7. Run npx tsc --noEmit and report results
1336
+
1337
+ End with: CODE_REVIEW_5_COMPLETE
1338
+ `,
1339
+ dependsOn: ['p5-cli-improvements'],
1340
+ retries: 1,
1341
+ verification: { type: 'output_contains', value: 'CODE_REVIEW_5_COMPLETE' },
1342
+ })
1343
+
1344
+ // ── Phase 6: Integration Validation + Final Sign-Off ─────────────────────
1345
+
1346
+ .step('integration-validation', {
1347
+ agent: 'test-validator',
1348
+ task: `
1349
+ Phase 6: Integration validation across all five tiers.
1350
+
1351
+ Phase 5 review:
1352
+ {{steps.p5-code-review.output}}
1353
+
1354
+ YOUR TASK: Run comprehensive validation of the full implementation.
1355
+
1356
+ 1. TYPE CHECK:
1357
+ cd packages/sdk && npx tsc --noEmit
1358
+ Report: zero errors or list all errors
1359
+
1360
+ 2. EXISTING TESTS:
1361
+ npx jest packages/sdk/src/__tests__/
1362
+ Report: pass count, fail count, any failures
1363
+
1364
+ 3. BUILD:
1365
+ cd packages/sdk && npm run build
1366
+ Report: success or errors
1367
+
1368
+ 4. INTEGRATION SMOKE TESTS — run each of these and report output:
1369
+
1370
+ a. Condition step test:
1371
+ Create a temporary relay.yaml with a condition step that checks if
1372
+ "SKIP" is in a prior step's output, run it via the WorkflowRunner
1373
+ in TypeScript (programmatic, not CLI), verify the step is skipped.
1374
+
1375
+ b. Loop step test:
1376
+ Create a temporary relay.yaml with a loop that runs max 3 iterations,
1377
+ verify it runs exactly 3 times when until-condition is never met.
1378
+
1379
+ c. Input validation test:
1380
+ Create a RelayYamlConfig with inputSchema requiring a "task" field,
1381
+ call runner.execute() without "task" in vars, verify WorkflowValidationError
1382
+ is thrown.
1383
+
1384
+ d. Flow shorthand test:
1385
+ Parse the flow string "planner -> developer, reviewer -> lead" and verify
1386
+ that developer.dependsOn = ["planner"], reviewer.dependsOn = ["planner"],
1387
+ lead.dependsOn = ["developer", "reviewer"].
1388
+
1389
+ e. SqliteWorkflowDb test:
1390
+ Create an in-memory SQLite DB, insert a run, update it, retrieve it,
1391
+ verify round-trip fidelity of all fields.
1392
+
1393
+ 5. EXPORTS CHECK:
1394
+ Verify that the following are exported from packages/sdk/src/workflows/index.ts:
1395
+ - WorkflowBuilder, workflow
1396
+ - WorkflowRunner, WorkflowRunnerOptions, WorkflowEvent, WorkflowEventListener
1397
+ - WorkflowValidationError
1398
+ - AutoWorkflowBuilder, autoWorkflow
1399
+ - WorkflowRegistry
1400
+ - SqliteWorkflowDb, PostgresWorkflowDb, RedisWorkflowDb
1401
+ - WorkflowTracer
1402
+ - All new types: AnyWorkflowStep, LoopStepGroup, RouterStepGroup,
1403
+ ParallelStepGroup, HitlStep, SubWorkflowStep, SessionConfig
1404
+
1405
+ Report full results. End with: INTEGRATION_VALIDATED
1406
+ `,
1407
+ dependsOn: ['p5-code-review', 'p5-lead-review'],
1408
+ retries: 2,
1409
+ verification: { type: 'output_contains', value: 'INTEGRATION_VALIDATED' },
1410
+ })
1411
+
1412
+ .step('final-lead-review', {
1413
+ agent: 'lead',
1414
+ task: `
1415
+ FINAL LEAD REVIEW: Complete broker-sdk workflow superiority implementation.
1416
+
1417
+ Integration validation results:
1418
+ {{steps.integration-validation.output}}
1419
+
1420
+ This is the culmination of a five-phase implementation campaign. Your job:
1421
+
1422
+ 1. CAPABILITY AUDIT — verify we now have all of these (check integration results):
1423
+ □ condition step type (CEL-based conditional execution)
1424
+ □ loop step type (iterative with until-condition)
1425
+ □ router step type (runtime branch selection)
1426
+ □ parallel step group (explicit with any/majority barriers)
1427
+ □ HITL step type (human-in-the-loop with file-based pause/resume)
1428
+ □ sub-workflow step (workflow composition)
1429
+ □ flow shorthand (string notation "A -> B, C")
1430
+ □ session concept (multi-run state sharing)
1431
+ □ input schema validation (JSON Schema via Ajv)
1432
+ □ fallback agent switching
1433
+ □ AutoWorkflowBuilder (LLM-generated workflows)
1434
+ □ WorkflowRegistry (name-to-path resolution)
1435
+ □ PostgresWorkflowDb, SqliteWorkflowDb, RedisWorkflowDb
1436
+ □ HTTP serve command with SSE event streaming
1437
+ □ OTel tracing (optional, dynamic import)
1438
+ □ CLI: dry-run, inspect, replay, serve
1439
+ □ 30+ WorkflowEvent types
1440
+ □ All exports correct from index.ts
1441
+
1442
+ 2. COMPETITIVE POSITION — confirm we now surpass:
1443
+ AGNO: We have everything Agno has (condition=Condition, loop=Loop,
1444
+ router=Router, session, input validation, serve, OTel) PLUS barriers,
1445
+ consensus, HITL, polyglot backends, YAML portability, sub-workflow composition.
1446
+
1447
+ SWARMS: We have equivalent patterns PLUS out-of-process PTY isolation,
1448
+ YAML portability, true relay protocol, HITL, OTel, sub-workflow composition,
1449
+ HTTP serve. Swarms has more built-in swarm types (15+ vs our 10) but we
1450
+ cover all critical execution patterns with richer composition primitives.
1451
+
1452
+ 3. REMAINING GAPS (if any) — list anything that was not fully implemented
1453
+ and should be tracked as future work.
1454
+
1455
+ 4. DOCUMENTATION — confirm README.md in the workflows directory is updated
1456
+ with examples for all new features.
1457
+
1458
+ Produce a final capability report with the checklist above filled in.
1459
+ End with: IMPLEMENTATION_COMPLETE
1460
+ `,
1461
+ dependsOn: ['integration-validation'],
1462
+ retries: 1,
1463
+ verification: { type: 'output_contains', value: 'IMPLEMENTATION_COMPLETE' },
1464
+ })
1465
+
1466
+ .onError('retry', { maxRetries: 2, retryDelayMs: 10_000 })
1467
+
1468
+ .run({
1469
+ onEvent,
1470
+ vars: {
1471
+ // Override these at runtime if needed:
1472
+ // workflowRoot: 'packages/sdk/src/workflows',
1473
+ },
1474
+ });
1475
+
1476
+ console.log('\n── Run complete ─────────────────────────────────────────────────');
1477
+ console.log(`status: ${result.status}`);
1478
+ console.log(`runId: ${result.id}`);
1479
+ console.log(`workflow: ${result.workflowName}`);
1480
+ console.log(`pattern: ${result.pattern}`);
1481
+ console.log(`started: ${result.startedAt}`);
1482
+ console.log(`completed: ${result.completedAt ?? '—'}`);
1483
+ if (result.error) {
1484
+ console.error(`error: ${result.error}`);
1485
+ }