macro-agent 0.2.4 → 0.2.6

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 (1002) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +30 -56
  3. package/dist/acp/websocket-server.d.ts +6 -0
  4. package/dist/acp/websocket-server.d.ts.map +1 -1
  5. package/dist/acp/websocket-server.js +13 -0
  6. package/dist/acp/websocket-server.js.map +1 -1
  7. package/dist/acp/websocket-stream.d.ts +30 -0
  8. package/dist/acp/websocket-stream.d.ts.map +1 -0
  9. package/dist/acp/websocket-stream.js +118 -0
  10. package/dist/acp/websocket-stream.js.map +1 -0
  11. package/dist/activity/deduplication.d.ts +85 -0
  12. package/dist/activity/deduplication.d.ts.map +1 -0
  13. package/dist/activity/deduplication.js +149 -0
  14. package/dist/activity/deduplication.js.map +1 -0
  15. package/dist/activity/index.d.ts +16 -0
  16. package/dist/activity/index.d.ts.map +1 -0
  17. package/dist/activity/index.js +17 -0
  18. package/dist/activity/index.js.map +1 -0
  19. package/dist/activity/relevance.d.ts +81 -0
  20. package/dist/activity/relevance.d.ts.map +1 -0
  21. package/dist/activity/relevance.js +161 -0
  22. package/dist/activity/relevance.js.map +1 -0
  23. package/dist/activity/types.d.ts +169 -0
  24. package/dist/activity/types.d.ts.map +1 -0
  25. package/dist/activity/types.js +33 -0
  26. package/dist/activity/types.js.map +1 -0
  27. package/dist/activity/watcher.d.ts +64 -0
  28. package/dist/activity/watcher.d.ts.map +1 -0
  29. package/dist/activity/watcher.js +212 -0
  30. package/dist/activity/watcher.js.map +1 -0
  31. package/dist/adapters/federation.d.ts +8 -1
  32. package/dist/adapters/federation.d.ts.map +1 -1
  33. package/dist/adapters/federation.js +33 -2
  34. package/dist/adapters/federation.js.map +1 -1
  35. package/dist/agent/agent-manager-v2.d.ts.map +1 -1
  36. package/dist/agent/agent-manager-v2.js +189 -67
  37. package/dist/agent/agent-manager-v2.js.map +1 -1
  38. package/dist/agent/agent-manager.d.ts +17 -0
  39. package/dist/agent/agent-manager.d.ts.map +1 -1
  40. package/dist/agent/agent-manager.js.map +1 -1
  41. package/dist/agent/types.d.ts +21 -2
  42. package/dist/agent/types.d.ts.map +1 -1
  43. package/dist/agent/types.js.map +1 -1
  44. package/dist/agent/wake.d.ts +85 -0
  45. package/dist/agent/wake.d.ts.map +1 -0
  46. package/dist/agent/wake.js +278 -0
  47. package/dist/agent/wake.js.map +1 -0
  48. package/dist/api/server.d.ts.map +1 -1
  49. package/dist/api/server.js +41 -25
  50. package/dist/api/server.js.map +1 -1
  51. package/dist/api/types.d.ts +6 -0
  52. package/dist/api/types.d.ts.map +1 -1
  53. package/dist/auth/server-auth.d.ts +43 -0
  54. package/dist/auth/server-auth.d.ts.map +1 -0
  55. package/dist/auth/server-auth.js +80 -0
  56. package/dist/auth/server-auth.js.map +1 -0
  57. package/dist/auth/token.d.ts +4 -0
  58. package/dist/auth/token.d.ts.map +1 -1
  59. package/dist/auth/token.js +7 -6
  60. package/dist/auth/token.js.map +1 -1
  61. package/dist/boot-v2.d.ts +6 -3
  62. package/dist/boot-v2.d.ts.map +1 -1
  63. package/dist/boot-v2.js +44 -25
  64. package/dist/boot-v2.js.map +1 -1
  65. package/dist/cognitive/macro-agent-backend.d.ts.map +1 -1
  66. package/dist/cognitive/macro-agent-backend.js +37 -8
  67. package/dist/cognitive/macro-agent-backend.js.map +1 -1
  68. package/dist/cognitive/team-lifecycle.d.ts +82 -0
  69. package/dist/cognitive/team-lifecycle.d.ts.map +1 -0
  70. package/dist/cognitive/team-lifecycle.js +121 -0
  71. package/dist/cognitive/team-lifecycle.js.map +1 -0
  72. package/dist/cognitive/trajectory-extractor.d.ts +25 -0
  73. package/dist/cognitive/trajectory-extractor.d.ts.map +1 -0
  74. package/dist/cognitive/trajectory-extractor.js +134 -0
  75. package/dist/cognitive/trajectory-extractor.js.map +1 -0
  76. package/dist/cognitive/types.d.ts +24 -0
  77. package/dist/cognitive/types.d.ts.map +1 -1
  78. package/dist/control/control-server.d.ts.map +1 -1
  79. package/dist/control/control-server.js +10 -0
  80. package/dist/control/control-server.js.map +1 -1
  81. package/dist/dispatch/mail-inbound-consumer.d.ts.map +1 -1
  82. package/dist/dispatch/mail-inbound-consumer.js +43 -10
  83. package/dist/dispatch/mail-inbound-consumer.js.map +1 -1
  84. package/dist/index.d.ts +5 -1
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +6 -1
  87. package/dist/index.js.map +1 -1
  88. package/dist/lifecycle/handlers/generic.d.ts +27 -0
  89. package/dist/lifecycle/handlers/generic.d.ts.map +1 -0
  90. package/dist/lifecycle/handlers/generic.js +56 -0
  91. package/dist/lifecycle/handlers/generic.js.map +1 -0
  92. package/dist/lifecycle/handlers/index.d.ts +51 -0
  93. package/dist/lifecycle/handlers/index.d.ts.map +1 -0
  94. package/dist/lifecycle/handlers/index.js +110 -0
  95. package/dist/lifecycle/handlers/index.js.map +1 -0
  96. package/dist/lifecycle/handlers/integrator.d.ts +81 -0
  97. package/dist/lifecycle/handlers/integrator.d.ts.map +1 -0
  98. package/dist/lifecycle/handlers/integrator.js +451 -0
  99. package/dist/lifecycle/handlers/integrator.js.map +1 -0
  100. package/dist/lifecycle/handlers/monitor.d.ts +29 -0
  101. package/dist/lifecycle/handlers/monitor.d.ts.map +1 -0
  102. package/dist/lifecycle/handlers/monitor.js +79 -0
  103. package/dist/lifecycle/handlers/monitor.js.map +1 -0
  104. package/dist/lifecycle/handlers/worker.d.ts +56 -0
  105. package/dist/lifecycle/handlers/worker.d.ts.map +1 -0
  106. package/dist/lifecycle/handlers/worker.js +381 -0
  107. package/dist/lifecycle/handlers/worker.js.map +1 -0
  108. package/dist/lifecycle/handlers-v2.d.ts +0 -2
  109. package/dist/lifecycle/handlers-v2.d.ts.map +1 -1
  110. package/dist/lifecycle/handlers-v2.js +4 -55
  111. package/dist/lifecycle/handlers-v2.js.map +1 -1
  112. package/dist/mail/conversation-map.d.ts +33 -0
  113. package/dist/mail/conversation-map.d.ts.map +1 -0
  114. package/dist/mail/conversation-map.js +61 -0
  115. package/dist/mail/conversation-map.js.map +1 -0
  116. package/dist/mail/index.d.ts +11 -0
  117. package/dist/mail/index.d.ts.map +1 -0
  118. package/dist/mail/index.js +11 -0
  119. package/dist/mail/index.js.map +1 -0
  120. package/dist/mail/mail-service.d.ts +85 -0
  121. package/dist/mail/mail-service.d.ts.map +1 -0
  122. package/dist/mail/mail-service.js +121 -0
  123. package/dist/mail/mail-service.js.map +1 -0
  124. package/dist/mail/stores/eventstore-conversation-store.d.ts +40 -0
  125. package/dist/mail/stores/eventstore-conversation-store.d.ts.map +1 -0
  126. package/dist/mail/stores/eventstore-conversation-store.js +131 -0
  127. package/dist/mail/stores/eventstore-conversation-store.js.map +1 -0
  128. package/dist/mail/stores/eventstore-participant-store.d.ts +43 -0
  129. package/dist/mail/stores/eventstore-participant-store.d.ts.map +1 -0
  130. package/dist/mail/stores/eventstore-participant-store.js +145 -0
  131. package/dist/mail/stores/eventstore-participant-store.js.map +1 -0
  132. package/dist/mail/stores/eventstore-thread-store.d.ts +46 -0
  133. package/dist/mail/stores/eventstore-thread-store.d.ts.map +1 -0
  134. package/dist/mail/stores/eventstore-thread-store.js +118 -0
  135. package/dist/mail/stores/eventstore-thread-store.js.map +1 -0
  136. package/dist/mail/stores/eventstore-turn-store.d.ts +47 -0
  137. package/dist/mail/stores/eventstore-turn-store.d.ts.map +1 -0
  138. package/dist/mail/stores/eventstore-turn-store.js +153 -0
  139. package/dist/mail/stores/eventstore-turn-store.js.map +1 -0
  140. package/dist/mail/stores/index.d.ts +12 -0
  141. package/dist/mail/stores/index.d.ts.map +1 -0
  142. package/dist/mail/stores/index.js +12 -0
  143. package/dist/mail/stores/index.js.map +1 -0
  144. package/dist/mail/stores/types.d.ts +146 -0
  145. package/dist/mail/stores/types.d.ts.map +1 -0
  146. package/dist/mail/stores/types.js +13 -0
  147. package/dist/mail/stores/types.js.map +1 -0
  148. package/dist/mail/turn-recorder.d.ts +30 -0
  149. package/dist/mail/turn-recorder.d.ts.map +1 -0
  150. package/dist/mail/turn-recorder.js +98 -0
  151. package/dist/mail/turn-recorder.js.map +1 -0
  152. package/dist/map/adapter/acp-over-map.d.ts +115 -0
  153. package/dist/map/adapter/acp-over-map.d.ts.map +1 -0
  154. package/dist/map/adapter/acp-over-map.js +1024 -0
  155. package/dist/map/adapter/acp-over-map.js.map +1 -0
  156. package/dist/map/adapter/connection-manager.d.ts +150 -0
  157. package/dist/map/adapter/connection-manager.d.ts.map +1 -0
  158. package/dist/map/adapter/connection-manager.js +207 -0
  159. package/dist/map/adapter/connection-manager.js.map +1 -0
  160. package/dist/map/adapter/event-log.d.ts +87 -0
  161. package/dist/map/adapter/event-log.d.ts.map +1 -0
  162. package/dist/map/adapter/event-log.js +122 -0
  163. package/dist/map/adapter/event-log.js.map +1 -0
  164. package/dist/map/adapter/event-translator.d.ts +85 -0
  165. package/dist/map/adapter/event-translator.d.ts.map +1 -0
  166. package/dist/map/adapter/event-translator.js +295 -0
  167. package/dist/map/adapter/event-translator.js.map +1 -0
  168. package/dist/map/adapter/extensions/agent-detection.d.ts +49 -0
  169. package/dist/map/adapter/extensions/agent-detection.d.ts.map +1 -0
  170. package/dist/map/adapter/extensions/agent-detection.js +91 -0
  171. package/dist/map/adapter/extensions/agent-detection.js.map +1 -0
  172. package/dist/map/adapter/extensions/agent-lifecycle.d.ts +82 -0
  173. package/dist/map/adapter/extensions/agent-lifecycle.d.ts.map +1 -0
  174. package/dist/map/adapter/extensions/agent-lifecycle.js +164 -0
  175. package/dist/map/adapter/extensions/agent-lifecycle.js.map +1 -0
  176. package/dist/map/adapter/extensions/cognitive.d.ts +27 -0
  177. package/dist/map/adapter/extensions/cognitive.d.ts.map +1 -0
  178. package/dist/map/adapter/extensions/cognitive.js +158 -0
  179. package/dist/map/adapter/extensions/cognitive.js.map +1 -0
  180. package/dist/map/adapter/extensions/index.d.ts +95 -0
  181. package/dist/map/adapter/extensions/index.d.ts.map +1 -0
  182. package/dist/map/adapter/extensions/index.js +228 -0
  183. package/dist/map/adapter/extensions/index.js.map +1 -0
  184. package/dist/map/adapter/extensions/mcp-bridge.d.ts +57 -0
  185. package/dist/map/adapter/extensions/mcp-bridge.d.ts.map +1 -0
  186. package/dist/map/adapter/extensions/mcp-bridge.js +745 -0
  187. package/dist/map/adapter/extensions/mcp-bridge.js.map +1 -0
  188. package/dist/map/adapter/extensions/resume.d.ts +47 -0
  189. package/dist/map/adapter/extensions/resume.d.ts.map +1 -0
  190. package/dist/map/adapter/extensions/resume.js +59 -0
  191. package/dist/map/adapter/extensions/resume.js.map +1 -0
  192. package/dist/map/adapter/extensions/streams.d.ts +95 -0
  193. package/dist/map/adapter/extensions/streams.d.ts.map +1 -0
  194. package/dist/map/adapter/extensions/streams.js +515 -0
  195. package/dist/map/adapter/extensions/streams.js.map +1 -0
  196. package/dist/map/adapter/extensions/task.d.ts +40 -0
  197. package/dist/map/adapter/extensions/task.d.ts.map +1 -0
  198. package/dist/map/adapter/extensions/task.js +197 -0
  199. package/dist/map/adapter/extensions/task.js.map +1 -0
  200. package/dist/map/adapter/extensions/update-metadata.d.ts +29 -0
  201. package/dist/map/adapter/extensions/update-metadata.d.ts.map +1 -0
  202. package/dist/map/adapter/extensions/update-metadata.js +67 -0
  203. package/dist/map/adapter/extensions/update-metadata.js.map +1 -0
  204. package/dist/map/adapter/extensions/wake.d.ts +60 -0
  205. package/dist/map/adapter/extensions/wake.d.ts.map +1 -0
  206. package/dist/map/adapter/extensions/wake.js +144 -0
  207. package/dist/map/adapter/extensions/wake.js.map +1 -0
  208. package/dist/map/adapter/extensions/workspace-files.d.ts +42 -0
  209. package/dist/map/adapter/extensions/workspace-files.d.ts.map +1 -0
  210. package/dist/map/adapter/extensions/workspace-files.js +338 -0
  211. package/dist/map/adapter/extensions/workspace-files.js.map +1 -0
  212. package/dist/map/adapter/extensions/workspace.d.ts +57 -0
  213. package/dist/map/adapter/extensions/workspace.d.ts.map +1 -0
  214. package/dist/map/adapter/extensions/workspace.js +81 -0
  215. package/dist/map/adapter/extensions/workspace.js.map +1 -0
  216. package/dist/map/adapter/index.d.ts +20 -0
  217. package/dist/map/adapter/index.d.ts.map +1 -0
  218. package/dist/map/adapter/index.js +40 -0
  219. package/dist/map/adapter/index.js.map +1 -0
  220. package/dist/map/adapter/interface.d.ts +450 -0
  221. package/dist/map/adapter/interface.d.ts.map +1 -0
  222. package/dist/map/adapter/interface.js +24 -0
  223. package/dist/map/adapter/interface.js.map +1 -0
  224. package/dist/map/adapter/mail-handler-adapter.d.ts +27 -0
  225. package/dist/map/adapter/mail-handler-adapter.d.ts.map +1 -0
  226. package/dist/map/adapter/mail-handler-adapter.js +292 -0
  227. package/dist/map/adapter/mail-handler-adapter.js.map +1 -0
  228. package/dist/map/adapter/map-adapter.d.ts +200 -0
  229. package/dist/map/adapter/map-adapter.d.ts.map +1 -0
  230. package/dist/map/adapter/map-adapter.js +1199 -0
  231. package/dist/map/adapter/map-adapter.js.map +1 -0
  232. package/dist/map/adapter/rpc-handler.d.ts +263 -0
  233. package/dist/map/adapter/rpc-handler.d.ts.map +1 -0
  234. package/dist/map/adapter/rpc-handler.js +365 -0
  235. package/dist/map/adapter/rpc-handler.js.map +1 -0
  236. package/dist/map/adapter/subscription-manager.d.ts +174 -0
  237. package/dist/map/adapter/subscription-manager.d.ts.map +1 -0
  238. package/dist/map/adapter/subscription-manager.js +248 -0
  239. package/dist/map/adapter/subscription-manager.js.map +1 -0
  240. package/dist/map/adapter/types.d.ts +194 -0
  241. package/dist/map/adapter/types.d.ts.map +1 -0
  242. package/dist/map/adapter/types.js +27 -0
  243. package/dist/map/adapter/types.js.map +1 -0
  244. package/dist/map/adapter/websocket-integration.d.ts +113 -0
  245. package/dist/map/adapter/websocket-integration.d.ts.map +1 -0
  246. package/dist/map/adapter/websocket-integration.js +134 -0
  247. package/dist/map/adapter/websocket-integration.js.map +1 -0
  248. package/dist/map/cascade-action-handler.d.ts.map +1 -1
  249. package/dist/map/cascade-action-handler.js +19 -5
  250. package/dist/map/cascade-action-handler.js.map +1 -1
  251. package/dist/map/federation/envelope.d.ts +98 -0
  252. package/dist/map/federation/envelope.d.ts.map +1 -0
  253. package/dist/map/federation/envelope.js +160 -0
  254. package/dist/map/federation/envelope.js.map +1 -0
  255. package/dist/map/federation/federation-handler.d.ts +50 -0
  256. package/dist/map/federation/federation-handler.d.ts.map +1 -0
  257. package/dist/map/federation/federation-handler.js +306 -0
  258. package/dist/map/federation/federation-handler.js.map +1 -0
  259. package/dist/map/federation/index.d.ts +14 -0
  260. package/dist/map/federation/index.d.ts.map +1 -0
  261. package/dist/map/federation/index.js +13 -0
  262. package/dist/map/federation/index.js.map +1 -0
  263. package/dist/map/federation/types.d.ts +239 -0
  264. package/dist/map/federation/types.d.ts.map +1 -0
  265. package/dist/map/federation/types.js +23 -0
  266. package/dist/map/federation/types.js.map +1 -0
  267. package/dist/map/mail-bridge.d.ts +7 -0
  268. package/dist/map/mail-bridge.d.ts.map +1 -1
  269. package/dist/map/mail-bridge.js +39 -9
  270. package/dist/map/mail-bridge.js.map +1 -1
  271. package/dist/map/server.d.ts.map +1 -1
  272. package/dist/map/server.js +17 -2
  273. package/dist/map/server.js.map +1 -1
  274. package/dist/map/types.d.ts +6 -0
  275. package/dist/map/types.d.ts.map +1 -1
  276. package/dist/mcp/map-client.d.ts +39 -0
  277. package/dist/mcp/map-client.d.ts.map +1 -0
  278. package/dist/mcp/map-client.js +129 -0
  279. package/dist/mcp/map-client.js.map +1 -0
  280. package/dist/mcp/mcp-server.d.ts +72 -0
  281. package/dist/mcp/mcp-server.d.ts.map +1 -0
  282. package/dist/mcp/mcp-server.js +1027 -0
  283. package/dist/mcp/mcp-server.js.map +1 -0
  284. package/dist/mcp/tools/claim_task.d.ts +35 -0
  285. package/dist/mcp/tools/claim_task.d.ts.map +1 -0
  286. package/dist/mcp/tools/claim_task.js +58 -0
  287. package/dist/mcp/tools/claim_task.js.map +1 -0
  288. package/dist/mcp/tools/done-v2.d.ts +0 -1
  289. package/dist/mcp/tools/done-v2.d.ts.map +1 -1
  290. package/dist/mcp/tools/done-v2.js +0 -1
  291. package/dist/mcp/tools/done-v2.js.map +1 -1
  292. package/dist/mcp/tools/done.d.ts +102 -0
  293. package/dist/mcp/tools/done.d.ts.map +1 -0
  294. package/dist/mcp/tools/done.js +253 -0
  295. package/dist/mcp/tools/done.js.map +1 -0
  296. package/dist/mcp/tools/inject_context.d.ts +61 -0
  297. package/dist/mcp/tools/inject_context.d.ts.map +1 -0
  298. package/dist/mcp/tools/inject_context.js +123 -0
  299. package/dist/mcp/tools/inject_context.js.map +1 -0
  300. package/dist/mcp/tools/list_claimable_tasks.d.ts +38 -0
  301. package/dist/mcp/tools/list_claimable_tasks.d.ts.map +1 -0
  302. package/dist/mcp/tools/list_claimable_tasks.js +63 -0
  303. package/dist/mcp/tools/list_claimable_tasks.js.map +1 -0
  304. package/dist/mcp/tools/unclaim_task.d.ts +31 -0
  305. package/dist/mcp/tools/unclaim_task.d.ts.map +1 -0
  306. package/dist/mcp/tools/unclaim_task.js +47 -0
  307. package/dist/mcp/tools/unclaim_task.js.map +1 -0
  308. package/dist/mcp/tools/wait_for_activity.d.ts +60 -0
  309. package/dist/mcp/tools/wait_for_activity.d.ts.map +1 -0
  310. package/dist/mcp/tools/wait_for_activity.js +135 -0
  311. package/dist/mcp/tools/wait_for_activity.js.map +1 -0
  312. package/dist/monitor/health-check-service.d.ts +143 -0
  313. package/dist/monitor/health-check-service.d.ts.map +1 -0
  314. package/dist/monitor/health-check-service.js +240 -0
  315. package/dist/monitor/health-check-service.js.map +1 -0
  316. package/dist/monitor/index.d.ts +14 -0
  317. package/dist/monitor/index.d.ts.map +1 -0
  318. package/dist/monitor/index.js +14 -0
  319. package/dist/monitor/index.js.map +1 -0
  320. package/dist/monitor/stall-detector.d.ts +109 -0
  321. package/dist/monitor/stall-detector.d.ts.map +1 -0
  322. package/dist/monitor/stall-detector.js +152 -0
  323. package/dist/monitor/stall-detector.js.map +1 -0
  324. package/dist/peer/capability-manager.d.ts +56 -0
  325. package/dist/peer/capability-manager.d.ts.map +1 -0
  326. package/dist/peer/capability-manager.js +186 -0
  327. package/dist/peer/capability-manager.js.map +1 -0
  328. package/dist/peer/encapsulation-manager.d.ts +190 -0
  329. package/dist/peer/encapsulation-manager.d.ts.map +1 -0
  330. package/dist/peer/encapsulation-manager.js +486 -0
  331. package/dist/peer/encapsulation-manager.js.map +1 -0
  332. package/dist/peer/federation-manager.d.ts +223 -0
  333. package/dist/peer/federation-manager.d.ts.map +1 -0
  334. package/dist/peer/federation-manager.js +528 -0
  335. package/dist/peer/federation-manager.js.map +1 -0
  336. package/dist/peer/hierarchy-errors.d.ts +208 -0
  337. package/dist/peer/hierarchy-errors.d.ts.map +1 -0
  338. package/dist/peer/hierarchy-errors.js +268 -0
  339. package/dist/peer/hierarchy-errors.js.map +1 -0
  340. package/dist/peer/hierarchy-protocol.d.ts +159 -0
  341. package/dist/peer/hierarchy-protocol.d.ts.map +1 -0
  342. package/dist/peer/hierarchy-protocol.js +142 -0
  343. package/dist/peer/hierarchy-protocol.js.map +1 -0
  344. package/dist/peer/index.d.ts +15 -0
  345. package/dist/peer/index.d.ts.map +1 -0
  346. package/dist/peer/index.js +15 -0
  347. package/dist/peer/index.js.map +1 -0
  348. package/dist/peer/peer-manager.d.ts +99 -0
  349. package/dist/peer/peer-manager.d.ts.map +1 -0
  350. package/dist/peer/peer-manager.js +333 -0
  351. package/dist/peer/peer-manager.js.map +1 -0
  352. package/dist/peer/task-delegation.d.ts +189 -0
  353. package/dist/peer/task-delegation.d.ts.map +1 -0
  354. package/dist/peer/task-delegation.js +303 -0
  355. package/dist/peer/task-delegation.js.map +1 -0
  356. package/dist/peer/transports/index.d.ts +8 -0
  357. package/dist/peer/transports/index.d.ts.map +1 -0
  358. package/dist/peer/transports/index.js +8 -0
  359. package/dist/peer/transports/index.js.map +1 -0
  360. package/dist/peer/transports/local-transport.d.ts +56 -0
  361. package/dist/peer/transports/local-transport.d.ts.map +1 -0
  362. package/dist/peer/transports/local-transport.js +263 -0
  363. package/dist/peer/transports/local-transport.js.map +1 -0
  364. package/dist/peer/transports/websocket-transport.d.ts +86 -0
  365. package/dist/peer/transports/websocket-transport.d.ts.map +1 -0
  366. package/dist/peer/transports/websocket-transport.js +338 -0
  367. package/dist/peer/transports/websocket-transport.js.map +1 -0
  368. package/dist/peer/types.d.ts +268 -0
  369. package/dist/peer/types.d.ts.map +1 -0
  370. package/dist/peer/types.js +36 -0
  371. package/dist/peer/types.js.map +1 -0
  372. package/dist/router/address-resolver.d.ts +102 -0
  373. package/dist/router/address-resolver.d.ts.map +1 -0
  374. package/dist/router/address-resolver.js +198 -0
  375. package/dist/router/address-resolver.js.map +1 -0
  376. package/dist/router/broadcast.d.ts +53 -0
  377. package/dist/router/broadcast.d.ts.map +1 -0
  378. package/dist/router/broadcast.js +75 -0
  379. package/dist/router/broadcast.js.map +1 -0
  380. package/dist/router/channels.d.ts +148 -0
  381. package/dist/router/channels.d.ts.map +1 -0
  382. package/dist/router/channels.js +126 -0
  383. package/dist/router/channels.js.map +1 -0
  384. package/dist/router/index.d.ts +21 -0
  385. package/dist/router/index.d.ts.map +1 -0
  386. package/dist/router/index.js +18 -0
  387. package/dist/router/index.js.map +1 -0
  388. package/dist/router/message-router.d.ts +197 -0
  389. package/dist/router/message-router.d.ts.map +1 -0
  390. package/dist/router/message-router.js +903 -0
  391. package/dist/router/message-router.js.map +1 -0
  392. package/dist/router/message-types.d.ts +183 -0
  393. package/dist/router/message-types.d.ts.map +1 -0
  394. package/dist/router/message-types.js +79 -0
  395. package/dist/router/message-types.js.map +1 -0
  396. package/dist/router/role-resolver.d.ts +67 -0
  397. package/dist/router/role-resolver.d.ts.map +1 -0
  398. package/dist/router/role-resolver.js +106 -0
  399. package/dist/router/role-resolver.js.map +1 -0
  400. package/dist/router/signals.d.ts +253 -0
  401. package/dist/router/signals.d.ts.map +1 -0
  402. package/dist/router/signals.js +53 -0
  403. package/dist/router/signals.js.map +1 -0
  404. package/dist/router/types.d.ts +191 -0
  405. package/dist/router/types.d.ts.map +1 -0
  406. package/dist/router/types.js +34 -0
  407. package/dist/router/types.js.map +1 -0
  408. package/dist/router/wake.d.ts +111 -0
  409. package/dist/router/wake.d.ts.map +1 -0
  410. package/dist/router/wake.js +180 -0
  411. package/dist/router/wake.js.map +1 -0
  412. package/dist/server/combined-server.d.ts +95 -0
  413. package/dist/server/combined-server.d.ts.map +1 -0
  414. package/dist/server/combined-server.js +335 -0
  415. package/dist/server/combined-server.js.map +1 -0
  416. package/dist/steering/index.d.ts +11 -0
  417. package/dist/steering/index.d.ts.map +1 -0
  418. package/dist/steering/index.js +11 -0
  419. package/dist/steering/index.js.map +1 -0
  420. package/dist/steering/inject.d.ts +39 -0
  421. package/dist/steering/inject.d.ts.map +1 -0
  422. package/dist/steering/inject.js +197 -0
  423. package/dist/steering/inject.js.map +1 -0
  424. package/dist/steering/types.d.ts +100 -0
  425. package/dist/steering/types.d.ts.map +1 -0
  426. package/dist/steering/types.js +11 -0
  427. package/dist/steering/types.js.map +1 -0
  428. package/dist/store/backends/index.d.ts +11 -0
  429. package/dist/store/backends/index.d.ts.map +1 -0
  430. package/dist/store/backends/index.js +15 -0
  431. package/dist/store/backends/index.js.map +1 -0
  432. package/dist/store/backends/json-backend.d.ts +23 -0
  433. package/dist/store/backends/json-backend.d.ts.map +1 -0
  434. package/dist/store/backends/json-backend.js +220 -0
  435. package/dist/store/backends/json-backend.js.map +1 -0
  436. package/dist/store/backends/memory-backend.d.ts +12 -0
  437. package/dist/store/backends/memory-backend.d.ts.map +1 -0
  438. package/dist/store/backends/memory-backend.js +205 -0
  439. package/dist/store/backends/memory-backend.js.map +1 -0
  440. package/dist/store/backends/sqlite-backend.d.ts +27 -0
  441. package/dist/store/backends/sqlite-backend.d.ts.map +1 -0
  442. package/dist/store/backends/sqlite-backend.js +231 -0
  443. package/dist/store/backends/sqlite-backend.js.map +1 -0
  444. package/dist/store/backends/tinybase-backend.d.ts +22 -0
  445. package/dist/store/backends/tinybase-backend.d.ts.map +1 -0
  446. package/dist/store/backends/tinybase-backend.js +203 -0
  447. package/dist/store/backends/tinybase-backend.js.map +1 -0
  448. package/dist/store/backends/types.d.ts +175 -0
  449. package/dist/store/backends/types.d.ts.map +1 -0
  450. package/dist/store/backends/types.js +28 -0
  451. package/dist/store/backends/types.js.map +1 -0
  452. package/dist/store/event-store.d.ts +128 -0
  453. package/dist/store/event-store.d.ts.map +1 -0
  454. package/dist/store/event-store.js +1751 -0
  455. package/dist/store/event-store.js.map +1 -0
  456. package/dist/store/instance.d.ts +290 -0
  457. package/dist/store/instance.d.ts.map +1 -0
  458. package/dist/store/instance.js +363 -0
  459. package/dist/store/instance.js.map +1 -0
  460. package/dist/store/migrations.d.ts +41 -0
  461. package/dist/store/migrations.d.ts.map +1 -0
  462. package/dist/store/migrations.js +79 -0
  463. package/dist/store/migrations.js.map +1 -0
  464. package/dist/store/test-utils.d.ts +63 -0
  465. package/dist/store/test-utils.d.ts.map +1 -0
  466. package/dist/store/test-utils.js +63 -0
  467. package/dist/store/test-utils.js.map +1 -0
  468. package/dist/store/types/config.d.ts +16 -0
  469. package/dist/store/types/config.d.ts.map +1 -0
  470. package/dist/store/types/config.js +8 -0
  471. package/dist/store/types/config.js.map +1 -0
  472. package/dist/store/types/conversations.d.ts +91 -0
  473. package/dist/store/types/conversations.d.ts.map +1 -0
  474. package/dist/store/types/conversations.js +8 -0
  475. package/dist/store/types/conversations.js.map +1 -0
  476. package/dist/store/types/sessions.d.ts +44 -0
  477. package/dist/store/types/sessions.d.ts.map +1 -0
  478. package/dist/store/types/sessions.js +9 -0
  479. package/dist/store/types/sessions.js.map +1 -0
  480. package/dist/store/types.d.ts +115 -0
  481. package/dist/store/types.d.ts.map +1 -0
  482. package/dist/store/types.js +6 -0
  483. package/dist/store/types.js.map +1 -0
  484. package/dist/task/backend/index.d.ts +93 -0
  485. package/dist/task/backend/index.d.ts.map +1 -0
  486. package/dist/task/backend/index.js +178 -0
  487. package/dist/task/backend/index.js.map +1 -0
  488. package/dist/task/backend/memory.d.ts +70 -0
  489. package/dist/task/backend/memory.d.ts.map +1 -0
  490. package/dist/task/backend/memory.js +621 -0
  491. package/dist/task/backend/memory.js.map +1 -0
  492. package/dist/task/backend/opentasks/backend.d.ts +140 -0
  493. package/dist/task/backend/opentasks/backend.d.ts.map +1 -0
  494. package/dist/task/backend/opentasks/backend.js +1023 -0
  495. package/dist/task/backend/opentasks/backend.js.map +1 -0
  496. package/dist/task/backend/opentasks/client.d.ts +337 -0
  497. package/dist/task/backend/opentasks/client.d.ts.map +1 -0
  498. package/dist/task/backend/opentasks/client.js +225 -0
  499. package/dist/task/backend/opentasks/client.js.map +1 -0
  500. package/dist/task/backend/opentasks/daemon-manager.d.ts +89 -0
  501. package/dist/task/backend/opentasks/daemon-manager.d.ts.map +1 -0
  502. package/dist/task/backend/opentasks/daemon-manager.js +195 -0
  503. package/dist/task/backend/opentasks/daemon-manager.js.map +1 -0
  504. package/dist/task/backend/opentasks/index.d.ts +21 -0
  505. package/dist/task/backend/opentasks/index.d.ts.map +1 -0
  506. package/dist/task/backend/opentasks/index.js +21 -0
  507. package/dist/task/backend/opentasks/index.js.map +1 -0
  508. package/dist/task/backend/opentasks/mapping.d.ts +48 -0
  509. package/dist/task/backend/opentasks/mapping.d.ts.map +1 -0
  510. package/dist/task/backend/opentasks/mapping.js +77 -0
  511. package/dist/task/backend/opentasks/mapping.js.map +1 -0
  512. package/dist/task/backend/sudocode/__tests__/integration/test-utils.d.ts +54 -0
  513. package/dist/task/backend/sudocode/__tests__/integration/test-utils.d.ts.map +1 -0
  514. package/dist/task/backend/sudocode/__tests__/integration/test-utils.js +88 -0
  515. package/dist/task/backend/sudocode/__tests__/integration/test-utils.js.map +1 -0
  516. package/dist/task/backend/sudocode/backend.d.ts +155 -0
  517. package/dist/task/backend/sudocode/backend.d.ts.map +1 -0
  518. package/dist/task/backend/sudocode/backend.js +942 -0
  519. package/dist/task/backend/sudocode/backend.js.map +1 -0
  520. package/dist/task/backend/sudocode/client.d.ts +303 -0
  521. package/dist/task/backend/sudocode/client.d.ts.map +1 -0
  522. package/dist/task/backend/sudocode/client.js +101 -0
  523. package/dist/task/backend/sudocode/client.js.map +1 -0
  524. package/dist/task/backend/sudocode/index.d.ts +19 -0
  525. package/dist/task/backend/sudocode/index.d.ts.map +1 -0
  526. package/dist/task/backend/sudocode/index.js +17 -0
  527. package/dist/task/backend/sudocode/index.js.map +1 -0
  528. package/dist/task/backend/sudocode/mapping.d.ts +51 -0
  529. package/dist/task/backend/sudocode/mapping.d.ts.map +1 -0
  530. package/dist/task/backend/sudocode/mapping.js +86 -0
  531. package/dist/task/backend/sudocode/mapping.js.map +1 -0
  532. package/dist/task/backend/sudocode/server-client.d.ts +56 -0
  533. package/dist/task/backend/sudocode/server-client.d.ts.map +1 -0
  534. package/dist/task/backend/sudocode/server-client.js +367 -0
  535. package/dist/task/backend/sudocode/server-client.js.map +1 -0
  536. package/dist/task/backend/sudocode/standalone-client.d.ts +91 -0
  537. package/dist/task/backend/sudocode/standalone-client.d.ts.map +1 -0
  538. package/dist/task/backend/sudocode/standalone-client.js +476 -0
  539. package/dist/task/backend/sudocode/standalone-client.js.map +1 -0
  540. package/dist/task/backend/sudocode/sync-policy.d.ts +166 -0
  541. package/dist/task/backend/sudocode/sync-policy.d.ts.map +1 -0
  542. package/dist/task/backend/sudocode/sync-policy.js +221 -0
  543. package/dist/task/backend/sudocode/sync-policy.js.map +1 -0
  544. package/dist/task/backend/sudocode/tools.d.ts +87 -0
  545. package/dist/task/backend/sudocode/tools.d.ts.map +1 -0
  546. package/dist/task/backend/sudocode/tools.js +743 -0
  547. package/dist/task/backend/sudocode/tools.js.map +1 -0
  548. package/dist/task/backend/tool-provider.d.ts +56 -0
  549. package/dist/task/backend/tool-provider.d.ts.map +1 -0
  550. package/dist/task/backend/tool-provider.js +424 -0
  551. package/dist/task/backend/tool-provider.js.map +1 -0
  552. package/dist/task/backend/types.d.ts +297 -0
  553. package/dist/task/backend/types.d.ts.map +1 -0
  554. package/dist/task/backend/types.js +27 -0
  555. package/dist/task/backend/types.js.map +1 -0
  556. package/dist/task/backend/unified-tool-provider.d.ts +57 -0
  557. package/dist/task/backend/unified-tool-provider.d.ts.map +1 -0
  558. package/dist/task/backend/unified-tool-provider.js +623 -0
  559. package/dist/task/backend/unified-tool-provider.js.map +1 -0
  560. package/dist/task/index.d.ts +7 -0
  561. package/dist/task/index.d.ts.map +1 -0
  562. package/dist/task/index.js +7 -0
  563. package/dist/task/index.js.map +1 -0
  564. package/dist/task/retry-policy.d.ts +89 -0
  565. package/dist/task/retry-policy.d.ts.map +1 -0
  566. package/dist/task/retry-policy.js +160 -0
  567. package/dist/task/retry-policy.js.map +1 -0
  568. package/dist/task/task-manager.d.ts +70 -0
  569. package/dist/task/task-manager.d.ts.map +1 -0
  570. package/dist/task/task-manager.js +319 -0
  571. package/dist/task/task-manager.js.map +1 -0
  572. package/dist/task/types.d.ts +72 -0
  573. package/dist/task/types.d.ts.map +1 -0
  574. package/dist/task/types.js +33 -0
  575. package/dist/task/types.js.map +1 -0
  576. package/dist/teams/team-loader.d.ts +2 -1
  577. package/dist/teams/team-loader.d.ts.map +1 -1
  578. package/dist/teams/team-loader.js +2 -1
  579. package/dist/teams/team-loader.js.map +1 -1
  580. package/dist/teams/team-manager.d.ts +101 -0
  581. package/dist/teams/team-manager.d.ts.map +1 -0
  582. package/dist/teams/team-manager.js +260 -0
  583. package/dist/teams/team-manager.js.map +1 -0
  584. package/dist/teams/team-runtime-v2.d.ts +0 -3
  585. package/dist/teams/team-runtime-v2.d.ts.map +1 -1
  586. package/dist/teams/team-runtime-v2.js +31 -93
  587. package/dist/teams/team-runtime-v2.js.map +1 -1
  588. package/dist/teams/team-runtime.d.ts +245 -0
  589. package/dist/teams/team-runtime.d.ts.map +1 -0
  590. package/dist/teams/team-runtime.js +1023 -0
  591. package/dist/teams/team-runtime.js.map +1 -0
  592. package/dist/trigger/router/index.d.ts +11 -0
  593. package/dist/trigger/router/index.d.ts.map +1 -0
  594. package/dist/trigger/router/index.js +10 -0
  595. package/dist/trigger/router/index.js.map +1 -0
  596. package/dist/trigger/router/strategies/ai-router-strategy.d.ts +34 -0
  597. package/dist/trigger/router/strategies/ai-router-strategy.d.ts.map +1 -0
  598. package/dist/trigger/router/strategies/ai-router-strategy.js +359 -0
  599. package/dist/trigger/router/strategies/ai-router-strategy.js.map +1 -0
  600. package/dist/trigger/router/strategies/direct-strategy.d.ts +32 -0
  601. package/dist/trigger/router/strategies/direct-strategy.d.ts.map +1 -0
  602. package/dist/trigger/router/strategies/direct-strategy.js +119 -0
  603. package/dist/trigger/router/strategies/direct-strategy.js.map +1 -0
  604. package/dist/trigger/router/strategies/index.d.ts +11 -0
  605. package/dist/trigger/router/strategies/index.d.ts.map +1 -0
  606. package/dist/trigger/router/strategies/index.js +11 -0
  607. package/dist/trigger/router/strategies/index.js.map +1 -0
  608. package/dist/trigger/router/strategies/role-strategy.d.ts +39 -0
  609. package/dist/trigger/router/strategies/role-strategy.d.ts.map +1 -0
  610. package/dist/trigger/router/strategies/role-strategy.js +207 -0
  611. package/dist/trigger/router/strategies/role-strategy.js.map +1 -0
  612. package/dist/trigger/router/trigger-router.d.ts +54 -0
  613. package/dist/trigger/router/trigger-router.d.ts.map +1 -0
  614. package/dist/trigger/router/trigger-router.js +362 -0
  615. package/dist/trigger/router/trigger-router.js.map +1 -0
  616. package/dist/trigger/router/types.d.ts +225 -0
  617. package/dist/trigger/router/types.d.ts.map +1 -0
  618. package/dist/trigger/router/types.js +10 -0
  619. package/dist/trigger/router/types.js.map +1 -0
  620. package/dist/trigger/sources/cron/cron-service.d.ts.map +1 -1
  621. package/dist/trigger/sources/cron/cron-service.js +6 -3
  622. package/dist/trigger/sources/cron/cron-service.js.map +1 -1
  623. package/dist/trigger/trigger-system.d.ts +77 -0
  624. package/dist/trigger/trigger-system.d.ts.map +1 -0
  625. package/dist/trigger/trigger-system.js +84 -0
  626. package/dist/trigger/trigger-system.js.map +1 -0
  627. package/dist/util/git-safety.d.ts +33 -0
  628. package/dist/util/git-safety.d.ts.map +1 -0
  629. package/dist/util/git-safety.js +94 -0
  630. package/dist/util/git-safety.js.map +1 -0
  631. package/dist/workspace/index.d.ts +0 -1
  632. package/dist/workspace/index.d.ts.map +1 -1
  633. package/dist/workspace/index.js +0 -2
  634. package/dist/workspace/index.js.map +1 -1
  635. package/dist/workspace/landing/direct-push.d.ts.map +1 -1
  636. package/dist/workspace/landing/direct-push.js +22 -7
  637. package/dist/workspace/landing/direct-push.js.map +1 -1
  638. package/dist/workspace/landing/queue-to-branch.d.ts.map +1 -1
  639. package/dist/workspace/landing/queue-to-branch.js +1 -3
  640. package/dist/workspace/landing/queue-to-branch.js.map +1 -1
  641. package/dist/workspace/types.d.ts +0 -13
  642. package/dist/workspace/types.d.ts.map +1 -1
  643. package/dist/workspace/workspace-manager.d.ts +0 -11
  644. package/dist/workspace/workspace-manager.d.ts.map +1 -1
  645. package/dist/workspace/workspace-manager.js +0 -30
  646. package/dist/workspace/workspace-manager.js.map +1 -1
  647. package/package.json +28 -2
  648. package/templates/teams/self-driving/prompts/grinder.md +1 -0
  649. package/templates/teams/self-driving/prompts/judge.md +1 -0
  650. package/templates/teams/self-driving/prompts/planner.md +1 -0
  651. package/templates/teams/self-driving/roles/grinder.yaml +15 -0
  652. package/templates/teams/self-driving/roles/judge.yaml +10 -0
  653. package/templates/teams/self-driving/roles/planner.yaml +16 -0
  654. package/.claude/commands/openspec/apply.md +0 -23
  655. package/.claude/commands/openspec/archive.md +0 -27
  656. package/.claude/commands/openspec/proposal.md +0 -28
  657. package/.claude/settings.json +0 -133
  658. package/.gitattributes +0 -3
  659. package/.opentasks/config.json +0 -9
  660. package/.opentasks/graph.jsonl +0 -0
  661. package/.sessionlog/settings.json +0 -4
  662. package/.sudocode/issues.jsonl +0 -183
  663. package/.sudocode/specs.jsonl +0 -56
  664. package/AGENTS.md +0 -18
  665. package/CLAUDE.md +0 -923
  666. package/docs/architecture.md +0 -508
  667. package/docs/configuration.md +0 -323
  668. package/docs/conflict-recovery.md +0 -472
  669. package/docs/design/task-dispatcher.md +0 -880
  670. package/docs/design-subsystem-extraction.md +0 -627
  671. package/docs/git-cascade-integration-gaps.md +0 -678
  672. package/docs/implementation-details.md +0 -1127
  673. package/docs/implementation-summary.md +0 -448
  674. package/docs/lifecycle-events-design.md +0 -111
  675. package/docs/mail-integration.md +0 -608
  676. package/docs/openhive-capability-summary.md +0 -415
  677. package/docs/openhive-integration.md +0 -415
  678. package/docs/plan-self-driving-support.md +0 -433
  679. package/docs/roadmap-v2-gaps.md +0 -216
  680. package/docs/spec-self-driving-support.md +0 -462
  681. package/docs/team-templates.md +0 -860
  682. package/docs/teams.md +0 -306
  683. package/docs/trigger-system-design.md +0 -333
  684. package/docs/troubleshooting.md +0 -489
  685. package/docs/workspace-interfaces.md +0 -731
  686. package/docs/workspace-redesign-plan.md +0 -302
  687. package/examples/distributed-peer-communication.ts +0 -202
  688. package/examples/local-peer-communication.ts +0 -165
  689. package/index.js +0 -2
  690. package/mvp_docs/agent-execution-system.md +0 -347
  691. package/mvp_docs/agent-interface.md +0 -580
  692. package/mvp_docs/data-structures.md +0 -701
  693. package/mvp_docs/dynamic-meta-orchestration.md +0 -116
  694. package/mvp_docs/multi-agent-interaction-design.md +0 -779
  695. package/mvp_docs/mvp-implementation-plan.md +0 -1148
  696. package/renovate.json5 +0 -6
  697. package/scripts/test-acp-integration.ts +0 -422
  698. package/src/__tests__/boot-v2.test.ts +0 -631
  699. package/src/__tests__/e2e/acp-over-map-live.e2e.test.ts +0 -496
  700. package/src/__tests__/e2e/acp-over-map.e2e.test.ts +0 -457
  701. package/src/__tests__/e2e/agent-lifecycle.e2e.test.ts +0 -770
  702. package/src/__tests__/e2e/auto-sync.e2e.test.ts +0 -257
  703. package/src/__tests__/e2e/bootstrap.e2e.test.ts +0 -319
  704. package/src/__tests__/e2e/cascade-rebase.e2e.test.ts +0 -254
  705. package/src/__tests__/e2e/cc-swarm-bridge.e2e.test.ts +0 -253
  706. package/src/__tests__/e2e/cli-run.e2e.test.ts +0 -167
  707. package/src/__tests__/e2e/cognitive-workspace.e2e.test.ts +0 -282
  708. package/src/__tests__/e2e/dispatch-coordination.e2e.test.ts +0 -495
  709. package/src/__tests__/e2e/dispatch-live.e2e.test.ts +0 -564
  710. package/src/__tests__/e2e/dispatch-opentasks.e2e.test.ts +0 -496
  711. package/src/__tests__/e2e/dispatch-phase2-live.e2e.test.ts +0 -456
  712. package/src/__tests__/e2e/dispatch-phase2.e2e.test.ts +0 -386
  713. package/src/__tests__/e2e/dispatch.e2e.test.ts +0 -376
  714. package/src/__tests__/e2e/done-scenarios.e2e.test.ts +0 -322
  715. package/src/__tests__/e2e/live-agent.e2e.test.ts +0 -1330
  716. package/src/__tests__/e2e/map-server.e2e.test.ts +0 -128
  717. package/src/__tests__/e2e/map-sidecar.e2e.test.ts +0 -139
  718. package/src/__tests__/e2e/opentasks-integration.e2e.test.ts +0 -280
  719. package/src/__tests__/e2e/pull-mode.e2e.test.ts +0 -632
  720. package/src/__tests__/e2e/resume-continue.e2e.test.ts +0 -312
  721. package/src/__tests__/e2e/self-driving-v3.e2e.test.ts +0 -197
  722. package/src/__tests__/e2e/spawn-resolver.e2e.test.ts +0 -200
  723. package/src/__tests__/e2e/swarmkit-integration.e2e.test.ts +0 -562
  724. package/src/__tests__/e2e/swarmkit-live.e2e.test.ts +0 -1049
  725. package/src/__tests__/e2e/trajectory-tracking.e2e.test.ts +0 -258
  726. package/src/__tests__/e2e/trigger-wake.e2e.test.ts +0 -257
  727. package/src/__tests__/e2e/workspace-lifecycle.e2e.test.ts +0 -383
  728. package/src/__tests__/e2e/workspace-v3.e2e.test.ts +0 -413
  729. package/src/acp/__tests__/claude-code-replay.test.ts +0 -225
  730. package/src/acp/__tests__/macro-agent.test.ts +0 -387
  731. package/src/acp/__tests__/session-mapper.test.ts +0 -152
  732. package/src/acp/__tests__/websocket-server.test.ts +0 -194
  733. package/src/acp/claude-code-replay.ts +0 -208
  734. package/src/acp/index.ts +0 -32
  735. package/src/acp/macro-agent.ts +0 -995
  736. package/src/acp/map-bridge.ts +0 -193
  737. package/src/acp/session-mapper.ts +0 -116
  738. package/src/acp/types.ts +0 -99
  739. package/src/acp/websocket-server.ts +0 -213
  740. package/src/adapters/__tests__/federation.test.ts +0 -256
  741. package/src/adapters/__tests__/inbox-adapter.test.ts +0 -316
  742. package/src/adapters/__tests__/tasks-adapter.test.ts +0 -270
  743. package/src/adapters/federation.ts +0 -185
  744. package/src/adapters/inbox-adapter.ts +0 -292
  745. package/src/adapters/inbox-client-adapter.ts +0 -173
  746. package/src/adapters/index.ts +0 -44
  747. package/src/adapters/opentasks-daemon.ts +0 -252
  748. package/src/adapters/tasks-adapter.ts +0 -330
  749. package/src/adapters/types.ts +0 -286
  750. package/src/agent/__tests__/agent-manager-topology.test.ts +0 -73
  751. package/src/agent/__tests__/agent-manager-v2.permission-interception.test.ts +0 -296
  752. package/src/agent/__tests__/agent-manager-v2.permissions.test.ts +0 -233
  753. package/src/agent/__tests__/agent-manager-v2.test.ts +0 -614
  754. package/src/agent/__tests__/agent-store.test.ts +0 -465
  755. package/src/agent/__tests__/task-ref-resolution.test.ts +0 -231
  756. package/src/agent/agent-manager-v2.ts +0 -2021
  757. package/src/agent/agent-manager.ts +0 -386
  758. package/src/agent/agent-store.ts +0 -409
  759. package/src/agent/index.ts +0 -7
  760. package/src/agent/prompts/coordinator-signals.ts +0 -115
  761. package/src/agent/prompts/index.ts +0 -7
  762. package/src/agent/system-prompt.ts +0 -298
  763. package/src/agent/types.ts +0 -459
  764. package/src/agent-detection/__tests__/command-builder.test.ts +0 -336
  765. package/src/agent-detection/__tests__/detector.test.ts +0 -768
  766. package/src/agent-detection/__tests__/registry.test.ts +0 -254
  767. package/src/agent-detection/command-builder.ts +0 -90
  768. package/src/agent-detection/detector.ts +0 -307
  769. package/src/agent-detection/index.ts +0 -36
  770. package/src/agent-detection/registry.ts +0 -200
  771. package/src/agent-detection/types.ts +0 -184
  772. package/src/api/__tests__/server.test.ts +0 -292
  773. package/src/api/index.ts +0 -8
  774. package/src/api/server.ts +0 -380
  775. package/src/api/types.ts +0 -39
  776. package/src/auth/__tests__/token.test.ts +0 -100
  777. package/src/auth/index.ts +0 -1
  778. package/src/auth/token.ts +0 -82
  779. package/src/boot-v2.ts +0 -1343
  780. package/src/cli/__tests__/stable-instance-id.test.ts +0 -57
  781. package/src/cli/acp.ts +0 -101
  782. package/src/cli/inbox-mcp-proxy.ts +0 -56
  783. package/src/cli/index.ts +0 -566
  784. package/src/cli/mcp.ts +0 -305
  785. package/src/cli/parse-args.ts +0 -54
  786. package/src/cli/stable-instance-id.ts +0 -14
  787. package/src/cognitive/__tests__/macro-agent-backend.test.ts +0 -520
  788. package/src/cognitive/__tests__/session-converter.test.ts +0 -423
  789. package/src/cognitive/__tests__/workspace-handler.test.ts +0 -221
  790. package/src/cognitive/analyst-role.ts +0 -59
  791. package/src/cognitive/index.ts +0 -49
  792. package/src/cognitive/macro-agent-backend.ts +0 -370
  793. package/src/cognitive/session-converter.ts +0 -151
  794. package/src/cognitive/types.ts +0 -163
  795. package/src/cognitive/workspace-handler.ts +0 -163
  796. package/src/config/index.ts +0 -9
  797. package/src/config/project-config.ts +0 -294
  798. package/src/control/__tests__/control-resilience.test.ts +0 -251
  799. package/src/control/__tests__/control-socket.test.ts +0 -240
  800. package/src/control/control-client.ts +0 -337
  801. package/src/control/control-server.ts +0 -298
  802. package/src/control/index.ts +0 -17
  803. package/src/control/types.ts +0 -95
  804. package/src/dispatch/CLAUDE.md +0 -129
  805. package/src/dispatch/__tests__/loadout-translation.test.ts +0 -141
  806. package/src/dispatch/__tests__/mail-inbound-consumer.integration.test.ts +0 -519
  807. package/src/dispatch/__tests__/mail-inbound-consumer.test.ts +0 -800
  808. package/src/dispatch/__tests__/mail-inbound-reuse-consumer.test.ts +0 -575
  809. package/src/dispatch/__tests__/permission-evaluator.test.ts +0 -196
  810. package/src/dispatch/__tests__/permission-overlay.test.ts +0 -56
  811. package/src/dispatch/__tests__/permissions-handler.test.ts +0 -168
  812. package/src/dispatch/__tests__/spawn-agent-handler.test.ts +0 -282
  813. package/src/dispatch/loadout-translation.ts +0 -138
  814. package/src/dispatch/mail-inbound-consumer.ts +0 -560
  815. package/src/dispatch/mail-inbound-reuse-consumer.ts +0 -479
  816. package/src/dispatch/permission-evaluator.ts +0 -191
  817. package/src/dispatch/permission-overlay.ts +0 -89
  818. package/src/dispatch/permissions-handler.ts +0 -112
  819. package/src/dispatch/spawn-agent-handler.ts +0 -160
  820. package/src/index.ts +0 -115
  821. package/src/integrations/__tests__/context-builder.test.ts +0 -218
  822. package/src/integrations/__tests__/sessionlog.test.ts +0 -498
  823. package/src/integrations/__tests__/skilltree.test.ts +0 -136
  824. package/src/integrations/context-builder.ts +0 -280
  825. package/src/integrations/sessionlog.ts +0 -194
  826. package/src/integrations/skilltree.ts +0 -184
  827. package/src/lifecycle/__tests__/cascade-consolidation.test.ts +0 -240
  828. package/src/lifecycle/__tests__/handlers-v2.test.ts +0 -565
  829. package/src/lifecycle/cascade.ts +0 -335
  830. package/src/lifecycle/cleanup.ts +0 -373
  831. package/src/lifecycle/handlers-v2.ts +0 -508
  832. package/src/lifecycle/index.ts +0 -76
  833. package/src/lifecycle/types.ts +0 -260
  834. package/src/map/__tests__/cascade-bridge.test.ts +0 -229
  835. package/src/map/__tests__/cascade-diff-server.test.ts +0 -434
  836. package/src/map/__tests__/emit-event.test.ts +0 -71
  837. package/src/map/__tests__/lifecycle-bridge.test.ts +0 -430
  838. package/src/map/__tests__/mail-bridge.test.ts +0 -284
  839. package/src/map/__tests__/permission-forwarding.test.ts +0 -143
  840. package/src/map/__tests__/sidecar-diff-install-smoke.test.ts +0 -90
  841. package/src/map/__tests__/sidecar-integration.test.ts +0 -190
  842. package/src/map/__tests__/task-bridge.test.ts +0 -153
  843. package/src/map/__tests__/trajectory-reporter.test.ts +0 -173
  844. package/src/map/acp-bridge.ts +0 -293
  845. package/src/map/cascade-action-handler.ts +0 -205
  846. package/src/map/cascade-bridge.ts +0 -339
  847. package/src/map/cascade-diff-server.ts +0 -404
  848. package/src/map/cc-swarm-hooks.ts +0 -242
  849. package/src/map/coordination-handler.ts +0 -232
  850. package/src/map/index.ts +0 -18
  851. package/src/map/lifecycle-bridge.ts +0 -236
  852. package/src/map/mail-bridge.ts +0 -215
  853. package/src/map/repo-workspace.ts +0 -82
  854. package/src/map/server.ts +0 -758
  855. package/src/map/sidecar.ts +0 -826
  856. package/src/map/task-bridge.ts +0 -89
  857. package/src/map/trajectory-reporter.ts +0 -124
  858. package/src/map/types.ts +0 -304
  859. package/src/mcp/__tests__/mcp-server-v2.test.ts +0 -236
  860. package/src/mcp/index.ts +0 -6
  861. package/src/mcp/mcp-server-v2.ts +0 -485
  862. package/src/mcp/tools/done-v2.ts +0 -213
  863. package/src/mcp/types.ts +0 -432
  864. package/src/metrics/__tests__/metrics.test.ts +0 -205
  865. package/src/metrics/index.ts +0 -13
  866. package/src/metrics/metrics.ts +0 -151
  867. package/src/metrics/types.ts +0 -63
  868. package/src/roles/__tests__/config-loader.test.ts +0 -540
  869. package/src/roles/builtin/coordinator.ts +0 -75
  870. package/src/roles/builtin/generic.ts +0 -39
  871. package/src/roles/builtin/index.ts +0 -51
  872. package/src/roles/builtin/integrator.ts +0 -62
  873. package/src/roles/builtin/monitor.ts +0 -65
  874. package/src/roles/builtin/worker.ts +0 -134
  875. package/src/roles/capabilities.ts +0 -257
  876. package/src/roles/config-loader.ts +0 -405
  877. package/src/roles/index.ts +0 -141
  878. package/src/roles/registry.ts +0 -713
  879. package/src/roles/types.ts +0 -344
  880. package/src/store/index.ts +0 -8
  881. package/src/store/types/agents.ts +0 -69
  882. package/src/store/types/events.ts +0 -91
  883. package/src/store/types/index.ts +0 -9
  884. package/src/store/types/messages.ts +0 -32
  885. package/src/store/types/primitives.ts +0 -9
  886. package/src/store/types/tasks.ts +0 -124
  887. package/src/teams/__tests__/team-manager-v2.test.ts +0 -425
  888. package/src/teams/__tests__/team-runtime-v2.test.ts +0 -402
  889. package/src/teams/index.ts +0 -29
  890. package/src/teams/seed-defaults.ts +0 -83
  891. package/src/teams/team-loader.ts +0 -476
  892. package/src/teams/team-manager-v2.ts +0 -343
  893. package/src/teams/team-runtime-v2.ts +0 -920
  894. package/src/teams/types.ts +0 -276
  895. package/src/trigger/__tests__/cron-service.test.ts +0 -548
  896. package/src/trigger/__tests__/scheduler.test.ts +0 -371
  897. package/src/trigger/__tests__/system-event-queue.test.ts +0 -147
  898. package/src/trigger/__tests__/trigger-system-v2.test.ts +0 -257
  899. package/src/trigger/__tests__/wake-manager.test.ts +0 -356
  900. package/src/trigger/__tests__/webhook-handler.test.ts +0 -567
  901. package/src/trigger/index.ts +0 -110
  902. package/src/trigger/queue/index.ts +0 -21
  903. package/src/trigger/queue/system-event-queue.ts +0 -232
  904. package/src/trigger/queue/types.ts +0 -149
  905. package/src/trigger/sources/cron/cron-service.ts +0 -499
  906. package/src/trigger/sources/cron/index.ts +0 -41
  907. package/src/trigger/sources/cron/scheduler.ts +0 -344
  908. package/src/trigger/sources/cron/types.ts +0 -333
  909. package/src/trigger/sources/index.ts +0 -10
  910. package/src/trigger/sources/webhook/index.ts +0 -25
  911. package/src/trigger/sources/webhook/types.ts +0 -205
  912. package/src/trigger/sources/webhook/webhook-handler.ts +0 -410
  913. package/src/trigger/strategies/ai-router.ts +0 -170
  914. package/src/trigger/trigger-system-v2.ts +0 -536
  915. package/src/trigger/types.ts +0 -228
  916. package/src/trigger/wake/index.ts +0 -22
  917. package/src/trigger/wake/types.ts +0 -162
  918. package/src/trigger/wake/wake-manager.ts +0 -390
  919. package/src/workspace/__tests__/git-cascade-adapter.test.ts +0 -563
  920. package/src/workspace/__tests__/land-dispatch.test.ts +0 -214
  921. package/src/workspace/__tests__/self-driving-yaml.test.ts +0 -122
  922. package/src/workspace/__tests__/shared-worktree-refcount.test.ts +0 -154
  923. package/src/workspace/__tests__/standalone-mode.test.ts +0 -118
  924. package/src/workspace/__tests__/workspace-manager-v3.test.ts +0 -245
  925. package/src/workspace/__tests__/yaml-schema.test.ts +0 -210
  926. package/src/workspace/config.ts +0 -165
  927. package/src/workspace/git-cascade-adapter.ts +0 -1213
  928. package/src/workspace/index.ts +0 -110
  929. package/src/workspace/landing/__tests__/strategies.test.ts +0 -184
  930. package/src/workspace/landing/direct-push.ts +0 -91
  931. package/src/workspace/landing/index.ts +0 -40
  932. package/src/workspace/landing/merge-to-parent.ts +0 -229
  933. package/src/workspace/landing/optimistic-push.ts +0 -36
  934. package/src/workspace/landing/queue-to-branch.ts +0 -108
  935. package/src/workspace/merge-queue/__tests__/conflict-resolution-git.e2e.test.ts +0 -641
  936. package/src/workspace/merge-queue/__tests__/conflict-resolution.test.ts +0 -707
  937. package/src/workspace/merge-queue/__tests__/merge-queue-concurrent.test.ts +0 -628
  938. package/src/workspace/merge-queue/__tests__/merge-queue-edge-cases.test.ts +0 -1217
  939. package/src/workspace/merge-queue/__tests__/merge-queue.test.ts +0 -506
  940. package/src/workspace/merge-queue/__tests__/real-git-operations.e2e.test.ts +0 -556
  941. package/src/workspace/merge-queue/__tests__/resolver-flow.test.ts +0 -472
  942. package/src/workspace/merge-queue/index.ts +0 -38
  943. package/src/workspace/merge-queue/merge-queue.ts +0 -585
  944. package/src/workspace/merge-queue/schema.ts +0 -98
  945. package/src/workspace/merge-queue/types.ts +0 -316
  946. package/src/workspace/pool/__tests__/worktree-pool.integration.test.ts +0 -1281
  947. package/src/workspace/pool/__tests__/worktree-pool.test.ts +0 -590
  948. package/src/workspace/pool/index.ts +0 -26
  949. package/src/workspace/pool/types.ts +0 -276
  950. package/src/workspace/pool/worktree-pool.ts +0 -659
  951. package/src/workspace/recovery/__tests__/auto-resolve-integration.test.ts +0 -127
  952. package/src/workspace/recovery/__tests__/spawn-resolver.test.ts +0 -139
  953. package/src/workspace/recovery/__tests__/strategies.test.ts +0 -145
  954. package/src/workspace/recovery/abandon.ts +0 -51
  955. package/src/workspace/recovery/auto-resolve.ts +0 -119
  956. package/src/workspace/recovery/defer.ts +0 -23
  957. package/src/workspace/recovery/escalate.ts +0 -30
  958. package/src/workspace/recovery/index.ts +0 -58
  959. package/src/workspace/recovery/spawn-resolver.ts +0 -152
  960. package/src/workspace/recovery/types.ts +0 -54
  961. package/src/workspace/strategies/index.ts +0 -18
  962. package/src/workspace/strategies/optimistic.ts +0 -139
  963. package/src/workspace/strategies/queue.ts +0 -81
  964. package/src/workspace/strategies/registry.ts +0 -89
  965. package/src/workspace/strategies/trunk.ts +0 -123
  966. package/src/workspace/strategies/types.ts +0 -145
  967. package/src/workspace/topology/__tests__/yaml-driven.test.ts +0 -345
  968. package/src/workspace/topology/index.ts +0 -18
  969. package/src/workspace/topology/no-workspace.ts +0 -39
  970. package/src/workspace/topology/types.ts +0 -116
  971. package/src/workspace/topology/yaml-driven.ts +0 -316
  972. package/src/workspace/types-v3.ts +0 -162
  973. package/src/workspace/types.ts +0 -541
  974. package/src/workspace/workspace-manager.ts +0 -1577
  975. package/src/workspace/yaml-schema.ts +0 -216
  976. package/test_fixtures/README.md +0 -425
  977. package/test_fixtures/fixtures/behaviors/coordinators.ts +0 -196
  978. package/test_fixtures/fixtures/behaviors/index.ts +0 -62
  979. package/test_fixtures/fixtures/behaviors/integrators.ts +0 -143
  980. package/test_fixtures/fixtures/behaviors/monitors.ts +0 -199
  981. package/test_fixtures/fixtures/behaviors/workers.ts +0 -348
  982. package/test_fixtures/fixtures/index.ts +0 -7
  983. package/test_fixtures/fixtures/projects/index.ts +0 -23
  984. package/test_fixtures/fixtures/projects/project-with-specs.ts +0 -44
  985. package/test_fixtures/fixtures/projects/typescript-project.ts +0 -200
  986. package/test_fixtures/fixtures/repos/index.ts +0 -6
  987. package/test_fixtures/fixtures/repos/temp-repo-factory.ts +0 -299
  988. package/test_fixtures/fixtures/repos/types.ts +0 -174
  989. package/test_fixtures/harness/assertions/harness-assertions.ts +0 -752
  990. package/test_fixtures/harness/assertions/index.ts +0 -8
  991. package/test_fixtures/harness/index.ts +0 -15
  992. package/test_fixtures/harness/simulator/agent-simulator.ts +0 -768
  993. package/test_fixtures/harness/simulator/behavior-executor.ts +0 -580
  994. package/test_fixtures/harness/simulator/index.ts +0 -14
  995. package/test_fixtures/harness/simulator/types.ts +0 -459
  996. package/test_fixtures/harness/test-harness.ts +0 -770
  997. package/test_fixtures/harness/timing/event-stepper.ts +0 -344
  998. package/test_fixtures/harness/timing/index.ts +0 -8
  999. package/tsconfig.json +0 -21
  1000. package/vitest.config.ts +0 -30
  1001. package/vitest.e2e.config.ts +0 -28
  1002. package/vitest.setup.ts +0 -12
@@ -1,1213 +0,0 @@
1
- /**
2
- * git-cascade Adapter
3
- *
4
- * Wraps git-cascade's MultiAgentRepoTracker to integrate with macro-agent's
5
- * event system and provide a simplified interface for workspace management.
6
- *
7
- * @module workspace/git-cascade-adapter
8
- */
9
-
10
- import Database from 'better-sqlite3';
11
- import {
12
- MultiAgentRepoTracker,
13
- type TrackerOptions,
14
- type Stream,
15
- type StreamStatus,
16
- type StreamNode,
17
- type CreateStreamOptions,
18
- type ForkStreamOptions,
19
- type MergeStreamOptions,
20
- type MergeResult,
21
- type RebaseOntoStreamOptions,
22
- type RebaseResult,
23
- type ConflictStrategy,
24
- type ConflictRecord,
25
- type CreateConflictOptions,
26
- type AgentWorktree,
27
- type CreateWorktreeOptions,
28
- type WorkerTask,
29
- type CreateTaskOptions,
30
- type StartTaskOptions,
31
- type CompleteTaskOptions,
32
- type StartTaskResult,
33
- type CompleteTaskResult,
34
- type ListTasksOptions,
35
- type CleanupWorkerBranchesOptions,
36
- type CleanupResult,
37
- type Checkpoint,
38
- type Change,
39
- type ChangeStatus,
40
- workerTasks,
41
- diffStacks,
42
- mergeQueue as mergeQueueModule,
43
- reconcile as reconcileModule,
44
- cascade as cascadeModule,
45
- matchCascadeSuffix,
46
- type StreamOpenedParams,
47
- type StreamCommittedParams,
48
- type StreamMergedParams,
49
- type StreamConflictedParams,
50
- type StreamAbandonedParams,
51
- type CascadeRebasedParams,
52
- type CascadeCompletedParams,
53
- type QueueAddedParams,
54
- type QueueReadyParams,
55
- type QueueCancelledParams,
56
- type QueueRemovedParams,
57
- } from 'git-cascade';
58
- // git-cascade 0.0.3+ exposes both events (via `emit` callback) and the
59
- // `cascade` namespace for cascadeRebase. All v3 primitives are now reachable.
60
- import type { GitCascadeConfig } from './config.js';
61
- import { DEFAULT_GIT_CASCADE_CONFIG } from './config.js';
62
-
63
- /**
64
- * Event types emitted by GitCascadeAdapter.
65
- *
66
- * Grouped by source:
67
- * - `stream:*` — from git-cascade `x-cascade/stream.*` events + local emits
68
- * - `worktree:*`, `task:*` — local emits (macro-agent-only concepts)
69
- * - `change:*` — change-id lifecycle from git-cascade
70
- * - `cascade:*` — cascadeRebase completion
71
- * - `conflict:*` — conflict lifecycle
72
- * - `mergeQueue:*` — built-in merge queue lifecycle
73
- */
74
- export type GitCascadeEventType =
75
- | 'stream:created' // mapped from git-cascade stream.opened
76
- | 'stream:updated' // local (updateStream)
77
- | 'stream:forked' // local (forkStream)
78
- | 'stream:committed' // mapped from git-cascade stream.committed
79
- | 'stream:merged' // mapped from git-cascade stream.merged
80
- | 'stream:conflicted' // mapped from git-cascade stream.conflicted
81
- | 'stream:abandoned' // mapped from git-cascade stream.abandoned
82
- | 'stream:paused' // local (pauseStream) + cascade emit
83
- | 'stream:resumed' // local (resumeStream) + cascade emit
84
- | 'stream:rolled_back' // cascade emit (rollbackN, rollbackToOperation, rollbackToForkPoint)
85
- | 'worktree:created'
86
- | 'worktree:deallocated'
87
- | 'task:created'
88
- | 'task:started'
89
- | 'task:completed'
90
- | 'task:abandoned'
91
- | 'change:merged'
92
- | 'change:dropped'
93
- | 'stream:pushed' // local — emitted by direct-push/optimistic-push landing strategies
94
- | 'cascade:rebased' // mapped from git-cascade cascade.rebased
95
- | 'cascade:completed' // mapped from git-cascade cascade.completed
96
- | 'conflict:created'
97
- | 'conflict:resolved'
98
- | 'mergeQueue:added'
99
- | 'mergeQueue:ready'
100
- | 'mergeQueue:cancelled'
101
- | 'mergeQueue:removed';
102
-
103
- /**
104
- * Event payload for git-cascade events
105
- */
106
- export interface GitCascadeEvent {
107
- type: GitCascadeEventType;
108
- timestamp: number;
109
- data: Record<string, unknown>;
110
- }
111
-
112
- /**
113
- * Callback for git-cascade events
114
- */
115
- export type GitCascadeEventCallback = (event: GitCascadeEvent) => void;
116
-
117
- /**
118
- * GitCascadeAdapter wraps MultiAgentRepoTracker for macro-agent integration.
119
- *
120
- * Key responsibilities:
121
- * - Initialize tracker with shared or dedicated database
122
- * - Emit events on tracker operations
123
- * - Provide simplified API for workspace management
124
- */
125
- export class GitCascadeAdapter {
126
- private readonly tracker: MultiAgentRepoTracker;
127
- private readonly config: Required<
128
- Pick<GitCascadeConfig, 'enabled' | 'tablePrefix' | 'verbose' | 'skipRecovery'>
129
- > & { repoPath: string };
130
- private readonly eventListeners: Set<GitCascadeEventCallback> = new Set();
131
- private readonly ownsDb: boolean;
132
-
133
- /**
134
- * Create a new GitCascadeAdapter.
135
- *
136
- * @param config - git-cascade configuration
137
- */
138
- constructor(config: GitCascadeConfig) {
139
- const mergedConfig = {
140
- ...DEFAULT_GIT_CASCADE_CONFIG,
141
- ...config,
142
- repoPath: config.repoPath ?? process.cwd(),
143
- };
144
-
145
- this.config = {
146
- enabled: mergedConfig.enabled ?? true,
147
- repoPath: mergedConfig.repoPath,
148
- tablePrefix: mergedConfig.tablePrefix ?? 'git_cascade_',
149
- verbose: mergedConfig.verbose ?? false,
150
- skipRecovery: mergedConfig.skipRecovery ?? false,
151
- };
152
-
153
- // Determine if we own the database connection
154
- this.ownsDb = !config.db;
155
-
156
- const trackerOptions: TrackerOptions = {
157
- repoPath: this.config.repoPath,
158
- tablePrefix: this.config.tablePrefix,
159
- verbose: this.config.verbose,
160
- skipRecovery: this.config.skipRecovery,
161
- // Wire git-cascade's native event emitter (0.0.2+) so stream lifecycle
162
- // events are re-published through our own onEvent channel.
163
- emit: (method: string, params: unknown) => this.forwardCascadeEvent(method, params),
164
- };
165
-
166
- if (config.db) {
167
- trackerOptions.db = config.db;
168
- } else if (config.dbPath) {
169
- trackerOptions.dbPath = config.dbPath;
170
- }
171
- // If neither db nor dbPath provided, tracker uses default path
172
-
173
- this.tracker = new MultiAgentRepoTracker(trackerOptions);
174
- }
175
-
176
-
177
- /**
178
- * Get whether the adapter is enabled.
179
- */
180
- get enabled(): boolean {
181
- return this.config.enabled;
182
- }
183
-
184
- /**
185
- * Get the repository path.
186
- */
187
- get repoPath(): string {
188
- return this.config.repoPath;
189
- }
190
-
191
- /**
192
- * Get the underlying database connection.
193
- * Use with caution - prefer adapter methods for operations.
194
- */
195
- get db(): Database.Database {
196
- return this.tracker.db;
197
- }
198
-
199
- /**
200
- * Get the underlying tracker.
201
- * Use with caution - prefer adapter methods for operations.
202
- */
203
- get rawTracker(): MultiAgentRepoTracker {
204
- return this.tracker;
205
- }
206
-
207
- // ─────────────────────────────────────────────────────────────────────────────
208
- // Event System
209
- // ─────────────────────────────────────────────────────────────────────────────
210
-
211
- /**
212
- * Subscribe to git-cascade events.
213
- *
214
- * @param callback - Function called when events occur
215
- * @returns Unsubscribe function
216
- */
217
- onEvent(callback: GitCascadeEventCallback): () => void {
218
- this.eventListeners.add(callback);
219
- return () => this.eventListeners.delete(callback);
220
- }
221
-
222
- /**
223
- * Emit an event to all listeners.
224
- */
225
- private emit(type: GitCascadeEventType, data: Record<string, unknown>): void {
226
- const event: GitCascadeEvent = {
227
- type,
228
- timestamp: Date.now(),
229
- data,
230
- };
231
- for (const listener of this.eventListeners) {
232
- try {
233
- listener(event);
234
- } catch (error) {
235
- console.error('[GitCascadeAdapter] Event listener error:', error);
236
- }
237
- }
238
- }
239
-
240
- /**
241
- * Forward events emitted by git-cascade (`x-cascade/stream.*`) into our
242
- * structured `GitCascadeEvent` stream. Called via the `emit` callback wired
243
- * into the tracker constructor.
244
- *
245
- * Note: `stream.opened` is mapped to `stream:created`. The local
246
- * wrapper methods still emit their own events so consumers don't miss out
247
- * on operations that don't round-trip through git-cascade's emit (e.g.,
248
- * updateStream, pauseStream, mergeQueue events).
249
- */
250
- private forwardCascadeEvent(method: string, params: unknown): void {
251
- const suffix = matchCascadeSuffix(method);
252
- if (!suffix) return;
253
-
254
- // Widen to `string` so case labels for suffixes not yet in the installed
255
- // git-cascade version (e.g. `stream.paused`, `stream.resumed`,
256
- // `stream.rolled_back` — added after 0.0.7) still compile. The runtime
257
- // value is always a string either way; this is a version-skew shim.
258
- switch (suffix as string) {
259
- case 'stream.opened': {
260
- const p = params as StreamOpenedParams;
261
- this.emit('stream:created', {
262
- streamId: p.stream_id,
263
- name: p.name,
264
- agentId: p.agent_id,
265
- baseCommit: p.base_commit,
266
- parentStream: p.parent_stream,
267
- branchName: p.branch_name,
268
- metadata: p.metadata,
269
- });
270
- break;
271
- }
272
- case 'stream.committed': {
273
- const p = params as StreamCommittedParams;
274
- this.emit('stream:committed', {
275
- streamId: p.stream_id,
276
- commit: p.commit_hash,
277
- changeId: p.change_id,
278
- agentId: p.agent_id,
279
- messageSummary: p.message_summary,
280
- filesTouched: p.files_touched,
281
- parentCommit: p.parent_commit,
282
- metadata: p.metadata,
283
- });
284
- break;
285
- }
286
- case 'stream.merged': {
287
- const p = params as StreamMergedParams;
288
- this.emit('stream:merged', {
289
- sourceStreamId: p.source_stream_id,
290
- targetStreamId: p.target_stream_id,
291
- mergeCommit: p.merge_commit,
292
- agentId: p.agent_id,
293
- strategy: p.strategy,
294
- sourceCommit: p.source_commit,
295
- metadata: p.metadata,
296
- });
297
- break;
298
- }
299
- case 'stream.conflicted': {
300
- const p = params as StreamConflictedParams;
301
- this.emit('stream:conflicted', {
302
- streamId: p.stream_id,
303
- conflictId: p.conflict_id,
304
- conflictedFiles: p.conflicted_files,
305
- agentId: p.agent_id,
306
- conflictingCommit: p.conflicting_commit,
307
- targetCommit: p.target_commit,
308
- source: p.source,
309
- metadata: p.metadata,
310
- });
311
- break;
312
- }
313
- case 'stream.conflict_resolved': {
314
- const p = params as import('git-cascade').StreamConflictResolvedParams;
315
- this.emit('conflict:resolved', {
316
- streamId: p.stream_id,
317
- conflictId: p.conflict_id,
318
- resolutionMethod: p.resolution_method,
319
- resolvedBy: p.resolved_by,
320
- resolutionSummary: p.resolution_summary,
321
- metadata: p.metadata,
322
- });
323
- break;
324
- }
325
- case 'stream.abandoned': {
326
- const p = params as StreamAbandonedParams;
327
- this.emit('stream:abandoned', {
328
- streamId: p.stream_id,
329
- reason: p.reason,
330
- cascade: p.cascade,
331
- metadata: p.metadata,
332
- });
333
- break;
334
- }
335
- case 'cascade.rebased': {
336
- const p = params as CascadeRebasedParams;
337
- this.emit('cascade:rebased', {
338
- streamId: p.stream_id,
339
- agentId: p.agent_id,
340
- triggeredByStreamId: p.triggered_by_stream_id,
341
- triggeredByAgentId: p.triggered_by_agent_id,
342
- newBaseCommit: p.new_base_commit,
343
- newHead: p.new_head,
344
- newCommits: p.new_commits,
345
- metadata: p.metadata,
346
- });
347
- break;
348
- }
349
- case 'cascade.completed': {
350
- const p = params as CascadeCompletedParams;
351
- this.emit('cascade:completed', {
352
- rootStreamId: p.root_stream_id,
353
- agentId: p.agent_id,
354
- strategy: p.strategy,
355
- updatedStreams: p.updated_streams,
356
- failedStreams: p.failed_streams,
357
- skippedStreams: p.skipped_streams,
358
- deferredStreams: p.deferred_streams,
359
- metadata: p.metadata,
360
- });
361
- break;
362
- }
363
- case 'queue.added': {
364
- const p = params as QueueAddedParams;
365
- this.emit('mergeQueue:added', {
366
- entryId: p.entry_id,
367
- streamId: p.stream_id,
368
- targetBranch: p.target_branch,
369
- metadata: p.metadata,
370
- });
371
- break;
372
- }
373
- case 'queue.ready': {
374
- const p = params as QueueReadyParams;
375
- this.emit('mergeQueue:ready', {
376
- entryId: p.entry_id,
377
- streamId: p.stream_id,
378
- targetBranch: p.target_branch,
379
- });
380
- break;
381
- }
382
- case 'queue.cancelled': {
383
- const p = params as QueueCancelledParams;
384
- this.emit('mergeQueue:cancelled', {
385
- entryId: p.entry_id,
386
- streamId: p.stream_id,
387
- targetBranch: p.target_branch,
388
- reason: p.reason,
389
- });
390
- break;
391
- }
392
- case 'queue.removed': {
393
- const p = params as QueueRemovedParams;
394
- this.emit('mergeQueue:removed', {
395
- entryId: p.entry_id,
396
- streamId: p.stream_id,
397
- targetBranch: p.target_branch,
398
- outcome: p.outcome,
399
- });
400
- break;
401
- }
402
- case 'stream.paused': {
403
- // Tracker fires stream.paused after pauseStream. The adapter also
404
- // emits stream:paused locally in its pauseStream() wrapper — the
405
- // bridge uses the local event (not this cascade-forwarded one) for
406
- // the MAP translation, so this case is mainly to keep the switch
407
- // exhaustive. No double-emit: the bridge deduplicates by event type.
408
- break;
409
- }
410
- case 'stream.resumed': {
411
- // Same as stream.paused — adapter.resumeStream() fires the local event.
412
- break;
413
- }
414
- case 'stream.rolled_back': {
415
- const p = params as { stream_id: string; strategy?: string; target?: string | number; new_head?: string };
416
- this.emit('stream:rolled_back', {
417
- streamId: p.stream_id,
418
- strategy: p.strategy,
419
- target: p.target,
420
- newHead: p.new_head,
421
- });
422
- break;
423
- }
424
- }
425
- }
426
-
427
- // ─────────────────────────────────────────────────────────────────────────────
428
- // Stream Operations
429
- // ─────────────────────────────────────────────────────────────────────────────
430
-
431
- /**
432
- * Create a new stream (integration branch).
433
- *
434
- * Note: `stream:created` is emitted by the cascade event forwarder via
435
- * git-cascade's `x-cascade/stream.opened`. We don't double-emit here.
436
- *
437
- * @param options - Stream creation options
438
- * @returns Stream ID
439
- */
440
- createStream(options: CreateStreamOptions): string {
441
- return this.tracker.createStream(options);
442
- }
443
-
444
- /**
445
- * Get a stream by ID.
446
- */
447
- getStream(streamId: string): Stream | null {
448
- return this.tracker.getStream(streamId);
449
- }
450
-
451
- /**
452
- * List streams with optional filters.
453
- */
454
- listStreams(options?: { agentId?: string; status?: StreamStatus }): Stream[] {
455
- return this.tracker.listStreams(options);
456
- }
457
-
458
- /**
459
- * Update a stream.
460
- */
461
- updateStream(
462
- streamId: string,
463
- updates: Partial<Pick<Stream, 'name' | 'status' | 'metadata'>>
464
- ): void {
465
- this.tracker.updateStream(streamId, updates);
466
- this.emit('stream:updated', { streamId, updates });
467
- }
468
-
469
- /**
470
- * Abandon a stream.
471
- *
472
- * Note: `stream:abandoned` is emitted by the cascade event forwarder.
473
- */
474
- abandonStream(
475
- streamId: string,
476
- options?: { reason?: string; cascade?: boolean }
477
- ): void {
478
- this.tracker.abandonStream(streamId, options);
479
- }
480
-
481
- /**
482
- * Get the git branch name for a stream.
483
- */
484
- getStreamBranchName(streamId: string): string {
485
- return this.tracker.getStreamBranchName(streamId);
486
- }
487
-
488
- /**
489
- * Get the HEAD commit of a stream.
490
- */
491
- getStreamHead(streamId: string): string {
492
- return this.tracker.getStreamHead(streamId);
493
- }
494
-
495
- /**
496
- * Fork a child stream off a parent.
497
- */
498
- forkStream(options: ForkStreamOptions): string {
499
- const streamId = this.tracker.forkStream(options);
500
- this.emit('stream:forked', {
501
- streamId,
502
- parentStreamId: options.parentStreamId,
503
- name: options.name,
504
- agentId: options.agentId,
505
- });
506
- return streamId;
507
- }
508
-
509
- /**
510
- * Merge source stream into target stream.
511
- *
512
- * Note: `stream:merged` is emitted by the cascade event forwarder on success.
513
- * On conflict, `stream:conflicted` is also forwarded.
514
- */
515
- mergeStream(options: MergeStreamOptions): MergeResult {
516
- return this.tracker.mergeStream(options);
517
- }
518
-
519
- /**
520
- * Rebase a stream onto its parent to pick up new commits.
521
- */
522
- syncWithParent(
523
- streamId: string,
524
- agentId: string,
525
- worktree: string,
526
- onConflict?: ConflictStrategy
527
- ): RebaseResult {
528
- return this.tracker.syncWithParent(streamId, agentId, worktree, onConflict);
529
- }
530
-
531
- /**
532
- * Rebase a stream onto a specific target stream.
533
- */
534
- rebaseOntoStream(options: RebaseOntoStreamOptions): RebaseResult {
535
- return this.tracker.rebaseOntoStream(options);
536
- }
537
-
538
- /**
539
- * Async version of rebaseOntoStream — supports async conflict handlers.
540
- */
541
- rebaseOntoStreamAsync(options: RebaseOntoStreamOptions): Promise<RebaseResult> {
542
- return this.tracker.rebaseOntoStreamAsync(options);
543
- }
544
-
545
- /**
546
- * Pause a stream (halt work without abandoning).
547
- */
548
- pauseStream(streamId: string, reason?: string): void {
549
- this.tracker.pauseStream(streamId, reason);
550
- this.emit('stream:paused', { streamId, reason });
551
- }
552
-
553
- /**
554
- * Resume a paused stream.
555
- */
556
- resumeStream(streamId: string): void {
557
- this.tracker.resumeStream(streamId);
558
- this.emit('stream:resumed', { streamId });
559
- }
560
-
561
- /**
562
- * Track an existing branch as a stream (local mode — no new `stream/<id>` branch).
563
- */
564
- trackExistingBranch(options: Parameters<MultiAgentRepoTracker['trackExistingBranch']>[0]): string {
565
- return this.tracker.trackExistingBranch(options);
566
- }
567
-
568
- /**
569
- * Get stream hierarchy as a tree.
570
- */
571
- getStreamHierarchy(rootStreamId?: string): StreamNode | StreamNode[] {
572
- return this.tracker.getStreamHierarchy(rootStreamId);
573
- }
574
-
575
- /**
576
- * Get child streams (direct children only).
577
- */
578
- getChildStreams(streamId: string): Stream[] {
579
- return this.tracker.getChildStreams(streamId);
580
- }
581
-
582
- /**
583
- * Find the common ancestor of two streams.
584
- */
585
- findCommonAncestor(streamIdA: string, streamIdB: string): string {
586
- return this.tracker.findCommonAncestor(streamIdA, streamIdB);
587
- }
588
-
589
- // ─────────────────────────────────────────────────────────────────────────────
590
- // Stream Dependencies
591
- // ─────────────────────────────────────────────────────────────────────────────
592
-
593
- /**
594
- * Declare that one stream depends on another.
595
- */
596
- addDependency(streamId: string, dependsOnId: string): void {
597
- this.tracker.addDependency(streamId, dependsOnId);
598
- }
599
-
600
- /**
601
- * Remove a dependency declaration.
602
- */
603
- removeDependency(streamId: string, dependsOnId: string): void {
604
- this.tracker.removeDependency(streamId, dependsOnId);
605
- }
606
-
607
- /**
608
- * Get direct dependencies of a stream.
609
- */
610
- getDependencies(streamId: string): string[] {
611
- return this.tracker.getDependencies(streamId);
612
- }
613
-
614
- /**
615
- * Get direct dependents of a stream.
616
- */
617
- getDependents(streamId: string): string[] {
618
- return this.tracker.getDependents(streamId);
619
- }
620
-
621
- // ─────────────────────────────────────────────────────────────────────────────
622
- // Cascade Rebase (git-cascade 0.0.3+)
623
- // ─────────────────────────────────────────────────────────────────────────────
624
-
625
- /**
626
- * Cascade-rebase all dependents of a root stream.
627
- *
628
- * Propagates rebases through the dependency graph. Uses a callback-based
629
- * worktree provider so not every dependent needs a pre-allocated worktree.
630
- *
631
- * @param options - Cascade options including root stream, agent id, and worktree provider
632
- * @returns CascadeResult with updated/failed/skipped stream lists
633
- */
634
- cascadeRebase(
635
- options: cascadeModule.CascadeRebaseOptions
636
- ): ReturnType<typeof cascadeModule.cascadeRebase> {
637
- // Use tracker.cascadeRebase which threads the tracker's emit + eventPrefix
638
- // into the cascade walk so `cascade.rebased` (per dependent) and
639
- // `cascade.completed` (at end) both round-trip through our
640
- // forwardCascadeEvent. No manual emit needed — events are driven by
641
- // git-cascade 0.0.4+ from inside the walk.
642
- return this.tracker.cascadeRebase(options);
643
- }
644
-
645
- // ─────────────────────────────────────────────────────────────────────────────
646
- // Worktree Operations
647
- // ─────────────────────────────────────────────────────────────────────────────
648
-
649
- /**
650
- * Create a worktree for an agent.
651
- *
652
- * @param options - Worktree creation options
653
- * @returns Created worktree info
654
- */
655
- createWorktree(options: CreateWorktreeOptions): AgentWorktree {
656
- const worktree = this.tracker.createWorktree(options);
657
- this.emit('worktree:created', { ...worktree });
658
- return worktree;
659
- }
660
-
661
- /**
662
- * Get a worktree by agent ID.
663
- */
664
- getWorktree(agentId: string): AgentWorktree | null {
665
- return this.tracker.getWorktree(agentId);
666
- }
667
-
668
- /**
669
- * List all worktrees.
670
- */
671
- listWorktrees(): AgentWorktree[] {
672
- return this.tracker.listWorktrees();
673
- }
674
-
675
- /**
676
- * Update the stream associated with a worktree.
677
- */
678
- updateWorktreeStream(agentId: string, streamId: string | null): void {
679
- this.tracker.updateWorktreeStream(agentId, streamId);
680
- }
681
-
682
- /**
683
- * Deallocate a worktree.
684
- */
685
- deallocateWorktree(agentId: string): void {
686
- this.tracker.deallocateWorktree(agentId);
687
- this.emit('worktree:deallocated', { agentId });
688
- }
689
-
690
- // ─────────────────────────────────────────────────────────────────────────────
691
- // Worker Task Operations
692
- // ─────────────────────────────────────────────────────────────────────────────
693
-
694
- /**
695
- * Create a worker task under a stream.
696
- *
697
- * @param options - Task creation options
698
- * @returns Task ID
699
- */
700
- createTask(options: CreateTaskOptions): string {
701
- const taskId = this.tracker.createTask(options);
702
- this.emit('task:created', { taskId, ...options });
703
- return taskId;
704
- }
705
-
706
- /**
707
- * Get a task by ID.
708
- */
709
- getTask(taskId: string): WorkerTask | null {
710
- return this.tracker.getTask(taskId);
711
- }
712
-
713
- /**
714
- * List tasks for a stream.
715
- */
716
- listTasks(streamId: string, options?: ListTasksOptions): WorkerTask[] {
717
- return this.tracker.listTasks(streamId, options);
718
- }
719
-
720
- /**
721
- * Start a task - assigns agent and creates worker branch.
722
- *
723
- * @param options - Start task options
724
- * @returns Branch name and start commit
725
- */
726
- startTask(options: StartTaskOptions): StartTaskResult {
727
- const result = this.tracker.startTask(options);
728
- this.emit('task:started', {
729
- taskId: options.taskId,
730
- agentId: options.agentId,
731
- branchName: result.branchName,
732
- startCommit: result.startCommit,
733
- });
734
- return result;
735
- }
736
-
737
- /**
738
- * Complete a task - merges worker branch to stream.
739
- *
740
- * @param options - Complete task options
741
- * @returns Merge result
742
- */
743
- completeTask(options: CompleteTaskOptions): CompleteTaskResult {
744
- const result = this.tracker.completeTask(options);
745
- this.emit('task:completed', { taskId: options.taskId, ...result });
746
- return result;
747
- }
748
-
749
- /**
750
- * Abandon a task.
751
- *
752
- * @param taskId - Task ID
753
- * @param options - Options
754
- */
755
- abandonTask(taskId: string, options?: { deleteBranch?: boolean }): void {
756
- this.tracker.abandonTask(taskId, options);
757
- this.emit('task:abandoned', { taskId, ...options });
758
- }
759
-
760
- /**
761
- * Release a task back to 'open' status.
762
- */
763
- releaseTask(taskId: string): void {
764
- this.tracker.releaseTask(taskId);
765
- }
766
-
767
- /**
768
- * Detect conflicts for a task before completing.
769
- *
770
- * @param taskId - Task ID
771
- * @param worktree - Worktree path
772
- * @returns Array of conflicting file paths, empty if no conflicts
773
- */
774
- detectTaskConflicts(taskId: string, worktree: string): string[] {
775
- return workerTasks.detectTaskConflicts(
776
- this.tracker.db,
777
- this.config.repoPath,
778
- taskId,
779
- worktree
780
- );
781
- }
782
-
783
- /**
784
- * Recover stale tasks that have been in_progress too long.
785
- *
786
- * @param thresholdMs - Tasks older than this are considered stale
787
- * @returns Result with released task IDs
788
- */
789
- recoverStaleTasks(thresholdMs: number = 60 * 60 * 1000): { released: string[] } {
790
- return workerTasks.recoverStaleTasks(this.tracker.db, thresholdMs);
791
- }
792
-
793
- // ─────────────────────────────────────────────────────────────────────────────
794
- // Checkpoint Operations
795
- // ─────────────────────────────────────────────────────────────────────────────
796
-
797
- /**
798
- * Create checkpoints for commits made during a task.
799
- *
800
- * Creates a checkpoint for each commit between the task's startCommit and
801
- * the current HEAD of the task's stream. This captures the work done during
802
- * the task for future review and merge workflows.
803
- *
804
- * @param taskId - Task ID to create checkpoints for
805
- * @param agentId - Agent ID (used as createdBy)
806
- * @returns Array of created checkpoints
807
- */
808
- createCheckpointsForTask(taskId: string, agentId: string): Checkpoint[] {
809
- const task = this.getTask(taskId);
810
- if (!task) {
811
- console.warn(`[GitCascadeAdapter] Task not found: ${taskId}`);
812
- return [];
813
- }
814
-
815
- if (!task.streamId) {
816
- console.warn(`[GitCascadeAdapter] Task ${taskId} has no streamId`);
817
- return [];
818
- }
819
-
820
- if (!task.startCommit) {
821
- console.warn(`[GitCascadeAdapter] Task ${taskId} has no startCommit`);
822
- return [];
823
- }
824
-
825
- try {
826
- // Create checkpoints from task's startCommit to stream's current HEAD
827
- const checkpoints = diffStacks.createCheckpointsFromStream(
828
- this.tracker.db,
829
- this.config.repoPath,
830
- task.streamId,
831
- {
832
- from: task.startCommit,
833
- createdBy: agentId,
834
- }
835
- );
836
-
837
- return checkpoints;
838
- } catch (error) {
839
- console.error(
840
- `[GitCascadeAdapter] Failed to create checkpoints for task ${taskId}:`,
841
- error
842
- );
843
- return [];
844
- }
845
- }
846
-
847
- // ─────────────────────────────────────────────────────────────────────────────
848
- // Commit Operations
849
- // ─────────────────────────────────────────────────────────────────────────────
850
-
851
- /**
852
- * Commit changes in a worktree with Change tracking.
853
- *
854
- * @param options - Commit options
855
- * @returns Commit hash and change ID
856
- */
857
- commitChanges(options: {
858
- streamId: string;
859
- agentId: string;
860
- worktree: string;
861
- message: string;
862
- /**
863
- * Optional metadata threaded verbatim to git-cascade's
864
- * `x-cascade/stream.committed` event. Use `{ task_ref: { resource_id,
865
- * node_id } }` to bind this commit to an external task (see
866
- * `SpawnAgentOptions.taskRef`). Each commit can carry a distinct ref —
867
- * useful for workers handling multiple sub-tasks within one session.
868
- */
869
- metadata?: Record<string, unknown>;
870
- }): { commit: string; changeId: string } {
871
- return this.tracker.commitChanges(options);
872
- }
873
-
874
- // ─────────────────────────────────────────────────────────────────────────────
875
- // Maintenance Operations
876
- // ─────────────────────────────────────────────────────────────────────────────
877
-
878
- /**
879
- * Clean up old worker branches.
880
- *
881
- * Deletes branches for:
882
- * - Completed tasks older than threshold (default 24h)
883
- * - Abandoned tasks
884
- * - Orphaned branches (no task record)
885
- *
886
- * @param options - Cleanup options
887
- * @returns Deleted branches and any errors
888
- */
889
- cleanupWorkerBranches(options?: CleanupWorkerBranchesOptions): CleanupResult {
890
- return workerTasks.cleanupWorkerBranches(
891
- this.tracker.db,
892
- this.config.repoPath,
893
- options
894
- );
895
- }
896
-
897
- /**
898
- * Delete a specific worker branch.
899
- *
900
- * @param branchName - Branch name to delete
901
- * @returns true if deleted, false if branch didn't exist
902
- */
903
- deleteWorkerBranch(branchName: string): boolean {
904
- try {
905
- const { execSync } = require('child_process');
906
- execSync(`git branch -D "${branchName}"`, {
907
- cwd: this.config.repoPath,
908
- stdio: 'pipe',
909
- });
910
- return true;
911
- } catch {
912
- return false;
913
- }
914
- }
915
-
916
- // ─────────────────────────────────────────────────────────────────────────────
917
- // Change Operations (Change-Id tracking)
918
- // ─────────────────────────────────────────────────────────────────────────────
919
-
920
- /**
921
- * Get a change by ID.
922
- */
923
- getChange(changeId: string): Change | null {
924
- return this.tracker.getChange(changeId);
925
- }
926
-
927
- /**
928
- * Get a change by its current commit hash.
929
- */
930
- getChangeByCommit(commit: string): Change | null {
931
- return this.tracker.getChangeByCommit(commit);
932
- }
933
-
934
- /**
935
- * Get a change by any of its historical commit hashes (survives rebases).
936
- */
937
- getChangeByHistoricalCommit(commit: string): Change | null {
938
- return this.tracker.getChangeByHistoricalCommit(commit);
939
- }
940
-
941
- /**
942
- * List changes for a stream, optionally filtered by status.
943
- */
944
- getChangesForStream(
945
- streamId: string,
946
- options?: { status?: ChangeStatus }
947
- ): Change[] {
948
- return this.tracker.getChangesForStream(streamId, options);
949
- }
950
-
951
- /**
952
- * Mark changes as merged.
953
- */
954
- markChangesMerged(changeIds: string[]): void {
955
- this.tracker.markChangesMerged(changeIds);
956
- for (const id of changeIds) {
957
- this.emit('change:merged', { changeId: id });
958
- }
959
- }
960
-
961
- /**
962
- * Mark a single change as dropped.
963
- */
964
- markChangeDropped(changeId: string): void {
965
- this.tracker.markChangeDropped(changeId);
966
- this.emit('change:dropped', { changeId });
967
- }
968
-
969
- // ─────────────────────────────────────────────────────────────────────────────
970
- // Merge Queue (git-cascade built-in)
971
- // ─────────────────────────────────────────────────────────────────────────────
972
-
973
- /**
974
- * Add a stream to the merge queue. Local `mergeQueue:added` event fires
975
- * via forwardCascadeEvent (git-cascade 0.0.7+ emits queue.added natively).
976
- */
977
- addToMergeQueue(options: mergeQueueModule.AddToQueueOptions): string {
978
- return this.tracker.addToMergeQueue(options);
979
- }
980
-
981
- /**
982
- * Get a merge queue entry by id.
983
- */
984
- getMergeQueueEntry(entryId: string): mergeQueueModule.MergeQueueEntry | null {
985
- return this.tracker.getMergeQueueEntry(entryId);
986
- }
987
-
988
- /**
989
- * List merge queue entries with optional filters.
990
- */
991
- listMergeQueue(
992
- options?: {
993
- targetBranch?: string;
994
- status?: mergeQueueModule.MergeQueueStatus | mergeQueueModule.MergeQueueStatus[];
995
- }
996
- ): mergeQueueModule.MergeQueueEntry[] {
997
- return this.tracker.getMergeQueue(options);
998
- }
999
-
1000
- /**
1001
- * Mark a queue entry as ready to merge. Local `mergeQueue:ready` event
1002
- * fires via forwardCascadeEvent (git-cascade 0.0.7+).
1003
- */
1004
- markMergeQueueReady(entryId: string): void {
1005
- this.tracker.markMergeQueueReady(entryId);
1006
- }
1007
-
1008
- /**
1009
- * Cancel a queue entry. Local `mergeQueue:cancelled` event fires via
1010
- * forwardCascadeEvent (git-cascade 0.0.7+).
1011
- */
1012
- cancelMergeQueueEntry(entryId: string): void {
1013
- this.tracker.cancelMergeQueueEntry(entryId);
1014
- }
1015
-
1016
- /**
1017
- * Remove a queue entry. Local `mergeQueue:removed` event fires via
1018
- * forwardCascadeEvent (git-cascade 0.0.7+).
1019
- */
1020
- removeFromMergeQueue(entryId: string): void {
1021
- this.tracker.removeFromMergeQueue(entryId);
1022
- }
1023
-
1024
- /**
1025
- * Get the next entry to process for a target branch.
1026
- */
1027
- getNextToMerge(targetBranch?: string): mergeQueueModule.MergeQueueEntry | null {
1028
- return this.tracker.getNextToMerge(targetBranch);
1029
- }
1030
-
1031
- /**
1032
- * Process the merge queue — drains ready entries per provided handler.
1033
- */
1034
- processMergeQueue(
1035
- options: mergeQueueModule.ProcessQueueOptions
1036
- ): mergeQueueModule.ProcessQueueResult {
1037
- return this.tracker.processMergeQueue(options);
1038
- }
1039
-
1040
- /**
1041
- * Get a stream's position in the queue (lower = sooner).
1042
- */
1043
- getMergeQueuePosition(streamId: string, targetBranch?: string): number | null {
1044
- return this.tracker.getMergeQueuePosition(streamId, targetBranch);
1045
- }
1046
-
1047
- // ─────────────────────────────────────────────────────────────────────────────
1048
- // Conflict Operations
1049
- // ─────────────────────────────────────────────────────────────────────────────
1050
-
1051
- /**
1052
- * Create a conflict record.
1053
- *
1054
- * Usually conflicts are created implicitly by merge/rebase operations.
1055
- * This is for explicit creation (e.g., an external process detected a
1056
- * conflict that git-cascade didn't).
1057
- */
1058
- createConflict(options: CreateConflictOptions): string {
1059
- const id = this.tracker.createConflict(options);
1060
- this.emit('conflict:created', {
1061
- conflictId: id,
1062
- streamId: options.streamId,
1063
- });
1064
- return id;
1065
- }
1066
-
1067
- /**
1068
- * Get a conflict record by id.
1069
- */
1070
- getConflict(conflictId: string): ConflictRecord | null {
1071
- return this.tracker.getConflict(conflictId);
1072
- }
1073
-
1074
- /**
1075
- * Get the active conflict record for a stream, if any.
1076
- */
1077
- getConflictForStream(streamId: string): ConflictRecord | null {
1078
- return this.tracker.getConflictForStream(streamId);
1079
- }
1080
-
1081
- /**
1082
- * Emit a `stream:pushed` event for trunk-style landing strategies that push
1083
- * to a remote rather than merging into another stream. Strategies call this
1084
- * after a successful push so observers (the OpenHive cascade-bridge) can
1085
- * surface the push as `x-cascade/stream.pushed`.
1086
- */
1087
- notifyStreamPushed(args: {
1088
- streamId: string;
1089
- agentId: string;
1090
- pushedCommit: string;
1091
- remote: string;
1092
- remoteRef: string;
1093
- strategy?: string;
1094
- metadata?: Record<string, unknown>;
1095
- }): void {
1096
- this.emit('stream:pushed', {
1097
- streamId: args.streamId,
1098
- agentId: args.agentId,
1099
- pushedCommit: args.pushedCommit,
1100
- remote: args.remote,
1101
- remoteRef: args.remoteRef,
1102
- strategy: args.strategy,
1103
- metadata: args.metadata,
1104
- });
1105
- }
1106
-
1107
- /**
1108
- * Mark a conflict as resolved. Routes through git-cascade's tracker so
1109
- * `x-cascade/stream.conflict_resolved` fires for hub observers (closes
1110
- * cascade_conflicts.status from pending → resolved on the OpenHive side).
1111
- */
1112
- resolveConflict(args: {
1113
- conflictId: string;
1114
- resolution: import('git-cascade').ConflictResolution & { summary?: string };
1115
- metadata?: Record<string, unknown>;
1116
- }): void {
1117
- this.tracker.resolveConflict(args.conflictId, args.resolution, {
1118
- metadata: args.metadata,
1119
- });
1120
- }
1121
-
1122
- /**
1123
- * Abandon a conflict (stream-level give-up). Emits a
1124
- * `stream.conflict_resolved` event with method='abandoned' so observers
1125
- * see the conflict is no longer pending.
1126
- */
1127
- abandonConflict(args: {
1128
- conflictId: string;
1129
- agentId?: string;
1130
- reason?: string;
1131
- metadata?: Record<string, unknown>;
1132
- }): void {
1133
- this.tracker.abandonConflict(args.conflictId, {
1134
- agentId: args.agentId,
1135
- reason: args.reason,
1136
- metadata: args.metadata,
1137
- });
1138
- }
1139
-
1140
- // ─────────────────────────────────────────────────────────────────────────────
1141
- // Reconciliation
1142
- // ─────────────────────────────────────────────────────────────────────────────
1143
-
1144
- /**
1145
- * Check if a stream's database state is in sync with its git branch.
1146
- */
1147
- checkStreamSync(streamId: string): reconcileModule.StreamSyncStatus {
1148
- return this.tracker.checkStreamSync(streamId);
1149
- }
1150
-
1151
- /**
1152
- * Check all active streams for sync status.
1153
- */
1154
- checkAllStreamsSync(
1155
- options?: { streamIds?: string[] }
1156
- ): reconcileModule.ReconcileCheckResult {
1157
- return this.tracker.checkAllStreamsSync(options);
1158
- }
1159
-
1160
- /**
1161
- * Reconcile database state with git state. Fixes missing branches, resets
1162
- * diverged HEAD (per options), etc. Does NOT handle orphan worktrees — the
1163
- * macro-agent-level reconcile wrapper covers that.
1164
- */
1165
- reconcile(
1166
- options?: reconcileModule.ReconcileOptions
1167
- ): reconcileModule.ReconcileResult {
1168
- return this.tracker.reconcile(options);
1169
- }
1170
-
1171
- /**
1172
- * Ensure a stream is in sync before performing an operation.
1173
- * @throws DesyncError if out of sync unless `force: true`.
1174
- */
1175
- ensureStreamInSync(streamId: string, options?: { force?: boolean }): void {
1176
- this.tracker.ensureStreamInSync(streamId, options);
1177
- }
1178
-
1179
- // ─────────────────────────────────────────────────────────────────────────────
1180
- // Health & Recovery
1181
- // ─────────────────────────────────────────────────────────────────────────────
1182
-
1183
- /**
1184
- * Check system health.
1185
- */
1186
- healthCheck(): ReturnType<MultiAgentRepoTracker['healthCheck']> {
1187
- return this.tracker.healthCheck();
1188
- }
1189
-
1190
- // ─────────────────────────────────────────────────────────────────────────────
1191
- // Lifecycle
1192
- // ─────────────────────────────────────────────────────────────────────────────
1193
-
1194
- /**
1195
- * Close the adapter and release resources.
1196
- *
1197
- * Only closes the database if we created it (not if using shared DB).
1198
- */
1199
- close(): void {
1200
- this.eventListeners.clear();
1201
- this.tracker.close();
1202
- }
1203
- }
1204
-
1205
- /**
1206
- * Create a GitCascadeAdapter instance.
1207
- *
1208
- * @param config - Configuration options
1209
- * @returns GitCascadeAdapter instance
1210
- */
1211
- export function createGitCascadeAdapter(config: GitCascadeConfig): GitCascadeAdapter {
1212
- return new GitCascadeAdapter(config);
1213
- }