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,826 +0,0 @@
1
- /**
2
- * MAP Sidecar — connects macro-agent to an OpenHive MAP hub.
3
- *
4
- * This is the main orchestrator module. It establishes a MAP connection,
5
- * creates sub-modules (lifecycle bridge, trajectory reporter, task bridge,
6
- * coordination handler), and wires them to macro-agent's event sources.
7
- *
8
- * Usage:
9
- * const sidecar = createMAPSidecar(deps, config);
10
- * await sidecar.start(); // Connect + wire events
11
- * await sidecar.stop(); // Disconnect + cleanup
12
- *
13
- * @module map/sidecar
14
- */
15
-
16
- import type {
17
- MAPSidecar,
18
- MAPSidecarConfig,
19
- MAPSidecarDeps,
20
- TrajectoryCheckpointPayload,
21
- TrajectoryCheckpointResult,
22
- TrajectoryReporter,
23
- TaskBridge,
24
- } from "./types.js";
25
- import type { AgentLifecycleCallback } from "../agent/types.js";
26
- import type { CascadeCapability } from "git-cascade/events";
27
- import {
28
- REPO_PROTOCOL_VERSION,
29
- RepoClient,
30
- RepoManager,
31
- type RepoClientTransport,
32
- type WorkspaceCapability,
33
- } from "./repo-workspace.js";
34
-
35
- /**
36
- * Create a MAP sidecar that connects macro-agent to an OpenHive MAP hub.
37
- *
38
- * The sidecar is lazy: if connection fails, it logs a warning and
39
- * operates in disconnected mode. All bridge operations silently no-op
40
- * when disconnected. macro-agent continues working normally.
41
- */
42
- export function createMAPSidecar(
43
- deps: MAPSidecarDeps,
44
- config: MAPSidecarConfig,
45
- ): MAPSidecar {
46
- const { agentManager, agentStore, inboxAdapter, tasksAdapter, getLocalMapId, gitCascadeAdapter, dispatcherAgentId } = deps;
47
- const scope = config.scope ?? "swarm:macro-agent";
48
- const agentName = config.agentName ?? "macro-agent-sidecar";
49
-
50
- // Connection state
51
- let connection: any = null; // AgentConnection from MAP SDK (dynamic import)
52
- let isConnected = false;
53
-
54
- // Sub-module state
55
- let lifecycleCallback: AgentLifecycleCallback | null = null;
56
- let lifecycleUnsubscribe: (() => void) | null = null;
57
- let lifecycleCleanup: (() => Promise<void>) | null = null;
58
- let trajectoryReporter: TrajectoryReporter | null = null;
59
- let taskBridge: TaskBridge | null = null;
60
- let coordinationCleanup: (() => void) | null = null;
61
- let cascadeBridgeCleanup: (() => void) | null = null;
62
- let mailBridgeCleanup: (() => void) | null = null;
63
- let dispatchSpawnHandlerCleanup: (() => void) | null = null;
64
- let dispatchMessageHandlerCleanup: (() => void) | null = null;
65
- let dispatchPermissionsHandlerCleanup: (() => void) | null = null;
66
- let workspaceManager: RepoManager | null = null;
67
- let workspaceTransport: RepoClientTransport | null = null;
68
- let reconnectTimer: ReturnType<typeof setTimeout> | null = null;
69
-
70
- // Cascade capability — declared only when a git-cascade adapter is wired.
71
- // Each flag reflects what macro-agent *actually wired up* (honest declaration):
72
- // - canServeDiff: the diff server is wired alongside the adapter
73
- // (setupCascadeDiffServer answers cascade/diff.request).
74
- // - canAct: the inbound action handler is wired
75
- // (setupCascadeActionHandlers handles x-cascade/request.*).
76
- // - emitsConflicts: the cascade-bridge forwards stream.conflicted /
77
- // stream.conflict_resolved events.
78
- // autoCloseOnMerge is omitted — it is an opt-in close policy (default
79
- // manual) and macro-agent has no config/wiring for it.
80
- const cascadeCapability: CascadeCapability = {
81
- canServeDiff: true,
82
- canAct: true,
83
- emitsConflicts: true,
84
- };
85
-
86
- // Resolve the workspace capability from env vars. Setting OPENHIVE_WORKSPACE_DECLARE=off
87
- // disables both explicit declare AND trajectory-handler bootstrap on the hub side.
88
- const workspaceCapability: WorkspaceCapability = {
89
- protocolVersion: REPO_PROTOCOL_VERSION,
90
- declare: {
91
- enabled: process.env.OPENHIVE_WORKSPACE_DECLARE !== "off",
92
- defaultVisibility:
93
- (process.env.OPENHIVE_WORKSPACE_VISIBILITY as
94
- | "private"
95
- | "hub_local"
96
- | "federated") ?? "hub_local",
97
- },
98
- list: { enabled: true },
99
- };
100
-
101
- /**
102
- * Build the MAP connection URL with auth token.
103
- */
104
- function buildUrl(): string {
105
- const parsed = new URL(config.server);
106
- // Ensure the path includes /ws/map for OpenHive
107
- if (!parsed.pathname.includes("/ws/map") && !parsed.pathname.includes("/map")) {
108
- parsed.pathname = parsed.pathname.replace(/\/?$/, "/ws/map");
109
- }
110
- if (config.token) {
111
- parsed.searchParams.set("token", config.token);
112
- }
113
- // Include swarm_id for stable identity across reconnections.
114
- // When set, the hub reuses the pre-registered swarm record instead
115
- // of auto-generating a new one on each connection.
116
- if (config.swarmId) {
117
- parsed.searchParams.set("swarm_id", config.swarmId);
118
- }
119
- return parsed.toString();
120
- }
121
-
122
- /**
123
- * Clean up sub-modules (notification handlers, lifecycle listeners, etc.)
124
- * Called before re-wiring on reconnect and during stop().
125
- */
126
- async function cleanupSubModules(): Promise<void> {
127
- if (coordinationCleanup) {
128
- coordinationCleanup();
129
- coordinationCleanup = null;
130
- }
131
- if (mailBridgeCleanup) {
132
- try { mailBridgeCleanup(); } catch { /* non-critical */ }
133
- mailBridgeCleanup = null;
134
- }
135
- if (cascadeBridgeCleanup) {
136
- try { cascadeBridgeCleanup(); } catch { /* non-critical */ }
137
- cascadeBridgeCleanup = null;
138
- }
139
- if (dispatchMessageHandlerCleanup) {
140
- try { dispatchMessageHandlerCleanup(); } catch { /* non-critical */ }
141
- dispatchMessageHandlerCleanup = null;
142
- }
143
- if (dispatchSpawnHandlerCleanup) {
144
- try { dispatchSpawnHandlerCleanup(); } catch { /* non-critical */ }
145
- dispatchSpawnHandlerCleanup = null;
146
- }
147
- if (dispatchPermissionsHandlerCleanup) {
148
- try { dispatchPermissionsHandlerCleanup(); } catch { /* non-critical */ }
149
- dispatchPermissionsHandlerCleanup = null;
150
- }
151
- if (trajectoryReporter) {
152
- trajectoryReporter.stop();
153
- trajectoryReporter = null;
154
- }
155
- if (lifecycleCleanup) {
156
- await lifecycleCleanup();
157
- lifecycleCleanup = null;
158
- }
159
- if (lifecycleUnsubscribe) {
160
- lifecycleUnsubscribe();
161
- lifecycleUnsubscribe = null;
162
- }
163
- lifecycleCallback = null;
164
- taskBridge = null;
165
- workspaceManager = null;
166
- workspaceTransport = null;
167
- }
168
-
169
- /**
170
- * Attempt to connect to the MAP hub.
171
- */
172
- async function connect(): Promise<boolean> {
173
- try {
174
- const { AgentConnection } = await import(
175
- "@multi-agent-protocol/sdk"
176
- );
177
-
178
- const url = buildUrl();
179
- const connectOpts: Record<string, unknown> = {
180
- name: agentName,
181
- role: "sidecar",
182
- scopes: [scope],
183
- capabilities: {
184
- messaging: { canSend: true, canReceive: true },
185
- mail: { canCreate: true, canJoin: true, canViewHistory: true },
186
- trajectory: { canReport: true, canServeContent: false },
187
- tasks: {
188
- canCreate: true,
189
- canAssign: true,
190
- canUpdate: true,
191
- canList: true,
192
- },
193
- // Cascade capability is gated on whether a git-cascade adapter is
194
- // wired — without it there are no worktrees to shell out against,
195
- // so declaring it would just produce timeouts on the hub.
196
- ...(gitCascadeAdapter
197
- ? { cascade: cascadeCapability }
198
- : {}),
199
- workspace: workspaceCapability,
200
- },
201
- metadata: {
202
- systemId: config.systemId ?? "macro-agent",
203
- type: "macro-agent-sidecar",
204
- // Signals that this swarm can spawn ACP-capable coordinators on demand,
205
- // even before any coordinator has registered. The hub's /sessions/create-acp
206
- // endpoint handles the spawn via _macro/spawnAgent when no ACP agent exists.
207
- canHostAcp: true,
208
- },
209
- reconnection: {
210
- enabled: config.reconnection?.enabled ?? true,
211
- maxRetries: config.reconnection?.maxRetries ?? 10,
212
- baseDelayMs: config.reconnection?.baseDelayMs ?? 1000,
213
- maxDelayMs: config.reconnection?.maxDelayMs ?? 30000,
214
- },
215
- };
216
-
217
- // Try mesh transport first if enabled (encrypted P2P via agentic-mesh)
218
- if (config.mesh?.enabled) {
219
- try {
220
- connection = await (AgentConnection as any).connectMesh({
221
- ...connectOpts,
222
- peer: { peerId: config.mesh.peerId ?? `${agentName}-mesh` },
223
- server: config.server,
224
- });
225
- isConnected = true;
226
- console.log(`[map-sidecar] Connected via MeshPeer to ${config.server}`);
227
- } catch (meshErr) {
228
- console.warn(
229
- `[map-sidecar] MeshPeer failed, falling back to WebSocket: ${(meshErr as Error).message}`,
230
- );
231
- }
232
- }
233
-
234
- // WebSocket connection (direct or fallback from mesh)
235
- if (!isConnected) {
236
- // Try open mode first (single call connect+register).
237
- // If server requires auth, fall back to verified mode.
238
- if (config.credential && (AgentConnection as any).createConnection) {
239
- // Verified mode: connectOnly → check authRequired → authenticate → register
240
- connection = await (AgentConnection as any).createConnection(url, connectOpts);
241
- const result = await connection.connectOnly();
242
- if (result.authRequired) {
243
- const method = result.authRequired.methods?.[0] ?? "x-agent-iam";
244
- await connection.authenticate({
245
- method,
246
- token: config.credential,
247
- });
248
- }
249
- await connection.register();
250
- } else {
251
- // Open mode: single call connect+register
252
- connection = await (AgentConnection as any).connect(url, connectOpts);
253
- }
254
- isConnected = true;
255
- } // end if (!isConnected)
256
-
257
- // Publish sidecar metadata to the hub. The MAP SDK's connect()/register()
258
- // does not propagate the `metadata` field from connect options — it only
259
- // forwards name/role/capabilities/scopes. Call updateMetadata explicitly
260
- // so the hub sees canHostAcp (and any other metadata the UI relies on).
261
- try {
262
- const metadata = (connectOpts.metadata as Record<string, unknown>) ?? {};
263
- if (typeof connection.updateMetadata === "function") {
264
- await connection.updateMetadata(metadata);
265
- }
266
- } catch {
267
- // Non-fatal — metadata is advisory
268
- }
269
-
270
- // Monitor connection state
271
- connection.onStateChange(
272
- (newState: string, _oldState: string) => {
273
- isConnected = newState === "connected";
274
- if (!isConnected) {
275
- console.warn(
276
- `[map-sidecar] Connection state: ${newState}`,
277
- );
278
- }
279
- },
280
- );
281
-
282
- // Start slow reconnect loop when SDK retries are exhausted
283
- connection.closed
284
- .then(() => {
285
- isConnected = false;
286
- scheduleReconnect();
287
- })
288
- .catch(() => {
289
- isConnected = false;
290
- scheduleReconnect();
291
- });
292
-
293
- console.log(
294
- `[map-sidecar] Connected to MAP hub at ${config.server}`,
295
- );
296
- return true;
297
- } catch (err) {
298
- console.warn(
299
- `[map-sidecar] Failed to connect to MAP hub: ${(err as Error).message}`,
300
- );
301
- isConnected = false;
302
- return false;
303
- }
304
- }
305
-
306
- /**
307
- * Schedule a slow reconnection attempt after SDK retries are exhausted.
308
- */
309
- function scheduleReconnect(): void {
310
- if (reconnectTimer) return;
311
- const interval = config.reconnectIntervalMs ?? 60_000;
312
-
313
- reconnectTimer = setTimeout(async () => {
314
- reconnectTimer = null;
315
- if (isConnected) return;
316
-
317
- console.log("[map-sidecar] Attempting reconnection...");
318
- // Clean up old sub-modules before re-wiring
319
- await cleanupSubModules();
320
- const ok = await connect();
321
- if (ok) {
322
- await wireSubModules();
323
- } else {
324
- scheduleReconnect();
325
- }
326
- }, interval);
327
- reconnectTimer.unref?.(); // Don't prevent process exit
328
- }
329
-
330
- /**
331
- * Wire sub-modules to event sources and the MAP connection.
332
- */
333
- async function wireSubModules(): Promise<void> {
334
- if (!connection) return;
335
-
336
- // 1. Task Bridge (created first so lifecycle bridge can reference it)
337
- const { createTaskBridge } = await import("./task-bridge.js");
338
- taskBridge = createTaskBridge(connection, scope);
339
-
340
- // 2. Lifecycle Bridge
341
- const { createLifecycleBridge } = await import("./lifecycle-bridge.js");
342
- const bridge = createLifecycleBridge(
343
- connection,
344
- agentStore,
345
- scope,
346
- taskBridge,
347
- getLocalMapId,
348
- );
349
- lifecycleCallback = bridge.callback;
350
- lifecycleCleanup = bridge.cleanup;
351
- const awaitAcpRegistration = bridge.awaitRegistration;
352
- const findLocalAgentByMapId = bridge.findLocalAgentByMapId;
353
- lifecycleUnsubscribe = agentManager.onLifecycleEvent(lifecycleCallback);
354
-
355
- // 3. Trajectory Reporter
356
- const { createTrajectoryReporter } = await import("./trajectory-reporter.js");
357
- trajectoryReporter = createTrajectoryReporter(connection, config);
358
-
359
- // 4. Coordination Handler
360
- const { setupCoordinationHandlers } = await import("./coordination-handler.js");
361
- coordinationCleanup = setupCoordinationHandlers({
362
- connection,
363
- agentManager,
364
- inboxAdapter,
365
- tasksAdapter,
366
- trajectoryReporter,
367
- });
368
-
369
- // 4b. Mail Bridge — forwards `mail/turn.received` notifications from the
370
- // hub into the local agent-inbox so swarm-dispatch's MessagePort can
371
- // pick them up via its `inbox.events` subscription. Without this,
372
- // hub-side mail never reaches the dispatcher.
373
- const { setupMailBridge } = await import("./mail-bridge.js");
374
- mailBridgeCleanup = await setupMailBridge({
375
- connection,
376
- inboxAdapter,
377
- dispatcherAgentId,
378
- log: (msg) => console.log(msg),
379
- });
380
-
381
- // 4c. x-dispatch/spawn-agent handler — notification-pair pattern.
382
- //
383
- // The MAP SDK's AgentConnection doesn't expose setRequestHandler, so
384
- // the hub→swarm spawn-agent "request" is sent as a notification
385
- // with a correlation_id. We process and reply with a `.response`
386
- // notification carrying the same correlation_id (or an error).
387
- //
388
- // Dual-listen: subscribe to BOTH the canonical
389
- // `x-dispatch/spawn-agent.request` (Tier 2+, owned by swarm-dispatch)
390
- // AND the legacy `dispatch/spawn-agent.request` for one release
391
- // window. Reply on the matching channel — the hub's response
392
- // dispatcher accepts both.
393
- const { handleDispatchSpawnAgent } = await import(
394
- "../dispatch/spawn-agent-handler.js"
395
- );
396
- const {
397
- handleSpawnAgentRequest,
398
- X_DISPATCH_METHODS: SPAWN_METHODS,
399
- LEGACY_DISPATCH_SPAWN_AGENT_REQUEST,
400
- LEGACY_DISPATCH_SPAWN_AGENT_RESPONSE,
401
- } = await import("swarm-dispatch/client");
402
-
403
- const makeSpawnHandler = (
404
- responseMethod: string,
405
- ): ((params: unknown) => Promise<void>) =>
406
- async (params) => {
407
- await handleSpawnAgentRequest({
408
- params,
409
- runtime: {
410
- async spawn(req) {
411
- return handleDispatchSpawnAgent(
412
- req as unknown as Parameters<typeof handleDispatchSpawnAgent>[0],
413
- {
414
- agentManager,
415
- // Wait barrier: lifecycle-bridge resolves once
416
- // `map/agents/register` completes, so the orchestrator's
417
- // subsequent `findAcpAgentInfo` lookup doesn't race.
418
- waitForAcpRegistration: awaitAcpRegistration,
419
- log: (msg) => console.log(msg),
420
- },
421
- );
422
- },
423
- },
424
- sendResponse: async (responseParams) => {
425
- await connection.sendNotification(responseMethod, responseParams);
426
- },
427
- log: (msg) => console.log(msg),
428
- });
429
- };
430
-
431
- const canonicalSpawnHandler = makeSpawnHandler(
432
- SPAWN_METHODS.SPAWN_AGENT_RESPONSE,
433
- );
434
- const legacySpawnHandler = makeSpawnHandler(
435
- LEGACY_DISPATCH_SPAWN_AGENT_RESPONSE,
436
- );
437
-
438
- connection.onNotification(
439
- SPAWN_METHODS.SPAWN_AGENT_REQUEST,
440
- canonicalSpawnHandler,
441
- );
442
- connection.onNotification(
443
- LEGACY_DISPATCH_SPAWN_AGENT_REQUEST,
444
- legacySpawnHandler,
445
- );
446
- dispatchSpawnHandlerCleanup = () => {
447
- try {
448
- if (typeof connection.offNotification === "function") {
449
- connection.offNotification(
450
- SPAWN_METHODS.SPAWN_AGENT_REQUEST,
451
- canonicalSpawnHandler,
452
- );
453
- connection.offNotification(
454
- LEGACY_DISPATCH_SPAWN_AGENT_REQUEST,
455
- legacySpawnHandler,
456
- );
457
- }
458
- } catch {
459
- /* connection already torn down */
460
- }
461
- };
462
-
463
- // 4c'. x-dispatch/permissions.{set,clear} handlers — notification-pair
464
- // pattern, mirrors spawn-agent's shape. Used by hubs (e.g. OpenHive's
465
- // ACP+reuse dispatch path) to apply per-dispatch loadout deny/allow
466
- // rules to a long-lived agent's session at runtime via the
467
- // permission-overlay registry. The prompt iterator in
468
- // `agent-manager-v2.ts` enforces the overlay against
469
- // `permission_request` ACP session updates. Pairs with the mail+reuse
470
- // path's overlay set/clear in `mail-inbound-reuse-consumer.ts` —
471
- // same registry, different transport.
472
- const {
473
- handlePermissionsSet,
474
- handlePermissionsClear,
475
- X_DISPATCH_PERMISSIONS_METHODS,
476
- } = await import("../dispatch/permissions-handler.js");
477
-
478
- // Response shape per swarm-dispatch's notification-rpc registry:
479
- // { correlation_id, result } → resolve(result)
480
- // { correlation_id, error: { code?, message? } } → reject
481
- // The handler's `{ ok, error?: string }` is wrapped accordingly.
482
- const sendPermissionsResponse = async (
483
- method: string,
484
- correlationId: string | undefined,
485
- result: { ok: true } | { ok: false; error: string },
486
- ): Promise<void> => {
487
- const body: Record<string, unknown> = {};
488
- if (correlationId) body.correlation_id = correlationId;
489
- if (result.ok) {
490
- body.result = result;
491
- } else {
492
- body.error = { message: result.error };
493
- }
494
- try {
495
- await connection.sendNotification(method, body);
496
- } catch (err) {
497
- console.warn(
498
- `[${method}] response send failed: ${(err as Error).message}`,
499
- );
500
- }
501
- };
502
-
503
- const permissionsSetHandler = async (params: unknown): Promise<void> => {
504
- const correlationId =
505
- (params as { correlation_id?: string })?.correlation_id;
506
- const result = handlePermissionsSet(
507
- params as Parameters<typeof handlePermissionsSet>[0],
508
- (msg) => console.log(msg),
509
- );
510
- await sendPermissionsResponse(
511
- X_DISPATCH_PERMISSIONS_METHODS.SET_RESPONSE,
512
- correlationId,
513
- result,
514
- );
515
- };
516
-
517
- const permissionsClearHandler = async (params: unknown): Promise<void> => {
518
- const correlationId =
519
- (params as { correlation_id?: string })?.correlation_id;
520
- const result = handlePermissionsClear(
521
- params as Parameters<typeof handlePermissionsClear>[0],
522
- (msg) => console.log(msg),
523
- );
524
- await sendPermissionsResponse(
525
- X_DISPATCH_PERMISSIONS_METHODS.CLEAR_RESPONSE,
526
- correlationId,
527
- result,
528
- );
529
- };
530
-
531
- connection.onNotification(
532
- X_DISPATCH_PERMISSIONS_METHODS.SET_REQUEST,
533
- permissionsSetHandler,
534
- );
535
- connection.onNotification(
536
- X_DISPATCH_PERMISSIONS_METHODS.CLEAR_REQUEST,
537
- permissionsClearHandler,
538
- );
539
- dispatchPermissionsHandlerCleanup = () => {
540
- try {
541
- if (typeof connection.offNotification === "function") {
542
- connection.offNotification(
543
- X_DISPATCH_PERMISSIONS_METHODS.SET_REQUEST,
544
- permissionsSetHandler,
545
- );
546
- connection.offNotification(
547
- X_DISPATCH_PERMISSIONS_METHODS.CLEAR_REQUEST,
548
- permissionsClearHandler,
549
- );
550
- }
551
- } catch {
552
- /* connection already torn down */
553
- }
554
- };
555
-
556
- // 4d. map/dispatch/message handler — receives hub-routed envelopes
557
- // addressed to a specific agent on this swarm via MAP scope. The hub
558
- // takes this path (not mail/turn) when the target agent declares
559
- // `messaging.canReceive: true` per-agent but not `mail.canJoin`,
560
- // which is the default for long-lived workers/coordinators registered
561
- // by the lifecycle bridge. Without this handler, mail+reuse dispatches
562
- // are silently dropped on the swarm side.
563
- //
564
- // Translate the hub-assigned MAP ULID (`to_agent_id`) → local agent
565
- // id and forward the envelope into the local inbox so the new
566
- // `mail-inbound-reuse-consumer` picks it up.
567
- const dispatchMessageHandler = async (params: unknown): Promise<void> => {
568
- const p = params as
569
- | (Record<string, unknown> & {
570
- to_agent_id?: string;
571
- envelope?: unknown;
572
- from_agent_id?: string;
573
- })
574
- | undefined;
575
- const toAgentId = p?.to_agent_id;
576
- const envelope = p?.envelope;
577
- if (!toAgentId || !envelope) {
578
- console.warn(
579
- "[sidecar] map/dispatch/message missing to_agent_id or envelope; ignoring",
580
- );
581
- return;
582
- }
583
- const localAgentId = findLocalAgentByMapId(toAgentId);
584
- if (!localAgentId) {
585
- console.warn(
586
- `[sidecar] map/dispatch/message recipient ${toAgentId} not registered locally; dropping`,
587
- );
588
- return;
589
- }
590
- // Translate envelope { type, body } → { schema, data } shape that the
591
- // mail-inbound-reuse-consumer expects (mirrors mail-bridge's
592
- // translation for `mail/turn.received`).
593
- //
594
- // Hub-side mail-transport injects `body._conversationId` when sending
595
- // via MAP scope (sendViaMapScope) — extract it here and surface it
596
- // on the top-level content (alongside `data`) so the
597
- // mail-inbound-reuse-consumer's reply path can `postMailTurn` to
598
- // the right conversation. Without this, the consumer drops the
599
- // reply with "No conversationId".
600
- const env = envelope as { type?: string; body?: Record<string, unknown> };
601
- const conversationId =
602
- env.body && typeof env.body._conversationId === "string"
603
- ? (env.body._conversationId as string)
604
- : undefined;
605
- const content: Record<string, unknown> =
606
- env.type && env.body
607
- ? { schema: env.type, data: env.body }
608
- : (envelope as Record<string, unknown>);
609
- const contentWithMarker: Record<string, unknown> = {
610
- type: "data",
611
- ...content,
612
- ...(conversationId ? { _conversationId: conversationId } : {}),
613
- };
614
- try {
615
- await inboxAdapter.send(
616
- (p?.from_agent_id as string | undefined) ?? "openhive-hub",
617
- localAgentId,
618
- contentWithMarker as never,
619
- { importance: "normal" },
620
- );
621
- } catch (err) {
622
- console.warn(
623
- `[sidecar] map/dispatch/message inbox.send failed for ${localAgentId}: ` +
624
- `${(err as Error).message}`,
625
- );
626
- }
627
- };
628
- // Dual-listen: subscribe to BOTH the canonical `x-dispatch/message`
629
- // (the new method name owned by swarm-dispatch's protocol-constants
630
- // module) AND the legacy `map/dispatch/message` alias for one
631
- // release window. Older hub builds send under the legacy name; new
632
- // builds send under the canonical name. Once the dual-listen window
633
- // closes, drop the legacy registration.
634
- const {
635
- X_DISPATCH_METHODS,
636
- LEGACY_MAP_DISPATCH_MESSAGE_METHOD,
637
- } = await import("swarm-dispatch/client");
638
- connection.onNotification(
639
- X_DISPATCH_METHODS.MESSAGE,
640
- dispatchMessageHandler,
641
- );
642
- connection.onNotification(
643
- LEGACY_MAP_DISPATCH_MESSAGE_METHOD,
644
- dispatchMessageHandler,
645
- );
646
- dispatchMessageHandlerCleanup = () => {
647
- try {
648
- if (typeof connection.offNotification === "function") {
649
- connection.offNotification(
650
- X_DISPATCH_METHODS.MESSAGE,
651
- dispatchMessageHandler,
652
- );
653
- connection.offNotification(
654
- LEGACY_MAP_DISPATCH_MESSAGE_METHOD,
655
- dispatchMessageHandler,
656
- );
657
- }
658
- } catch {
659
- /* connection already torn down */
660
- }
661
- };
662
-
663
- // 5. Cascade Bridge + Action Handler (optional — only when a GitCascadeAdapter is available)
664
- if (gitCascadeAdapter) {
665
- const { createCascadeBridge } = await import("./cascade-bridge.js");
666
- const cascadeBridge = createCascadeBridge(connection, gitCascadeAdapter);
667
-
668
- // 5b. Inbound action handler — receives x-cascade/request.* from hub
669
- const { setupCascadeActionHandlers } = await import("./cascade-action-handler.js");
670
- const actionCleanup = setupCascadeActionHandlers(connection, gitCascadeAdapter);
671
-
672
- // 5c. Inbound diff server — receives cascade/diff.request from hub
673
- // and replies with cascade/diff.response (+ chunks for large blobs).
674
- const { setupCascadeDiffServer } = await import("./cascade-diff-server.js");
675
- const diffCleanup = setupCascadeDiffServer(connection, gitCascadeAdapter);
676
-
677
- cascadeBridgeCleanup = () => {
678
- cascadeBridge.dispose();
679
- actionCleanup();
680
- diffCleanup();
681
- };
682
- }
683
-
684
- // 6. Workspace (kinds/repo) — declare attached repos to the hub.
685
- // Discovers repos from WORKSPACE_* env vars (set by openhive's swarm-spawn
686
- // flow when spawning with a `repo_id`) plus OPENHIVE_WORKSPACE_REPOS for
687
- // multi-repo declarations. Skipped entirely when capability.declare is off.
688
- if (workspaceCapability.declare.enabled) {
689
- try {
690
- // OpenHive's MAP server registers x-workspace/repo.* as request handlers
691
- // (additionalHandlers), not notification handlers — so route notify
692
- // through callExtension and ignore the (void) response.
693
- const repoTransport: RepoClientTransport = {
694
- notify: async (method: string, params: unknown) => {
695
- await connection.callExtension(method, params);
696
- },
697
- request: (method: string, params: unknown) =>
698
- connection.callExtension(method, params),
699
- };
700
- const manager = new RepoManager();
701
- const single =
702
- process.env.WORKSPACE_REPO_URL && process.env.WORKSPACE_LOCAL_PATH
703
- ? [{
704
- remoteUrl: process.env.WORKSPACE_REPO_URL,
705
- localPath: process.env.WORKSPACE_LOCAL_PATH,
706
- }]
707
- : [];
708
- const multi = process.env.OPENHIVE_WORKSPACE_REPOS
709
- ? (JSON.parse(process.env.OPENHIVE_WORKSPACE_REPOS) as Array<{
710
- remoteUrl: string;
711
- localPath: string;
712
- }>)
713
- : [];
714
- for (const cfg of [...single, ...multi]) {
715
- await manager.attach(cfg);
716
- }
717
- if (manager.list().length > 0) {
718
- const client = new RepoClient(repoTransport);
719
- await client.declare(RepoClient.snapshot(manager));
720
- workspaceManager = manager;
721
- workspaceTransport = repoTransport;
722
- console.log(
723
- `[map-sidecar] Declared ${manager.list().length} workspace(s) to hub`,
724
- );
725
- }
726
- } catch (err) {
727
- // Non-fatal — sidecar continues without workspace declarations
728
- console.warn(
729
- `[map-sidecar] Workspace declare failed: ${(err as Error).message}`,
730
- );
731
- }
732
- }
733
- }
734
-
735
- return {
736
- async start(): Promise<void> {
737
- const ok = await connect();
738
- if (ok) {
739
- await wireSubModules();
740
- } else {
741
- // Schedule retry — sidecar will wire sub-modules when connected
742
- scheduleReconnect();
743
- }
744
- },
745
-
746
- async stop(): Promise<void> {
747
- // Clear reconnect timer
748
- if (reconnectTimer) {
749
- clearTimeout(reconnectTimer);
750
- reconnectTimer = null;
751
- }
752
-
753
- // Clean up all sub-modules
754
- await cleanupSubModules();
755
-
756
- // Disconnect from hub
757
- if (connection) {
758
- try {
759
- await connection.disconnect("sidecar_shutdown");
760
- } catch {
761
- // Already disconnected
762
- }
763
- connection = null;
764
- }
765
-
766
- isConnected = false;
767
- },
768
-
769
- get connected(): boolean {
770
- return isConnected;
771
- },
772
-
773
- async reportCheckpoint(
774
- checkpoint: TrajectoryCheckpointPayload,
775
- ): Promise<TrajectoryCheckpointResult | null> {
776
- if (!trajectoryReporter) return null;
777
- return trajectoryReporter.reportCheckpoint(checkpoint);
778
- },
779
-
780
- async emitEvent(event: Record<string, unknown>): Promise<void> {
781
- if (!connection || !isConnected) return;
782
- try {
783
- await connection.send({ scope }, { ...event, _origin: "macro-agent" });
784
- } catch {
785
- // Best effort — MAP hub may be temporarily unavailable
786
- }
787
- },
788
-
789
- async postMailTurn(
790
- conversationId: string,
791
- participantId: string,
792
- content: string,
793
- ): Promise<void> {
794
- if (!connection || !isConnected) {
795
- console.warn(
796
- `[map-sidecar] postMailTurn skipped (connection=${!!connection} ` +
797
- `isConnected=${isConnected}) conv=${conversationId}`,
798
- );
799
- return;
800
- }
801
- try {
802
- await connection.sendNotification("mail/turn", {
803
- conversationId,
804
- participantId,
805
- contentType: "text/plain",
806
- content,
807
- });
808
- } catch (err) {
809
- // Best effort — hub may be temporarily unavailable. Log at warn
810
- // so silent failures are visible during postmortem.
811
- console.warn(
812
- `[map-sidecar] postMailTurn failed for conv=${conversationId}: ` +
813
- `${(err as Error).message ?? String(err)}`,
814
- );
815
- }
816
- },
817
-
818
- getWorkspaceManager() {
819
- return workspaceManager;
820
- },
821
-
822
- getRepoTransport() {
823
- return workspaceTransport;
824
- },
825
- };
826
- }