agent-relay 2.3.13 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1421) hide show
  1. package/README.md +42 -176
  2. package/bin/agent-relay-broker-darwin-arm64 +0 -0
  3. package/bin/agent-relay-broker-darwin-x64 +0 -0
  4. package/bin/agent-relay-broker-linux-arm64 +0 -0
  5. package/bin/agent-relay-broker-linux-x64 +0 -0
  6. package/dist/index.cjs +50288 -63371
  7. package/dist/src/cli/bootstrap.d.ts +6 -0
  8. package/dist/src/cli/bootstrap.d.ts.map +1 -0
  9. package/dist/src/cli/bootstrap.js +109 -0
  10. package/dist/src/cli/bootstrap.js.map +1 -0
  11. package/dist/src/cli/commands/agent-management.d.ts +51 -0
  12. package/dist/src/cli/commands/agent-management.d.ts.map +1 -0
  13. package/dist/src/cli/commands/agent-management.js +290 -0
  14. package/dist/src/cli/commands/agent-management.js.map +1 -0
  15. package/dist/src/cli/commands/auth.d.ts +9 -0
  16. package/dist/src/cli/commands/auth.d.ts.map +1 -0
  17. package/dist/src/cli/commands/auth.js +33 -0
  18. package/dist/src/cli/commands/auth.js.map +1 -0
  19. package/dist/src/cli/commands/cloud.d.ts +18 -0
  20. package/dist/src/cli/commands/cloud.d.ts.map +1 -0
  21. package/dist/src/cli/commands/cloud.js +392 -0
  22. package/dist/src/cli/commands/cloud.js.map +1 -0
  23. package/dist/src/cli/commands/core.d.ts +107 -0
  24. package/dist/src/cli/commands/core.d.ts.map +1 -0
  25. package/dist/src/cli/commands/core.js +299 -0
  26. package/dist/src/cli/commands/core.js.map +1 -0
  27. package/dist/src/cli/commands/doctor.d.ts +1 -1
  28. package/dist/src/cli/commands/doctor.d.ts.map +1 -1
  29. package/dist/src/cli/commands/doctor.js +1 -485
  30. package/dist/src/cli/commands/doctor.js.map +1 -1
  31. package/dist/src/cli/commands/messaging.d.ts +61 -0
  32. package/dist/src/cli/commands/messaging.d.ts.map +1 -0
  33. package/dist/src/cli/commands/messaging.js +213 -0
  34. package/dist/src/cli/commands/messaging.js.map +1 -0
  35. package/dist/src/cli/commands/monitoring.d.ts +57 -0
  36. package/dist/src/cli/commands/monitoring.d.ts.map +1 -0
  37. package/dist/src/cli/commands/monitoring.js +350 -0
  38. package/dist/src/cli/commands/monitoring.js.map +1 -0
  39. package/dist/src/cli/commands/setup.d.ts +29 -0
  40. package/dist/src/cli/commands/setup.d.ts.map +1 -0
  41. package/dist/src/cli/commands/setup.js +324 -0
  42. package/dist/src/cli/commands/setup.js.map +1 -0
  43. package/dist/src/cli/commands/swarm.d.ts +3 -0
  44. package/dist/src/cli/commands/swarm.d.ts.map +1 -0
  45. package/dist/src/cli/commands/swarm.js +108 -0
  46. package/dist/src/cli/commands/swarm.js.map +1 -0
  47. package/dist/src/cli/index.d.ts +1 -28
  48. package/dist/src/cli/index.d.ts.map +1 -1
  49. package/dist/src/cli/index.js +4 -4936
  50. package/dist/src/cli/index.js.map +1 -1
  51. package/dist/src/cli/lib/agent-management-listing.d.ts +39 -0
  52. package/dist/src/cli/lib/agent-management-listing.d.ts.map +1 -0
  53. package/dist/src/cli/lib/agent-management-listing.js +253 -0
  54. package/dist/src/cli/lib/agent-management-listing.js.map +1 -0
  55. package/dist/src/cli/lib/auth-ssh.d.ts +48 -0
  56. package/dist/src/cli/lib/auth-ssh.d.ts.map +1 -0
  57. package/dist/src/cli/lib/auth-ssh.js +572 -0
  58. package/dist/src/cli/lib/auth-ssh.js.map +1 -0
  59. package/dist/src/cli/lib/bridge.d.ts +8 -0
  60. package/dist/src/cli/lib/bridge.d.ts.map +1 -0
  61. package/dist/src/cli/lib/bridge.js +100 -0
  62. package/dist/src/cli/lib/bridge.js.map +1 -0
  63. package/dist/src/cli/lib/broker-lifecycle.d.ts +20 -0
  64. package/dist/src/cli/lib/broker-lifecycle.d.ts.map +1 -0
  65. package/dist/src/cli/lib/broker-lifecycle.js +843 -0
  66. package/dist/src/cli/lib/broker-lifecycle.js.map +1 -0
  67. package/dist/src/cli/lib/client-factory.d.ts +24 -0
  68. package/dist/src/cli/lib/client-factory.d.ts.map +1 -0
  69. package/dist/src/cli/lib/client-factory.js +20 -0
  70. package/dist/src/cli/lib/client-factory.js.map +1 -0
  71. package/dist/src/cli/lib/cloud-client.d.ts +39 -0
  72. package/dist/src/cli/lib/cloud-client.d.ts.map +1 -0
  73. package/dist/src/cli/lib/cloud-client.js +120 -0
  74. package/dist/src/cli/lib/cloud-client.js.map +1 -0
  75. package/dist/src/cli/lib/core-maintenance.d.ts +13 -0
  76. package/dist/src/cli/lib/core-maintenance.d.ts.map +1 -0
  77. package/dist/src/cli/lib/core-maintenance.js +250 -0
  78. package/dist/src/cli/lib/core-maintenance.js.map +1 -0
  79. package/dist/src/cli/lib/doctor.d.ts +2 -0
  80. package/dist/src/cli/lib/doctor.d.ts.map +1 -0
  81. package/dist/src/cli/lib/doctor.js +484 -0
  82. package/dist/src/cli/lib/doctor.js.map +1 -0
  83. package/dist/src/cli/lib/formatting.d.ts +8 -0
  84. package/dist/src/cli/lib/formatting.d.ts.map +1 -0
  85. package/dist/src/cli/lib/formatting.js +48 -0
  86. package/dist/src/cli/lib/formatting.js.map +1 -0
  87. package/dist/src/cli/lib/index.d.ts +5 -0
  88. package/dist/src/cli/lib/index.d.ts.map +1 -0
  89. package/dist/src/cli/lib/index.js +5 -0
  90. package/dist/src/cli/lib/index.js.map +1 -0
  91. package/dist/src/cli/lib/jsonc.d.ts +8 -0
  92. package/dist/src/cli/lib/jsonc.d.ts.map +1 -0
  93. package/dist/src/cli/lib/jsonc.js +88 -0
  94. package/dist/src/cli/lib/jsonc.js.map +1 -0
  95. package/dist/src/cli/lib/monitoring-health.d.ts +32 -0
  96. package/dist/src/cli/lib/monitoring-health.d.ts.map +1 -0
  97. package/dist/src/cli/lib/monitoring-health.js +2 -0
  98. package/dist/src/cli/lib/monitoring-health.js.map +1 -0
  99. package/dist/src/cli/lib/paths.d.ts +2 -0
  100. package/dist/src/cli/lib/paths.d.ts.map +1 -0
  101. package/dist/src/cli/lib/paths.js +5 -0
  102. package/dist/src/cli/lib/paths.js.map +1 -0
  103. package/dist/src/index.d.ts +1 -5
  104. package/dist/src/index.d.ts.map +1 -1
  105. package/dist/src/index.js +1 -5
  106. package/dist/src/index.js.map +1 -1
  107. package/install.sh +0 -30
  108. package/package.json +84 -98
  109. package/packages/acp-bridge/README.md +8 -8
  110. package/packages/acp-bridge/dist/acp-agent.d.ts +8 -7
  111. package/packages/acp-bridge/dist/acp-agent.d.ts.map +1 -1
  112. package/packages/acp-bridge/dist/acp-agent.js +118 -143
  113. package/packages/acp-bridge/dist/acp-agent.js.map +1 -1
  114. package/packages/acp-bridge/dist/cli.d.ts +1 -1
  115. package/packages/acp-bridge/dist/cli.js +3 -3
  116. package/packages/acp-bridge/dist/index.d.ts +2 -2
  117. package/packages/acp-bridge/dist/index.d.ts.map +1 -1
  118. package/packages/acp-bridge/dist/index.js +1 -1
  119. package/packages/acp-bridge/dist/index.js.map +1 -1
  120. package/packages/acp-bridge/dist/types.d.ts +3 -3
  121. package/packages/acp-bridge/package.json +3 -3
  122. package/packages/acp-bridge/src/acp-agent.ts +123 -160
  123. package/packages/acp-bridge/src/cli.ts +3 -3
  124. package/packages/acp-bridge/src/index.ts +2 -2
  125. package/packages/acp-bridge/src/types.ts +3 -3
  126. package/packages/config/dist/bridge-config.d.ts +5 -5
  127. package/packages/config/dist/bridge-config.d.ts.map +1 -1
  128. package/packages/config/dist/bridge-config.js +16 -9
  129. package/packages/config/dist/bridge-config.js.map +1 -1
  130. package/packages/config/dist/cli-auth-config.d.ts +1 -1
  131. package/packages/config/dist/cli-auth-config.js +1 -1
  132. package/packages/config/dist/cli-registry.generated.d.ts +340 -0
  133. package/packages/config/dist/cli-registry.generated.d.ts.map +1 -0
  134. package/packages/config/dist/cli-registry.generated.js +297 -0
  135. package/packages/config/dist/cli-registry.generated.js.map +1 -0
  136. package/packages/config/dist/index.d.ts +1 -0
  137. package/packages/config/dist/index.d.ts.map +1 -1
  138. package/packages/config/dist/index.js +1 -0
  139. package/packages/config/dist/index.js.map +1 -1
  140. package/packages/config/dist/project-namespace.d.ts +9 -9
  141. package/packages/config/dist/project-namespace.js +3 -3
  142. package/packages/config/dist/relay-config.d.ts +1 -1
  143. package/packages/config/dist/relay-config.js +1 -1
  144. package/packages/config/dist/schemas.js +1 -1
  145. package/packages/config/dist/shadow-config.d.ts +2 -1
  146. package/packages/config/dist/shadow-config.d.ts.map +1 -1
  147. package/packages/config/dist/shadow-config.js.map +1 -1
  148. package/packages/config/package.json +2 -3
  149. package/packages/config/src/bridge-config.test.ts +20 -6
  150. package/packages/config/src/bridge-config.ts +20 -10
  151. package/packages/config/src/cli-auth-config.ts +1 -1
  152. package/packages/config/src/cli-registry.generated.ts +328 -0
  153. package/packages/config/src/index.ts +1 -0
  154. package/packages/config/src/project-namespace.ts +9 -9
  155. package/packages/config/src/relay-config.ts +1 -1
  156. package/packages/config/src/schemas.ts +1 -1
  157. package/packages/config/src/shadow-config.ts +8 -1
  158. package/packages/contracts/fixtures/error-fixtures.json +42 -0
  159. package/packages/contracts/fixtures/event-fixtures.json +161 -0
  160. package/packages/contracts/fixtures/health-fixtures.json +35 -0
  161. package/packages/contracts/fixtures/identity-fixtures.json +58 -0
  162. package/packages/contracts/fixtures/replay-fixtures.json +33 -0
  163. package/packages/hooks/dist/inbox-check/types.d.ts +2 -2
  164. package/packages/hooks/dist/types.d.ts +9 -3
  165. package/packages/hooks/dist/types.d.ts.map +1 -1
  166. package/packages/hooks/dist/types.js +1 -1
  167. package/packages/hooks/dist/types.js.map +1 -1
  168. package/packages/hooks/package.json +5 -5
  169. package/packages/hooks/src/inbox-check/types.ts +2 -2
  170. package/packages/hooks/src/types.ts +11 -3
  171. package/packages/memory/package.json +2 -2
  172. package/packages/policy/package.json +2 -2
  173. package/packages/sdk/.mcp.json +14 -0
  174. package/packages/sdk/.trajectories/active/traj_1771875803391_84ca57b2.json +50 -0
  175. package/packages/sdk/.trajectories/active/traj_1771891934534_06504121.json +50 -0
  176. package/packages/sdk/.trajectories/active/traj_1771891957929_211afc4e.json +50 -0
  177. package/packages/sdk/.trajectories/active/traj_1771891982509_38c84638.json +50 -0
  178. package/packages/sdk/.trajectories/completed/traj_1771875803188_cd6d181c.json +80 -0
  179. package/packages/sdk/.trajectories/completed/traj_1771875803204_f2aeb8c8.json +80 -0
  180. package/packages/sdk/.trajectories/completed/traj_1771875803210_d65f3f1a.json +80 -0
  181. package/packages/sdk/.trajectories/completed/traj_1771875803218_e454a25d.json +80 -0
  182. package/packages/sdk/.trajectories/completed/traj_1771875803223_d7a64815.json +80 -0
  183. package/packages/sdk/.trajectories/completed/traj_1771875803227_7e56da5b.json +80 -0
  184. package/packages/sdk/.trajectories/completed/traj_1771875803235_4fbf93b4.json +80 -0
  185. package/packages/sdk/.trajectories/completed/traj_1771875803243_47931c71.json +80 -0
  186. package/packages/sdk/.trajectories/completed/traj_1771875803258_3816f3fe.json +80 -0
  187. package/packages/sdk/.trajectories/completed/traj_1771875803268_8061140e.json +80 -0
  188. package/packages/sdk/.trajectories/completed/traj_1771875803326_ae6f9c78.json +80 -0
  189. package/packages/sdk/.trajectories/completed/traj_1771875808396_cbde0a6c.json +91 -0
  190. package/packages/sdk/.trajectories/completed/traj_1771875812026_aa2442bb.json +91 -0
  191. package/packages/sdk/.trajectories/completed/traj_1771875815431_c2c656c5.json +91 -0
  192. package/packages/sdk/.trajectories/completed/traj_1771875818645_3a4dbf02.json +91 -0
  193. package/packages/sdk/.trajectories/completed/traj_1771891934403_24923c03.json +80 -0
  194. package/packages/sdk/.trajectories/completed/traj_1771891934421_dca16e24.json +80 -0
  195. package/packages/sdk/.trajectories/completed/traj_1771891934430_057706f7.json +80 -0
  196. package/packages/sdk/.trajectories/completed/traj_1771891934442_faf97382.json +80 -0
  197. package/packages/sdk/.trajectories/completed/traj_1771891934454_5542ecd5.json +80 -0
  198. package/packages/sdk/.trajectories/completed/traj_1771891934464_12202a08.json +80 -0
  199. package/packages/sdk/.trajectories/completed/traj_1771891934487_94378275.json +80 -0
  200. package/packages/sdk/.trajectories/completed/traj_1771891934503_ca728c13.json +80 -0
  201. package/packages/sdk/.trajectories/completed/traj_1771891934519_100af69a.json +80 -0
  202. package/packages/sdk/.trajectories/completed/traj_1771891934536_62ad39d9.json +80 -0
  203. package/packages/sdk/.trajectories/completed/traj_1771891934553_d6798a52.json +80 -0
  204. package/packages/sdk/.trajectories/completed/traj_1771891939537_541c8096.json +91 -0
  205. package/packages/sdk/.trajectories/completed/traj_1771891942985_36ab9a4d.json +91 -0
  206. package/packages/sdk/.trajectories/completed/traj_1771891946453_e8a6e05f.json +91 -0
  207. package/packages/sdk/.trajectories/completed/traj_1771891949838_5de0de84.json +91 -0
  208. package/packages/sdk/.trajectories/completed/traj_1771891957807_0ecfb4f4.json +80 -0
  209. package/packages/sdk/.trajectories/completed/traj_1771891957827_c4539239.json +80 -0
  210. package/packages/sdk/.trajectories/completed/traj_1771891957836_91168b48.json +80 -0
  211. package/packages/sdk/.trajectories/completed/traj_1771891957848_8c5cad0b.json +80 -0
  212. package/packages/sdk/.trajectories/completed/traj_1771891957857_0986b293.json +80 -0
  213. package/packages/sdk/.trajectories/completed/traj_1771891957872_8a3113af.json +80 -0
  214. package/packages/sdk/.trajectories/completed/traj_1771891957884_0bb85208.json +80 -0
  215. package/packages/sdk/.trajectories/completed/traj_1771891957892_86c75e2e.json +80 -0
  216. package/packages/sdk/.trajectories/completed/traj_1771891957907_98ca0e6f.json +80 -0
  217. package/packages/sdk/.trajectories/completed/traj_1771891957918_d9091231.json +80 -0
  218. package/packages/sdk/.trajectories/completed/traj_1771891957931_dcaf77ed.json +80 -0
  219. package/packages/sdk/.trajectories/completed/traj_1771891962931_eb1fdee2.json +91 -0
  220. package/packages/sdk/.trajectories/completed/traj_1771891966262_9061a93f.json +91 -0
  221. package/packages/sdk/.trajectories/completed/traj_1771891969915_1adaba19.json +91 -0
  222. package/packages/sdk/.trajectories/completed/traj_1771891973588_f08b79e9.json +91 -0
  223. package/packages/sdk/.trajectories/completed/traj_1771891982421_f1985bce.json +80 -0
  224. package/packages/sdk/.trajectories/completed/traj_1771891982432_e7a84163.json +80 -0
  225. package/packages/sdk/.trajectories/completed/traj_1771891982447_369b842a.json +80 -0
  226. package/packages/sdk/.trajectories/completed/traj_1771891982469_5fc45199.json +80 -0
  227. package/packages/sdk/.trajectories/completed/traj_1771891982495_454c7cb3.json +80 -0
  228. package/packages/sdk/.trajectories/completed/traj_1771891982514_08098e03.json +80 -0
  229. package/packages/sdk/.trajectories/completed/traj_1771891982526_b351d778.json +80 -0
  230. package/packages/sdk/.trajectories/completed/traj_1771891982533_fa542d83.json +80 -0
  231. package/packages/sdk/.trajectories/completed/traj_1771891982540_18ab24dc.json +80 -0
  232. package/packages/sdk/.trajectories/completed/traj_1771891982544_5b4fa163.json +80 -0
  233. package/packages/sdk/.trajectories/completed/traj_1771891982548_c13f089a.json +80 -0
  234. package/packages/sdk/.trajectories/completed/traj_1771891987510_23f6da1f.json +91 -0
  235. package/packages/sdk/.trajectories/completed/traj_1771891991466_912c2e04.json +91 -0
  236. package/packages/sdk/.trajectories/completed/traj_1771891994891_60604be2.json +91 -0
  237. package/packages/sdk/.trajectories/completed/traj_1771891998370_cfaf9b8b.json +91 -0
  238. package/packages/sdk/README.md +68 -838
  239. package/packages/sdk/bin/agent-relay-broker +0 -0
  240. package/packages/sdk/dist/__tests__/contract-fixtures.test.d.ts +2 -0
  241. package/packages/sdk/dist/__tests__/contract-fixtures.test.d.ts.map +1 -0
  242. package/packages/sdk/dist/__tests__/contract-fixtures.test.js +85 -0
  243. package/packages/sdk/dist/__tests__/contract-fixtures.test.js.map +1 -0
  244. package/packages/sdk/dist/__tests__/facade.test.js +305 -0
  245. package/packages/sdk/dist/__tests__/facade.test.js.map +1 -0
  246. package/packages/sdk/dist/__tests__/integration.test.js +169 -0
  247. package/packages/sdk/dist/__tests__/integration.test.js.map +1 -0
  248. package/packages/sdk/dist/__tests__/pty.test.d.ts +2 -0
  249. package/packages/sdk/dist/__tests__/pty.test.d.ts.map +1 -0
  250. package/packages/sdk/dist/__tests__/pty.test.js +20 -0
  251. package/packages/sdk/dist/__tests__/pty.test.js.map +1 -0
  252. package/packages/sdk/dist/__tests__/quickstart.test.js +176 -0
  253. package/packages/sdk/dist/__tests__/quickstart.test.js.map +1 -0
  254. package/packages/sdk/dist/__tests__/spawn-from-env.test.d.ts +2 -0
  255. package/packages/sdk/dist/__tests__/spawn-from-env.test.d.ts.map +1 -0
  256. package/packages/sdk/dist/__tests__/spawn-from-env.test.js +206 -0
  257. package/packages/sdk/dist/__tests__/spawn-from-env.test.js.map +1 -0
  258. package/packages/sdk/dist/__tests__/unit.test.js +347 -0
  259. package/packages/sdk/dist/__tests__/unit.test.js.map +1 -0
  260. package/packages/sdk/dist/client.d.ts +140 -526
  261. package/packages/sdk/dist/client.d.ts.map +1 -1
  262. package/packages/sdk/dist/client.js +416 -1509
  263. package/packages/sdk/dist/client.js.map +1 -1
  264. package/packages/sdk/dist/examples/workflow-superiority.d.ts +32 -0
  265. package/packages/sdk/dist/examples/workflow-superiority.d.ts.map +1 -0
  266. package/packages/sdk/dist/examples/workflow-superiority.js +1421 -0
  267. package/packages/sdk/dist/examples/workflow-superiority.js.map +1 -0
  268. package/packages/sdk/dist/index.d.ts +13 -20
  269. package/packages/sdk/dist/index.d.ts.map +1 -1
  270. package/packages/sdk/dist/index.js +12 -26
  271. package/packages/sdk/dist/index.js.map +1 -1
  272. package/packages/sdk/dist/logs.d.ts +70 -25
  273. package/packages/sdk/dist/logs.d.ts.map +1 -1
  274. package/packages/sdk/dist/logs.js +238 -42
  275. package/packages/sdk/dist/logs.js.map +1 -1
  276. package/packages/sdk/dist/models.d.ts +9 -0
  277. package/packages/sdk/dist/models.d.ts.map +1 -0
  278. package/packages/sdk/dist/models.js +17 -0
  279. package/packages/sdk/dist/models.js.map +1 -0
  280. package/packages/sdk/dist/protocol.d.ts +366 -0
  281. package/packages/sdk/dist/protocol.d.ts.map +1 -0
  282. package/packages/sdk/dist/pty.d.ts.map +1 -0
  283. package/packages/sdk/dist/pty.js +26 -0
  284. package/packages/sdk/dist/pty.js.map +1 -0
  285. package/packages/sdk/dist/relay-adapter.d.ts +139 -0
  286. package/packages/sdk/dist/relay-adapter.d.ts.map +1 -0
  287. package/packages/sdk/dist/relay-adapter.js +210 -0
  288. package/packages/sdk/dist/relay-adapter.js.map +1 -0
  289. package/packages/sdk/dist/relay.d.ts +304 -0
  290. package/packages/sdk/dist/relay.d.ts.map +1 -0
  291. package/packages/sdk/dist/relay.js +910 -0
  292. package/packages/sdk/dist/relay.js.map +1 -0
  293. package/packages/sdk/dist/shadow.d.ts +101 -0
  294. package/packages/sdk/dist/shadow.d.ts.map +1 -0
  295. package/packages/sdk/dist/shadow.js.map +1 -0
  296. package/packages/sdk/dist/spawn-from-env.d.ts +77 -0
  297. package/packages/sdk/dist/spawn-from-env.d.ts.map +1 -0
  298. package/packages/sdk/dist/spawn-from-env.js +172 -0
  299. package/packages/sdk/dist/spawn-from-env.js.map +1 -0
  300. package/packages/sdk/dist/workflows/builder.d.ts +114 -0
  301. package/packages/sdk/dist/workflows/builder.d.ts.map +1 -0
  302. package/packages/sdk/dist/workflows/builder.js +201 -0
  303. package/packages/sdk/dist/workflows/builder.js.map +1 -0
  304. package/packages/sdk/dist/workflows/cli.d.ts +11 -0
  305. package/packages/sdk/dist/workflows/cli.d.ts.map +1 -0
  306. package/packages/sdk/dist/workflows/cli.js +144 -0
  307. package/packages/sdk/dist/workflows/cli.js.map +1 -0
  308. package/packages/sdk/dist/workflows/coordinator.d.ts +73 -0
  309. package/packages/sdk/dist/workflows/coordinator.d.ts.map +1 -0
  310. package/packages/sdk/dist/workflows/coordinator.js +647 -0
  311. package/packages/sdk/dist/workflows/coordinator.js.map +1 -0
  312. package/packages/sdk/dist/workflows/custom-steps.d.ts +73 -0
  313. package/packages/sdk/dist/workflows/custom-steps.d.ts.map +1 -0
  314. package/packages/sdk/dist/workflows/custom-steps.js +321 -0
  315. package/packages/sdk/dist/workflows/custom-steps.js.map +1 -0
  316. package/packages/sdk/dist/workflows/dry-run-format.d.ts +6 -0
  317. package/packages/sdk/dist/workflows/dry-run-format.d.ts.map +1 -0
  318. package/packages/sdk/dist/workflows/dry-run-format.js +68 -0
  319. package/packages/sdk/dist/workflows/dry-run-format.js.map +1 -0
  320. package/packages/sdk/dist/workflows/file-db.d.ts +33 -0
  321. package/packages/sdk/dist/workflows/file-db.d.ts.map +1 -0
  322. package/packages/sdk/dist/workflows/file-db.js +108 -0
  323. package/packages/sdk/dist/workflows/file-db.js.map +1 -0
  324. package/packages/sdk/dist/workflows/index.d.ts +15 -0
  325. package/packages/sdk/dist/workflows/index.d.ts.map +1 -0
  326. package/packages/sdk/dist/workflows/index.js +15 -0
  327. package/packages/sdk/dist/workflows/index.js.map +1 -0
  328. package/packages/sdk/dist/workflows/run.d.ts +38 -0
  329. package/packages/sdk/dist/workflows/run.d.ts.map +1 -0
  330. package/packages/sdk/dist/workflows/run.js +25 -0
  331. package/packages/sdk/dist/workflows/run.js.map +1 -0
  332. package/packages/sdk/dist/workflows/runner.d.ts +320 -0
  333. package/packages/sdk/dist/workflows/runner.d.ts.map +1 -0
  334. package/packages/sdk/dist/workflows/runner.js +2821 -0
  335. package/packages/sdk/dist/workflows/runner.js.map +1 -0
  336. package/packages/sdk/dist/workflows/templates.d.ts +47 -0
  337. package/packages/sdk/dist/workflows/templates.d.ts.map +1 -0
  338. package/packages/sdk/dist/workflows/templates.js +405 -0
  339. package/packages/sdk/dist/workflows/templates.js.map +1 -0
  340. package/packages/sdk/dist/workflows/trajectory.d.ts +87 -0
  341. package/packages/sdk/dist/workflows/trajectory.d.ts.map +1 -0
  342. package/packages/sdk/dist/workflows/trajectory.js +441 -0
  343. package/packages/sdk/dist/workflows/trajectory.js.map +1 -0
  344. package/packages/sdk/dist/workflows/types.d.ts +306 -0
  345. package/packages/sdk/dist/workflows/types.d.ts.map +1 -0
  346. package/packages/sdk/dist/workflows/types.js +23 -0
  347. package/packages/sdk/dist/workflows/types.js.map +1 -0
  348. package/packages/sdk/dist/workflows/validator.d.ts +11 -0
  349. package/packages/sdk/dist/workflows/validator.d.ts.map +1 -0
  350. package/packages/sdk/dist/workflows/validator.js +128 -0
  351. package/packages/sdk/dist/workflows/validator.js.map +1 -0
  352. package/packages/sdk/package.json +59 -53
  353. package/packages/sdk/scripts/bundle-agent-relay.mjs +53 -0
  354. package/packages/sdk/src/__tests__/contract-fixtures.test.ts +122 -0
  355. package/packages/sdk/src/__tests__/error-scenarios.test.ts +682 -0
  356. package/packages/sdk/src/__tests__/facade.test.ts +364 -0
  357. package/packages/sdk/src/__tests__/idle-nudge.test.ts +438 -0
  358. package/packages/sdk/src/__tests__/integration.test.ts +204 -0
  359. package/packages/sdk/src/__tests__/orchestration-upgrades.test.ts +797 -0
  360. package/packages/sdk/src/__tests__/pty.test.ts +24 -0
  361. package/packages/sdk/src/__tests__/quickstart.test.ts +198 -0
  362. package/packages/sdk/src/__tests__/spawn-from-env.test.ts +282 -0
  363. package/packages/sdk/src/__tests__/swarm-coordinator.test.ts +909 -0
  364. package/packages/sdk/src/__tests__/unit.test.ts +435 -0
  365. package/packages/sdk/src/__tests__/workflow-runner.test.ts +489 -0
  366. package/packages/sdk/src/__tests__/yaml-validation.test.ts +890 -0
  367. package/packages/sdk/src/client.ts +514 -1912
  368. package/packages/sdk/src/examples/workflow-superiority.ts +1485 -0
  369. package/packages/sdk/src/examples/workflows/README.md +156 -0
  370. package/packages/sdk/src/examples/workflows/ralph-overnight.yaml +421 -0
  371. package/packages/sdk/src/examples/workflows/ralph-swarm.yaml +411 -0
  372. package/packages/sdk/src/examples/workflows/ralph-tdd.yaml +259 -0
  373. package/packages/sdk/src/index.ts +13 -116
  374. package/packages/sdk/src/logs.ts +282 -54
  375. package/packages/sdk/src/models.ts +36 -0
  376. package/packages/sdk/src/protocol.ts +385 -0
  377. package/packages/sdk/src/pty.ts +35 -0
  378. package/packages/sdk/src/relay-adapter.ts +316 -0
  379. package/packages/sdk/src/relay.ts +1147 -0
  380. package/packages/sdk/src/shadow.ts +228 -0
  381. package/packages/sdk/src/spawn-from-env.ts +245 -0
  382. package/packages/sdk/src/workflows/README.md +656 -0
  383. package/packages/sdk/src/workflows/builder.ts +278 -0
  384. package/packages/sdk/src/workflows/builtin-templates/bug-fix.yaml +135 -0
  385. package/packages/sdk/src/workflows/builtin-templates/code-review.yaml +133 -0
  386. package/packages/sdk/src/workflows/builtin-templates/competitive.yaml +103 -0
  387. package/packages/sdk/src/workflows/builtin-templates/documentation.yaml +120 -0
  388. package/packages/sdk/src/workflows/builtin-templates/feature-dev.yaml +142 -0
  389. package/packages/sdk/src/workflows/builtin-templates/refactor.yaml +141 -0
  390. package/packages/sdk/src/workflows/builtin-templates/review-loop.yaml +223 -0
  391. package/packages/sdk/src/workflows/builtin-templates/security-audit.yaml +129 -0
  392. package/packages/sdk/src/workflows/cli.ts +162 -0
  393. package/packages/sdk/src/workflows/coordinator.ts +842 -0
  394. package/packages/sdk/src/workflows/custom-steps.ts +450 -0
  395. package/packages/sdk/src/workflows/dry-run-format.ts +75 -0
  396. package/packages/sdk/src/workflows/file-db.ts +117 -0
  397. package/packages/sdk/src/workflows/index.ts +24 -0
  398. package/packages/sdk/src/workflows/run.ts +72 -0
  399. package/packages/sdk/src/workflows/runner.ts +3409 -0
  400. package/packages/sdk/src/workflows/schema.json +651 -0
  401. package/packages/sdk/src/workflows/templates.ts +552 -0
  402. package/packages/sdk/src/workflows/trajectory.ts +631 -0
  403. package/packages/sdk/src/workflows/types.ts +389 -0
  404. package/packages/sdk/src/workflows/validator.ts +151 -0
  405. package/packages/sdk/tsconfig.build.json +25 -0
  406. package/packages/sdk/tsconfig.json +17 -18
  407. package/packages/sdk/vitest.config.ts +1 -1
  408. package/packages/sdk-py/README.md +106 -21
  409. package/packages/sdk-py/agent_relay/__init__.py +21 -0
  410. package/packages/sdk-py/agent_relay/models.py +206 -0
  411. package/packages/sdk-py/pyproject.toml +2 -2
  412. package/packages/sdk-py/src/agent_relay/__init__.py +76 -0
  413. package/packages/sdk-py/src/agent_relay/builder.py +430 -109
  414. package/packages/sdk-py/src/agent_relay/templates.py +197 -0
  415. package/packages/sdk-py/src/agent_relay/types.py +489 -15
  416. package/packages/sdk-py/tests/test_builder.py +115 -1
  417. package/packages/sdk-py/tests/test_workflow_templates.py +450 -0
  418. package/packages/shared/cli-registry.yaml +193 -0
  419. package/packages/shared/codegen-py.mjs +215 -0
  420. package/packages/shared/codegen-ts.mjs +227 -0
  421. package/packages/telemetry/dist/events.d.ts +8 -8
  422. package/packages/telemetry/dist/index.d.ts +1 -1
  423. package/packages/telemetry/package.json +2 -2
  424. package/packages/telemetry/src/events.ts +9 -9
  425. package/packages/telemetry/src/index.ts +2 -2
  426. package/packages/trajectory/package.json +2 -2
  427. package/packages/user-directory/dist/user-directory.js +1 -1
  428. package/packages/user-directory/dist/user-directory.js.map +1 -1
  429. package/packages/user-directory/package.json +2 -2
  430. package/packages/user-directory/src/user-directory.ts +1 -1
  431. package/packages/utils/dist/cjs/client-helpers.js +4 -4
  432. package/packages/utils/dist/cjs/discovery.js +9 -6
  433. package/packages/utils/dist/cjs/errors.js +5 -5
  434. package/packages/utils/dist/cjs/legacy-protocol.js +70 -0
  435. package/packages/utils/dist/cjs/logger.js +3 -3
  436. package/packages/utils/dist/cjs/precompiled-patterns.js +33 -2
  437. package/packages/utils/dist/cjs/relay-pty-path.js +0 -6
  438. package/packages/utils/dist/client-helpers.d.ts +1 -1
  439. package/packages/utils/dist/client-helpers.d.ts.map +1 -1
  440. package/packages/utils/dist/client-helpers.js +1 -1
  441. package/packages/utils/dist/client-helpers.js.map +1 -1
  442. package/packages/utils/dist/discovery.d.ts +7 -7
  443. package/packages/utils/dist/discovery.d.ts.map +1 -1
  444. package/packages/utils/dist/discovery.js +20 -17
  445. package/packages/utils/dist/discovery.js.map +1 -1
  446. package/packages/utils/dist/errors.d.ts +1 -1
  447. package/packages/utils/dist/errors.js +3 -3
  448. package/packages/utils/dist/legacy-protocol.d.ts +46 -0
  449. package/packages/utils/dist/legacy-protocol.d.ts.map +1 -0
  450. package/packages/utils/dist/legacy-protocol.js +47 -0
  451. package/packages/utils/dist/legacy-protocol.js.map +1 -0
  452. package/packages/utils/dist/logger.d.ts +2 -2
  453. package/packages/utils/dist/logger.js +2 -2
  454. package/packages/utils/dist/precompiled-patterns.d.ts.map +1 -1
  455. package/packages/utils/dist/precompiled-patterns.js +28 -2
  456. package/packages/utils/dist/precompiled-patterns.js.map +1 -1
  457. package/packages/utils/dist/relay-pty-path.d.ts.map +1 -1
  458. package/packages/utils/dist/relay-pty-path.js +1 -10
  459. package/packages/utils/dist/relay-pty-path.js.map +1 -1
  460. package/packages/utils/package.json +2 -3
  461. package/packages/utils/src/client-helpers.ts +1 -1
  462. package/packages/utils/src/consolidation.test.ts +3 -3
  463. package/packages/utils/src/discovery.test.ts +3 -3
  464. package/packages/utils/src/discovery.ts +21 -18
  465. package/packages/utils/src/errors.test.ts +6 -11
  466. package/packages/utils/src/errors.ts +3 -3
  467. package/packages/utils/src/legacy-protocol.ts +151 -0
  468. package/packages/utils/src/logger.ts +2 -2
  469. package/packages/utils/src/precompiled-patterns.test.ts +8 -0
  470. package/packages/utils/src/precompiled-patterns.ts +40 -2
  471. package/packages/utils/src/relay-pty-path.test.ts +23 -34
  472. package/packages/utils/src/relay-pty-path.ts +1 -11
  473. package/relay-snippets/agent-relay-protocol.md +6 -43
  474. package/relay-snippets/agent-relay-snippet.md +59 -203
  475. package/scripts/postinstall.js +44 -171
  476. package/bin/relay-pty-darwin-arm64 +0 -0
  477. package/bin/relay-pty-darwin-x64 +0 -0
  478. package/bin/relay-pty-linux-arm64 +0 -0
  479. package/bin/relay-pty-linux-x64 +0 -0
  480. package/dist/src/bridge/index.d.ts +0 -8
  481. package/dist/src/bridge/index.d.ts.map +0 -1
  482. package/dist/src/bridge/index.js +0 -8
  483. package/dist/src/bridge/index.js.map +0 -1
  484. package/dist/src/continuity/index.d.ts +0 -5
  485. package/dist/src/continuity/index.d.ts.map +0 -1
  486. package/dist/src/continuity/index.js +0 -5
  487. package/dist/src/continuity/index.js.map +0 -1
  488. package/dist/src/daemon/index.d.ts +0 -8
  489. package/dist/src/daemon/index.d.ts.map +0 -1
  490. package/dist/src/daemon/index.js +0 -9
  491. package/dist/src/daemon/index.js.map +0 -1
  492. package/dist/src/protocol/index.d.ts +0 -8
  493. package/dist/src/protocol/index.d.ts.map +0 -1
  494. package/dist/src/protocol/index.js +0 -8
  495. package/dist/src/protocol/index.js.map +0 -1
  496. package/dist/src/resiliency/index.d.ts +0 -5
  497. package/dist/src/resiliency/index.d.ts.map +0 -1
  498. package/dist/src/resiliency/index.js +0 -5
  499. package/dist/src/resiliency/index.js.map +0 -1
  500. package/dist/src/state/index.d.ts +0 -5
  501. package/dist/src/state/index.d.ts.map +0 -1
  502. package/dist/src/state/index.js +0 -5
  503. package/dist/src/state/index.js.map +0 -1
  504. package/dist/src/storage/index.d.ts +0 -8
  505. package/dist/src/storage/index.d.ts.map +0 -1
  506. package/dist/src/storage/index.js +0 -8
  507. package/dist/src/storage/index.js.map +0 -1
  508. package/dist/src/wrapper/index.d.ts +0 -8
  509. package/dist/src/wrapper/index.d.ts.map +0 -1
  510. package/dist/src/wrapper/index.js +0 -11
  511. package/dist/src/wrapper/index.js.map +0 -1
  512. package/packages/bridge/dist/cli-resolution.d.ts +0 -32
  513. package/packages/bridge/dist/cli-resolution.d.ts.map +0 -1
  514. package/packages/bridge/dist/cli-resolution.js +0 -88
  515. package/packages/bridge/dist/cli-resolution.js.map +0 -1
  516. package/packages/bridge/dist/index.d.ts +0 -9
  517. package/packages/bridge/dist/index.d.ts.map +0 -1
  518. package/packages/bridge/dist/index.js +0 -11
  519. package/packages/bridge/dist/index.js.map +0 -1
  520. package/packages/bridge/dist/multi-project-client.d.ts +0 -99
  521. package/packages/bridge/dist/multi-project-client.d.ts.map +0 -1
  522. package/packages/bridge/dist/multi-project-client.js +0 -389
  523. package/packages/bridge/dist/multi-project-client.js.map +0 -1
  524. package/packages/bridge/dist/shadow-cli.d.ts +0 -17
  525. package/packages/bridge/dist/shadow-cli.d.ts.map +0 -1
  526. package/packages/bridge/dist/shadow-cli.js +0 -75
  527. package/packages/bridge/dist/shadow-cli.js.map +0 -1
  528. package/packages/bridge/dist/spawner.d.ts +0 -263
  529. package/packages/bridge/dist/spawner.d.ts.map +0 -1
  530. package/packages/bridge/dist/spawner.js +0 -1758
  531. package/packages/bridge/dist/spawner.js.map +0 -1
  532. package/packages/bridge/dist/types.d.ts +0 -141
  533. package/packages/bridge/dist/types.d.ts.map +0 -1
  534. package/packages/bridge/dist/types.js +0 -6
  535. package/packages/bridge/dist/types.js.map +0 -1
  536. package/packages/bridge/dist/utils.d.ts +0 -39
  537. package/packages/bridge/dist/utils.d.ts.map +0 -1
  538. package/packages/bridge/dist/utils.js +0 -98
  539. package/packages/bridge/dist/utils.js.map +0 -1
  540. package/packages/bridge/package.json +0 -45
  541. package/packages/bridge/src/cli-resolution.test.ts +0 -225
  542. package/packages/bridge/src/cli-resolution.ts +0 -100
  543. package/packages/bridge/src/index.ts +0 -34
  544. package/packages/bridge/src/multi-project-client.test.ts +0 -340
  545. package/packages/bridge/src/multi-project-client.ts +0 -469
  546. package/packages/bridge/src/shadow-cli.ts +0 -95
  547. package/packages/bridge/src/spawner-mcp.test.ts +0 -505
  548. package/packages/bridge/src/spawner.ts +0 -2067
  549. package/packages/bridge/src/types.ts +0 -153
  550. package/packages/bridge/src/utils.test.ts +0 -235
  551. package/packages/bridge/src/utils.ts +0 -113
  552. package/packages/bridge/tsconfig.json +0 -29
  553. package/packages/bridge/vitest.config.ts +0 -9
  554. package/packages/broker-sdk/README.md +0 -97
  555. package/packages/broker-sdk/dist/__tests__/facade.test.js +0 -257
  556. package/packages/broker-sdk/dist/__tests__/facade.test.js.map +0 -1
  557. package/packages/broker-sdk/dist/__tests__/integration.test.js +0 -139
  558. package/packages/broker-sdk/dist/__tests__/integration.test.js.map +0 -1
  559. package/packages/broker-sdk/dist/__tests__/quickstart.test.js +0 -176
  560. package/packages/broker-sdk/dist/__tests__/quickstart.test.js.map +0 -1
  561. package/packages/broker-sdk/dist/__tests__/unit.test.js +0 -192
  562. package/packages/broker-sdk/dist/__tests__/unit.test.js.map +0 -1
  563. package/packages/broker-sdk/dist/client.d.ts +0 -95
  564. package/packages/broker-sdk/dist/client.d.ts.map +0 -1
  565. package/packages/broker-sdk/dist/client.js +0 -372
  566. package/packages/broker-sdk/dist/client.js.map +0 -1
  567. package/packages/broker-sdk/dist/index.d.ts +0 -10
  568. package/packages/broker-sdk/dist/index.d.ts.map +0 -1
  569. package/packages/broker-sdk/dist/index.js +0 -10
  570. package/packages/broker-sdk/dist/index.js.map +0 -1
  571. package/packages/broker-sdk/dist/logs.d.ts +0 -47
  572. package/packages/broker-sdk/dist/logs.d.ts.map +0 -1
  573. package/packages/broker-sdk/dist/logs.js +0 -137
  574. package/packages/broker-sdk/dist/logs.js.map +0 -1
  575. package/packages/broker-sdk/dist/protocol.d.ts +0 -254
  576. package/packages/broker-sdk/dist/protocol.d.ts.map +0 -1
  577. package/packages/broker-sdk/dist/pty.d.ts.map +0 -1
  578. package/packages/broker-sdk/dist/pty.js +0 -14
  579. package/packages/broker-sdk/dist/pty.js.map +0 -1
  580. package/packages/broker-sdk/dist/relay.d.ts +0 -172
  581. package/packages/broker-sdk/dist/relay.d.ts.map +0 -1
  582. package/packages/broker-sdk/dist/relay.js +0 -486
  583. package/packages/broker-sdk/dist/relay.js.map +0 -1
  584. package/packages/broker-sdk/dist/relaycast.d.ts +0 -67
  585. package/packages/broker-sdk/dist/relaycast.d.ts.map +0 -1
  586. package/packages/broker-sdk/dist/relaycast.js +0 -150
  587. package/packages/broker-sdk/dist/relaycast.js.map +0 -1
  588. package/packages/broker-sdk/dist/shadow.d.ts +0 -100
  589. package/packages/broker-sdk/dist/shadow.d.ts.map +0 -1
  590. package/packages/broker-sdk/dist/shadow.js.map +0 -1
  591. package/packages/broker-sdk/dist/workflows/builder.d.ts +0 -101
  592. package/packages/broker-sdk/dist/workflows/builder.d.ts.map +0 -1
  593. package/packages/broker-sdk/dist/workflows/builder.js +0 -179
  594. package/packages/broker-sdk/dist/workflows/builder.js.map +0 -1
  595. package/packages/broker-sdk/dist/workflows/cli.d.ts +0 -10
  596. package/packages/broker-sdk/dist/workflows/cli.d.ts.map +0 -1
  597. package/packages/broker-sdk/dist/workflows/cli.js +0 -82
  598. package/packages/broker-sdk/dist/workflows/cli.js.map +0 -1
  599. package/packages/broker-sdk/dist/workflows/coordinator.d.ts +0 -69
  600. package/packages/broker-sdk/dist/workflows/coordinator.d.ts.map +0 -1
  601. package/packages/broker-sdk/dist/workflows/coordinator.js +0 -585
  602. package/packages/broker-sdk/dist/workflows/coordinator.js.map +0 -1
  603. package/packages/broker-sdk/dist/workflows/index.d.ts +0 -11
  604. package/packages/broker-sdk/dist/workflows/index.d.ts.map +0 -1
  605. package/packages/broker-sdk/dist/workflows/index.js +0 -11
  606. package/packages/broker-sdk/dist/workflows/index.js.map +0 -1
  607. package/packages/broker-sdk/dist/workflows/run.d.ts +0 -33
  608. package/packages/broker-sdk/dist/workflows/run.d.ts.map +0 -1
  609. package/packages/broker-sdk/dist/workflows/run.js +0 -28
  610. package/packages/broker-sdk/dist/workflows/run.js.map +0 -1
  611. package/packages/broker-sdk/dist/workflows/runner.d.ts +0 -136
  612. package/packages/broker-sdk/dist/workflows/runner.d.ts.map +0 -1
  613. package/packages/broker-sdk/dist/workflows/runner.js +0 -900
  614. package/packages/broker-sdk/dist/workflows/runner.js.map +0 -1
  615. package/packages/broker-sdk/dist/workflows/templates.d.ts +0 -47
  616. package/packages/broker-sdk/dist/workflows/templates.d.ts.map +0 -1
  617. package/packages/broker-sdk/dist/workflows/templates.js +0 -395
  618. package/packages/broker-sdk/dist/workflows/templates.js.map +0 -1
  619. package/packages/broker-sdk/dist/workflows/trajectory.d.ts +0 -80
  620. package/packages/broker-sdk/dist/workflows/trajectory.d.ts.map +0 -1
  621. package/packages/broker-sdk/dist/workflows/trajectory.js +0 -362
  622. package/packages/broker-sdk/dist/workflows/trajectory.js.map +0 -1
  623. package/packages/broker-sdk/dist/workflows/types.d.ts +0 -140
  624. package/packages/broker-sdk/dist/workflows/types.d.ts.map +0 -1
  625. package/packages/broker-sdk/dist/workflows/types.js +0 -8
  626. package/packages/broker-sdk/dist/workflows/types.js.map +0 -1
  627. package/packages/broker-sdk/package.json +0 -81
  628. package/packages/broker-sdk/scripts/bundle-agent-relay.mjs +0 -53
  629. package/packages/broker-sdk/src/__tests__/error-scenarios.test.ts +0 -682
  630. package/packages/broker-sdk/src/__tests__/facade.test.ts +0 -296
  631. package/packages/broker-sdk/src/__tests__/integration.test.ts +0 -170
  632. package/packages/broker-sdk/src/__tests__/quickstart.test.ts +0 -198
  633. package/packages/broker-sdk/src/__tests__/swarm-coordinator.test.ts +0 -772
  634. package/packages/broker-sdk/src/__tests__/unit.test.ts +0 -243
  635. package/packages/broker-sdk/src/__tests__/workflow-runner.test.ts +0 -333
  636. package/packages/broker-sdk/src/client.ts +0 -510
  637. package/packages/broker-sdk/src/index.ts +0 -9
  638. package/packages/broker-sdk/src/logs.ts +0 -163
  639. package/packages/broker-sdk/src/protocol.ts +0 -271
  640. package/packages/broker-sdk/src/pty.ts +0 -16
  641. package/packages/broker-sdk/src/relay.ts +0 -614
  642. package/packages/broker-sdk/src/relaycast.ts +0 -185
  643. package/packages/broker-sdk/src/shadow.ts +0 -230
  644. package/packages/broker-sdk/src/workflows/README.md +0 -514
  645. package/packages/broker-sdk/src/workflows/builder.ts +0 -241
  646. package/packages/broker-sdk/src/workflows/builtin-templates/bug-fix.yaml +0 -75
  647. package/packages/broker-sdk/src/workflows/builtin-templates/code-review.yaml +0 -82
  648. package/packages/broker-sdk/src/workflows/builtin-templates/documentation.yaml +0 -70
  649. package/packages/broker-sdk/src/workflows/builtin-templates/feature-dev.yaml +0 -76
  650. package/packages/broker-sdk/src/workflows/builtin-templates/refactor.yaml +0 -82
  651. package/packages/broker-sdk/src/workflows/builtin-templates/security-audit.yaml +0 -84
  652. package/packages/broker-sdk/src/workflows/cli.ts +0 -93
  653. package/packages/broker-sdk/src/workflows/coordinator.ts +0 -758
  654. package/packages/broker-sdk/src/workflows/index.ts +0 -10
  655. package/packages/broker-sdk/src/workflows/run.ts +0 -55
  656. package/packages/broker-sdk/src/workflows/runner.ts +0 -1184
  657. package/packages/broker-sdk/src/workflows/schema.json +0 -333
  658. package/packages/broker-sdk/src/workflows/templates.ts +0 -544
  659. package/packages/broker-sdk/src/workflows/trajectory.ts +0 -507
  660. package/packages/broker-sdk/src/workflows/types.ts +0 -208
  661. package/packages/broker-sdk/tsconfig.json +0 -22
  662. package/packages/broker-sdk/vitest.config.ts +0 -9
  663. package/packages/continuity/dist/formatter.d.ts +0 -57
  664. package/packages/continuity/dist/formatter.d.ts.map +0 -1
  665. package/packages/continuity/dist/formatter.js +0 -448
  666. package/packages/continuity/dist/formatter.js.map +0 -1
  667. package/packages/continuity/dist/handoff-store.d.ts +0 -67
  668. package/packages/continuity/dist/handoff-store.d.ts.map +0 -1
  669. package/packages/continuity/dist/handoff-store.js +0 -472
  670. package/packages/continuity/dist/handoff-store.js.map +0 -1
  671. package/packages/continuity/dist/index.d.ts +0 -10
  672. package/packages/continuity/dist/index.d.ts.map +0 -1
  673. package/packages/continuity/dist/index.js +0 -11
  674. package/packages/continuity/dist/index.js.map +0 -1
  675. package/packages/continuity/dist/ledger-store.d.ts +0 -110
  676. package/packages/continuity/dist/ledger-store.d.ts.map +0 -1
  677. package/packages/continuity/dist/ledger-store.js +0 -500
  678. package/packages/continuity/dist/ledger-store.js.map +0 -1
  679. package/packages/continuity/dist/manager.d.ts +0 -183
  680. package/packages/continuity/dist/manager.d.ts.map +0 -1
  681. package/packages/continuity/dist/manager.js +0 -616
  682. package/packages/continuity/dist/manager.js.map +0 -1
  683. package/packages/continuity/dist/parser.d.ts +0 -76
  684. package/packages/continuity/dist/parser.d.ts.map +0 -1
  685. package/packages/continuity/dist/parser.js +0 -579
  686. package/packages/continuity/dist/parser.js.map +0 -1
  687. package/packages/continuity/dist/types.d.ts +0 -180
  688. package/packages/continuity/dist/types.d.ts.map +0 -1
  689. package/packages/continuity/dist/types.js +0 -2
  690. package/packages/continuity/dist/types.js.map +0 -1
  691. package/packages/continuity/package.json +0 -40
  692. package/packages/continuity/src/formatter.ts +0 -536
  693. package/packages/continuity/src/handoff-store.ts +0 -523
  694. package/packages/continuity/src/index.ts +0 -12
  695. package/packages/continuity/src/ledger-store.ts +0 -594
  696. package/packages/continuity/src/manager.test.ts +0 -291
  697. package/packages/continuity/src/manager.ts +0 -774
  698. package/packages/continuity/src/parser.test.ts +0 -292
  699. package/packages/continuity/src/parser.ts +0 -680
  700. package/packages/continuity/src/types.ts +0 -211
  701. package/packages/continuity/tsconfig.json +0 -21
  702. package/packages/continuity/vitest.config.ts +0 -9
  703. package/packages/daemon/dist/agent-manager.d.ts +0 -134
  704. package/packages/daemon/dist/agent-manager.d.ts.map +0 -1
  705. package/packages/daemon/dist/agent-manager.js +0 -578
  706. package/packages/daemon/dist/agent-manager.js.map +0 -1
  707. package/packages/daemon/dist/agent-registry.d.ts +0 -99
  708. package/packages/daemon/dist/agent-registry.d.ts.map +0 -1
  709. package/packages/daemon/dist/agent-registry.js +0 -213
  710. package/packages/daemon/dist/agent-registry.js.map +0 -1
  711. package/packages/daemon/dist/agent-signing.d.ts +0 -158
  712. package/packages/daemon/dist/agent-signing.d.ts.map +0 -1
  713. package/packages/daemon/dist/agent-signing.js +0 -523
  714. package/packages/daemon/dist/agent-signing.js.map +0 -1
  715. package/packages/daemon/dist/api.d.ts +0 -106
  716. package/packages/daemon/dist/api.d.ts.map +0 -1
  717. package/packages/daemon/dist/api.js +0 -895
  718. package/packages/daemon/dist/api.js.map +0 -1
  719. package/packages/daemon/dist/auth.d.ts +0 -94
  720. package/packages/daemon/dist/auth.d.ts.map +0 -1
  721. package/packages/daemon/dist/auth.js +0 -197
  722. package/packages/daemon/dist/auth.js.map +0 -1
  723. package/packages/daemon/dist/channel-membership-store.d.ts +0 -55
  724. package/packages/daemon/dist/channel-membership-store.d.ts.map +0 -1
  725. package/packages/daemon/dist/channel-membership-store.js +0 -176
  726. package/packages/daemon/dist/channel-membership-store.js.map +0 -1
  727. package/packages/daemon/dist/cli-auth.d.ts +0 -97
  728. package/packages/daemon/dist/cli-auth.d.ts.map +0 -1
  729. package/packages/daemon/dist/cli-auth.js +0 -808
  730. package/packages/daemon/dist/cli-auth.js.map +0 -1
  731. package/packages/daemon/dist/cloud-sync.d.ts +0 -263
  732. package/packages/daemon/dist/cloud-sync.d.ts.map +0 -1
  733. package/packages/daemon/dist/cloud-sync.js +0 -820
  734. package/packages/daemon/dist/cloud-sync.js.map +0 -1
  735. package/packages/daemon/dist/connection.d.ts +0 -137
  736. package/packages/daemon/dist/connection.d.ts.map +0 -1
  737. package/packages/daemon/dist/connection.js +0 -465
  738. package/packages/daemon/dist/connection.js.map +0 -1
  739. package/packages/daemon/dist/consensus-integration.d.ts +0 -168
  740. package/packages/daemon/dist/consensus-integration.d.ts.map +0 -1
  741. package/packages/daemon/dist/consensus-integration.js +0 -371
  742. package/packages/daemon/dist/consensus-integration.js.map +0 -1
  743. package/packages/daemon/dist/consensus.d.ts +0 -269
  744. package/packages/daemon/dist/consensus.d.ts.map +0 -1
  745. package/packages/daemon/dist/consensus.js +0 -632
  746. package/packages/daemon/dist/consensus.js.map +0 -1
  747. package/packages/daemon/dist/delivery-tracker.d.ts +0 -34
  748. package/packages/daemon/dist/delivery-tracker.d.ts.map +0 -1
  749. package/packages/daemon/dist/delivery-tracker.js +0 -104
  750. package/packages/daemon/dist/delivery-tracker.js.map +0 -1
  751. package/packages/daemon/dist/enhanced-features.d.ts +0 -118
  752. package/packages/daemon/dist/enhanced-features.d.ts.map +0 -1
  753. package/packages/daemon/dist/enhanced-features.js +0 -177
  754. package/packages/daemon/dist/enhanced-features.js.map +0 -1
  755. package/packages/daemon/dist/index.d.ts +0 -29
  756. package/packages/daemon/dist/index.d.ts.map +0 -1
  757. package/packages/daemon/dist/index.js +0 -34
  758. package/packages/daemon/dist/index.js.map +0 -1
  759. package/packages/daemon/dist/orchestrator.d.ts +0 -217
  760. package/packages/daemon/dist/orchestrator.d.ts.map +0 -1
  761. package/packages/daemon/dist/orchestrator.js +0 -1172
  762. package/packages/daemon/dist/orchestrator.js.map +0 -1
  763. package/packages/daemon/dist/rate-limiter.d.ts +0 -68
  764. package/packages/daemon/dist/rate-limiter.d.ts.map +0 -1
  765. package/packages/daemon/dist/rate-limiter.js +0 -130
  766. package/packages/daemon/dist/rate-limiter.js.map +0 -1
  767. package/packages/daemon/dist/registry.d.ts +0 -9
  768. package/packages/daemon/dist/registry.d.ts.map +0 -1
  769. package/packages/daemon/dist/registry.js +0 -9
  770. package/packages/daemon/dist/registry.js.map +0 -1
  771. package/packages/daemon/dist/repo-manager.d.ts +0 -116
  772. package/packages/daemon/dist/repo-manager.d.ts.map +0 -1
  773. package/packages/daemon/dist/repo-manager.js +0 -384
  774. package/packages/daemon/dist/repo-manager.js.map +0 -1
  775. package/packages/daemon/dist/router.d.ts +0 -389
  776. package/packages/daemon/dist/router.d.ts.map +0 -1
  777. package/packages/daemon/dist/router.js +0 -1607
  778. package/packages/daemon/dist/router.js.map +0 -1
  779. package/packages/daemon/dist/server.d.ts +0 -201
  780. package/packages/daemon/dist/server.d.ts.map +0 -1
  781. package/packages/daemon/dist/server.js +0 -1791
  782. package/packages/daemon/dist/server.js.map +0 -1
  783. package/packages/daemon/dist/spawn-manager.d.ts +0 -119
  784. package/packages/daemon/dist/spawn-manager.d.ts.map +0 -1
  785. package/packages/daemon/dist/spawn-manager.js +0 -319
  786. package/packages/daemon/dist/spawn-manager.js.map +0 -1
  787. package/packages/daemon/dist/sync-queue.d.ts +0 -116
  788. package/packages/daemon/dist/sync-queue.d.ts.map +0 -1
  789. package/packages/daemon/dist/sync-queue.js +0 -361
  790. package/packages/daemon/dist/sync-queue.js.map +0 -1
  791. package/packages/daemon/dist/types.d.ts +0 -133
  792. package/packages/daemon/dist/types.d.ts.map +0 -1
  793. package/packages/daemon/dist/types.js +0 -6
  794. package/packages/daemon/dist/types.js.map +0 -1
  795. package/packages/daemon/dist/workspace-manager.d.ts +0 -80
  796. package/packages/daemon/dist/workspace-manager.d.ts.map +0 -1
  797. package/packages/daemon/dist/workspace-manager.js +0 -314
  798. package/packages/daemon/dist/workspace-manager.js.map +0 -1
  799. package/packages/daemon/package.json +0 -56
  800. package/packages/daemon/src/agent-manager.ts +0 -679
  801. package/packages/daemon/src/agent-registry.ts +0 -284
  802. package/packages/daemon/src/agent-signing.ts +0 -707
  803. package/packages/daemon/src/api.ts +0 -1034
  804. package/packages/daemon/src/auth.ts +0 -276
  805. package/packages/daemon/src/channel-membership-store.ts +0 -217
  806. package/packages/daemon/src/cli-auth.ts +0 -945
  807. package/packages/daemon/src/cloud-sync.ts +0 -1100
  808. package/packages/daemon/src/connection.ts +0 -561
  809. package/packages/daemon/src/consensus-integration.ts +0 -510
  810. package/packages/daemon/src/consensus.ts +0 -848
  811. package/packages/daemon/src/delivery-tracker.ts +0 -145
  812. package/packages/daemon/src/enhanced-features.ts +0 -390
  813. package/packages/daemon/src/index.ts +0 -48
  814. package/packages/daemon/src/orchestrator.test.ts +0 -231
  815. package/packages/daemon/src/orchestrator.ts +0 -1376
  816. package/packages/daemon/src/rate-limiter.ts +0 -172
  817. package/packages/daemon/src/registry.ts +0 -8
  818. package/packages/daemon/src/repo-manager.ts +0 -468
  819. package/packages/daemon/src/router.test.ts +0 -181
  820. package/packages/daemon/src/router.ts +0 -1925
  821. package/packages/daemon/src/server.ts +0 -2051
  822. package/packages/daemon/src/spawn-manager-set-model.test.ts +0 -144
  823. package/packages/daemon/src/spawn-manager.ts +0 -415
  824. package/packages/daemon/src/sync-queue.ts +0 -477
  825. package/packages/daemon/src/types.ts +0 -158
  826. package/packages/daemon/src/workspace-manager.ts +0 -371
  827. package/packages/daemon/tsconfig.json +0 -21
  828. package/packages/daemon/vitest.config.ts +0 -9
  829. package/packages/mcp/CHANGELOG.md +0 -28
  830. package/packages/mcp/LICENSE +0 -190
  831. package/packages/mcp/README.md +0 -266
  832. package/packages/mcp/dist/bin.d.ts +0 -12
  833. package/packages/mcp/dist/bin.d.ts.map +0 -1
  834. package/packages/mcp/dist/bin.js +0 -179
  835. package/packages/mcp/dist/bin.js.map +0 -1
  836. package/packages/mcp/dist/client-adapter.d.ts +0 -164
  837. package/packages/mcp/dist/client-adapter.d.ts.map +0 -1
  838. package/packages/mcp/dist/client-adapter.js +0 -231
  839. package/packages/mcp/dist/client-adapter.js.map +0 -1
  840. package/packages/mcp/dist/cloud.d.ts +0 -13
  841. package/packages/mcp/dist/cloud.d.ts.map +0 -1
  842. package/packages/mcp/dist/cloud.js +0 -25
  843. package/packages/mcp/dist/cloud.js.map +0 -1
  844. package/packages/mcp/dist/errors.d.ts +0 -9
  845. package/packages/mcp/dist/errors.d.ts.map +0 -1
  846. package/packages/mcp/dist/errors.js +0 -9
  847. package/packages/mcp/dist/errors.js.map +0 -1
  848. package/packages/mcp/dist/file-transport.d.ts +0 -103
  849. package/packages/mcp/dist/file-transport.d.ts.map +0 -1
  850. package/packages/mcp/dist/file-transport.js +0 -204
  851. package/packages/mcp/dist/file-transport.js.map +0 -1
  852. package/packages/mcp/dist/hybrid-client.d.ts +0 -5
  853. package/packages/mcp/dist/hybrid-client.d.ts.map +0 -1
  854. package/packages/mcp/dist/hybrid-client.js +0 -23
  855. package/packages/mcp/dist/hybrid-client.js.map +0 -1
  856. package/packages/mcp/dist/index.d.ts +0 -11
  857. package/packages/mcp/dist/index.d.ts.map +0 -1
  858. package/packages/mcp/dist/index.js +0 -25
  859. package/packages/mcp/dist/index.js.map +0 -1
  860. package/packages/mcp/dist/install-cli.d.ts +0 -35
  861. package/packages/mcp/dist/install-cli.d.ts.map +0 -1
  862. package/packages/mcp/dist/install-cli.js +0 -157
  863. package/packages/mcp/dist/install-cli.js.map +0 -1
  864. package/packages/mcp/dist/install.d.ts +0 -123
  865. package/packages/mcp/dist/install.d.ts.map +0 -1
  866. package/packages/mcp/dist/install.js +0 -661
  867. package/packages/mcp/dist/install.js.map +0 -1
  868. package/packages/mcp/dist/prompts/index.d.ts +0 -2
  869. package/packages/mcp/dist/prompts/index.d.ts.map +0 -1
  870. package/packages/mcp/dist/prompts/index.js +0 -2
  871. package/packages/mcp/dist/prompts/index.js.map +0 -1
  872. package/packages/mcp/dist/prompts/protocol.d.ts +0 -11
  873. package/packages/mcp/dist/prompts/protocol.d.ts.map +0 -1
  874. package/packages/mcp/dist/prompts/protocol.js +0 -160
  875. package/packages/mcp/dist/prompts/protocol.js.map +0 -1
  876. package/packages/mcp/dist/resources/agents.d.ts +0 -11
  877. package/packages/mcp/dist/resources/agents.d.ts.map +0 -1
  878. package/packages/mcp/dist/resources/agents.js +0 -17
  879. package/packages/mcp/dist/resources/agents.js.map +0 -1
  880. package/packages/mcp/dist/resources/inbox.d.ts +0 -11
  881. package/packages/mcp/dist/resources/inbox.d.ts.map +0 -1
  882. package/packages/mcp/dist/resources/inbox.js +0 -17
  883. package/packages/mcp/dist/resources/inbox.js.map +0 -1
  884. package/packages/mcp/dist/resources/index.d.ts +0 -4
  885. package/packages/mcp/dist/resources/index.d.ts.map +0 -1
  886. package/packages/mcp/dist/resources/index.js +0 -4
  887. package/packages/mcp/dist/resources/index.js.map +0 -1
  888. package/packages/mcp/dist/resources/project.d.ts +0 -11
  889. package/packages/mcp/dist/resources/project.d.ts.map +0 -1
  890. package/packages/mcp/dist/resources/project.js +0 -21
  891. package/packages/mcp/dist/resources/project.js.map +0 -1
  892. package/packages/mcp/dist/server.d.ts +0 -23
  893. package/packages/mcp/dist/server.d.ts.map +0 -1
  894. package/packages/mcp/dist/server.js +0 -317
  895. package/packages/mcp/dist/server.js.map +0 -1
  896. package/packages/mcp/dist/simple.d.ts +0 -170
  897. package/packages/mcp/dist/simple.d.ts.map +0 -1
  898. package/packages/mcp/dist/simple.js +0 -120
  899. package/packages/mcp/dist/simple.js.map +0 -1
  900. package/packages/mcp/dist/tools/index.d.ts +0 -20
  901. package/packages/mcp/dist/tools/index.d.ts.map +0 -1
  902. package/packages/mcp/dist/tools/index.js +0 -20
  903. package/packages/mcp/dist/tools/index.js.map +0 -1
  904. package/packages/mcp/dist/tools/relay-broadcast.d.ts +0 -20
  905. package/packages/mcp/dist/tools/relay-broadcast.d.ts.map +0 -1
  906. package/packages/mcp/dist/tools/relay-broadcast.js +0 -25
  907. package/packages/mcp/dist/tools/relay-broadcast.js.map +0 -1
  908. package/packages/mcp/dist/tools/relay-channel.d.ts +0 -75
  909. package/packages/mcp/dist/tools/relay-channel.d.ts.map +0 -1
  910. package/packages/mcp/dist/tools/relay-channel.js +0 -124
  911. package/packages/mcp/dist/tools/relay-channel.js.map +0 -1
  912. package/packages/mcp/dist/tools/relay-connected.d.ts +0 -17
  913. package/packages/mcp/dist/tools/relay-connected.d.ts.map +0 -1
  914. package/packages/mcp/dist/tools/relay-connected.js +0 -54
  915. package/packages/mcp/dist/tools/relay-connected.js.map +0 -1
  916. package/packages/mcp/dist/tools/relay-consensus.d.ts +0 -45
  917. package/packages/mcp/dist/tools/relay-consensus.d.ts.map +0 -1
  918. package/packages/mcp/dist/tools/relay-consensus.js +0 -80
  919. package/packages/mcp/dist/tools/relay-consensus.js.map +0 -1
  920. package/packages/mcp/dist/tools/relay-continuity.d.ts +0 -35
  921. package/packages/mcp/dist/tools/relay-continuity.d.ts.map +0 -1
  922. package/packages/mcp/dist/tools/relay-continuity.js +0 -101
  923. package/packages/mcp/dist/tools/relay-continuity.js.map +0 -1
  924. package/packages/mcp/dist/tools/relay-health.d.ts +0 -20
  925. package/packages/mcp/dist/tools/relay-health.d.ts.map +0 -1
  926. package/packages/mcp/dist/tools/relay-health.js +0 -130
  927. package/packages/mcp/dist/tools/relay-health.js.map +0 -1
  928. package/packages/mcp/dist/tools/relay-inbox.d.ts +0 -26
  929. package/packages/mcp/dist/tools/relay-inbox.d.ts.map +0 -1
  930. package/packages/mcp/dist/tools/relay-inbox.js +0 -58
  931. package/packages/mcp/dist/tools/relay-inbox.js.map +0 -1
  932. package/packages/mcp/dist/tools/relay-logs.d.ts +0 -20
  933. package/packages/mcp/dist/tools/relay-logs.d.ts.map +0 -1
  934. package/packages/mcp/dist/tools/relay-logs.js +0 -90
  935. package/packages/mcp/dist/tools/relay-logs.js.map +0 -1
  936. package/packages/mcp/dist/tools/relay-messages.d.ts +0 -32
  937. package/packages/mcp/dist/tools/relay-messages.d.ts.map +0 -1
  938. package/packages/mcp/dist/tools/relay-messages.js +0 -61
  939. package/packages/mcp/dist/tools/relay-messages.js.map +0 -1
  940. package/packages/mcp/dist/tools/relay-metrics.d.ts +0 -17
  941. package/packages/mcp/dist/tools/relay-metrics.d.ts.map +0 -1
  942. package/packages/mcp/dist/tools/relay-metrics.js +0 -124
  943. package/packages/mcp/dist/tools/relay-metrics.js.map +0 -1
  944. package/packages/mcp/dist/tools/relay-release.d.ts +0 -20
  945. package/packages/mcp/dist/tools/relay-release.d.ts.map +0 -1
  946. package/packages/mcp/dist/tools/relay-release.js +0 -44
  947. package/packages/mcp/dist/tools/relay-release.js.map +0 -1
  948. package/packages/mcp/dist/tools/relay-remove-agent.d.ts +0 -20
  949. package/packages/mcp/dist/tools/relay-remove-agent.d.ts.map +0 -1
  950. package/packages/mcp/dist/tools/relay-remove-agent.js +0 -50
  951. package/packages/mcp/dist/tools/relay-remove-agent.js.map +0 -1
  952. package/packages/mcp/dist/tools/relay-send.d.ts +0 -29
  953. package/packages/mcp/dist/tools/relay-send.d.ts.map +0 -1
  954. package/packages/mcp/dist/tools/relay-send.js +0 -73
  955. package/packages/mcp/dist/tools/relay-send.js.map +0 -1
  956. package/packages/mcp/dist/tools/relay-set-model.d.ts +0 -23
  957. package/packages/mcp/dist/tools/relay-set-model.d.ts.map +0 -1
  958. package/packages/mcp/dist/tools/relay-set-model.js +0 -52
  959. package/packages/mcp/dist/tools/relay-set-model.js.map +0 -1
  960. package/packages/mcp/dist/tools/relay-shadow.d.ts +0 -30
  961. package/packages/mcp/dist/tools/relay-shadow.d.ts.map +0 -1
  962. package/packages/mcp/dist/tools/relay-shadow.js +0 -55
  963. package/packages/mcp/dist/tools/relay-shadow.js.map +0 -1
  964. package/packages/mcp/dist/tools/relay-spawn.d.ts +0 -36
  965. package/packages/mcp/dist/tools/relay-spawn.d.ts.map +0 -1
  966. package/packages/mcp/dist/tools/relay-spawn.js +0 -73
  967. package/packages/mcp/dist/tools/relay-spawn.js.map +0 -1
  968. package/packages/mcp/dist/tools/relay-status.d.ts +0 -11
  969. package/packages/mcp/dist/tools/relay-status.d.ts.map +0 -1
  970. package/packages/mcp/dist/tools/relay-status.js +0 -43
  971. package/packages/mcp/dist/tools/relay-status.js.map +0 -1
  972. package/packages/mcp/dist/tools/relay-subscribe.d.ts +0 -27
  973. package/packages/mcp/dist/tools/relay-subscribe.d.ts.map +0 -1
  974. package/packages/mcp/dist/tools/relay-subscribe.js +0 -49
  975. package/packages/mcp/dist/tools/relay-subscribe.js.map +0 -1
  976. package/packages/mcp/dist/tools/relay-who.d.ts +0 -20
  977. package/packages/mcp/dist/tools/relay-who.d.ts.map +0 -1
  978. package/packages/mcp/dist/tools/relay-who.js +0 -62
  979. package/packages/mcp/dist/tools/relay-who.js.map +0 -1
  980. package/packages/mcp/package.json +0 -82
  981. package/packages/mcp/src/bin.ts +0 -200
  982. package/packages/mcp/src/client-adapter.ts +0 -358
  983. package/packages/mcp/src/cloud.ts +0 -41
  984. package/packages/mcp/src/errors.ts +0 -17
  985. package/packages/mcp/src/file-transport.ts +0 -275
  986. package/packages/mcp/src/hybrid-client.ts +0 -25
  987. package/packages/mcp/src/index.ts +0 -143
  988. package/packages/mcp/src/install-cli.ts +0 -210
  989. package/packages/mcp/src/install.ts +0 -820
  990. package/packages/mcp/src/prompts/index.ts +0 -1
  991. package/packages/mcp/src/prompts/protocol.ts +0 -164
  992. package/packages/mcp/src/resources/agents.ts +0 -21
  993. package/packages/mcp/src/resources/inbox.ts +0 -21
  994. package/packages/mcp/src/resources/index.ts +0 -3
  995. package/packages/mcp/src/resources/project.ts +0 -29
  996. package/packages/mcp/src/server.ts +0 -475
  997. package/packages/mcp/src/simple.ts +0 -214
  998. package/packages/mcp/src/tools/index.ts +0 -155
  999. package/packages/mcp/src/tools/relay-broadcast.ts +0 -32
  1000. package/packages/mcp/src/tools/relay-channel.ts +0 -151
  1001. package/packages/mcp/src/tools/relay-connected.ts +0 -67
  1002. package/packages/mcp/src/tools/relay-consensus.ts +0 -92
  1003. package/packages/mcp/src/tools/relay-continuity.ts +0 -127
  1004. package/packages/mcp/src/tools/relay-health.ts +0 -148
  1005. package/packages/mcp/src/tools/relay-inbox.ts +0 -70
  1006. package/packages/mcp/src/tools/relay-logs.ts +0 -106
  1007. package/packages/mcp/src/tools/relay-messages.ts +0 -66
  1008. package/packages/mcp/src/tools/relay-metrics.ts +0 -142
  1009. package/packages/mcp/src/tools/relay-release.ts +0 -54
  1010. package/packages/mcp/src/tools/relay-remove-agent.ts +0 -58
  1011. package/packages/mcp/src/tools/relay-send.ts +0 -84
  1012. package/packages/mcp/src/tools/relay-set-model.ts +0 -62
  1013. package/packages/mcp/src/tools/relay-shadow.ts +0 -67
  1014. package/packages/mcp/src/tools/relay-spawn.ts +0 -87
  1015. package/packages/mcp/src/tools/relay-status.ts +0 -57
  1016. package/packages/mcp/src/tools/relay-subscribe.ts +0 -61
  1017. package/packages/mcp/src/tools/relay-who.ts +0 -75
  1018. package/packages/mcp/tests/client.test.ts +0 -451
  1019. package/packages/mcp/tests/discover.test.ts +0 -256
  1020. package/packages/mcp/tests/install.test.ts +0 -123
  1021. package/packages/mcp/tests/prompts.test.ts +0 -12
  1022. package/packages/mcp/tests/resources.test.ts +0 -53
  1023. package/packages/mcp/tests/tools.test.ts +0 -1516
  1024. package/packages/mcp/tsconfig.json +0 -22
  1025. package/packages/mcp/vitest.config.ts +0 -9
  1026. package/packages/protocol/dist/channels.d.ts +0 -137
  1027. package/packages/protocol/dist/channels.d.ts.map +0 -1
  1028. package/packages/protocol/dist/channels.js +0 -154
  1029. package/packages/protocol/dist/channels.js.map +0 -1
  1030. package/packages/protocol/dist/framing.d.ts +0 -80
  1031. package/packages/protocol/dist/framing.d.ts.map +0 -1
  1032. package/packages/protocol/dist/framing.js +0 -206
  1033. package/packages/protocol/dist/framing.js.map +0 -1
  1034. package/packages/protocol/dist/id-generator.d.ts +0 -35
  1035. package/packages/protocol/dist/id-generator.d.ts.map +0 -1
  1036. package/packages/protocol/dist/id-generator.js +0 -60
  1037. package/packages/protocol/dist/id-generator.js.map +0 -1
  1038. package/packages/protocol/dist/index.d.ts +0 -5
  1039. package/packages/protocol/dist/index.d.ts.map +0 -1
  1040. package/packages/protocol/dist/index.js +0 -5
  1041. package/packages/protocol/dist/index.js.map +0 -1
  1042. package/packages/protocol/dist/relay-pty-schemas.d.ts +0 -340
  1043. package/packages/protocol/dist/relay-pty-schemas.d.ts.map +0 -1
  1044. package/packages/protocol/dist/relay-pty-schemas.js +0 -60
  1045. package/packages/protocol/dist/relay-pty-schemas.js.map +0 -1
  1046. package/packages/protocol/dist/types.d.ts +0 -793
  1047. package/packages/protocol/dist/types.d.ts.map +0 -1
  1048. package/packages/protocol/dist/types.js +0 -8
  1049. package/packages/protocol/dist/types.js.map +0 -1
  1050. package/packages/protocol/package.json +0 -61
  1051. package/packages/protocol/src/channels.test.ts +0 -330
  1052. package/packages/protocol/src/channels.ts +0 -270
  1053. package/packages/protocol/src/framing.test.ts +0 -164
  1054. package/packages/protocol/src/framing.ts +0 -242
  1055. package/packages/protocol/src/id-generator.ts +0 -69
  1056. package/packages/protocol/src/index.ts +0 -4
  1057. package/packages/protocol/src/relay-pty-schemas.ts +0 -400
  1058. package/packages/protocol/src/types.test.ts +0 -271
  1059. package/packages/protocol/src/types.ts +0 -988
  1060. package/packages/protocol/tsconfig.json +0 -21
  1061. package/packages/protocol/vitest.config.ts +0 -9
  1062. package/packages/resiliency/dist/cgroup-manager.d.ts +0 -152
  1063. package/packages/resiliency/dist/cgroup-manager.d.ts.map +0 -1
  1064. package/packages/resiliency/dist/cgroup-manager.js +0 -394
  1065. package/packages/resiliency/dist/cgroup-manager.js.map +0 -1
  1066. package/packages/resiliency/dist/context-persistence.d.ts +0 -140
  1067. package/packages/resiliency/dist/context-persistence.d.ts.map +0 -1
  1068. package/packages/resiliency/dist/context-persistence.js +0 -397
  1069. package/packages/resiliency/dist/context-persistence.js.map +0 -1
  1070. package/packages/resiliency/dist/crash-insights.d.ts +0 -156
  1071. package/packages/resiliency/dist/crash-insights.d.ts.map +0 -1
  1072. package/packages/resiliency/dist/crash-insights.js +0 -492
  1073. package/packages/resiliency/dist/crash-insights.js.map +0 -1
  1074. package/packages/resiliency/dist/gossip-health.d.ts +0 -137
  1075. package/packages/resiliency/dist/gossip-health.d.ts.map +0 -1
  1076. package/packages/resiliency/dist/gossip-health.js +0 -241
  1077. package/packages/resiliency/dist/gossip-health.js.map +0 -1
  1078. package/packages/resiliency/dist/health-monitor.d.ts +0 -97
  1079. package/packages/resiliency/dist/health-monitor.d.ts.map +0 -1
  1080. package/packages/resiliency/dist/health-monitor.js +0 -291
  1081. package/packages/resiliency/dist/health-monitor.js.map +0 -1
  1082. package/packages/resiliency/dist/index.d.ts +0 -69
  1083. package/packages/resiliency/dist/index.d.ts.map +0 -1
  1084. package/packages/resiliency/dist/index.js +0 -69
  1085. package/packages/resiliency/dist/index.js.map +0 -1
  1086. package/packages/resiliency/dist/leader-watchdog.d.ts +0 -109
  1087. package/packages/resiliency/dist/leader-watchdog.d.ts.map +0 -1
  1088. package/packages/resiliency/dist/leader-watchdog.js +0 -189
  1089. package/packages/resiliency/dist/leader-watchdog.js.map +0 -1
  1090. package/packages/resiliency/dist/logger.d.ts +0 -114
  1091. package/packages/resiliency/dist/logger.d.ts.map +0 -1
  1092. package/packages/resiliency/dist/logger.js +0 -250
  1093. package/packages/resiliency/dist/logger.js.map +0 -1
  1094. package/packages/resiliency/dist/memory-monitor.d.ts +0 -172
  1095. package/packages/resiliency/dist/memory-monitor.d.ts.map +0 -1
  1096. package/packages/resiliency/dist/memory-monitor.js +0 -599
  1097. package/packages/resiliency/dist/memory-monitor.js.map +0 -1
  1098. package/packages/resiliency/dist/metrics.d.ts +0 -115
  1099. package/packages/resiliency/dist/metrics.d.ts.map +0 -1
  1100. package/packages/resiliency/dist/metrics.js +0 -239
  1101. package/packages/resiliency/dist/metrics.js.map +0 -1
  1102. package/packages/resiliency/dist/provider-context.d.ts +0 -100
  1103. package/packages/resiliency/dist/provider-context.d.ts.map +0 -1
  1104. package/packages/resiliency/dist/provider-context.js +0 -362
  1105. package/packages/resiliency/dist/provider-context.js.map +0 -1
  1106. package/packages/resiliency/dist/stateless-lead.d.ts +0 -149
  1107. package/packages/resiliency/dist/stateless-lead.d.ts.map +0 -1
  1108. package/packages/resiliency/dist/stateless-lead.js +0 -308
  1109. package/packages/resiliency/dist/stateless-lead.js.map +0 -1
  1110. package/packages/resiliency/dist/supervisor.d.ts +0 -147
  1111. package/packages/resiliency/dist/supervisor.d.ts.map +0 -1
  1112. package/packages/resiliency/dist/supervisor.js +0 -459
  1113. package/packages/resiliency/dist/supervisor.js.map +0 -1
  1114. package/packages/resiliency/package.json +0 -38
  1115. package/packages/resiliency/src/cgroup-manager.ts +0 -468
  1116. package/packages/resiliency/src/context-persistence.ts +0 -538
  1117. package/packages/resiliency/src/crash-insights.test.ts +0 -620
  1118. package/packages/resiliency/src/crash-insights.ts +0 -660
  1119. package/packages/resiliency/src/gossip-health.ts +0 -333
  1120. package/packages/resiliency/src/health-monitor.ts +0 -371
  1121. package/packages/resiliency/src/index.ts +0 -157
  1122. package/packages/resiliency/src/leader-watchdog.ts +0 -260
  1123. package/packages/resiliency/src/logger.ts +0 -320
  1124. package/packages/resiliency/src/memory-monitor.test.ts +0 -637
  1125. package/packages/resiliency/src/memory-monitor.ts +0 -740
  1126. package/packages/resiliency/src/metrics.ts +0 -311
  1127. package/packages/resiliency/src/provider-context.ts +0 -452
  1128. package/packages/resiliency/src/stateless-lead.ts +0 -408
  1129. package/packages/resiliency/src/supervisor.ts +0 -578
  1130. package/packages/resiliency/tsconfig.json +0 -21
  1131. package/packages/resiliency/vitest.config.ts +0 -9
  1132. package/packages/sdk/dist/discovery.d.ts +0 -10
  1133. package/packages/sdk/dist/discovery.d.ts.map +0 -1
  1134. package/packages/sdk/dist/discovery.js +0 -22
  1135. package/packages/sdk/dist/discovery.js.map +0 -1
  1136. package/packages/sdk/dist/errors.d.ts +0 -9
  1137. package/packages/sdk/dist/errors.d.ts.map +0 -1
  1138. package/packages/sdk/dist/errors.js +0 -9
  1139. package/packages/sdk/dist/errors.js.map +0 -1
  1140. package/packages/sdk/dist/protocol/index.d.ts +0 -8
  1141. package/packages/sdk/dist/protocol/index.d.ts.map +0 -1
  1142. package/packages/sdk/dist/protocol/index.js +0 -8
  1143. package/packages/sdk/dist/protocol/index.js.map +0 -1
  1144. package/packages/sdk/examples/SWARM_CAPABILITIES.md +0 -498
  1145. package/packages/sdk/examples/SWARM_PATTERNS.md +0 -541
  1146. package/packages/sdk/src/client.test.ts +0 -1041
  1147. package/packages/sdk/src/discovery.ts +0 -38
  1148. package/packages/sdk/src/errors.ts +0 -17
  1149. package/packages/sdk/src/logs.test.ts +0 -98
  1150. package/packages/sdk/src/protocol/framing.test.ts +0 -164
  1151. package/packages/sdk/src/protocol/index.ts +0 -8
  1152. package/packages/spawner/.trajectories/index.json +0 -5
  1153. package/packages/spawner/API.md +0 -256
  1154. package/packages/spawner/dist/index.d.ts +0 -8
  1155. package/packages/spawner/dist/index.d.ts.map +0 -1
  1156. package/packages/spawner/dist/index.js +0 -8
  1157. package/packages/spawner/dist/index.js.map +0 -1
  1158. package/packages/spawner/dist/types.d.ts +0 -552
  1159. package/packages/spawner/dist/types.d.ts.map +0 -1
  1160. package/packages/spawner/dist/types.js +0 -193
  1161. package/packages/spawner/dist/types.js.map +0 -1
  1162. package/packages/spawner/package.json +0 -47
  1163. package/packages/spawner/src/index.ts +0 -8
  1164. package/packages/spawner/src/types.test.ts +0 -385
  1165. package/packages/spawner/src/types.ts +0 -228
  1166. package/packages/spawner/tsconfig.json +0 -19
  1167. package/packages/spawner/vitest.config.ts +0 -9
  1168. package/packages/state/dist/agent-state.d.ts +0 -40
  1169. package/packages/state/dist/agent-state.d.ts.map +0 -1
  1170. package/packages/state/dist/agent-state.js +0 -120
  1171. package/packages/state/dist/agent-state.js.map +0 -1
  1172. package/packages/state/dist/index.d.ts +0 -8
  1173. package/packages/state/dist/index.d.ts.map +0 -1
  1174. package/packages/state/dist/index.js +0 -8
  1175. package/packages/state/dist/index.js.map +0 -1
  1176. package/packages/state/package.json +0 -37
  1177. package/packages/state/src/agent-state.test.ts +0 -335
  1178. package/packages/state/src/agent-state.ts +0 -153
  1179. package/packages/state/src/index.ts +0 -12
  1180. package/packages/state/tsconfig.json +0 -21
  1181. package/packages/state/vitest.config.ts +0 -9
  1182. package/packages/storage/dist/adapter.d.ts +0 -189
  1183. package/packages/storage/dist/adapter.d.ts.map +0 -1
  1184. package/packages/storage/dist/adapter.js +0 -267
  1185. package/packages/storage/dist/adapter.js.map +0 -1
  1186. package/packages/storage/dist/batched-sqlite-adapter.d.ts +0 -75
  1187. package/packages/storage/dist/batched-sqlite-adapter.d.ts.map +0 -1
  1188. package/packages/storage/dist/batched-sqlite-adapter.js +0 -189
  1189. package/packages/storage/dist/batched-sqlite-adapter.js.map +0 -1
  1190. package/packages/storage/dist/dead-letter-queue.d.ts +0 -196
  1191. package/packages/storage/dist/dead-letter-queue.d.ts.map +0 -1
  1192. package/packages/storage/dist/dead-letter-queue.js +0 -427
  1193. package/packages/storage/dist/dead-letter-queue.js.map +0 -1
  1194. package/packages/storage/dist/dlq-adapter.d.ts +0 -195
  1195. package/packages/storage/dist/dlq-adapter.d.ts.map +0 -1
  1196. package/packages/storage/dist/dlq-adapter.js +0 -664
  1197. package/packages/storage/dist/dlq-adapter.js.map +0 -1
  1198. package/packages/storage/dist/index.d.ts +0 -6
  1199. package/packages/storage/dist/index.d.ts.map +0 -1
  1200. package/packages/storage/dist/index.js +0 -7
  1201. package/packages/storage/dist/index.js.map +0 -1
  1202. package/packages/storage/dist/jsonl-adapter.d.ts +0 -91
  1203. package/packages/storage/dist/jsonl-adapter.d.ts.map +0 -1
  1204. package/packages/storage/dist/jsonl-adapter.js +0 -580
  1205. package/packages/storage/dist/jsonl-adapter.js.map +0 -1
  1206. package/packages/storage/dist/sqlite-adapter.d.ts +0 -131
  1207. package/packages/storage/dist/sqlite-adapter.d.ts.map +0 -1
  1208. package/packages/storage/dist/sqlite-adapter.js +0 -865
  1209. package/packages/storage/dist/sqlite-adapter.js.map +0 -1
  1210. package/packages/storage/package.json +0 -74
  1211. package/packages/storage/src/adapter.ts +0 -446
  1212. package/packages/storage/src/batched-sqlite-adapter.test.ts +0 -256
  1213. package/packages/storage/src/batched-sqlite-adapter.ts +0 -239
  1214. package/packages/storage/src/dead-letter-queue.ts +0 -643
  1215. package/packages/storage/src/dlq-adapter.test.ts +0 -509
  1216. package/packages/storage/src/dlq-adapter.ts +0 -954
  1217. package/packages/storage/src/index.ts +0 -6
  1218. package/packages/storage/src/jsonl-adapter.test.ts +0 -239
  1219. package/packages/storage/src/jsonl-adapter.ts +0 -704
  1220. package/packages/storage/src/memory-adapter.test.ts +0 -36
  1221. package/packages/storage/src/sqlite-adapter.test.ts +0 -580
  1222. package/packages/storage/src/sqlite-adapter.ts +0 -1099
  1223. package/packages/storage/tsconfig.json +0 -21
  1224. package/packages/storage/vitest.config.ts +0 -9
  1225. package/packages/wrapper/dist/__fixtures__/claude-outputs.d.ts +0 -49
  1226. package/packages/wrapper/dist/__fixtures__/claude-outputs.d.ts.map +0 -1
  1227. package/packages/wrapper/dist/__fixtures__/claude-outputs.js +0 -443
  1228. package/packages/wrapper/dist/__fixtures__/claude-outputs.js.map +0 -1
  1229. package/packages/wrapper/dist/__fixtures__/codex-outputs.d.ts +0 -9
  1230. package/packages/wrapper/dist/__fixtures__/codex-outputs.d.ts.map +0 -1
  1231. package/packages/wrapper/dist/__fixtures__/codex-outputs.js +0 -94
  1232. package/packages/wrapper/dist/__fixtures__/codex-outputs.js.map +0 -1
  1233. package/packages/wrapper/dist/__fixtures__/gemini-outputs.d.ts +0 -19
  1234. package/packages/wrapper/dist/__fixtures__/gemini-outputs.d.ts.map +0 -1
  1235. package/packages/wrapper/dist/__fixtures__/gemini-outputs.js +0 -144
  1236. package/packages/wrapper/dist/__fixtures__/gemini-outputs.js.map +0 -1
  1237. package/packages/wrapper/dist/__fixtures__/index.d.ts +0 -68
  1238. package/packages/wrapper/dist/__fixtures__/index.d.ts.map +0 -1
  1239. package/packages/wrapper/dist/__fixtures__/index.js +0 -44
  1240. package/packages/wrapper/dist/__fixtures__/index.js.map +0 -1
  1241. package/packages/wrapper/dist/auth-detection.d.ts +0 -49
  1242. package/packages/wrapper/dist/auth-detection.d.ts.map +0 -1
  1243. package/packages/wrapper/dist/auth-detection.js +0 -199
  1244. package/packages/wrapper/dist/auth-detection.js.map +0 -1
  1245. package/packages/wrapper/dist/base-wrapper.d.ts +0 -254
  1246. package/packages/wrapper/dist/base-wrapper.d.ts.map +0 -1
  1247. package/packages/wrapper/dist/base-wrapper.js +0 -664
  1248. package/packages/wrapper/dist/base-wrapper.js.map +0 -1
  1249. package/packages/wrapper/dist/client.d.ts +0 -291
  1250. package/packages/wrapper/dist/client.d.ts.map +0 -1
  1251. package/packages/wrapper/dist/client.js +0 -926
  1252. package/packages/wrapper/dist/client.js.map +0 -1
  1253. package/packages/wrapper/dist/id-generator.d.ts +0 -35
  1254. package/packages/wrapper/dist/id-generator.d.ts.map +0 -1
  1255. package/packages/wrapper/dist/id-generator.js +0 -60
  1256. package/packages/wrapper/dist/id-generator.js.map +0 -1
  1257. package/packages/wrapper/dist/idle-detector.d.ts +0 -114
  1258. package/packages/wrapper/dist/idle-detector.d.ts.map +0 -1
  1259. package/packages/wrapper/dist/idle-detector.js +0 -317
  1260. package/packages/wrapper/dist/idle-detector.js.map +0 -1
  1261. package/packages/wrapper/dist/inbox.d.ts +0 -37
  1262. package/packages/wrapper/dist/inbox.d.ts.map +0 -1
  1263. package/packages/wrapper/dist/inbox.js +0 -73
  1264. package/packages/wrapper/dist/inbox.js.map +0 -1
  1265. package/packages/wrapper/dist/index.d.ts +0 -40
  1266. package/packages/wrapper/dist/index.d.ts.map +0 -1
  1267. package/packages/wrapper/dist/index.js +0 -53
  1268. package/packages/wrapper/dist/index.js.map +0 -1
  1269. package/packages/wrapper/dist/opencode-api.d.ts +0 -106
  1270. package/packages/wrapper/dist/opencode-api.d.ts.map +0 -1
  1271. package/packages/wrapper/dist/opencode-api.js +0 -219
  1272. package/packages/wrapper/dist/opencode-api.js.map +0 -1
  1273. package/packages/wrapper/dist/opencode-wrapper.d.ts +0 -161
  1274. package/packages/wrapper/dist/opencode-wrapper.d.ts.map +0 -1
  1275. package/packages/wrapper/dist/opencode-wrapper.js +0 -438
  1276. package/packages/wrapper/dist/opencode-wrapper.js.map +0 -1
  1277. package/packages/wrapper/dist/parser.d.ts +0 -236
  1278. package/packages/wrapper/dist/parser.d.ts.map +0 -1
  1279. package/packages/wrapper/dist/parser.js +0 -1238
  1280. package/packages/wrapper/dist/parser.js.map +0 -1
  1281. package/packages/wrapper/dist/prompt-composer.d.ts +0 -67
  1282. package/packages/wrapper/dist/prompt-composer.d.ts.map +0 -1
  1283. package/packages/wrapper/dist/prompt-composer.js +0 -168
  1284. package/packages/wrapper/dist/prompt-composer.js.map +0 -1
  1285. package/packages/wrapper/dist/relay-pty-orchestrator.d.ts +0 -486
  1286. package/packages/wrapper/dist/relay-pty-orchestrator.d.ts.map +0 -1
  1287. package/packages/wrapper/dist/relay-pty-orchestrator.js +0 -2550
  1288. package/packages/wrapper/dist/relay-pty-orchestrator.js.map +0 -1
  1289. package/packages/wrapper/dist/shared.d.ts +0 -262
  1290. package/packages/wrapper/dist/shared.d.ts.map +0 -1
  1291. package/packages/wrapper/dist/shared.js +0 -507
  1292. package/packages/wrapper/dist/shared.js.map +0 -1
  1293. package/packages/wrapper/dist/stuck-detector.d.ts +0 -161
  1294. package/packages/wrapper/dist/stuck-detector.d.ts.map +0 -1
  1295. package/packages/wrapper/dist/stuck-detector.js +0 -402
  1296. package/packages/wrapper/dist/stuck-detector.js.map +0 -1
  1297. package/packages/wrapper/dist/tmux-resolver.d.ts +0 -55
  1298. package/packages/wrapper/dist/tmux-resolver.d.ts.map +0 -1
  1299. package/packages/wrapper/dist/tmux-resolver.js +0 -175
  1300. package/packages/wrapper/dist/tmux-resolver.js.map +0 -1
  1301. package/packages/wrapper/dist/tmux-wrapper.d.ts +0 -352
  1302. package/packages/wrapper/dist/tmux-wrapper.d.ts.map +0 -1
  1303. package/packages/wrapper/dist/tmux-wrapper.js +0 -1816
  1304. package/packages/wrapper/dist/tmux-wrapper.js.map +0 -1
  1305. package/packages/wrapper/dist/trajectory-integration.d.ts +0 -292
  1306. package/packages/wrapper/dist/trajectory-integration.d.ts.map +0 -1
  1307. package/packages/wrapper/dist/trajectory-integration.js +0 -979
  1308. package/packages/wrapper/dist/trajectory-integration.js.map +0 -1
  1309. package/packages/wrapper/dist/wrapper-events.d.ts +0 -489
  1310. package/packages/wrapper/dist/wrapper-events.d.ts.map +0 -1
  1311. package/packages/wrapper/dist/wrapper-events.js +0 -252
  1312. package/packages/wrapper/dist/wrapper-events.js.map +0 -1
  1313. package/packages/wrapper/dist/wrapper-types.d.ts +0 -41
  1314. package/packages/wrapper/dist/wrapper-types.d.ts.map +0 -1
  1315. package/packages/wrapper/dist/wrapper-types.js +0 -7
  1316. package/packages/wrapper/dist/wrapper-types.js.map +0 -1
  1317. package/packages/wrapper/package.json +0 -60
  1318. package/packages/wrapper/src/__fixtures__/claude-outputs.ts +0 -471
  1319. package/packages/wrapper/src/__fixtures__/codex-outputs.ts +0 -99
  1320. package/packages/wrapper/src/__fixtures__/gemini-outputs.ts +0 -151
  1321. package/packages/wrapper/src/__fixtures__/index.ts +0 -47
  1322. package/packages/wrapper/src/auth-detection.ts +0 -244
  1323. package/packages/wrapper/src/base-wrapper.test.ts +0 -589
  1324. package/packages/wrapper/src/base-wrapper.ts +0 -841
  1325. package/packages/wrapper/src/client.test.ts +0 -351
  1326. package/packages/wrapper/src/client.ts +0 -1166
  1327. package/packages/wrapper/src/id-generator.test.ts +0 -71
  1328. package/packages/wrapper/src/id-generator.ts +0 -69
  1329. package/packages/wrapper/src/idle-detector.test.ts +0 -418
  1330. package/packages/wrapper/src/idle-detector.ts +0 -384
  1331. package/packages/wrapper/src/inbox.test.ts +0 -233
  1332. package/packages/wrapper/src/inbox.ts +0 -89
  1333. package/packages/wrapper/src/index.ts +0 -199
  1334. package/packages/wrapper/src/opencode-api.test.ts +0 -292
  1335. package/packages/wrapper/src/opencode-api.ts +0 -285
  1336. package/packages/wrapper/src/opencode-wrapper.ts +0 -541
  1337. package/packages/wrapper/src/parser.regression.test.ts +0 -251
  1338. package/packages/wrapper/src/parser.test.ts +0 -1359
  1339. package/packages/wrapper/src/parser.ts +0 -1477
  1340. package/packages/wrapper/src/prompt-composer.test.ts +0 -219
  1341. package/packages/wrapper/src/prompt-composer.ts +0 -231
  1342. package/packages/wrapper/src/relay-pty-orchestrator.test.ts +0 -1386
  1343. package/packages/wrapper/src/relay-pty-orchestrator.ts +0 -3041
  1344. package/packages/wrapper/src/shared.test.ts +0 -467
  1345. package/packages/wrapper/src/shared.ts +0 -652
  1346. package/packages/wrapper/src/stuck-detector.test.ts +0 -303
  1347. package/packages/wrapper/src/stuck-detector.ts +0 -511
  1348. package/packages/wrapper/src/tmux-resolver.test.ts +0 -104
  1349. package/packages/wrapper/src/tmux-resolver.ts +0 -207
  1350. package/packages/wrapper/src/tmux-wrapper.test.ts +0 -316
  1351. package/packages/wrapper/src/tmux-wrapper.ts +0 -2095
  1352. package/packages/wrapper/src/trajectory-detection.test.ts +0 -151
  1353. package/packages/wrapper/src/trajectory-integration.ts +0 -1261
  1354. package/packages/wrapper/src/wrapper-events.ts +0 -395
  1355. package/packages/wrapper/src/wrapper-types.ts +0 -45
  1356. package/packages/wrapper/tsconfig.json +0 -19
  1357. package/packages/wrapper/vitest.config.ts +0 -9
  1358. /package/packages/{broker-sdk → sdk}/dist/__tests__/facade.test.d.ts +0 -0
  1359. /package/packages/{broker-sdk → sdk}/dist/__tests__/facade.test.d.ts.map +0 -0
  1360. /package/packages/{broker-sdk → sdk}/dist/__tests__/integration.test.d.ts +0 -0
  1361. /package/packages/{broker-sdk → sdk}/dist/__tests__/integration.test.d.ts.map +0 -0
  1362. /package/packages/{broker-sdk → sdk}/dist/__tests__/quickstart.test.d.ts +0 -0
  1363. /package/packages/{broker-sdk → sdk}/dist/__tests__/quickstart.test.d.ts.map +0 -0
  1364. /package/packages/{broker-sdk → sdk}/dist/__tests__/unit.test.d.ts +0 -0
  1365. /package/packages/{broker-sdk → sdk}/dist/__tests__/unit.test.d.ts.map +0 -0
  1366. /package/packages/{broker-sdk → sdk}/dist/browser.d.ts +0 -0
  1367. /package/packages/{broker-sdk → sdk}/dist/browser.d.ts.map +0 -0
  1368. /package/packages/{broker-sdk → sdk}/dist/browser.js +0 -0
  1369. /package/packages/{broker-sdk → sdk}/dist/browser.js.map +0 -0
  1370. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.d.ts +0 -0
  1371. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.d.ts.map +0 -0
  1372. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.js +0 -0
  1373. /package/packages/{broker-sdk → sdk}/dist/consensus-helpers.js.map +0 -0
  1374. /package/packages/{broker-sdk → sdk}/dist/consensus.d.ts +0 -0
  1375. /package/packages/{broker-sdk → sdk}/dist/consensus.d.ts.map +0 -0
  1376. /package/packages/{broker-sdk → sdk}/dist/consensus.js +0 -0
  1377. /package/packages/{broker-sdk → sdk}/dist/consensus.js.map +0 -0
  1378. /package/packages/{broker-sdk → sdk}/dist/examples/demo.d.ts +0 -0
  1379. /package/packages/{broker-sdk → sdk}/dist/examples/demo.d.ts.map +0 -0
  1380. /package/packages/{broker-sdk → sdk}/dist/examples/demo.js +0 -0
  1381. /package/packages/{broker-sdk → sdk}/dist/examples/demo.js.map +0 -0
  1382. /package/packages/{broker-sdk → sdk}/dist/examples/example.d.ts +0 -0
  1383. /package/packages/{broker-sdk → sdk}/dist/examples/example.d.ts.map +0 -0
  1384. /package/packages/{broker-sdk → sdk}/dist/examples/example.js +0 -0
  1385. /package/packages/{broker-sdk → sdk}/dist/examples/example.js.map +0 -0
  1386. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.d.ts +0 -0
  1387. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.d.ts.map +0 -0
  1388. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.js +0 -0
  1389. /package/packages/{broker-sdk → sdk}/dist/examples/quickstart.js.map +0 -0
  1390. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.d.ts +0 -0
  1391. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.d.ts.map +0 -0
  1392. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.js +0 -0
  1393. /package/packages/{broker-sdk → sdk}/dist/examples/ralph-loop.js.map +0 -0
  1394. /package/packages/{broker-sdk → sdk}/dist/protocol.js +0 -0
  1395. /package/packages/{broker-sdk → sdk}/dist/protocol.js.map +0 -0
  1396. /package/packages/{broker-sdk → sdk}/dist/pty.d.ts +0 -0
  1397. /package/packages/{broker-sdk → sdk}/dist/shadow.js +0 -0
  1398. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.d.ts +0 -0
  1399. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.d.ts.map +0 -0
  1400. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.js +0 -0
  1401. /package/packages/{broker-sdk → sdk}/dist/workflows/barrier.js.map +0 -0
  1402. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.d.ts +0 -0
  1403. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.d.ts.map +0 -0
  1404. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.js +0 -0
  1405. /package/packages/{broker-sdk → sdk}/dist/workflows/memory-db.js.map +0 -0
  1406. /package/packages/{broker-sdk → sdk}/dist/workflows/state.d.ts +0 -0
  1407. /package/packages/{broker-sdk → sdk}/dist/workflows/state.d.ts.map +0 -0
  1408. /package/packages/{broker-sdk → sdk}/dist/workflows/state.js +0 -0
  1409. /package/packages/{broker-sdk → sdk}/dist/workflows/state.js.map +0 -0
  1410. /package/packages/{broker-sdk → sdk}/src/__tests__/workflow-trajectory.test.ts +0 -0
  1411. /package/packages/{broker-sdk → sdk}/src/browser.ts +0 -0
  1412. /package/packages/{broker-sdk → sdk}/src/consensus-helpers.ts +0 -0
  1413. /package/packages/{broker-sdk → sdk}/src/consensus.ts +0 -0
  1414. /package/packages/{broker-sdk → sdk}/src/examples/demo.ts +0 -0
  1415. /package/packages/{broker-sdk → sdk}/src/examples/example.ts +0 -0
  1416. /package/packages/{broker-sdk → sdk}/src/examples/quickstart.ts +0 -0
  1417. /package/packages/{broker-sdk → sdk}/src/examples/ralph-loop.ts +0 -0
  1418. /package/packages/{broker-sdk → sdk}/src/examples/sample-prd.json +0 -0
  1419. /package/packages/{broker-sdk → sdk}/src/workflows/barrier.ts +0 -0
  1420. /package/packages/{broker-sdk → sdk}/src/workflows/memory-db.ts +0 -0
  1421. /package/packages/{broker-sdk → sdk}/src/workflows/state.ts +0 -0
@@ -1,1238 +0,0 @@
1
- /**
2
- * PTY Output Parser
3
- * Extracts relay commands from agent terminal output.
4
- *
5
- * Supports two formats:
6
- * 1. Inline: ->relay:<target> <message> (single line, start of line only)
7
- * 2. Block: [[RELAY]]{ json }[[/RELAY]] (multi-line, structured)
8
- *
9
- * Rules:
10
- * - Inline only matches at start of line (after whitespace)
11
- * - Ignores content inside code fences
12
- * - Escape with \->relay: to output literal
13
- * - Block format is preferred for structured data
14
- */
15
- const DEFAULT_OPTIONS = {
16
- maxBlockBytes: 1024 * 1024, // 1 MiB
17
- enableInline: true,
18
- enableBlock: true,
19
- prefix: '->relay:',
20
- thinkingPrefix: '->thinking:',
21
- };
22
- // Static patterns (not prefix-dependent)
23
- const BLOCK_END = /\[\[\/RELAY\]\]/;
24
- const BLOCK_METADATA_START = '[[RELAY_METADATA]]';
25
- const BLOCK_METADATA_END = /\[\[\/RELAY_METADATA\]\]/;
26
- const CODE_FENCE = /^```/;
27
- // Fenced inline patterns: ->relay:Target <<< ... >>>
28
- // Two patterns for fence end detection:
29
- // - FENCE_END_START: ">>>" at the start of a line (with optional leading whitespace)
30
- // - FENCE_END_LINE: ">>>" at the end of a line (content followed by >>>)
31
- // Note: Escaped \>>> should NOT trigger fence end (see isEscapedFenceEnd)
32
- const FENCE_END_START = /^(?:\s*)?>>>/;
33
- const FENCE_END_LINE = />>>\s*$/;
34
- const FENCE_END = new RegExp(`${FENCE_END_START.source}|${FENCE_END_LINE.source}`);
35
- // Escape patterns for literal <<< and >>> in content
36
- // Use \<<< to output literal <<<, use \>>> to output literal >>>
37
- const ESCAPED_FENCE_START = /\\<<</g;
38
- const ESCAPED_FENCE_END = /\\>>>/g;
39
- // Maximum lines in a fenced block before assuming it's stuck
40
- // Lower value (30) ensures messages get sent even if agent forgets >>>
41
- // Most relay messages are under 20 lines; 30 gives buffer for longer ones
42
- const MAX_FENCED_LINES = 30;
43
- // Continuation helpers
44
- const BULLET_OR_NUMBERED_LIST = /^[ \t]*([\-*•◦‣⏺◆◇○□■]|[0-9]+[.)])\s+/;
45
- const PROMPTISH_LINE = /^[\s]*[>$%#➜›»][\s]*$/;
46
- const RELAY_INJECTION_PREFIX = /^\s*Relay message from /;
47
- const MAX_INLINE_CONTINUATION_LINES = 30;
48
- // Spawn/release command patterns - these should NOT be parsed as relay messages
49
- // They are handled separately by the wrappers (pty-wrapper.ts, tmux-wrapper.ts)
50
- const SPAWN_COMMAND_PATTERN = /->relay:spawn\s+\S+/i;
51
- const RELEASE_COMMAND_PATTERN = /->relay:release\s+\S+/i;
52
- // JSON relay format: ->relay.json:{...}
53
- // Simple single-line format that's resilient and won't interfere with normal conversation
54
- const JSON_RELAY_PATTERN = /->relay\.json:(\{[^\n]+\})/;
55
- /**
56
- * Check if a line is a spawn or release command that should be handled
57
- * by the wrapper's spawn subsystem, not parsed as a relay message.
58
- */
59
- function isSpawnOrReleaseCommand(line) {
60
- return SPAWN_COMMAND_PATTERN.test(line) || RELEASE_COMMAND_PATTERN.test(line);
61
- }
62
- // Claude extended thinking block markers - skip content inside these
63
- const THINKING_START = new RegExp(String.raw `<` + `thinking>`);
64
- const THINKING_END = new RegExp(String.raw `</` + `thinking>`);
65
- /**
66
- * Patterns that indicate instructional/example text that should NOT be parsed as actual commands.
67
- * These are common in system prompts, documentation, and injected instructions.
68
- */
69
- const INSTRUCTIONAL_MARKERS = [
70
- /\bSEND:\s*$/i, // "SEND:" at end of body (instruction prefix)
71
- /\bPROTOCOL:\s*\(\d+\)/i, // "PROTOCOL: (1)" - numbered protocol instructions
72
- /\bExample:/i, // "Example:" marker
73
- /\\->relay:/, // Escaped relay prefix in body (documentation)
74
- /\\->thinking:/, // Escaped thinking prefix in body (documentation)
75
- /^AgentName\s+/, // Body starting with "AgentName" (placeholder in examples)
76
- /^Target\s+/, // Body starting with "Target" (placeholder in examples)
77
- /\[Agent Relay\]/, // Injected instruction header
78
- /MULTI-LINE:/i, // Multi-line format instruction
79
- /RECEIVE:/i, // Receive instruction marker
80
- ];
81
- /**
82
- * Placeholder target names commonly used in documentation and examples.
83
- * Messages to these targets should be filtered out as instructional text.
84
- */
85
- const PLACEHOLDER_TARGETS = new Set([
86
- 'agentname',
87
- 'target',
88
- 'recipient',
89
- 'yourtarget',
90
- 'targetagent',
91
- 'someagent',
92
- 'otheragent',
93
- 'worker', // Too generic, often used in examples
94
- // NOTE: Don't add 'agent', 'name', 'lead', 'developer', etc. - these can be valid agent names!
95
- ]);
96
- /**
97
- * Check if a parsed relay command body looks like instructional/example text.
98
- * These patterns commonly appear in system prompts and documentation.
99
- */
100
- function isInstructionalText(body) {
101
- return INSTRUCTIONAL_MARKERS.some(pattern => pattern.test(body));
102
- }
103
- /**
104
- * Check if a target name is a placeholder commonly used in documentation/examples.
105
- * These should not be treated as real message targets.
106
- */
107
- export function isPlaceholderTarget(target) {
108
- return PLACEHOLDER_TARGETS.has(target.toLowerCase());
109
- }
110
- /**
111
- * Escape special regex characters in a string
112
- */
113
- function escapeRegex(str) {
114
- return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
115
- }
116
- function parseAwaitTimeout(value, unit) {
117
- const parsed = parseInt(value, 10);
118
- if (Number.isNaN(parsed))
119
- return undefined;
120
- const multiplier = unit === 'h' ? 3600000 : unit === 'm' ? 60000 : 1000;
121
- return parsed * multiplier;
122
- }
123
- function parseInlineTags(text) {
124
- let remaining = text;
125
- let thread;
126
- let threadProject;
127
- let sync;
128
- while (true) {
129
- const awaitMatch = remaining.match(/^\s*\[await(?::(\d+)([smh]))?\]\s*/);
130
- if (awaitMatch) {
131
- const timeoutMs = awaitMatch[1] && awaitMatch[2]
132
- ? parseAwaitTimeout(awaitMatch[1], awaitMatch[2])
133
- : undefined;
134
- sync = { blocking: true, timeoutMs };
135
- remaining = remaining.slice(awaitMatch[0].length);
136
- continue;
137
- }
138
- const threadMatch = remaining.match(/^\s*\[thread:(?:([\w-]+):)?([\w-]+)\]\s*/);
139
- if (threadMatch) {
140
- threadProject = threadMatch[1] || undefined;
141
- thread = threadMatch[2];
142
- remaining = remaining.slice(threadMatch[0].length);
143
- continue;
144
- }
145
- break;
146
- }
147
- return {
148
- body: remaining.trimStart(),
149
- thread,
150
- threadProject,
151
- sync,
152
- };
153
- }
154
- /**
155
- * Build inline pattern for a given prefix
156
- * Allow common input prefixes: >, $, %, #, →, ➜, bullets (●•◦‣⁃-*⏺◆◇○□■), box chars (│┃┆┇┊┋╎╏), and their variations
157
- *
158
- * Supports optional thread syntax:
159
- * - ->relay:Target [thread:id] message (local thread)
160
- * - ->relay:Target [thread:project:id] message (cross-project thread)
161
- * Thread IDs can contain alphanumeric chars, hyphens, underscores
162
- */
163
- function buildInlinePattern(prefix) {
164
- const escaped = escapeRegex(prefix);
165
- // Group 1: target, Group 2: message body (may include tags like [thread] or [await])
166
- // Includes box drawing characters (│┃┆┇┊┋╎╏) and sparkle (✦) for Gemini CLI output
167
- return new RegExp(`^(?:\\s*(?:[>$%#→➜›»●•◦‣⁃\\-*⏺◆◇○□■│┃┆┇┊┋╎╏✦]\\s*)*)?${escaped}(\\S+)\\s+(.+)$`);
168
- }
169
- /**
170
- * Build fenced inline pattern for multi-line messages: ->relay:Target <<<
171
- * This opens a fenced block that continues until >>> is seen on its own line.
172
- * Supports cross-project thread syntax: [thread:project:id]
173
- * Group 1: target, Group 2: optional thread project, Group 3: thread ID
174
- */
175
- function buildFencedInlinePattern(prefix) {
176
- const escaped = escapeRegex(prefix);
177
- return new RegExp(`^(?:\\s*(?:[>$%#→➜›»●•◦‣⁃\\-*⏺◆◇○□■│┃┆┇┊┋╎╏✦]\\s*)*)?${escaped}(\\S+)(?:\\s+(.+?))?\\s+<<<\\s*$`);
178
- }
179
- /**
180
- * Build escape pattern for a given prefix (e.g., \->relay: or \->)
181
- */
182
- function buildEscapePattern(prefix, thinkingPrefix) {
183
- // Extract the first character(s) that would be escaped
184
- const prefixEscaped = escapeRegex(prefix);
185
- const thinkingEscaped = escapeRegex(thinkingPrefix);
186
- return new RegExp(`^(\\s*)\\\\(${prefixEscaped}|${thinkingEscaped})`);
187
- }
188
- // ANSI escape sequence pattern for stripping
189
- // eslint-disable-next-line no-control-regex
190
- const ANSI_PATTERN = /\x1b\[[0-9;?]*[a-zA-Z]|\x1b\].*?(?:\x07|\x1b\\)|\r/g;
191
- // Pattern for orphaned CSI sequences that lost their escape byte
192
- // These look like [?25h, [?2026l, [0m, etc. at the start of content
193
- // Requires at least one digit or question mark to avoid stripping legitimate text like [Agent
194
- const ORPHANED_CSI_PATTERN = /^\s*(\[(?:\?|\d)\d*[A-Za-z])+\s*/g;
195
- /**
196
- * Parse a target string that may contain cross-project syntax.
197
- * Supports: "agent" (local) or "project:agent" (cross-project)
198
- *
199
- * @param target The raw target string from the relay command
200
- * @returns Object with `to` (agent name) and optional `project`
201
- */
202
- function parseTarget(target) {
203
- // Check for cross-project syntax: project:agent
204
- // Only split on FIRST colon to allow agent names with colons
205
- const colonIndex = target.indexOf(':');
206
- if (colonIndex > 0 && colonIndex < target.length - 1) {
207
- // Has a colon with content on both sides
208
- const project = target.substring(0, colonIndex);
209
- const agent = target.substring(colonIndex + 1);
210
- return { to: agent, project };
211
- }
212
- // Local target (no colon or malformed)
213
- return { to: target };
214
- }
215
- /**
216
- * Strip ANSI escape codes from a string for pattern matching.
217
- * Also strips orphaned CSI sequences that may have lost their escape byte.
218
- */
219
- function stripAnsi(str) {
220
- let result = str.replace(ANSI_PATTERN, '');
221
- // Strip orphaned CSI sequences at the start of the string
222
- result = result.replace(ORPHANED_CSI_PATTERN, '');
223
- return result;
224
- }
225
- /**
226
- * Check if a line contains an escaped fence end (\>>>) that should NOT trigger fence close.
227
- * Returns true if the >>> is escaped (preceded by backslash).
228
- */
229
- function isEscapedFenceEnd(line) {
230
- // Check if >>> at end of line is escaped
231
- if (/\\>>>\s*$/.test(line)) {
232
- return true;
233
- }
234
- // Check if >>> at start of line is escaped
235
- if (/^(?:\s*)?\\>>>/.test(line)) {
236
- return true;
237
- }
238
- return false;
239
- }
240
- /**
241
- * Unescape fence markers in content.
242
- * Converts \<<< to <<< and \>>> to >>>
243
- */
244
- function unescapeFenceMarkers(content) {
245
- return content
246
- .replace(ESCAPED_FENCE_START, '<<<')
247
- .replace(ESCAPED_FENCE_END, '>>>');
248
- }
249
- export class OutputParser {
250
- options;
251
- inCodeFence = false;
252
- inBlock = false;
253
- blockBuffer = '';
254
- blockType = null;
255
- lastParsedMetadata = null;
256
- // Claude extended thinking block state - skip content inside <thinking>...</thinking>
257
- inThinkingBlock = false;
258
- // Fenced inline state: ->relay:Target <<< ... >>>
259
- inFencedInline = false;
260
- fencedInlineBuffer = '';
261
- fencedInlineTarget = '';
262
- fencedInlineThread = undefined;
263
- fencedInlineThreadProject = undefined;
264
- fencedInlineProject = undefined;
265
- fencedInlineRaw = [];
266
- fencedInlineKind = 'message';
267
- fencedInlineSync = undefined;
268
- // Dynamic patterns based on prefix configuration
269
- inlineRelayPattern;
270
- inlineThinkingPattern;
271
- fencedRelayPattern;
272
- fencedThinkingPattern;
273
- escapePattern;
274
- constructor(options = {}) {
275
- this.options = { ...DEFAULT_OPTIONS, ...options };
276
- // Build patterns based on configured prefixes
277
- this.inlineRelayPattern = buildInlinePattern(this.options.prefix);
278
- this.inlineThinkingPattern = buildInlinePattern(this.options.thinkingPrefix);
279
- this.fencedRelayPattern = buildFencedInlinePattern(this.options.prefix);
280
- this.fencedThinkingPattern = buildFencedInlinePattern(this.options.thinkingPrefix);
281
- this.escapePattern = buildEscapePattern(this.options.prefix, this.options.thinkingPrefix);
282
- }
283
- /**
284
- * Get the configured relay prefix
285
- */
286
- get prefix() {
287
- return this.options.prefix;
288
- }
289
- /**
290
- * Push data into the parser and extract commands.
291
- * Returns array of parsed commands and cleaned output.
292
- *
293
- * Design: Pass through data with minimal buffering to preserve terminal rendering.
294
- * Only buffer content when inside [[RELAY]]...[[/RELAY]] blocks.
295
- */
296
- parse(data) {
297
- const commands = [];
298
- let output = '';
299
- // If we're inside a fenced inline block, accumulate until we see >>>
300
- if (this.inFencedInline) {
301
- return this.parseFencedInlineMode(data, commands);
302
- }
303
- // If we're inside a block, accumulate until we see the end
304
- if (this.inBlock && this.blockType) {
305
- return this.parseInBlockMode(data, commands, this.blockType);
306
- }
307
- // Find [[RELAY_METADATA]] or [[RELAY]] that's at the start of a line
308
- const blockStart = this.findBlockStart(data);
309
- if (this.options.enableBlock && blockStart.index !== -1 && blockStart.identifier) {
310
- const blockStartIdentifier = blockStart.identifier;
311
- const before = data.substring(0, blockStart.index);
312
- const after = data.substring(blockStart.index + blockStartIdentifier.length);
313
- // Output everything before the block start
314
- if (before) {
315
- const beforeResult = this.parsePassThrough(before, commands);
316
- output += beforeResult;
317
- }
318
- // Enter block mode
319
- this.inBlock = true;
320
- this.blockType = blockStartIdentifier === BLOCK_METADATA_START ? 'RELAY_METADATA' : 'RELAY';
321
- this.blockBuffer = after;
322
- // Check size limit before processing
323
- if (this.blockBuffer.length > this.options.maxBlockBytes) {
324
- console.error('[parser] Block too large, discarding');
325
- this.inBlock = false;
326
- this.blockBuffer = '';
327
- this.blockType = null;
328
- return { commands, output };
329
- }
330
- // Check if block ends in same chunk
331
- const blockEndPattern = this.blockType === 'RELAY_METADATA' ? BLOCK_METADATA_END : BLOCK_END;
332
- if (blockEndPattern.test(this.blockBuffer)) {
333
- const blockResult = this.finishBlock(this.blockType);
334
- if (blockResult.command) {
335
- commands.push(blockResult.command);
336
- }
337
- if (blockResult.remaining) {
338
- // Recursively parse anything after the block
339
- const afterResult = this.parse(blockResult.remaining);
340
- commands.push(...afterResult.commands);
341
- output += afterResult.output;
342
- }
343
- }
344
- return { commands, output };
345
- }
346
- // Pass-through mode: output data immediately, only parse complete lines for relay commands
347
- output = this.parsePassThrough(data, commands);
348
- return { commands, output };
349
- }
350
- /**
351
- * Find [[RELAY_METADATA]] or [[RELAY]] that's at the start of a line and not inside a code fence.
352
- * Returns the index and identifier, or -1 and null if not found.
353
- */
354
- findBlockStart(data) {
355
- // Track code fence state through the data
356
- let inFence = this.inCodeFence;
357
- let searchStart = 0;
358
- // Prioritize RELAY_METADATA over RELAY
359
- const blockIdentifiers = [BLOCK_METADATA_START, '[[RELAY]]'];
360
- while (searchStart < data.length) {
361
- let earliestBlockIdx = -1;
362
- let earliestBlockIdentifier = null;
363
- for (const identifier of blockIdentifiers) {
364
- const currentBlockIdx = data.indexOf(identifier, searchStart);
365
- if (currentBlockIdx !== -1 && (earliestBlockIdx === -1 || currentBlockIdx < earliestBlockIdx)) {
366
- earliestBlockIdx = currentBlockIdx;
367
- earliestBlockIdentifier = identifier;
368
- }
369
- }
370
- // No more blocks found
371
- if (earliestBlockIdx === -1) {
372
- // Still update code fence state for remaining data
373
- let fenceIdx = data.indexOf('```', searchStart);
374
- while (fenceIdx !== -1) {
375
- inFence = !inFence;
376
- searchStart = fenceIdx + 3;
377
- fenceIdx = data.indexOf('```', searchStart);
378
- }
379
- return { index: -1, identifier: null };
380
- }
381
- // Process any code fences before this block
382
- let tempIdx = searchStart;
383
- while (true) {
384
- const nextFence = data.indexOf('```', tempIdx);
385
- if (nextFence === -1 || nextFence >= earliestBlockIdx)
386
- break;
387
- inFence = !inFence;
388
- tempIdx = nextFence + 3;
389
- }
390
- // If we're inside a code fence, skip this block
391
- if (inFence) {
392
- searchStart = earliestBlockIdx + (earliestBlockIdentifier?.length ?? 0); // Skip past the block
393
- continue;
394
- }
395
- // Check if block is at start of a line
396
- if (earliestBlockIdx === 0) {
397
- return { index: 0, identifier: earliestBlockIdentifier }; // At very start
398
- }
399
- // Look backwards for the start of line
400
- const beforeBlock = data.substring(0, earliestBlockIdx);
401
- const lastNewline = beforeBlock.lastIndexOf('\n');
402
- const lineStart = beforeBlock.substring(lastNewline + 1);
403
- // Must be only whitespace before block on this line
404
- if (/^\s*$/.test(lineStart)) {
405
- return { index: earliestBlockIdx, identifier: earliestBlockIdentifier };
406
- }
407
- // Not at start of line, keep searching
408
- searchStart = earliestBlockIdx + (earliestBlockIdentifier?.length ?? 0);
409
- }
410
- return { index: -1, identifier: null };
411
- }
412
- /**
413
- * Parse data in pass-through mode - TRUE pass-through for terminal rendering.
414
- * Output is exactly the input data, minus any relay command lines found in this chunk.
415
- * No cross-chunk buffering to avoid double-output issues.
416
- *
417
- * IMPORTANT: We ONLY parse complete lines (i.e. those terminated by `\n` in the
418
- * current chunk). The final unterminated line (if any) is passed through without
419
- * parsing. This intentionally avoids cross-chunk detection when a line is split
420
- * across chunks.
421
- */
422
- parsePassThrough(data, commands) {
423
- // Simple approach: split data, check each line (complete or not), rebuild output
424
- const lines = data.split('\n');
425
- const hasTrailingNewline = data.endsWith('\n');
426
- const isInlineStart = (line) => {
427
- return this.inlineRelayPattern.test(line) || this.inlineThinkingPattern.test(line);
428
- };
429
- const isFencedInlineStart = (line) => {
430
- const stripped = stripAnsi(line);
431
- const relayMatch = stripped.match(this.fencedRelayPattern);
432
- if (relayMatch) {
433
- const [, target, tagSection] = relayMatch;
434
- const { body, thread, threadProject, sync } = parseInlineTags(tagSection ?? '');
435
- if (body.trim().length > 0)
436
- return null;
437
- const { to, project } = parseTarget(target);
438
- return { target: to, thread, threadProject, project, kind: 'message', sync };
439
- }
440
- const thinkingMatch = stripped.match(this.fencedThinkingPattern);
441
- if (thinkingMatch) {
442
- const [, target, tagSection] = thinkingMatch;
443
- const { body, thread, threadProject, sync } = parseInlineTags(tagSection ?? '');
444
- if (body.trim().length > 0)
445
- return null;
446
- const { to, project } = parseTarget(target);
447
- return { target: to, thread, threadProject, project, kind: 'thinking', sync };
448
- }
449
- return null;
450
- };
451
- const isBlockMarker = (line) => {
452
- return CODE_FENCE.test(line) || line.includes('[[RELAY]]') || BLOCK_END.test(line);
453
- };
454
- const shouldStopContinuation = (line, continuationCount, lines, currentIndex) => {
455
- const trimmed = line.trim();
456
- if (isInlineStart(line))
457
- return true;
458
- if (isFencedInlineStart(line))
459
- return true;
460
- if (isBlockMarker(line))
461
- return true;
462
- if (PROMPTISH_LINE.test(trimmed))
463
- return true;
464
- if (RELAY_INJECTION_PREFIX.test(line))
465
- return true; // Avoid swallowing injected inbound messages
466
- // Allow blank lines only in structured content like tables or between numbered sections
467
- if (trimmed === '') {
468
- // If we haven't started continuation yet, stop on blank
469
- if (continuationCount === 0)
470
- return true;
471
- // Look ahead to see if there's more content that looks like structured markdown
472
- for (let j = currentIndex + 1; j < lines.length; j++) {
473
- const nextLine = lines[j].trim();
474
- if (nextLine === '') {
475
- // Double blank line always stops
476
- return true;
477
- }
478
- // Only continue for table rows or numbered list items after blank
479
- if (/^\|/.test(nextLine))
480
- return false; // Table row
481
- if (/^\d+[.)]\s/.test(nextLine))
482
- return false; // Numbered list like "1." or "2)"
483
- // Stop for anything else after a blank line
484
- return true;
485
- }
486
- return true; // No more content, stop
487
- }
488
- return false;
489
- };
490
- const isContinuationLine = (original, stripped, prevStripped, continuationCount) => {
491
- // Note: shouldStopContinuation is already checked in the main loop before calling this
492
- if (/^[ \t]/.test(original))
493
- return true; // Indented lines from TUI wrapping
494
- if (BULLET_OR_NUMBERED_LIST.test(stripped))
495
- return true; // Bullet/numbered lists after ->relay:
496
- const prevTrimmed = prevStripped.trimEnd();
497
- const prevSuggestsContinuation = prevTrimmed !== '' && /[:;,\-–—…]$/.test(prevTrimmed);
498
- if (prevSuggestsContinuation)
499
- return true;
500
- // If we've already continued once, allow subsequent lines until a stop condition
501
- if (continuationCount > 0)
502
- return true;
503
- return false;
504
- };
505
- const outputLines = [];
506
- let strippedCount = 0;
507
- for (let i = 0; i < lines.length; i++) {
508
- const line = lines[i];
509
- const isLastLine = i === lines.length - 1;
510
- // Skip the empty string after a trailing newline
511
- if (isLastLine && hasTrailingNewline && line === '') {
512
- continue;
513
- }
514
- // If the chunk does NOT end in a newline, the last line is incomplete.
515
- // Pass it through unmodified and do not attempt to parse it.
516
- if (isLastLine && !hasTrailingNewline) {
517
- outputLines.push(line);
518
- continue;
519
- }
520
- // Skip Claude extended thinking blocks - don't parse or output their content
521
- // Check for thinking end first (to handle end tag on same line as start)
522
- if (this.inThinkingBlock) {
523
- if (THINKING_END.test(line)) {
524
- this.inThinkingBlock = false;
525
- }
526
- // Skip this line - don't output thinking content
527
- strippedCount++;
528
- continue;
529
- }
530
- // Check for thinking start
531
- if (THINKING_START.test(line)) {
532
- this.inThinkingBlock = true;
533
- // Also check if it ends on the same line (inline thinking block)
534
- if (THINKING_END.test(line)) {
535
- this.inThinkingBlock = false;
536
- }
537
- // Skip this line - don't output thinking content
538
- strippedCount++;
539
- continue;
540
- }
541
- // Skip spawn/release commands BEFORE checking fenced format
542
- // This prevents ->relay:spawn Worker cli <<< from being parsed as a message to "spawn"
543
- const strippedForSpawnCheck = stripAnsi(line);
544
- if (isSpawnOrReleaseCommand(strippedForSpawnCheck)) {
545
- outputLines.push(line);
546
- continue;
547
- }
548
- // Check for fenced inline start: ->relay:Target <<<
549
- const fencedStart = isFencedInlineStart(line);
550
- if (fencedStart && this.options.enableInline) {
551
- // Skip placeholder target names early (common in documentation/examples)
552
- if (isPlaceholderTarget(fencedStart.target)) {
553
- outputLines.push(line);
554
- continue;
555
- }
556
- // Enter fenced inline mode
557
- this.inFencedInline = true;
558
- this.fencedInlineTarget = fencedStart.target;
559
- this.fencedInlineThread = fencedStart.thread;
560
- this.fencedInlineThreadProject = fencedStart.threadProject;
561
- this.fencedInlineProject = fencedStart.project;
562
- this.fencedInlineKind = fencedStart.kind;
563
- this.fencedInlineSync = fencedStart.sync;
564
- this.fencedInlineBuffer = '';
565
- this.fencedInlineRaw = [line];
566
- // Process remaining lines in fenced mode
567
- if (i + 1 < lines.length) {
568
- // Don't double-add trailing newline - the empty string at end of lines array
569
- // already accounts for it when we join
570
- const remainingLines = lines.slice(i + 1);
571
- const remaining = remainingLines.join('\n') + (hasTrailingNewline && remainingLines[remainingLines.length - 1] !== '' ? '\n' : '');
572
- const result = this.parseFencedInlineMode(remaining, commands);
573
- strippedCount++;
574
- // Combine output
575
- let output = outputLines.join('\n');
576
- if (hasTrailingNewline && outputLines.length > 0 && !this.inFencedInline) {
577
- output += '\n';
578
- }
579
- output += result.output;
580
- return output;
581
- }
582
- // No more lines - waiting for more data
583
- strippedCount++;
584
- let output = outputLines.join('\n');
585
- if (hasTrailingNewline && outputLines.length > 0) {
586
- output += '\n';
587
- }
588
- return output;
589
- }
590
- if (line.length > 0) {
591
- // Only check complete lines for relay commands.
592
- const result = this.processLine(line);
593
- if (result.command) {
594
- // Collect continuation lines (in the same chunk) so inline messages can span multiple lines.
595
- let body = result.command.body;
596
- const rawLines = [result.command.raw];
597
- let consumed = 0;
598
- let continuationLines = 0;
599
- while (i + 1 < lines.length) {
600
- const nextIsLast = i + 1 === lines.length - 1;
601
- const nextLine = lines[i + 1];
602
- // Do not consume an incomplete trailing line (no newline terminator)
603
- if (nextIsLast && !hasTrailingNewline) {
604
- break;
605
- }
606
- const nextStripped = stripAnsi(nextLine);
607
- const prevStripped = stripAnsi(rawLines[rawLines.length - 1] ?? '');
608
- // Stop if this line clearly marks a new block, prompt, or inline command
609
- if (shouldStopContinuation(nextStripped, continuationLines, lines, i + 1)) {
610
- break;
611
- }
612
- if (continuationLines >= MAX_INLINE_CONTINUATION_LINES) {
613
- break;
614
- }
615
- // Consume as continuation if it looks like it belongs to the ->relay message
616
- if (!isContinuationLine(nextLine, nextStripped, prevStripped, continuationLines)) {
617
- break;
618
- }
619
- consumed++;
620
- i++; // Skip the consumed continuation line
621
- continuationLines++;
622
- body += '\n' + nextLine;
623
- rawLines.push(nextLine);
624
- }
625
- commands.push({ ...result.command, body, raw: rawLines.join('\n') });
626
- strippedCount += consumed + 1;
627
- continue;
628
- }
629
- if (result.output !== null) {
630
- outputLines.push(result.output);
631
- }
632
- else {
633
- // Line was stripped (relay command)
634
- strippedCount++;
635
- }
636
- }
637
- else {
638
- // Empty line - preserve it
639
- outputLines.push('');
640
- }
641
- }
642
- // Rebuild output
643
- if (outputLines.length === 0 && strippedCount > 0) {
644
- // All lines were relay commands - return empty
645
- return '';
646
- }
647
- let output = outputLines.join('\n');
648
- // Add trailing newline if original had one AND we have content
649
- if (hasTrailingNewline && outputLines.length > 0) {
650
- output += '\n';
651
- }
652
- return output;
653
- }
654
- /**
655
- * Parse while inside a [[RELAY]] block - buffer until we see [[/RELAY]].
656
- */
657
- parseInBlockMode(data, commands, blockType) {
658
- this.blockBuffer += data;
659
- // Check size limit
660
- if (this.blockBuffer.length > this.options.maxBlockBytes) {
661
- console.error('[parser] Block too large, discarding');
662
- this.inBlock = false;
663
- this.blockBuffer = '';
664
- this.blockType = null;
665
- return { commands, output: '' };
666
- }
667
- // Check for block end
668
- const blockEndPattern = blockType === 'RELAY_METADATA' ? BLOCK_METADATA_END : BLOCK_END;
669
- if (blockEndPattern.test(this.blockBuffer)) {
670
- const result = this.finishBlock(blockType);
671
- if (result.command) {
672
- commands.push(result.command);
673
- }
674
- let output = '';
675
- if (result.remaining) {
676
- // Recursively parse anything after the block
677
- const afterResult = this.parse(result.remaining);
678
- commands.push(...afterResult.commands);
679
- output = afterResult.output;
680
- }
681
- return { commands, output };
682
- }
683
- // Still inside block, no output yet
684
- return { commands, output: '' };
685
- }
686
- /**
687
- * Process a single complete line for inline relay commands.
688
- * Block handling is done at the parse() level, not here.
689
- *
690
- * IMPORTANT: We strip ANSI codes for pattern matching, but preserve
691
- * the original line for output to maintain terminal rendering.
692
- *
693
- * OPTIMIZATION: Early exit for lines that can't possibly be relay commands.
694
- * Most lines don't contain relay patterns, so we avoid expensive regex/ANSI
695
- * stripping for the common case.
696
- */
697
- processLine(line) {
698
- // FAST PATH: Quick string check before any expensive operations
699
- // Most lines don't contain relay commands, so early exit is a big win
700
- // Check for prefix bases (without the colon to handle custom prefixes like '>>')
701
- const relayBase = this.options.prefix.replace(/:$/, '');
702
- const thinkingBase = this.options.thinkingPrefix.replace(/:$/, '');
703
- const hasRelayPattern = line.includes(relayBase) || line.includes(thinkingBase);
704
- const hasBlockPattern = line.includes('[[') || line.includes('```');
705
- const hasJsonRelay = line.includes('->relay.json:');
706
- if (!hasRelayPattern && !hasBlockPattern && !hasJsonRelay) {
707
- return { command: null, output: line };
708
- }
709
- // Check for JSON relay format first (preferred): ->relay.json:{...}
710
- if (hasJsonRelay) {
711
- const stripped = stripAnsi(line);
712
- const jsonMatch = stripped.match(JSON_RELAY_PATTERN);
713
- if (jsonMatch) {
714
- try {
715
- const parsed = JSON.parse(jsonMatch[1]);
716
- const kind = parsed.kind || 'message';
717
- // Handle different command kinds
718
- if (kind === 'message' && parsed.to) {
719
- return {
720
- command: {
721
- to: parsed.to,
722
- kind: 'message',
723
- body: parsed.body || '',
724
- thread: parsed.thread,
725
- raw: jsonMatch[0],
726
- },
727
- output: null,
728
- };
729
- }
730
- // spawn/release are handled by the wrapper, not here
731
- // But we still strip the line from output
732
- return { command: null, output: null };
733
- }
734
- catch {
735
- // Invalid JSON, pass through
736
- console.error('[parser] Invalid JSON in ->relay.json:', jsonMatch[1]);
737
- }
738
- }
739
- }
740
- // Strip ANSI codes for pattern matching (only when potentially needed)
741
- const stripped = stripAnsi(line);
742
- // Handle code fences
743
- if (CODE_FENCE.test(stripped)) {
744
- this.inCodeFence = !this.inCodeFence;
745
- return { command: null, output: line };
746
- }
747
- // Inside code fence - pass through
748
- if (this.inCodeFence) {
749
- return { command: null, output: line };
750
- }
751
- // Check for escaped inline (on stripped text)
752
- const escapeMatch = stripped.match(this.escapePattern);
753
- if (escapeMatch) {
754
- // Output with escape removed (remove the backslash before the prefix)
755
- const unescaped = line.replace(/\\/, '');
756
- return { command: null, output: unescaped };
757
- }
758
- // Skip spawn/release commands - they are handled by the wrapper's spawn subsystem
759
- // These should not be parsed as regular relay messages
760
- if (isSpawnOrReleaseCommand(stripped)) {
761
- return { command: null, output: line };
762
- }
763
- // Check for inline relay (on stripped text)
764
- if (this.options.enableInline) {
765
- const relayMatch = stripped.match(this.inlineRelayPattern);
766
- if (relayMatch) {
767
- const [raw, target, bodyWithTags] = relayMatch;
768
- const { body, thread, threadProject, sync } = parseInlineTags(bodyWithTags);
769
- // Skip instructional/example text (common in system prompts)
770
- if (isInstructionalText(body)) {
771
- console.error(`[parser] Filtered inline message to ${target} - instructional text. Body: ${body.substring(0, 100)}`);
772
- return { command: null, output: line };
773
- }
774
- const { to, project } = parseTarget(target);
775
- // Skip placeholder target names (common in documentation/examples)
776
- if (isPlaceholderTarget(to)) {
777
- console.error(`[parser] Filtered inline message - placeholder target: ${to}`);
778
- return { command: null, output: line };
779
- }
780
- return {
781
- command: {
782
- to,
783
- kind: 'message',
784
- body,
785
- thread: thread || undefined, // undefined if no thread specified
786
- threadProject: threadProject || undefined, // undefined if local thread
787
- project, // undefined if local, set if cross-project
788
- sync,
789
- raw,
790
- },
791
- output: null, // Don't output relay commands
792
- };
793
- }
794
- const thinkingMatch = stripped.match(this.inlineThinkingPattern);
795
- if (thinkingMatch) {
796
- const [raw, target, bodyWithTags] = thinkingMatch;
797
- const { body, thread, threadProject, sync } = parseInlineTags(bodyWithTags);
798
- // Skip instructional/example text (common in system prompts)
799
- if (isInstructionalText(body)) {
800
- return { command: null, output: line };
801
- }
802
- const { to, project } = parseTarget(target);
803
- // Skip placeholder target names (common in documentation/examples)
804
- if (isPlaceholderTarget(to)) {
805
- return { command: null, output: line };
806
- }
807
- return {
808
- command: {
809
- to,
810
- kind: 'thinking',
811
- body,
812
- thread: thread || undefined,
813
- threadProject: threadProject || undefined,
814
- project,
815
- sync,
816
- raw,
817
- },
818
- output: null,
819
- };
820
- }
821
- }
822
- // Regular line
823
- return { command: null, output: line };
824
- }
825
- /**
826
- * Finish processing a block and extract command.
827
- * Returns the command (if valid) and any remaining content after [[/RELAY]].
828
- */
829
- finishBlock(blockType) {
830
- const blockEndIdentifier = blockType === 'RELAY_METADATA' ? BLOCK_METADATA_END.source : BLOCK_END.source;
831
- const endIdx = this.blockBuffer.indexOf(blockEndIdentifier.replace(/\\/g, '')); // Remove regex escapes for indexOf
832
- const jsonStr = this.blockBuffer.substring(0, endIdx).trim();
833
- const remaining = this.blockBuffer.substring(endIdx + blockEndIdentifier.replace(/\\/g, '').length) || null;
834
- this.inBlock = false;
835
- this.blockBuffer = '';
836
- this.blockType = null;
837
- if (blockType === 'RELAY_METADATA') {
838
- try {
839
- const metadata = JSON.parse(jsonStr);
840
- this.lastParsedMetadata = metadata;
841
- return { command: null, remaining, metadata };
842
- }
843
- catch (err) {
844
- console.error('[parser] Invalid JSON in RELAY_METADATA block:', err);
845
- this.lastParsedMetadata = null;
846
- return { command: null, remaining, metadata: null };
847
- }
848
- }
849
- else { // blockType === 'RELAY'
850
- try {
851
- const parsed = JSON.parse(jsonStr);
852
- // Validate required fields
853
- if (!parsed.to || !parsed.type) {
854
- console.error('[parser] Block missing required fields (to, type)');
855
- this.lastParsedMetadata = null; // Clear metadata even if RELAY block is invalid
856
- return { command: null, remaining, metadata: null };
857
- }
858
- // Handle cross-project syntax in block format
859
- // Supports both explicit "project" field and "project:agent" in "to" field
860
- let to = parsed.to;
861
- let project = parsed.project;
862
- if (!project && typeof to === 'string') {
863
- // Check if "to" field uses project:agent syntax
864
- const targetParsed = parseTarget(to);
865
- to = targetParsed.to;
866
- project = targetParsed.project;
867
- }
868
- const command = {
869
- to,
870
- kind: parsed.type,
871
- body: parsed.body ?? parsed.text ?? '',
872
- data: parsed.data,
873
- thread: parsed.thread || undefined,
874
- project: project || undefined,
875
- raw: jsonStr,
876
- meta: this.lastParsedMetadata || undefined, // Attach last parsed metadata
877
- };
878
- this.lastParsedMetadata = null; // Clear after use
879
- return {
880
- command,
881
- remaining,
882
- metadata: null,
883
- };
884
- }
885
- catch (err) {
886
- console.error('[parser] Invalid JSON in RELAY block:', err);
887
- this.lastParsedMetadata = null;
888
- return { command: null, remaining, metadata: null };
889
- }
890
- }
891
- }
892
- /**
893
- * Check if the current fenced inline command should be filtered out.
894
- * Returns true if the command looks like instructional/example text.
895
- */
896
- shouldFilterFencedInline(target, body) {
897
- // Check for placeholder target names
898
- if (isPlaceholderTarget(target)) {
899
- // Silently filter placeholder targets (common in documentation)
900
- return true;
901
- }
902
- // Check for instructional body content
903
- if (isInstructionalText(body)) {
904
- // Silently filter instructional text (common in system prompts)
905
- return true;
906
- }
907
- return false;
908
- }
909
- /**
910
- * Parse while inside a fenced inline block (->relay:Target <<< ... >>>).
911
- * Accumulates lines until >>> is seen on its own line.
912
- */
913
- parseFencedInlineMode(data, commands) {
914
- const lines = data.split('\n');
915
- const hasTrailingNewline = data.endsWith('\n');
916
- let output = '';
917
- let consecutiveBlankLines = 0;
918
- for (let i = 0; i < lines.length; i++) {
919
- const line = lines[i];
920
- const isLastLine = i === lines.length - 1;
921
- const stripped = stripAnsi(line);
922
- // Track consecutive blank lines for auto-close
923
- if (stripped === '') {
924
- consecutiveBlankLines++;
925
- }
926
- else {
927
- consecutiveBlankLines = 0;
928
- }
929
- // Auto-close on double blank line (agent forgot >>>)
930
- // Only if we have actual content to send
931
- if (consecutiveBlankLines >= 2 && this.fencedInlineBuffer.trim().length > 0) {
932
- const body = unescapeFenceMarkers(stripAnsi(this.fencedInlineBuffer.trim()));
933
- // Skip instructional/example text (common in system prompts and documentation)
934
- if (!this.shouldFilterFencedInline(this.fencedInlineTarget, body)) {
935
- const command = {
936
- to: this.fencedInlineTarget,
937
- kind: this.fencedInlineKind,
938
- body,
939
- thread: this.fencedInlineThread,
940
- threadProject: this.fencedInlineThreadProject,
941
- project: this.fencedInlineProject,
942
- sync: this.fencedInlineSync,
943
- raw: this.fencedInlineRaw.join('\n'),
944
- };
945
- commands.push(command);
946
- }
947
- // Reset fenced inline state
948
- this.inFencedInline = false;
949
- this.fencedInlineBuffer = '';
950
- this.fencedInlineTarget = '';
951
- this.fencedInlineThread = undefined;
952
- this.fencedInlineThreadProject = undefined;
953
- this.fencedInlineProject = undefined;
954
- this.fencedInlineRaw = [];
955
- this.fencedInlineKind = 'message';
956
- this.fencedInlineSync = undefined;
957
- // Process remaining lines in normal mode
958
- const remainingLines = lines.slice(i);
959
- const remaining = remainingLines.join('\n') + (hasTrailingNewline ? '\n' : '');
960
- const result = this.parse(remaining);
961
- commands.push(...result.commands);
962
- return { commands, output: result.output };
963
- }
964
- // Check if a new relay command started (means previous fenced block was never closed)
965
- // Auto-close and SEND the incomplete message instead of discarding it
966
- // This preserves message content when agents forget to close with >>>
967
- if (this.inlineRelayPattern.test(stripped) || this.fencedRelayPattern.test(stripped)) {
968
- // Auto-close and send the incomplete fenced block (if it has content)
969
- if (this.fencedInlineBuffer.trim().length > 0) {
970
- const body = unescapeFenceMarkers(stripAnsi(this.fencedInlineBuffer.trim()));
971
- // Skip instructional/example text (common in system prompts and documentation)
972
- if (!this.shouldFilterFencedInline(this.fencedInlineTarget, body)) {
973
- const command = {
974
- to: this.fencedInlineTarget,
975
- kind: this.fencedInlineKind,
976
- body,
977
- thread: this.fencedInlineThread,
978
- threadProject: this.fencedInlineThreadProject,
979
- project: this.fencedInlineProject,
980
- sync: this.fencedInlineSync,
981
- raw: this.fencedInlineRaw.join('\n'),
982
- };
983
- commands.push(command);
984
- }
985
- }
986
- // Reset fenced inline state
987
- this.inFencedInline = false;
988
- this.fencedInlineBuffer = '';
989
- this.fencedInlineTarget = '';
990
- this.fencedInlineThread = undefined;
991
- this.fencedInlineThreadProject = undefined;
992
- this.fencedInlineProject = undefined;
993
- this.fencedInlineRaw = [];
994
- this.fencedInlineKind = 'message';
995
- this.fencedInlineSync = undefined;
996
- // Process remaining lines (including this one) in normal mode
997
- const remainingLines = lines.slice(i);
998
- const remaining = remainingLines.join('\n') + (hasTrailingNewline ? '\n' : '');
999
- const result = this.parse(remaining);
1000
- commands.push(...result.commands);
1001
- return { commands, output: result.output };
1002
- }
1003
- // Check if this line closes the fenced block
1004
- // Skip if the >>> is escaped (\>>>)
1005
- if (FENCE_END.test(stripped) && !isEscapedFenceEnd(stripped)) {
1006
- // If >>> is at end of line (not start), extract content before it
1007
- const endsWithFence = />>>\s*$/.test(stripped) && !/^(?:\s*)?>>>/.test(stripped);
1008
- if (endsWithFence) {
1009
- const contentBeforeFence = stripped.replace(/>>>\s*$/, '');
1010
- if (contentBeforeFence.trim()) {
1011
- if (this.fencedInlineBuffer.length > 0) {
1012
- this.fencedInlineBuffer += '\n' + contentBeforeFence;
1013
- }
1014
- else {
1015
- this.fencedInlineBuffer = contentBeforeFence;
1016
- }
1017
- }
1018
- }
1019
- // Complete the fenced inline command - unescape any \<<< and \>>> in content
1020
- const body = unescapeFenceMarkers(stripAnsi(this.fencedInlineBuffer.trim()));
1021
- this.fencedInlineRaw.push(line);
1022
- // Skip instructional/example text (common in system prompts and documentation)
1023
- if (!this.shouldFilterFencedInline(this.fencedInlineTarget, body)) {
1024
- const command = {
1025
- to: this.fencedInlineTarget,
1026
- kind: this.fencedInlineKind,
1027
- body,
1028
- thread: this.fencedInlineThread,
1029
- threadProject: this.fencedInlineThreadProject,
1030
- project: this.fencedInlineProject,
1031
- sync: this.fencedInlineSync,
1032
- raw: this.fencedInlineRaw.join('\n'),
1033
- };
1034
- commands.push(command);
1035
- }
1036
- // Reset fenced inline state
1037
- this.inFencedInline = false;
1038
- this.fencedInlineBuffer = '';
1039
- this.fencedInlineTarget = '';
1040
- this.fencedInlineThread = undefined;
1041
- this.fencedInlineThreadProject = undefined;
1042
- this.fencedInlineProject = undefined;
1043
- this.fencedInlineRaw = [];
1044
- this.fencedInlineKind = 'message';
1045
- this.fencedInlineSync = undefined;
1046
- // Process remaining lines after the fence close
1047
- // Only process if there's actual content after the closing fence
1048
- const remainingLines = lines.slice(i + 1);
1049
- // Filter out trailing empty string from split
1050
- const hasContent = remainingLines.some((l, idx) => l.trim() !== '' || (idx < remainingLines.length - 1));
1051
- if (hasContent) {
1052
- const remaining = remainingLines.join('\n') + (hasTrailingNewline ? '\n' : '');
1053
- const result = this.parse(remaining);
1054
- commands.push(...result.commands);
1055
- output += result.output;
1056
- }
1057
- return { commands, output };
1058
- }
1059
- // Accumulate this line into the buffer (preserving blank lines within content)
1060
- // But skip trailing empty line from split (when input ends with \n)
1061
- const isTrailingEmpty = isLastLine && line === '' && hasTrailingNewline;
1062
- if (!isTrailingEmpty) {
1063
- if (this.fencedInlineBuffer.length > 0) {
1064
- this.fencedInlineBuffer += '\n' + line;
1065
- }
1066
- else if (line.trim() !== '') {
1067
- // Start accumulating from first non-blank line
1068
- this.fencedInlineBuffer = line;
1069
- }
1070
- this.fencedInlineRaw.push(line);
1071
- }
1072
- // Check size limit
1073
- if (this.fencedInlineBuffer.length > this.options.maxBlockBytes) {
1074
- console.error('[parser] Fenced inline block too large, discarding');
1075
- this.inFencedInline = false;
1076
- this.fencedInlineBuffer = '';
1077
- this.fencedInlineTarget = '';
1078
- this.fencedInlineThread = undefined;
1079
- this.fencedInlineThreadProject = undefined;
1080
- this.fencedInlineProject = undefined;
1081
- this.fencedInlineRaw = [];
1082
- this.fencedInlineKind = 'message';
1083
- this.fencedInlineSync = undefined;
1084
- return { commands, output: '' };
1085
- }
1086
- // Check line count limit - prevents stuck fenced mode from blocking all messages
1087
- if (this.fencedInlineRaw.length > MAX_FENCED_LINES) {
1088
- console.error('[parser] Fenced inline block exceeded max lines, discarding');
1089
- this.inFencedInline = false;
1090
- this.fencedInlineBuffer = '';
1091
- this.fencedInlineTarget = '';
1092
- this.fencedInlineThread = undefined;
1093
- this.fencedInlineThreadProject = undefined;
1094
- this.fencedInlineProject = undefined;
1095
- this.fencedInlineRaw = [];
1096
- this.fencedInlineKind = 'message';
1097
- this.fencedInlineSync = undefined;
1098
- return { commands, output: '' };
1099
- }
1100
- }
1101
- // Still waiting for >>> - return empty output (content is buffered)
1102
- return { commands, output: '' };
1103
- }
1104
- /**
1105
- * Flush any remaining buffer (call on stream end).
1106
- */
1107
- flush() {
1108
- const result = this.parse('\n');
1109
- this.inBlock = false;
1110
- this.blockBuffer = '';
1111
- this.blockType = null;
1112
- this.lastParsedMetadata = null;
1113
- this.inCodeFence = false;
1114
- this.inThinkingBlock = false;
1115
- this.inFencedInline = false;
1116
- this.fencedInlineBuffer = '';
1117
- this.fencedInlineTarget = '';
1118
- this.fencedInlineThread = undefined;
1119
- this.fencedInlineThreadProject = undefined;
1120
- this.fencedInlineProject = undefined;
1121
- this.fencedInlineRaw = [];
1122
- this.fencedInlineKind = 'message';
1123
- this.fencedInlineSync = undefined;
1124
- return result;
1125
- }
1126
- /**
1127
- * Reset parser state.
1128
- */
1129
- reset() {
1130
- this.inBlock = false;
1131
- this.blockBuffer = '';
1132
- this.blockType = null;
1133
- this.lastParsedMetadata = null;
1134
- this.inCodeFence = false;
1135
- this.inThinkingBlock = false;
1136
- this.inFencedInline = false;
1137
- this.fencedInlineBuffer = '';
1138
- this.fencedInlineTarget = '';
1139
- this.fencedInlineThread = undefined;
1140
- this.fencedInlineThreadProject = undefined;
1141
- this.fencedInlineProject = undefined;
1142
- this.fencedInlineRaw = [];
1143
- this.fencedInlineKind = 'message';
1144
- this.fencedInlineSync = undefined;
1145
- }
1146
- }
1147
- /**
1148
- * Parse [[RELAY_METADATA]]...[[/RELAY_METADATA]] blocks from agent output.
1149
- * Agents can output metadata to enhance messages.
1150
- *
1151
- * Format:
1152
- * [[RELAY_METADATA]]
1153
- * {
1154
- * "subject": "Task update",
1155
- * "importance": 80,
1156
- * "replyTo": "msg-abc123",
1157
- * "ackRequired": true
1158
- * }
1159
- * [[/RELAY_METADATA]]
1160
- */
1161
- export function parseRelayMetadataFromOutput(output) {
1162
- const match = output.match(/\[\[RELAY_METADATA\]\]([\s\S]*?)\[\[\/RELAY_METADATA\]\]/);
1163
- if (!match) {
1164
- return { found: false, valid: false, metadata: null, rawContent: null };
1165
- }
1166
- const rawContent = match[1].trim();
1167
- try {
1168
- const metadata = JSON.parse(rawContent);
1169
- return { found: true, valid: true, metadata, rawContent };
1170
- }
1171
- catch {
1172
- return { found: true, valid: false, metadata: null, rawContent };
1173
- }
1174
- }
1175
- /**
1176
- * Parse [[SUMMARY]]...[[/SUMMARY]] blocks from agent output.
1177
- * Agents can output summaries to keep a running context of their work.
1178
- *
1179
- * Format:
1180
- * [[SUMMARY]]
1181
- * {
1182
- * "currentTask": "Working on auth module",
1183
- * "context": "Completed login flow, now implementing logout",
1184
- * "files": ["src/auth.ts", "src/session.ts"]
1185
- * }
1186
- * [[/SUMMARY]]
1187
- */
1188
- export function parseSummaryFromOutput(output) {
1189
- const result = parseSummaryWithDetails(output);
1190
- return result.summary;
1191
- }
1192
- /**
1193
- * Parse SUMMARY block with full details for deduplication.
1194
- * Returns raw content to allow caller to dedupe before logging errors.
1195
- */
1196
- export function parseSummaryWithDetails(output) {
1197
- const match = output.match(/\[\[SUMMARY\]\]([\s\S]*?)\[\[\/SUMMARY\]\]/);
1198
- if (!match) {
1199
- return { found: false, valid: false, summary: null, rawContent: null };
1200
- }
1201
- const rawContent = match[1].trim();
1202
- try {
1203
- const summary = JSON.parse(rawContent);
1204
- return { found: true, valid: true, summary, rawContent };
1205
- }
1206
- catch {
1207
- return { found: true, valid: false, summary: null, rawContent };
1208
- }
1209
- }
1210
- /**
1211
- * Parse [[SESSION_END]]...[[/SESSION_END]] blocks from agent output.
1212
- * Agents output this to explicitly mark their session as complete.
1213
- *
1214
- * Format:
1215
- * [[SESSION_END]]
1216
- * {"summary": "Completed auth module implementation", "completedTasks": ["login", "logout"]}
1217
- * [[/SESSION_END]]
1218
- *
1219
- * Or simply: [[SESSION_END]][[/SESSION_END]] for a clean close without summary.
1220
- */
1221
- export function parseSessionEndFromOutput(output) {
1222
- const match = output.match(/\[\[SESSION_END\]\]([\s\S]*?)\[\[\/SESSION_END\]\]/);
1223
- if (!match) {
1224
- return null;
1225
- }
1226
- const content = match[1].trim();
1227
- if (!content) {
1228
- return {}; // Empty marker = session ended without summary
1229
- }
1230
- try {
1231
- return JSON.parse(content);
1232
- }
1233
- catch {
1234
- // If not valid JSON, treat the content as a plain summary string
1235
- return { summary: content };
1236
- }
1237
- }
1238
- //# sourceMappingURL=parser.js.map