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,1359 +0,0 @@
1
- /**
2
- * Unit tests for PTY Output Parser
3
- */
4
-
5
- import { describe, it, expect, beforeEach } from 'vitest';
6
- import { OutputParser, parseSummaryFromOutput, parseSessionEndFromOutput, parseRelayMetadataFromOutput } from './parser.js';
7
-
8
- describe('OutputParser', () => {
9
- let parser: OutputParser;
10
-
11
- beforeEach(() => {
12
- parser = new OutputParser();
13
- });
14
-
15
- describe('Inline format - ->relay:target message', () => {
16
- it('parses basic inline relay command', () => {
17
- const result = parser.parse('->relay:agent2 Hello there\n');
18
-
19
- expect(result.commands).toHaveLength(1);
20
- expect(result.commands[0]).toMatchObject({
21
- to: 'agent2',
22
- kind: 'message',
23
- body: 'Hello there',
24
- raw: '->relay:agent2 Hello there',
25
- });
26
- expect(result.output).toBe('');
27
- });
28
-
29
- it('extracts target and body correctly', () => {
30
- const result = parser.parse('->relay:supervisor This is a longer message with multiple words\n');
31
-
32
- expect(result.commands).toHaveLength(1);
33
- expect(result.commands[0].to).toBe('supervisor');
34
- expect(result.commands[0].body).toBe('This is a longer message with multiple words');
35
- });
36
-
37
- it('only matches at start of line (after whitespace)', () => {
38
- const result = parser.parse(' ->relay:agent2 Indented message\n');
39
-
40
- expect(result.commands).toHaveLength(1);
41
- expect(result.commands[0].to).toBe('agent2');
42
- expect(result.commands[0].body).toBe('Indented message');
43
- });
44
-
45
- it('handles Gemini sparkle prefix (✦)', () => {
46
- const result = parser.parse('✦ ->relay:Lead STATUS: Gem is ready\n');
47
-
48
- expect(result.commands).toHaveLength(1);
49
- expect(result.commands[0].to).toBe('Lead');
50
- expect(result.commands[0].body).toBe('STATUS: Gem is ready');
51
- });
52
-
53
- it('does not match ->relay: in middle of line', () => {
54
- const result = parser.parse('This is text ->relay:agent2 should not match\n');
55
-
56
- expect(result.commands).toHaveLength(0);
57
- expect(result.output).toBe('This is text ->relay:agent2 should not match\n');
58
- });
59
-
60
- it('handles ->thinking: variant', () => {
61
- const result = parser.parse('->thinking:agent2 Considering the options\n');
62
-
63
- expect(result.commands).toHaveLength(1);
64
- expect(result.commands[0]).toMatchObject({
65
- to: 'agent2',
66
- kind: 'thinking',
67
- body: 'Considering the options',
68
- });
69
- });
70
-
71
- it('parses multiple inline commands', () => {
72
- const result = parser.parse('->relay:agent1 First message\n->relay:agent2 Second message\n');
73
-
74
- expect(result.commands).toHaveLength(2);
75
- expect(result.commands[0].to).toBe('agent1');
76
- expect(result.commands[0].body).toBe('First message');
77
- expect(result.commands[1].to).toBe('agent2');
78
- expect(result.commands[1].body).toBe('Second message');
79
- });
80
-
81
- it('parses multi-line inline command with indented continuation', () => {
82
- // TUI wrapping indents continuation lines
83
- const result = parser.parse('->relay:agent2 First line\n Second line\n');
84
-
85
- expect(result.commands).toHaveLength(1);
86
- expect(result.commands[0].body).toBe('First line\n Second line');
87
- expect(result.output).toBe('');
88
- });
89
-
90
- it('does not swallow subsequent inline command after indented continuation', () => {
91
- const result = parser.parse('->relay:agent1 First line\n Second line\n->relay:agent2 Next\n');
92
-
93
- expect(result.commands).toHaveLength(2);
94
- expect(result.commands[0].body).toBe('First line\n Second line');
95
- expect(result.commands[1].body).toBe('Next');
96
- expect(result.output).toBe('');
97
- });
98
-
99
- it('captures bullet list continuation lines', () => {
100
- const input = '->relay:agent2 Updates for mcl/2z1:\n- Task A\n- Task B\n\nAfter\n';
101
- const result = parser.parse(input);
102
-
103
- expect(result.commands).toHaveLength(1);
104
- expect(result.commands[0].body).toBe('Updates for mcl/2z1:\n- Task A\n- Task B');
105
- expect(result.output).toBe('\nAfter\n');
106
- });
107
-
108
- it('captures non-indented paragraph continuation until blank line', () => {
109
- const input = '->relay:lead Signing off. Progress report:\nSummary line one.\nSummary line two.\n\nNext output\n';
110
- const result = parser.parse(input);
111
-
112
- expect(result.commands).toHaveLength(1);
113
- expect(result.commands[0].body).toBe('Signing off. Progress report:\nSummary line one.\nSummary line two.');
114
- expect(result.output).toBe('\nNext output\n');
115
- });
116
-
117
- it('stops continuation at prompt-ish line', () => {
118
- const input = '->relay:agent2 Message body\n> \nFollow-up\n';
119
- const result = parser.parse(input);
120
-
121
- expect(result.commands).toHaveLength(1);
122
- expect(result.commands[0].body).toBe('Message body');
123
- expect(result.output).toBe('> \nFollow-up\n');
124
- });
125
-
126
- it('does not require spaces in target name', () => {
127
- const result = parser.parse('->relay:agent-with-dashes Message here\n');
128
-
129
- expect(result.commands).toHaveLength(1);
130
- expect(result.commands[0].to).toBe('agent-with-dashes');
131
- });
132
- });
133
-
134
- describe('Block format - [[RELAY]]...[[/RELAY]]', () => {
135
- it('parses single-line block', () => {
136
- const result = parser.parse('[[RELAY]]{"to":"agent2","type":"message","body":"Hello"}[[/RELAY]]\n');
137
-
138
- expect(result.commands).toHaveLength(1);
139
- expect(result.commands[0]).toMatchObject({
140
- to: 'agent2',
141
- kind: 'message',
142
- body: 'Hello',
143
- });
144
- });
145
-
146
- it('parses multi-line block', () => {
147
- const input = `[[RELAY]]
148
- {
149
- "to": "agent2",
150
- "type": "message",
151
- "body": "Multi-line message"
152
- }
153
- [[/RELAY]]
154
- `;
155
- const result = parser.parse(input);
156
-
157
- expect(result.commands).toHaveLength(1);
158
- expect(result.commands[0]).toMatchObject({
159
- to: 'agent2',
160
- kind: 'message',
161
- body: 'Multi-line message',
162
- });
163
- });
164
-
165
- it('extracts JSON fields (to, type, body, data)', () => {
166
- const input = '[[RELAY]]{"to":"agent2","type":"action","body":"Execute","data":{"cmd":"ls"}}[[/RELAY]]\n';
167
- const result = parser.parse(input);
168
-
169
- expect(result.commands).toHaveLength(1);
170
- expect(result.commands[0]).toMatchObject({
171
- to: 'agent2',
172
- kind: 'action',
173
- body: 'Execute',
174
- data: { cmd: 'ls' },
175
- });
176
- });
177
-
178
- it('handles invalid JSON gracefully', () => {
179
- const result = parser.parse('[[RELAY]]{invalid json}[[/RELAY]]\n');
180
-
181
- expect(result.commands).toHaveLength(0);
182
- expect(result.output).toBe('\n');
183
- });
184
-
185
- it('handles missing required fields', () => {
186
- const result = parser.parse('[[RELAY]]{"body":"No target"}[[/RELAY]]\n');
187
-
188
- expect(result.commands).toHaveLength(0);
189
- });
190
-
191
- it('handles missing body field with text fallback', () => {
192
- const result = parser.parse('[[RELAY]]{"to":"agent2","type":"message","text":"Using text field"}[[/RELAY]]\n');
193
-
194
- expect(result.commands).toHaveLength(1);
195
- expect(result.commands[0].body).toBe('Using text field');
196
- });
197
-
198
- it('does not parse blocks unless [[RELAY]] is at start of line', () => {
199
- const result = parser.parse(
200
- 'Some output [[RELAY]]{"to":"agent2","type":"message","body":"Hello"}[[/RELAY]]\n'
201
- );
202
-
203
- expect(result.commands).toHaveLength(0);
204
- expect(result.output).toBe('Some output [[RELAY]]{"to":"agent2","type":"message","body":"Hello"}[[/RELAY]]\n');
205
- });
206
-
207
- it('handles block with thinking type', () => {
208
- const result = parser.parse('[[RELAY]]{"to":"agent2","type":"thinking","body":"Pondering"}[[/RELAY]]\n');
209
-
210
- expect(result.commands).toHaveLength(1);
211
- expect(result.commands[0].kind).toBe('thinking');
212
- });
213
-
214
- it('handles block with state type', () => {
215
- const result = parser.parse('[[RELAY]]{"to":"agent2","type":"state","body":"Updated"}[[/RELAY]]\n');
216
-
217
- expect(result.commands).toHaveLength(1);
218
- expect(result.commands[0].kind).toBe('state');
219
- });
220
- });
221
-
222
- describe('Fenced inline format - ->relay:Target <<< ... >>>', () => {
223
- it('parses basic fenced inline message', () => {
224
- const input = '->relay:agent2 <<<\nHello there\n>>>\n';
225
- const result = parser.parse(input);
226
-
227
- expect(result.commands).toHaveLength(1);
228
- expect(result.commands[0]).toMatchObject({
229
- to: 'agent2',
230
- kind: 'message',
231
- body: 'Hello there',
232
- });
233
- expect(result.output).toBe('');
234
- });
235
-
236
- it('preserves blank lines within fenced message', () => {
237
- const input = '->relay:agent2 <<<\nFirst paragraph\n\nSecond paragraph\n>>>\n';
238
- const result = parser.parse(input);
239
-
240
- expect(result.commands).toHaveLength(1);
241
- expect(result.commands[0].body).toBe('First paragraph\n\nSecond paragraph');
242
- });
243
-
244
- it('handles multi-line message with complex content', () => {
245
- const input = `->relay:Lead <<<
246
- Here's my analysis:
247
-
248
- 1. First point
249
- 2. Second point
250
-
251
- The conclusion is...
252
- >>>
253
- `;
254
- const result = parser.parse(input);
255
-
256
- expect(result.commands).toHaveLength(1);
257
- expect(result.commands[0].to).toBe('Lead');
258
- expect(result.commands[0].body).toContain('First point');
259
- expect(result.commands[0].body).toContain('Second point');
260
- expect(result.commands[0].body).toContain('The conclusion is...');
261
- });
262
-
263
- it('handles fenced message with code blocks inside', () => {
264
- const input = `->relay:Dev <<<
265
- Here's the code:
266
-
267
- \`\`\`typescript
268
- function hello() {
269
- console.log('Hi');
270
- }
271
- \`\`\`
272
-
273
- Let me know if that works.
274
- >>>
275
- `;
276
- const result = parser.parse(input);
277
-
278
- expect(result.commands).toHaveLength(1);
279
- expect(result.commands[0].body).toContain('```typescript');
280
- expect(result.commands[0].body).toContain('function hello()');
281
- });
282
-
283
- it('handles fenced thinking variant', () => {
284
- const input = '->thinking:agent2 <<<\nConsidering options:\n- Option A\n- Option B\n>>>\n';
285
- const result = parser.parse(input);
286
-
287
- expect(result.commands).toHaveLength(1);
288
- expect(result.commands[0]).toMatchObject({
289
- to: 'agent2',
290
- kind: 'thinking',
291
- });
292
- expect(result.commands[0].body).toContain('Option A');
293
- });
294
-
295
- it('handles thread syntax in fenced messages', () => {
296
- const input = '->relay:agent2 [thread:review-123] <<<\nMulti-line\nreview comments\n>>>\n';
297
- const result = parser.parse(input);
298
-
299
- expect(result.commands).toHaveLength(1);
300
- expect(result.commands[0].thread).toBe('review-123');
301
- expect(result.commands[0].body).toBe('Multi-line\nreview comments');
302
- });
303
-
304
- it('handles await syntax in fenced messages', () => {
305
- const input = '->relay:agent2 [await:5m] <<<\nPlease confirm\n>>>\n';
306
- const result = parser.parse(input);
307
-
308
- expect(result.commands).toHaveLength(1);
309
- expect(result.commands[0].sync?.blocking).toBe(true);
310
- expect(result.commands[0].sync?.timeoutMs).toBe(300000);
311
- expect(result.commands[0].body).toBe('Please confirm');
312
- });
313
-
314
- it('handles cross-project thread syntax in fenced messages', () => {
315
- const input = '->relay:Backend [thread:frontend-app:auth-flow] <<<\nCan you check the session handling?\n>>>\n';
316
- const result = parser.parse(input);
317
-
318
- expect(result.commands).toHaveLength(1);
319
- expect(result.commands[0].to).toBe('Backend');
320
- expect(result.commands[0].thread).toBe('auth-flow');
321
- expect(result.commands[0].threadProject).toBe('frontend-app');
322
- expect(result.commands[0].body).toBe('Can you check the session handling?');
323
- });
324
-
325
- it('handles cross-project syntax in fenced messages', () => {
326
- const input = '->relay:other-project:agent2 <<<\nCross-project message\n>>>\n';
327
- const result = parser.parse(input);
328
-
329
- expect(result.commands).toHaveLength(1);
330
- expect(result.commands[0].to).toBe('agent2');
331
- expect(result.commands[0].project).toBe('other-project');
332
- });
333
-
334
- it('processes content after fenced block closes', () => {
335
- const input = '->relay:agent1 <<<\nFenced content\n>>>\n->relay:agent2 Regular inline\n';
336
- const result = parser.parse(input);
337
-
338
- expect(result.commands).toHaveLength(2);
339
- expect(result.commands[0].to).toBe('agent1');
340
- expect(result.commands[0].body).toBe('Fenced content');
341
- expect(result.commands[1].to).toBe('agent2');
342
- expect(result.commands[1].body).toBe('Regular inline');
343
- });
344
-
345
- it('accumulates across multiple parse calls (streaming)', () => {
346
- const result1 = parser.parse('->relay:agent2 <<<\nFirst part\n');
347
- expect(result1.commands).toHaveLength(0);
348
- expect(result1.output).toBe('');
349
-
350
- const result2 = parser.parse('Second part\n');
351
- expect(result2.commands).toHaveLength(0);
352
-
353
- const result3 = parser.parse('>>>\n');
354
- expect(result3.commands).toHaveLength(1);
355
- expect(result3.commands[0].body).toBe('First part\nSecond part');
356
- });
357
-
358
- it('handles >>> with leading/trailing whitespace', () => {
359
- const input = '->relay:agent2 <<<\nContent\n >>> \n';
360
- const result = parser.parse(input);
361
-
362
- expect(result.commands).toHaveLength(1);
363
- expect(result.commands[0].body).toBe('Content');
364
- });
365
-
366
- it('trims leading/trailing whitespace from body', () => {
367
- const input = '->relay:agent2 <<<\n\n Content here \n\n>>>\n';
368
- const result = parser.parse(input);
369
-
370
- expect(result.commands).toHaveLength(1);
371
- // Leading blank lines should be trimmed, content preserved
372
- expect(result.commands[0].body).toBe('Content here');
373
- });
374
-
375
- it('handles fenced message with only blank lines', () => {
376
- const input = '->relay:agent2 <<<\n\n\n>>>\n';
377
- const result = parser.parse(input);
378
-
379
- expect(result.commands).toHaveLength(1);
380
- expect(result.commands[0].body).toBe('');
381
- });
382
-
383
- it('handles prefixes like bullets before fenced start', () => {
384
- const input = '- ->relay:agent2 <<<\nContent from list\n>>>\n';
385
- const result = parser.parse(input);
386
-
387
- expect(result.commands).toHaveLength(1);
388
- expect(result.commands[0].body).toBe('Content from list');
389
- });
390
-
391
- it('handles >>> at end of content line (agent-relay-9igw)', () => {
392
- // Agents often put >>> at end of message rather than on its own line
393
- const input = '->relay:agent2 <<<\nMessage content>>>\n';
394
- const result = parser.parse(input);
395
-
396
- expect(result.commands).toHaveLength(1);
397
- expect(result.commands[0].to).toBe('agent2');
398
- expect(result.commands[0].body).toBe('Message content');
399
- });
400
-
401
- it('handles >>> at end of multi-line content', () => {
402
- const input = '->relay:Lead <<<\nFirst line\nSecond line>>>\n';
403
- const result = parser.parse(input);
404
-
405
- expect(result.commands).toHaveLength(1);
406
- expect(result.commands[0].body).toBe('First line\nSecond line');
407
- });
408
-
409
- it('auto-closes and sends incomplete fenced block when new relay starts', () => {
410
- // Previously this would DISCARD the first message - now it should SEND it
411
- const input = '->relay:Alice <<<\nImportant content\n->relay:Bob Hello\n';
412
- const result = parser.parse(input);
413
-
414
- expect(result.commands).toHaveLength(2);
415
- expect(result.commands[0].to).toBe('Alice');
416
- expect(result.commands[0].body).toBe('Important content');
417
- expect(result.commands[1].to).toBe('Bob');
418
- expect(result.commands[1].body).toBe('Hello');
419
- });
420
-
421
- it('auto-closes fenced block when new fenced block starts', () => {
422
- const input = '->relay:Agent1 <<<\nFirst message\n->relay:Agent2 <<<\nSecond message\n>>>\n';
423
- const result = parser.parse(input);
424
-
425
- expect(result.commands).toHaveLength(2);
426
- expect(result.commands[0].to).toBe('Agent1');
427
- expect(result.commands[0].body).toBe('First message');
428
- expect(result.commands[1].to).toBe('Agent2');
429
- expect(result.commands[1].body).toBe('Second message');
430
- });
431
-
432
- it('does not send empty incomplete fenced block', () => {
433
- const input = '->relay:Agent1 <<<\n\n->relay:Agent2 Hello\n';
434
- const result = parser.parse(input);
435
-
436
- // Only Agent2's message should be sent (Agent1's was empty)
437
- expect(result.commands).toHaveLength(1);
438
- expect(result.commands[0].to).toBe('Agent2');
439
- });
440
-
441
- it('auto-closes fenced block when MAX_FENCED_LINES exceeded (agent-relay-9igw)', () => {
442
- // When agent forgets >>> and sends many lines, the parser auto-closes
443
- // MAX_FENCED_LINES is set to 30 to prevent messages getting stuck forever
444
- const parser = new OutputParser();
445
- let lines = '->relay:Lead <<<\n';
446
- for (let i = 1; i <= 35; i++) {
447
- lines += `Line ${i} of message content\n`;
448
- }
449
- lines += 'Output after message\n';
450
-
451
- const _result = parser.parse(lines);
452
-
453
- // Message should be auto-closed and sent (discarded due to exceeding limit)
454
- // Parser should not be stuck in fenced mode
455
- expect((parser as unknown as { inFencedInline: boolean }).inFencedInline).toBe(false);
456
- });
457
- });
458
-
459
- describe('Code fence handling', () => {
460
- it('ignores ->relay: inside code fences', () => {
461
- const input = '```\n->relay:agent2 This should be ignored\n```\n';
462
- const result = parser.parse(input);
463
-
464
- expect(result.commands).toHaveLength(0);
465
- expect(result.output).toBe('```\n->relay:agent2 This should be ignored\n```\n');
466
- });
467
-
468
- it('tracks code fence state correctly', () => {
469
- const input = 'Before fence\n```\n->relay:agent2 Inside fence\n```\nAfter fence\n->relay:agent3 Outside fence\n';
470
- const result = parser.parse(input);
471
-
472
- expect(result.commands).toHaveLength(1);
473
- expect(result.commands[0].to).toBe('agent3');
474
- expect(result.output).toContain('->relay:agent2 Inside fence');
475
- });
476
-
477
- it('handles multiple code fences', () => {
478
- const input = '```\n->relay:a1 First fence\n```\nBetween\n```\n->relay:a2 Second fence\n```\n->relay:a3 Outside\n';
479
- const result = parser.parse(input);
480
-
481
- expect(result.commands).toHaveLength(1);
482
- expect(result.commands[0].to).toBe('a3');
483
- });
484
-
485
- it('handles code fence with language specifier', () => {
486
- const input = '```javascript\n->relay:agent2 Code example\n```\n';
487
- const result = parser.parse(input);
488
-
489
- expect(result.commands).toHaveLength(0);
490
- expect(result.output).toContain('->relay:agent2 Code example');
491
- });
492
-
493
- it('does not interfere with block format in code fence', () => {
494
- const input = '```\n[[RELAY]]{"to":"agent2","type":"message","body":"In fence"}[[/RELAY]]\n```\n';
495
- const result = parser.parse(input);
496
-
497
- expect(result.commands).toHaveLength(0);
498
- expect(result.output).toContain('[[RELAY]]');
499
- });
500
- });
501
-
502
- describe('Escaping', () => {
503
- it('\\->relay: outputs as ->relay: without triggering command', () => {
504
- const result = parser.parse('\\->relay:agent2 This is escaped\n');
505
-
506
- expect(result.commands).toHaveLength(0);
507
- expect(result.output).toBe('->relay:agent2 This is escaped\n');
508
- });
509
-
510
- it('\\->thinking: outputs as ->thinking: without triggering command', () => {
511
- const result = parser.parse('\\->thinking:agent2 This is escaped\n');
512
-
513
- expect(result.commands).toHaveLength(0);
514
- expect(result.output).toBe('->thinking:agent2 This is escaped\n');
515
- });
516
-
517
- it('escapes work with indentation', () => {
518
- const result = parser.parse(' \\->relay:agent2 Indented escape\n');
519
-
520
- expect(result.commands).toHaveLength(0);
521
- expect(result.output).toBe(' ->relay:agent2 Indented escape\n');
522
- });
523
-
524
- it('only escapes at line start', () => {
525
- const result = parser.parse('Text \\->relay:agent2 Not escaped\n');
526
-
527
- expect(result.commands).toHaveLength(0);
528
- expect(result.output).toBe('Text \\->relay:agent2 Not escaped\n');
529
- });
530
- });
531
-
532
- describe('Instructional text filtering', () => {
533
- it('skips inline commands that look like PROTOCOL instructions', () => {
534
- const result = parser.parse('->relay:AgentName message. PROTOCOL: (1) Wait for task via relay...\n');
535
-
536
- expect(result.commands).toHaveLength(0);
537
- expect(result.output).toBe('->relay:AgentName message. PROTOCOL: (1) Wait for task via relay...\n');
538
- });
539
-
540
- it('skips inline commands containing escaped relay prefix in body', () => {
541
- const result = parser.parse('->relay:docs SEND: \\->relay:AgentName message\n');
542
-
543
- expect(result.commands).toHaveLength(0);
544
- expect(result.output).toBe('->relay:docs SEND: \\->relay:AgentName message\n');
545
- });
546
-
547
- it('skips inline commands with Agent Relay header', () => {
548
- const result = parser.parse('->relay:Test [Agent Relay] You are connected\n');
549
-
550
- expect(result.commands).toHaveLength(0);
551
- expect(result.output).toBe('->relay:Test [Agent Relay] You are connected\n');
552
- });
553
-
554
- it('skips inline commands with Example: marker', () => {
555
- const result = parser.parse('->relay:docs Example: use this pattern\n');
556
-
557
- expect(result.commands).toHaveLength(0);
558
- expect(result.output).toBe('->relay:docs Example: use this pattern\n');
559
- });
560
-
561
- it('skips inline commands with MULTI-LINE: instruction', () => {
562
- const result = parser.parse('->relay:Target MULTI-LINE: use <<< and >>> markers\n');
563
-
564
- expect(result.commands).toHaveLength(0);
565
- expect(result.output).toBe('->relay:Target MULTI-LINE: use <<< and >>> markers\n');
566
- });
567
-
568
- it('skips inline commands with AgentName placeholder', () => {
569
- const result = parser.parse('->relay:docs AgentName Hello there\n');
570
-
571
- expect(result.commands).toHaveLength(0);
572
- expect(result.output).toBe('->relay:docs AgentName Hello there\n');
573
- });
574
-
575
- it('skips thinking commands with PROTOCOL instruction', () => {
576
- const result = parser.parse('->thinking:docs PROTOCOL: (1) Wait for task\n');
577
-
578
- expect(result.commands).toHaveLength(0);
579
- expect(result.output).toBe('->thinking:docs PROTOCOL: (1) Wait for task\n');
580
- });
581
-
582
- it('does not skip real commands with normal body', () => {
583
- const result = parser.parse('->relay:agent2 Hello, can you help me with this task?\n');
584
-
585
- expect(result.commands).toHaveLength(1);
586
- expect(result.commands[0].to).toBe('agent2');
587
- expect(result.commands[0].body).toBe('Hello, can you help me with this task?');
588
- });
589
-
590
- it('does not skip commands that happen to contain partial instruction words', () => {
591
- // "protocol" in lowercase mid-sentence should NOT trigger filter
592
- const result = parser.parse('->relay:agent2 We need to follow the protocol for this task\n');
593
-
594
- expect(result.commands).toHaveLength(1);
595
- expect(result.commands[0].to).toBe('agent2');
596
- });
597
- });
598
-
599
- describe('Spawn and release command filtering', () => {
600
- it('does not parse spawn command as relay message', () => {
601
- // Spawn commands should be handled by the wrapper's spawn subsystem, not parsed as messages
602
- const result = parser.parse('->relay:spawn Developer claude "task description"\n');
603
-
604
- // Should NOT be parsed as a relay message to target "spawn"
605
- expect(result.commands).toHaveLength(0);
606
- // Should be passed through for the wrapper to handle
607
- expect(result.output).toBe('->relay:spawn Developer claude "task description"\n');
608
- });
609
-
610
- it('does not parse spawn command without task as relay message', () => {
611
- const result = parser.parse('->relay:spawn Worker codex\n');
612
-
613
- expect(result.commands).toHaveLength(0);
614
- expect(result.output).toBe('->relay:spawn Worker codex\n');
615
- });
616
-
617
- it('does not parse release command as relay message', () => {
618
- const result = parser.parse('->relay:release Developer\n');
619
-
620
- expect(result.commands).toHaveLength(0);
621
- expect(result.output).toBe('->relay:release Developer\n');
622
- });
623
-
624
- it('does not parse spawn command with prefixes as relay message', () => {
625
- // TUI output may have bullet prefixes
626
- const result = parser.parse('• ->relay:spawn Worker claude "task"\n');
627
-
628
- expect(result.commands).toHaveLength(0);
629
- expect(result.output).toBe('• ->relay:spawn Worker claude "task"\n');
630
- });
631
-
632
- it('still parses regular relay messages to spawn-like agent names', () => {
633
- // An agent named "spawner" should still receive messages
634
- const result = parser.parse('->relay:spawner Please do something\n');
635
-
636
- expect(result.commands).toHaveLength(1);
637
- expect(result.commands[0].to).toBe('spawner');
638
- expect(result.commands[0].body).toBe('Please do something');
639
- });
640
-
641
- it('handles spawn command case-insensitively', () => {
642
- const result = parser.parse('->relay:SPAWN Worker claude\n');
643
-
644
- expect(result.commands).toHaveLength(0);
645
- expect(result.output).toBe('->relay:SPAWN Worker claude\n');
646
- });
647
-
648
- it('does not parse spawn command with fenced format as relay message (agent-relay-312)', () => {
649
- // Bug fix: spawn with fenced format should be passed through, not parsed as message to "spawn"
650
- // Previously this would match the fenced pattern and send to target "spawn"
651
- const result = parser.parse('->relay:spawn Backend claude <<<\n');
652
-
653
- // Should NOT create a command to target "spawn"
654
- expect(result.commands).toHaveLength(0);
655
- // Should be passed through for wrapper to handle
656
- expect(result.output).toBe('->relay:spawn Backend claude <<<\n');
657
- });
658
-
659
- it('does not enter fenced mode for spawn command with fence markers', () => {
660
- // Multi-line spawn with fenced format - should all be passed through
661
- const result1 = parser.parse('->relay:spawn Worker claude <<<\n');
662
- expect(result1.commands).toHaveLength(0);
663
- expect(result1.output).toBe('->relay:spawn Worker claude <<<\n');
664
-
665
- // Parser should NOT be in fenced mode, so this line is independent
666
- const result2 = parser.parse('Task description here\n');
667
- expect(result2.commands).toHaveLength(0);
668
- expect(result2.output).toBe('Task description here\n');
669
-
670
- // Fence close should also be passed through
671
- const result3 = parser.parse('>>>\n');
672
- expect(result3.commands).toHaveLength(0);
673
- expect(result3.output).toBe('>>>\n');
674
- });
675
-
676
- it('passes through spawn with fence marker as CLI (agent-relay-312)', () => {
677
- // This is corrupted input where CLI became a fence marker
678
- const result = parser.parse('->relay:spawn Worker <<<\n');
679
-
680
- expect(result.commands).toHaveLength(0);
681
- expect(result.output).toBe('->relay:spawn Worker <<<\n');
682
- });
683
-
684
- it('passes through release command with fenced format', () => {
685
- // Release commands should also be passed through
686
- const result = parser.parse('->relay:release Worker <<<\n');
687
-
688
- expect(result.commands).toHaveLength(0);
689
- expect(result.output).toBe('->relay:release Worker <<<\n');
690
- });
691
-
692
- it('passes through spawn command embedded in other content', () => {
693
- // Spawn pattern appearing in documentation/content should be passed through
694
- const result = parser.parse('->relay:spawn Worker claude\n');
695
-
696
- expect(result.commands).toHaveLength(0);
697
- expect(result.output).toBe('->relay:spawn Worker claude\n');
698
- });
699
- });
700
-
701
- describe('Instructional text filtering', () => {
702
- it('filters out placeholder target names like AgentName', () => {
703
- const input = '->relay:AgentName This is an example message\n';
704
- const result = parser.parse(input);
705
- expect(result.commands).toHaveLength(0);
706
- expect(result.output).toBe(input);
707
- });
708
-
709
- it('filters out placeholder target names case-insensitively', () => {
710
- const input = '->relay:AGENTNAME Example\n->relay:target Test\n->relay:Recipient Hello\n';
711
- const result = parser.parse(input);
712
- expect(result.commands).toHaveLength(0);
713
- });
714
-
715
- it('filters out fenced messages to placeholder targets', () => {
716
- const input = '->relay:AgentName <<<\nMulti-line example message\n>>>\n';
717
- const result = parser.parse(input);
718
- expect(result.commands).toHaveLength(0);
719
- });
720
-
721
- it('filters out PROTOCOL: instruction patterns in body', () => {
722
- const input = '->relay:Lead message | PROTOCOL: (1) ACK receipt\n';
723
- const result = parser.parse(input);
724
- expect(result.commands).toHaveLength(0);
725
- });
726
-
727
- it('allows real agent names that are not placeholders', () => {
728
- const input = '->relay:Lead Hello\n->relay:Alice Test\n';
729
- const result = parser.parse(input);
730
- expect(result.commands).toHaveLength(2);
731
- expect(result.commands[0].to).toBe('Lead');
732
- expect(result.commands[1].to).toBe('Alice');
733
- });
734
-
735
- it('filters instructional text in fenced inline mode', () => {
736
- const input = '->relay:Lead <<<\nExample: how to send\n>>>\n';
737
- const result = parser.parse(input);
738
- expect(result.commands).toHaveLength(0);
739
- });
740
- });
741
-
742
- describe('Edge cases', () => {
743
- it('inline commands must be complete in single chunk (no cross-chunk buffering)', () => {
744
- // Inline relay commands split across chunks are NOT detected
745
- // This is intentional for minimal terminal interference
746
- const result1 = parser.parse('->relay:agent2 Partial');
747
- expect(result1.commands).toHaveLength(0);
748
- expect(result1.output).toBe('->relay:agent2 Partial'); // Passed through
749
-
750
- const result2 = parser.parse(' line\n');
751
- expect(result2.commands).toHaveLength(0); // Not detected
752
- expect(result2.output).toBe(' line\n'); // Passed through
753
- });
754
-
755
- it('buffers partial block correctly', () => {
756
- const result1 = parser.parse('[[RELAY]]{"to":"agent2"');
757
- expect(result1.commands).toHaveLength(0);
758
-
759
- const result2 = parser.parse(',"type":"message","body":"Test"}[[/RELAY]]\n');
760
- expect(result2.commands).toHaveLength(1);
761
- expect(result2.commands[0].body).toBe('Test');
762
- });
763
-
764
- it('flush() does not detect incomplete inline commands (no buffering)', () => {
765
- // Incomplete inline commands without newline are passed through, not buffered
766
- const result1 = parser.parse('->relay:agent2 No newline');
767
- expect(result1.output).toBe('->relay:agent2 No newline'); // Passed through
768
-
769
- const result = parser.flush();
770
- expect(result.commands).toHaveLength(0); // Not detected
771
- });
772
-
773
- it('flush() clears all state', () => {
774
- parser.parse('```\n->relay:agent2 In fence');
775
- parser.flush();
776
-
777
- const result = parser.parse('->relay:agent3 After flush\n');
778
- expect(result.commands).toHaveLength(1);
779
- expect(result.commands[0].to).toBe('agent3');
780
- });
781
-
782
- it('reset() clears state', () => {
783
- parser.parse('[[RELAY]]{"to":"agent2"');
784
- parser.reset();
785
-
786
- const result = parser.parse('Regular output\n');
787
- expect(result.commands).toHaveLength(0);
788
- expect(result.output).toBe('Regular output\n');
789
- });
790
-
791
- it('reset() clears code fence state', () => {
792
- parser.parse('```\n->relay:agent2 test');
793
- parser.reset();
794
-
795
- const result = parser.parse('->relay:agent3 After reset\n');
796
- expect(result.commands).toHaveLength(1);
797
- expect(result.commands[0].to).toBe('agent3');
798
- });
799
-
800
- it('handles empty input', () => {
801
- const result = parser.parse('');
802
-
803
- expect(result.commands).toHaveLength(0);
804
- expect(result.output).toBe('');
805
- });
806
-
807
- it('handles only newlines', () => {
808
- const result = parser.parse('\n\n\n');
809
-
810
- expect(result.commands).toHaveLength(0);
811
- expect(result.output).toBe('\n\n\n');
812
- });
813
-
814
- it('handles block size limit', () => {
815
- const smallParser = new OutputParser({ maxBlockBytes: 50 });
816
- const largeBlock = '[[RELAY]]' + 'x'.repeat(100) + '[[/RELAY]]\n';
817
-
818
- const result = smallParser.parse(largeBlock);
819
- expect(result.commands).toHaveLength(0);
820
- });
821
-
822
- it('preserves regular output', () => {
823
- const input = 'Regular output line 1\nRegular output line 2\n';
824
- const result = parser.parse(input);
825
-
826
- expect(result.commands).toHaveLength(0);
827
- expect(result.output).toBe(input);
828
- });
829
-
830
- it('mixes relay commands with regular output', () => {
831
- const input = 'Output 1\n->relay:agent2 Message\nOutput 2\n';
832
- const result = parser.parse(input);
833
-
834
- expect(result.commands).toHaveLength(1);
835
- expect(result.output).toBe('Output 1\nOutput 2\n');
836
- });
837
-
838
- it('handles incomplete block at flush', () => {
839
- parser.parse('[[RELAY]]{"to":"agent2","type":"message"');
840
- const result = parser.flush();
841
-
842
- expect(result.commands).toHaveLength(0);
843
- });
844
-
845
- it('handles target with special characters', () => {
846
- const result = parser.parse('->relay:agent_2-test.v1 Message\n');
847
-
848
- expect(result.commands).toHaveLength(1);
849
- expect(result.commands[0].to).toBe('agent_2-test.v1');
850
- });
851
-
852
- it('handles empty body in inline format', () => {
853
- // Note: The regex requires at least one character for the body (.+)
854
- // so this actually won't match as a command
855
- const result = parser.parse('->relay:agent2 Test\n');
856
-
857
- expect(result.commands).toHaveLength(1);
858
- expect(result.commands[0].body).toBe('Test');
859
- });
860
-
861
- it('handles empty body in block format', () => {
862
- const result = parser.parse('[[RELAY]]{"to":"agent2","type":"message","body":""}[[/RELAY]]\n');
863
-
864
- expect(result.commands).toHaveLength(1);
865
- expect(result.commands[0].body).toBe('');
866
- });
867
- });
868
-
869
- describe('Parser options', () => {
870
- it('disables inline format when enableInline is false', () => {
871
- const customParser = new OutputParser({ enableInline: false });
872
- const result = customParser.parse('->relay:agent2 Message\n');
873
-
874
- expect(result.commands).toHaveLength(0);
875
- expect(result.output).toBe('->relay:agent2 Message\n');
876
- });
877
-
878
- it('disables block format when enableBlock is false', () => {
879
- const customParser = new OutputParser({ enableBlock: false });
880
- const result = customParser.parse('[[RELAY]]{"to":"agent2","type":"message","body":"Test"}[[/RELAY]]\n');
881
-
882
- expect(result.commands).toHaveLength(0);
883
- expect(result.output).toBe('[[RELAY]]{"to":"agent2","type":"message","body":"Test"}[[/RELAY]]\n');
884
- });
885
-
886
- it('respects custom maxBlockBytes', () => {
887
- const customParser = new OutputParser({ maxBlockBytes: 30 });
888
- // Create a block that will exceed 30 bytes after [[RELAY]] is removed
889
- const largeJson = '{"to":"a","type":"message","body":"' + 'x'.repeat(50) + '"}';
890
- const input = `[[RELAY]]\n${largeJson}\n[[/RELAY]]\n`;
891
-
892
- // This should exceed 30 bytes
893
- const result = customParser.parse(input);
894
- expect(result.commands).toHaveLength(0);
895
- });
896
-
897
- it('preserves text starting with [Letter like [Agent Relay]', () => {
898
- // Regression test: The orphaned CSI pattern should NOT strip [A from [Agent
899
- // because [A without digits is not a valid orphaned CSI sequence
900
- const input = '[Agent Relay] It\'s been 15 minutes. Please output a [[SUMMARY]] block\n';
901
- const result = parser.parse(input);
902
-
903
- expect(result.commands).toHaveLength(0);
904
- expect(result.output).toBe(input);
905
- // Specifically verify [Agent is preserved, not stripped to 'gent'
906
- expect(result.output).toContain('[Agent');
907
- });
908
- });
909
-
910
- describe('Complex scenarios', () => {
911
- it('handles multiple commands in one parse call', () => {
912
- const input = `->relay:agent1 First
913
- Regular output
914
- ->relay:agent2 Second
915
- [[RELAY]]{"to":"agent3","type":"message","body":"Third"}[[/RELAY]]
916
- More output
917
- `;
918
- const result = parser.parse(input);
919
-
920
- expect(result.commands).toHaveLength(3);
921
- expect(result.commands[0].to).toBe('agent1');
922
- expect(result.commands[1].to).toBe('agent2');
923
- expect(result.commands[2].to).toBe('agent3');
924
- expect(result.output).toContain('Regular output');
925
- expect(result.output).toContain('More output');
926
- });
927
-
928
- it('handles incremental parsing with multiple parse calls', () => {
929
- parser.parse('Line 1\n');
930
- parser.parse('->relay:agent1 Message 1\n');
931
- parser.parse('Line 2\n');
932
- const result = parser.parse('->relay:agent2 Message 2\n');
933
-
934
- // Only the last parse call returns commands from that call
935
- expect(result.commands).toHaveLength(1);
936
- expect(result.commands[0].to).toBe('agent2');
937
- });
938
-
939
- it('handles block spanning multiple parse calls', () => {
940
- const result1 = parser.parse('[[RELAY]]\n');
941
- expect(result1.commands).toHaveLength(0);
942
-
943
- const result2 = parser.parse('{"to":"agent2",\n');
944
- expect(result2.commands).toHaveLength(0);
945
-
946
- const result3 = parser.parse('"type":"message","body":"Test"}\n');
947
- expect(result3.commands).toHaveLength(0);
948
-
949
- const result4 = parser.parse('[[/RELAY]]\n');
950
- expect(result4.commands).toHaveLength(1);
951
- expect(result4.commands[0].to).toBe('agent2');
952
- });
953
-
954
- it('preserves order of commands and output', () => {
955
- const input = `Out1
956
- ->relay:agent1 Msg1
957
- Out2
958
- ->relay:agent2 Msg2
959
- Out3
960
- `;
961
- const result = parser.parse(input);
962
-
963
- const outputLines = result.output.split('\n').filter(l => l.trim());
964
- expect(outputLines).toEqual(['Out1', 'Out2', 'Out3']);
965
- expect(result.commands[0].to).toBe('agent1');
966
- expect(result.commands[1].to).toBe('agent2');
967
- });
968
- });
969
-
970
- describe('Cross-project messaging syntax', () => {
971
- it('parses project:agent syntax for cross-project messaging', () => {
972
- const result = parser.parse('->relay:myproject:agent2 Hello from another project\n');
973
-
974
- expect(result.commands).toHaveLength(1);
975
- expect(result.commands[0]).toMatchObject({
976
- to: 'agent2',
977
- project: 'myproject',
978
- kind: 'message',
979
- body: 'Hello from another project',
980
- });
981
- });
982
-
983
- it('parses local agent without project', () => {
984
- const result = parser.parse('->relay:agent2 Local message\n');
985
-
986
- expect(result.commands).toHaveLength(1);
987
- expect(result.commands[0].to).toBe('agent2');
988
- expect(result.commands[0].project).toBeUndefined();
989
- });
990
-
991
- it('handles project names with dashes and underscores', () => {
992
- const result = parser.parse('->relay:my-project_v2:some-agent Hello\n');
993
-
994
- expect(result.commands).toHaveLength(1);
995
- expect(result.commands[0].to).toBe('some-agent');
996
- expect(result.commands[0].project).toBe('my-project_v2');
997
- });
998
-
999
- it('only splits on first colon to allow colons in agent names', () => {
1000
- const result = parser.parse('->relay:proj:agent:with:colons Message\n');
1001
-
1002
- expect(result.commands).toHaveLength(1);
1003
- expect(result.commands[0].to).toBe('agent:with:colons');
1004
- expect(result.commands[0].project).toBe('proj');
1005
- });
1006
-
1007
- it('handles cross-project with ->thinking: variant', () => {
1008
- const result = parser.parse('->thinking:otherproj:agent2 Thinking about something\n');
1009
-
1010
- expect(result.commands).toHaveLength(1);
1011
- expect(result.commands[0]).toMatchObject({
1012
- to: 'agent2',
1013
- project: 'otherproj',
1014
- kind: 'thinking',
1015
- body: 'Thinking about something',
1016
- });
1017
- });
1018
-
1019
- it('handles cross-project broadcast', () => {
1020
- const result = parser.parse('->relay:prod-project:* Broadcast to all in prod\n');
1021
-
1022
- expect(result.commands).toHaveLength(1);
1023
- expect(result.commands[0].to).toBe('*');
1024
- expect(result.commands[0].project).toBe('prod-project');
1025
- });
1026
-
1027
- it('handles cross-project with thread syntax', () => {
1028
- const result = parser.parse('->relay:proj:agent [thread:abc123] Threaded cross-project message\n');
1029
-
1030
- expect(result.commands).toHaveLength(1);
1031
- expect(result.commands[0]).toMatchObject({
1032
- to: 'agent',
1033
- project: 'proj',
1034
- thread: 'abc123',
1035
- body: 'Threaded cross-project message',
1036
- });
1037
- });
1038
-
1039
- it('handles cross-project thread syntax in inline messages', () => {
1040
- const result = parser.parse('->relay:Backend [thread:frontend-app:auth-flow] Can you check session handling?\n');
1041
-
1042
- expect(result.commands).toHaveLength(1);
1043
- expect(result.commands[0]).toMatchObject({
1044
- to: 'Backend',
1045
- thread: 'auth-flow',
1046
- threadProject: 'frontend-app',
1047
- body: 'Can you check session handling?',
1048
- });
1049
- });
1050
-
1051
- it('parses inline await tag with default timeout', () => {
1052
- const result = parser.parse('->relay:agent [await] Please confirm\n');
1053
-
1054
- expect(result.commands).toHaveLength(1);
1055
- expect(result.commands[0]).toMatchObject({
1056
- to: 'agent',
1057
- body: 'Please confirm',
1058
- sync: { blocking: true, timeoutMs: undefined },
1059
- });
1060
- });
1061
-
1062
- it('parses inline await tag with timeout', () => {
1063
- const result = parser.parse('->relay:agent [await:30s] Please confirm\n');
1064
-
1065
- expect(result.commands).toHaveLength(1);
1066
- expect(result.commands[0]?.sync?.timeoutMs).toBe(30000);
1067
- expect(result.commands[0]?.sync?.blocking).toBe(true);
1068
- });
1069
-
1070
- it('handles cross-project thread with cross-project target', () => {
1071
- // Both target and thread are cross-project
1072
- const result = parser.parse('->relay:backend-api:AuthService [thread:shared:auth-session] Verify token\n');
1073
-
1074
- expect(result.commands).toHaveLength(1);
1075
- expect(result.commands[0]).toMatchObject({
1076
- to: 'AuthService',
1077
- project: 'backend-api',
1078
- thread: 'auth-session',
1079
- threadProject: 'shared',
1080
- body: 'Verify token',
1081
- });
1082
- });
1083
-
1084
- it('parses cross-project in block format with explicit project field', () => {
1085
- const result = parser.parse('[[RELAY]]{"to":"agent2","project":"otherproj","type":"message","body":"Hello"}[[/RELAY]]\n');
1086
-
1087
- expect(result.commands).toHaveLength(1);
1088
- expect(result.commands[0]).toMatchObject({
1089
- to: 'agent2',
1090
- project: 'otherproj',
1091
- kind: 'message',
1092
- body: 'Hello',
1093
- });
1094
- });
1095
-
1096
- it('parses cross-project in block format with colon syntax in to field', () => {
1097
- const result = parser.parse('[[RELAY]]{"to":"myproj:agent2","type":"message","body":"Hi"}[[/RELAY]]\n');
1098
-
1099
- expect(result.commands).toHaveLength(1);
1100
- expect(result.commands[0]).toMatchObject({
1101
- to: 'agent2',
1102
- project: 'myproj',
1103
- kind: 'message',
1104
- body: 'Hi',
1105
- });
1106
- });
1107
-
1108
- it('explicit project field takes precedence over colon syntax in block format', () => {
1109
- const result = parser.parse('[[RELAY]]{"to":"ignored:agent2","project":"explicit","type":"message","body":"Test"}[[/RELAY]]\n');
1110
-
1111
- expect(result.commands).toHaveLength(1);
1112
- // When explicit project is set, the to field is used as-is
1113
- expect(result.commands[0].to).toBe('ignored:agent2');
1114
- expect(result.commands[0].project).toBe('explicit');
1115
- });
1116
- });
1117
-
1118
- describe('Configurable prefix', () => {
1119
- it('uses default ->relay: prefix', () => {
1120
- const defaultParser = new OutputParser();
1121
- expect(defaultParser.prefix).toBe('->relay:');
1122
-
1123
- const result = defaultParser.parse('->relay:agent2 Hello\n');
1124
- expect(result.commands).toHaveLength(1);
1125
- expect(result.commands[0].to).toBe('agent2');
1126
- });
1127
-
1128
- it('uses custom prefix >>', () => {
1129
- const customParser = new OutputParser({ prefix: '>>' });
1130
- expect(customParser.prefix).toBe('>>');
1131
-
1132
- const result = customParser.parse('>>agent2 Hello from Gemini\n');
1133
- expect(result.commands).toHaveLength(1);
1134
- expect(result.commands[0].to).toBe('agent2');
1135
- expect(result.commands[0].body).toBe('Hello from Gemini');
1136
- });
1137
-
1138
- it('ignores ->relay: when using @msg: prefix', () => {
1139
- const customParser = new OutputParser({ prefix: '@msg:' });
1140
-
1141
- const result = customParser.parse('->relay:agent2 Should not match\n');
1142
- expect(result.commands).toHaveLength(0);
1143
- expect(result.output).toBe('->relay:agent2 Should not match\n');
1144
- });
1145
-
1146
- it('uses custom prefix /relay', () => {
1147
- const customParser = new OutputParser({ prefix: '/relay' });
1148
-
1149
- const result = customParser.parse('/relayagent2 Slash style\n');
1150
- expect(result.commands).toHaveLength(1);
1151
- expect(result.commands[0].to).toBe('agent2');
1152
- });
1153
-
1154
- it('handles prefix with special regex characters', () => {
1155
- const customParser = new OutputParser({ prefix: '$$msg:' });
1156
-
1157
- const result = customParser.parse('$$msg:agent2 Dollar prefix\n');
1158
- expect(result.commands).toHaveLength(1);
1159
- expect(result.commands[0].to).toBe('agent2');
1160
- });
1161
-
1162
- it('supports >> prefix with bullet points', () => {
1163
- const customParser = new OutputParser({ prefix: '>>' });
1164
-
1165
- const result = customParser.parse('- >>agent2 Bulleted message\n');
1166
- expect(result.commands).toHaveLength(1);
1167
- expect(result.commands[0].to).toBe('agent2');
1168
- });
1169
-
1170
- it('supports broadcast with custom prefix', () => {
1171
- const customParser = new OutputParser({ prefix: '>>' });
1172
-
1173
- const result = customParser.parse('>>* Broadcast to all\n');
1174
- expect(result.commands).toHaveLength(1);
1175
- expect(result.commands[0].to).toBe('*');
1176
- expect(result.commands[0].body).toBe('Broadcast to all');
1177
- });
1178
- });
1179
- });
1180
-
1181
- describe('parseSummaryFromOutput', () => {
1182
- it('parses valid JSON summary block', () => {
1183
- const output = `Some output
1184
- [[SUMMARY]]
1185
- {
1186
- "currentTask": "Implementing auth",
1187
- "context": "Working on login flow",
1188
- "files": ["src/auth.ts"]
1189
- }
1190
- [[/SUMMARY]]
1191
- More output`;
1192
-
1193
- const summary = parseSummaryFromOutput(output);
1194
- expect(summary).not.toBeNull();
1195
- expect(summary).toEqual({
1196
- currentTask: 'Implementing auth',
1197
- context: 'Working on login flow',
1198
- files: ['src/auth.ts'],
1199
- });
1200
- });
1201
-
1202
- it('parses summary with all fields', () => {
1203
- const output = `[[SUMMARY]]{"currentTask":"Task 1","completedTasks":["T0"],"decisions":["Use JWT"],"context":"Auth work","files":["a.ts","b.ts"]}[[/SUMMARY]]`;
1204
-
1205
- const summary = parseSummaryFromOutput(output);
1206
- expect(summary).toEqual({
1207
- currentTask: 'Task 1',
1208
- completedTasks: ['T0'],
1209
- decisions: ['Use JWT'],
1210
- context: 'Auth work',
1211
- files: ['a.ts', 'b.ts'],
1212
- });
1213
- });
1214
-
1215
- it('returns null when no summary block exists', () => {
1216
- const output = 'Just regular output without any summary block';
1217
-
1218
- const summary = parseSummaryFromOutput(output);
1219
- expect(summary).toBeNull();
1220
- });
1221
-
1222
- it('returns null for invalid JSON', () => {
1223
- const output = '[[SUMMARY]]not valid json[[/SUMMARY]]';
1224
-
1225
- const summary = parseSummaryFromOutput(output);
1226
- expect(summary).toBeNull();
1227
- });
1228
-
1229
- it('handles empty summary block', () => {
1230
- const output = '[[SUMMARY]]{}[[/SUMMARY]]';
1231
-
1232
- const summary = parseSummaryFromOutput(output);
1233
- expect(summary).toEqual({});
1234
- });
1235
- });
1236
-
1237
- describe('parseSessionEndFromOutput', () => {
1238
- it('parses valid JSON session end block', () => {
1239
- const output = `Some output
1240
- [[SESSION_END]]
1241
- {
1242
- "summary": "Completed auth module",
1243
- "completedTasks": ["login", "logout"]
1244
- }
1245
- [[/SESSION_END]]
1246
- More output`;
1247
-
1248
- const result = parseSessionEndFromOutput(output);
1249
- expect(result).not.toBeNull();
1250
- expect(result).toEqual({
1251
- summary: 'Completed auth module',
1252
- completedTasks: ['login', 'logout'],
1253
- });
1254
- });
1255
-
1256
- it('parses empty session end block', () => {
1257
- const output = '[[SESSION_END]][[/SESSION_END]]';
1258
-
1259
- const result = parseSessionEndFromOutput(output);
1260
- expect(result).toEqual({});
1261
- });
1262
-
1263
- it('parses session end with only summary', () => {
1264
- const output = '[[SESSION_END]]{"summary":"All done!"}[[/SESSION_END]]';
1265
-
1266
- const result = parseSessionEndFromOutput(output);
1267
- expect(result).toEqual({ summary: 'All done!' });
1268
- });
1269
-
1270
- it('treats non-JSON content as plain summary', () => {
1271
- const output = '[[SESSION_END]]Work completed successfully[[/SESSION_END]]';
1272
-
1273
- const result = parseSessionEndFromOutput(output);
1274
- expect(result).toEqual({ summary: 'Work completed successfully' });
1275
- });
1276
-
1277
- it('returns null when no session end block exists', () => {
1278
- const output = 'Regular output without session end';
1279
-
1280
- const result = parseSessionEndFromOutput(output);
1281
- expect(result).toBeNull();
1282
- });
1283
-
1284
- it('handles multiline plain text summary', () => {
1285
- const output = `[[SESSION_END]]
1286
- Completed the following:
1287
- - Feature A
1288
- - Feature B
1289
- [[/SESSION_END]]`;
1290
-
1291
- const result = parseSessionEndFromOutput(output);
1292
- expect(result?.summary).toContain('Completed the following:');
1293
- expect(result?.summary).toContain('Feature A');
1294
- });
1295
- });
1296
-
1297
- describe('parseRelayMetadataFromOutput', () => {
1298
- it('parses valid metadata block', () => {
1299
- const output = `Some output
1300
- [[RELAY_METADATA]]
1301
- {
1302
- "subject": "Task update",
1303
- "importance": 80,
1304
- "replyTo": "msg-abc123",
1305
- "ackRequired": true
1306
- }
1307
- [[/RELAY_METADATA]]
1308
- More output`;
1309
-
1310
- const result = parseRelayMetadataFromOutput(output);
1311
- expect(result.found).toBe(true);
1312
- expect(result.valid).toBe(true);
1313
- expect(result.metadata).toEqual({
1314
- subject: 'Task update',
1315
- importance: 80,
1316
- replyTo: 'msg-abc123',
1317
- ackRequired: true,
1318
- });
1319
- expect(result.rawContent).toContain('"subject"');
1320
- });
1321
-
1322
- it('returns not found when no metadata block exists', () => {
1323
- const output = 'Regular output without any metadata block';
1324
-
1325
- const result = parseRelayMetadataFromOutput(output);
1326
- expect(result.found).toBe(false);
1327
- expect(result.valid).toBe(false);
1328
- expect(result.metadata).toBeNull();
1329
- expect(result.rawContent).toBeNull();
1330
- });
1331
-
1332
- it('returns invalid for malformed JSON', () => {
1333
- const output = '[[RELAY_METADATA]]not valid json[[/RELAY_METADATA]]';
1334
-
1335
- const result = parseRelayMetadataFromOutput(output);
1336
- expect(result.found).toBe(true);
1337
- expect(result.valid).toBe(false);
1338
- expect(result.metadata).toBeNull();
1339
- expect(result.rawContent).toBe('not valid json');
1340
- });
1341
-
1342
- it('handles empty metadata block', () => {
1343
- const output = '[[RELAY_METADATA]]{}[[/RELAY_METADATA]]';
1344
-
1345
- const result = parseRelayMetadataFromOutput(output);
1346
- expect(result.found).toBe(true);
1347
- expect(result.valid).toBe(true);
1348
- expect(result.metadata).toEqual({});
1349
- });
1350
-
1351
- it('parses metadata with partial fields', () => {
1352
- const output = '[[RELAY_METADATA]]{"subject":"Quick note"}[[/RELAY_METADATA]]';
1353
-
1354
- const result = parseRelayMetadataFromOutput(output);
1355
- expect(result.found).toBe(true);
1356
- expect(result.valid).toBe(true);
1357
- expect(result.metadata).toEqual({ subject: 'Quick note' });
1358
- });
1359
- });