agent-relay 2.3.14 → 2.3.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1420) hide show
  1. package/README.md +42 -176
  2. package/bin/agent-relay-broker-darwin-arm64 +0 -0
  3. package/bin/agent-relay-broker-darwin-x64 +0 -0
  4. package/bin/agent-relay-broker-linux-arm64 +0 -0
  5. package/bin/agent-relay-broker-linux-x64 +0 -0
  6. package/dist/index.cjs +50319 -63390
  7. package/dist/src/cli/bootstrap.d.ts +6 -0
  8. package/dist/src/cli/bootstrap.d.ts.map +1 -0
  9. package/dist/src/cli/bootstrap.js +109 -0
  10. package/dist/src/cli/bootstrap.js.map +1 -0
  11. package/dist/src/cli/commands/agent-management.d.ts +51 -0
  12. package/dist/src/cli/commands/agent-management.d.ts.map +1 -0
  13. package/dist/src/cli/commands/agent-management.js +290 -0
  14. package/dist/src/cli/commands/agent-management.js.map +1 -0
  15. package/dist/src/cli/commands/auth.d.ts +9 -0
  16. package/dist/src/cli/commands/auth.d.ts.map +1 -0
  17. package/dist/src/cli/commands/auth.js +33 -0
  18. package/dist/src/cli/commands/auth.js.map +1 -0
  19. package/dist/src/cli/commands/cloud.d.ts +18 -0
  20. package/dist/src/cli/commands/cloud.d.ts.map +1 -0
  21. package/dist/src/cli/commands/cloud.js +392 -0
  22. package/dist/src/cli/commands/cloud.js.map +1 -0
  23. package/dist/src/cli/commands/core.d.ts +107 -0
  24. package/dist/src/cli/commands/core.d.ts.map +1 -0
  25. package/dist/src/cli/commands/core.js +299 -0
  26. package/dist/src/cli/commands/core.js.map +1 -0
  27. package/dist/src/cli/commands/doctor.d.ts +1 -1
  28. package/dist/src/cli/commands/doctor.d.ts.map +1 -1
  29. package/dist/src/cli/commands/doctor.js +1 -485
  30. package/dist/src/cli/commands/doctor.js.map +1 -1
  31. package/dist/src/cli/commands/messaging.d.ts +61 -0
  32. package/dist/src/cli/commands/messaging.d.ts.map +1 -0
  33. package/dist/src/cli/commands/messaging.js +213 -0
  34. package/dist/src/cli/commands/messaging.js.map +1 -0
  35. package/dist/src/cli/commands/monitoring.d.ts +57 -0
  36. package/dist/src/cli/commands/monitoring.d.ts.map +1 -0
  37. package/dist/src/cli/commands/monitoring.js +350 -0
  38. package/dist/src/cli/commands/monitoring.js.map +1 -0
  39. package/dist/src/cli/commands/setup.d.ts +29 -0
  40. package/dist/src/cli/commands/setup.d.ts.map +1 -0
  41. package/dist/src/cli/commands/setup.js +324 -0
  42. package/dist/src/cli/commands/setup.js.map +1 -0
  43. package/dist/src/cli/commands/swarm.d.ts +3 -0
  44. package/dist/src/cli/commands/swarm.d.ts.map +1 -0
  45. package/dist/src/cli/commands/swarm.js +108 -0
  46. package/dist/src/cli/commands/swarm.js.map +1 -0
  47. package/dist/src/cli/index.d.ts +1 -28
  48. package/dist/src/cli/index.d.ts.map +1 -1
  49. package/dist/src/cli/index.js +4 -4936
  50. package/dist/src/cli/index.js.map +1 -1
  51. package/dist/src/cli/lib/agent-management-listing.d.ts +39 -0
  52. package/dist/src/cli/lib/agent-management-listing.d.ts.map +1 -0
  53. package/dist/src/cli/lib/agent-management-listing.js +253 -0
  54. package/dist/src/cli/lib/agent-management-listing.js.map +1 -0
  55. package/dist/src/cli/lib/auth-ssh.d.ts +48 -0
  56. package/dist/src/cli/lib/auth-ssh.d.ts.map +1 -0
  57. package/dist/src/cli/lib/auth-ssh.js +572 -0
  58. package/dist/src/cli/lib/auth-ssh.js.map +1 -0
  59. package/dist/src/cli/lib/bridge.d.ts +8 -0
  60. package/dist/src/cli/lib/bridge.d.ts.map +1 -0
  61. package/dist/src/cli/lib/bridge.js +100 -0
  62. package/dist/src/cli/lib/bridge.js.map +1 -0
  63. package/dist/src/cli/lib/broker-lifecycle.d.ts +20 -0
  64. package/dist/src/cli/lib/broker-lifecycle.d.ts.map +1 -0
  65. package/dist/src/cli/lib/broker-lifecycle.js +843 -0
  66. package/dist/src/cli/lib/broker-lifecycle.js.map +1 -0
  67. package/dist/src/cli/lib/client-factory.d.ts +24 -0
  68. package/dist/src/cli/lib/client-factory.d.ts.map +1 -0
  69. package/dist/src/cli/lib/client-factory.js +20 -0
  70. package/dist/src/cli/lib/client-factory.js.map +1 -0
  71. package/dist/src/cli/lib/cloud-client.d.ts +39 -0
  72. package/dist/src/cli/lib/cloud-client.d.ts.map +1 -0
  73. package/dist/src/cli/lib/cloud-client.js +120 -0
  74. package/dist/src/cli/lib/cloud-client.js.map +1 -0
  75. package/dist/src/cli/lib/core-maintenance.d.ts +13 -0
  76. package/dist/src/cli/lib/core-maintenance.d.ts.map +1 -0
  77. package/dist/src/cli/lib/core-maintenance.js +250 -0
  78. package/dist/src/cli/lib/core-maintenance.js.map +1 -0
  79. package/dist/src/cli/lib/doctor.d.ts +2 -0
  80. package/dist/src/cli/lib/doctor.d.ts.map +1 -0
  81. package/dist/src/cli/lib/doctor.js +484 -0
  82. package/dist/src/cli/lib/doctor.js.map +1 -0
  83. package/dist/src/cli/lib/formatting.d.ts +8 -0
  84. package/dist/src/cli/lib/formatting.d.ts.map +1 -0
  85. package/dist/src/cli/lib/formatting.js +48 -0
  86. package/dist/src/cli/lib/formatting.js.map +1 -0
  87. package/dist/src/cli/lib/index.d.ts +5 -0
  88. package/dist/src/cli/lib/index.d.ts.map +1 -0
  89. package/dist/src/cli/lib/index.js +5 -0
  90. package/dist/src/cli/lib/index.js.map +1 -0
  91. package/dist/src/cli/lib/jsonc.d.ts +8 -0
  92. package/dist/src/cli/lib/jsonc.d.ts.map +1 -0
  93. package/dist/src/cli/lib/jsonc.js +88 -0
  94. package/dist/src/cli/lib/jsonc.js.map +1 -0
  95. package/dist/src/cli/lib/monitoring-health.d.ts +32 -0
  96. package/dist/src/cli/lib/monitoring-health.d.ts.map +1 -0
  97. package/dist/src/cli/lib/monitoring-health.js +2 -0
  98. package/dist/src/cli/lib/monitoring-health.js.map +1 -0
  99. package/dist/src/cli/lib/paths.d.ts +2 -0
  100. package/dist/src/cli/lib/paths.d.ts.map +1 -0
  101. package/dist/src/cli/lib/paths.js +5 -0
  102. package/dist/src/cli/lib/paths.js.map +1 -0
  103. package/dist/src/index.d.ts +1 -5
  104. package/dist/src/index.d.ts.map +1 -1
  105. package/dist/src/index.js +1 -5
  106. package/dist/src/index.js.map +1 -1
  107. package/install.sh +0 -30
  108. package/package.json +84 -98
  109. package/packages/acp-bridge/README.md +8 -8
  110. package/packages/acp-bridge/dist/acp-agent.d.ts +8 -7
  111. package/packages/acp-bridge/dist/acp-agent.d.ts.map +1 -1
  112. package/packages/acp-bridge/dist/acp-agent.js +118 -143
  113. package/packages/acp-bridge/dist/acp-agent.js.map +1 -1
  114. package/packages/acp-bridge/dist/cli.d.ts +1 -1
  115. package/packages/acp-bridge/dist/cli.js +3 -3
  116. package/packages/acp-bridge/dist/index.d.ts +2 -2
  117. package/packages/acp-bridge/dist/index.d.ts.map +1 -1
  118. package/packages/acp-bridge/dist/index.js +1 -1
  119. package/packages/acp-bridge/dist/index.js.map +1 -1
  120. package/packages/acp-bridge/dist/types.d.ts +3 -3
  121. package/packages/acp-bridge/package.json +3 -3
  122. package/packages/acp-bridge/src/acp-agent.ts +123 -160
  123. package/packages/acp-bridge/src/cli.ts +3 -3
  124. package/packages/acp-bridge/src/index.ts +2 -2
  125. package/packages/acp-bridge/src/types.ts +3 -3
  126. package/packages/config/dist/bridge-config.d.ts +5 -5
  127. package/packages/config/dist/bridge-config.d.ts.map +1 -1
  128. package/packages/config/dist/bridge-config.js +16 -9
  129. package/packages/config/dist/bridge-config.js.map +1 -1
  130. package/packages/config/dist/cli-auth-config.d.ts +1 -1
  131. package/packages/config/dist/cli-auth-config.js +1 -1
  132. package/packages/config/dist/cli-registry.generated.d.ts +340 -0
  133. package/packages/config/dist/cli-registry.generated.d.ts.map +1 -0
  134. package/packages/config/dist/cli-registry.generated.js +297 -0
  135. package/packages/config/dist/cli-registry.generated.js.map +1 -0
  136. package/packages/config/dist/index.d.ts +1 -0
  137. package/packages/config/dist/index.d.ts.map +1 -1
  138. package/packages/config/dist/index.js +1 -0
  139. package/packages/config/dist/index.js.map +1 -1
  140. package/packages/config/dist/project-namespace.d.ts +9 -9
  141. package/packages/config/dist/project-namespace.js +3 -3
  142. package/packages/config/dist/relay-config.d.ts +1 -1
  143. package/packages/config/dist/relay-config.js +1 -1
  144. package/packages/config/dist/schemas.js +1 -1
  145. package/packages/config/dist/shadow-config.d.ts +2 -1
  146. package/packages/config/dist/shadow-config.d.ts.map +1 -1
  147. package/packages/config/dist/shadow-config.js.map +1 -1
  148. package/packages/config/package.json +2 -3
  149. package/packages/config/src/bridge-config.test.ts +20 -6
  150. package/packages/config/src/bridge-config.ts +20 -10
  151. package/packages/config/src/cli-auth-config.ts +1 -1
  152. package/packages/config/src/cli-registry.generated.ts +328 -0
  153. package/packages/config/src/index.ts +1 -0
  154. package/packages/config/src/project-namespace.ts +9 -9
  155. package/packages/config/src/relay-config.ts +1 -1
  156. package/packages/config/src/schemas.ts +1 -1
  157. package/packages/config/src/shadow-config.ts +8 -1
  158. package/packages/contracts/fixtures/error-fixtures.json +42 -0
  159. package/packages/contracts/fixtures/event-fixtures.json +161 -0
  160. package/packages/contracts/fixtures/health-fixtures.json +35 -0
  161. package/packages/contracts/fixtures/identity-fixtures.json +58 -0
  162. package/packages/contracts/fixtures/replay-fixtures.json +33 -0
  163. package/packages/hooks/dist/inbox-check/types.d.ts +2 -2
  164. package/packages/hooks/dist/types.d.ts +9 -3
  165. package/packages/hooks/dist/types.d.ts.map +1 -1
  166. package/packages/hooks/dist/types.js +1 -1
  167. package/packages/hooks/dist/types.js.map +1 -1
  168. package/packages/hooks/package.json +5 -5
  169. package/packages/hooks/src/inbox-check/types.ts +2 -2
  170. package/packages/hooks/src/types.ts +11 -3
  171. package/packages/memory/package.json +2 -2
  172. package/packages/policy/package.json +2 -2
  173. package/packages/sdk/.mcp.json +14 -0
  174. package/packages/sdk/.trajectories/active/traj_1771875803391_84ca57b2.json +50 -0
  175. package/packages/sdk/.trajectories/active/traj_1771891934534_06504121.json +50 -0
  176. package/packages/sdk/.trajectories/active/traj_1771891957929_211afc4e.json +50 -0
  177. package/packages/sdk/.trajectories/active/traj_1771891982509_38c84638.json +50 -0
  178. package/packages/sdk/.trajectories/completed/traj_1771875803188_cd6d181c.json +80 -0
  179. package/packages/sdk/.trajectories/completed/traj_1771875803204_f2aeb8c8.json +80 -0
  180. package/packages/sdk/.trajectories/completed/traj_1771875803210_d65f3f1a.json +80 -0
  181. package/packages/sdk/.trajectories/completed/traj_1771875803218_e454a25d.json +80 -0
  182. package/packages/sdk/.trajectories/completed/traj_1771875803223_d7a64815.json +80 -0
  183. package/packages/sdk/.trajectories/completed/traj_1771875803227_7e56da5b.json +80 -0
  184. package/packages/sdk/.trajectories/completed/traj_1771875803235_4fbf93b4.json +80 -0
  185. package/packages/sdk/.trajectories/completed/traj_1771875803243_47931c71.json +80 -0
  186. package/packages/sdk/.trajectories/completed/traj_1771875803258_3816f3fe.json +80 -0
  187. package/packages/sdk/.trajectories/completed/traj_1771875803268_8061140e.json +80 -0
  188. package/packages/sdk/.trajectories/completed/traj_1771875803326_ae6f9c78.json +80 -0
  189. package/packages/sdk/.trajectories/completed/traj_1771875808396_cbde0a6c.json +91 -0
  190. package/packages/sdk/.trajectories/completed/traj_1771875812026_aa2442bb.json +91 -0
  191. package/packages/sdk/.trajectories/completed/traj_1771875815431_c2c656c5.json +91 -0
  192. package/packages/sdk/.trajectories/completed/traj_1771875818645_3a4dbf02.json +91 -0
  193. package/packages/sdk/.trajectories/completed/traj_1771891934403_24923c03.json +80 -0
  194. package/packages/sdk/.trajectories/completed/traj_1771891934421_dca16e24.json +80 -0
  195. package/packages/sdk/.trajectories/completed/traj_1771891934430_057706f7.json +80 -0
  196. package/packages/sdk/.trajectories/completed/traj_1771891934442_faf97382.json +80 -0
  197. package/packages/sdk/.trajectories/completed/traj_1771891934454_5542ecd5.json +80 -0
  198. package/packages/sdk/.trajectories/completed/traj_1771891934464_12202a08.json +80 -0
  199. package/packages/sdk/.trajectories/completed/traj_1771891934487_94378275.json +80 -0
  200. package/packages/sdk/.trajectories/completed/traj_1771891934503_ca728c13.json +80 -0
  201. package/packages/sdk/.trajectories/completed/traj_1771891934519_100af69a.json +80 -0
  202. package/packages/sdk/.trajectories/completed/traj_1771891934536_62ad39d9.json +80 -0
  203. package/packages/sdk/.trajectories/completed/traj_1771891934553_d6798a52.json +80 -0
  204. package/packages/sdk/.trajectories/completed/traj_1771891939537_541c8096.json +91 -0
  205. package/packages/sdk/.trajectories/completed/traj_1771891942985_36ab9a4d.json +91 -0
  206. package/packages/sdk/.trajectories/completed/traj_1771891946453_e8a6e05f.json +91 -0
  207. package/packages/sdk/.trajectories/completed/traj_1771891949838_5de0de84.json +91 -0
  208. package/packages/sdk/.trajectories/completed/traj_1771891957807_0ecfb4f4.json +80 -0
  209. package/packages/sdk/.trajectories/completed/traj_1771891957827_c4539239.json +80 -0
  210. package/packages/sdk/.trajectories/completed/traj_1771891957836_91168b48.json +80 -0
  211. package/packages/sdk/.trajectories/completed/traj_1771891957848_8c5cad0b.json +80 -0
  212. package/packages/sdk/.trajectories/completed/traj_1771891957857_0986b293.json +80 -0
  213. package/packages/sdk/.trajectories/completed/traj_1771891957872_8a3113af.json +80 -0
  214. package/packages/sdk/.trajectories/completed/traj_1771891957884_0bb85208.json +80 -0
  215. package/packages/sdk/.trajectories/completed/traj_1771891957892_86c75e2e.json +80 -0
  216. package/packages/sdk/.trajectories/completed/traj_1771891957907_98ca0e6f.json +80 -0
  217. package/packages/sdk/.trajectories/completed/traj_1771891957918_d9091231.json +80 -0
  218. package/packages/sdk/.trajectories/completed/traj_1771891957931_dcaf77ed.json +80 -0
  219. package/packages/sdk/.trajectories/completed/traj_1771891962931_eb1fdee2.json +91 -0
  220. package/packages/sdk/.trajectories/completed/traj_1771891966262_9061a93f.json +91 -0
  221. package/packages/sdk/.trajectories/completed/traj_1771891969915_1adaba19.json +91 -0
  222. package/packages/sdk/.trajectories/completed/traj_1771891973588_f08b79e9.json +91 -0
  223. package/packages/sdk/.trajectories/completed/traj_1771891982421_f1985bce.json +80 -0
  224. package/packages/sdk/.trajectories/completed/traj_1771891982432_e7a84163.json +80 -0
  225. package/packages/sdk/.trajectories/completed/traj_1771891982447_369b842a.json +80 -0
  226. package/packages/sdk/.trajectories/completed/traj_1771891982469_5fc45199.json +80 -0
  227. package/packages/sdk/.trajectories/completed/traj_1771891982495_454c7cb3.json +80 -0
  228. package/packages/sdk/.trajectories/completed/traj_1771891982514_08098e03.json +80 -0
  229. package/packages/sdk/.trajectories/completed/traj_1771891982526_b351d778.json +80 -0
  230. package/packages/sdk/.trajectories/completed/traj_1771891982533_fa542d83.json +80 -0
  231. package/packages/sdk/.trajectories/completed/traj_1771891982540_18ab24dc.json +80 -0
  232. package/packages/sdk/.trajectories/completed/traj_1771891982544_5b4fa163.json +80 -0
  233. package/packages/sdk/.trajectories/completed/traj_1771891982548_c13f089a.json +80 -0
  234. package/packages/sdk/.trajectories/completed/traj_1771891987510_23f6da1f.json +91 -0
  235. package/packages/sdk/.trajectories/completed/traj_1771891991466_912c2e04.json +91 -0
  236. package/packages/sdk/.trajectories/completed/traj_1771891994891_60604be2.json +91 -0
  237. package/packages/sdk/.trajectories/completed/traj_1771891998370_cfaf9b8b.json +91 -0
  238. package/packages/sdk/README.md +68 -838
  239. package/packages/sdk/dist/__tests__/contract-fixtures.test.d.ts +2 -0
  240. package/packages/sdk/dist/__tests__/contract-fixtures.test.d.ts.map +1 -0
  241. package/packages/sdk/dist/__tests__/contract-fixtures.test.js +85 -0
  242. package/packages/sdk/dist/__tests__/contract-fixtures.test.js.map +1 -0
  243. package/packages/sdk/dist/__tests__/facade.test.js +305 -0
  244. package/packages/sdk/dist/__tests__/facade.test.js.map +1 -0
  245. package/packages/sdk/dist/__tests__/integration.test.js +169 -0
  246. package/packages/sdk/dist/__tests__/integration.test.js.map +1 -0
  247. package/packages/sdk/dist/__tests__/pty.test.d.ts +2 -0
  248. package/packages/sdk/dist/__tests__/pty.test.d.ts.map +1 -0
  249. package/packages/sdk/dist/__tests__/pty.test.js +20 -0
  250. package/packages/sdk/dist/__tests__/pty.test.js.map +1 -0
  251. package/packages/sdk/dist/__tests__/quickstart.test.js +176 -0
  252. package/packages/sdk/dist/__tests__/quickstart.test.js.map +1 -0
  253. package/packages/sdk/dist/__tests__/spawn-from-env.test.d.ts +2 -0
  254. package/packages/sdk/dist/__tests__/spawn-from-env.test.d.ts.map +1 -0
  255. package/packages/sdk/dist/__tests__/spawn-from-env.test.js +206 -0
  256. package/packages/sdk/dist/__tests__/spawn-from-env.test.js.map +1 -0
  257. package/packages/sdk/dist/__tests__/unit.test.js +347 -0
  258. package/packages/sdk/dist/__tests__/unit.test.js.map +1 -0
  259. package/packages/sdk/dist/client.d.ts +140 -526
  260. package/packages/sdk/dist/client.d.ts.map +1 -1
  261. package/packages/sdk/dist/client.js +430 -1509
  262. package/packages/sdk/dist/client.js.map +1 -1
  263. package/packages/sdk/dist/examples/workflow-superiority.d.ts +32 -0
  264. package/packages/sdk/dist/examples/workflow-superiority.d.ts.map +1 -0
  265. package/packages/sdk/dist/examples/workflow-superiority.js +1421 -0
  266. package/packages/sdk/dist/examples/workflow-superiority.js.map +1 -0
  267. package/packages/sdk/dist/index.d.ts +13 -20
  268. package/packages/sdk/dist/index.d.ts.map +1 -1
  269. package/packages/sdk/dist/index.js +12 -26
  270. package/packages/sdk/dist/index.js.map +1 -1
  271. package/packages/sdk/dist/logs.d.ts +70 -25
  272. package/packages/sdk/dist/logs.d.ts.map +1 -1
  273. package/packages/sdk/dist/logs.js +238 -42
  274. package/packages/sdk/dist/logs.js.map +1 -1
  275. package/packages/sdk/dist/models.d.ts +9 -0
  276. package/packages/sdk/dist/models.d.ts.map +1 -0
  277. package/packages/sdk/dist/models.js +17 -0
  278. package/packages/sdk/dist/models.js.map +1 -0
  279. package/packages/sdk/dist/protocol.d.ts +366 -0
  280. package/packages/sdk/dist/protocol.d.ts.map +1 -0
  281. package/packages/sdk/dist/pty.d.ts.map +1 -0
  282. package/packages/sdk/dist/pty.js +26 -0
  283. package/packages/sdk/dist/pty.js.map +1 -0
  284. package/packages/sdk/dist/relay-adapter.d.ts +139 -0
  285. package/packages/sdk/dist/relay-adapter.d.ts.map +1 -0
  286. package/packages/sdk/dist/relay-adapter.js +210 -0
  287. package/packages/sdk/dist/relay-adapter.js.map +1 -0
  288. package/packages/sdk/dist/relay.d.ts +304 -0
  289. package/packages/sdk/dist/relay.d.ts.map +1 -0
  290. package/packages/sdk/dist/relay.js +910 -0
  291. package/packages/sdk/dist/relay.js.map +1 -0
  292. package/packages/sdk/dist/shadow.d.ts +101 -0
  293. package/packages/sdk/dist/shadow.d.ts.map +1 -0
  294. package/packages/sdk/dist/shadow.js.map +1 -0
  295. package/packages/sdk/dist/spawn-from-env.d.ts +77 -0
  296. package/packages/sdk/dist/spawn-from-env.d.ts.map +1 -0
  297. package/packages/sdk/dist/spawn-from-env.js +172 -0
  298. package/packages/sdk/dist/spawn-from-env.js.map +1 -0
  299. package/packages/sdk/dist/workflows/builder.d.ts +114 -0
  300. package/packages/sdk/dist/workflows/builder.d.ts.map +1 -0
  301. package/packages/sdk/dist/workflows/builder.js +201 -0
  302. package/packages/sdk/dist/workflows/builder.js.map +1 -0
  303. package/packages/sdk/dist/workflows/cli.d.ts +11 -0
  304. package/packages/sdk/dist/workflows/cli.d.ts.map +1 -0
  305. package/packages/sdk/dist/workflows/cli.js +144 -0
  306. package/packages/sdk/dist/workflows/cli.js.map +1 -0
  307. package/packages/sdk/dist/workflows/coordinator.d.ts +73 -0
  308. package/packages/sdk/dist/workflows/coordinator.d.ts.map +1 -0
  309. package/packages/sdk/dist/workflows/coordinator.js +647 -0
  310. package/packages/sdk/dist/workflows/coordinator.js.map +1 -0
  311. package/packages/sdk/dist/workflows/custom-steps.d.ts +73 -0
  312. package/packages/sdk/dist/workflows/custom-steps.d.ts.map +1 -0
  313. package/packages/sdk/dist/workflows/custom-steps.js +321 -0
  314. package/packages/sdk/dist/workflows/custom-steps.js.map +1 -0
  315. package/packages/sdk/dist/workflows/dry-run-format.d.ts +6 -0
  316. package/packages/sdk/dist/workflows/dry-run-format.d.ts.map +1 -0
  317. package/packages/sdk/dist/workflows/dry-run-format.js +68 -0
  318. package/packages/sdk/dist/workflows/dry-run-format.js.map +1 -0
  319. package/packages/sdk/dist/workflows/file-db.d.ts +33 -0
  320. package/packages/sdk/dist/workflows/file-db.d.ts.map +1 -0
  321. package/packages/sdk/dist/workflows/file-db.js +108 -0
  322. package/packages/sdk/dist/workflows/file-db.js.map +1 -0
  323. package/packages/sdk/dist/workflows/index.d.ts +15 -0
  324. package/packages/sdk/dist/workflows/index.d.ts.map +1 -0
  325. package/packages/sdk/dist/workflows/index.js +15 -0
  326. package/packages/sdk/dist/workflows/index.js.map +1 -0
  327. package/packages/sdk/dist/workflows/run.d.ts +38 -0
  328. package/packages/sdk/dist/workflows/run.d.ts.map +1 -0
  329. package/packages/sdk/dist/workflows/run.js +25 -0
  330. package/packages/sdk/dist/workflows/run.js.map +1 -0
  331. package/packages/sdk/dist/workflows/runner.d.ts +320 -0
  332. package/packages/sdk/dist/workflows/runner.d.ts.map +1 -0
  333. package/packages/sdk/dist/workflows/runner.js +2821 -0
  334. package/packages/sdk/dist/workflows/runner.js.map +1 -0
  335. package/packages/sdk/dist/workflows/templates.d.ts +47 -0
  336. package/packages/sdk/dist/workflows/templates.d.ts.map +1 -0
  337. package/packages/sdk/dist/workflows/templates.js +405 -0
  338. package/packages/sdk/dist/workflows/templates.js.map +1 -0
  339. package/packages/sdk/dist/workflows/trajectory.d.ts +87 -0
  340. package/packages/sdk/dist/workflows/trajectory.d.ts.map +1 -0
  341. package/packages/sdk/dist/workflows/trajectory.js +441 -0
  342. package/packages/sdk/dist/workflows/trajectory.js.map +1 -0
  343. package/packages/sdk/dist/workflows/types.d.ts +306 -0
  344. package/packages/sdk/dist/workflows/types.d.ts.map +1 -0
  345. package/packages/sdk/dist/workflows/types.js +23 -0
  346. package/packages/sdk/dist/workflows/types.js.map +1 -0
  347. package/packages/sdk/dist/workflows/validator.d.ts +11 -0
  348. package/packages/sdk/dist/workflows/validator.d.ts.map +1 -0
  349. package/packages/sdk/dist/workflows/validator.js +128 -0
  350. package/packages/sdk/dist/workflows/validator.js.map +1 -0
  351. package/packages/sdk/package.json +59 -53
  352. package/packages/sdk/scripts/bundle-agent-relay.mjs +53 -0
  353. package/packages/sdk/src/__tests__/contract-fixtures.test.ts +122 -0
  354. package/packages/sdk/src/__tests__/error-scenarios.test.ts +682 -0
  355. package/packages/sdk/src/__tests__/facade.test.ts +364 -0
  356. package/packages/sdk/src/__tests__/idle-nudge.test.ts +438 -0
  357. package/packages/sdk/src/__tests__/integration.test.ts +204 -0
  358. package/packages/sdk/src/__tests__/orchestration-upgrades.test.ts +797 -0
  359. package/packages/sdk/src/__tests__/pty.test.ts +24 -0
  360. package/packages/sdk/src/__tests__/quickstart.test.ts +198 -0
  361. package/packages/sdk/src/__tests__/spawn-from-env.test.ts +282 -0
  362. package/packages/sdk/src/__tests__/swarm-coordinator.test.ts +909 -0
  363. package/packages/sdk/src/__tests__/unit.test.ts +435 -0
  364. package/packages/sdk/src/__tests__/workflow-runner.test.ts +489 -0
  365. package/packages/sdk/src/__tests__/yaml-validation.test.ts +890 -0
  366. package/packages/sdk/src/client.ts +527 -1911
  367. package/packages/sdk/src/examples/workflow-superiority.ts +1485 -0
  368. package/packages/sdk/src/examples/workflows/README.md +156 -0
  369. package/packages/sdk/src/examples/workflows/ralph-overnight.yaml +421 -0
  370. package/packages/sdk/src/examples/workflows/ralph-swarm.yaml +411 -0
  371. package/packages/sdk/src/examples/workflows/ralph-tdd.yaml +259 -0
  372. package/packages/sdk/src/index.ts +13 -116
  373. package/packages/sdk/src/logs.ts +282 -54
  374. package/packages/sdk/src/models.ts +36 -0
  375. package/packages/sdk/src/protocol.ts +385 -0
  376. package/packages/sdk/src/pty.ts +35 -0
  377. package/packages/sdk/src/relay-adapter.ts +316 -0
  378. package/packages/sdk/src/relay.ts +1147 -0
  379. package/packages/sdk/src/shadow.ts +228 -0
  380. package/packages/sdk/src/spawn-from-env.ts +245 -0
  381. package/packages/sdk/src/workflows/README.md +656 -0
  382. package/packages/sdk/src/workflows/builder.ts +278 -0
  383. package/packages/sdk/src/workflows/builtin-templates/bug-fix.yaml +135 -0
  384. package/packages/sdk/src/workflows/builtin-templates/code-review.yaml +133 -0
  385. package/packages/sdk/src/workflows/builtin-templates/competitive.yaml +103 -0
  386. package/packages/sdk/src/workflows/builtin-templates/documentation.yaml +120 -0
  387. package/packages/sdk/src/workflows/builtin-templates/feature-dev.yaml +142 -0
  388. package/packages/sdk/src/workflows/builtin-templates/refactor.yaml +141 -0
  389. package/packages/sdk/src/workflows/builtin-templates/review-loop.yaml +223 -0
  390. package/packages/sdk/src/workflows/builtin-templates/security-audit.yaml +129 -0
  391. package/packages/sdk/src/workflows/cli.ts +162 -0
  392. package/packages/sdk/src/workflows/coordinator.ts +842 -0
  393. package/packages/sdk/src/workflows/custom-steps.ts +450 -0
  394. package/packages/sdk/src/workflows/dry-run-format.ts +75 -0
  395. package/packages/sdk/src/workflows/file-db.ts +117 -0
  396. package/packages/sdk/src/workflows/index.ts +24 -0
  397. package/packages/sdk/src/workflows/run.ts +72 -0
  398. package/packages/sdk/src/workflows/runner.ts +3409 -0
  399. package/packages/sdk/src/workflows/schema.json +651 -0
  400. package/packages/sdk/src/workflows/templates.ts +552 -0
  401. package/packages/sdk/src/workflows/trajectory.ts +631 -0
  402. package/packages/sdk/src/workflows/types.ts +389 -0
  403. package/packages/sdk/src/workflows/validator.ts +151 -0
  404. package/packages/sdk/tsconfig.build.json +25 -0
  405. package/packages/sdk/tsconfig.json +17 -18
  406. package/packages/sdk/vitest.config.ts +1 -1
  407. package/packages/sdk-py/README.md +106 -21
  408. package/packages/sdk-py/agent_relay/__init__.py +21 -0
  409. package/packages/sdk-py/agent_relay/models.py +206 -0
  410. package/packages/sdk-py/pyproject.toml +2 -2
  411. package/packages/sdk-py/src/agent_relay/__init__.py +76 -0
  412. package/packages/sdk-py/src/agent_relay/builder.py +430 -109
  413. package/packages/sdk-py/src/agent_relay/templates.py +197 -0
  414. package/packages/sdk-py/src/agent_relay/types.py +489 -15
  415. package/packages/sdk-py/tests/test_builder.py +115 -1
  416. package/packages/sdk-py/tests/test_workflow_templates.py +450 -0
  417. package/packages/shared/cli-registry.yaml +193 -0
  418. package/packages/shared/codegen-py.mjs +215 -0
  419. package/packages/shared/codegen-ts.mjs +227 -0
  420. package/packages/telemetry/dist/events.d.ts +8 -8
  421. package/packages/telemetry/dist/index.d.ts +1 -1
  422. package/packages/telemetry/package.json +2 -2
  423. package/packages/telemetry/src/events.ts +9 -9
  424. package/packages/telemetry/src/index.ts +2 -2
  425. package/packages/trajectory/package.json +2 -2
  426. package/packages/user-directory/dist/user-directory.js +1 -1
  427. package/packages/user-directory/dist/user-directory.js.map +1 -1
  428. package/packages/user-directory/package.json +2 -2
  429. package/packages/user-directory/src/user-directory.ts +1 -1
  430. package/packages/utils/dist/cjs/client-helpers.js +4 -4
  431. package/packages/utils/dist/cjs/discovery.js +9 -6
  432. package/packages/utils/dist/cjs/errors.js +5 -5
  433. package/packages/utils/dist/cjs/legacy-protocol.js +70 -0
  434. package/packages/utils/dist/cjs/logger.js +3 -3
  435. package/packages/utils/dist/cjs/precompiled-patterns.js +33 -2
  436. package/packages/utils/dist/cjs/relay-pty-path.js +0 -6
  437. package/packages/utils/dist/client-helpers.d.ts +1 -1
  438. package/packages/utils/dist/client-helpers.d.ts.map +1 -1
  439. package/packages/utils/dist/client-helpers.js +1 -1
  440. package/packages/utils/dist/client-helpers.js.map +1 -1
  441. package/packages/utils/dist/discovery.d.ts +7 -7
  442. package/packages/utils/dist/discovery.d.ts.map +1 -1
  443. package/packages/utils/dist/discovery.js +20 -17
  444. package/packages/utils/dist/discovery.js.map +1 -1
  445. package/packages/utils/dist/errors.d.ts +1 -1
  446. package/packages/utils/dist/errors.js +3 -3
  447. package/packages/utils/dist/legacy-protocol.d.ts +46 -0
  448. package/packages/utils/dist/legacy-protocol.d.ts.map +1 -0
  449. package/packages/utils/dist/legacy-protocol.js +47 -0
  450. package/packages/utils/dist/legacy-protocol.js.map +1 -0
  451. package/packages/utils/dist/logger.d.ts +2 -2
  452. package/packages/utils/dist/logger.js +2 -2
  453. package/packages/utils/dist/precompiled-patterns.d.ts.map +1 -1
  454. package/packages/utils/dist/precompiled-patterns.js +28 -2
  455. package/packages/utils/dist/precompiled-patterns.js.map +1 -1
  456. package/packages/utils/dist/relay-pty-path.d.ts.map +1 -1
  457. package/packages/utils/dist/relay-pty-path.js +1 -10
  458. package/packages/utils/dist/relay-pty-path.js.map +1 -1
  459. package/packages/utils/package.json +2 -3
  460. package/packages/utils/src/client-helpers.ts +1 -1
  461. package/packages/utils/src/consolidation.test.ts +3 -3
  462. package/packages/utils/src/discovery.test.ts +3 -3
  463. package/packages/utils/src/discovery.ts +21 -18
  464. package/packages/utils/src/errors.test.ts +6 -11
  465. package/packages/utils/src/errors.ts +3 -3
  466. package/packages/utils/src/legacy-protocol.ts +151 -0
  467. package/packages/utils/src/logger.ts +2 -2
  468. package/packages/utils/src/precompiled-patterns.test.ts +8 -0
  469. package/packages/utils/src/precompiled-patterns.ts +40 -2
  470. package/packages/utils/src/relay-pty-path.test.ts +23 -34
  471. package/packages/utils/src/relay-pty-path.ts +1 -11
  472. package/relay-snippets/agent-relay-protocol.md +6 -43
  473. package/relay-snippets/agent-relay-snippet.md +59 -203
  474. package/scripts/postinstall.js +44 -171
  475. package/bin/relay-pty-darwin-arm64 +0 -0
  476. package/bin/relay-pty-darwin-x64 +0 -0
  477. package/bin/relay-pty-linux-arm64 +0 -0
  478. package/bin/relay-pty-linux-x64 +0 -0
  479. package/dist/src/bridge/index.d.ts +0 -8
  480. package/dist/src/bridge/index.d.ts.map +0 -1
  481. package/dist/src/bridge/index.js +0 -8
  482. package/dist/src/bridge/index.js.map +0 -1
  483. package/dist/src/continuity/index.d.ts +0 -5
  484. package/dist/src/continuity/index.d.ts.map +0 -1
  485. package/dist/src/continuity/index.js +0 -5
  486. package/dist/src/continuity/index.js.map +0 -1
  487. package/dist/src/daemon/index.d.ts +0 -8
  488. package/dist/src/daemon/index.d.ts.map +0 -1
  489. package/dist/src/daemon/index.js +0 -9
  490. package/dist/src/daemon/index.js.map +0 -1
  491. package/dist/src/protocol/index.d.ts +0 -8
  492. package/dist/src/protocol/index.d.ts.map +0 -1
  493. package/dist/src/protocol/index.js +0 -8
  494. package/dist/src/protocol/index.js.map +0 -1
  495. package/dist/src/resiliency/index.d.ts +0 -5
  496. package/dist/src/resiliency/index.d.ts.map +0 -1
  497. package/dist/src/resiliency/index.js +0 -5
  498. package/dist/src/resiliency/index.js.map +0 -1
  499. package/dist/src/state/index.d.ts +0 -5
  500. package/dist/src/state/index.d.ts.map +0 -1
  501. package/dist/src/state/index.js +0 -5
  502. package/dist/src/state/index.js.map +0 -1
  503. package/dist/src/storage/index.d.ts +0 -8
  504. package/dist/src/storage/index.d.ts.map +0 -1
  505. package/dist/src/storage/index.js +0 -8
  506. package/dist/src/storage/index.js.map +0 -1
  507. package/dist/src/wrapper/index.d.ts +0 -8
  508. package/dist/src/wrapper/index.d.ts.map +0 -1
  509. package/dist/src/wrapper/index.js +0 -11
  510. package/dist/src/wrapper/index.js.map +0 -1
  511. package/packages/bridge/dist/cli-resolution.d.ts +0 -32
  512. package/packages/bridge/dist/cli-resolution.d.ts.map +0 -1
  513. package/packages/bridge/dist/cli-resolution.js +0 -88
  514. package/packages/bridge/dist/cli-resolution.js.map +0 -1
  515. package/packages/bridge/dist/index.d.ts +0 -9
  516. package/packages/bridge/dist/index.d.ts.map +0 -1
  517. package/packages/bridge/dist/index.js +0 -11
  518. package/packages/bridge/dist/index.js.map +0 -1
  519. package/packages/bridge/dist/multi-project-client.d.ts +0 -99
  520. package/packages/bridge/dist/multi-project-client.d.ts.map +0 -1
  521. package/packages/bridge/dist/multi-project-client.js +0 -389
  522. package/packages/bridge/dist/multi-project-client.js.map +0 -1
  523. package/packages/bridge/dist/shadow-cli.d.ts +0 -17
  524. package/packages/bridge/dist/shadow-cli.d.ts.map +0 -1
  525. package/packages/bridge/dist/shadow-cli.js +0 -75
  526. package/packages/bridge/dist/shadow-cli.js.map +0 -1
  527. package/packages/bridge/dist/spawner.d.ts +0 -263
  528. package/packages/bridge/dist/spawner.d.ts.map +0 -1
  529. package/packages/bridge/dist/spawner.js +0 -1758
  530. package/packages/bridge/dist/spawner.js.map +0 -1
  531. package/packages/bridge/dist/types.d.ts +0 -141
  532. package/packages/bridge/dist/types.d.ts.map +0 -1
  533. package/packages/bridge/dist/types.js +0 -6
  534. package/packages/bridge/dist/types.js.map +0 -1
  535. package/packages/bridge/dist/utils.d.ts +0 -39
  536. package/packages/bridge/dist/utils.d.ts.map +0 -1
  537. package/packages/bridge/dist/utils.js +0 -98
  538. package/packages/bridge/dist/utils.js.map +0 -1
  539. package/packages/bridge/package.json +0 -45
  540. package/packages/bridge/src/cli-resolution.test.ts +0 -225
  541. package/packages/bridge/src/cli-resolution.ts +0 -100
  542. package/packages/bridge/src/index.ts +0 -34
  543. package/packages/bridge/src/multi-project-client.test.ts +0 -340
  544. package/packages/bridge/src/multi-project-client.ts +0 -469
  545. package/packages/bridge/src/shadow-cli.ts +0 -95
  546. package/packages/bridge/src/spawner-mcp.test.ts +0 -505
  547. package/packages/bridge/src/spawner.ts +0 -2067
  548. package/packages/bridge/src/types.ts +0 -153
  549. package/packages/bridge/src/utils.test.ts +0 -235
  550. package/packages/bridge/src/utils.ts +0 -113
  551. package/packages/bridge/tsconfig.json +0 -29
  552. package/packages/bridge/vitest.config.ts +0 -9
  553. package/packages/broker-sdk/README.md +0 -97
  554. package/packages/broker-sdk/dist/__tests__/facade.test.js +0 -257
  555. package/packages/broker-sdk/dist/__tests__/facade.test.js.map +0 -1
  556. package/packages/broker-sdk/dist/__tests__/integration.test.js +0 -139
  557. package/packages/broker-sdk/dist/__tests__/integration.test.js.map +0 -1
  558. package/packages/broker-sdk/dist/__tests__/quickstart.test.js +0 -176
  559. package/packages/broker-sdk/dist/__tests__/quickstart.test.js.map +0 -1
  560. package/packages/broker-sdk/dist/__tests__/unit.test.js +0 -192
  561. package/packages/broker-sdk/dist/__tests__/unit.test.js.map +0 -1
  562. package/packages/broker-sdk/dist/client.d.ts +0 -95
  563. package/packages/broker-sdk/dist/client.d.ts.map +0 -1
  564. package/packages/broker-sdk/dist/client.js +0 -372
  565. package/packages/broker-sdk/dist/client.js.map +0 -1
  566. package/packages/broker-sdk/dist/index.d.ts +0 -10
  567. package/packages/broker-sdk/dist/index.d.ts.map +0 -1
  568. package/packages/broker-sdk/dist/index.js +0 -10
  569. package/packages/broker-sdk/dist/index.js.map +0 -1
  570. package/packages/broker-sdk/dist/logs.d.ts +0 -47
  571. package/packages/broker-sdk/dist/logs.d.ts.map +0 -1
  572. package/packages/broker-sdk/dist/logs.js +0 -137
  573. package/packages/broker-sdk/dist/logs.js.map +0 -1
  574. package/packages/broker-sdk/dist/protocol.d.ts +0 -258
  575. package/packages/broker-sdk/dist/protocol.d.ts.map +0 -1
  576. package/packages/broker-sdk/dist/pty.d.ts.map +0 -1
  577. package/packages/broker-sdk/dist/pty.js +0 -14
  578. package/packages/broker-sdk/dist/pty.js.map +0 -1
  579. package/packages/broker-sdk/dist/relay.d.ts +0 -178
  580. package/packages/broker-sdk/dist/relay.d.ts.map +0 -1
  581. package/packages/broker-sdk/dist/relay.js +0 -494
  582. package/packages/broker-sdk/dist/relay.js.map +0 -1
  583. package/packages/broker-sdk/dist/relaycast.d.ts +0 -73
  584. package/packages/broker-sdk/dist/relaycast.d.ts.map +0 -1
  585. package/packages/broker-sdk/dist/relaycast.js +0 -184
  586. package/packages/broker-sdk/dist/relaycast.js.map +0 -1
  587. package/packages/broker-sdk/dist/shadow.d.ts +0 -100
  588. package/packages/broker-sdk/dist/shadow.d.ts.map +0 -1
  589. package/packages/broker-sdk/dist/shadow.js.map +0 -1
  590. package/packages/broker-sdk/dist/workflows/builder.d.ts +0 -101
  591. package/packages/broker-sdk/dist/workflows/builder.d.ts.map +0 -1
  592. package/packages/broker-sdk/dist/workflows/builder.js +0 -179
  593. package/packages/broker-sdk/dist/workflows/builder.js.map +0 -1
  594. package/packages/broker-sdk/dist/workflows/cli.d.ts +0 -10
  595. package/packages/broker-sdk/dist/workflows/cli.d.ts.map +0 -1
  596. package/packages/broker-sdk/dist/workflows/cli.js +0 -82
  597. package/packages/broker-sdk/dist/workflows/cli.js.map +0 -1
  598. package/packages/broker-sdk/dist/workflows/coordinator.d.ts +0 -69
  599. package/packages/broker-sdk/dist/workflows/coordinator.d.ts.map +0 -1
  600. package/packages/broker-sdk/dist/workflows/coordinator.js +0 -585
  601. package/packages/broker-sdk/dist/workflows/coordinator.js.map +0 -1
  602. package/packages/broker-sdk/dist/workflows/index.d.ts +0 -11
  603. package/packages/broker-sdk/dist/workflows/index.d.ts.map +0 -1
  604. package/packages/broker-sdk/dist/workflows/index.js +0 -11
  605. package/packages/broker-sdk/dist/workflows/index.js.map +0 -1
  606. package/packages/broker-sdk/dist/workflows/run.d.ts +0 -33
  607. package/packages/broker-sdk/dist/workflows/run.d.ts.map +0 -1
  608. package/packages/broker-sdk/dist/workflows/run.js +0 -28
  609. package/packages/broker-sdk/dist/workflows/run.js.map +0 -1
  610. package/packages/broker-sdk/dist/workflows/runner.d.ts +0 -140
  611. package/packages/broker-sdk/dist/workflows/runner.d.ts.map +0 -1
  612. package/packages/broker-sdk/dist/workflows/runner.js +0 -962
  613. package/packages/broker-sdk/dist/workflows/runner.js.map +0 -1
  614. package/packages/broker-sdk/dist/workflows/templates.d.ts +0 -47
  615. package/packages/broker-sdk/dist/workflows/templates.d.ts.map +0 -1
  616. package/packages/broker-sdk/dist/workflows/templates.js +0 -395
  617. package/packages/broker-sdk/dist/workflows/templates.js.map +0 -1
  618. package/packages/broker-sdk/dist/workflows/trajectory.d.ts +0 -80
  619. package/packages/broker-sdk/dist/workflows/trajectory.d.ts.map +0 -1
  620. package/packages/broker-sdk/dist/workflows/trajectory.js +0 -362
  621. package/packages/broker-sdk/dist/workflows/trajectory.js.map +0 -1
  622. package/packages/broker-sdk/dist/workflows/types.d.ts +0 -140
  623. package/packages/broker-sdk/dist/workflows/types.d.ts.map +0 -1
  624. package/packages/broker-sdk/dist/workflows/types.js +0 -8
  625. package/packages/broker-sdk/dist/workflows/types.js.map +0 -1
  626. package/packages/broker-sdk/package.json +0 -81
  627. package/packages/broker-sdk/scripts/bundle-agent-relay.mjs +0 -53
  628. package/packages/broker-sdk/src/__tests__/error-scenarios.test.ts +0 -682
  629. package/packages/broker-sdk/src/__tests__/facade.test.ts +0 -296
  630. package/packages/broker-sdk/src/__tests__/integration.test.ts +0 -170
  631. package/packages/broker-sdk/src/__tests__/quickstart.test.ts +0 -198
  632. package/packages/broker-sdk/src/__tests__/swarm-coordinator.test.ts +0 -772
  633. package/packages/broker-sdk/src/__tests__/unit.test.ts +0 -243
  634. package/packages/broker-sdk/src/__tests__/workflow-runner.test.ts +0 -333
  635. package/packages/broker-sdk/src/client.ts +0 -510
  636. package/packages/broker-sdk/src/index.ts +0 -9
  637. package/packages/broker-sdk/src/logs.ts +0 -163
  638. package/packages/broker-sdk/src/protocol.ts +0 -276
  639. package/packages/broker-sdk/src/pty.ts +0 -16
  640. package/packages/broker-sdk/src/relay.ts +0 -625
  641. package/packages/broker-sdk/src/relaycast.ts +0 -221
  642. package/packages/broker-sdk/src/shadow.ts +0 -230
  643. package/packages/broker-sdk/src/workflows/README.md +0 -544
  644. package/packages/broker-sdk/src/workflows/builder.ts +0 -241
  645. package/packages/broker-sdk/src/workflows/builtin-templates/bug-fix.yaml +0 -75
  646. package/packages/broker-sdk/src/workflows/builtin-templates/code-review.yaml +0 -82
  647. package/packages/broker-sdk/src/workflows/builtin-templates/documentation.yaml +0 -70
  648. package/packages/broker-sdk/src/workflows/builtin-templates/feature-dev.yaml +0 -76
  649. package/packages/broker-sdk/src/workflows/builtin-templates/refactor.yaml +0 -82
  650. package/packages/broker-sdk/src/workflows/builtin-templates/security-audit.yaml +0 -84
  651. package/packages/broker-sdk/src/workflows/cli.ts +0 -93
  652. package/packages/broker-sdk/src/workflows/coordinator.ts +0 -758
  653. package/packages/broker-sdk/src/workflows/index.ts +0 -10
  654. package/packages/broker-sdk/src/workflows/run.ts +0 -55
  655. package/packages/broker-sdk/src/workflows/runner.ts +0 -1271
  656. package/packages/broker-sdk/src/workflows/schema.json +0 -333
  657. package/packages/broker-sdk/src/workflows/templates.ts +0 -544
  658. package/packages/broker-sdk/src/workflows/trajectory.ts +0 -507
  659. package/packages/broker-sdk/src/workflows/types.ts +0 -208
  660. package/packages/broker-sdk/tsconfig.json +0 -22
  661. package/packages/broker-sdk/vitest.config.ts +0 -9
  662. package/packages/continuity/dist/formatter.d.ts +0 -57
  663. package/packages/continuity/dist/formatter.d.ts.map +0 -1
  664. package/packages/continuity/dist/formatter.js +0 -448
  665. package/packages/continuity/dist/formatter.js.map +0 -1
  666. package/packages/continuity/dist/handoff-store.d.ts +0 -67
  667. package/packages/continuity/dist/handoff-store.d.ts.map +0 -1
  668. package/packages/continuity/dist/handoff-store.js +0 -472
  669. package/packages/continuity/dist/handoff-store.js.map +0 -1
  670. package/packages/continuity/dist/index.d.ts +0 -10
  671. package/packages/continuity/dist/index.d.ts.map +0 -1
  672. package/packages/continuity/dist/index.js +0 -11
  673. package/packages/continuity/dist/index.js.map +0 -1
  674. package/packages/continuity/dist/ledger-store.d.ts +0 -110
  675. package/packages/continuity/dist/ledger-store.d.ts.map +0 -1
  676. package/packages/continuity/dist/ledger-store.js +0 -500
  677. package/packages/continuity/dist/ledger-store.js.map +0 -1
  678. package/packages/continuity/dist/manager.d.ts +0 -183
  679. package/packages/continuity/dist/manager.d.ts.map +0 -1
  680. package/packages/continuity/dist/manager.js +0 -616
  681. package/packages/continuity/dist/manager.js.map +0 -1
  682. package/packages/continuity/dist/parser.d.ts +0 -76
  683. package/packages/continuity/dist/parser.d.ts.map +0 -1
  684. package/packages/continuity/dist/parser.js +0 -579
  685. package/packages/continuity/dist/parser.js.map +0 -1
  686. package/packages/continuity/dist/types.d.ts +0 -180
  687. package/packages/continuity/dist/types.d.ts.map +0 -1
  688. package/packages/continuity/dist/types.js +0 -2
  689. package/packages/continuity/dist/types.js.map +0 -1
  690. package/packages/continuity/package.json +0 -40
  691. package/packages/continuity/src/formatter.ts +0 -536
  692. package/packages/continuity/src/handoff-store.ts +0 -523
  693. package/packages/continuity/src/index.ts +0 -12
  694. package/packages/continuity/src/ledger-store.ts +0 -594
  695. package/packages/continuity/src/manager.test.ts +0 -291
  696. package/packages/continuity/src/manager.ts +0 -774
  697. package/packages/continuity/src/parser.test.ts +0 -292
  698. package/packages/continuity/src/parser.ts +0 -680
  699. package/packages/continuity/src/types.ts +0 -211
  700. package/packages/continuity/tsconfig.json +0 -21
  701. package/packages/continuity/vitest.config.ts +0 -9
  702. package/packages/daemon/dist/agent-manager.d.ts +0 -134
  703. package/packages/daemon/dist/agent-manager.d.ts.map +0 -1
  704. package/packages/daemon/dist/agent-manager.js +0 -578
  705. package/packages/daemon/dist/agent-manager.js.map +0 -1
  706. package/packages/daemon/dist/agent-registry.d.ts +0 -99
  707. package/packages/daemon/dist/agent-registry.d.ts.map +0 -1
  708. package/packages/daemon/dist/agent-registry.js +0 -213
  709. package/packages/daemon/dist/agent-registry.js.map +0 -1
  710. package/packages/daemon/dist/agent-signing.d.ts +0 -158
  711. package/packages/daemon/dist/agent-signing.d.ts.map +0 -1
  712. package/packages/daemon/dist/agent-signing.js +0 -523
  713. package/packages/daemon/dist/agent-signing.js.map +0 -1
  714. package/packages/daemon/dist/api.d.ts +0 -106
  715. package/packages/daemon/dist/api.d.ts.map +0 -1
  716. package/packages/daemon/dist/api.js +0 -895
  717. package/packages/daemon/dist/api.js.map +0 -1
  718. package/packages/daemon/dist/auth.d.ts +0 -94
  719. package/packages/daemon/dist/auth.d.ts.map +0 -1
  720. package/packages/daemon/dist/auth.js +0 -197
  721. package/packages/daemon/dist/auth.js.map +0 -1
  722. package/packages/daemon/dist/channel-membership-store.d.ts +0 -55
  723. package/packages/daemon/dist/channel-membership-store.d.ts.map +0 -1
  724. package/packages/daemon/dist/channel-membership-store.js +0 -176
  725. package/packages/daemon/dist/channel-membership-store.js.map +0 -1
  726. package/packages/daemon/dist/cli-auth.d.ts +0 -97
  727. package/packages/daemon/dist/cli-auth.d.ts.map +0 -1
  728. package/packages/daemon/dist/cli-auth.js +0 -808
  729. package/packages/daemon/dist/cli-auth.js.map +0 -1
  730. package/packages/daemon/dist/cloud-sync.d.ts +0 -263
  731. package/packages/daemon/dist/cloud-sync.d.ts.map +0 -1
  732. package/packages/daemon/dist/cloud-sync.js +0 -820
  733. package/packages/daemon/dist/cloud-sync.js.map +0 -1
  734. package/packages/daemon/dist/connection.d.ts +0 -137
  735. package/packages/daemon/dist/connection.d.ts.map +0 -1
  736. package/packages/daemon/dist/connection.js +0 -465
  737. package/packages/daemon/dist/connection.js.map +0 -1
  738. package/packages/daemon/dist/consensus-integration.d.ts +0 -168
  739. package/packages/daemon/dist/consensus-integration.d.ts.map +0 -1
  740. package/packages/daemon/dist/consensus-integration.js +0 -371
  741. package/packages/daemon/dist/consensus-integration.js.map +0 -1
  742. package/packages/daemon/dist/consensus.d.ts +0 -269
  743. package/packages/daemon/dist/consensus.d.ts.map +0 -1
  744. package/packages/daemon/dist/consensus.js +0 -632
  745. package/packages/daemon/dist/consensus.js.map +0 -1
  746. package/packages/daemon/dist/delivery-tracker.d.ts +0 -34
  747. package/packages/daemon/dist/delivery-tracker.d.ts.map +0 -1
  748. package/packages/daemon/dist/delivery-tracker.js +0 -104
  749. package/packages/daemon/dist/delivery-tracker.js.map +0 -1
  750. package/packages/daemon/dist/enhanced-features.d.ts +0 -118
  751. package/packages/daemon/dist/enhanced-features.d.ts.map +0 -1
  752. package/packages/daemon/dist/enhanced-features.js +0 -177
  753. package/packages/daemon/dist/enhanced-features.js.map +0 -1
  754. package/packages/daemon/dist/index.d.ts +0 -29
  755. package/packages/daemon/dist/index.d.ts.map +0 -1
  756. package/packages/daemon/dist/index.js +0 -34
  757. package/packages/daemon/dist/index.js.map +0 -1
  758. package/packages/daemon/dist/orchestrator.d.ts +0 -217
  759. package/packages/daemon/dist/orchestrator.d.ts.map +0 -1
  760. package/packages/daemon/dist/orchestrator.js +0 -1172
  761. package/packages/daemon/dist/orchestrator.js.map +0 -1
  762. package/packages/daemon/dist/rate-limiter.d.ts +0 -68
  763. package/packages/daemon/dist/rate-limiter.d.ts.map +0 -1
  764. package/packages/daemon/dist/rate-limiter.js +0 -130
  765. package/packages/daemon/dist/rate-limiter.js.map +0 -1
  766. package/packages/daemon/dist/registry.d.ts +0 -9
  767. package/packages/daemon/dist/registry.d.ts.map +0 -1
  768. package/packages/daemon/dist/registry.js +0 -9
  769. package/packages/daemon/dist/registry.js.map +0 -1
  770. package/packages/daemon/dist/repo-manager.d.ts +0 -116
  771. package/packages/daemon/dist/repo-manager.d.ts.map +0 -1
  772. package/packages/daemon/dist/repo-manager.js +0 -384
  773. package/packages/daemon/dist/repo-manager.js.map +0 -1
  774. package/packages/daemon/dist/router.d.ts +0 -389
  775. package/packages/daemon/dist/router.d.ts.map +0 -1
  776. package/packages/daemon/dist/router.js +0 -1607
  777. package/packages/daemon/dist/router.js.map +0 -1
  778. package/packages/daemon/dist/server.d.ts +0 -201
  779. package/packages/daemon/dist/server.d.ts.map +0 -1
  780. package/packages/daemon/dist/server.js +0 -1791
  781. package/packages/daemon/dist/server.js.map +0 -1
  782. package/packages/daemon/dist/spawn-manager.d.ts +0 -119
  783. package/packages/daemon/dist/spawn-manager.d.ts.map +0 -1
  784. package/packages/daemon/dist/spawn-manager.js +0 -319
  785. package/packages/daemon/dist/spawn-manager.js.map +0 -1
  786. package/packages/daemon/dist/sync-queue.d.ts +0 -116
  787. package/packages/daemon/dist/sync-queue.d.ts.map +0 -1
  788. package/packages/daemon/dist/sync-queue.js +0 -361
  789. package/packages/daemon/dist/sync-queue.js.map +0 -1
  790. package/packages/daemon/dist/types.d.ts +0 -133
  791. package/packages/daemon/dist/types.d.ts.map +0 -1
  792. package/packages/daemon/dist/types.js +0 -6
  793. package/packages/daemon/dist/types.js.map +0 -1
  794. package/packages/daemon/dist/workspace-manager.d.ts +0 -80
  795. package/packages/daemon/dist/workspace-manager.d.ts.map +0 -1
  796. package/packages/daemon/dist/workspace-manager.js +0 -314
  797. package/packages/daemon/dist/workspace-manager.js.map +0 -1
  798. package/packages/daemon/package.json +0 -56
  799. package/packages/daemon/src/agent-manager.ts +0 -679
  800. package/packages/daemon/src/agent-registry.ts +0 -284
  801. package/packages/daemon/src/agent-signing.ts +0 -707
  802. package/packages/daemon/src/api.ts +0 -1034
  803. package/packages/daemon/src/auth.ts +0 -276
  804. package/packages/daemon/src/channel-membership-store.ts +0 -217
  805. package/packages/daemon/src/cli-auth.ts +0 -945
  806. package/packages/daemon/src/cloud-sync.ts +0 -1100
  807. package/packages/daemon/src/connection.ts +0 -561
  808. package/packages/daemon/src/consensus-integration.ts +0 -510
  809. package/packages/daemon/src/consensus.ts +0 -848
  810. package/packages/daemon/src/delivery-tracker.ts +0 -145
  811. package/packages/daemon/src/enhanced-features.ts +0 -390
  812. package/packages/daemon/src/index.ts +0 -48
  813. package/packages/daemon/src/orchestrator.test.ts +0 -231
  814. package/packages/daemon/src/orchestrator.ts +0 -1376
  815. package/packages/daemon/src/rate-limiter.ts +0 -172
  816. package/packages/daemon/src/registry.ts +0 -8
  817. package/packages/daemon/src/repo-manager.ts +0 -468
  818. package/packages/daemon/src/router.test.ts +0 -181
  819. package/packages/daemon/src/router.ts +0 -1925
  820. package/packages/daemon/src/server.ts +0 -2051
  821. package/packages/daemon/src/spawn-manager-set-model.test.ts +0 -144
  822. package/packages/daemon/src/spawn-manager.ts +0 -415
  823. package/packages/daemon/src/sync-queue.ts +0 -477
  824. package/packages/daemon/src/types.ts +0 -158
  825. package/packages/daemon/src/workspace-manager.ts +0 -371
  826. package/packages/daemon/tsconfig.json +0 -21
  827. package/packages/daemon/vitest.config.ts +0 -9
  828. package/packages/mcp/CHANGELOG.md +0 -28
  829. package/packages/mcp/LICENSE +0 -190
  830. package/packages/mcp/README.md +0 -266
  831. package/packages/mcp/dist/bin.d.ts +0 -12
  832. package/packages/mcp/dist/bin.d.ts.map +0 -1
  833. package/packages/mcp/dist/bin.js +0 -179
  834. package/packages/mcp/dist/bin.js.map +0 -1
  835. package/packages/mcp/dist/client-adapter.d.ts +0 -164
  836. package/packages/mcp/dist/client-adapter.d.ts.map +0 -1
  837. package/packages/mcp/dist/client-adapter.js +0 -231
  838. package/packages/mcp/dist/client-adapter.js.map +0 -1
  839. package/packages/mcp/dist/cloud.d.ts +0 -13
  840. package/packages/mcp/dist/cloud.d.ts.map +0 -1
  841. package/packages/mcp/dist/cloud.js +0 -25
  842. package/packages/mcp/dist/cloud.js.map +0 -1
  843. package/packages/mcp/dist/errors.d.ts +0 -9
  844. package/packages/mcp/dist/errors.d.ts.map +0 -1
  845. package/packages/mcp/dist/errors.js +0 -9
  846. package/packages/mcp/dist/errors.js.map +0 -1
  847. package/packages/mcp/dist/file-transport.d.ts +0 -103
  848. package/packages/mcp/dist/file-transport.d.ts.map +0 -1
  849. package/packages/mcp/dist/file-transport.js +0 -204
  850. package/packages/mcp/dist/file-transport.js.map +0 -1
  851. package/packages/mcp/dist/hybrid-client.d.ts +0 -5
  852. package/packages/mcp/dist/hybrid-client.d.ts.map +0 -1
  853. package/packages/mcp/dist/hybrid-client.js +0 -23
  854. package/packages/mcp/dist/hybrid-client.js.map +0 -1
  855. package/packages/mcp/dist/index.d.ts +0 -11
  856. package/packages/mcp/dist/index.d.ts.map +0 -1
  857. package/packages/mcp/dist/index.js +0 -25
  858. package/packages/mcp/dist/index.js.map +0 -1
  859. package/packages/mcp/dist/install-cli.d.ts +0 -35
  860. package/packages/mcp/dist/install-cli.d.ts.map +0 -1
  861. package/packages/mcp/dist/install-cli.js +0 -157
  862. package/packages/mcp/dist/install-cli.js.map +0 -1
  863. package/packages/mcp/dist/install.d.ts +0 -123
  864. package/packages/mcp/dist/install.d.ts.map +0 -1
  865. package/packages/mcp/dist/install.js +0 -661
  866. package/packages/mcp/dist/install.js.map +0 -1
  867. package/packages/mcp/dist/prompts/index.d.ts +0 -2
  868. package/packages/mcp/dist/prompts/index.d.ts.map +0 -1
  869. package/packages/mcp/dist/prompts/index.js +0 -2
  870. package/packages/mcp/dist/prompts/index.js.map +0 -1
  871. package/packages/mcp/dist/prompts/protocol.d.ts +0 -11
  872. package/packages/mcp/dist/prompts/protocol.d.ts.map +0 -1
  873. package/packages/mcp/dist/prompts/protocol.js +0 -160
  874. package/packages/mcp/dist/prompts/protocol.js.map +0 -1
  875. package/packages/mcp/dist/resources/agents.d.ts +0 -11
  876. package/packages/mcp/dist/resources/agents.d.ts.map +0 -1
  877. package/packages/mcp/dist/resources/agents.js +0 -17
  878. package/packages/mcp/dist/resources/agents.js.map +0 -1
  879. package/packages/mcp/dist/resources/inbox.d.ts +0 -11
  880. package/packages/mcp/dist/resources/inbox.d.ts.map +0 -1
  881. package/packages/mcp/dist/resources/inbox.js +0 -17
  882. package/packages/mcp/dist/resources/inbox.js.map +0 -1
  883. package/packages/mcp/dist/resources/index.d.ts +0 -4
  884. package/packages/mcp/dist/resources/index.d.ts.map +0 -1
  885. package/packages/mcp/dist/resources/index.js +0 -4
  886. package/packages/mcp/dist/resources/index.js.map +0 -1
  887. package/packages/mcp/dist/resources/project.d.ts +0 -11
  888. package/packages/mcp/dist/resources/project.d.ts.map +0 -1
  889. package/packages/mcp/dist/resources/project.js +0 -21
  890. package/packages/mcp/dist/resources/project.js.map +0 -1
  891. package/packages/mcp/dist/server.d.ts +0 -23
  892. package/packages/mcp/dist/server.d.ts.map +0 -1
  893. package/packages/mcp/dist/server.js +0 -317
  894. package/packages/mcp/dist/server.js.map +0 -1
  895. package/packages/mcp/dist/simple.d.ts +0 -170
  896. package/packages/mcp/dist/simple.d.ts.map +0 -1
  897. package/packages/mcp/dist/simple.js +0 -120
  898. package/packages/mcp/dist/simple.js.map +0 -1
  899. package/packages/mcp/dist/tools/index.d.ts +0 -20
  900. package/packages/mcp/dist/tools/index.d.ts.map +0 -1
  901. package/packages/mcp/dist/tools/index.js +0 -20
  902. package/packages/mcp/dist/tools/index.js.map +0 -1
  903. package/packages/mcp/dist/tools/relay-broadcast.d.ts +0 -20
  904. package/packages/mcp/dist/tools/relay-broadcast.d.ts.map +0 -1
  905. package/packages/mcp/dist/tools/relay-broadcast.js +0 -25
  906. package/packages/mcp/dist/tools/relay-broadcast.js.map +0 -1
  907. package/packages/mcp/dist/tools/relay-channel.d.ts +0 -75
  908. package/packages/mcp/dist/tools/relay-channel.d.ts.map +0 -1
  909. package/packages/mcp/dist/tools/relay-channel.js +0 -124
  910. package/packages/mcp/dist/tools/relay-channel.js.map +0 -1
  911. package/packages/mcp/dist/tools/relay-connected.d.ts +0 -17
  912. package/packages/mcp/dist/tools/relay-connected.d.ts.map +0 -1
  913. package/packages/mcp/dist/tools/relay-connected.js +0 -54
  914. package/packages/mcp/dist/tools/relay-connected.js.map +0 -1
  915. package/packages/mcp/dist/tools/relay-consensus.d.ts +0 -45
  916. package/packages/mcp/dist/tools/relay-consensus.d.ts.map +0 -1
  917. package/packages/mcp/dist/tools/relay-consensus.js +0 -80
  918. package/packages/mcp/dist/tools/relay-consensus.js.map +0 -1
  919. package/packages/mcp/dist/tools/relay-continuity.d.ts +0 -35
  920. package/packages/mcp/dist/tools/relay-continuity.d.ts.map +0 -1
  921. package/packages/mcp/dist/tools/relay-continuity.js +0 -101
  922. package/packages/mcp/dist/tools/relay-continuity.js.map +0 -1
  923. package/packages/mcp/dist/tools/relay-health.d.ts +0 -20
  924. package/packages/mcp/dist/tools/relay-health.d.ts.map +0 -1
  925. package/packages/mcp/dist/tools/relay-health.js +0 -130
  926. package/packages/mcp/dist/tools/relay-health.js.map +0 -1
  927. package/packages/mcp/dist/tools/relay-inbox.d.ts +0 -26
  928. package/packages/mcp/dist/tools/relay-inbox.d.ts.map +0 -1
  929. package/packages/mcp/dist/tools/relay-inbox.js +0 -58
  930. package/packages/mcp/dist/tools/relay-inbox.js.map +0 -1
  931. package/packages/mcp/dist/tools/relay-logs.d.ts +0 -20
  932. package/packages/mcp/dist/tools/relay-logs.d.ts.map +0 -1
  933. package/packages/mcp/dist/tools/relay-logs.js +0 -90
  934. package/packages/mcp/dist/tools/relay-logs.js.map +0 -1
  935. package/packages/mcp/dist/tools/relay-messages.d.ts +0 -32
  936. package/packages/mcp/dist/tools/relay-messages.d.ts.map +0 -1
  937. package/packages/mcp/dist/tools/relay-messages.js +0 -61
  938. package/packages/mcp/dist/tools/relay-messages.js.map +0 -1
  939. package/packages/mcp/dist/tools/relay-metrics.d.ts +0 -17
  940. package/packages/mcp/dist/tools/relay-metrics.d.ts.map +0 -1
  941. package/packages/mcp/dist/tools/relay-metrics.js +0 -124
  942. package/packages/mcp/dist/tools/relay-metrics.js.map +0 -1
  943. package/packages/mcp/dist/tools/relay-release.d.ts +0 -20
  944. package/packages/mcp/dist/tools/relay-release.d.ts.map +0 -1
  945. package/packages/mcp/dist/tools/relay-release.js +0 -44
  946. package/packages/mcp/dist/tools/relay-release.js.map +0 -1
  947. package/packages/mcp/dist/tools/relay-remove-agent.d.ts +0 -20
  948. package/packages/mcp/dist/tools/relay-remove-agent.d.ts.map +0 -1
  949. package/packages/mcp/dist/tools/relay-remove-agent.js +0 -50
  950. package/packages/mcp/dist/tools/relay-remove-agent.js.map +0 -1
  951. package/packages/mcp/dist/tools/relay-send.d.ts +0 -29
  952. package/packages/mcp/dist/tools/relay-send.d.ts.map +0 -1
  953. package/packages/mcp/dist/tools/relay-send.js +0 -73
  954. package/packages/mcp/dist/tools/relay-send.js.map +0 -1
  955. package/packages/mcp/dist/tools/relay-set-model.d.ts +0 -23
  956. package/packages/mcp/dist/tools/relay-set-model.d.ts.map +0 -1
  957. package/packages/mcp/dist/tools/relay-set-model.js +0 -52
  958. package/packages/mcp/dist/tools/relay-set-model.js.map +0 -1
  959. package/packages/mcp/dist/tools/relay-shadow.d.ts +0 -30
  960. package/packages/mcp/dist/tools/relay-shadow.d.ts.map +0 -1
  961. package/packages/mcp/dist/tools/relay-shadow.js +0 -55
  962. package/packages/mcp/dist/tools/relay-shadow.js.map +0 -1
  963. package/packages/mcp/dist/tools/relay-spawn.d.ts +0 -36
  964. package/packages/mcp/dist/tools/relay-spawn.d.ts.map +0 -1
  965. package/packages/mcp/dist/tools/relay-spawn.js +0 -73
  966. package/packages/mcp/dist/tools/relay-spawn.js.map +0 -1
  967. package/packages/mcp/dist/tools/relay-status.d.ts +0 -11
  968. package/packages/mcp/dist/tools/relay-status.d.ts.map +0 -1
  969. package/packages/mcp/dist/tools/relay-status.js +0 -43
  970. package/packages/mcp/dist/tools/relay-status.js.map +0 -1
  971. package/packages/mcp/dist/tools/relay-subscribe.d.ts +0 -27
  972. package/packages/mcp/dist/tools/relay-subscribe.d.ts.map +0 -1
  973. package/packages/mcp/dist/tools/relay-subscribe.js +0 -49
  974. package/packages/mcp/dist/tools/relay-subscribe.js.map +0 -1
  975. package/packages/mcp/dist/tools/relay-who.d.ts +0 -20
  976. package/packages/mcp/dist/tools/relay-who.d.ts.map +0 -1
  977. package/packages/mcp/dist/tools/relay-who.js +0 -62
  978. package/packages/mcp/dist/tools/relay-who.js.map +0 -1
  979. package/packages/mcp/package.json +0 -82
  980. package/packages/mcp/src/bin.ts +0 -200
  981. package/packages/mcp/src/client-adapter.ts +0 -358
  982. package/packages/mcp/src/cloud.ts +0 -41
  983. package/packages/mcp/src/errors.ts +0 -17
  984. package/packages/mcp/src/file-transport.ts +0 -275
  985. package/packages/mcp/src/hybrid-client.ts +0 -25
  986. package/packages/mcp/src/index.ts +0 -143
  987. package/packages/mcp/src/install-cli.ts +0 -210
  988. package/packages/mcp/src/install.ts +0 -820
  989. package/packages/mcp/src/prompts/index.ts +0 -1
  990. package/packages/mcp/src/prompts/protocol.ts +0 -164
  991. package/packages/mcp/src/resources/agents.ts +0 -21
  992. package/packages/mcp/src/resources/inbox.ts +0 -21
  993. package/packages/mcp/src/resources/index.ts +0 -3
  994. package/packages/mcp/src/resources/project.ts +0 -29
  995. package/packages/mcp/src/server.ts +0 -475
  996. package/packages/mcp/src/simple.ts +0 -214
  997. package/packages/mcp/src/tools/index.ts +0 -155
  998. package/packages/mcp/src/tools/relay-broadcast.ts +0 -32
  999. package/packages/mcp/src/tools/relay-channel.ts +0 -151
  1000. package/packages/mcp/src/tools/relay-connected.ts +0 -67
  1001. package/packages/mcp/src/tools/relay-consensus.ts +0 -92
  1002. package/packages/mcp/src/tools/relay-continuity.ts +0 -127
  1003. package/packages/mcp/src/tools/relay-health.ts +0 -148
  1004. package/packages/mcp/src/tools/relay-inbox.ts +0 -70
  1005. package/packages/mcp/src/tools/relay-logs.ts +0 -106
  1006. package/packages/mcp/src/tools/relay-messages.ts +0 -66
  1007. package/packages/mcp/src/tools/relay-metrics.ts +0 -142
  1008. package/packages/mcp/src/tools/relay-release.ts +0 -54
  1009. package/packages/mcp/src/tools/relay-remove-agent.ts +0 -58
  1010. package/packages/mcp/src/tools/relay-send.ts +0 -84
  1011. package/packages/mcp/src/tools/relay-set-model.ts +0 -62
  1012. package/packages/mcp/src/tools/relay-shadow.ts +0 -67
  1013. package/packages/mcp/src/tools/relay-spawn.ts +0 -87
  1014. package/packages/mcp/src/tools/relay-status.ts +0 -57
  1015. package/packages/mcp/src/tools/relay-subscribe.ts +0 -61
  1016. package/packages/mcp/src/tools/relay-who.ts +0 -75
  1017. package/packages/mcp/tests/client.test.ts +0 -451
  1018. package/packages/mcp/tests/discover.test.ts +0 -256
  1019. package/packages/mcp/tests/install.test.ts +0 -123
  1020. package/packages/mcp/tests/prompts.test.ts +0 -12
  1021. package/packages/mcp/tests/resources.test.ts +0 -53
  1022. package/packages/mcp/tests/tools.test.ts +0 -1516
  1023. package/packages/mcp/tsconfig.json +0 -22
  1024. package/packages/mcp/vitest.config.ts +0 -9
  1025. package/packages/protocol/dist/channels.d.ts +0 -137
  1026. package/packages/protocol/dist/channels.d.ts.map +0 -1
  1027. package/packages/protocol/dist/channels.js +0 -154
  1028. package/packages/protocol/dist/channels.js.map +0 -1
  1029. package/packages/protocol/dist/framing.d.ts +0 -80
  1030. package/packages/protocol/dist/framing.d.ts.map +0 -1
  1031. package/packages/protocol/dist/framing.js +0 -206
  1032. package/packages/protocol/dist/framing.js.map +0 -1
  1033. package/packages/protocol/dist/id-generator.d.ts +0 -35
  1034. package/packages/protocol/dist/id-generator.d.ts.map +0 -1
  1035. package/packages/protocol/dist/id-generator.js +0 -60
  1036. package/packages/protocol/dist/id-generator.js.map +0 -1
  1037. package/packages/protocol/dist/index.d.ts +0 -5
  1038. package/packages/protocol/dist/index.d.ts.map +0 -1
  1039. package/packages/protocol/dist/index.js +0 -5
  1040. package/packages/protocol/dist/index.js.map +0 -1
  1041. package/packages/protocol/dist/relay-pty-schemas.d.ts +0 -340
  1042. package/packages/protocol/dist/relay-pty-schemas.d.ts.map +0 -1
  1043. package/packages/protocol/dist/relay-pty-schemas.js +0 -60
  1044. package/packages/protocol/dist/relay-pty-schemas.js.map +0 -1
  1045. package/packages/protocol/dist/types.d.ts +0 -793
  1046. package/packages/protocol/dist/types.d.ts.map +0 -1
  1047. package/packages/protocol/dist/types.js +0 -8
  1048. package/packages/protocol/dist/types.js.map +0 -1
  1049. package/packages/protocol/package.json +0 -61
  1050. package/packages/protocol/src/channels.test.ts +0 -330
  1051. package/packages/protocol/src/channels.ts +0 -270
  1052. package/packages/protocol/src/framing.test.ts +0 -164
  1053. package/packages/protocol/src/framing.ts +0 -242
  1054. package/packages/protocol/src/id-generator.ts +0 -69
  1055. package/packages/protocol/src/index.ts +0 -4
  1056. package/packages/protocol/src/relay-pty-schemas.ts +0 -400
  1057. package/packages/protocol/src/types.test.ts +0 -271
  1058. package/packages/protocol/src/types.ts +0 -988
  1059. package/packages/protocol/tsconfig.json +0 -21
  1060. package/packages/protocol/vitest.config.ts +0 -9
  1061. package/packages/resiliency/dist/cgroup-manager.d.ts +0 -152
  1062. package/packages/resiliency/dist/cgroup-manager.d.ts.map +0 -1
  1063. package/packages/resiliency/dist/cgroup-manager.js +0 -394
  1064. package/packages/resiliency/dist/cgroup-manager.js.map +0 -1
  1065. package/packages/resiliency/dist/context-persistence.d.ts +0 -140
  1066. package/packages/resiliency/dist/context-persistence.d.ts.map +0 -1
  1067. package/packages/resiliency/dist/context-persistence.js +0 -397
  1068. package/packages/resiliency/dist/context-persistence.js.map +0 -1
  1069. package/packages/resiliency/dist/crash-insights.d.ts +0 -156
  1070. package/packages/resiliency/dist/crash-insights.d.ts.map +0 -1
  1071. package/packages/resiliency/dist/crash-insights.js +0 -492
  1072. package/packages/resiliency/dist/crash-insights.js.map +0 -1
  1073. package/packages/resiliency/dist/gossip-health.d.ts +0 -137
  1074. package/packages/resiliency/dist/gossip-health.d.ts.map +0 -1
  1075. package/packages/resiliency/dist/gossip-health.js +0 -241
  1076. package/packages/resiliency/dist/gossip-health.js.map +0 -1
  1077. package/packages/resiliency/dist/health-monitor.d.ts +0 -97
  1078. package/packages/resiliency/dist/health-monitor.d.ts.map +0 -1
  1079. package/packages/resiliency/dist/health-monitor.js +0 -291
  1080. package/packages/resiliency/dist/health-monitor.js.map +0 -1
  1081. package/packages/resiliency/dist/index.d.ts +0 -69
  1082. package/packages/resiliency/dist/index.d.ts.map +0 -1
  1083. package/packages/resiliency/dist/index.js +0 -69
  1084. package/packages/resiliency/dist/index.js.map +0 -1
  1085. package/packages/resiliency/dist/leader-watchdog.d.ts +0 -109
  1086. package/packages/resiliency/dist/leader-watchdog.d.ts.map +0 -1
  1087. package/packages/resiliency/dist/leader-watchdog.js +0 -189
  1088. package/packages/resiliency/dist/leader-watchdog.js.map +0 -1
  1089. package/packages/resiliency/dist/logger.d.ts +0 -114
  1090. package/packages/resiliency/dist/logger.d.ts.map +0 -1
  1091. package/packages/resiliency/dist/logger.js +0 -250
  1092. package/packages/resiliency/dist/logger.js.map +0 -1
  1093. package/packages/resiliency/dist/memory-monitor.d.ts +0 -172
  1094. package/packages/resiliency/dist/memory-monitor.d.ts.map +0 -1
  1095. package/packages/resiliency/dist/memory-monitor.js +0 -599
  1096. package/packages/resiliency/dist/memory-monitor.js.map +0 -1
  1097. package/packages/resiliency/dist/metrics.d.ts +0 -115
  1098. package/packages/resiliency/dist/metrics.d.ts.map +0 -1
  1099. package/packages/resiliency/dist/metrics.js +0 -239
  1100. package/packages/resiliency/dist/metrics.js.map +0 -1
  1101. package/packages/resiliency/dist/provider-context.d.ts +0 -100
  1102. package/packages/resiliency/dist/provider-context.d.ts.map +0 -1
  1103. package/packages/resiliency/dist/provider-context.js +0 -362
  1104. package/packages/resiliency/dist/provider-context.js.map +0 -1
  1105. package/packages/resiliency/dist/stateless-lead.d.ts +0 -149
  1106. package/packages/resiliency/dist/stateless-lead.d.ts.map +0 -1
  1107. package/packages/resiliency/dist/stateless-lead.js +0 -308
  1108. package/packages/resiliency/dist/stateless-lead.js.map +0 -1
  1109. package/packages/resiliency/dist/supervisor.d.ts +0 -147
  1110. package/packages/resiliency/dist/supervisor.d.ts.map +0 -1
  1111. package/packages/resiliency/dist/supervisor.js +0 -459
  1112. package/packages/resiliency/dist/supervisor.js.map +0 -1
  1113. package/packages/resiliency/package.json +0 -38
  1114. package/packages/resiliency/src/cgroup-manager.ts +0 -468
  1115. package/packages/resiliency/src/context-persistence.ts +0 -538
  1116. package/packages/resiliency/src/crash-insights.test.ts +0 -620
  1117. package/packages/resiliency/src/crash-insights.ts +0 -660
  1118. package/packages/resiliency/src/gossip-health.ts +0 -333
  1119. package/packages/resiliency/src/health-monitor.ts +0 -371
  1120. package/packages/resiliency/src/index.ts +0 -157
  1121. package/packages/resiliency/src/leader-watchdog.ts +0 -260
  1122. package/packages/resiliency/src/logger.ts +0 -320
  1123. package/packages/resiliency/src/memory-monitor.test.ts +0 -637
  1124. package/packages/resiliency/src/memory-monitor.ts +0 -740
  1125. package/packages/resiliency/src/metrics.ts +0 -311
  1126. package/packages/resiliency/src/provider-context.ts +0 -452
  1127. package/packages/resiliency/src/stateless-lead.ts +0 -408
  1128. package/packages/resiliency/src/supervisor.ts +0 -578
  1129. package/packages/resiliency/tsconfig.json +0 -21
  1130. package/packages/resiliency/vitest.config.ts +0 -9
  1131. package/packages/sdk/dist/discovery.d.ts +0 -10
  1132. package/packages/sdk/dist/discovery.d.ts.map +0 -1
  1133. package/packages/sdk/dist/discovery.js +0 -22
  1134. package/packages/sdk/dist/discovery.js.map +0 -1
  1135. package/packages/sdk/dist/errors.d.ts +0 -9
  1136. package/packages/sdk/dist/errors.d.ts.map +0 -1
  1137. package/packages/sdk/dist/errors.js +0 -9
  1138. package/packages/sdk/dist/errors.js.map +0 -1
  1139. package/packages/sdk/dist/protocol/index.d.ts +0 -8
  1140. package/packages/sdk/dist/protocol/index.d.ts.map +0 -1
  1141. package/packages/sdk/dist/protocol/index.js +0 -8
  1142. package/packages/sdk/dist/protocol/index.js.map +0 -1
  1143. package/packages/sdk/examples/SWARM_CAPABILITIES.md +0 -498
  1144. package/packages/sdk/examples/SWARM_PATTERNS.md +0 -541
  1145. package/packages/sdk/src/client.test.ts +0 -1041
  1146. package/packages/sdk/src/discovery.ts +0 -38
  1147. package/packages/sdk/src/errors.ts +0 -17
  1148. package/packages/sdk/src/logs.test.ts +0 -98
  1149. package/packages/sdk/src/protocol/framing.test.ts +0 -164
  1150. package/packages/sdk/src/protocol/index.ts +0 -8
  1151. package/packages/spawner/.trajectories/index.json +0 -5
  1152. package/packages/spawner/API.md +0 -256
  1153. package/packages/spawner/dist/index.d.ts +0 -8
  1154. package/packages/spawner/dist/index.d.ts.map +0 -1
  1155. package/packages/spawner/dist/index.js +0 -8
  1156. package/packages/spawner/dist/index.js.map +0 -1
  1157. package/packages/spawner/dist/types.d.ts +0 -552
  1158. package/packages/spawner/dist/types.d.ts.map +0 -1
  1159. package/packages/spawner/dist/types.js +0 -193
  1160. package/packages/spawner/dist/types.js.map +0 -1
  1161. package/packages/spawner/package.json +0 -47
  1162. package/packages/spawner/src/index.ts +0 -8
  1163. package/packages/spawner/src/types.test.ts +0 -385
  1164. package/packages/spawner/src/types.ts +0 -228
  1165. package/packages/spawner/tsconfig.json +0 -19
  1166. package/packages/spawner/vitest.config.ts +0 -9
  1167. package/packages/state/dist/agent-state.d.ts +0 -40
  1168. package/packages/state/dist/agent-state.d.ts.map +0 -1
  1169. package/packages/state/dist/agent-state.js +0 -120
  1170. package/packages/state/dist/agent-state.js.map +0 -1
  1171. package/packages/state/dist/index.d.ts +0 -8
  1172. package/packages/state/dist/index.d.ts.map +0 -1
  1173. package/packages/state/dist/index.js +0 -8
  1174. package/packages/state/dist/index.js.map +0 -1
  1175. package/packages/state/package.json +0 -37
  1176. package/packages/state/src/agent-state.test.ts +0 -335
  1177. package/packages/state/src/agent-state.ts +0 -153
  1178. package/packages/state/src/index.ts +0 -12
  1179. package/packages/state/tsconfig.json +0 -21
  1180. package/packages/state/vitest.config.ts +0 -9
  1181. package/packages/storage/dist/adapter.d.ts +0 -189
  1182. package/packages/storage/dist/adapter.d.ts.map +0 -1
  1183. package/packages/storage/dist/adapter.js +0 -267
  1184. package/packages/storage/dist/adapter.js.map +0 -1
  1185. package/packages/storage/dist/batched-sqlite-adapter.d.ts +0 -75
  1186. package/packages/storage/dist/batched-sqlite-adapter.d.ts.map +0 -1
  1187. package/packages/storage/dist/batched-sqlite-adapter.js +0 -189
  1188. package/packages/storage/dist/batched-sqlite-adapter.js.map +0 -1
  1189. package/packages/storage/dist/dead-letter-queue.d.ts +0 -196
  1190. package/packages/storage/dist/dead-letter-queue.d.ts.map +0 -1
  1191. package/packages/storage/dist/dead-letter-queue.js +0 -427
  1192. package/packages/storage/dist/dead-letter-queue.js.map +0 -1
  1193. package/packages/storage/dist/dlq-adapter.d.ts +0 -195
  1194. package/packages/storage/dist/dlq-adapter.d.ts.map +0 -1
  1195. package/packages/storage/dist/dlq-adapter.js +0 -664
  1196. package/packages/storage/dist/dlq-adapter.js.map +0 -1
  1197. package/packages/storage/dist/index.d.ts +0 -6
  1198. package/packages/storage/dist/index.d.ts.map +0 -1
  1199. package/packages/storage/dist/index.js +0 -7
  1200. package/packages/storage/dist/index.js.map +0 -1
  1201. package/packages/storage/dist/jsonl-adapter.d.ts +0 -91
  1202. package/packages/storage/dist/jsonl-adapter.d.ts.map +0 -1
  1203. package/packages/storage/dist/jsonl-adapter.js +0 -580
  1204. package/packages/storage/dist/jsonl-adapter.js.map +0 -1
  1205. package/packages/storage/dist/sqlite-adapter.d.ts +0 -131
  1206. package/packages/storage/dist/sqlite-adapter.d.ts.map +0 -1
  1207. package/packages/storage/dist/sqlite-adapter.js +0 -865
  1208. package/packages/storage/dist/sqlite-adapter.js.map +0 -1
  1209. package/packages/storage/package.json +0 -74
  1210. package/packages/storage/src/adapter.ts +0 -446
  1211. package/packages/storage/src/batched-sqlite-adapter.test.ts +0 -256
  1212. package/packages/storage/src/batched-sqlite-adapter.ts +0 -239
  1213. package/packages/storage/src/dead-letter-queue.ts +0 -643
  1214. package/packages/storage/src/dlq-adapter.test.ts +0 -509
  1215. package/packages/storage/src/dlq-adapter.ts +0 -954
  1216. package/packages/storage/src/index.ts +0 -6
  1217. package/packages/storage/src/jsonl-adapter.test.ts +0 -239
  1218. package/packages/storage/src/jsonl-adapter.ts +0 -704
  1219. package/packages/storage/src/memory-adapter.test.ts +0 -36
  1220. package/packages/storage/src/sqlite-adapter.test.ts +0 -580
  1221. package/packages/storage/src/sqlite-adapter.ts +0 -1099
  1222. package/packages/storage/tsconfig.json +0 -21
  1223. package/packages/storage/vitest.config.ts +0 -9
  1224. package/packages/wrapper/dist/__fixtures__/claude-outputs.d.ts +0 -49
  1225. package/packages/wrapper/dist/__fixtures__/claude-outputs.d.ts.map +0 -1
  1226. package/packages/wrapper/dist/__fixtures__/claude-outputs.js +0 -443
  1227. package/packages/wrapper/dist/__fixtures__/claude-outputs.js.map +0 -1
  1228. package/packages/wrapper/dist/__fixtures__/codex-outputs.d.ts +0 -9
  1229. package/packages/wrapper/dist/__fixtures__/codex-outputs.d.ts.map +0 -1
  1230. package/packages/wrapper/dist/__fixtures__/codex-outputs.js +0 -94
  1231. package/packages/wrapper/dist/__fixtures__/codex-outputs.js.map +0 -1
  1232. package/packages/wrapper/dist/__fixtures__/gemini-outputs.d.ts +0 -19
  1233. package/packages/wrapper/dist/__fixtures__/gemini-outputs.d.ts.map +0 -1
  1234. package/packages/wrapper/dist/__fixtures__/gemini-outputs.js +0 -144
  1235. package/packages/wrapper/dist/__fixtures__/gemini-outputs.js.map +0 -1
  1236. package/packages/wrapper/dist/__fixtures__/index.d.ts +0 -68
  1237. package/packages/wrapper/dist/__fixtures__/index.d.ts.map +0 -1
  1238. package/packages/wrapper/dist/__fixtures__/index.js +0 -44
  1239. package/packages/wrapper/dist/__fixtures__/index.js.map +0 -1
  1240. package/packages/wrapper/dist/auth-detection.d.ts +0 -49
  1241. package/packages/wrapper/dist/auth-detection.d.ts.map +0 -1
  1242. package/packages/wrapper/dist/auth-detection.js +0 -199
  1243. package/packages/wrapper/dist/auth-detection.js.map +0 -1
  1244. package/packages/wrapper/dist/base-wrapper.d.ts +0 -254
  1245. package/packages/wrapper/dist/base-wrapper.d.ts.map +0 -1
  1246. package/packages/wrapper/dist/base-wrapper.js +0 -664
  1247. package/packages/wrapper/dist/base-wrapper.js.map +0 -1
  1248. package/packages/wrapper/dist/client.d.ts +0 -291
  1249. package/packages/wrapper/dist/client.d.ts.map +0 -1
  1250. package/packages/wrapper/dist/client.js +0 -926
  1251. package/packages/wrapper/dist/client.js.map +0 -1
  1252. package/packages/wrapper/dist/id-generator.d.ts +0 -35
  1253. package/packages/wrapper/dist/id-generator.d.ts.map +0 -1
  1254. package/packages/wrapper/dist/id-generator.js +0 -60
  1255. package/packages/wrapper/dist/id-generator.js.map +0 -1
  1256. package/packages/wrapper/dist/idle-detector.d.ts +0 -114
  1257. package/packages/wrapper/dist/idle-detector.d.ts.map +0 -1
  1258. package/packages/wrapper/dist/idle-detector.js +0 -317
  1259. package/packages/wrapper/dist/idle-detector.js.map +0 -1
  1260. package/packages/wrapper/dist/inbox.d.ts +0 -37
  1261. package/packages/wrapper/dist/inbox.d.ts.map +0 -1
  1262. package/packages/wrapper/dist/inbox.js +0 -73
  1263. package/packages/wrapper/dist/inbox.js.map +0 -1
  1264. package/packages/wrapper/dist/index.d.ts +0 -40
  1265. package/packages/wrapper/dist/index.d.ts.map +0 -1
  1266. package/packages/wrapper/dist/index.js +0 -53
  1267. package/packages/wrapper/dist/index.js.map +0 -1
  1268. package/packages/wrapper/dist/opencode-api.d.ts +0 -106
  1269. package/packages/wrapper/dist/opencode-api.d.ts.map +0 -1
  1270. package/packages/wrapper/dist/opencode-api.js +0 -219
  1271. package/packages/wrapper/dist/opencode-api.js.map +0 -1
  1272. package/packages/wrapper/dist/opencode-wrapper.d.ts +0 -161
  1273. package/packages/wrapper/dist/opencode-wrapper.d.ts.map +0 -1
  1274. package/packages/wrapper/dist/opencode-wrapper.js +0 -438
  1275. package/packages/wrapper/dist/opencode-wrapper.js.map +0 -1
  1276. package/packages/wrapper/dist/parser.d.ts +0 -236
  1277. package/packages/wrapper/dist/parser.d.ts.map +0 -1
  1278. package/packages/wrapper/dist/parser.js +0 -1238
  1279. package/packages/wrapper/dist/parser.js.map +0 -1
  1280. package/packages/wrapper/dist/prompt-composer.d.ts +0 -67
  1281. package/packages/wrapper/dist/prompt-composer.d.ts.map +0 -1
  1282. package/packages/wrapper/dist/prompt-composer.js +0 -168
  1283. package/packages/wrapper/dist/prompt-composer.js.map +0 -1
  1284. package/packages/wrapper/dist/relay-pty-orchestrator.d.ts +0 -486
  1285. package/packages/wrapper/dist/relay-pty-orchestrator.d.ts.map +0 -1
  1286. package/packages/wrapper/dist/relay-pty-orchestrator.js +0 -2550
  1287. package/packages/wrapper/dist/relay-pty-orchestrator.js.map +0 -1
  1288. package/packages/wrapper/dist/shared.d.ts +0 -262
  1289. package/packages/wrapper/dist/shared.d.ts.map +0 -1
  1290. package/packages/wrapper/dist/shared.js +0 -507
  1291. package/packages/wrapper/dist/shared.js.map +0 -1
  1292. package/packages/wrapper/dist/stuck-detector.d.ts +0 -161
  1293. package/packages/wrapper/dist/stuck-detector.d.ts.map +0 -1
  1294. package/packages/wrapper/dist/stuck-detector.js +0 -402
  1295. package/packages/wrapper/dist/stuck-detector.js.map +0 -1
  1296. package/packages/wrapper/dist/tmux-resolver.d.ts +0 -55
  1297. package/packages/wrapper/dist/tmux-resolver.d.ts.map +0 -1
  1298. package/packages/wrapper/dist/tmux-resolver.js +0 -175
  1299. package/packages/wrapper/dist/tmux-resolver.js.map +0 -1
  1300. package/packages/wrapper/dist/tmux-wrapper.d.ts +0 -352
  1301. package/packages/wrapper/dist/tmux-wrapper.d.ts.map +0 -1
  1302. package/packages/wrapper/dist/tmux-wrapper.js +0 -1816
  1303. package/packages/wrapper/dist/tmux-wrapper.js.map +0 -1
  1304. package/packages/wrapper/dist/trajectory-integration.d.ts +0 -292
  1305. package/packages/wrapper/dist/trajectory-integration.d.ts.map +0 -1
  1306. package/packages/wrapper/dist/trajectory-integration.js +0 -979
  1307. package/packages/wrapper/dist/trajectory-integration.js.map +0 -1
  1308. package/packages/wrapper/dist/wrapper-events.d.ts +0 -489
  1309. package/packages/wrapper/dist/wrapper-events.d.ts.map +0 -1
  1310. package/packages/wrapper/dist/wrapper-events.js +0 -252
  1311. package/packages/wrapper/dist/wrapper-events.js.map +0 -1
  1312. package/packages/wrapper/dist/wrapper-types.d.ts +0 -41
  1313. package/packages/wrapper/dist/wrapper-types.d.ts.map +0 -1
  1314. package/packages/wrapper/dist/wrapper-types.js +0 -7
  1315. package/packages/wrapper/dist/wrapper-types.js.map +0 -1
  1316. package/packages/wrapper/package.json +0 -60
  1317. package/packages/wrapper/src/__fixtures__/claude-outputs.ts +0 -471
  1318. package/packages/wrapper/src/__fixtures__/codex-outputs.ts +0 -99
  1319. package/packages/wrapper/src/__fixtures__/gemini-outputs.ts +0 -151
  1320. package/packages/wrapper/src/__fixtures__/index.ts +0 -47
  1321. package/packages/wrapper/src/auth-detection.ts +0 -244
  1322. package/packages/wrapper/src/base-wrapper.test.ts +0 -589
  1323. package/packages/wrapper/src/base-wrapper.ts +0 -841
  1324. package/packages/wrapper/src/client.test.ts +0 -351
  1325. package/packages/wrapper/src/client.ts +0 -1166
  1326. package/packages/wrapper/src/id-generator.test.ts +0 -71
  1327. package/packages/wrapper/src/id-generator.ts +0 -69
  1328. package/packages/wrapper/src/idle-detector.test.ts +0 -418
  1329. package/packages/wrapper/src/idle-detector.ts +0 -384
  1330. package/packages/wrapper/src/inbox.test.ts +0 -233
  1331. package/packages/wrapper/src/inbox.ts +0 -89
  1332. package/packages/wrapper/src/index.ts +0 -199
  1333. package/packages/wrapper/src/opencode-api.test.ts +0 -292
  1334. package/packages/wrapper/src/opencode-api.ts +0 -285
  1335. package/packages/wrapper/src/opencode-wrapper.ts +0 -541
  1336. package/packages/wrapper/src/parser.regression.test.ts +0 -251
  1337. package/packages/wrapper/src/parser.test.ts +0 -1359
  1338. package/packages/wrapper/src/parser.ts +0 -1477
  1339. package/packages/wrapper/src/prompt-composer.test.ts +0 -219
  1340. package/packages/wrapper/src/prompt-composer.ts +0 -231
  1341. package/packages/wrapper/src/relay-pty-orchestrator.test.ts +0 -1386
  1342. package/packages/wrapper/src/relay-pty-orchestrator.ts +0 -3041
  1343. package/packages/wrapper/src/shared.test.ts +0 -467
  1344. package/packages/wrapper/src/shared.ts +0 -652
  1345. package/packages/wrapper/src/stuck-detector.test.ts +0 -303
  1346. package/packages/wrapper/src/stuck-detector.ts +0 -511
  1347. package/packages/wrapper/src/tmux-resolver.test.ts +0 -104
  1348. package/packages/wrapper/src/tmux-resolver.ts +0 -207
  1349. package/packages/wrapper/src/tmux-wrapper.test.ts +0 -316
  1350. package/packages/wrapper/src/tmux-wrapper.ts +0 -2095
  1351. package/packages/wrapper/src/trajectory-detection.test.ts +0 -151
  1352. package/packages/wrapper/src/trajectory-integration.ts +0 -1261
  1353. package/packages/wrapper/src/wrapper-events.ts +0 -395
  1354. package/packages/wrapper/src/wrapper-types.ts +0 -45
  1355. package/packages/wrapper/tsconfig.json +0 -19
  1356. package/packages/wrapper/vitest.config.ts +0 -9
  1357. /package/packages/{broker-sdk → sdk}/dist/__tests__/facade.test.d.ts +0 -0
  1358. /package/packages/{broker-sdk → sdk}/dist/__tests__/facade.test.d.ts.map +0 -0
  1359. /package/packages/{broker-sdk → sdk}/dist/__tests__/integration.test.d.ts +0 -0
  1360. /package/packages/{broker-sdk → sdk}/dist/__tests__/integration.test.d.ts.map +0 -0
  1361. /package/packages/{broker-sdk → sdk}/dist/__tests__/quickstart.test.d.ts +0 -0
  1362. /package/packages/{broker-sdk → sdk}/dist/__tests__/quickstart.test.d.ts.map +0 -0
  1363. /package/packages/{broker-sdk → sdk}/dist/__tests__/unit.test.d.ts +0 -0
  1364. /package/packages/{broker-sdk → sdk}/dist/__tests__/unit.test.d.ts.map +0 -0
  1365. /package/packages/{broker-sdk → sdk}/dist/browser.d.ts +0 -0
  1366. /package/packages/{broker-sdk → sdk}/dist/browser.d.ts.map +0 -0
  1367. /package/packages/{broker-sdk → sdk}/dist/browser.js +0 -0
  1368. /package/packages/{broker-sdk → sdk}/dist/browser.js.map +0 -0
  1369. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.d.ts +0 -0
  1370. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.d.ts.map +0 -0
  1371. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.js +0 -0
  1372. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.js.map +0 -0
  1373. /package/packages/{broker-sdk → sdk}/dist/consensus.d.ts +0 -0
  1374. /package/packages/{broker-sdk → sdk}/dist/consensus.d.ts.map +0 -0
  1375. /package/packages/{broker-sdk → sdk}/dist/consensus.js +0 -0
  1376. /package/packages/{broker-sdk → sdk}/dist/consensus.js.map +0 -0
  1377. /package/packages/{broker-sdk → sdk}/dist/examples/demo.d.ts +0 -0
  1378. /package/packages/{broker-sdk → sdk}/dist/examples/demo.d.ts.map +0 -0
  1379. /package/packages/{broker-sdk → sdk}/dist/examples/demo.js +0 -0
  1380. /package/packages/{broker-sdk → sdk}/dist/examples/demo.js.map +0 -0
  1381. /package/packages/{broker-sdk → sdk}/dist/examples/example.d.ts +0 -0
  1382. /package/packages/{broker-sdk → sdk}/dist/examples/example.d.ts.map +0 -0
  1383. /package/packages/{broker-sdk → sdk}/dist/examples/example.js +0 -0
  1384. /package/packages/{broker-sdk → sdk}/dist/examples/example.js.map +0 -0
  1385. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.d.ts +0 -0
  1386. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.d.ts.map +0 -0
  1387. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.js +0 -0
  1388. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.js.map +0 -0
  1389. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.d.ts +0 -0
  1390. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.d.ts.map +0 -0
  1391. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.js +0 -0
  1392. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.js.map +0 -0
  1393. /package/packages/{broker-sdk → sdk}/dist/protocol.js +0 -0
  1394. /package/packages/{broker-sdk → sdk}/dist/protocol.js.map +0 -0
  1395. /package/packages/{broker-sdk → sdk}/dist/pty.d.ts +0 -0
  1396. /package/packages/{broker-sdk → sdk}/dist/shadow.js +0 -0
  1397. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.d.ts +0 -0
  1398. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.d.ts.map +0 -0
  1399. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.js +0 -0
  1400. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.js.map +0 -0
  1401. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.d.ts +0 -0
  1402. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.d.ts.map +0 -0
  1403. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.js +0 -0
  1404. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.js.map +0 -0
  1405. /package/packages/{broker-sdk → sdk}/dist/workflows/state.d.ts +0 -0
  1406. /package/packages/{broker-sdk → sdk}/dist/workflows/state.d.ts.map +0 -0
  1407. /package/packages/{broker-sdk → sdk}/dist/workflows/state.js +0 -0
  1408. /package/packages/{broker-sdk → sdk}/dist/workflows/state.js.map +0 -0
  1409. /package/packages/{broker-sdk → sdk}/src/__tests__/workflow-trajectory.test.ts +0 -0
  1410. /package/packages/{broker-sdk → sdk}/src/browser.ts +0 -0
  1411. /package/packages/{broker-sdk → sdk}/src/consensus-helpers.ts +0 -0
  1412. /package/packages/{broker-sdk → sdk}/src/consensus.ts +0 -0
  1413. /package/packages/{broker-sdk → sdk}/src/examples/demo.ts +0 -0
  1414. /package/packages/{broker-sdk → sdk}/src/examples/example.ts +0 -0
  1415. /package/packages/{broker-sdk → sdk}/src/examples/quickstart.ts +0 -0
  1416. /package/packages/{broker-sdk → sdk}/src/examples/ralph-loop.ts +0 -0
  1417. /package/packages/{broker-sdk → sdk}/src/examples/sample-prd.json +0 -0
  1418. /package/packages/{broker-sdk → sdk}/src/workflows/barrier.ts +0 -0
  1419. /package/packages/{broker-sdk → sdk}/src/workflows/memory-db.ts +0 -0
  1420. /package/packages/{broker-sdk → sdk}/src/workflows/state.ts +0 -0
@@ -1,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
- });