agent-relay 2.3.13 → 2.4.0

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 (1421) 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 +50288 -63371
  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/bin/agent-relay-broker +0 -0
  240. package/packages/sdk/dist/__tests__/contract-fixtures.test.d.ts +2 -0
  241. package/packages/sdk/dist/__tests__/contract-fixtures.test.d.ts.map +1 -0
  242. package/packages/sdk/dist/__tests__/contract-fixtures.test.js +85 -0
  243. package/packages/sdk/dist/__tests__/contract-fixtures.test.js.map +1 -0
  244. package/packages/sdk/dist/__tests__/facade.test.js +305 -0
  245. package/packages/sdk/dist/__tests__/facade.test.js.map +1 -0
  246. package/packages/sdk/dist/__tests__/integration.test.js +169 -0
  247. package/packages/sdk/dist/__tests__/integration.test.js.map +1 -0
  248. package/packages/sdk/dist/__tests__/pty.test.d.ts +2 -0
  249. package/packages/sdk/dist/__tests__/pty.test.d.ts.map +1 -0
  250. package/packages/sdk/dist/__tests__/pty.test.js +20 -0
  251. package/packages/sdk/dist/__tests__/pty.test.js.map +1 -0
  252. package/packages/sdk/dist/__tests__/quickstart.test.js +176 -0
  253. package/packages/sdk/dist/__tests__/quickstart.test.js.map +1 -0
  254. package/packages/sdk/dist/__tests__/spawn-from-env.test.d.ts +2 -0
  255. package/packages/sdk/dist/__tests__/spawn-from-env.test.d.ts.map +1 -0
  256. package/packages/sdk/dist/__tests__/spawn-from-env.test.js +206 -0
  257. package/packages/sdk/dist/__tests__/spawn-from-env.test.js.map +1 -0
  258. package/packages/sdk/dist/__tests__/unit.test.js +347 -0
  259. package/packages/sdk/dist/__tests__/unit.test.js.map +1 -0
  260. package/packages/sdk/dist/client.d.ts +140 -526
  261. package/packages/sdk/dist/client.d.ts.map +1 -1
  262. package/packages/sdk/dist/client.js +416 -1509
  263. package/packages/sdk/dist/client.js.map +1 -1
  264. package/packages/sdk/dist/examples/workflow-superiority.d.ts +32 -0
  265. package/packages/sdk/dist/examples/workflow-superiority.d.ts.map +1 -0
  266. package/packages/sdk/dist/examples/workflow-superiority.js +1421 -0
  267. package/packages/sdk/dist/examples/workflow-superiority.js.map +1 -0
  268. package/packages/sdk/dist/index.d.ts +13 -20
  269. package/packages/sdk/dist/index.d.ts.map +1 -1
  270. package/packages/sdk/dist/index.js +12 -26
  271. package/packages/sdk/dist/index.js.map +1 -1
  272. package/packages/sdk/dist/logs.d.ts +70 -25
  273. package/packages/sdk/dist/logs.d.ts.map +1 -1
  274. package/packages/sdk/dist/logs.js +238 -42
  275. package/packages/sdk/dist/logs.js.map +1 -1
  276. package/packages/sdk/dist/models.d.ts +9 -0
  277. package/packages/sdk/dist/models.d.ts.map +1 -0
  278. package/packages/sdk/dist/models.js +17 -0
  279. package/packages/sdk/dist/models.js.map +1 -0
  280. package/packages/sdk/dist/protocol.d.ts +366 -0
  281. package/packages/sdk/dist/protocol.d.ts.map +1 -0
  282. package/packages/sdk/dist/pty.d.ts.map +1 -0
  283. package/packages/sdk/dist/pty.js +26 -0
  284. package/packages/sdk/dist/pty.js.map +1 -0
  285. package/packages/sdk/dist/relay-adapter.d.ts +139 -0
  286. package/packages/sdk/dist/relay-adapter.d.ts.map +1 -0
  287. package/packages/sdk/dist/relay-adapter.js +210 -0
  288. package/packages/sdk/dist/relay-adapter.js.map +1 -0
  289. package/packages/sdk/dist/relay.d.ts +304 -0
  290. package/packages/sdk/dist/relay.d.ts.map +1 -0
  291. package/packages/sdk/dist/relay.js +910 -0
  292. package/packages/sdk/dist/relay.js.map +1 -0
  293. package/packages/sdk/dist/shadow.d.ts +101 -0
  294. package/packages/sdk/dist/shadow.d.ts.map +1 -0
  295. package/packages/sdk/dist/shadow.js.map +1 -0
  296. package/packages/sdk/dist/spawn-from-env.d.ts +77 -0
  297. package/packages/sdk/dist/spawn-from-env.d.ts.map +1 -0
  298. package/packages/sdk/dist/spawn-from-env.js +172 -0
  299. package/packages/sdk/dist/spawn-from-env.js.map +1 -0
  300. package/packages/sdk/dist/workflows/builder.d.ts +114 -0
  301. package/packages/sdk/dist/workflows/builder.d.ts.map +1 -0
  302. package/packages/sdk/dist/workflows/builder.js +201 -0
  303. package/packages/sdk/dist/workflows/builder.js.map +1 -0
  304. package/packages/sdk/dist/workflows/cli.d.ts +11 -0
  305. package/packages/sdk/dist/workflows/cli.d.ts.map +1 -0
  306. package/packages/sdk/dist/workflows/cli.js +144 -0
  307. package/packages/sdk/dist/workflows/cli.js.map +1 -0
  308. package/packages/sdk/dist/workflows/coordinator.d.ts +73 -0
  309. package/packages/sdk/dist/workflows/coordinator.d.ts.map +1 -0
  310. package/packages/sdk/dist/workflows/coordinator.js +647 -0
  311. package/packages/sdk/dist/workflows/coordinator.js.map +1 -0
  312. package/packages/sdk/dist/workflows/custom-steps.d.ts +73 -0
  313. package/packages/sdk/dist/workflows/custom-steps.d.ts.map +1 -0
  314. package/packages/sdk/dist/workflows/custom-steps.js +321 -0
  315. package/packages/sdk/dist/workflows/custom-steps.js.map +1 -0
  316. package/packages/sdk/dist/workflows/dry-run-format.d.ts +6 -0
  317. package/packages/sdk/dist/workflows/dry-run-format.d.ts.map +1 -0
  318. package/packages/sdk/dist/workflows/dry-run-format.js +68 -0
  319. package/packages/sdk/dist/workflows/dry-run-format.js.map +1 -0
  320. package/packages/sdk/dist/workflows/file-db.d.ts +33 -0
  321. package/packages/sdk/dist/workflows/file-db.d.ts.map +1 -0
  322. package/packages/sdk/dist/workflows/file-db.js +108 -0
  323. package/packages/sdk/dist/workflows/file-db.js.map +1 -0
  324. package/packages/sdk/dist/workflows/index.d.ts +15 -0
  325. package/packages/sdk/dist/workflows/index.d.ts.map +1 -0
  326. package/packages/sdk/dist/workflows/index.js +15 -0
  327. package/packages/sdk/dist/workflows/index.js.map +1 -0
  328. package/packages/sdk/dist/workflows/run.d.ts +38 -0
  329. package/packages/sdk/dist/workflows/run.d.ts.map +1 -0
  330. package/packages/sdk/dist/workflows/run.js +25 -0
  331. package/packages/sdk/dist/workflows/run.js.map +1 -0
  332. package/packages/sdk/dist/workflows/runner.d.ts +320 -0
  333. package/packages/sdk/dist/workflows/runner.d.ts.map +1 -0
  334. package/packages/sdk/dist/workflows/runner.js +2821 -0
  335. package/packages/sdk/dist/workflows/runner.js.map +1 -0
  336. package/packages/sdk/dist/workflows/templates.d.ts +47 -0
  337. package/packages/sdk/dist/workflows/templates.d.ts.map +1 -0
  338. package/packages/sdk/dist/workflows/templates.js +405 -0
  339. package/packages/sdk/dist/workflows/templates.js.map +1 -0
  340. package/packages/sdk/dist/workflows/trajectory.d.ts +87 -0
  341. package/packages/sdk/dist/workflows/trajectory.d.ts.map +1 -0
  342. package/packages/sdk/dist/workflows/trajectory.js +441 -0
  343. package/packages/sdk/dist/workflows/trajectory.js.map +1 -0
  344. package/packages/sdk/dist/workflows/types.d.ts +306 -0
  345. package/packages/sdk/dist/workflows/types.d.ts.map +1 -0
  346. package/packages/sdk/dist/workflows/types.js +23 -0
  347. package/packages/sdk/dist/workflows/types.js.map +1 -0
  348. package/packages/sdk/dist/workflows/validator.d.ts +11 -0
  349. package/packages/sdk/dist/workflows/validator.d.ts.map +1 -0
  350. package/packages/sdk/dist/workflows/validator.js +128 -0
  351. package/packages/sdk/dist/workflows/validator.js.map +1 -0
  352. package/packages/sdk/package.json +59 -53
  353. package/packages/sdk/scripts/bundle-agent-relay.mjs +53 -0
  354. package/packages/sdk/src/__tests__/contract-fixtures.test.ts +122 -0
  355. package/packages/sdk/src/__tests__/error-scenarios.test.ts +682 -0
  356. package/packages/sdk/src/__tests__/facade.test.ts +364 -0
  357. package/packages/sdk/src/__tests__/idle-nudge.test.ts +438 -0
  358. package/packages/sdk/src/__tests__/integration.test.ts +204 -0
  359. package/packages/sdk/src/__tests__/orchestration-upgrades.test.ts +797 -0
  360. package/packages/sdk/src/__tests__/pty.test.ts +24 -0
  361. package/packages/sdk/src/__tests__/quickstart.test.ts +198 -0
  362. package/packages/sdk/src/__tests__/spawn-from-env.test.ts +282 -0
  363. package/packages/sdk/src/__tests__/swarm-coordinator.test.ts +909 -0
  364. package/packages/sdk/src/__tests__/unit.test.ts +435 -0
  365. package/packages/sdk/src/__tests__/workflow-runner.test.ts +489 -0
  366. package/packages/sdk/src/__tests__/yaml-validation.test.ts +890 -0
  367. package/packages/sdk/src/client.ts +514 -1912
  368. package/packages/sdk/src/examples/workflow-superiority.ts +1485 -0
  369. package/packages/sdk/src/examples/workflows/README.md +156 -0
  370. package/packages/sdk/src/examples/workflows/ralph-overnight.yaml +421 -0
  371. package/packages/sdk/src/examples/workflows/ralph-swarm.yaml +411 -0
  372. package/packages/sdk/src/examples/workflows/ralph-tdd.yaml +259 -0
  373. package/packages/sdk/src/index.ts +13 -116
  374. package/packages/sdk/src/logs.ts +282 -54
  375. package/packages/sdk/src/models.ts +36 -0
  376. package/packages/sdk/src/protocol.ts +385 -0
  377. package/packages/sdk/src/pty.ts +35 -0
  378. package/packages/sdk/src/relay-adapter.ts +316 -0
  379. package/packages/sdk/src/relay.ts +1147 -0
  380. package/packages/sdk/src/shadow.ts +228 -0
  381. package/packages/sdk/src/spawn-from-env.ts +245 -0
  382. package/packages/sdk/src/workflows/README.md +656 -0
  383. package/packages/sdk/src/workflows/builder.ts +278 -0
  384. package/packages/sdk/src/workflows/builtin-templates/bug-fix.yaml +135 -0
  385. package/packages/sdk/src/workflows/builtin-templates/code-review.yaml +133 -0
  386. package/packages/sdk/src/workflows/builtin-templates/competitive.yaml +103 -0
  387. package/packages/sdk/src/workflows/builtin-templates/documentation.yaml +120 -0
  388. package/packages/sdk/src/workflows/builtin-templates/feature-dev.yaml +142 -0
  389. package/packages/sdk/src/workflows/builtin-templates/refactor.yaml +141 -0
  390. package/packages/sdk/src/workflows/builtin-templates/review-loop.yaml +223 -0
  391. package/packages/sdk/src/workflows/builtin-templates/security-audit.yaml +129 -0
  392. package/packages/sdk/src/workflows/cli.ts +162 -0
  393. package/packages/sdk/src/workflows/coordinator.ts +842 -0
  394. package/packages/sdk/src/workflows/custom-steps.ts +450 -0
  395. package/packages/sdk/src/workflows/dry-run-format.ts +75 -0
  396. package/packages/sdk/src/workflows/file-db.ts +117 -0
  397. package/packages/sdk/src/workflows/index.ts +24 -0
  398. package/packages/sdk/src/workflows/run.ts +72 -0
  399. package/packages/sdk/src/workflows/runner.ts +3409 -0
  400. package/packages/sdk/src/workflows/schema.json +651 -0
  401. package/packages/sdk/src/workflows/templates.ts +552 -0
  402. package/packages/sdk/src/workflows/trajectory.ts +631 -0
  403. package/packages/sdk/src/workflows/types.ts +389 -0
  404. package/packages/sdk/src/workflows/validator.ts +151 -0
  405. package/packages/sdk/tsconfig.build.json +25 -0
  406. package/packages/sdk/tsconfig.json +17 -18
  407. package/packages/sdk/vitest.config.ts +1 -1
  408. package/packages/sdk-py/README.md +106 -21
  409. package/packages/sdk-py/agent_relay/__init__.py +21 -0
  410. package/packages/sdk-py/agent_relay/models.py +206 -0
  411. package/packages/sdk-py/pyproject.toml +2 -2
  412. package/packages/sdk-py/src/agent_relay/__init__.py +76 -0
  413. package/packages/sdk-py/src/agent_relay/builder.py +430 -109
  414. package/packages/sdk-py/src/agent_relay/templates.py +197 -0
  415. package/packages/sdk-py/src/agent_relay/types.py +489 -15
  416. package/packages/sdk-py/tests/test_builder.py +115 -1
  417. package/packages/sdk-py/tests/test_workflow_templates.py +450 -0
  418. package/packages/shared/cli-registry.yaml +193 -0
  419. package/packages/shared/codegen-py.mjs +215 -0
  420. package/packages/shared/codegen-ts.mjs +227 -0
  421. package/packages/telemetry/dist/events.d.ts +8 -8
  422. package/packages/telemetry/dist/index.d.ts +1 -1
  423. package/packages/telemetry/package.json +2 -2
  424. package/packages/telemetry/src/events.ts +9 -9
  425. package/packages/telemetry/src/index.ts +2 -2
  426. package/packages/trajectory/package.json +2 -2
  427. package/packages/user-directory/dist/user-directory.js +1 -1
  428. package/packages/user-directory/dist/user-directory.js.map +1 -1
  429. package/packages/user-directory/package.json +2 -2
  430. package/packages/user-directory/src/user-directory.ts +1 -1
  431. package/packages/utils/dist/cjs/client-helpers.js +4 -4
  432. package/packages/utils/dist/cjs/discovery.js +9 -6
  433. package/packages/utils/dist/cjs/errors.js +5 -5
  434. package/packages/utils/dist/cjs/legacy-protocol.js +70 -0
  435. package/packages/utils/dist/cjs/logger.js +3 -3
  436. package/packages/utils/dist/cjs/precompiled-patterns.js +33 -2
  437. package/packages/utils/dist/cjs/relay-pty-path.js +0 -6
  438. package/packages/utils/dist/client-helpers.d.ts +1 -1
  439. package/packages/utils/dist/client-helpers.d.ts.map +1 -1
  440. package/packages/utils/dist/client-helpers.js +1 -1
  441. package/packages/utils/dist/client-helpers.js.map +1 -1
  442. package/packages/utils/dist/discovery.d.ts +7 -7
  443. package/packages/utils/dist/discovery.d.ts.map +1 -1
  444. package/packages/utils/dist/discovery.js +20 -17
  445. package/packages/utils/dist/discovery.js.map +1 -1
  446. package/packages/utils/dist/errors.d.ts +1 -1
  447. package/packages/utils/dist/errors.js +3 -3
  448. package/packages/utils/dist/legacy-protocol.d.ts +46 -0
  449. package/packages/utils/dist/legacy-protocol.d.ts.map +1 -0
  450. package/packages/utils/dist/legacy-protocol.js +47 -0
  451. package/packages/utils/dist/legacy-protocol.js.map +1 -0
  452. package/packages/utils/dist/logger.d.ts +2 -2
  453. package/packages/utils/dist/logger.js +2 -2
  454. package/packages/utils/dist/precompiled-patterns.d.ts.map +1 -1
  455. package/packages/utils/dist/precompiled-patterns.js +28 -2
  456. package/packages/utils/dist/precompiled-patterns.js.map +1 -1
  457. package/packages/utils/dist/relay-pty-path.d.ts.map +1 -1
  458. package/packages/utils/dist/relay-pty-path.js +1 -10
  459. package/packages/utils/dist/relay-pty-path.js.map +1 -1
  460. package/packages/utils/package.json +2 -3
  461. package/packages/utils/src/client-helpers.ts +1 -1
  462. package/packages/utils/src/consolidation.test.ts +3 -3
  463. package/packages/utils/src/discovery.test.ts +3 -3
  464. package/packages/utils/src/discovery.ts +21 -18
  465. package/packages/utils/src/errors.test.ts +6 -11
  466. package/packages/utils/src/errors.ts +3 -3
  467. package/packages/utils/src/legacy-protocol.ts +151 -0
  468. package/packages/utils/src/logger.ts +2 -2
  469. package/packages/utils/src/precompiled-patterns.test.ts +8 -0
  470. package/packages/utils/src/precompiled-patterns.ts +40 -2
  471. package/packages/utils/src/relay-pty-path.test.ts +23 -34
  472. package/packages/utils/src/relay-pty-path.ts +1 -11
  473. package/relay-snippets/agent-relay-protocol.md +6 -43
  474. package/relay-snippets/agent-relay-snippet.md +59 -203
  475. package/scripts/postinstall.js +44 -171
  476. package/bin/relay-pty-darwin-arm64 +0 -0
  477. package/bin/relay-pty-darwin-x64 +0 -0
  478. package/bin/relay-pty-linux-arm64 +0 -0
  479. package/bin/relay-pty-linux-x64 +0 -0
  480. package/dist/src/bridge/index.d.ts +0 -8
  481. package/dist/src/bridge/index.d.ts.map +0 -1
  482. package/dist/src/bridge/index.js +0 -8
  483. package/dist/src/bridge/index.js.map +0 -1
  484. package/dist/src/continuity/index.d.ts +0 -5
  485. package/dist/src/continuity/index.d.ts.map +0 -1
  486. package/dist/src/continuity/index.js +0 -5
  487. package/dist/src/continuity/index.js.map +0 -1
  488. package/dist/src/daemon/index.d.ts +0 -8
  489. package/dist/src/daemon/index.d.ts.map +0 -1
  490. package/dist/src/daemon/index.js +0 -9
  491. package/dist/src/daemon/index.js.map +0 -1
  492. package/dist/src/protocol/index.d.ts +0 -8
  493. package/dist/src/protocol/index.d.ts.map +0 -1
  494. package/dist/src/protocol/index.js +0 -8
  495. package/dist/src/protocol/index.js.map +0 -1
  496. package/dist/src/resiliency/index.d.ts +0 -5
  497. package/dist/src/resiliency/index.d.ts.map +0 -1
  498. package/dist/src/resiliency/index.js +0 -5
  499. package/dist/src/resiliency/index.js.map +0 -1
  500. package/dist/src/state/index.d.ts +0 -5
  501. package/dist/src/state/index.d.ts.map +0 -1
  502. package/dist/src/state/index.js +0 -5
  503. package/dist/src/state/index.js.map +0 -1
  504. package/dist/src/storage/index.d.ts +0 -8
  505. package/dist/src/storage/index.d.ts.map +0 -1
  506. package/dist/src/storage/index.js +0 -8
  507. package/dist/src/storage/index.js.map +0 -1
  508. package/dist/src/wrapper/index.d.ts +0 -8
  509. package/dist/src/wrapper/index.d.ts.map +0 -1
  510. package/dist/src/wrapper/index.js +0 -11
  511. package/dist/src/wrapper/index.js.map +0 -1
  512. package/packages/bridge/dist/cli-resolution.d.ts +0 -32
  513. package/packages/bridge/dist/cli-resolution.d.ts.map +0 -1
  514. package/packages/bridge/dist/cli-resolution.js +0 -88
  515. package/packages/bridge/dist/cli-resolution.js.map +0 -1
  516. package/packages/bridge/dist/index.d.ts +0 -9
  517. package/packages/bridge/dist/index.d.ts.map +0 -1
  518. package/packages/bridge/dist/index.js +0 -11
  519. package/packages/bridge/dist/index.js.map +0 -1
  520. package/packages/bridge/dist/multi-project-client.d.ts +0 -99
  521. package/packages/bridge/dist/multi-project-client.d.ts.map +0 -1
  522. package/packages/bridge/dist/multi-project-client.js +0 -389
  523. package/packages/bridge/dist/multi-project-client.js.map +0 -1
  524. package/packages/bridge/dist/shadow-cli.d.ts +0 -17
  525. package/packages/bridge/dist/shadow-cli.d.ts.map +0 -1
  526. package/packages/bridge/dist/shadow-cli.js +0 -75
  527. package/packages/bridge/dist/shadow-cli.js.map +0 -1
  528. package/packages/bridge/dist/spawner.d.ts +0 -263
  529. package/packages/bridge/dist/spawner.d.ts.map +0 -1
  530. package/packages/bridge/dist/spawner.js +0 -1758
  531. package/packages/bridge/dist/spawner.js.map +0 -1
  532. package/packages/bridge/dist/types.d.ts +0 -141
  533. package/packages/bridge/dist/types.d.ts.map +0 -1
  534. package/packages/bridge/dist/types.js +0 -6
  535. package/packages/bridge/dist/types.js.map +0 -1
  536. package/packages/bridge/dist/utils.d.ts +0 -39
  537. package/packages/bridge/dist/utils.d.ts.map +0 -1
  538. package/packages/bridge/dist/utils.js +0 -98
  539. package/packages/bridge/dist/utils.js.map +0 -1
  540. package/packages/bridge/package.json +0 -45
  541. package/packages/bridge/src/cli-resolution.test.ts +0 -225
  542. package/packages/bridge/src/cli-resolution.ts +0 -100
  543. package/packages/bridge/src/index.ts +0 -34
  544. package/packages/bridge/src/multi-project-client.test.ts +0 -340
  545. package/packages/bridge/src/multi-project-client.ts +0 -469
  546. package/packages/bridge/src/shadow-cli.ts +0 -95
  547. package/packages/bridge/src/spawner-mcp.test.ts +0 -505
  548. package/packages/bridge/src/spawner.ts +0 -2067
  549. package/packages/bridge/src/types.ts +0 -153
  550. package/packages/bridge/src/utils.test.ts +0 -235
  551. package/packages/bridge/src/utils.ts +0 -113
  552. package/packages/bridge/tsconfig.json +0 -29
  553. package/packages/bridge/vitest.config.ts +0 -9
  554. package/packages/broker-sdk/README.md +0 -97
  555. package/packages/broker-sdk/dist/__tests__/facade.test.js +0 -257
  556. package/packages/broker-sdk/dist/__tests__/facade.test.js.map +0 -1
  557. package/packages/broker-sdk/dist/__tests__/integration.test.js +0 -139
  558. package/packages/broker-sdk/dist/__tests__/integration.test.js.map +0 -1
  559. package/packages/broker-sdk/dist/__tests__/quickstart.test.js +0 -176
  560. package/packages/broker-sdk/dist/__tests__/quickstart.test.js.map +0 -1
  561. package/packages/broker-sdk/dist/__tests__/unit.test.js +0 -192
  562. package/packages/broker-sdk/dist/__tests__/unit.test.js.map +0 -1
  563. package/packages/broker-sdk/dist/client.d.ts +0 -95
  564. package/packages/broker-sdk/dist/client.d.ts.map +0 -1
  565. package/packages/broker-sdk/dist/client.js +0 -372
  566. package/packages/broker-sdk/dist/client.js.map +0 -1
  567. package/packages/broker-sdk/dist/index.d.ts +0 -10
  568. package/packages/broker-sdk/dist/index.d.ts.map +0 -1
  569. package/packages/broker-sdk/dist/index.js +0 -10
  570. package/packages/broker-sdk/dist/index.js.map +0 -1
  571. package/packages/broker-sdk/dist/logs.d.ts +0 -47
  572. package/packages/broker-sdk/dist/logs.d.ts.map +0 -1
  573. package/packages/broker-sdk/dist/logs.js +0 -137
  574. package/packages/broker-sdk/dist/logs.js.map +0 -1
  575. package/packages/broker-sdk/dist/protocol.d.ts +0 -254
  576. package/packages/broker-sdk/dist/protocol.d.ts.map +0 -1
  577. package/packages/broker-sdk/dist/pty.d.ts.map +0 -1
  578. package/packages/broker-sdk/dist/pty.js +0 -14
  579. package/packages/broker-sdk/dist/pty.js.map +0 -1
  580. package/packages/broker-sdk/dist/relay.d.ts +0 -172
  581. package/packages/broker-sdk/dist/relay.d.ts.map +0 -1
  582. package/packages/broker-sdk/dist/relay.js +0 -486
  583. package/packages/broker-sdk/dist/relay.js.map +0 -1
  584. package/packages/broker-sdk/dist/relaycast.d.ts +0 -67
  585. package/packages/broker-sdk/dist/relaycast.d.ts.map +0 -1
  586. package/packages/broker-sdk/dist/relaycast.js +0 -150
  587. package/packages/broker-sdk/dist/relaycast.js.map +0 -1
  588. package/packages/broker-sdk/dist/shadow.d.ts +0 -100
  589. package/packages/broker-sdk/dist/shadow.d.ts.map +0 -1
  590. package/packages/broker-sdk/dist/shadow.js.map +0 -1
  591. package/packages/broker-sdk/dist/workflows/builder.d.ts +0 -101
  592. package/packages/broker-sdk/dist/workflows/builder.d.ts.map +0 -1
  593. package/packages/broker-sdk/dist/workflows/builder.js +0 -179
  594. package/packages/broker-sdk/dist/workflows/builder.js.map +0 -1
  595. package/packages/broker-sdk/dist/workflows/cli.d.ts +0 -10
  596. package/packages/broker-sdk/dist/workflows/cli.d.ts.map +0 -1
  597. package/packages/broker-sdk/dist/workflows/cli.js +0 -82
  598. package/packages/broker-sdk/dist/workflows/cli.js.map +0 -1
  599. package/packages/broker-sdk/dist/workflows/coordinator.d.ts +0 -69
  600. package/packages/broker-sdk/dist/workflows/coordinator.d.ts.map +0 -1
  601. package/packages/broker-sdk/dist/workflows/coordinator.js +0 -585
  602. package/packages/broker-sdk/dist/workflows/coordinator.js.map +0 -1
  603. package/packages/broker-sdk/dist/workflows/index.d.ts +0 -11
  604. package/packages/broker-sdk/dist/workflows/index.d.ts.map +0 -1
  605. package/packages/broker-sdk/dist/workflows/index.js +0 -11
  606. package/packages/broker-sdk/dist/workflows/index.js.map +0 -1
  607. package/packages/broker-sdk/dist/workflows/run.d.ts +0 -33
  608. package/packages/broker-sdk/dist/workflows/run.d.ts.map +0 -1
  609. package/packages/broker-sdk/dist/workflows/run.js +0 -28
  610. package/packages/broker-sdk/dist/workflows/run.js.map +0 -1
  611. package/packages/broker-sdk/dist/workflows/runner.d.ts +0 -136
  612. package/packages/broker-sdk/dist/workflows/runner.d.ts.map +0 -1
  613. package/packages/broker-sdk/dist/workflows/runner.js +0 -900
  614. package/packages/broker-sdk/dist/workflows/runner.js.map +0 -1
  615. package/packages/broker-sdk/dist/workflows/templates.d.ts +0 -47
  616. package/packages/broker-sdk/dist/workflows/templates.d.ts.map +0 -1
  617. package/packages/broker-sdk/dist/workflows/templates.js +0 -395
  618. package/packages/broker-sdk/dist/workflows/templates.js.map +0 -1
  619. package/packages/broker-sdk/dist/workflows/trajectory.d.ts +0 -80
  620. package/packages/broker-sdk/dist/workflows/trajectory.d.ts.map +0 -1
  621. package/packages/broker-sdk/dist/workflows/trajectory.js +0 -362
  622. package/packages/broker-sdk/dist/workflows/trajectory.js.map +0 -1
  623. package/packages/broker-sdk/dist/workflows/types.d.ts +0 -140
  624. package/packages/broker-sdk/dist/workflows/types.d.ts.map +0 -1
  625. package/packages/broker-sdk/dist/workflows/types.js +0 -8
  626. package/packages/broker-sdk/dist/workflows/types.js.map +0 -1
  627. package/packages/broker-sdk/package.json +0 -81
  628. package/packages/broker-sdk/scripts/bundle-agent-relay.mjs +0 -53
  629. package/packages/broker-sdk/src/__tests__/error-scenarios.test.ts +0 -682
  630. package/packages/broker-sdk/src/__tests__/facade.test.ts +0 -296
  631. package/packages/broker-sdk/src/__tests__/integration.test.ts +0 -170
  632. package/packages/broker-sdk/src/__tests__/quickstart.test.ts +0 -198
  633. package/packages/broker-sdk/src/__tests__/swarm-coordinator.test.ts +0 -772
  634. package/packages/broker-sdk/src/__tests__/unit.test.ts +0 -243
  635. package/packages/broker-sdk/src/__tests__/workflow-runner.test.ts +0 -333
  636. package/packages/broker-sdk/src/client.ts +0 -510
  637. package/packages/broker-sdk/src/index.ts +0 -9
  638. package/packages/broker-sdk/src/logs.ts +0 -163
  639. package/packages/broker-sdk/src/protocol.ts +0 -271
  640. package/packages/broker-sdk/src/pty.ts +0 -16
  641. package/packages/broker-sdk/src/relay.ts +0 -614
  642. package/packages/broker-sdk/src/relaycast.ts +0 -185
  643. package/packages/broker-sdk/src/shadow.ts +0 -230
  644. package/packages/broker-sdk/src/workflows/README.md +0 -514
  645. package/packages/broker-sdk/src/workflows/builder.ts +0 -241
  646. package/packages/broker-sdk/src/workflows/builtin-templates/bug-fix.yaml +0 -75
  647. package/packages/broker-sdk/src/workflows/builtin-templates/code-review.yaml +0 -82
  648. package/packages/broker-sdk/src/workflows/builtin-templates/documentation.yaml +0 -70
  649. package/packages/broker-sdk/src/workflows/builtin-templates/feature-dev.yaml +0 -76
  650. package/packages/broker-sdk/src/workflows/builtin-templates/refactor.yaml +0 -82
  651. package/packages/broker-sdk/src/workflows/builtin-templates/security-audit.yaml +0 -84
  652. package/packages/broker-sdk/src/workflows/cli.ts +0 -93
  653. package/packages/broker-sdk/src/workflows/coordinator.ts +0 -758
  654. package/packages/broker-sdk/src/workflows/index.ts +0 -10
  655. package/packages/broker-sdk/src/workflows/run.ts +0 -55
  656. package/packages/broker-sdk/src/workflows/runner.ts +0 -1184
  657. package/packages/broker-sdk/src/workflows/schema.json +0 -333
  658. package/packages/broker-sdk/src/workflows/templates.ts +0 -544
  659. package/packages/broker-sdk/src/workflows/trajectory.ts +0 -507
  660. package/packages/broker-sdk/src/workflows/types.ts +0 -208
  661. package/packages/broker-sdk/tsconfig.json +0 -22
  662. package/packages/broker-sdk/vitest.config.ts +0 -9
  663. package/packages/continuity/dist/formatter.d.ts +0 -57
  664. package/packages/continuity/dist/formatter.d.ts.map +0 -1
  665. package/packages/continuity/dist/formatter.js +0 -448
  666. package/packages/continuity/dist/formatter.js.map +0 -1
  667. package/packages/continuity/dist/handoff-store.d.ts +0 -67
  668. package/packages/continuity/dist/handoff-store.d.ts.map +0 -1
  669. package/packages/continuity/dist/handoff-store.js +0 -472
  670. package/packages/continuity/dist/handoff-store.js.map +0 -1
  671. package/packages/continuity/dist/index.d.ts +0 -10
  672. package/packages/continuity/dist/index.d.ts.map +0 -1
  673. package/packages/continuity/dist/index.js +0 -11
  674. package/packages/continuity/dist/index.js.map +0 -1
  675. package/packages/continuity/dist/ledger-store.d.ts +0 -110
  676. package/packages/continuity/dist/ledger-store.d.ts.map +0 -1
  677. package/packages/continuity/dist/ledger-store.js +0 -500
  678. package/packages/continuity/dist/ledger-store.js.map +0 -1
  679. package/packages/continuity/dist/manager.d.ts +0 -183
  680. package/packages/continuity/dist/manager.d.ts.map +0 -1
  681. package/packages/continuity/dist/manager.js +0 -616
  682. package/packages/continuity/dist/manager.js.map +0 -1
  683. package/packages/continuity/dist/parser.d.ts +0 -76
  684. package/packages/continuity/dist/parser.d.ts.map +0 -1
  685. package/packages/continuity/dist/parser.js +0 -579
  686. package/packages/continuity/dist/parser.js.map +0 -1
  687. package/packages/continuity/dist/types.d.ts +0 -180
  688. package/packages/continuity/dist/types.d.ts.map +0 -1
  689. package/packages/continuity/dist/types.js +0 -2
  690. package/packages/continuity/dist/types.js.map +0 -1
  691. package/packages/continuity/package.json +0 -40
  692. package/packages/continuity/src/formatter.ts +0 -536
  693. package/packages/continuity/src/handoff-store.ts +0 -523
  694. package/packages/continuity/src/index.ts +0 -12
  695. package/packages/continuity/src/ledger-store.ts +0 -594
  696. package/packages/continuity/src/manager.test.ts +0 -291
  697. package/packages/continuity/src/manager.ts +0 -774
  698. package/packages/continuity/src/parser.test.ts +0 -292
  699. package/packages/continuity/src/parser.ts +0 -680
  700. package/packages/continuity/src/types.ts +0 -211
  701. package/packages/continuity/tsconfig.json +0 -21
  702. package/packages/continuity/vitest.config.ts +0 -9
  703. package/packages/daemon/dist/agent-manager.d.ts +0 -134
  704. package/packages/daemon/dist/agent-manager.d.ts.map +0 -1
  705. package/packages/daemon/dist/agent-manager.js +0 -578
  706. package/packages/daemon/dist/agent-manager.js.map +0 -1
  707. package/packages/daemon/dist/agent-registry.d.ts +0 -99
  708. package/packages/daemon/dist/agent-registry.d.ts.map +0 -1
  709. package/packages/daemon/dist/agent-registry.js +0 -213
  710. package/packages/daemon/dist/agent-registry.js.map +0 -1
  711. package/packages/daemon/dist/agent-signing.d.ts +0 -158
  712. package/packages/daemon/dist/agent-signing.d.ts.map +0 -1
  713. package/packages/daemon/dist/agent-signing.js +0 -523
  714. package/packages/daemon/dist/agent-signing.js.map +0 -1
  715. package/packages/daemon/dist/api.d.ts +0 -106
  716. package/packages/daemon/dist/api.d.ts.map +0 -1
  717. package/packages/daemon/dist/api.js +0 -895
  718. package/packages/daemon/dist/api.js.map +0 -1
  719. package/packages/daemon/dist/auth.d.ts +0 -94
  720. package/packages/daemon/dist/auth.d.ts.map +0 -1
  721. package/packages/daemon/dist/auth.js +0 -197
  722. package/packages/daemon/dist/auth.js.map +0 -1
  723. package/packages/daemon/dist/channel-membership-store.d.ts +0 -55
  724. package/packages/daemon/dist/channel-membership-store.d.ts.map +0 -1
  725. package/packages/daemon/dist/channel-membership-store.js +0 -176
  726. package/packages/daemon/dist/channel-membership-store.js.map +0 -1
  727. package/packages/daemon/dist/cli-auth.d.ts +0 -97
  728. package/packages/daemon/dist/cli-auth.d.ts.map +0 -1
  729. package/packages/daemon/dist/cli-auth.js +0 -808
  730. package/packages/daemon/dist/cli-auth.js.map +0 -1
  731. package/packages/daemon/dist/cloud-sync.d.ts +0 -263
  732. package/packages/daemon/dist/cloud-sync.d.ts.map +0 -1
  733. package/packages/daemon/dist/cloud-sync.js +0 -820
  734. package/packages/daemon/dist/cloud-sync.js.map +0 -1
  735. package/packages/daemon/dist/connection.d.ts +0 -137
  736. package/packages/daemon/dist/connection.d.ts.map +0 -1
  737. package/packages/daemon/dist/connection.js +0 -465
  738. package/packages/daemon/dist/connection.js.map +0 -1
  739. package/packages/daemon/dist/consensus-integration.d.ts +0 -168
  740. package/packages/daemon/dist/consensus-integration.d.ts.map +0 -1
  741. package/packages/daemon/dist/consensus-integration.js +0 -371
  742. package/packages/daemon/dist/consensus-integration.js.map +0 -1
  743. package/packages/daemon/dist/consensus.d.ts +0 -269
  744. package/packages/daemon/dist/consensus.d.ts.map +0 -1
  745. package/packages/daemon/dist/consensus.js +0 -632
  746. package/packages/daemon/dist/consensus.js.map +0 -1
  747. package/packages/daemon/dist/delivery-tracker.d.ts +0 -34
  748. package/packages/daemon/dist/delivery-tracker.d.ts.map +0 -1
  749. package/packages/daemon/dist/delivery-tracker.js +0 -104
  750. package/packages/daemon/dist/delivery-tracker.js.map +0 -1
  751. package/packages/daemon/dist/enhanced-features.d.ts +0 -118
  752. package/packages/daemon/dist/enhanced-features.d.ts.map +0 -1
  753. package/packages/daemon/dist/enhanced-features.js +0 -177
  754. package/packages/daemon/dist/enhanced-features.js.map +0 -1
  755. package/packages/daemon/dist/index.d.ts +0 -29
  756. package/packages/daemon/dist/index.d.ts.map +0 -1
  757. package/packages/daemon/dist/index.js +0 -34
  758. package/packages/daemon/dist/index.js.map +0 -1
  759. package/packages/daemon/dist/orchestrator.d.ts +0 -217
  760. package/packages/daemon/dist/orchestrator.d.ts.map +0 -1
  761. package/packages/daemon/dist/orchestrator.js +0 -1172
  762. package/packages/daemon/dist/orchestrator.js.map +0 -1
  763. package/packages/daemon/dist/rate-limiter.d.ts +0 -68
  764. package/packages/daemon/dist/rate-limiter.d.ts.map +0 -1
  765. package/packages/daemon/dist/rate-limiter.js +0 -130
  766. package/packages/daemon/dist/rate-limiter.js.map +0 -1
  767. package/packages/daemon/dist/registry.d.ts +0 -9
  768. package/packages/daemon/dist/registry.d.ts.map +0 -1
  769. package/packages/daemon/dist/registry.js +0 -9
  770. package/packages/daemon/dist/registry.js.map +0 -1
  771. package/packages/daemon/dist/repo-manager.d.ts +0 -116
  772. package/packages/daemon/dist/repo-manager.d.ts.map +0 -1
  773. package/packages/daemon/dist/repo-manager.js +0 -384
  774. package/packages/daemon/dist/repo-manager.js.map +0 -1
  775. package/packages/daemon/dist/router.d.ts +0 -389
  776. package/packages/daemon/dist/router.d.ts.map +0 -1
  777. package/packages/daemon/dist/router.js +0 -1607
  778. package/packages/daemon/dist/router.js.map +0 -1
  779. package/packages/daemon/dist/server.d.ts +0 -201
  780. package/packages/daemon/dist/server.d.ts.map +0 -1
  781. package/packages/daemon/dist/server.js +0 -1791
  782. package/packages/daemon/dist/server.js.map +0 -1
  783. package/packages/daemon/dist/spawn-manager.d.ts +0 -119
  784. package/packages/daemon/dist/spawn-manager.d.ts.map +0 -1
  785. package/packages/daemon/dist/spawn-manager.js +0 -319
  786. package/packages/daemon/dist/spawn-manager.js.map +0 -1
  787. package/packages/daemon/dist/sync-queue.d.ts +0 -116
  788. package/packages/daemon/dist/sync-queue.d.ts.map +0 -1
  789. package/packages/daemon/dist/sync-queue.js +0 -361
  790. package/packages/daemon/dist/sync-queue.js.map +0 -1
  791. package/packages/daemon/dist/types.d.ts +0 -133
  792. package/packages/daemon/dist/types.d.ts.map +0 -1
  793. package/packages/daemon/dist/types.js +0 -6
  794. package/packages/daemon/dist/types.js.map +0 -1
  795. package/packages/daemon/dist/workspace-manager.d.ts +0 -80
  796. package/packages/daemon/dist/workspace-manager.d.ts.map +0 -1
  797. package/packages/daemon/dist/workspace-manager.js +0 -314
  798. package/packages/daemon/dist/workspace-manager.js.map +0 -1
  799. package/packages/daemon/package.json +0 -56
  800. package/packages/daemon/src/agent-manager.ts +0 -679
  801. package/packages/daemon/src/agent-registry.ts +0 -284
  802. package/packages/daemon/src/agent-signing.ts +0 -707
  803. package/packages/daemon/src/api.ts +0 -1034
  804. package/packages/daemon/src/auth.ts +0 -276
  805. package/packages/daemon/src/channel-membership-store.ts +0 -217
  806. package/packages/daemon/src/cli-auth.ts +0 -945
  807. package/packages/daemon/src/cloud-sync.ts +0 -1100
  808. package/packages/daemon/src/connection.ts +0 -561
  809. package/packages/daemon/src/consensus-integration.ts +0 -510
  810. package/packages/daemon/src/consensus.ts +0 -848
  811. package/packages/daemon/src/delivery-tracker.ts +0 -145
  812. package/packages/daemon/src/enhanced-features.ts +0 -390
  813. package/packages/daemon/src/index.ts +0 -48
  814. package/packages/daemon/src/orchestrator.test.ts +0 -231
  815. package/packages/daemon/src/orchestrator.ts +0 -1376
  816. package/packages/daemon/src/rate-limiter.ts +0 -172
  817. package/packages/daemon/src/registry.ts +0 -8
  818. package/packages/daemon/src/repo-manager.ts +0 -468
  819. package/packages/daemon/src/router.test.ts +0 -181
  820. package/packages/daemon/src/router.ts +0 -1925
  821. package/packages/daemon/src/server.ts +0 -2051
  822. package/packages/daemon/src/spawn-manager-set-model.test.ts +0 -144
  823. package/packages/daemon/src/spawn-manager.ts +0 -415
  824. package/packages/daemon/src/sync-queue.ts +0 -477
  825. package/packages/daemon/src/types.ts +0 -158
  826. package/packages/daemon/src/workspace-manager.ts +0 -371
  827. package/packages/daemon/tsconfig.json +0 -21
  828. package/packages/daemon/vitest.config.ts +0 -9
  829. package/packages/mcp/CHANGELOG.md +0 -28
  830. package/packages/mcp/LICENSE +0 -190
  831. package/packages/mcp/README.md +0 -266
  832. package/packages/mcp/dist/bin.d.ts +0 -12
  833. package/packages/mcp/dist/bin.d.ts.map +0 -1
  834. package/packages/mcp/dist/bin.js +0 -179
  835. package/packages/mcp/dist/bin.js.map +0 -1
  836. package/packages/mcp/dist/client-adapter.d.ts +0 -164
  837. package/packages/mcp/dist/client-adapter.d.ts.map +0 -1
  838. package/packages/mcp/dist/client-adapter.js +0 -231
  839. package/packages/mcp/dist/client-adapter.js.map +0 -1
  840. package/packages/mcp/dist/cloud.d.ts +0 -13
  841. package/packages/mcp/dist/cloud.d.ts.map +0 -1
  842. package/packages/mcp/dist/cloud.js +0 -25
  843. package/packages/mcp/dist/cloud.js.map +0 -1
  844. package/packages/mcp/dist/errors.d.ts +0 -9
  845. package/packages/mcp/dist/errors.d.ts.map +0 -1
  846. package/packages/mcp/dist/errors.js +0 -9
  847. package/packages/mcp/dist/errors.js.map +0 -1
  848. package/packages/mcp/dist/file-transport.d.ts +0 -103
  849. package/packages/mcp/dist/file-transport.d.ts.map +0 -1
  850. package/packages/mcp/dist/file-transport.js +0 -204
  851. package/packages/mcp/dist/file-transport.js.map +0 -1
  852. package/packages/mcp/dist/hybrid-client.d.ts +0 -5
  853. package/packages/mcp/dist/hybrid-client.d.ts.map +0 -1
  854. package/packages/mcp/dist/hybrid-client.js +0 -23
  855. package/packages/mcp/dist/hybrid-client.js.map +0 -1
  856. package/packages/mcp/dist/index.d.ts +0 -11
  857. package/packages/mcp/dist/index.d.ts.map +0 -1
  858. package/packages/mcp/dist/index.js +0 -25
  859. package/packages/mcp/dist/index.js.map +0 -1
  860. package/packages/mcp/dist/install-cli.d.ts +0 -35
  861. package/packages/mcp/dist/install-cli.d.ts.map +0 -1
  862. package/packages/mcp/dist/install-cli.js +0 -157
  863. package/packages/mcp/dist/install-cli.js.map +0 -1
  864. package/packages/mcp/dist/install.d.ts +0 -123
  865. package/packages/mcp/dist/install.d.ts.map +0 -1
  866. package/packages/mcp/dist/install.js +0 -661
  867. package/packages/mcp/dist/install.js.map +0 -1
  868. package/packages/mcp/dist/prompts/index.d.ts +0 -2
  869. package/packages/mcp/dist/prompts/index.d.ts.map +0 -1
  870. package/packages/mcp/dist/prompts/index.js +0 -2
  871. package/packages/mcp/dist/prompts/index.js.map +0 -1
  872. package/packages/mcp/dist/prompts/protocol.d.ts +0 -11
  873. package/packages/mcp/dist/prompts/protocol.d.ts.map +0 -1
  874. package/packages/mcp/dist/prompts/protocol.js +0 -160
  875. package/packages/mcp/dist/prompts/protocol.js.map +0 -1
  876. package/packages/mcp/dist/resources/agents.d.ts +0 -11
  877. package/packages/mcp/dist/resources/agents.d.ts.map +0 -1
  878. package/packages/mcp/dist/resources/agents.js +0 -17
  879. package/packages/mcp/dist/resources/agents.js.map +0 -1
  880. package/packages/mcp/dist/resources/inbox.d.ts +0 -11
  881. package/packages/mcp/dist/resources/inbox.d.ts.map +0 -1
  882. package/packages/mcp/dist/resources/inbox.js +0 -17
  883. package/packages/mcp/dist/resources/inbox.js.map +0 -1
  884. package/packages/mcp/dist/resources/index.d.ts +0 -4
  885. package/packages/mcp/dist/resources/index.d.ts.map +0 -1
  886. package/packages/mcp/dist/resources/index.js +0 -4
  887. package/packages/mcp/dist/resources/index.js.map +0 -1
  888. package/packages/mcp/dist/resources/project.d.ts +0 -11
  889. package/packages/mcp/dist/resources/project.d.ts.map +0 -1
  890. package/packages/mcp/dist/resources/project.js +0 -21
  891. package/packages/mcp/dist/resources/project.js.map +0 -1
  892. package/packages/mcp/dist/server.d.ts +0 -23
  893. package/packages/mcp/dist/server.d.ts.map +0 -1
  894. package/packages/mcp/dist/server.js +0 -317
  895. package/packages/mcp/dist/server.js.map +0 -1
  896. package/packages/mcp/dist/simple.d.ts +0 -170
  897. package/packages/mcp/dist/simple.d.ts.map +0 -1
  898. package/packages/mcp/dist/simple.js +0 -120
  899. package/packages/mcp/dist/simple.js.map +0 -1
  900. package/packages/mcp/dist/tools/index.d.ts +0 -20
  901. package/packages/mcp/dist/tools/index.d.ts.map +0 -1
  902. package/packages/mcp/dist/tools/index.js +0 -20
  903. package/packages/mcp/dist/tools/index.js.map +0 -1
  904. package/packages/mcp/dist/tools/relay-broadcast.d.ts +0 -20
  905. package/packages/mcp/dist/tools/relay-broadcast.d.ts.map +0 -1
  906. package/packages/mcp/dist/tools/relay-broadcast.js +0 -25
  907. package/packages/mcp/dist/tools/relay-broadcast.js.map +0 -1
  908. package/packages/mcp/dist/tools/relay-channel.d.ts +0 -75
  909. package/packages/mcp/dist/tools/relay-channel.d.ts.map +0 -1
  910. package/packages/mcp/dist/tools/relay-channel.js +0 -124
  911. package/packages/mcp/dist/tools/relay-channel.js.map +0 -1
  912. package/packages/mcp/dist/tools/relay-connected.d.ts +0 -17
  913. package/packages/mcp/dist/tools/relay-connected.d.ts.map +0 -1
  914. package/packages/mcp/dist/tools/relay-connected.js +0 -54
  915. package/packages/mcp/dist/tools/relay-connected.js.map +0 -1
  916. package/packages/mcp/dist/tools/relay-consensus.d.ts +0 -45
  917. package/packages/mcp/dist/tools/relay-consensus.d.ts.map +0 -1
  918. package/packages/mcp/dist/tools/relay-consensus.js +0 -80
  919. package/packages/mcp/dist/tools/relay-consensus.js.map +0 -1
  920. package/packages/mcp/dist/tools/relay-continuity.d.ts +0 -35
  921. package/packages/mcp/dist/tools/relay-continuity.d.ts.map +0 -1
  922. package/packages/mcp/dist/tools/relay-continuity.js +0 -101
  923. package/packages/mcp/dist/tools/relay-continuity.js.map +0 -1
  924. package/packages/mcp/dist/tools/relay-health.d.ts +0 -20
  925. package/packages/mcp/dist/tools/relay-health.d.ts.map +0 -1
  926. package/packages/mcp/dist/tools/relay-health.js +0 -130
  927. package/packages/mcp/dist/tools/relay-health.js.map +0 -1
  928. package/packages/mcp/dist/tools/relay-inbox.d.ts +0 -26
  929. package/packages/mcp/dist/tools/relay-inbox.d.ts.map +0 -1
  930. package/packages/mcp/dist/tools/relay-inbox.js +0 -58
  931. package/packages/mcp/dist/tools/relay-inbox.js.map +0 -1
  932. package/packages/mcp/dist/tools/relay-logs.d.ts +0 -20
  933. package/packages/mcp/dist/tools/relay-logs.d.ts.map +0 -1
  934. package/packages/mcp/dist/tools/relay-logs.js +0 -90
  935. package/packages/mcp/dist/tools/relay-logs.js.map +0 -1
  936. package/packages/mcp/dist/tools/relay-messages.d.ts +0 -32
  937. package/packages/mcp/dist/tools/relay-messages.d.ts.map +0 -1
  938. package/packages/mcp/dist/tools/relay-messages.js +0 -61
  939. package/packages/mcp/dist/tools/relay-messages.js.map +0 -1
  940. package/packages/mcp/dist/tools/relay-metrics.d.ts +0 -17
  941. package/packages/mcp/dist/tools/relay-metrics.d.ts.map +0 -1
  942. package/packages/mcp/dist/tools/relay-metrics.js +0 -124
  943. package/packages/mcp/dist/tools/relay-metrics.js.map +0 -1
  944. package/packages/mcp/dist/tools/relay-release.d.ts +0 -20
  945. package/packages/mcp/dist/tools/relay-release.d.ts.map +0 -1
  946. package/packages/mcp/dist/tools/relay-release.js +0 -44
  947. package/packages/mcp/dist/tools/relay-release.js.map +0 -1
  948. package/packages/mcp/dist/tools/relay-remove-agent.d.ts +0 -20
  949. package/packages/mcp/dist/tools/relay-remove-agent.d.ts.map +0 -1
  950. package/packages/mcp/dist/tools/relay-remove-agent.js +0 -50
  951. package/packages/mcp/dist/tools/relay-remove-agent.js.map +0 -1
  952. package/packages/mcp/dist/tools/relay-send.d.ts +0 -29
  953. package/packages/mcp/dist/tools/relay-send.d.ts.map +0 -1
  954. package/packages/mcp/dist/tools/relay-send.js +0 -73
  955. package/packages/mcp/dist/tools/relay-send.js.map +0 -1
  956. package/packages/mcp/dist/tools/relay-set-model.d.ts +0 -23
  957. package/packages/mcp/dist/tools/relay-set-model.d.ts.map +0 -1
  958. package/packages/mcp/dist/tools/relay-set-model.js +0 -52
  959. package/packages/mcp/dist/tools/relay-set-model.js.map +0 -1
  960. package/packages/mcp/dist/tools/relay-shadow.d.ts +0 -30
  961. package/packages/mcp/dist/tools/relay-shadow.d.ts.map +0 -1
  962. package/packages/mcp/dist/tools/relay-shadow.js +0 -55
  963. package/packages/mcp/dist/tools/relay-shadow.js.map +0 -1
  964. package/packages/mcp/dist/tools/relay-spawn.d.ts +0 -36
  965. package/packages/mcp/dist/tools/relay-spawn.d.ts.map +0 -1
  966. package/packages/mcp/dist/tools/relay-spawn.js +0 -73
  967. package/packages/mcp/dist/tools/relay-spawn.js.map +0 -1
  968. package/packages/mcp/dist/tools/relay-status.d.ts +0 -11
  969. package/packages/mcp/dist/tools/relay-status.d.ts.map +0 -1
  970. package/packages/mcp/dist/tools/relay-status.js +0 -43
  971. package/packages/mcp/dist/tools/relay-status.js.map +0 -1
  972. package/packages/mcp/dist/tools/relay-subscribe.d.ts +0 -27
  973. package/packages/mcp/dist/tools/relay-subscribe.d.ts.map +0 -1
  974. package/packages/mcp/dist/tools/relay-subscribe.js +0 -49
  975. package/packages/mcp/dist/tools/relay-subscribe.js.map +0 -1
  976. package/packages/mcp/dist/tools/relay-who.d.ts +0 -20
  977. package/packages/mcp/dist/tools/relay-who.d.ts.map +0 -1
  978. package/packages/mcp/dist/tools/relay-who.js +0 -62
  979. package/packages/mcp/dist/tools/relay-who.js.map +0 -1
  980. package/packages/mcp/package.json +0 -82
  981. package/packages/mcp/src/bin.ts +0 -200
  982. package/packages/mcp/src/client-adapter.ts +0 -358
  983. package/packages/mcp/src/cloud.ts +0 -41
  984. package/packages/mcp/src/errors.ts +0 -17
  985. package/packages/mcp/src/file-transport.ts +0 -275
  986. package/packages/mcp/src/hybrid-client.ts +0 -25
  987. package/packages/mcp/src/index.ts +0 -143
  988. package/packages/mcp/src/install-cli.ts +0 -210
  989. package/packages/mcp/src/install.ts +0 -820
  990. package/packages/mcp/src/prompts/index.ts +0 -1
  991. package/packages/mcp/src/prompts/protocol.ts +0 -164
  992. package/packages/mcp/src/resources/agents.ts +0 -21
  993. package/packages/mcp/src/resources/inbox.ts +0 -21
  994. package/packages/mcp/src/resources/index.ts +0 -3
  995. package/packages/mcp/src/resources/project.ts +0 -29
  996. package/packages/mcp/src/server.ts +0 -475
  997. package/packages/mcp/src/simple.ts +0 -214
  998. package/packages/mcp/src/tools/index.ts +0 -155
  999. package/packages/mcp/src/tools/relay-broadcast.ts +0 -32
  1000. package/packages/mcp/src/tools/relay-channel.ts +0 -151
  1001. package/packages/mcp/src/tools/relay-connected.ts +0 -67
  1002. package/packages/mcp/src/tools/relay-consensus.ts +0 -92
  1003. package/packages/mcp/src/tools/relay-continuity.ts +0 -127
  1004. package/packages/mcp/src/tools/relay-health.ts +0 -148
  1005. package/packages/mcp/src/tools/relay-inbox.ts +0 -70
  1006. package/packages/mcp/src/tools/relay-logs.ts +0 -106
  1007. package/packages/mcp/src/tools/relay-messages.ts +0 -66
  1008. package/packages/mcp/src/tools/relay-metrics.ts +0 -142
  1009. package/packages/mcp/src/tools/relay-release.ts +0 -54
  1010. package/packages/mcp/src/tools/relay-remove-agent.ts +0 -58
  1011. package/packages/mcp/src/tools/relay-send.ts +0 -84
  1012. package/packages/mcp/src/tools/relay-set-model.ts +0 -62
  1013. package/packages/mcp/src/tools/relay-shadow.ts +0 -67
  1014. package/packages/mcp/src/tools/relay-spawn.ts +0 -87
  1015. package/packages/mcp/src/tools/relay-status.ts +0 -57
  1016. package/packages/mcp/src/tools/relay-subscribe.ts +0 -61
  1017. package/packages/mcp/src/tools/relay-who.ts +0 -75
  1018. package/packages/mcp/tests/client.test.ts +0 -451
  1019. package/packages/mcp/tests/discover.test.ts +0 -256
  1020. package/packages/mcp/tests/install.test.ts +0 -123
  1021. package/packages/mcp/tests/prompts.test.ts +0 -12
  1022. package/packages/mcp/tests/resources.test.ts +0 -53
  1023. package/packages/mcp/tests/tools.test.ts +0 -1516
  1024. package/packages/mcp/tsconfig.json +0 -22
  1025. package/packages/mcp/vitest.config.ts +0 -9
  1026. package/packages/protocol/dist/channels.d.ts +0 -137
  1027. package/packages/protocol/dist/channels.d.ts.map +0 -1
  1028. package/packages/protocol/dist/channels.js +0 -154
  1029. package/packages/protocol/dist/channels.js.map +0 -1
  1030. package/packages/protocol/dist/framing.d.ts +0 -80
  1031. package/packages/protocol/dist/framing.d.ts.map +0 -1
  1032. package/packages/protocol/dist/framing.js +0 -206
  1033. package/packages/protocol/dist/framing.js.map +0 -1
  1034. package/packages/protocol/dist/id-generator.d.ts +0 -35
  1035. package/packages/protocol/dist/id-generator.d.ts.map +0 -1
  1036. package/packages/protocol/dist/id-generator.js +0 -60
  1037. package/packages/protocol/dist/id-generator.js.map +0 -1
  1038. package/packages/protocol/dist/index.d.ts +0 -5
  1039. package/packages/protocol/dist/index.d.ts.map +0 -1
  1040. package/packages/protocol/dist/index.js +0 -5
  1041. package/packages/protocol/dist/index.js.map +0 -1
  1042. package/packages/protocol/dist/relay-pty-schemas.d.ts +0 -340
  1043. package/packages/protocol/dist/relay-pty-schemas.d.ts.map +0 -1
  1044. package/packages/protocol/dist/relay-pty-schemas.js +0 -60
  1045. package/packages/protocol/dist/relay-pty-schemas.js.map +0 -1
  1046. package/packages/protocol/dist/types.d.ts +0 -793
  1047. package/packages/protocol/dist/types.d.ts.map +0 -1
  1048. package/packages/protocol/dist/types.js +0 -8
  1049. package/packages/protocol/dist/types.js.map +0 -1
  1050. package/packages/protocol/package.json +0 -61
  1051. package/packages/protocol/src/channels.test.ts +0 -330
  1052. package/packages/protocol/src/channels.ts +0 -270
  1053. package/packages/protocol/src/framing.test.ts +0 -164
  1054. package/packages/protocol/src/framing.ts +0 -242
  1055. package/packages/protocol/src/id-generator.ts +0 -69
  1056. package/packages/protocol/src/index.ts +0 -4
  1057. package/packages/protocol/src/relay-pty-schemas.ts +0 -400
  1058. package/packages/protocol/src/types.test.ts +0 -271
  1059. package/packages/protocol/src/types.ts +0 -988
  1060. package/packages/protocol/tsconfig.json +0 -21
  1061. package/packages/protocol/vitest.config.ts +0 -9
  1062. package/packages/resiliency/dist/cgroup-manager.d.ts +0 -152
  1063. package/packages/resiliency/dist/cgroup-manager.d.ts.map +0 -1
  1064. package/packages/resiliency/dist/cgroup-manager.js +0 -394
  1065. package/packages/resiliency/dist/cgroup-manager.js.map +0 -1
  1066. package/packages/resiliency/dist/context-persistence.d.ts +0 -140
  1067. package/packages/resiliency/dist/context-persistence.d.ts.map +0 -1
  1068. package/packages/resiliency/dist/context-persistence.js +0 -397
  1069. package/packages/resiliency/dist/context-persistence.js.map +0 -1
  1070. package/packages/resiliency/dist/crash-insights.d.ts +0 -156
  1071. package/packages/resiliency/dist/crash-insights.d.ts.map +0 -1
  1072. package/packages/resiliency/dist/crash-insights.js +0 -492
  1073. package/packages/resiliency/dist/crash-insights.js.map +0 -1
  1074. package/packages/resiliency/dist/gossip-health.d.ts +0 -137
  1075. package/packages/resiliency/dist/gossip-health.d.ts.map +0 -1
  1076. package/packages/resiliency/dist/gossip-health.js +0 -241
  1077. package/packages/resiliency/dist/gossip-health.js.map +0 -1
  1078. package/packages/resiliency/dist/health-monitor.d.ts +0 -97
  1079. package/packages/resiliency/dist/health-monitor.d.ts.map +0 -1
  1080. package/packages/resiliency/dist/health-monitor.js +0 -291
  1081. package/packages/resiliency/dist/health-monitor.js.map +0 -1
  1082. package/packages/resiliency/dist/index.d.ts +0 -69
  1083. package/packages/resiliency/dist/index.d.ts.map +0 -1
  1084. package/packages/resiliency/dist/index.js +0 -69
  1085. package/packages/resiliency/dist/index.js.map +0 -1
  1086. package/packages/resiliency/dist/leader-watchdog.d.ts +0 -109
  1087. package/packages/resiliency/dist/leader-watchdog.d.ts.map +0 -1
  1088. package/packages/resiliency/dist/leader-watchdog.js +0 -189
  1089. package/packages/resiliency/dist/leader-watchdog.js.map +0 -1
  1090. package/packages/resiliency/dist/logger.d.ts +0 -114
  1091. package/packages/resiliency/dist/logger.d.ts.map +0 -1
  1092. package/packages/resiliency/dist/logger.js +0 -250
  1093. package/packages/resiliency/dist/logger.js.map +0 -1
  1094. package/packages/resiliency/dist/memory-monitor.d.ts +0 -172
  1095. package/packages/resiliency/dist/memory-monitor.d.ts.map +0 -1
  1096. package/packages/resiliency/dist/memory-monitor.js +0 -599
  1097. package/packages/resiliency/dist/memory-monitor.js.map +0 -1
  1098. package/packages/resiliency/dist/metrics.d.ts +0 -115
  1099. package/packages/resiliency/dist/metrics.d.ts.map +0 -1
  1100. package/packages/resiliency/dist/metrics.js +0 -239
  1101. package/packages/resiliency/dist/metrics.js.map +0 -1
  1102. package/packages/resiliency/dist/provider-context.d.ts +0 -100
  1103. package/packages/resiliency/dist/provider-context.d.ts.map +0 -1
  1104. package/packages/resiliency/dist/provider-context.js +0 -362
  1105. package/packages/resiliency/dist/provider-context.js.map +0 -1
  1106. package/packages/resiliency/dist/stateless-lead.d.ts +0 -149
  1107. package/packages/resiliency/dist/stateless-lead.d.ts.map +0 -1
  1108. package/packages/resiliency/dist/stateless-lead.js +0 -308
  1109. package/packages/resiliency/dist/stateless-lead.js.map +0 -1
  1110. package/packages/resiliency/dist/supervisor.d.ts +0 -147
  1111. package/packages/resiliency/dist/supervisor.d.ts.map +0 -1
  1112. package/packages/resiliency/dist/supervisor.js +0 -459
  1113. package/packages/resiliency/dist/supervisor.js.map +0 -1
  1114. package/packages/resiliency/package.json +0 -38
  1115. package/packages/resiliency/src/cgroup-manager.ts +0 -468
  1116. package/packages/resiliency/src/context-persistence.ts +0 -538
  1117. package/packages/resiliency/src/crash-insights.test.ts +0 -620
  1118. package/packages/resiliency/src/crash-insights.ts +0 -660
  1119. package/packages/resiliency/src/gossip-health.ts +0 -333
  1120. package/packages/resiliency/src/health-monitor.ts +0 -371
  1121. package/packages/resiliency/src/index.ts +0 -157
  1122. package/packages/resiliency/src/leader-watchdog.ts +0 -260
  1123. package/packages/resiliency/src/logger.ts +0 -320
  1124. package/packages/resiliency/src/memory-monitor.test.ts +0 -637
  1125. package/packages/resiliency/src/memory-monitor.ts +0 -740
  1126. package/packages/resiliency/src/metrics.ts +0 -311
  1127. package/packages/resiliency/src/provider-context.ts +0 -452
  1128. package/packages/resiliency/src/stateless-lead.ts +0 -408
  1129. package/packages/resiliency/src/supervisor.ts +0 -578
  1130. package/packages/resiliency/tsconfig.json +0 -21
  1131. package/packages/resiliency/vitest.config.ts +0 -9
  1132. package/packages/sdk/dist/discovery.d.ts +0 -10
  1133. package/packages/sdk/dist/discovery.d.ts.map +0 -1
  1134. package/packages/sdk/dist/discovery.js +0 -22
  1135. package/packages/sdk/dist/discovery.js.map +0 -1
  1136. package/packages/sdk/dist/errors.d.ts +0 -9
  1137. package/packages/sdk/dist/errors.d.ts.map +0 -1
  1138. package/packages/sdk/dist/errors.js +0 -9
  1139. package/packages/sdk/dist/errors.js.map +0 -1
  1140. package/packages/sdk/dist/protocol/index.d.ts +0 -8
  1141. package/packages/sdk/dist/protocol/index.d.ts.map +0 -1
  1142. package/packages/sdk/dist/protocol/index.js +0 -8
  1143. package/packages/sdk/dist/protocol/index.js.map +0 -1
  1144. package/packages/sdk/examples/SWARM_CAPABILITIES.md +0 -498
  1145. package/packages/sdk/examples/SWARM_PATTERNS.md +0 -541
  1146. package/packages/sdk/src/client.test.ts +0 -1041
  1147. package/packages/sdk/src/discovery.ts +0 -38
  1148. package/packages/sdk/src/errors.ts +0 -17
  1149. package/packages/sdk/src/logs.test.ts +0 -98
  1150. package/packages/sdk/src/protocol/framing.test.ts +0 -164
  1151. package/packages/sdk/src/protocol/index.ts +0 -8
  1152. package/packages/spawner/.trajectories/index.json +0 -5
  1153. package/packages/spawner/API.md +0 -256
  1154. package/packages/spawner/dist/index.d.ts +0 -8
  1155. package/packages/spawner/dist/index.d.ts.map +0 -1
  1156. package/packages/spawner/dist/index.js +0 -8
  1157. package/packages/spawner/dist/index.js.map +0 -1
  1158. package/packages/spawner/dist/types.d.ts +0 -552
  1159. package/packages/spawner/dist/types.d.ts.map +0 -1
  1160. package/packages/spawner/dist/types.js +0 -193
  1161. package/packages/spawner/dist/types.js.map +0 -1
  1162. package/packages/spawner/package.json +0 -47
  1163. package/packages/spawner/src/index.ts +0 -8
  1164. package/packages/spawner/src/types.test.ts +0 -385
  1165. package/packages/spawner/src/types.ts +0 -228
  1166. package/packages/spawner/tsconfig.json +0 -19
  1167. package/packages/spawner/vitest.config.ts +0 -9
  1168. package/packages/state/dist/agent-state.d.ts +0 -40
  1169. package/packages/state/dist/agent-state.d.ts.map +0 -1
  1170. package/packages/state/dist/agent-state.js +0 -120
  1171. package/packages/state/dist/agent-state.js.map +0 -1
  1172. package/packages/state/dist/index.d.ts +0 -8
  1173. package/packages/state/dist/index.d.ts.map +0 -1
  1174. package/packages/state/dist/index.js +0 -8
  1175. package/packages/state/dist/index.js.map +0 -1
  1176. package/packages/state/package.json +0 -37
  1177. package/packages/state/src/agent-state.test.ts +0 -335
  1178. package/packages/state/src/agent-state.ts +0 -153
  1179. package/packages/state/src/index.ts +0 -12
  1180. package/packages/state/tsconfig.json +0 -21
  1181. package/packages/state/vitest.config.ts +0 -9
  1182. package/packages/storage/dist/adapter.d.ts +0 -189
  1183. package/packages/storage/dist/adapter.d.ts.map +0 -1
  1184. package/packages/storage/dist/adapter.js +0 -267
  1185. package/packages/storage/dist/adapter.js.map +0 -1
  1186. package/packages/storage/dist/batched-sqlite-adapter.d.ts +0 -75
  1187. package/packages/storage/dist/batched-sqlite-adapter.d.ts.map +0 -1
  1188. package/packages/storage/dist/batched-sqlite-adapter.js +0 -189
  1189. package/packages/storage/dist/batched-sqlite-adapter.js.map +0 -1
  1190. package/packages/storage/dist/dead-letter-queue.d.ts +0 -196
  1191. package/packages/storage/dist/dead-letter-queue.d.ts.map +0 -1
  1192. package/packages/storage/dist/dead-letter-queue.js +0 -427
  1193. package/packages/storage/dist/dead-letter-queue.js.map +0 -1
  1194. package/packages/storage/dist/dlq-adapter.d.ts +0 -195
  1195. package/packages/storage/dist/dlq-adapter.d.ts.map +0 -1
  1196. package/packages/storage/dist/dlq-adapter.js +0 -664
  1197. package/packages/storage/dist/dlq-adapter.js.map +0 -1
  1198. package/packages/storage/dist/index.d.ts +0 -6
  1199. package/packages/storage/dist/index.d.ts.map +0 -1
  1200. package/packages/storage/dist/index.js +0 -7
  1201. package/packages/storage/dist/index.js.map +0 -1
  1202. package/packages/storage/dist/jsonl-adapter.d.ts +0 -91
  1203. package/packages/storage/dist/jsonl-adapter.d.ts.map +0 -1
  1204. package/packages/storage/dist/jsonl-adapter.js +0 -580
  1205. package/packages/storage/dist/jsonl-adapter.js.map +0 -1
  1206. package/packages/storage/dist/sqlite-adapter.d.ts +0 -131
  1207. package/packages/storage/dist/sqlite-adapter.d.ts.map +0 -1
  1208. package/packages/storage/dist/sqlite-adapter.js +0 -865
  1209. package/packages/storage/dist/sqlite-adapter.js.map +0 -1
  1210. package/packages/storage/package.json +0 -74
  1211. package/packages/storage/src/adapter.ts +0 -446
  1212. package/packages/storage/src/batched-sqlite-adapter.test.ts +0 -256
  1213. package/packages/storage/src/batched-sqlite-adapter.ts +0 -239
  1214. package/packages/storage/src/dead-letter-queue.ts +0 -643
  1215. package/packages/storage/src/dlq-adapter.test.ts +0 -509
  1216. package/packages/storage/src/dlq-adapter.ts +0 -954
  1217. package/packages/storage/src/index.ts +0 -6
  1218. package/packages/storage/src/jsonl-adapter.test.ts +0 -239
  1219. package/packages/storage/src/jsonl-adapter.ts +0 -704
  1220. package/packages/storage/src/memory-adapter.test.ts +0 -36
  1221. package/packages/storage/src/sqlite-adapter.test.ts +0 -580
  1222. package/packages/storage/src/sqlite-adapter.ts +0 -1099
  1223. package/packages/storage/tsconfig.json +0 -21
  1224. package/packages/storage/vitest.config.ts +0 -9
  1225. package/packages/wrapper/dist/__fixtures__/claude-outputs.d.ts +0 -49
  1226. package/packages/wrapper/dist/__fixtures__/claude-outputs.d.ts.map +0 -1
  1227. package/packages/wrapper/dist/__fixtures__/claude-outputs.js +0 -443
  1228. package/packages/wrapper/dist/__fixtures__/claude-outputs.js.map +0 -1
  1229. package/packages/wrapper/dist/__fixtures__/codex-outputs.d.ts +0 -9
  1230. package/packages/wrapper/dist/__fixtures__/codex-outputs.d.ts.map +0 -1
  1231. package/packages/wrapper/dist/__fixtures__/codex-outputs.js +0 -94
  1232. package/packages/wrapper/dist/__fixtures__/codex-outputs.js.map +0 -1
  1233. package/packages/wrapper/dist/__fixtures__/gemini-outputs.d.ts +0 -19
  1234. package/packages/wrapper/dist/__fixtures__/gemini-outputs.d.ts.map +0 -1
  1235. package/packages/wrapper/dist/__fixtures__/gemini-outputs.js +0 -144
  1236. package/packages/wrapper/dist/__fixtures__/gemini-outputs.js.map +0 -1
  1237. package/packages/wrapper/dist/__fixtures__/index.d.ts +0 -68
  1238. package/packages/wrapper/dist/__fixtures__/index.d.ts.map +0 -1
  1239. package/packages/wrapper/dist/__fixtures__/index.js +0 -44
  1240. package/packages/wrapper/dist/__fixtures__/index.js.map +0 -1
  1241. package/packages/wrapper/dist/auth-detection.d.ts +0 -49
  1242. package/packages/wrapper/dist/auth-detection.d.ts.map +0 -1
  1243. package/packages/wrapper/dist/auth-detection.js +0 -199
  1244. package/packages/wrapper/dist/auth-detection.js.map +0 -1
  1245. package/packages/wrapper/dist/base-wrapper.d.ts +0 -254
  1246. package/packages/wrapper/dist/base-wrapper.d.ts.map +0 -1
  1247. package/packages/wrapper/dist/base-wrapper.js +0 -664
  1248. package/packages/wrapper/dist/base-wrapper.js.map +0 -1
  1249. package/packages/wrapper/dist/client.d.ts +0 -291
  1250. package/packages/wrapper/dist/client.d.ts.map +0 -1
  1251. package/packages/wrapper/dist/client.js +0 -926
  1252. package/packages/wrapper/dist/client.js.map +0 -1
  1253. package/packages/wrapper/dist/id-generator.d.ts +0 -35
  1254. package/packages/wrapper/dist/id-generator.d.ts.map +0 -1
  1255. package/packages/wrapper/dist/id-generator.js +0 -60
  1256. package/packages/wrapper/dist/id-generator.js.map +0 -1
  1257. package/packages/wrapper/dist/idle-detector.d.ts +0 -114
  1258. package/packages/wrapper/dist/idle-detector.d.ts.map +0 -1
  1259. package/packages/wrapper/dist/idle-detector.js +0 -317
  1260. package/packages/wrapper/dist/idle-detector.js.map +0 -1
  1261. package/packages/wrapper/dist/inbox.d.ts +0 -37
  1262. package/packages/wrapper/dist/inbox.d.ts.map +0 -1
  1263. package/packages/wrapper/dist/inbox.js +0 -73
  1264. package/packages/wrapper/dist/inbox.js.map +0 -1
  1265. package/packages/wrapper/dist/index.d.ts +0 -40
  1266. package/packages/wrapper/dist/index.d.ts.map +0 -1
  1267. package/packages/wrapper/dist/index.js +0 -53
  1268. package/packages/wrapper/dist/index.js.map +0 -1
  1269. package/packages/wrapper/dist/opencode-api.d.ts +0 -106
  1270. package/packages/wrapper/dist/opencode-api.d.ts.map +0 -1
  1271. package/packages/wrapper/dist/opencode-api.js +0 -219
  1272. package/packages/wrapper/dist/opencode-api.js.map +0 -1
  1273. package/packages/wrapper/dist/opencode-wrapper.d.ts +0 -161
  1274. package/packages/wrapper/dist/opencode-wrapper.d.ts.map +0 -1
  1275. package/packages/wrapper/dist/opencode-wrapper.js +0 -438
  1276. package/packages/wrapper/dist/opencode-wrapper.js.map +0 -1
  1277. package/packages/wrapper/dist/parser.d.ts +0 -236
  1278. package/packages/wrapper/dist/parser.d.ts.map +0 -1
  1279. package/packages/wrapper/dist/parser.js +0 -1238
  1280. package/packages/wrapper/dist/parser.js.map +0 -1
  1281. package/packages/wrapper/dist/prompt-composer.d.ts +0 -67
  1282. package/packages/wrapper/dist/prompt-composer.d.ts.map +0 -1
  1283. package/packages/wrapper/dist/prompt-composer.js +0 -168
  1284. package/packages/wrapper/dist/prompt-composer.js.map +0 -1
  1285. package/packages/wrapper/dist/relay-pty-orchestrator.d.ts +0 -486
  1286. package/packages/wrapper/dist/relay-pty-orchestrator.d.ts.map +0 -1
  1287. package/packages/wrapper/dist/relay-pty-orchestrator.js +0 -2550
  1288. package/packages/wrapper/dist/relay-pty-orchestrator.js.map +0 -1
  1289. package/packages/wrapper/dist/shared.d.ts +0 -262
  1290. package/packages/wrapper/dist/shared.d.ts.map +0 -1
  1291. package/packages/wrapper/dist/shared.js +0 -507
  1292. package/packages/wrapper/dist/shared.js.map +0 -1
  1293. package/packages/wrapper/dist/stuck-detector.d.ts +0 -161
  1294. package/packages/wrapper/dist/stuck-detector.d.ts.map +0 -1
  1295. package/packages/wrapper/dist/stuck-detector.js +0 -402
  1296. package/packages/wrapper/dist/stuck-detector.js.map +0 -1
  1297. package/packages/wrapper/dist/tmux-resolver.d.ts +0 -55
  1298. package/packages/wrapper/dist/tmux-resolver.d.ts.map +0 -1
  1299. package/packages/wrapper/dist/tmux-resolver.js +0 -175
  1300. package/packages/wrapper/dist/tmux-resolver.js.map +0 -1
  1301. package/packages/wrapper/dist/tmux-wrapper.d.ts +0 -352
  1302. package/packages/wrapper/dist/tmux-wrapper.d.ts.map +0 -1
  1303. package/packages/wrapper/dist/tmux-wrapper.js +0 -1816
  1304. package/packages/wrapper/dist/tmux-wrapper.js.map +0 -1
  1305. package/packages/wrapper/dist/trajectory-integration.d.ts +0 -292
  1306. package/packages/wrapper/dist/trajectory-integration.d.ts.map +0 -1
  1307. package/packages/wrapper/dist/trajectory-integration.js +0 -979
  1308. package/packages/wrapper/dist/trajectory-integration.js.map +0 -1
  1309. package/packages/wrapper/dist/wrapper-events.d.ts +0 -489
  1310. package/packages/wrapper/dist/wrapper-events.d.ts.map +0 -1
  1311. package/packages/wrapper/dist/wrapper-events.js +0 -252
  1312. package/packages/wrapper/dist/wrapper-events.js.map +0 -1
  1313. package/packages/wrapper/dist/wrapper-types.d.ts +0 -41
  1314. package/packages/wrapper/dist/wrapper-types.d.ts.map +0 -1
  1315. package/packages/wrapper/dist/wrapper-types.js +0 -7
  1316. package/packages/wrapper/dist/wrapper-types.js.map +0 -1
  1317. package/packages/wrapper/package.json +0 -60
  1318. package/packages/wrapper/src/__fixtures__/claude-outputs.ts +0 -471
  1319. package/packages/wrapper/src/__fixtures__/codex-outputs.ts +0 -99
  1320. package/packages/wrapper/src/__fixtures__/gemini-outputs.ts +0 -151
  1321. package/packages/wrapper/src/__fixtures__/index.ts +0 -47
  1322. package/packages/wrapper/src/auth-detection.ts +0 -244
  1323. package/packages/wrapper/src/base-wrapper.test.ts +0 -589
  1324. package/packages/wrapper/src/base-wrapper.ts +0 -841
  1325. package/packages/wrapper/src/client.test.ts +0 -351
  1326. package/packages/wrapper/src/client.ts +0 -1166
  1327. package/packages/wrapper/src/id-generator.test.ts +0 -71
  1328. package/packages/wrapper/src/id-generator.ts +0 -69
  1329. package/packages/wrapper/src/idle-detector.test.ts +0 -418
  1330. package/packages/wrapper/src/idle-detector.ts +0 -384
  1331. package/packages/wrapper/src/inbox.test.ts +0 -233
  1332. package/packages/wrapper/src/inbox.ts +0 -89
  1333. package/packages/wrapper/src/index.ts +0 -199
  1334. package/packages/wrapper/src/opencode-api.test.ts +0 -292
  1335. package/packages/wrapper/src/opencode-api.ts +0 -285
  1336. package/packages/wrapper/src/opencode-wrapper.ts +0 -541
  1337. package/packages/wrapper/src/parser.regression.test.ts +0 -251
  1338. package/packages/wrapper/src/parser.test.ts +0 -1359
  1339. package/packages/wrapper/src/parser.ts +0 -1477
  1340. package/packages/wrapper/src/prompt-composer.test.ts +0 -219
  1341. package/packages/wrapper/src/prompt-composer.ts +0 -231
  1342. package/packages/wrapper/src/relay-pty-orchestrator.test.ts +0 -1386
  1343. package/packages/wrapper/src/relay-pty-orchestrator.ts +0 -3041
  1344. package/packages/wrapper/src/shared.test.ts +0 -467
  1345. package/packages/wrapper/src/shared.ts +0 -652
  1346. package/packages/wrapper/src/stuck-detector.test.ts +0 -303
  1347. package/packages/wrapper/src/stuck-detector.ts +0 -511
  1348. package/packages/wrapper/src/tmux-resolver.test.ts +0 -104
  1349. package/packages/wrapper/src/tmux-resolver.ts +0 -207
  1350. package/packages/wrapper/src/tmux-wrapper.test.ts +0 -316
  1351. package/packages/wrapper/src/tmux-wrapper.ts +0 -2095
  1352. package/packages/wrapper/src/trajectory-detection.test.ts +0 -151
  1353. package/packages/wrapper/src/trajectory-integration.ts +0 -1261
  1354. package/packages/wrapper/src/wrapper-events.ts +0 -395
  1355. package/packages/wrapper/src/wrapper-types.ts +0 -45
  1356. package/packages/wrapper/tsconfig.json +0 -19
  1357. package/packages/wrapper/vitest.config.ts +0 -9
  1358. /package/packages/{broker-sdk → sdk}/dist/__tests__/facade.test.d.ts +0 -0
  1359. /package/packages/{broker-sdk → sdk}/dist/__tests__/facade.test.d.ts.map +0 -0
  1360. /package/packages/{broker-sdk → sdk}/dist/__tests__/integration.test.d.ts +0 -0
  1361. /package/packages/{broker-sdk → sdk}/dist/__tests__/integration.test.d.ts.map +0 -0
  1362. /package/packages/{broker-sdk → sdk}/dist/__tests__/quickstart.test.d.ts +0 -0
  1363. /package/packages/{broker-sdk → sdk}/dist/__tests__/quickstart.test.d.ts.map +0 -0
  1364. /package/packages/{broker-sdk → sdk}/dist/__tests__/unit.test.d.ts +0 -0
  1365. /package/packages/{broker-sdk → sdk}/dist/__tests__/unit.test.d.ts.map +0 -0
  1366. /package/packages/{broker-sdk → sdk}/dist/browser.d.ts +0 -0
  1367. /package/packages/{broker-sdk → sdk}/dist/browser.d.ts.map +0 -0
  1368. /package/packages/{broker-sdk → sdk}/dist/browser.js +0 -0
  1369. /package/packages/{broker-sdk → sdk}/dist/browser.js.map +0 -0
  1370. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.d.ts +0 -0
  1371. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.d.ts.map +0 -0
  1372. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.js +0 -0
  1373. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.js.map +0 -0
  1374. /package/packages/{broker-sdk → sdk}/dist/consensus.d.ts +0 -0
  1375. /package/packages/{broker-sdk → sdk}/dist/consensus.d.ts.map +0 -0
  1376. /package/packages/{broker-sdk → sdk}/dist/consensus.js +0 -0
  1377. /package/packages/{broker-sdk → sdk}/dist/consensus.js.map +0 -0
  1378. /package/packages/{broker-sdk → sdk}/dist/examples/demo.d.ts +0 -0
  1379. /package/packages/{broker-sdk → sdk}/dist/examples/demo.d.ts.map +0 -0
  1380. /package/packages/{broker-sdk → sdk}/dist/examples/demo.js +0 -0
  1381. /package/packages/{broker-sdk → sdk}/dist/examples/demo.js.map +0 -0
  1382. /package/packages/{broker-sdk → sdk}/dist/examples/example.d.ts +0 -0
  1383. /package/packages/{broker-sdk → sdk}/dist/examples/example.d.ts.map +0 -0
  1384. /package/packages/{broker-sdk → sdk}/dist/examples/example.js +0 -0
  1385. /package/packages/{broker-sdk → sdk}/dist/examples/example.js.map +0 -0
  1386. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.d.ts +0 -0
  1387. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.d.ts.map +0 -0
  1388. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.js +0 -0
  1389. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.js.map +0 -0
  1390. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.d.ts +0 -0
  1391. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.d.ts.map +0 -0
  1392. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.js +0 -0
  1393. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.js.map +0 -0
  1394. /package/packages/{broker-sdk → sdk}/dist/protocol.js +0 -0
  1395. /package/packages/{broker-sdk → sdk}/dist/protocol.js.map +0 -0
  1396. /package/packages/{broker-sdk → sdk}/dist/pty.d.ts +0 -0
  1397. /package/packages/{broker-sdk → sdk}/dist/shadow.js +0 -0
  1398. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.d.ts +0 -0
  1399. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.d.ts.map +0 -0
  1400. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.js +0 -0
  1401. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.js.map +0 -0
  1402. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.d.ts +0 -0
  1403. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.d.ts.map +0 -0
  1404. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.js +0 -0
  1405. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.js.map +0 -0
  1406. /package/packages/{broker-sdk → sdk}/dist/workflows/state.d.ts +0 -0
  1407. /package/packages/{broker-sdk → sdk}/dist/workflows/state.d.ts.map +0 -0
  1408. /package/packages/{broker-sdk → sdk}/dist/workflows/state.js +0 -0
  1409. /package/packages/{broker-sdk → sdk}/dist/workflows/state.js.map +0 -0
  1410. /package/packages/{broker-sdk → sdk}/src/__tests__/workflow-trajectory.test.ts +0 -0
  1411. /package/packages/{broker-sdk → sdk}/src/browser.ts +0 -0
  1412. /package/packages/{broker-sdk → sdk}/src/consensus-helpers.ts +0 -0
  1413. /package/packages/{broker-sdk → sdk}/src/consensus.ts +0 -0
  1414. /package/packages/{broker-sdk → sdk}/src/examples/demo.ts +0 -0
  1415. /package/packages/{broker-sdk → sdk}/src/examples/example.ts +0 -0
  1416. /package/packages/{broker-sdk → sdk}/src/examples/quickstart.ts +0 -0
  1417. /package/packages/{broker-sdk → sdk}/src/examples/ralph-loop.ts +0 -0
  1418. /package/packages/{broker-sdk → sdk}/src/examples/sample-prd.json +0 -0
  1419. /package/packages/{broker-sdk → sdk}/src/workflows/barrier.ts +0 -0
  1420. /package/packages/{broker-sdk → sdk}/src/workflows/memory-db.ts +0 -0
  1421. /package/packages/{broker-sdk → sdk}/src/workflows/state.ts +0 -0
@@ -1,1516 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import type { RelayClient } from '../src/client.js';
3
- import {
4
- handleRelaySend,
5
- relaySendSchema,
6
- handleRelayInbox,
7
- relayInboxSchema,
8
- handleRelayWho,
9
- relayWhoSchema,
10
- handleRelaySpawn,
11
- handleRelayRelease,
12
- handleRelayStatus,
13
- handleRelayBroadcast,
14
- relayBroadcastSchema,
15
- handleRelaySubscribe,
16
- relaySubscribeSchema,
17
- handleRelayUnsubscribe,
18
- relayUnsubscribeSchema,
19
- handleRelayChannelJoin,
20
- relayChannelJoinSchema,
21
- handleRelayChannelLeave,
22
- relayChannelLeaveSchema,
23
- handleRelayChannelMessage,
24
- relayChannelMessageSchema,
25
- handleRelayShadowBind,
26
- relayShadowBindSchema,
27
- handleRelayShadowUnbind,
28
- relayShadowUnbindSchema,
29
- handleRelayProposal,
30
- relayProposalSchema,
31
- handleRelayVote,
32
- relayVoteSchema,
33
- handleRelayAdminChannelJoin,
34
- relayAdminChannelJoinSchema,
35
- handleRelayAdminRemoveMember,
36
- relayAdminRemoveMemberSchema,
37
- handleRelayQueryMessages,
38
- relayQueryMessagesSchema,
39
- handleRelaySetModel,
40
- relaySetModelSchema,
41
- } from '../src/tools/index.js';
42
-
43
- /**
44
- * Creates a mock RelayClient with all methods stubbed.
45
- * Only specify the methods you need for each test.
46
- */
47
- function createMockClient(overrides: Partial<Record<keyof RelayClient, ReturnType<typeof vi.fn>>> = {}): RelayClient {
48
- return {
49
- send: vi.fn(),
50
- sendAndWait: vi.fn(),
51
- spawn: vi.fn(),
52
- release: vi.fn(),
53
- getStatus: vi.fn(),
54
- getInbox: vi.fn(),
55
- listAgents: vi.fn(),
56
- listConnectedAgents: vi.fn(),
57
- broadcast: vi.fn(),
58
- subscribe: vi.fn(),
59
- unsubscribe: vi.fn(),
60
- joinChannel: vi.fn(),
61
- leaveChannel: vi.fn(),
62
- sendChannelMessage: vi.fn(),
63
- adminJoinChannel: vi.fn(),
64
- adminRemoveMember: vi.fn(),
65
- bindAsShadow: vi.fn(),
66
- unbindAsShadow: vi.fn(),
67
- createProposal: vi.fn(),
68
- vote: vi.fn(),
69
- removeAgent: vi.fn(),
70
- getHealth: vi.fn(),
71
- getMetrics: vi.fn(),
72
- queryMessages: vi.fn(),
73
- sendLog: vi.fn(),
74
- setWorkerModel: vi.fn(),
75
- ...overrides,
76
- };
77
- }
78
-
79
- describe('relay_send', () => {
80
- let mockClient: RelayClient;
81
-
82
- beforeEach(() => {
83
- vi.clearAllMocks();
84
- mockClient = createMockClient();
85
- });
86
-
87
- it('sends a direct message', async () => {
88
- vi.mocked(mockClient.send).mockResolvedValue(undefined);
89
-
90
- const input = relaySendSchema.parse({
91
- to: 'Alice',
92
- message: 'Hello',
93
- });
94
- const result = await handleRelaySend(mockClient, input);
95
-
96
- expect(result).toBe('Message sent to Alice');
97
- expect(mockClient.send).toHaveBeenCalledWith('Alice', 'Hello', { thread: undefined });
98
- });
99
-
100
- it('sends to a channel', async () => {
101
- vi.mocked(mockClient.send).mockResolvedValue(undefined);
102
-
103
- const input = relaySendSchema.parse({
104
- to: '#general',
105
- message: 'Team update',
106
- });
107
- const result = await handleRelaySend(mockClient, input);
108
-
109
- expect(result).toBe('Message sent to #general');
110
- expect(mockClient.send).toHaveBeenCalledWith('#general', 'Team update', { thread: undefined });
111
- });
112
-
113
- it('awaits response when requested', async () => {
114
- vi.mocked(mockClient.sendAndWait).mockResolvedValue({
115
- ack_id: 'msg-123',
116
- seq: 1,
117
- correlationId: 'corr-456',
118
- response: 'Done!',
119
- responseData: undefined,
120
- });
121
-
122
- const result = await handleRelaySend(mockClient, {
123
- to: 'Worker',
124
- message: 'Process this',
125
- await_response: true,
126
- timeout_ms: 5000,
127
- thread: 'task-123',
128
- });
129
-
130
- expect(result).toBe('Response from Worker: Done!');
131
- expect(mockClient.sendAndWait).toHaveBeenCalledWith('Worker', 'Process this', {
132
- thread: 'task-123',
133
- timeoutMs: 5000,
134
- });
135
- });
136
- });
137
-
138
- describe('relay_inbox', () => {
139
- let mockClient: RelayClient;
140
-
141
- beforeEach(() => {
142
- vi.clearAllMocks();
143
- mockClient = createMockClient();
144
- });
145
-
146
- it('returns no messages message when inbox empty', async () => {
147
- vi.mocked(mockClient.getInbox).mockResolvedValue([]);
148
-
149
- const input = relayInboxSchema.parse({});
150
- const result = await handleRelayInbox(mockClient, input);
151
-
152
- expect(result).toBe('No messages in inbox.');
153
- // After parsing, limit and unread_only have defaults
154
- expect(mockClient.getInbox).toHaveBeenCalledWith({ limit: 10, unread_only: true });
155
- });
156
-
157
- it('formats messages with channel and thread', async () => {
158
- vi.mocked(mockClient.getInbox).mockResolvedValue([
159
- {
160
- id: '123',
161
- from: 'Lead',
162
- content: 'Update',
163
- channel: '#general',
164
- thread: 'thr-1',
165
- },
166
- {
167
- id: '124',
168
- from: 'Worker',
169
- content: 'Done',
170
- },
171
- ]);
172
-
173
- const input = relayInboxSchema.parse({
174
- limit: 5,
175
- unread_only: true,
176
- from: 'Lead',
177
- });
178
- const result = await handleRelayInbox(mockClient, input);
179
-
180
- expect(mockClient.getInbox).toHaveBeenCalledWith({
181
- limit: 5,
182
- unread_only: true,
183
- from: 'Lead',
184
- });
185
- expect(result).toContain('2 message(s):');
186
- expect(result).toContain('[123] From Lead [#general] (thread: thr-1):\nUpdate');
187
- expect(result).toContain('[124] From Worker:\nDone');
188
- });
189
- });
190
-
191
- describe('relay_admin_channel_join', () => {
192
- let mockClient: RelayClient;
193
-
194
- beforeEach(() => {
195
- vi.clearAllMocks();
196
- mockClient = createMockClient();
197
- });
198
-
199
- it('adds member and reports success', async () => {
200
- vi.mocked(mockClient.adminJoinChannel).mockResolvedValue({ success: true });
201
-
202
- const input = relayAdminChannelJoinSchema.parse({
203
- channel: '#ops',
204
- member: 'Auditor',
205
- });
206
- const result = await handleRelayAdminChannelJoin(mockClient, input);
207
-
208
- expect(result).toBe('Added "Auditor" to channel "#ops"');
209
- expect(mockClient.adminJoinChannel).toHaveBeenCalledWith('#ops', 'Auditor');
210
- });
211
-
212
- it('reports error details', async () => {
213
- vi.mocked(mockClient.adminJoinChannel).mockResolvedValue({ success: false, error: 'denied' });
214
-
215
- const input = relayAdminChannelJoinSchema.parse({
216
- channel: '#ops',
217
- member: 'Auditor',
218
- });
219
- const result = await handleRelayAdminChannelJoin(mockClient, input);
220
-
221
- expect(result).toBe('Failed to add member: denied');
222
- });
223
- });
224
-
225
- describe('relay_admin_remove_member', () => {
226
- let mockClient: RelayClient;
227
-
228
- beforeEach(() => {
229
- vi.clearAllMocks();
230
- mockClient = createMockClient();
231
- });
232
-
233
- it('removes member and reports success', async () => {
234
- vi.mocked(mockClient.adminRemoveMember).mockResolvedValue({ success: true });
235
-
236
- const input = relayAdminRemoveMemberSchema.parse({
237
- channel: '#ops',
238
- member: 'Auditor',
239
- });
240
- const result = await handleRelayAdminRemoveMember(mockClient, input);
241
-
242
- expect(result).toBe('Removed "Auditor" from channel "#ops"');
243
- expect(mockClient.adminRemoveMember).toHaveBeenCalledWith('#ops', 'Auditor');
244
- });
245
-
246
- it('reports error details', async () => {
247
- vi.mocked(mockClient.adminRemoveMember).mockResolvedValue({ success: false, error: 'not found' });
248
-
249
- const input = relayAdminRemoveMemberSchema.parse({
250
- channel: '#ops',
251
- member: 'Auditor',
252
- });
253
- const result = await handleRelayAdminRemoveMember(mockClient, input);
254
-
255
- expect(result).toBe('Failed to remove member: not found');
256
- });
257
- });
258
-
259
- describe('relay_query_messages', () => {
260
- let mockClient: RelayClient;
261
-
262
- beforeEach(() => {
263
- vi.clearAllMocks();
264
- mockClient = createMockClient();
265
- });
266
-
267
- it('returns formatted messages with filters applied', async () => {
268
- vi.mocked(mockClient.queryMessages).mockResolvedValue([
269
- {
270
- id: 'm1',
271
- from: 'Alice',
272
- to: 'Bob',
273
- body: 'Hello',
274
- timestamp: 1_700_000_000_000, // 2023-11-14T22:13:20.000Z
275
- thread: 'thread-1',
276
- channel: '#ops',
277
- status: 'delivered',
278
- isBroadcast: false,
279
- replyCount: 2,
280
- data: { foo: 'bar' },
281
- },
282
- {
283
- id: 'm2',
284
- from: 'Bob',
285
- to: 'Alice',
286
- body: 'Ack',
287
- timestamp: 1_700_000_000_500, // 2023-11-14T22:13:20.500Z
288
- },
289
- ]);
290
-
291
- const input = relayQueryMessagesSchema.parse({
292
- limit: 5,
293
- since_ts: 1_699_999_999_000,
294
- from: 'Alice',
295
- thread: 'thread-1',
296
- order: 'asc',
297
- });
298
- const result = await handleRelayQueryMessages(mockClient, input);
299
-
300
- expect(mockClient.queryMessages).toHaveBeenCalledWith({
301
- limit: 5,
302
- sinceTs: 1_699_999_999_000,
303
- from: 'Alice',
304
- to: undefined,
305
- thread: 'thread-1',
306
- order: 'asc',
307
- });
308
- expect(result).toContain('Found 2 message(s):');
309
- expect(result).toContain('[2023-11-14T22:13:20.000Z] Alice -> Bob [thread:thread-1, channel:#ops, status:delivered, replies:2, data]: Hello');
310
- expect(result).toContain('[2023-11-14T22:13:20.500Z] Bob -> Alice: Ack');
311
- });
312
-
313
- it('returns empty message when no matches', async () => {
314
- vi.mocked(mockClient.queryMessages).mockResolvedValue([]);
315
-
316
- const input = relayQueryMessagesSchema.parse({});
317
- const result = await handleRelayQueryMessages(mockClient, input);
318
-
319
- expect(mockClient.queryMessages).toHaveBeenCalledWith({
320
- limit: undefined,
321
- sinceTs: undefined,
322
- from: undefined,
323
- to: undefined,
324
- thread: undefined,
325
- order: undefined,
326
- });
327
- expect(result).toBe('No messages found matching the filters.');
328
- });
329
- });
330
-
331
- describe('relay_who', () => {
332
- let mockClient: RelayClient;
333
-
334
- beforeEach(() => {
335
- vi.clearAllMocks();
336
- mockClient = createMockClient();
337
- });
338
-
339
- it('returns message when no agents online', async () => {
340
- vi.mocked(mockClient.listAgents).mockResolvedValue([]);
341
-
342
- const input = relayWhoSchema.parse({});
343
- const result = await handleRelayWho(mockClient, input);
344
-
345
- expect(result).toBe('No agents online.');
346
- // After parsing, include_idle has a default of true
347
- expect(mockClient.listAgents).toHaveBeenCalledWith({ include_idle: true });
348
- });
349
-
350
- it('lists agents with status and parent info', async () => {
351
- vi.mocked(mockClient.listAgents).mockResolvedValue([
352
- { name: 'Alice', cli: 'claude', idle: false },
353
- { name: 'Bob', cli: 'codex', idle: true },
354
- { name: 'Worker1', cli: 'claude', idle: false, parent: 'Alice' },
355
- ]);
356
-
357
- const input = relayWhoSchema.parse({ include_idle: true, project: 'proj' });
358
- const result = await handleRelayWho(mockClient, input);
359
-
360
- expect(mockClient.listAgents).toHaveBeenCalledWith({ include_idle: true, project: 'proj' });
361
- expect(result).toContain('3 agent(s) online:');
362
- expect(result).toContain('- Alice (claude) - active');
363
- expect(result).toContain('- Bob (codex) - idle');
364
- expect(result).toContain('- Worker1 (claude) - active [worker of: Alice]');
365
- });
366
- });
367
-
368
- describe('relay_spawn', () => {
369
- let mockClient: RelayClient;
370
-
371
- beforeEach(() => {
372
- vi.clearAllMocks();
373
- mockClient = createMockClient();
374
- });
375
-
376
- it('returns success message when worker spawns', async () => {
377
- vi.mocked(mockClient.spawn).mockResolvedValue({ success: true });
378
-
379
- const result = await handleRelaySpawn(mockClient, {
380
- name: 'TestRunner',
381
- cli: 'claude',
382
- task: 'Run tests',
383
- model: 'claude-3',
384
- cwd: '/tmp',
385
- });
386
-
387
- expect(result).toContain('spawned successfully');
388
- expect(mockClient.spawn).toHaveBeenCalledWith({
389
- name: 'TestRunner',
390
- cli: 'claude',
391
- task: 'Run tests',
392
- model: 'claude-3',
393
- cwd: '/tmp',
394
- });
395
- });
396
-
397
- it('returns failure message when spawn fails', async () => {
398
- vi.mocked(mockClient.spawn).mockResolvedValue({ success: false, error: 'Busy' });
399
-
400
- const result = await handleRelaySpawn(mockClient, {
401
- name: 'Worker',
402
- cli: 'codex',
403
- task: 'Do thing',
404
- });
405
-
406
- expect(result).toContain('Failed to spawn worker');
407
- expect(result).toContain('Busy');
408
- });
409
- });
410
-
411
- describe('relay_release', () => {
412
- let mockClient: RelayClient;
413
-
414
- beforeEach(() => {
415
- vi.clearAllMocks();
416
- mockClient = createMockClient();
417
- });
418
-
419
- it('returns success message when worker released', async () => {
420
- vi.mocked(mockClient.release).mockResolvedValue({ success: true });
421
-
422
- const result = await handleRelayRelease(mockClient, {
423
- name: 'Worker1',
424
- reason: 'done',
425
- });
426
-
427
- expect(result).toBe('Worker "Worker1" released.');
428
- expect(mockClient.release).toHaveBeenCalledWith('Worker1', 'done');
429
- });
430
-
431
- it('returns failure message when release fails', async () => {
432
- vi.mocked(mockClient.release).mockResolvedValue({ success: false, error: 'not found' });
433
-
434
- const result = await handleRelayRelease(mockClient, {
435
- name: 'Worker2',
436
- });
437
-
438
- expect(result).toBe('Failed to release worker: not found');
439
- });
440
- });
441
-
442
- describe('relay_status', () => {
443
- let mockClient: RelayClient;
444
-
445
- beforeEach(() => {
446
- vi.clearAllMocks();
447
- mockClient = createMockClient();
448
- });
449
-
450
- it('formats status output', async () => {
451
- vi.mocked(mockClient.getStatus).mockResolvedValue({
452
- connected: true,
453
- agentName: 'AgentA',
454
- project: 'proj',
455
- socketPath: '/tmp/socket',
456
- daemonVersion: '0.1.0',
457
- uptime: '1h',
458
- });
459
-
460
- const result = await handleRelayStatus(mockClient, {});
461
-
462
- expect(result).toContain('Connected: Yes');
463
- expect(result).toContain('Agent Name: AgentA');
464
- expect(result).toContain('Project: proj');
465
- expect(result).toContain('Socket: /tmp/socket');
466
- expect(result).toContain('Daemon Version: 0.1.0');
467
- expect(result).toContain('Uptime: 1h');
468
- });
469
-
470
- it('handles disconnected status', async () => {
471
- vi.mocked(mockClient.getStatus).mockResolvedValue({
472
- connected: false,
473
- agentName: 'AgentA',
474
- project: 'proj',
475
- socketPath: '/tmp/socket',
476
- });
477
-
478
- const result = await handleRelayStatus(mockClient, {});
479
-
480
- expect(result).toContain('Connected: No');
481
- });
482
- });
483
-
484
- // ============================================================================
485
- // Multi-Agent Scenarios (SDK parity tests)
486
- // ============================================================================
487
-
488
- describe('multi-agent scenarios', () => {
489
- let mockClient: RelayClient;
490
-
491
- beforeEach(() => {
492
- vi.clearAllMocks();
493
- mockClient = createMockClient();
494
- });
495
-
496
- it('spawns multiple workers sequentially', async () => {
497
- vi.mocked(mockClient.spawn).mockResolvedValue({ success: true });
498
-
499
- // Spawn Worker1
500
- const result1 = await handleRelaySpawn(mockClient, {
501
- name: 'Worker1',
502
- cli: 'claude',
503
- task: 'Task 1',
504
- });
505
- expect(result1).toContain('spawned successfully');
506
-
507
- // Spawn Worker2
508
- const result2 = await handleRelaySpawn(mockClient, {
509
- name: 'Worker2',
510
- cli: 'claude',
511
- task: 'Task 2',
512
- });
513
- expect(result2).toContain('spawned successfully');
514
-
515
- // Spawn Worker3
516
- const result3 = await handleRelaySpawn(mockClient, {
517
- name: 'Worker3',
518
- cli: 'claude',
519
- task: 'Task 3',
520
- });
521
- expect(result3).toContain('spawned successfully');
522
-
523
- expect(mockClient.spawn).toHaveBeenCalledTimes(3);
524
- });
525
-
526
- it('lists multiple agents with different statuses', async () => {
527
- vi.mocked(mockClient.listAgents).mockResolvedValue([
528
- { name: 'Orchestrator', cli: 'sdk', idle: false },
529
- { name: 'Worker1', cli: 'claude', idle: false, parent: 'Orchestrator' },
530
- { name: 'Worker2', cli: 'claude', idle: true, parent: 'Orchestrator' },
531
- { name: 'Worker3', cli: 'codex', idle: false, parent: 'Orchestrator' },
532
- ]);
533
-
534
- const input = relayWhoSchema.parse({ include_idle: true });
535
- const result = await handleRelayWho(mockClient, input);
536
-
537
- expect(result).toContain('4 agent(s) online:');
538
- expect(result).toContain('Orchestrator');
539
- expect(result).toContain('Worker1');
540
- expect(result).toContain('Worker2');
541
- expect(result).toContain('Worker3');
542
- });
543
-
544
- it('releases multiple workers', async () => {
545
- vi.mocked(mockClient.release)
546
- .mockResolvedValueOnce({ success: true })
547
- .mockResolvedValueOnce({ success: true })
548
- .mockResolvedValueOnce({ success: false, error: 'already exited' });
549
-
550
- const result1 = await handleRelayRelease(mockClient, { name: 'Worker1' });
551
- expect(result1).toBe('Worker "Worker1" released.');
552
-
553
- const result2 = await handleRelayRelease(mockClient, { name: 'Worker2' });
554
- expect(result2).toBe('Worker "Worker2" released.');
555
-
556
- const result3 = await handleRelayRelease(mockClient, { name: 'Worker3' });
557
- expect(result3).toBe('Failed to release worker: already exited');
558
-
559
- expect(mockClient.release).toHaveBeenCalledTimes(3);
560
- });
561
-
562
- it('handles release of non-existent agent gracefully', async () => {
563
- vi.mocked(mockClient.release).mockResolvedValue({
564
- success: false,
565
- error: 'Agent not found: NonExistentAgent',
566
- });
567
-
568
- const result = await handleRelayRelease(mockClient, {
569
- name: 'NonExistentAgent',
570
- });
571
-
572
- expect(result).toBe('Failed to release worker: Agent not found: NonExistentAgent');
573
- });
574
- });
575
-
576
- // ============================================================================
577
- // Message Threading Scenarios
578
- // ============================================================================
579
-
580
- describe('message threading', () => {
581
- let mockClient: RelayClient;
582
-
583
- beforeEach(() => {
584
- vi.clearAllMocks();
585
- mockClient = createMockClient();
586
- });
587
-
588
- it('sends message with thread ID', async () => {
589
- vi.mocked(mockClient.send).mockResolvedValue(undefined);
590
-
591
- const input = relaySendSchema.parse({
592
- to: 'Worker',
593
- message: 'Continue task',
594
- thread: 'task-thread-123',
595
- });
596
- await handleRelaySend(mockClient, input);
597
-
598
- expect(mockClient.send).toHaveBeenCalledWith('Worker', 'Continue task', {
599
- thread: 'task-thread-123',
600
- });
601
- });
602
-
603
- it('filters inbox by thread', async () => {
604
- vi.mocked(mockClient.getInbox).mockResolvedValue([
605
- { id: '1', from: 'Worker', content: 'Done step 1', thread: 'task-123' },
606
- { id: '2', from: 'Worker', content: 'Done step 2', thread: 'task-123' },
607
- ]);
608
-
609
- const input = relayInboxSchema.parse({ limit: 10 });
610
- const result = await handleRelayInbox(mockClient, input);
611
-
612
- expect(result).toContain('2 message(s):');
613
- expect(result).toContain('(thread: task-123)');
614
- });
615
- });
616
-
617
- // ============================================================================
618
- // Broadcast-like Scenarios (send to multiple agents)
619
- // ============================================================================
620
-
621
- describe('broadcast scenarios', () => {
622
- let mockClient: RelayClient;
623
-
624
- beforeEach(() => {
625
- vi.clearAllMocks();
626
- mockClient = createMockClient();
627
- });
628
-
629
- it('sends messages to multiple agents', async () => {
630
- vi.mocked(mockClient.send).mockResolvedValue(undefined);
631
- const agents = ['Alice', 'Bob', 'Charlie'];
632
-
633
- for (const agent of agents) {
634
- const input = relaySendSchema.parse({
635
- to: agent,
636
- message: 'Broadcast message to all',
637
- });
638
- await handleRelaySend(mockClient, input);
639
- }
640
-
641
- expect(mockClient.send).toHaveBeenCalledTimes(3);
642
- expect(mockClient.send).toHaveBeenCalledWith('Alice', 'Broadcast message to all', { thread: undefined });
643
- expect(mockClient.send).toHaveBeenCalledWith('Bob', 'Broadcast message to all', { thread: undefined });
644
- expect(mockClient.send).toHaveBeenCalledWith('Charlie', 'Broadcast message to all', { thread: undefined });
645
- });
646
-
647
- it('receives messages from multiple senders', async () => {
648
- vi.mocked(mockClient.getInbox).mockResolvedValue([
649
- { id: '1', from: 'Alice', content: 'Hello from Alice' },
650
- { id: '2', from: 'Bob', content: 'Hello from Bob' },
651
- { id: '3', from: 'Charlie', content: 'Hello from Charlie' },
652
- ]);
653
-
654
- const input = relayInboxSchema.parse({ limit: 10 });
655
- const result = await handleRelayInbox(mockClient, input);
656
-
657
- expect(result).toContain('3 message(s):');
658
- expect(result).toContain('From Alice');
659
- expect(result).toContain('From Bob');
660
- expect(result).toContain('From Charlie');
661
- });
662
- });
663
-
664
- // ============================================================================
665
- // Negotiation-like Workflow Scenarios
666
- // ============================================================================
667
-
668
- describe('negotiation workflow', () => {
669
- let mockClient: RelayClient;
670
-
671
- beforeEach(() => {
672
- vi.clearAllMocks();
673
- mockClient = createMockClient();
674
- });
675
-
676
- it('coordinates multi-round communication', async () => {
677
- vi.mocked(mockClient.spawn).mockResolvedValue({ success: true });
678
- vi.mocked(mockClient.send).mockResolvedValue(undefined);
679
- vi.mocked(mockClient.sendAndWait)
680
- .mockResolvedValueOnce({ from: 'Frontend', content: 'Frontend priorities: Design System, Accessibility' })
681
- .mockResolvedValueOnce({ from: 'Backend', content: 'Backend priorities: Microservices, Caching' })
682
- .mockResolvedValueOnce({ from: 'Infra', content: 'Infra priorities: Kubernetes, Multi-Region' });
683
-
684
- // Spawn agents
685
- const teams = ['Frontend', 'Backend', 'Infra'];
686
- for (const team of teams) {
687
- await handleRelaySpawn(mockClient, {
688
- name: team,
689
- cli: 'claude',
690
- task: `You are the ${team} team lead`,
691
- });
692
- }
693
- expect(mockClient.spawn).toHaveBeenCalledTimes(3);
694
-
695
- // Request introductions (with await_response)
696
- for (const team of teams) {
697
- await handleRelaySend(mockClient, {
698
- to: team,
699
- message: 'Please introduce yourself',
700
- await_response: true,
701
- timeout_ms: 30000,
702
- });
703
- }
704
- expect(mockClient.sendAndWait).toHaveBeenCalledTimes(3);
705
- });
706
-
707
- it('handles voting responses', async () => {
708
- vi.mocked(mockClient.getInbox).mockResolvedValue([
709
- { id: '1', from: 'Frontend', content: 'I VOTE: Frontend=$35000, Backend=$35000, Infra=$30000' },
710
- { id: '2', from: 'Backend', content: 'I VOTE: Frontend=$30000, Backend=$40000, Infra=$30000' },
711
- { id: '3', from: 'Infra', content: 'I VOTE: Frontend=$33000, Backend=$35000, Infra=$32000' },
712
- ]);
713
-
714
- const input = relayInboxSchema.parse({ limit: 10 });
715
- const result = await handleRelayInbox(mockClient, input);
716
-
717
- expect(result).toContain('3 message(s):');
718
- expect(result).toContain('I VOTE:');
719
- expect(result).toContain('Frontend');
720
- expect(result).toContain('Backend');
721
- expect(result).toContain('Infra');
722
- });
723
- });
724
-
725
- // ============================================================================
726
- // Broadcast Tool Tests
727
- // ============================================================================
728
-
729
- describe('relay_broadcast', () => {
730
- let mockClient: RelayClient;
731
-
732
- beforeEach(() => {
733
- vi.clearAllMocks();
734
- mockClient = createMockClient();
735
- });
736
-
737
- it('broadcasts a message to all agents', async () => {
738
- vi.mocked(mockClient.broadcast).mockResolvedValue(undefined);
739
-
740
- const input = relayBroadcastSchema.parse({
741
- message: 'Hello everyone!',
742
- });
743
- const result = await handleRelayBroadcast(mockClient, input);
744
-
745
- expect(result).toBe('Message broadcast to all agents');
746
- expect(mockClient.broadcast).toHaveBeenCalledWith('Hello everyone!', { kind: undefined });
747
- });
748
-
749
- it('broadcasts with message kind', async () => {
750
- vi.mocked(mockClient.broadcast).mockResolvedValue(undefined);
751
-
752
- const input = relayBroadcastSchema.parse({
753
- message: 'System update',
754
- kind: 'action',
755
- });
756
- const result = await handleRelayBroadcast(mockClient, input);
757
-
758
- expect(result).toBe('Message broadcast to all agents');
759
- expect(mockClient.broadcast).toHaveBeenCalledWith('System update', { kind: 'action' });
760
- });
761
-
762
- it('supports different message kinds', async () => {
763
- vi.mocked(mockClient.broadcast).mockResolvedValue(undefined);
764
-
765
- const kinds = ['message', 'action', 'state', 'thinking'] as const;
766
- for (const kind of kinds) {
767
- const input = relayBroadcastSchema.parse({
768
- message: `Test ${kind}`,
769
- kind,
770
- });
771
- await handleRelayBroadcast(mockClient, input);
772
- }
773
-
774
- expect(mockClient.broadcast).toHaveBeenCalledTimes(4);
775
- });
776
- });
777
-
778
- // ============================================================================
779
- // Subscribe/Unsubscribe Tool Tests
780
- // ============================================================================
781
-
782
- describe('relay_subscribe', () => {
783
- let mockClient: RelayClient;
784
-
785
- beforeEach(() => {
786
- vi.clearAllMocks();
787
- mockClient = createMockClient();
788
- });
789
-
790
- it('subscribes to a topic', async () => {
791
- vi.mocked(mockClient.subscribe).mockResolvedValue({ success: true });
792
-
793
- const input = relaySubscribeSchema.parse({
794
- topic: 'updates',
795
- });
796
- const result = await handleRelaySubscribe(mockClient, input);
797
-
798
- expect(result).toBe('Subscribed to topic "updates"');
799
- expect(mockClient.subscribe).toHaveBeenCalledWith('updates');
800
- });
801
-
802
- it('returns error when subscription fails', async () => {
803
- vi.mocked(mockClient.subscribe).mockResolvedValue({
804
- success: false,
805
- error: 'Topic does not exist',
806
- });
807
-
808
- const input = relaySubscribeSchema.parse({
809
- topic: 'nonexistent',
810
- });
811
- const result = await handleRelaySubscribe(mockClient, input);
812
-
813
- expect(result).toBe('Failed to subscribe: Topic does not exist');
814
- });
815
- });
816
-
817
- describe('relay_unsubscribe', () => {
818
- let mockClient: RelayClient;
819
-
820
- beforeEach(() => {
821
- vi.clearAllMocks();
822
- mockClient = createMockClient();
823
- });
824
-
825
- it('unsubscribes from a topic', async () => {
826
- vi.mocked(mockClient.unsubscribe).mockResolvedValue({ success: true });
827
-
828
- const input = relayUnsubscribeSchema.parse({
829
- topic: 'updates',
830
- });
831
- const result = await handleRelayUnsubscribe(mockClient, input);
832
-
833
- expect(result).toBe('Unsubscribed from topic "updates"');
834
- expect(mockClient.unsubscribe).toHaveBeenCalledWith('updates');
835
- });
836
-
837
- it('returns error when unsubscribe fails', async () => {
838
- vi.mocked(mockClient.unsubscribe).mockResolvedValue({
839
- success: false,
840
- error: 'Not subscribed to topic',
841
- });
842
-
843
- const input = relayUnsubscribeSchema.parse({
844
- topic: 'random',
845
- });
846
- const result = await handleRelayUnsubscribe(mockClient, input);
847
-
848
- expect(result).toBe('Failed to unsubscribe: Not subscribed to topic');
849
- });
850
- });
851
-
852
- // ============================================================================
853
- // Channel Tool Tests
854
- // ============================================================================
855
-
856
- describe('relay_channel_join', () => {
857
- let mockClient: RelayClient;
858
-
859
- beforeEach(() => {
860
- vi.clearAllMocks();
861
- mockClient = createMockClient();
862
- });
863
-
864
- it('joins a channel', async () => {
865
- vi.mocked(mockClient.joinChannel).mockResolvedValue({ success: true });
866
-
867
- const input = relayChannelJoinSchema.parse({
868
- channel: '#general',
869
- });
870
- const result = await handleRelayChannelJoin(mockClient, input);
871
-
872
- expect(result).toBe('Joined channel "#general"');
873
- expect(mockClient.joinChannel).toHaveBeenCalledWith('#general', undefined);
874
- });
875
-
876
- it('joins a channel with display name', async () => {
877
- vi.mocked(mockClient.joinChannel).mockResolvedValue({ success: true });
878
-
879
- const input = relayChannelJoinSchema.parse({
880
- channel: '#dev-team',
881
- display_name: 'Alice (Lead)',
882
- });
883
- const result = await handleRelayChannelJoin(mockClient, input);
884
-
885
- expect(result).toBe('Joined channel "#dev-team"');
886
- expect(mockClient.joinChannel).toHaveBeenCalledWith('#dev-team', 'Alice (Lead)');
887
- });
888
-
889
- it('returns error when join fails', async () => {
890
- vi.mocked(mockClient.joinChannel).mockResolvedValue({
891
- success: false,
892
- error: 'Channel is private',
893
- });
894
-
895
- const input = relayChannelJoinSchema.parse({
896
- channel: '#secret',
897
- });
898
- const result = await handleRelayChannelJoin(mockClient, input);
899
-
900
- expect(result).toBe('Failed to join channel: Channel is private');
901
- });
902
- });
903
-
904
- describe('relay_channel_leave', () => {
905
- let mockClient: RelayClient;
906
-
907
- beforeEach(() => {
908
- vi.clearAllMocks();
909
- mockClient = createMockClient();
910
- });
911
-
912
- it('leaves a channel', async () => {
913
- vi.mocked(mockClient.leaveChannel).mockResolvedValue({ success: true });
914
-
915
- const input = relayChannelLeaveSchema.parse({
916
- channel: '#general',
917
- });
918
- const result = await handleRelayChannelLeave(mockClient, input);
919
-
920
- expect(result).toBe('Left channel "#general"');
921
- expect(mockClient.leaveChannel).toHaveBeenCalledWith('#general', undefined);
922
- });
923
-
924
- it('leaves a channel with reason', async () => {
925
- vi.mocked(mockClient.leaveChannel).mockResolvedValue({ success: true });
926
-
927
- const input = relayChannelLeaveSchema.parse({
928
- channel: '#dev-team',
929
- reason: 'Task completed',
930
- });
931
- const result = await handleRelayChannelLeave(mockClient, input);
932
-
933
- expect(result).toBe('Left channel "#dev-team"');
934
- expect(mockClient.leaveChannel).toHaveBeenCalledWith('#dev-team', 'Task completed');
935
- });
936
-
937
- it('returns error when leave fails', async () => {
938
- vi.mocked(mockClient.leaveChannel).mockResolvedValue({
939
- success: false,
940
- error: 'Not a member of channel',
941
- });
942
-
943
- const input = relayChannelLeaveSchema.parse({
944
- channel: '#random',
945
- });
946
- const result = await handleRelayChannelLeave(mockClient, input);
947
-
948
- expect(result).toBe('Failed to leave channel: Not a member of channel');
949
- });
950
- });
951
-
952
- describe('relay_channel_message', () => {
953
- let mockClient: RelayClient;
954
-
955
- beforeEach(() => {
956
- vi.clearAllMocks();
957
- mockClient = createMockClient();
958
- });
959
-
960
- it('sends a message to a channel', async () => {
961
- vi.mocked(mockClient.sendChannelMessage).mockResolvedValue(undefined);
962
-
963
- const input = relayChannelMessageSchema.parse({
964
- channel: '#general',
965
- message: 'Hello channel!',
966
- });
967
- const result = await handleRelayChannelMessage(mockClient, input);
968
-
969
- expect(result).toBe('Message sent to channel "#general"');
970
- expect(mockClient.sendChannelMessage).toHaveBeenCalledWith('#general', 'Hello channel!', { thread: undefined });
971
- });
972
-
973
- it('sends a threaded message to a channel', async () => {
974
- vi.mocked(mockClient.sendChannelMessage).mockResolvedValue(undefined);
975
-
976
- const input = relayChannelMessageSchema.parse({
977
- channel: '#dev-team',
978
- message: 'Follow-up on this',
979
- thread: 'thread-123',
980
- });
981
- const result = await handleRelayChannelMessage(mockClient, input);
982
-
983
- expect(result).toBe('Message sent to channel "#dev-team"');
984
- expect(mockClient.sendChannelMessage).toHaveBeenCalledWith('#dev-team', 'Follow-up on this', { thread: 'thread-123' });
985
- });
986
- });
987
-
988
- // ============================================================================
989
- // Shadow Agent Tool Tests
990
- // ============================================================================
991
-
992
- describe('relay_shadow_bind', () => {
993
- let mockClient: RelayClient;
994
-
995
- beforeEach(() => {
996
- vi.clearAllMocks();
997
- mockClient = createMockClient();
998
- });
999
-
1000
- it('binds as a shadow agent', async () => {
1001
- vi.mocked(mockClient.bindAsShadow).mockResolvedValue({ success: true });
1002
-
1003
- const input = relayShadowBindSchema.parse({
1004
- primary_agent: 'Alice',
1005
- });
1006
- const result = await handleRelayShadowBind(mockClient, input);
1007
-
1008
- expect(result).toBe('Now shadowing agent "Alice"');
1009
- expect(mockClient.bindAsShadow).toHaveBeenCalledWith('Alice', { speakOn: undefined });
1010
- });
1011
-
1012
- it('binds with speak_on events', async () => {
1013
- vi.mocked(mockClient.bindAsShadow).mockResolvedValue({ success: true });
1014
-
1015
- const input = relayShadowBindSchema.parse({
1016
- primary_agent: 'Alice',
1017
- speak_on: ['SESSION_END', 'CODE_WRITTEN'],
1018
- });
1019
- const result = await handleRelayShadowBind(mockClient, input);
1020
-
1021
- expect(result).toBe('Now shadowing agent "Alice"');
1022
- expect(mockClient.bindAsShadow).toHaveBeenCalledWith('Alice', {
1023
- speakOn: ['SESSION_END', 'CODE_WRITTEN'],
1024
- });
1025
- });
1026
-
1027
- it('returns error when bind fails', async () => {
1028
- vi.mocked(mockClient.bindAsShadow).mockResolvedValue({
1029
- success: false,
1030
- error: 'Agent not found',
1031
- });
1032
-
1033
- const input = relayShadowBindSchema.parse({
1034
- primary_agent: 'Unknown',
1035
- });
1036
- const result = await handleRelayShadowBind(mockClient, input);
1037
-
1038
- expect(result).toBe('Failed to bind as shadow: Agent not found');
1039
- });
1040
- });
1041
-
1042
- describe('relay_shadow_unbind', () => {
1043
- let mockClient: RelayClient;
1044
-
1045
- beforeEach(() => {
1046
- vi.clearAllMocks();
1047
- mockClient = createMockClient();
1048
- });
1049
-
1050
- it('unbinds from shadowing', async () => {
1051
- vi.mocked(mockClient.unbindAsShadow).mockResolvedValue({ success: true });
1052
-
1053
- const input = relayShadowUnbindSchema.parse({
1054
- primary_agent: 'Alice',
1055
- });
1056
- const result = await handleRelayShadowUnbind(mockClient, input);
1057
-
1058
- expect(result).toBe('Stopped shadowing agent "Alice"');
1059
- expect(mockClient.unbindAsShadow).toHaveBeenCalledWith('Alice');
1060
- });
1061
-
1062
- it('returns error when unbind fails', async () => {
1063
- vi.mocked(mockClient.unbindAsShadow).mockResolvedValue({
1064
- success: false,
1065
- error: 'Not shadowing this agent',
1066
- });
1067
-
1068
- const input = relayShadowUnbindSchema.parse({
1069
- primary_agent: 'Bob',
1070
- });
1071
- const result = await handleRelayShadowUnbind(mockClient, input);
1072
-
1073
- expect(result).toBe('Failed to unbind from shadow: Not shadowing this agent');
1074
- });
1075
- });
1076
-
1077
- // ============================================================================
1078
- // Consensus/Voting Tool Tests
1079
- // ============================================================================
1080
-
1081
- describe('relay_proposal', () => {
1082
- let mockClient: RelayClient;
1083
-
1084
- beforeEach(() => {
1085
- vi.clearAllMocks();
1086
- mockClient = createMockClient();
1087
- });
1088
-
1089
- it('creates a proposal', async () => {
1090
- vi.mocked(mockClient.createProposal).mockResolvedValue({ success: true });
1091
-
1092
- const input = relayProposalSchema.parse({
1093
- id: 'budget-2024',
1094
- description: 'Vote on Q1 budget allocation',
1095
- options: ['Option A: $50k', 'Option B: $75k', 'Option C: $100k'],
1096
- });
1097
- const result = await handleRelayProposal(mockClient, input);
1098
-
1099
- expect(result).toBe('Proposal "budget-2024" created successfully. Options: Option A: $50k, Option B: $75k, Option C: $100k');
1100
- expect(mockClient.createProposal).toHaveBeenCalledWith({
1101
- id: 'budget-2024',
1102
- description: 'Vote on Q1 budget allocation',
1103
- options: ['Option A: $50k', 'Option B: $75k', 'Option C: $100k'],
1104
- votingMethod: undefined,
1105
- deadline: undefined,
1106
- });
1107
- });
1108
-
1109
- it('creates a proposal with voting method', async () => {
1110
- vi.mocked(mockClient.createProposal).mockResolvedValue({ success: true });
1111
-
1112
- const input = relayProposalSchema.parse({
1113
- id: 'critical-decision',
1114
- description: 'Requires unanimous agreement',
1115
- options: ['approve', 'reject'],
1116
- voting_method: 'unanimous',
1117
- });
1118
- const result = await handleRelayProposal(mockClient, input);
1119
-
1120
- expect(result).toContain('created successfully');
1121
- expect(mockClient.createProposal).toHaveBeenCalledWith({
1122
- id: 'critical-decision',
1123
- description: 'Requires unanimous agreement',
1124
- options: ['approve', 'reject'],
1125
- votingMethod: 'unanimous',
1126
- deadline: undefined,
1127
- });
1128
- });
1129
-
1130
- it('creates a proposal with deadline', async () => {
1131
- vi.mocked(mockClient.createProposal).mockResolvedValue({ success: true });
1132
- const deadline = Date.now() + 3600000; // 1 hour from now
1133
-
1134
- const input = relayProposalSchema.parse({
1135
- id: 'timed-vote',
1136
- description: 'Vote must be completed within 1 hour',
1137
- options: ['yes', 'no'],
1138
- deadline,
1139
- });
1140
- const result = await handleRelayProposal(mockClient, input);
1141
-
1142
- expect(result).toContain('created successfully');
1143
- expect(mockClient.createProposal).toHaveBeenCalledWith({
1144
- id: 'timed-vote',
1145
- description: 'Vote must be completed within 1 hour',
1146
- options: ['yes', 'no'],
1147
- votingMethod: undefined,
1148
- deadline,
1149
- });
1150
- });
1151
-
1152
- it('returns error when proposal creation fails', async () => {
1153
- vi.mocked(mockClient.createProposal).mockResolvedValue({
1154
- success: false,
1155
- error: 'Proposal ID already exists',
1156
- });
1157
-
1158
- const input = relayProposalSchema.parse({
1159
- id: 'duplicate',
1160
- description: 'Test',
1161
- options: ['a', 'b'],
1162
- });
1163
- const result = await handleRelayProposal(mockClient, input);
1164
-
1165
- expect(result).toBe('Failed to create proposal: Proposal ID already exists');
1166
- });
1167
- });
1168
-
1169
- describe('relay_vote', () => {
1170
- let mockClient: RelayClient;
1171
-
1172
- beforeEach(() => {
1173
- vi.clearAllMocks();
1174
- mockClient = createMockClient();
1175
- });
1176
-
1177
- it('casts a vote on a proposal', async () => {
1178
- vi.mocked(mockClient.vote).mockResolvedValue({ success: true });
1179
-
1180
- const input = relayVoteSchema.parse({
1181
- proposal_id: 'budget-2024',
1182
- vote: 'Option B: $75k',
1183
- });
1184
- const result = await handleRelayVote(mockClient, input);
1185
-
1186
- expect(result).toBe('Vote "Option B: $75k" cast on proposal "budget-2024"');
1187
- expect(mockClient.vote).toHaveBeenCalledWith({
1188
- proposalId: 'budget-2024',
1189
- vote: 'Option B: $75k',
1190
- reason: undefined,
1191
- });
1192
- });
1193
-
1194
- it('casts a vote with reason', async () => {
1195
- vi.mocked(mockClient.vote).mockResolvedValue({ success: true });
1196
-
1197
- const input = relayVoteSchema.parse({
1198
- proposal_id: 'critical-decision',
1199
- vote: 'approve',
1200
- reason: 'This aligns with our Q2 goals',
1201
- });
1202
- const result = await handleRelayVote(mockClient, input);
1203
-
1204
- expect(result).toBe('Vote "approve" cast on proposal "critical-decision"');
1205
- expect(mockClient.vote).toHaveBeenCalledWith({
1206
- proposalId: 'critical-decision',
1207
- vote: 'approve',
1208
- reason: 'This aligns with our Q2 goals',
1209
- });
1210
- });
1211
-
1212
- it('returns error when vote fails', async () => {
1213
- vi.mocked(mockClient.vote).mockResolvedValue({
1214
- success: false,
1215
- error: 'Voting period has ended',
1216
- });
1217
-
1218
- const input = relayVoteSchema.parse({
1219
- proposal_id: 'expired-vote',
1220
- vote: 'yes',
1221
- });
1222
- const result = await handleRelayVote(mockClient, input);
1223
-
1224
- expect(result).toBe('Failed to vote: Voting period has ended');
1225
- });
1226
-
1227
- it('supports standard vote options', async () => {
1228
- vi.mocked(mockClient.vote).mockResolvedValue({ success: true });
1229
-
1230
- const standardVotes = ['approve', 'reject', 'abstain'];
1231
- for (const voteOption of standardVotes) {
1232
- const input = relayVoteSchema.parse({
1233
- proposal_id: 'test-proposal',
1234
- vote: voteOption,
1235
- });
1236
- await handleRelayVote(mockClient, input);
1237
- }
1238
-
1239
- expect(mockClient.vote).toHaveBeenCalledTimes(3);
1240
- });
1241
- });
1242
-
1243
- // ============================================================================
1244
- // Complete SDK/MCP Parity Integration Tests
1245
- // ============================================================================
1246
-
1247
- describe('SDK/MCP parity scenarios', () => {
1248
- let mockClient: RelayClient;
1249
-
1250
- beforeEach(() => {
1251
- vi.clearAllMocks();
1252
- mockClient = createMockClient();
1253
- });
1254
-
1255
- it('full orchestration workflow with all tool types', async () => {
1256
- // Setup mocks
1257
- vi.mocked(mockClient.spawn).mockResolvedValue({ success: true });
1258
- vi.mocked(mockClient.joinChannel).mockResolvedValue({ success: true });
1259
- vi.mocked(mockClient.sendChannelMessage).mockResolvedValue(undefined);
1260
- vi.mocked(mockClient.broadcast).mockResolvedValue(undefined);
1261
- vi.mocked(mockClient.createProposal).mockResolvedValue({ success: true });
1262
- vi.mocked(mockClient.vote).mockResolvedValue({ success: true });
1263
- vi.mocked(mockClient.leaveChannel).mockResolvedValue({ success: true });
1264
- vi.mocked(mockClient.release).mockResolvedValue({ success: true });
1265
-
1266
- // 1. Spawn workers
1267
- await handleRelaySpawn(mockClient, { name: 'Worker1', cli: 'claude', task: 'Frontend' });
1268
- await handleRelaySpawn(mockClient, { name: 'Worker2', cli: 'claude', task: 'Backend' });
1269
- expect(mockClient.spawn).toHaveBeenCalledTimes(2);
1270
-
1271
- // 2. Join a coordination channel
1272
- await handleRelayChannelJoin(mockClient, { channel: '#coordination' });
1273
- expect(mockClient.joinChannel).toHaveBeenCalledWith('#coordination', undefined);
1274
-
1275
- // 3. Broadcast kickoff message
1276
- await handleRelayBroadcast(mockClient, { message: 'Project started!' });
1277
- expect(mockClient.broadcast).toHaveBeenCalled();
1278
-
1279
- // 4. Create a proposal for decision making
1280
- await handleRelayProposal(mockClient, {
1281
- id: 'arch-decision',
1282
- description: 'Choose architecture',
1283
- options: ['Monolith', 'Microservices'],
1284
- });
1285
- expect(mockClient.createProposal).toHaveBeenCalled();
1286
-
1287
- // 5. Cast votes
1288
- await handleRelayVote(mockClient, { proposal_id: 'arch-decision', vote: 'Microservices' });
1289
- expect(mockClient.vote).toHaveBeenCalled();
1290
-
1291
- // 6. Send channel update
1292
- await handleRelayChannelMessage(mockClient, { channel: '#coordination', message: 'Decision made!' });
1293
- expect(mockClient.sendChannelMessage).toHaveBeenCalled();
1294
-
1295
- // 7. Cleanup - leave channel and release workers
1296
- await handleRelayChannelLeave(mockClient, { channel: '#coordination' });
1297
- await handleRelayRelease(mockClient, { name: 'Worker1' });
1298
- await handleRelayRelease(mockClient, { name: 'Worker2' });
1299
- expect(mockClient.release).toHaveBeenCalledTimes(2);
1300
- });
1301
-
1302
- it('shadow agent monitoring workflow', async () => {
1303
- vi.mocked(mockClient.spawn).mockResolvedValue({ success: true });
1304
- vi.mocked(mockClient.bindAsShadow).mockResolvedValue({ success: true });
1305
- vi.mocked(mockClient.send).mockResolvedValue(undefined);
1306
- vi.mocked(mockClient.unbindAsShadow).mockResolvedValue({ success: true });
1307
- vi.mocked(mockClient.release).mockResolvedValue({ success: true });
1308
-
1309
- // 1. Spawn primary worker
1310
- await handleRelaySpawn(mockClient, { name: 'PrimaryWorker', cli: 'claude', task: 'Main task' });
1311
-
1312
- // 2. Spawn monitor/shadow
1313
- await handleRelaySpawn(mockClient, { name: 'Monitor', cli: 'claude', task: 'Monitor primary' });
1314
-
1315
- // 3. Bind monitor as shadow
1316
- await handleRelayShadowBind(mockClient, {
1317
- primary_agent: 'PrimaryWorker',
1318
- speak_on: ['SESSION_END', 'CODE_WRITTEN'],
1319
- });
1320
- expect(mockClient.bindAsShadow).toHaveBeenCalledWith('PrimaryWorker', {
1321
- speakOn: ['SESSION_END', 'CODE_WRITTEN'],
1322
- });
1323
-
1324
- // 4. Primary does work, shadow observes (simulated by sending message)
1325
- await handleRelaySend(mockClient, { to: 'PrimaryWorker', message: 'Do the task' });
1326
-
1327
- // 5. Unbind shadow when done
1328
- await handleRelayShadowUnbind(mockClient, { primary_agent: 'PrimaryWorker' });
1329
- expect(mockClient.unbindAsShadow).toHaveBeenCalledWith('PrimaryWorker');
1330
-
1331
- // 6. Release both agents
1332
- await handleRelayRelease(mockClient, { name: 'PrimaryWorker' });
1333
- await handleRelayRelease(mockClient, { name: 'Monitor' });
1334
- expect(mockClient.release).toHaveBeenCalledTimes(2);
1335
- });
1336
-
1337
- it('pub/sub topic workflow', async () => {
1338
- vi.mocked(mockClient.spawn).mockResolvedValue({ success: true });
1339
- vi.mocked(mockClient.subscribe).mockResolvedValue({ success: true });
1340
- vi.mocked(mockClient.broadcast).mockResolvedValue(undefined);
1341
- vi.mocked(mockClient.unsubscribe).mockResolvedValue({ success: true });
1342
- vi.mocked(mockClient.release).mockResolvedValue({ success: true });
1343
-
1344
- // 1. Spawn multiple workers
1345
- const workers = ['Worker1', 'Worker2', 'Worker3'];
1346
- for (const name of workers) {
1347
- await handleRelaySpawn(mockClient, { name, cli: 'claude', task: 'Subscribe test' });
1348
- }
1349
- expect(mockClient.spawn).toHaveBeenCalledTimes(3);
1350
-
1351
- // 2. Subscribe all workers to a topic
1352
- for (const _ of workers) {
1353
- await handleRelaySubscribe(mockClient, { topic: 'updates' });
1354
- }
1355
- expect(mockClient.subscribe).toHaveBeenCalledTimes(3);
1356
-
1357
- // 3. Broadcast to topic (simulated)
1358
- await handleRelayBroadcast(mockClient, { message: 'Update for all subscribers' });
1359
- expect(mockClient.broadcast).toHaveBeenCalled();
1360
-
1361
- // 4. Unsubscribe workers
1362
- for (const _ of workers) {
1363
- await handleRelayUnsubscribe(mockClient, { topic: 'updates' });
1364
- }
1365
- expect(mockClient.unsubscribe).toHaveBeenCalledTimes(3);
1366
-
1367
- // 5. Release workers
1368
- for (const name of workers) {
1369
- await handleRelayRelease(mockClient, { name });
1370
- }
1371
- expect(mockClient.release).toHaveBeenCalledTimes(3);
1372
- });
1373
-
1374
- it('multi-channel coordination workflow', async () => {
1375
- vi.mocked(mockClient.joinChannel).mockResolvedValue({ success: true });
1376
- vi.mocked(mockClient.sendChannelMessage).mockResolvedValue(undefined);
1377
- vi.mocked(mockClient.leaveChannel).mockResolvedValue({ success: true });
1378
-
1379
- const channels = ['#frontend', '#backend', '#devops'];
1380
-
1381
- // 1. Join multiple channels
1382
- for (const channel of channels) {
1383
- await handleRelayChannelJoin(mockClient, { channel });
1384
- }
1385
- expect(mockClient.joinChannel).toHaveBeenCalledTimes(3);
1386
-
1387
- // 2. Send messages to each channel
1388
- for (const channel of channels) {
1389
- await handleRelayChannelMessage(mockClient, { channel, message: `Update for ${channel}` });
1390
- }
1391
- expect(mockClient.sendChannelMessage).toHaveBeenCalledTimes(3);
1392
-
1393
- // 3. Leave all channels
1394
- for (const channel of channels) {
1395
- await handleRelayChannelLeave(mockClient, { channel, reason: 'Task complete' });
1396
- }
1397
- expect(mockClient.leaveChannel).toHaveBeenCalledTimes(3);
1398
- });
1399
- });
1400
-
1401
- // ============================================================================
1402
- // Set Model Tool Tests
1403
- // ============================================================================
1404
-
1405
- describe('relay_set_model', () => {
1406
- let mockClient: RelayClient;
1407
-
1408
- beforeEach(() => {
1409
- vi.clearAllMocks();
1410
- mockClient = createMockClient();
1411
- });
1412
-
1413
- it('should return success message with previous model when switch succeeds', async () => {
1414
- vi.mocked(mockClient.setWorkerModel).mockResolvedValue({
1415
- success: true,
1416
- name: 'Worker1',
1417
- model: 'opus',
1418
- previousModel: 'sonnet',
1419
- });
1420
-
1421
- const input = relaySetModelSchema.parse({
1422
- name: 'Worker1',
1423
- model: 'opus',
1424
- });
1425
- const result = await handleRelaySetModel(mockClient, input);
1426
-
1427
- expect(result).toBe('Model for "Worker1" switched to "opus" (was: sonnet).');
1428
- expect(mockClient.setWorkerModel).toHaveBeenCalledWith('Worker1', 'opus', {
1429
- timeoutMs: undefined,
1430
- });
1431
- });
1432
-
1433
- it('should return success message without previous model when not provided', async () => {
1434
- vi.mocked(mockClient.setWorkerModel).mockResolvedValue({
1435
- success: true,
1436
- name: 'Worker1',
1437
- model: 'haiku',
1438
- });
1439
-
1440
- const input = relaySetModelSchema.parse({
1441
- name: 'Worker1',
1442
- model: 'haiku',
1443
- });
1444
- const result = await handleRelaySetModel(mockClient, input);
1445
-
1446
- expect(result).toBe('Model for "Worker1" switched to "haiku".');
1447
- });
1448
-
1449
- it('should pass timeout_ms as timeoutMs option when provided', async () => {
1450
- vi.mocked(mockClient.setWorkerModel).mockResolvedValue({
1451
- success: true,
1452
- name: 'Worker1',
1453
- model: 'opus',
1454
- previousModel: 'sonnet',
1455
- });
1456
-
1457
- const input = relaySetModelSchema.parse({
1458
- name: 'Worker1',
1459
- model: 'opus',
1460
- timeout_ms: 60000,
1461
- });
1462
- await handleRelaySetModel(mockClient, input);
1463
-
1464
- expect(mockClient.setWorkerModel).toHaveBeenCalledWith('Worker1', 'opus', {
1465
- timeoutMs: 60000,
1466
- });
1467
- });
1468
-
1469
- it('should return error message when model switch fails', async () => {
1470
- vi.mocked(mockClient.setWorkerModel).mockResolvedValue({
1471
- success: false,
1472
- name: 'Worker1',
1473
- model: 'opus',
1474
- error: 'Agent not found',
1475
- });
1476
-
1477
- const input = relaySetModelSchema.parse({
1478
- name: 'Worker1',
1479
- model: 'opus',
1480
- });
1481
- const result = await handleRelaySetModel(mockClient, input);
1482
-
1483
- expect(result).toBe('Failed to switch model for "Worker1": Agent not found');
1484
- expect(mockClient.setWorkerModel).toHaveBeenCalledWith('Worker1', 'opus', {
1485
- timeoutMs: undefined,
1486
- });
1487
- });
1488
-
1489
- it('should require name and model fields in schema', () => {
1490
- // Missing name should throw
1491
- expect(() => relaySetModelSchema.parse({ model: 'opus' })).toThrow();
1492
-
1493
- // Missing model should throw
1494
- expect(() => relaySetModelSchema.parse({ name: 'Worker1' })).toThrow();
1495
-
1496
- // Both missing should throw
1497
- expect(() => relaySetModelSchema.parse({})).toThrow();
1498
- });
1499
-
1500
- it('should accept optional timeout_ms in schema', () => {
1501
- // Without timeout_ms - should parse successfully
1502
- const withoutTimeout = relaySetModelSchema.parse({
1503
- name: 'Worker1',
1504
- model: 'opus',
1505
- });
1506
- expect(withoutTimeout.timeout_ms).toBeUndefined();
1507
-
1508
- // With timeout_ms - should parse successfully
1509
- const withTimeout = relaySetModelSchema.parse({
1510
- name: 'Worker1',
1511
- model: 'opus',
1512
- timeout_ms: 15000,
1513
- });
1514
- expect(withTimeout.timeout_ms).toBe(15000);
1515
- });
1516
- });