macro-agent 0.2.5 → 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 (992) 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 +7 -24
  37. package/dist/agent/agent-manager-v2.js.map +1 -1
  38. package/dist/agent/wake.d.ts +85 -0
  39. package/dist/agent/wake.d.ts.map +1 -0
  40. package/dist/agent/wake.js +278 -0
  41. package/dist/agent/wake.js.map +1 -0
  42. package/dist/api/server.d.ts.map +1 -1
  43. package/dist/api/server.js +41 -25
  44. package/dist/api/server.js.map +1 -1
  45. package/dist/api/types.d.ts +6 -0
  46. package/dist/api/types.d.ts.map +1 -1
  47. package/dist/auth/server-auth.d.ts +43 -0
  48. package/dist/auth/server-auth.d.ts.map +1 -0
  49. package/dist/auth/server-auth.js +80 -0
  50. package/dist/auth/server-auth.js.map +1 -0
  51. package/dist/auth/token.d.ts +4 -0
  52. package/dist/auth/token.d.ts.map +1 -1
  53. package/dist/auth/token.js +7 -6
  54. package/dist/auth/token.js.map +1 -1
  55. package/dist/boot-v2.d.ts +6 -3
  56. package/dist/boot-v2.d.ts.map +1 -1
  57. package/dist/boot-v2.js +44 -25
  58. package/dist/boot-v2.js.map +1 -1
  59. package/dist/cognitive/team-lifecycle.d.ts +82 -0
  60. package/dist/cognitive/team-lifecycle.d.ts.map +1 -0
  61. package/dist/cognitive/team-lifecycle.js +121 -0
  62. package/dist/cognitive/team-lifecycle.js.map +1 -0
  63. package/dist/cognitive/trajectory-extractor.d.ts +25 -0
  64. package/dist/cognitive/trajectory-extractor.d.ts.map +1 -0
  65. package/dist/cognitive/trajectory-extractor.js +134 -0
  66. package/dist/cognitive/trajectory-extractor.js.map +1 -0
  67. package/dist/control/control-server.d.ts.map +1 -1
  68. package/dist/control/control-server.js +10 -0
  69. package/dist/control/control-server.js.map +1 -1
  70. package/dist/dispatch/mail-inbound-consumer.d.ts.map +1 -1
  71. package/dist/dispatch/mail-inbound-consumer.js +43 -10
  72. package/dist/dispatch/mail-inbound-consumer.js.map +1 -1
  73. package/dist/index.d.ts +4 -0
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +6 -1
  76. package/dist/index.js.map +1 -1
  77. package/dist/lifecycle/handlers/generic.d.ts +27 -0
  78. package/dist/lifecycle/handlers/generic.d.ts.map +1 -0
  79. package/dist/lifecycle/handlers/generic.js +56 -0
  80. package/dist/lifecycle/handlers/generic.js.map +1 -0
  81. package/dist/lifecycle/handlers/index.d.ts +51 -0
  82. package/dist/lifecycle/handlers/index.d.ts.map +1 -0
  83. package/dist/lifecycle/handlers/index.js +110 -0
  84. package/dist/lifecycle/handlers/index.js.map +1 -0
  85. package/dist/lifecycle/handlers/integrator.d.ts +81 -0
  86. package/dist/lifecycle/handlers/integrator.d.ts.map +1 -0
  87. package/dist/lifecycle/handlers/integrator.js +451 -0
  88. package/dist/lifecycle/handlers/integrator.js.map +1 -0
  89. package/dist/lifecycle/handlers/monitor.d.ts +29 -0
  90. package/dist/lifecycle/handlers/monitor.d.ts.map +1 -0
  91. package/dist/lifecycle/handlers/monitor.js +79 -0
  92. package/dist/lifecycle/handlers/monitor.js.map +1 -0
  93. package/dist/lifecycle/handlers/worker.d.ts +56 -0
  94. package/dist/lifecycle/handlers/worker.d.ts.map +1 -0
  95. package/dist/lifecycle/handlers/worker.js +381 -0
  96. package/dist/lifecycle/handlers/worker.js.map +1 -0
  97. package/dist/lifecycle/handlers-v2.d.ts +0 -2
  98. package/dist/lifecycle/handlers-v2.d.ts.map +1 -1
  99. package/dist/lifecycle/handlers-v2.js +4 -55
  100. package/dist/lifecycle/handlers-v2.js.map +1 -1
  101. package/dist/mail/conversation-map.d.ts +33 -0
  102. package/dist/mail/conversation-map.d.ts.map +1 -0
  103. package/dist/mail/conversation-map.js +61 -0
  104. package/dist/mail/conversation-map.js.map +1 -0
  105. package/dist/mail/index.d.ts +11 -0
  106. package/dist/mail/index.d.ts.map +1 -0
  107. package/dist/mail/index.js +11 -0
  108. package/dist/mail/index.js.map +1 -0
  109. package/dist/mail/mail-service.d.ts +85 -0
  110. package/dist/mail/mail-service.d.ts.map +1 -0
  111. package/dist/mail/mail-service.js +121 -0
  112. package/dist/mail/mail-service.js.map +1 -0
  113. package/dist/mail/stores/eventstore-conversation-store.d.ts +40 -0
  114. package/dist/mail/stores/eventstore-conversation-store.d.ts.map +1 -0
  115. package/dist/mail/stores/eventstore-conversation-store.js +131 -0
  116. package/dist/mail/stores/eventstore-conversation-store.js.map +1 -0
  117. package/dist/mail/stores/eventstore-participant-store.d.ts +43 -0
  118. package/dist/mail/stores/eventstore-participant-store.d.ts.map +1 -0
  119. package/dist/mail/stores/eventstore-participant-store.js +145 -0
  120. package/dist/mail/stores/eventstore-participant-store.js.map +1 -0
  121. package/dist/mail/stores/eventstore-thread-store.d.ts +46 -0
  122. package/dist/mail/stores/eventstore-thread-store.d.ts.map +1 -0
  123. package/dist/mail/stores/eventstore-thread-store.js +118 -0
  124. package/dist/mail/stores/eventstore-thread-store.js.map +1 -0
  125. package/dist/mail/stores/eventstore-turn-store.d.ts +47 -0
  126. package/dist/mail/stores/eventstore-turn-store.d.ts.map +1 -0
  127. package/dist/mail/stores/eventstore-turn-store.js +153 -0
  128. package/dist/mail/stores/eventstore-turn-store.js.map +1 -0
  129. package/dist/mail/stores/index.d.ts +12 -0
  130. package/dist/mail/stores/index.d.ts.map +1 -0
  131. package/dist/mail/stores/index.js +12 -0
  132. package/dist/mail/stores/index.js.map +1 -0
  133. package/dist/mail/stores/types.d.ts +146 -0
  134. package/dist/mail/stores/types.d.ts.map +1 -0
  135. package/dist/mail/stores/types.js +13 -0
  136. package/dist/mail/stores/types.js.map +1 -0
  137. package/dist/mail/turn-recorder.d.ts +30 -0
  138. package/dist/mail/turn-recorder.d.ts.map +1 -0
  139. package/dist/mail/turn-recorder.js +98 -0
  140. package/dist/mail/turn-recorder.js.map +1 -0
  141. package/dist/map/adapter/acp-over-map.d.ts +115 -0
  142. package/dist/map/adapter/acp-over-map.d.ts.map +1 -0
  143. package/dist/map/adapter/acp-over-map.js +1024 -0
  144. package/dist/map/adapter/acp-over-map.js.map +1 -0
  145. package/dist/map/adapter/connection-manager.d.ts +150 -0
  146. package/dist/map/adapter/connection-manager.d.ts.map +1 -0
  147. package/dist/map/adapter/connection-manager.js +207 -0
  148. package/dist/map/adapter/connection-manager.js.map +1 -0
  149. package/dist/map/adapter/event-log.d.ts +87 -0
  150. package/dist/map/adapter/event-log.d.ts.map +1 -0
  151. package/dist/map/adapter/event-log.js +122 -0
  152. package/dist/map/adapter/event-log.js.map +1 -0
  153. package/dist/map/adapter/event-translator.d.ts +85 -0
  154. package/dist/map/adapter/event-translator.d.ts.map +1 -0
  155. package/dist/map/adapter/event-translator.js +295 -0
  156. package/dist/map/adapter/event-translator.js.map +1 -0
  157. package/dist/map/adapter/extensions/agent-detection.d.ts +49 -0
  158. package/dist/map/adapter/extensions/agent-detection.d.ts.map +1 -0
  159. package/dist/map/adapter/extensions/agent-detection.js +91 -0
  160. package/dist/map/adapter/extensions/agent-detection.js.map +1 -0
  161. package/dist/map/adapter/extensions/agent-lifecycle.d.ts +82 -0
  162. package/dist/map/adapter/extensions/agent-lifecycle.d.ts.map +1 -0
  163. package/dist/map/adapter/extensions/agent-lifecycle.js +164 -0
  164. package/dist/map/adapter/extensions/agent-lifecycle.js.map +1 -0
  165. package/dist/map/adapter/extensions/cognitive.d.ts +27 -0
  166. package/dist/map/adapter/extensions/cognitive.d.ts.map +1 -0
  167. package/dist/map/adapter/extensions/cognitive.js +158 -0
  168. package/dist/map/adapter/extensions/cognitive.js.map +1 -0
  169. package/dist/map/adapter/extensions/index.d.ts +95 -0
  170. package/dist/map/adapter/extensions/index.d.ts.map +1 -0
  171. package/dist/map/adapter/extensions/index.js +228 -0
  172. package/dist/map/adapter/extensions/index.js.map +1 -0
  173. package/dist/map/adapter/extensions/mcp-bridge.d.ts +57 -0
  174. package/dist/map/adapter/extensions/mcp-bridge.d.ts.map +1 -0
  175. package/dist/map/adapter/extensions/mcp-bridge.js +745 -0
  176. package/dist/map/adapter/extensions/mcp-bridge.js.map +1 -0
  177. package/dist/map/adapter/extensions/resume.d.ts +47 -0
  178. package/dist/map/adapter/extensions/resume.d.ts.map +1 -0
  179. package/dist/map/adapter/extensions/resume.js +59 -0
  180. package/dist/map/adapter/extensions/resume.js.map +1 -0
  181. package/dist/map/adapter/extensions/streams.d.ts +95 -0
  182. package/dist/map/adapter/extensions/streams.d.ts.map +1 -0
  183. package/dist/map/adapter/extensions/streams.js +515 -0
  184. package/dist/map/adapter/extensions/streams.js.map +1 -0
  185. package/dist/map/adapter/extensions/task.d.ts +40 -0
  186. package/dist/map/adapter/extensions/task.d.ts.map +1 -0
  187. package/dist/map/adapter/extensions/task.js +197 -0
  188. package/dist/map/adapter/extensions/task.js.map +1 -0
  189. package/dist/map/adapter/extensions/update-metadata.d.ts +29 -0
  190. package/dist/map/adapter/extensions/update-metadata.d.ts.map +1 -0
  191. package/dist/map/adapter/extensions/update-metadata.js +67 -0
  192. package/dist/map/adapter/extensions/update-metadata.js.map +1 -0
  193. package/dist/map/adapter/extensions/wake.d.ts +60 -0
  194. package/dist/map/adapter/extensions/wake.d.ts.map +1 -0
  195. package/dist/map/adapter/extensions/wake.js +144 -0
  196. package/dist/map/adapter/extensions/wake.js.map +1 -0
  197. package/dist/map/adapter/extensions/workspace-files.d.ts +42 -0
  198. package/dist/map/adapter/extensions/workspace-files.d.ts.map +1 -0
  199. package/dist/map/adapter/extensions/workspace-files.js +338 -0
  200. package/dist/map/adapter/extensions/workspace-files.js.map +1 -0
  201. package/dist/map/adapter/extensions/workspace.d.ts +57 -0
  202. package/dist/map/adapter/extensions/workspace.d.ts.map +1 -0
  203. package/dist/map/adapter/extensions/workspace.js +81 -0
  204. package/dist/map/adapter/extensions/workspace.js.map +1 -0
  205. package/dist/map/adapter/index.d.ts +20 -0
  206. package/dist/map/adapter/index.d.ts.map +1 -0
  207. package/dist/map/adapter/index.js +40 -0
  208. package/dist/map/adapter/index.js.map +1 -0
  209. package/dist/map/adapter/interface.d.ts +450 -0
  210. package/dist/map/adapter/interface.d.ts.map +1 -0
  211. package/dist/map/adapter/interface.js +24 -0
  212. package/dist/map/adapter/interface.js.map +1 -0
  213. package/dist/map/adapter/mail-handler-adapter.d.ts +27 -0
  214. package/dist/map/adapter/mail-handler-adapter.d.ts.map +1 -0
  215. package/dist/map/adapter/mail-handler-adapter.js +292 -0
  216. package/dist/map/adapter/mail-handler-adapter.js.map +1 -0
  217. package/dist/map/adapter/map-adapter.d.ts +200 -0
  218. package/dist/map/adapter/map-adapter.d.ts.map +1 -0
  219. package/dist/map/adapter/map-adapter.js +1199 -0
  220. package/dist/map/adapter/map-adapter.js.map +1 -0
  221. package/dist/map/adapter/rpc-handler.d.ts +263 -0
  222. package/dist/map/adapter/rpc-handler.d.ts.map +1 -0
  223. package/dist/map/adapter/rpc-handler.js +365 -0
  224. package/dist/map/adapter/rpc-handler.js.map +1 -0
  225. package/dist/map/adapter/subscription-manager.d.ts +174 -0
  226. package/dist/map/adapter/subscription-manager.d.ts.map +1 -0
  227. package/dist/map/adapter/subscription-manager.js +248 -0
  228. package/dist/map/adapter/subscription-manager.js.map +1 -0
  229. package/dist/map/adapter/types.d.ts +194 -0
  230. package/dist/map/adapter/types.d.ts.map +1 -0
  231. package/dist/map/adapter/types.js +27 -0
  232. package/dist/map/adapter/types.js.map +1 -0
  233. package/dist/map/adapter/websocket-integration.d.ts +113 -0
  234. package/dist/map/adapter/websocket-integration.d.ts.map +1 -0
  235. package/dist/map/adapter/websocket-integration.js +134 -0
  236. package/dist/map/adapter/websocket-integration.js.map +1 -0
  237. package/dist/map/cascade-action-handler.d.ts.map +1 -1
  238. package/dist/map/cascade-action-handler.js +19 -5
  239. package/dist/map/cascade-action-handler.js.map +1 -1
  240. package/dist/map/federation/envelope.d.ts +98 -0
  241. package/dist/map/federation/envelope.d.ts.map +1 -0
  242. package/dist/map/federation/envelope.js +160 -0
  243. package/dist/map/federation/envelope.js.map +1 -0
  244. package/dist/map/federation/federation-handler.d.ts +50 -0
  245. package/dist/map/federation/federation-handler.d.ts.map +1 -0
  246. package/dist/map/federation/federation-handler.js +306 -0
  247. package/dist/map/federation/federation-handler.js.map +1 -0
  248. package/dist/map/federation/index.d.ts +14 -0
  249. package/dist/map/federation/index.d.ts.map +1 -0
  250. package/dist/map/federation/index.js +13 -0
  251. package/dist/map/federation/index.js.map +1 -0
  252. package/dist/map/federation/types.d.ts +239 -0
  253. package/dist/map/federation/types.d.ts.map +1 -0
  254. package/dist/map/federation/types.js +23 -0
  255. package/dist/map/federation/types.js.map +1 -0
  256. package/dist/map/server.d.ts.map +1 -1
  257. package/dist/map/server.js +17 -2
  258. package/dist/map/server.js.map +1 -1
  259. package/dist/map/types.d.ts +6 -0
  260. package/dist/map/types.d.ts.map +1 -1
  261. package/dist/mcp/map-client.d.ts +39 -0
  262. package/dist/mcp/map-client.d.ts.map +1 -0
  263. package/dist/mcp/map-client.js +129 -0
  264. package/dist/mcp/map-client.js.map +1 -0
  265. package/dist/mcp/mcp-server.d.ts +72 -0
  266. package/dist/mcp/mcp-server.d.ts.map +1 -0
  267. package/dist/mcp/mcp-server.js +1027 -0
  268. package/dist/mcp/mcp-server.js.map +1 -0
  269. package/dist/mcp/tools/claim_task.d.ts +35 -0
  270. package/dist/mcp/tools/claim_task.d.ts.map +1 -0
  271. package/dist/mcp/tools/claim_task.js +58 -0
  272. package/dist/mcp/tools/claim_task.js.map +1 -0
  273. package/dist/mcp/tools/done-v2.d.ts +0 -1
  274. package/dist/mcp/tools/done-v2.d.ts.map +1 -1
  275. package/dist/mcp/tools/done-v2.js +0 -1
  276. package/dist/mcp/tools/done-v2.js.map +1 -1
  277. package/dist/mcp/tools/done.d.ts +102 -0
  278. package/dist/mcp/tools/done.d.ts.map +1 -0
  279. package/dist/mcp/tools/done.js +253 -0
  280. package/dist/mcp/tools/done.js.map +1 -0
  281. package/dist/mcp/tools/inject_context.d.ts +61 -0
  282. package/dist/mcp/tools/inject_context.d.ts.map +1 -0
  283. package/dist/mcp/tools/inject_context.js +123 -0
  284. package/dist/mcp/tools/inject_context.js.map +1 -0
  285. package/dist/mcp/tools/list_claimable_tasks.d.ts +38 -0
  286. package/dist/mcp/tools/list_claimable_tasks.d.ts.map +1 -0
  287. package/dist/mcp/tools/list_claimable_tasks.js +63 -0
  288. package/dist/mcp/tools/list_claimable_tasks.js.map +1 -0
  289. package/dist/mcp/tools/unclaim_task.d.ts +31 -0
  290. package/dist/mcp/tools/unclaim_task.d.ts.map +1 -0
  291. package/dist/mcp/tools/unclaim_task.js +47 -0
  292. package/dist/mcp/tools/unclaim_task.js.map +1 -0
  293. package/dist/mcp/tools/wait_for_activity.d.ts +60 -0
  294. package/dist/mcp/tools/wait_for_activity.d.ts.map +1 -0
  295. package/dist/mcp/tools/wait_for_activity.js +135 -0
  296. package/dist/mcp/tools/wait_for_activity.js.map +1 -0
  297. package/dist/monitor/health-check-service.d.ts +143 -0
  298. package/dist/monitor/health-check-service.d.ts.map +1 -0
  299. package/dist/monitor/health-check-service.js +240 -0
  300. package/dist/monitor/health-check-service.js.map +1 -0
  301. package/dist/monitor/index.d.ts +14 -0
  302. package/dist/monitor/index.d.ts.map +1 -0
  303. package/dist/monitor/index.js +14 -0
  304. package/dist/monitor/index.js.map +1 -0
  305. package/dist/monitor/stall-detector.d.ts +109 -0
  306. package/dist/monitor/stall-detector.d.ts.map +1 -0
  307. package/dist/monitor/stall-detector.js +152 -0
  308. package/dist/monitor/stall-detector.js.map +1 -0
  309. package/dist/peer/capability-manager.d.ts +56 -0
  310. package/dist/peer/capability-manager.d.ts.map +1 -0
  311. package/dist/peer/capability-manager.js +186 -0
  312. package/dist/peer/capability-manager.js.map +1 -0
  313. package/dist/peer/encapsulation-manager.d.ts +190 -0
  314. package/dist/peer/encapsulation-manager.d.ts.map +1 -0
  315. package/dist/peer/encapsulation-manager.js +486 -0
  316. package/dist/peer/encapsulation-manager.js.map +1 -0
  317. package/dist/peer/federation-manager.d.ts +223 -0
  318. package/dist/peer/federation-manager.d.ts.map +1 -0
  319. package/dist/peer/federation-manager.js +528 -0
  320. package/dist/peer/federation-manager.js.map +1 -0
  321. package/dist/peer/hierarchy-errors.d.ts +208 -0
  322. package/dist/peer/hierarchy-errors.d.ts.map +1 -0
  323. package/dist/peer/hierarchy-errors.js +268 -0
  324. package/dist/peer/hierarchy-errors.js.map +1 -0
  325. package/dist/peer/hierarchy-protocol.d.ts +159 -0
  326. package/dist/peer/hierarchy-protocol.d.ts.map +1 -0
  327. package/dist/peer/hierarchy-protocol.js +142 -0
  328. package/dist/peer/hierarchy-protocol.js.map +1 -0
  329. package/dist/peer/index.d.ts +15 -0
  330. package/dist/peer/index.d.ts.map +1 -0
  331. package/dist/peer/index.js +15 -0
  332. package/dist/peer/index.js.map +1 -0
  333. package/dist/peer/peer-manager.d.ts +99 -0
  334. package/dist/peer/peer-manager.d.ts.map +1 -0
  335. package/dist/peer/peer-manager.js +333 -0
  336. package/dist/peer/peer-manager.js.map +1 -0
  337. package/dist/peer/task-delegation.d.ts +189 -0
  338. package/dist/peer/task-delegation.d.ts.map +1 -0
  339. package/dist/peer/task-delegation.js +303 -0
  340. package/dist/peer/task-delegation.js.map +1 -0
  341. package/dist/peer/transports/index.d.ts +8 -0
  342. package/dist/peer/transports/index.d.ts.map +1 -0
  343. package/dist/peer/transports/index.js +8 -0
  344. package/dist/peer/transports/index.js.map +1 -0
  345. package/dist/peer/transports/local-transport.d.ts +56 -0
  346. package/dist/peer/transports/local-transport.d.ts.map +1 -0
  347. package/dist/peer/transports/local-transport.js +263 -0
  348. package/dist/peer/transports/local-transport.js.map +1 -0
  349. package/dist/peer/transports/websocket-transport.d.ts +86 -0
  350. package/dist/peer/transports/websocket-transport.d.ts.map +1 -0
  351. package/dist/peer/transports/websocket-transport.js +338 -0
  352. package/dist/peer/transports/websocket-transport.js.map +1 -0
  353. package/dist/peer/types.d.ts +268 -0
  354. package/dist/peer/types.d.ts.map +1 -0
  355. package/dist/peer/types.js +36 -0
  356. package/dist/peer/types.js.map +1 -0
  357. package/dist/router/address-resolver.d.ts +102 -0
  358. package/dist/router/address-resolver.d.ts.map +1 -0
  359. package/dist/router/address-resolver.js +198 -0
  360. package/dist/router/address-resolver.js.map +1 -0
  361. package/dist/router/broadcast.d.ts +53 -0
  362. package/dist/router/broadcast.d.ts.map +1 -0
  363. package/dist/router/broadcast.js +75 -0
  364. package/dist/router/broadcast.js.map +1 -0
  365. package/dist/router/channels.d.ts +148 -0
  366. package/dist/router/channels.d.ts.map +1 -0
  367. package/dist/router/channels.js +126 -0
  368. package/dist/router/channels.js.map +1 -0
  369. package/dist/router/index.d.ts +21 -0
  370. package/dist/router/index.d.ts.map +1 -0
  371. package/dist/router/index.js +18 -0
  372. package/dist/router/index.js.map +1 -0
  373. package/dist/router/message-router.d.ts +197 -0
  374. package/dist/router/message-router.d.ts.map +1 -0
  375. package/dist/router/message-router.js +903 -0
  376. package/dist/router/message-router.js.map +1 -0
  377. package/dist/router/message-types.d.ts +183 -0
  378. package/dist/router/message-types.d.ts.map +1 -0
  379. package/dist/router/message-types.js +79 -0
  380. package/dist/router/message-types.js.map +1 -0
  381. package/dist/router/role-resolver.d.ts +67 -0
  382. package/dist/router/role-resolver.d.ts.map +1 -0
  383. package/dist/router/role-resolver.js +106 -0
  384. package/dist/router/role-resolver.js.map +1 -0
  385. package/dist/router/signals.d.ts +253 -0
  386. package/dist/router/signals.d.ts.map +1 -0
  387. package/dist/router/signals.js +53 -0
  388. package/dist/router/signals.js.map +1 -0
  389. package/dist/router/types.d.ts +191 -0
  390. package/dist/router/types.d.ts.map +1 -0
  391. package/dist/router/types.js +34 -0
  392. package/dist/router/types.js.map +1 -0
  393. package/dist/router/wake.d.ts +111 -0
  394. package/dist/router/wake.d.ts.map +1 -0
  395. package/dist/router/wake.js +180 -0
  396. package/dist/router/wake.js.map +1 -0
  397. package/dist/server/combined-server.d.ts +95 -0
  398. package/dist/server/combined-server.d.ts.map +1 -0
  399. package/dist/server/combined-server.js +335 -0
  400. package/dist/server/combined-server.js.map +1 -0
  401. package/dist/steering/index.d.ts +11 -0
  402. package/dist/steering/index.d.ts.map +1 -0
  403. package/dist/steering/index.js +11 -0
  404. package/dist/steering/index.js.map +1 -0
  405. package/dist/steering/inject.d.ts +39 -0
  406. package/dist/steering/inject.d.ts.map +1 -0
  407. package/dist/steering/inject.js +197 -0
  408. package/dist/steering/inject.js.map +1 -0
  409. package/dist/steering/types.d.ts +100 -0
  410. package/dist/steering/types.d.ts.map +1 -0
  411. package/dist/steering/types.js +11 -0
  412. package/dist/steering/types.js.map +1 -0
  413. package/dist/store/backends/index.d.ts +11 -0
  414. package/dist/store/backends/index.d.ts.map +1 -0
  415. package/dist/store/backends/index.js +15 -0
  416. package/dist/store/backends/index.js.map +1 -0
  417. package/dist/store/backends/json-backend.d.ts +23 -0
  418. package/dist/store/backends/json-backend.d.ts.map +1 -0
  419. package/dist/store/backends/json-backend.js +220 -0
  420. package/dist/store/backends/json-backend.js.map +1 -0
  421. package/dist/store/backends/memory-backend.d.ts +12 -0
  422. package/dist/store/backends/memory-backend.d.ts.map +1 -0
  423. package/dist/store/backends/memory-backend.js +205 -0
  424. package/dist/store/backends/memory-backend.js.map +1 -0
  425. package/dist/store/backends/sqlite-backend.d.ts +27 -0
  426. package/dist/store/backends/sqlite-backend.d.ts.map +1 -0
  427. package/dist/store/backends/sqlite-backend.js +231 -0
  428. package/dist/store/backends/sqlite-backend.js.map +1 -0
  429. package/dist/store/backends/tinybase-backend.d.ts +22 -0
  430. package/dist/store/backends/tinybase-backend.d.ts.map +1 -0
  431. package/dist/store/backends/tinybase-backend.js +203 -0
  432. package/dist/store/backends/tinybase-backend.js.map +1 -0
  433. package/dist/store/backends/types.d.ts +175 -0
  434. package/dist/store/backends/types.d.ts.map +1 -0
  435. package/dist/store/backends/types.js +28 -0
  436. package/dist/store/backends/types.js.map +1 -0
  437. package/dist/store/event-store.d.ts +128 -0
  438. package/dist/store/event-store.d.ts.map +1 -0
  439. package/dist/store/event-store.js +1751 -0
  440. package/dist/store/event-store.js.map +1 -0
  441. package/dist/store/instance.d.ts +290 -0
  442. package/dist/store/instance.d.ts.map +1 -0
  443. package/dist/store/instance.js +363 -0
  444. package/dist/store/instance.js.map +1 -0
  445. package/dist/store/migrations.d.ts +41 -0
  446. package/dist/store/migrations.d.ts.map +1 -0
  447. package/dist/store/migrations.js +79 -0
  448. package/dist/store/migrations.js.map +1 -0
  449. package/dist/store/test-utils.d.ts +63 -0
  450. package/dist/store/test-utils.d.ts.map +1 -0
  451. package/dist/store/test-utils.js +63 -0
  452. package/dist/store/test-utils.js.map +1 -0
  453. package/dist/store/types/config.d.ts +16 -0
  454. package/dist/store/types/config.d.ts.map +1 -0
  455. package/dist/store/types/config.js +8 -0
  456. package/dist/store/types/config.js.map +1 -0
  457. package/dist/store/types/conversations.d.ts +91 -0
  458. package/dist/store/types/conversations.d.ts.map +1 -0
  459. package/dist/store/types/conversations.js +8 -0
  460. package/dist/store/types/conversations.js.map +1 -0
  461. package/dist/store/types/sessions.d.ts +44 -0
  462. package/dist/store/types/sessions.d.ts.map +1 -0
  463. package/dist/store/types/sessions.js +9 -0
  464. package/dist/store/types/sessions.js.map +1 -0
  465. package/dist/store/types.d.ts +115 -0
  466. package/dist/store/types.d.ts.map +1 -0
  467. package/dist/store/types.js +6 -0
  468. package/dist/store/types.js.map +1 -0
  469. package/dist/task/backend/index.d.ts +93 -0
  470. package/dist/task/backend/index.d.ts.map +1 -0
  471. package/dist/task/backend/index.js +178 -0
  472. package/dist/task/backend/index.js.map +1 -0
  473. package/dist/task/backend/memory.d.ts +70 -0
  474. package/dist/task/backend/memory.d.ts.map +1 -0
  475. package/dist/task/backend/memory.js +621 -0
  476. package/dist/task/backend/memory.js.map +1 -0
  477. package/dist/task/backend/opentasks/backend.d.ts +140 -0
  478. package/dist/task/backend/opentasks/backend.d.ts.map +1 -0
  479. package/dist/task/backend/opentasks/backend.js +1023 -0
  480. package/dist/task/backend/opentasks/backend.js.map +1 -0
  481. package/dist/task/backend/opentasks/client.d.ts +337 -0
  482. package/dist/task/backend/opentasks/client.d.ts.map +1 -0
  483. package/dist/task/backend/opentasks/client.js +225 -0
  484. package/dist/task/backend/opentasks/client.js.map +1 -0
  485. package/dist/task/backend/opentasks/daemon-manager.d.ts +89 -0
  486. package/dist/task/backend/opentasks/daemon-manager.d.ts.map +1 -0
  487. package/dist/task/backend/opentasks/daemon-manager.js +195 -0
  488. package/dist/task/backend/opentasks/daemon-manager.js.map +1 -0
  489. package/dist/task/backend/opentasks/index.d.ts +21 -0
  490. package/dist/task/backend/opentasks/index.d.ts.map +1 -0
  491. package/dist/task/backend/opentasks/index.js +21 -0
  492. package/dist/task/backend/opentasks/index.js.map +1 -0
  493. package/dist/task/backend/opentasks/mapping.d.ts +48 -0
  494. package/dist/task/backend/opentasks/mapping.d.ts.map +1 -0
  495. package/dist/task/backend/opentasks/mapping.js +77 -0
  496. package/dist/task/backend/opentasks/mapping.js.map +1 -0
  497. package/dist/task/backend/sudocode/__tests__/integration/test-utils.d.ts +54 -0
  498. package/dist/task/backend/sudocode/__tests__/integration/test-utils.d.ts.map +1 -0
  499. package/dist/task/backend/sudocode/__tests__/integration/test-utils.js +88 -0
  500. package/dist/task/backend/sudocode/__tests__/integration/test-utils.js.map +1 -0
  501. package/dist/task/backend/sudocode/backend.d.ts +155 -0
  502. package/dist/task/backend/sudocode/backend.d.ts.map +1 -0
  503. package/dist/task/backend/sudocode/backend.js +942 -0
  504. package/dist/task/backend/sudocode/backend.js.map +1 -0
  505. package/dist/task/backend/sudocode/client.d.ts +303 -0
  506. package/dist/task/backend/sudocode/client.d.ts.map +1 -0
  507. package/dist/task/backend/sudocode/client.js +101 -0
  508. package/dist/task/backend/sudocode/client.js.map +1 -0
  509. package/dist/task/backend/sudocode/index.d.ts +19 -0
  510. package/dist/task/backend/sudocode/index.d.ts.map +1 -0
  511. package/dist/task/backend/sudocode/index.js +17 -0
  512. package/dist/task/backend/sudocode/index.js.map +1 -0
  513. package/dist/task/backend/sudocode/mapping.d.ts +51 -0
  514. package/dist/task/backend/sudocode/mapping.d.ts.map +1 -0
  515. package/dist/task/backend/sudocode/mapping.js +86 -0
  516. package/dist/task/backend/sudocode/mapping.js.map +1 -0
  517. package/dist/task/backend/sudocode/server-client.d.ts +56 -0
  518. package/dist/task/backend/sudocode/server-client.d.ts.map +1 -0
  519. package/dist/task/backend/sudocode/server-client.js +367 -0
  520. package/dist/task/backend/sudocode/server-client.js.map +1 -0
  521. package/dist/task/backend/sudocode/standalone-client.d.ts +91 -0
  522. package/dist/task/backend/sudocode/standalone-client.d.ts.map +1 -0
  523. package/dist/task/backend/sudocode/standalone-client.js +476 -0
  524. package/dist/task/backend/sudocode/standalone-client.js.map +1 -0
  525. package/dist/task/backend/sudocode/sync-policy.d.ts +166 -0
  526. package/dist/task/backend/sudocode/sync-policy.d.ts.map +1 -0
  527. package/dist/task/backend/sudocode/sync-policy.js +221 -0
  528. package/dist/task/backend/sudocode/sync-policy.js.map +1 -0
  529. package/dist/task/backend/sudocode/tools.d.ts +87 -0
  530. package/dist/task/backend/sudocode/tools.d.ts.map +1 -0
  531. package/dist/task/backend/sudocode/tools.js +743 -0
  532. package/dist/task/backend/sudocode/tools.js.map +1 -0
  533. package/dist/task/backend/tool-provider.d.ts +56 -0
  534. package/dist/task/backend/tool-provider.d.ts.map +1 -0
  535. package/dist/task/backend/tool-provider.js +424 -0
  536. package/dist/task/backend/tool-provider.js.map +1 -0
  537. package/dist/task/backend/types.d.ts +297 -0
  538. package/dist/task/backend/types.d.ts.map +1 -0
  539. package/dist/task/backend/types.js +27 -0
  540. package/dist/task/backend/types.js.map +1 -0
  541. package/dist/task/backend/unified-tool-provider.d.ts +57 -0
  542. package/dist/task/backend/unified-tool-provider.d.ts.map +1 -0
  543. package/dist/task/backend/unified-tool-provider.js +623 -0
  544. package/dist/task/backend/unified-tool-provider.js.map +1 -0
  545. package/dist/task/index.d.ts +7 -0
  546. package/dist/task/index.d.ts.map +1 -0
  547. package/dist/task/index.js +7 -0
  548. package/dist/task/index.js.map +1 -0
  549. package/dist/task/retry-policy.d.ts +89 -0
  550. package/dist/task/retry-policy.d.ts.map +1 -0
  551. package/dist/task/retry-policy.js +160 -0
  552. package/dist/task/retry-policy.js.map +1 -0
  553. package/dist/task/task-manager.d.ts +70 -0
  554. package/dist/task/task-manager.d.ts.map +1 -0
  555. package/dist/task/task-manager.js +319 -0
  556. package/dist/task/task-manager.js.map +1 -0
  557. package/dist/task/types.d.ts +72 -0
  558. package/dist/task/types.d.ts.map +1 -0
  559. package/dist/task/types.js +33 -0
  560. package/dist/task/types.js.map +1 -0
  561. package/dist/teams/team-loader.d.ts +2 -1
  562. package/dist/teams/team-loader.d.ts.map +1 -1
  563. package/dist/teams/team-loader.js +2 -1
  564. package/dist/teams/team-loader.js.map +1 -1
  565. package/dist/teams/team-manager.d.ts +101 -0
  566. package/dist/teams/team-manager.d.ts.map +1 -0
  567. package/dist/teams/team-manager.js +260 -0
  568. package/dist/teams/team-manager.js.map +1 -0
  569. package/dist/teams/team-runtime-v2.d.ts +0 -3
  570. package/dist/teams/team-runtime-v2.d.ts.map +1 -1
  571. package/dist/teams/team-runtime-v2.js +8 -87
  572. package/dist/teams/team-runtime-v2.js.map +1 -1
  573. package/dist/teams/team-runtime.d.ts +245 -0
  574. package/dist/teams/team-runtime.d.ts.map +1 -0
  575. package/dist/teams/team-runtime.js +1023 -0
  576. package/dist/teams/team-runtime.js.map +1 -0
  577. package/dist/trigger/router/index.d.ts +11 -0
  578. package/dist/trigger/router/index.d.ts.map +1 -0
  579. package/dist/trigger/router/index.js +10 -0
  580. package/dist/trigger/router/index.js.map +1 -0
  581. package/dist/trigger/router/strategies/ai-router-strategy.d.ts +34 -0
  582. package/dist/trigger/router/strategies/ai-router-strategy.d.ts.map +1 -0
  583. package/dist/trigger/router/strategies/ai-router-strategy.js +359 -0
  584. package/dist/trigger/router/strategies/ai-router-strategy.js.map +1 -0
  585. package/dist/trigger/router/strategies/direct-strategy.d.ts +32 -0
  586. package/dist/trigger/router/strategies/direct-strategy.d.ts.map +1 -0
  587. package/dist/trigger/router/strategies/direct-strategy.js +119 -0
  588. package/dist/trigger/router/strategies/direct-strategy.js.map +1 -0
  589. package/dist/trigger/router/strategies/index.d.ts +11 -0
  590. package/dist/trigger/router/strategies/index.d.ts.map +1 -0
  591. package/dist/trigger/router/strategies/index.js +11 -0
  592. package/dist/trigger/router/strategies/index.js.map +1 -0
  593. package/dist/trigger/router/strategies/role-strategy.d.ts +39 -0
  594. package/dist/trigger/router/strategies/role-strategy.d.ts.map +1 -0
  595. package/dist/trigger/router/strategies/role-strategy.js +207 -0
  596. package/dist/trigger/router/strategies/role-strategy.js.map +1 -0
  597. package/dist/trigger/router/trigger-router.d.ts +54 -0
  598. package/dist/trigger/router/trigger-router.d.ts.map +1 -0
  599. package/dist/trigger/router/trigger-router.js +362 -0
  600. package/dist/trigger/router/trigger-router.js.map +1 -0
  601. package/dist/trigger/router/types.d.ts +225 -0
  602. package/dist/trigger/router/types.d.ts.map +1 -0
  603. package/dist/trigger/router/types.js +10 -0
  604. package/dist/trigger/router/types.js.map +1 -0
  605. package/dist/trigger/sources/cron/cron-service.d.ts.map +1 -1
  606. package/dist/trigger/sources/cron/cron-service.js +6 -3
  607. package/dist/trigger/sources/cron/cron-service.js.map +1 -1
  608. package/dist/trigger/trigger-system.d.ts +77 -0
  609. package/dist/trigger/trigger-system.d.ts.map +1 -0
  610. package/dist/trigger/trigger-system.js +84 -0
  611. package/dist/trigger/trigger-system.js.map +1 -0
  612. package/dist/util/git-safety.d.ts +33 -0
  613. package/dist/util/git-safety.d.ts.map +1 -0
  614. package/dist/util/git-safety.js +94 -0
  615. package/dist/util/git-safety.js.map +1 -0
  616. package/dist/workspace/dataplane-adapter.d.ts +260 -0
  617. package/dist/workspace/dataplane-adapter.d.ts.map +1 -0
  618. package/dist/workspace/dataplane-adapter.js +416 -0
  619. package/dist/workspace/dataplane-adapter.js.map +1 -0
  620. package/dist/workspace/index.d.ts +0 -1
  621. package/dist/workspace/index.d.ts.map +1 -1
  622. package/dist/workspace/index.js +0 -2
  623. package/dist/workspace/index.js.map +1 -1
  624. package/dist/workspace/landing/direct-push.d.ts.map +1 -1
  625. package/dist/workspace/landing/direct-push.js +22 -7
  626. package/dist/workspace/landing/direct-push.js.map +1 -1
  627. package/dist/workspace/landing/queue-to-branch.d.ts.map +1 -1
  628. package/dist/workspace/landing/queue-to-branch.js +1 -3
  629. package/dist/workspace/landing/queue-to-branch.js.map +1 -1
  630. package/dist/workspace/types.d.ts +0 -13
  631. package/dist/workspace/types.d.ts.map +1 -1
  632. package/dist/workspace/workspace-manager.d.ts +0 -11
  633. package/dist/workspace/workspace-manager.d.ts.map +1 -1
  634. package/dist/workspace/workspace-manager.js +0 -30
  635. package/dist/workspace/workspace-manager.js.map +1 -1
  636. package/package.json +28 -2
  637. package/templates/teams/self-driving/prompts/grinder.md +1 -0
  638. package/templates/teams/self-driving/prompts/judge.md +1 -0
  639. package/templates/teams/self-driving/prompts/planner.md +1 -0
  640. package/templates/teams/self-driving/roles/grinder.yaml +15 -0
  641. package/templates/teams/self-driving/roles/judge.yaml +10 -0
  642. package/templates/teams/self-driving/roles/planner.yaml +16 -0
  643. package/.claude/commands/openspec/apply.md +0 -23
  644. package/.claude/commands/openspec/archive.md +0 -27
  645. package/.claude/commands/openspec/proposal.md +0 -28
  646. package/.claude/settings.json +0 -133
  647. package/.gitattributes +0 -3
  648. package/.opentasks/config.json +0 -9
  649. package/.opentasks/graph.jsonl +0 -0
  650. package/.sessionlog/settings.json +0 -4
  651. package/.sudocode/issues.jsonl +0 -183
  652. package/.sudocode/specs.jsonl +0 -56
  653. package/AGENTS.md +0 -18
  654. package/CLAUDE.md +0 -923
  655. package/docs/architecture.md +0 -508
  656. package/docs/configuration.md +0 -323
  657. package/docs/conflict-recovery.md +0 -472
  658. package/docs/design/task-dispatcher.md +0 -880
  659. package/docs/design-subsystem-extraction.md +0 -627
  660. package/docs/git-cascade-integration-gaps.md +0 -678
  661. package/docs/implementation-details.md +0 -1127
  662. package/docs/implementation-summary.md +0 -448
  663. package/docs/lifecycle-events-design.md +0 -111
  664. package/docs/mail-integration.md +0 -608
  665. package/docs/openhive-capability-summary.md +0 -415
  666. package/docs/openhive-integration.md +0 -415
  667. package/docs/plan-self-driving-support.md +0 -433
  668. package/docs/roadmap-v2-gaps.md +0 -216
  669. package/docs/spec-self-driving-support.md +0 -462
  670. package/docs/team-templates.md +0 -860
  671. package/docs/teams.md +0 -306
  672. package/docs/trigger-system-design.md +0 -333
  673. package/docs/troubleshooting.md +0 -489
  674. package/docs/workspace-interfaces.md +0 -731
  675. package/docs/workspace-redesign-plan.md +0 -302
  676. package/examples/distributed-peer-communication.ts +0 -202
  677. package/examples/local-peer-communication.ts +0 -165
  678. package/index.js +0 -2
  679. package/mvp_docs/agent-execution-system.md +0 -347
  680. package/mvp_docs/agent-interface.md +0 -580
  681. package/mvp_docs/data-structures.md +0 -701
  682. package/mvp_docs/dynamic-meta-orchestration.md +0 -116
  683. package/mvp_docs/multi-agent-interaction-design.md +0 -779
  684. package/mvp_docs/mvp-implementation-plan.md +0 -1148
  685. package/renovate.json5 +0 -6
  686. package/scripts/test-acp-integration.ts +0 -422
  687. package/src/__tests__/boot-v2.test.ts +0 -631
  688. package/src/__tests__/e2e/acp-over-map-live.e2e.test.ts +0 -496
  689. package/src/__tests__/e2e/acp-over-map.e2e.test.ts +0 -457
  690. package/src/__tests__/e2e/agent-lifecycle.e2e.test.ts +0 -770
  691. package/src/__tests__/e2e/auto-sync.e2e.test.ts +0 -257
  692. package/src/__tests__/e2e/bootstrap.e2e.test.ts +0 -319
  693. package/src/__tests__/e2e/cascade-rebase.e2e.test.ts +0 -254
  694. package/src/__tests__/e2e/cc-swarm-bridge.e2e.test.ts +0 -253
  695. package/src/__tests__/e2e/cli-run.e2e.test.ts +0 -167
  696. package/src/__tests__/e2e/cognitive-workspace.e2e.test.ts +0 -282
  697. package/src/__tests__/e2e/dispatch-coordination.e2e.test.ts +0 -495
  698. package/src/__tests__/e2e/dispatch-live.e2e.test.ts +0 -564
  699. package/src/__tests__/e2e/dispatch-opentasks.e2e.test.ts +0 -496
  700. package/src/__tests__/e2e/dispatch-phase2-live.e2e.test.ts +0 -456
  701. package/src/__tests__/e2e/dispatch-phase2.e2e.test.ts +0 -386
  702. package/src/__tests__/e2e/dispatch.e2e.test.ts +0 -376
  703. package/src/__tests__/e2e/done-scenarios.e2e.test.ts +0 -322
  704. package/src/__tests__/e2e/live-agent.e2e.test.ts +0 -1330
  705. package/src/__tests__/e2e/map-server.e2e.test.ts +0 -128
  706. package/src/__tests__/e2e/map-sidecar.e2e.test.ts +0 -139
  707. package/src/__tests__/e2e/opentasks-integration.e2e.test.ts +0 -280
  708. package/src/__tests__/e2e/pull-mode.e2e.test.ts +0 -632
  709. package/src/__tests__/e2e/resume-continue.e2e.test.ts +0 -312
  710. package/src/__tests__/e2e/self-driving-v3.e2e.test.ts +0 -197
  711. package/src/__tests__/e2e/spawn-resolver.e2e.test.ts +0 -200
  712. package/src/__tests__/e2e/swarmkit-integration.e2e.test.ts +0 -562
  713. package/src/__tests__/e2e/swarmkit-live.e2e.test.ts +0 -1049
  714. package/src/__tests__/e2e/trajectory-tracking.e2e.test.ts +0 -258
  715. package/src/__tests__/e2e/trigger-wake.e2e.test.ts +0 -257
  716. package/src/__tests__/e2e/workspace-lifecycle.e2e.test.ts +0 -383
  717. package/src/__tests__/e2e/workspace-v3.e2e.test.ts +0 -413
  718. package/src/acp/__tests__/claude-code-replay.test.ts +0 -225
  719. package/src/acp/__tests__/macro-agent.test.ts +0 -387
  720. package/src/acp/__tests__/session-mapper.test.ts +0 -152
  721. package/src/acp/__tests__/websocket-server.test.ts +0 -194
  722. package/src/acp/claude-code-replay.ts +0 -208
  723. package/src/acp/index.ts +0 -32
  724. package/src/acp/macro-agent.ts +0 -995
  725. package/src/acp/map-bridge.ts +0 -193
  726. package/src/acp/session-mapper.ts +0 -116
  727. package/src/acp/types.ts +0 -99
  728. package/src/acp/websocket-server.ts +0 -213
  729. package/src/adapters/__tests__/federation.test.ts +0 -256
  730. package/src/adapters/__tests__/inbox-adapter.test.ts +0 -316
  731. package/src/adapters/__tests__/tasks-adapter.test.ts +0 -270
  732. package/src/adapters/federation.ts +0 -185
  733. package/src/adapters/inbox-adapter.ts +0 -292
  734. package/src/adapters/inbox-client-adapter.ts +0 -173
  735. package/src/adapters/index.ts +0 -44
  736. package/src/adapters/opentasks-daemon.ts +0 -252
  737. package/src/adapters/tasks-adapter.ts +0 -330
  738. package/src/adapters/types.ts +0 -286
  739. package/src/agent/__tests__/agent-manager-topology.test.ts +0 -73
  740. package/src/agent/__tests__/agent-manager-v2.completion-signal.test.ts +0 -284
  741. package/src/agent/__tests__/agent-manager-v2.permission-interception.test.ts +0 -296
  742. package/src/agent/__tests__/agent-manager-v2.permissions.test.ts +0 -233
  743. package/src/agent/__tests__/agent-manager-v2.test.ts +0 -614
  744. package/src/agent/__tests__/agent-store.test.ts +0 -465
  745. package/src/agent/__tests__/task-ref-resolution.test.ts +0 -231
  746. package/src/agent/agent-manager-v2.ts +0 -2187
  747. package/src/agent/agent-manager.ts +0 -403
  748. package/src/agent/agent-store.ts +0 -409
  749. package/src/agent/index.ts +0 -7
  750. package/src/agent/prompts/coordinator-signals.ts +0 -115
  751. package/src/agent/prompts/index.ts +0 -7
  752. package/src/agent/system-prompt.ts +0 -298
  753. package/src/agent/types.ts +0 -480
  754. package/src/agent-detection/__tests__/command-builder.test.ts +0 -336
  755. package/src/agent-detection/__tests__/detector.test.ts +0 -768
  756. package/src/agent-detection/__tests__/registry.test.ts +0 -254
  757. package/src/agent-detection/command-builder.ts +0 -90
  758. package/src/agent-detection/detector.ts +0 -307
  759. package/src/agent-detection/index.ts +0 -36
  760. package/src/agent-detection/registry.ts +0 -200
  761. package/src/agent-detection/types.ts +0 -184
  762. package/src/api/__tests__/server.test.ts +0 -292
  763. package/src/api/index.ts +0 -8
  764. package/src/api/server.ts +0 -380
  765. package/src/api/types.ts +0 -39
  766. package/src/auth/__tests__/token.test.ts +0 -100
  767. package/src/auth/index.ts +0 -1
  768. package/src/auth/token.ts +0 -82
  769. package/src/boot-v2.ts +0 -1343
  770. package/src/cli/__tests__/stable-instance-id.test.ts +0 -57
  771. package/src/cli/acp.ts +0 -101
  772. package/src/cli/inbox-mcp-proxy.ts +0 -56
  773. package/src/cli/index.ts +0 -566
  774. package/src/cli/mcp.ts +0 -305
  775. package/src/cli/parse-args.ts +0 -54
  776. package/src/cli/stable-instance-id.ts +0 -14
  777. package/src/cognitive/__tests__/macro-agent-backend.test.ts +0 -673
  778. package/src/cognitive/__tests__/session-converter.test.ts +0 -423
  779. package/src/cognitive/__tests__/workspace-handler.test.ts +0 -221
  780. package/src/cognitive/analyst-role.ts +0 -59
  781. package/src/cognitive/index.ts +0 -49
  782. package/src/cognitive/macro-agent-backend.ts +0 -402
  783. package/src/cognitive/session-converter.ts +0 -151
  784. package/src/cognitive/types.ts +0 -187
  785. package/src/cognitive/workspace-handler.ts +0 -163
  786. package/src/config/index.ts +0 -9
  787. package/src/config/project-config.ts +0 -294
  788. package/src/control/__tests__/control-resilience.test.ts +0 -251
  789. package/src/control/__tests__/control-socket.test.ts +0 -240
  790. package/src/control/control-client.ts +0 -337
  791. package/src/control/control-server.ts +0 -298
  792. package/src/control/index.ts +0 -17
  793. package/src/control/types.ts +0 -95
  794. package/src/dispatch/CLAUDE.md +0 -129
  795. package/src/dispatch/__tests__/loadout-translation.test.ts +0 -141
  796. package/src/dispatch/__tests__/mail-inbound-consumer.integration.test.ts +0 -519
  797. package/src/dispatch/__tests__/mail-inbound-consumer.test.ts +0 -800
  798. package/src/dispatch/__tests__/mail-inbound-reuse-consumer.test.ts +0 -575
  799. package/src/dispatch/__tests__/permission-evaluator.test.ts +0 -196
  800. package/src/dispatch/__tests__/permission-overlay.test.ts +0 -56
  801. package/src/dispatch/__tests__/permissions-handler.test.ts +0 -168
  802. package/src/dispatch/__tests__/spawn-agent-handler.test.ts +0 -282
  803. package/src/dispatch/loadout-translation.ts +0 -138
  804. package/src/dispatch/mail-inbound-consumer.ts +0 -560
  805. package/src/dispatch/mail-inbound-reuse-consumer.ts +0 -479
  806. package/src/dispatch/permission-evaluator.ts +0 -191
  807. package/src/dispatch/permission-overlay.ts +0 -89
  808. package/src/dispatch/permissions-handler.ts +0 -112
  809. package/src/dispatch/spawn-agent-handler.ts +0 -160
  810. package/src/index.ts +0 -117
  811. package/src/integrations/__tests__/context-builder.test.ts +0 -218
  812. package/src/integrations/__tests__/sessionlog.test.ts +0 -498
  813. package/src/integrations/__tests__/skilltree.test.ts +0 -136
  814. package/src/integrations/context-builder.ts +0 -280
  815. package/src/integrations/sessionlog.ts +0 -194
  816. package/src/integrations/skilltree.ts +0 -184
  817. package/src/lifecycle/__tests__/cascade-consolidation.test.ts +0 -240
  818. package/src/lifecycle/__tests__/handlers-v2.test.ts +0 -565
  819. package/src/lifecycle/cascade.ts +0 -335
  820. package/src/lifecycle/cleanup.ts +0 -373
  821. package/src/lifecycle/handlers-v2.ts +0 -508
  822. package/src/lifecycle/index.ts +0 -76
  823. package/src/lifecycle/types.ts +0 -260
  824. package/src/map/__tests__/cascade-bridge.test.ts +0 -229
  825. package/src/map/__tests__/cascade-diff-server.test.ts +0 -434
  826. package/src/map/__tests__/emit-event.test.ts +0 -71
  827. package/src/map/__tests__/lifecycle-bridge.test.ts +0 -430
  828. package/src/map/__tests__/mail-bridge.test.ts +0 -321
  829. package/src/map/__tests__/permission-forwarding.test.ts +0 -143
  830. package/src/map/__tests__/sidecar-diff-install-smoke.test.ts +0 -90
  831. package/src/map/__tests__/sidecar-integration.test.ts +0 -190
  832. package/src/map/__tests__/task-bridge.test.ts +0 -153
  833. package/src/map/__tests__/trajectory-reporter.test.ts +0 -173
  834. package/src/map/acp-bridge.ts +0 -293
  835. package/src/map/cascade-action-handler.ts +0 -205
  836. package/src/map/cascade-bridge.ts +0 -339
  837. package/src/map/cascade-diff-server.ts +0 -404
  838. package/src/map/cc-swarm-hooks.ts +0 -242
  839. package/src/map/coordination-handler.ts +0 -232
  840. package/src/map/index.ts +0 -18
  841. package/src/map/lifecycle-bridge.ts +0 -236
  842. package/src/map/mail-bridge.ts +0 -263
  843. package/src/map/repo-workspace.ts +0 -82
  844. package/src/map/server.ts +0 -758
  845. package/src/map/sidecar.ts +0 -826
  846. package/src/map/task-bridge.ts +0 -89
  847. package/src/map/trajectory-reporter.ts +0 -124
  848. package/src/map/types.ts +0 -304
  849. package/src/mcp/__tests__/mcp-server-v2.test.ts +0 -236
  850. package/src/mcp/index.ts +0 -6
  851. package/src/mcp/mcp-server-v2.ts +0 -485
  852. package/src/mcp/tools/done-v2.ts +0 -213
  853. package/src/mcp/types.ts +0 -432
  854. package/src/metrics/__tests__/metrics.test.ts +0 -205
  855. package/src/metrics/index.ts +0 -13
  856. package/src/metrics/metrics.ts +0 -151
  857. package/src/metrics/types.ts +0 -63
  858. package/src/roles/__tests__/config-loader.test.ts +0 -540
  859. package/src/roles/builtin/coordinator.ts +0 -75
  860. package/src/roles/builtin/generic.ts +0 -39
  861. package/src/roles/builtin/index.ts +0 -51
  862. package/src/roles/builtin/integrator.ts +0 -62
  863. package/src/roles/builtin/monitor.ts +0 -65
  864. package/src/roles/builtin/worker.ts +0 -134
  865. package/src/roles/capabilities.ts +0 -257
  866. package/src/roles/config-loader.ts +0 -405
  867. package/src/roles/index.ts +0 -141
  868. package/src/roles/registry.ts +0 -713
  869. package/src/roles/types.ts +0 -344
  870. package/src/store/index.ts +0 -8
  871. package/src/store/types/agents.ts +0 -69
  872. package/src/store/types/events.ts +0 -91
  873. package/src/store/types/index.ts +0 -9
  874. package/src/store/types/messages.ts +0 -32
  875. package/src/store/types/primitives.ts +0 -9
  876. package/src/store/types/tasks.ts +0 -124
  877. package/src/teams/__tests__/team-manager-v2.test.ts +0 -425
  878. package/src/teams/__tests__/team-runtime-v2.test.ts +0 -402
  879. package/src/teams/index.ts +0 -29
  880. package/src/teams/seed-defaults.ts +0 -83
  881. package/src/teams/team-loader.ts +0 -476
  882. package/src/teams/team-manager-v2.ts +0 -343
  883. package/src/teams/team-runtime-v2.ts +0 -943
  884. package/src/teams/types.ts +0 -276
  885. package/src/trigger/__tests__/cron-service.test.ts +0 -548
  886. package/src/trigger/__tests__/scheduler.test.ts +0 -371
  887. package/src/trigger/__tests__/system-event-queue.test.ts +0 -147
  888. package/src/trigger/__tests__/trigger-system-v2.test.ts +0 -257
  889. package/src/trigger/__tests__/wake-manager.test.ts +0 -356
  890. package/src/trigger/__tests__/webhook-handler.test.ts +0 -567
  891. package/src/trigger/index.ts +0 -110
  892. package/src/trigger/queue/index.ts +0 -21
  893. package/src/trigger/queue/system-event-queue.ts +0 -232
  894. package/src/trigger/queue/types.ts +0 -149
  895. package/src/trigger/sources/cron/cron-service.ts +0 -499
  896. package/src/trigger/sources/cron/index.ts +0 -41
  897. package/src/trigger/sources/cron/scheduler.ts +0 -344
  898. package/src/trigger/sources/cron/types.ts +0 -333
  899. package/src/trigger/sources/index.ts +0 -10
  900. package/src/trigger/sources/webhook/index.ts +0 -25
  901. package/src/trigger/sources/webhook/types.ts +0 -205
  902. package/src/trigger/sources/webhook/webhook-handler.ts +0 -410
  903. package/src/trigger/strategies/ai-router.ts +0 -170
  904. package/src/trigger/trigger-system-v2.ts +0 -536
  905. package/src/trigger/types.ts +0 -228
  906. package/src/trigger/wake/index.ts +0 -22
  907. package/src/trigger/wake/types.ts +0 -162
  908. package/src/trigger/wake/wake-manager.ts +0 -390
  909. package/src/workspace/__tests__/git-cascade-adapter.test.ts +0 -563
  910. package/src/workspace/__tests__/land-dispatch.test.ts +0 -214
  911. package/src/workspace/__tests__/self-driving-yaml.test.ts +0 -122
  912. package/src/workspace/__tests__/shared-worktree-refcount.test.ts +0 -154
  913. package/src/workspace/__tests__/standalone-mode.test.ts +0 -118
  914. package/src/workspace/__tests__/workspace-manager-v3.test.ts +0 -245
  915. package/src/workspace/__tests__/yaml-schema.test.ts +0 -210
  916. package/src/workspace/config.ts +0 -165
  917. package/src/workspace/git-cascade-adapter.ts +0 -1213
  918. package/src/workspace/index.ts +0 -110
  919. package/src/workspace/landing/__tests__/strategies.test.ts +0 -184
  920. package/src/workspace/landing/direct-push.ts +0 -91
  921. package/src/workspace/landing/index.ts +0 -40
  922. package/src/workspace/landing/merge-to-parent.ts +0 -229
  923. package/src/workspace/landing/optimistic-push.ts +0 -36
  924. package/src/workspace/landing/queue-to-branch.ts +0 -108
  925. package/src/workspace/merge-queue/__tests__/conflict-resolution-git.e2e.test.ts +0 -641
  926. package/src/workspace/merge-queue/__tests__/conflict-resolution.test.ts +0 -707
  927. package/src/workspace/merge-queue/__tests__/merge-queue-concurrent.test.ts +0 -628
  928. package/src/workspace/merge-queue/__tests__/merge-queue-edge-cases.test.ts +0 -1217
  929. package/src/workspace/merge-queue/__tests__/merge-queue.test.ts +0 -506
  930. package/src/workspace/merge-queue/__tests__/real-git-operations.e2e.test.ts +0 -556
  931. package/src/workspace/merge-queue/__tests__/resolver-flow.test.ts +0 -472
  932. package/src/workspace/merge-queue/index.ts +0 -38
  933. package/src/workspace/merge-queue/merge-queue.ts +0 -585
  934. package/src/workspace/merge-queue/schema.ts +0 -98
  935. package/src/workspace/merge-queue/types.ts +0 -316
  936. package/src/workspace/pool/__tests__/worktree-pool.integration.test.ts +0 -1281
  937. package/src/workspace/pool/__tests__/worktree-pool.test.ts +0 -590
  938. package/src/workspace/pool/index.ts +0 -26
  939. package/src/workspace/pool/types.ts +0 -276
  940. package/src/workspace/pool/worktree-pool.ts +0 -659
  941. package/src/workspace/recovery/__tests__/auto-resolve-integration.test.ts +0 -127
  942. package/src/workspace/recovery/__tests__/spawn-resolver.test.ts +0 -139
  943. package/src/workspace/recovery/__tests__/strategies.test.ts +0 -145
  944. package/src/workspace/recovery/abandon.ts +0 -51
  945. package/src/workspace/recovery/auto-resolve.ts +0 -119
  946. package/src/workspace/recovery/defer.ts +0 -23
  947. package/src/workspace/recovery/escalate.ts +0 -30
  948. package/src/workspace/recovery/index.ts +0 -58
  949. package/src/workspace/recovery/spawn-resolver.ts +0 -152
  950. package/src/workspace/recovery/types.ts +0 -54
  951. package/src/workspace/strategies/index.ts +0 -18
  952. package/src/workspace/strategies/optimistic.ts +0 -139
  953. package/src/workspace/strategies/queue.ts +0 -81
  954. package/src/workspace/strategies/registry.ts +0 -89
  955. package/src/workspace/strategies/trunk.ts +0 -123
  956. package/src/workspace/strategies/types.ts +0 -145
  957. package/src/workspace/topology/__tests__/yaml-driven.test.ts +0 -345
  958. package/src/workspace/topology/index.ts +0 -18
  959. package/src/workspace/topology/no-workspace.ts +0 -39
  960. package/src/workspace/topology/types.ts +0 -116
  961. package/src/workspace/topology/yaml-driven.ts +0 -316
  962. package/src/workspace/types-v3.ts +0 -162
  963. package/src/workspace/types.ts +0 -541
  964. package/src/workspace/workspace-manager.ts +0 -1577
  965. package/src/workspace/yaml-schema.ts +0 -216
  966. package/test_fixtures/README.md +0 -425
  967. package/test_fixtures/fixtures/behaviors/coordinators.ts +0 -196
  968. package/test_fixtures/fixtures/behaviors/index.ts +0 -62
  969. package/test_fixtures/fixtures/behaviors/integrators.ts +0 -143
  970. package/test_fixtures/fixtures/behaviors/monitors.ts +0 -199
  971. package/test_fixtures/fixtures/behaviors/workers.ts +0 -348
  972. package/test_fixtures/fixtures/index.ts +0 -7
  973. package/test_fixtures/fixtures/projects/index.ts +0 -23
  974. package/test_fixtures/fixtures/projects/project-with-specs.ts +0 -44
  975. package/test_fixtures/fixtures/projects/typescript-project.ts +0 -200
  976. package/test_fixtures/fixtures/repos/index.ts +0 -6
  977. package/test_fixtures/fixtures/repos/temp-repo-factory.ts +0 -299
  978. package/test_fixtures/fixtures/repos/types.ts +0 -174
  979. package/test_fixtures/harness/assertions/harness-assertions.ts +0 -752
  980. package/test_fixtures/harness/assertions/index.ts +0 -8
  981. package/test_fixtures/harness/index.ts +0 -15
  982. package/test_fixtures/harness/simulator/agent-simulator.ts +0 -768
  983. package/test_fixtures/harness/simulator/behavior-executor.ts +0 -580
  984. package/test_fixtures/harness/simulator/index.ts +0 -14
  985. package/test_fixtures/harness/simulator/types.ts +0 -459
  986. package/test_fixtures/harness/test-harness.ts +0 -770
  987. package/test_fixtures/harness/timing/event-stepper.ts +0 -344
  988. package/test_fixtures/harness/timing/index.ts +0 -8
  989. package/tsconfig.json +0 -21
  990. package/vitest.config.ts +0 -30
  991. package/vitest.e2e.config.ts +0 -28
  992. package/vitest.setup.ts +0 -12
@@ -0,0 +1,903 @@
1
+ /**
2
+ * MessageRouter - Core Internal Message Routing Service
3
+ *
4
+ * ## Routing Architecture
5
+ *
6
+ * MessageRouter is the **core internal routing authority** for macro-agent.
7
+ * It handles all message delivery between internal agents.
8
+ *
9
+ * ```
10
+ * External → MAPAdapter/TriggerRouter → MessageRouter → EventStore
11
+ * (protocol translation) (routing logic) (persistence)
12
+ * ```
13
+ *
14
+ * **Three routing entry points exist:**
15
+ *
16
+ * 1. **MessageRouter** (this module)
17
+ * - Internal routing for agent-to-agent communication
18
+ * - Supports: send(), sendToAddress(), emitStatus()
19
+ * - Used by: AgentManager, MCP tools, internal components
20
+ *
21
+ * 2. **MAPAdapter** (src/map/adapter/)
22
+ * - External MAP protocol interface for clients/agents/gateways
23
+ * - Translates MAP protocol → internal routing
24
+ * - Delegates message delivery to MessageRouter
25
+ *
26
+ * 3. **TriggerRouter** (src/trigger/router/)
27
+ * - External event routing (webhooks, cron, system events)
28
+ * - Queues events for batch delivery
29
+ * - Uses WakeManager for delivery scheduling
30
+ *
31
+ * ## Supported Routing Methods
32
+ *
33
+ * **Legacy Channel-based** (send, sendMessage):
34
+ * - Direct agent, task, topic, lineage, subtree, broadcast
35
+ *
36
+ * **MAP Address-based** (sendToAddress):
37
+ * - Agent, agents, task, scope, role, broadcast, hierarchical, federated
38
+ *
39
+ * @module router/message-router
40
+ */
41
+ import { nanoid } from "nanoid";
42
+ import { AddressRoutingError, DEFAULT_TRUNCATION_CONFIG } from "./types.js";
43
+ import { resolveBroadcastTarget, } from "./broadcast.js";
44
+ import { resolveRoleTarget, } from "./role-resolver.js";
45
+ import { getWakeDecisionWithHint, } from "./wake.js";
46
+ import { isAgentAddress, isAgentsAddress, isScopeAddress, isRoleAddress, isTaskAddress, isBroadcastAddress, isHierarchicalAddress, isFederatedAddress, describeAddress, } from "../map/types.js";
47
+ import { getSystemFromAddress } from "../map/federation/federation-handler.js";
48
+ import { resolveHierarchicalAddress, } from "./address-resolver.js";
49
+ /**
50
+ * Create a MessageRouter instance
51
+ */
52
+ export function createMessageRouter(eventStore, config = {}) {
53
+ const truncationConfig = config.truncation ?? DEFAULT_TRUNCATION_CONFIG;
54
+ const agentSpawner = config.agentSpawner;
55
+ const agentSessionChecker = config.agentSessionChecker;
56
+ const sessionChecker = config.sessionChecker;
57
+ const wakeHandler = config.wakeHandler;
58
+ const federationHandler = config.federationHandler;
59
+ // Turn recorder for conversation tracking (late-bound)
60
+ let turnRecorder;
61
+ // Signal filter for status notification delivery (late-bound)
62
+ let signalFilter;
63
+ // Emission validator for outbound status events (late-bound)
64
+ let emissionValidator;
65
+ // Track acknowledged messages: Map<agentId, Set<messageId>>
66
+ const acknowledgedMessages = new Map();
67
+ // ─────────────────────────────────────────────────────────────────
68
+ // Message Operations
69
+ // ─────────────────────────────────────────────────────────────────
70
+ /**
71
+ * Send a message using MAP Address-based routing.
72
+ */
73
+ async function sendToAddress(request) {
74
+ const { from, to, content, options = {} } = request;
75
+ const { priority = "normal", delivery, correlationId } = options;
76
+ // Handle hierarchical addresses using the resolver
77
+ if (isHierarchicalAddress(to)) {
78
+ return sendToHierarchicalAddress(from, to, content, options);
79
+ }
80
+ // Handle multi-agent addresses (not legacy compatible, handle directly)
81
+ if (isAgentsAddress(to)) {
82
+ return sendToMultipleAgents(from, to, content, options);
83
+ }
84
+ // Handle federated addresses (cross-system routing)
85
+ if (isFederatedAddress(to)) {
86
+ if (!federationHandler) {
87
+ throw new AddressRoutingError("Federation not configured for cross-system messaging", "FEDERATION_NOT_AVAILABLE", to);
88
+ }
89
+ const systemId = getSystemFromAddress(to);
90
+ if (!federationHandler.isConnected(systemId)) {
91
+ throw new AddressRoutingError(`Not connected to federated system: ${systemId}`, "FEDERATION_NOT_AVAILABLE", to, { systemId });
92
+ }
93
+ // Send via federation handler
94
+ await federationHandler.sendMessage(systemId, {
95
+ type: "map/send",
96
+ from,
97
+ to,
98
+ content,
99
+ options,
100
+ });
101
+ // Return result (no delivery confirmation for federated messages)
102
+ return {
103
+ id: `fed-${nanoid()}`,
104
+ from,
105
+ to,
106
+ content,
107
+ timestamp: Date.now(),
108
+ delivered: [], // Cannot confirm delivery for federated messages
109
+ correlationId,
110
+ };
111
+ }
112
+ // Handle remaining address types directly
113
+ const delivered = [];
114
+ if (isAgentAddress(to)) {
115
+ // Direct agent address
116
+ const agent = eventStore.getAgent(to.agent);
117
+ if (!agent) {
118
+ throw new AddressRoutingError(`Agent not found: ${to.agent}`, "AGENT_NOT_FOUND", to);
119
+ }
120
+ const event = eventStore.emit({
121
+ type: "message",
122
+ source: { agent_id: from },
123
+ target: {
124
+ agent_id: to.agent,
125
+ address: to,
126
+ delivered: [to.agent],
127
+ },
128
+ payload: {
129
+ content,
130
+ correlation_id: correlationId,
131
+ priority,
132
+ delivery_hint: delivery,
133
+ },
134
+ });
135
+ // Handle wake decision
136
+ if (sessionChecker && wakeHandler) {
137
+ const decision = getWakeDecisionWithHint(to.agent, { priority: priority, deliveryHint: delivery }, sessionChecker);
138
+ if (decision.shouldWake || decision.shouldInterrupt) {
139
+ wakeHandler(to.agent, decision, event.id);
140
+ }
141
+ }
142
+ delivered.push(to.agent);
143
+ // Record turn for conversation tracking
144
+ if (turnRecorder) {
145
+ try {
146
+ turnRecorder({ from, toAgent: to.agent, content, messageId: event.id, addressType: "agent" });
147
+ }
148
+ catch {
149
+ // Never fail delivery due to turn recording
150
+ }
151
+ }
152
+ return {
153
+ id: event.id,
154
+ from,
155
+ to,
156
+ content,
157
+ timestamp: event.timestamp,
158
+ delivered,
159
+ correlationId,
160
+ };
161
+ }
162
+ if (isTaskAddress(to)) {
163
+ // Task address - resolve to assigned agent
164
+ const task = eventStore.getTask(to.task);
165
+ if (!task) {
166
+ throw new AddressRoutingError(`Task not found: ${to.task}`, "TASK_NOT_FOUND", to);
167
+ }
168
+ let targetAgentId;
169
+ if (!task.assigned_agent) {
170
+ // Try to spawn an agent for unassigned task
171
+ if (!agentSpawner) {
172
+ throw new AddressRoutingError(`Task ${to.task} has no assigned agent`, "TASK_UNASSIGNED", to);
173
+ }
174
+ const result = await agentSpawner(to.task, task.description);
175
+ targetAgentId = result.agent_id;
176
+ }
177
+ else {
178
+ targetAgentId = task.assigned_agent;
179
+ }
180
+ const event = eventStore.emit({
181
+ type: "message",
182
+ source: { agent_id: from },
183
+ target: {
184
+ agent_id: targetAgentId,
185
+ address: to,
186
+ delivered: [targetAgentId],
187
+ },
188
+ payload: {
189
+ content,
190
+ correlation_id: correlationId,
191
+ priority,
192
+ delivery_hint: delivery,
193
+ original_target: { task: to.task },
194
+ },
195
+ });
196
+ // Handle wake decision
197
+ if (sessionChecker && wakeHandler) {
198
+ const decision = getWakeDecisionWithHint(targetAgentId, { priority: priority, deliveryHint: delivery }, sessionChecker);
199
+ if (decision.shouldWake || decision.shouldInterrupt) {
200
+ wakeHandler(targetAgentId, decision, event.id);
201
+ }
202
+ }
203
+ delivered.push(targetAgentId);
204
+ // Record turn for conversation tracking
205
+ if (turnRecorder) {
206
+ try {
207
+ turnRecorder({ from, toAgent: targetAgentId, content, messageId: event.id, addressType: "task" });
208
+ }
209
+ catch {
210
+ // Never fail delivery due to turn recording
211
+ }
212
+ }
213
+ return {
214
+ id: event.id,
215
+ from,
216
+ to,
217
+ content,
218
+ timestamp: event.timestamp,
219
+ delivered,
220
+ correlationId,
221
+ };
222
+ }
223
+ if (isScopeAddress(to)) {
224
+ // Scope address - route to topic subscribers
225
+ const subscribers = eventStore.getSubscribers({
226
+ type: "topic",
227
+ target: to.scope,
228
+ });
229
+ if (subscribers.length === 0) {
230
+ throw new AddressRoutingError(`Scope has no subscribers: ${to.scope}`, "NO_RECIPIENTS", to);
231
+ }
232
+ const event = eventStore.emit({
233
+ type: "message",
234
+ source: { agent_id: from },
235
+ target: {
236
+ topic: to.scope,
237
+ address: to,
238
+ delivered: subscribers,
239
+ },
240
+ payload: {
241
+ content,
242
+ correlation_id: correlationId,
243
+ priority,
244
+ delivery_hint: delivery,
245
+ },
246
+ });
247
+ // Handle wake decisions for each subscriber
248
+ // Note: The EventStore already fans out to subscribers via target.topic routing,
249
+ // so we don't emit separate events here (that would cause duplicate messages)
250
+ for (const subscriberId of subscribers) {
251
+ if (sessionChecker && wakeHandler) {
252
+ const decision = getWakeDecisionWithHint(subscriberId, { priority: priority, deliveryHint: delivery }, sessionChecker);
253
+ if (decision.shouldWake || decision.shouldInterrupt) {
254
+ wakeHandler(subscriberId, decision, event.id);
255
+ }
256
+ }
257
+ delivered.push(subscriberId);
258
+ }
259
+ return {
260
+ id: event.id,
261
+ from,
262
+ to,
263
+ content,
264
+ timestamp: event.timestamp,
265
+ delivered,
266
+ correlationId,
267
+ };
268
+ }
269
+ if (isRoleAddress(to)) {
270
+ // Role address - resolve to matching agents
271
+ const agentSource = {
272
+ listAgents: () => eventStore.listAgents(),
273
+ getAgent: (id) => eventStore.getAgent(id),
274
+ // Get agents subscribed to a scope/topic
275
+ getScopeMembers: (scope) => {
276
+ return eventStore.getSubscribers({ type: "topic", target: scope });
277
+ },
278
+ };
279
+ const recipientIds = resolveRoleTarget(agentSource, {
280
+ role: to.role,
281
+ // RoleAddress.within is a ScopeId (subscription-based), not a coordinatorId (hierarchy-based)
282
+ scope: to.within,
283
+ });
284
+ if (recipientIds.length === 0) {
285
+ throw new AddressRoutingError(`No agents found for role: ${to.role}${to.within ? ` within ${to.within}` : ""}`, "NO_RECIPIENTS", to);
286
+ }
287
+ const event = eventStore.emit({
288
+ type: "message",
289
+ source: { agent_id: from },
290
+ target: {
291
+ address: to,
292
+ delivered: recipientIds,
293
+ },
294
+ payload: {
295
+ content,
296
+ correlation_id: correlationId,
297
+ priority,
298
+ delivery_hint: delivery,
299
+ multicast: {
300
+ type: "role",
301
+ role: to.role,
302
+ coordinatorId: to.within,
303
+ recipientCount: recipientIds.length,
304
+ },
305
+ },
306
+ });
307
+ // Fan out to each recipient
308
+ for (const recipientId of recipientIds) {
309
+ eventStore.emit({
310
+ type: "message",
311
+ source: { agent_id: from },
312
+ target: {
313
+ agent_id: recipientId,
314
+ address: { agent: recipientId },
315
+ },
316
+ payload: {
317
+ content,
318
+ correlation_id: correlationId,
319
+ priority,
320
+ delivery_hint: delivery,
321
+ via: "role",
322
+ original_message_id: event.id,
323
+ },
324
+ });
325
+ // Handle wake decision
326
+ if (sessionChecker && wakeHandler) {
327
+ const decision = getWakeDecisionWithHint(recipientId, { priority: priority, deliveryHint: delivery }, sessionChecker);
328
+ if (decision.shouldWake || decision.shouldInterrupt) {
329
+ wakeHandler(recipientId, decision, event.id);
330
+ }
331
+ }
332
+ delivered.push(recipientId);
333
+ }
334
+ return {
335
+ id: event.id,
336
+ from,
337
+ to,
338
+ content,
339
+ timestamp: event.timestamp,
340
+ delivered,
341
+ correlationId,
342
+ };
343
+ }
344
+ if (isBroadcastAddress(to)) {
345
+ // Broadcast to all agents
346
+ const agentSource = {
347
+ listAgents: () => eventStore.listAgents(),
348
+ };
349
+ const recipientIds = resolveBroadcastTarget(agentSource, { scope: "all" });
350
+ const event = eventStore.emit({
351
+ type: "message",
352
+ source: { agent_id: from },
353
+ target: {
354
+ address: to,
355
+ delivered: recipientIds,
356
+ },
357
+ payload: {
358
+ content,
359
+ correlation_id: correlationId,
360
+ priority,
361
+ delivery_hint: delivery,
362
+ multicast: {
363
+ type: "broadcast",
364
+ scope: "all",
365
+ recipientCount: recipientIds.length,
366
+ },
367
+ },
368
+ });
369
+ // Fan out to each recipient
370
+ for (const recipientId of recipientIds) {
371
+ eventStore.emit({
372
+ type: "message",
373
+ source: { agent_id: from },
374
+ target: {
375
+ agent_id: recipientId,
376
+ address: { agent: recipientId },
377
+ },
378
+ payload: {
379
+ content,
380
+ correlation_id: correlationId,
381
+ priority,
382
+ delivery_hint: delivery,
383
+ via: "broadcast",
384
+ original_message_id: event.id,
385
+ },
386
+ });
387
+ // Handle wake decision
388
+ if (sessionChecker && wakeHandler) {
389
+ const decision = getWakeDecisionWithHint(recipientId, { priority: priority, deliveryHint: delivery }, sessionChecker);
390
+ if (decision.shouldWake || decision.shouldInterrupt) {
391
+ wakeHandler(recipientId, decision, event.id);
392
+ }
393
+ }
394
+ delivered.push(recipientId);
395
+ }
396
+ return {
397
+ id: event.id,
398
+ from,
399
+ to,
400
+ content,
401
+ timestamp: event.timestamp,
402
+ delivered,
403
+ correlationId,
404
+ };
405
+ }
406
+ // Should not reach here for legacy-compatible addresses
407
+ throw new AddressRoutingError(`Unhandled address type: ${describeAddress(to)}`, "ADDRESS_NOT_SUPPORTED", to);
408
+ }
409
+ /**
410
+ * Send a message to a hierarchical address (parent, children, ancestors, descendants, siblings).
411
+ * Uses the address resolver to convert the relative address to concrete agent IDs.
412
+ */
413
+ async function sendToHierarchicalAddress(from, to, content, options = {}) {
414
+ const { priority = "normal", delivery, correlationId } = options;
415
+ const delivered = [];
416
+ // Create hierarchy source from EventStore
417
+ const hierarchySource = {
418
+ getAgent: (id) => {
419
+ const agent = eventStore.getAgent(id);
420
+ if (!agent)
421
+ return undefined;
422
+ return {
423
+ id: agent.id,
424
+ parent: agent.parent ?? undefined,
425
+ lineage: agent.lineage,
426
+ state: agent.state,
427
+ };
428
+ },
429
+ listAgents: () => eventStore.listAgents().map((agent) => ({
430
+ id: agent.id,
431
+ parent: agent.parent ?? undefined,
432
+ lineage: agent.lineage,
433
+ state: agent.state,
434
+ })),
435
+ };
436
+ // Resolve the hierarchical address
437
+ const resolved = resolveHierarchicalAddress(to, from, hierarchySource);
438
+ if (resolved.agentIds.length === 0) {
439
+ throw new AddressRoutingError(`No recipients found for hierarchical address: ${describeAddress(to)}`, "NO_RECIPIENTS", to);
440
+ }
441
+ // Emit a primary event for the hierarchical send
442
+ const event = eventStore.emit({
443
+ type: "message",
444
+ source: { agent_id: from },
445
+ target: {
446
+ address: to,
447
+ delivered: resolved.agentIds,
448
+ },
449
+ payload: {
450
+ content,
451
+ correlation_id: correlationId,
452
+ priority,
453
+ delivery_hint: delivery,
454
+ multicast: {
455
+ type: "hierarchical",
456
+ address: describeAddress(to),
457
+ recipientCount: resolved.agentIds.length,
458
+ },
459
+ },
460
+ });
461
+ // Fan out to each resolved recipient
462
+ for (const recipientId of resolved.agentIds) {
463
+ eventStore.emit({
464
+ type: "message",
465
+ source: { agent_id: from },
466
+ target: {
467
+ agent_id: recipientId,
468
+ address: { agent: recipientId },
469
+ },
470
+ payload: {
471
+ content,
472
+ correlation_id: correlationId,
473
+ priority,
474
+ delivery_hint: delivery,
475
+ via: "hierarchical",
476
+ original_message_id: event.id,
477
+ },
478
+ });
479
+ // Handle wake decision
480
+ if (sessionChecker && wakeHandler) {
481
+ const decision = getWakeDecisionWithHint(recipientId, {
482
+ priority: priority,
483
+ deliveryHint: delivery,
484
+ }, sessionChecker);
485
+ if (decision.shouldWake || decision.shouldInterrupt) {
486
+ wakeHandler(recipientId, decision, event.id);
487
+ }
488
+ }
489
+ delivered.push(recipientId);
490
+ }
491
+ return {
492
+ id: event.id,
493
+ from,
494
+ to,
495
+ content,
496
+ timestamp: event.timestamp,
497
+ delivered,
498
+ correlationId,
499
+ };
500
+ }
501
+ /**
502
+ * Send a message to multiple specific agents.
503
+ * Used for { agents: [...] } addresses.
504
+ */
505
+ async function sendToMultipleAgents(from, to, content, options = {}) {
506
+ const { priority = "normal", delivery, correlationId } = options;
507
+ const delivered = [];
508
+ const recipientIds = to.agents;
509
+ if (recipientIds.length === 0) {
510
+ throw new AddressRoutingError("Empty agents array", "NO_RECIPIENTS", to);
511
+ }
512
+ // Verify all agents exist first
513
+ for (const agentId of recipientIds) {
514
+ const agent = eventStore.getAgent(agentId);
515
+ if (!agent) {
516
+ throw new AddressRoutingError(`Agent not found: ${agentId}`, "AGENT_NOT_FOUND", to);
517
+ }
518
+ }
519
+ // Emit primary event for the multi-agent send
520
+ const event = eventStore.emit({
521
+ type: "message",
522
+ source: { agent_id: from },
523
+ target: {
524
+ address: to,
525
+ delivered: recipientIds,
526
+ },
527
+ payload: {
528
+ content,
529
+ correlation_id: correlationId,
530
+ priority,
531
+ delivery_hint: delivery,
532
+ multicast: {
533
+ type: "agents",
534
+ recipientCount: recipientIds.length,
535
+ },
536
+ },
537
+ });
538
+ // Fan out to each recipient
539
+ for (const recipientId of recipientIds) {
540
+ eventStore.emit({
541
+ type: "message",
542
+ source: { agent_id: from },
543
+ target: {
544
+ agent_id: recipientId,
545
+ address: { agent: recipientId },
546
+ },
547
+ payload: {
548
+ content,
549
+ correlation_id: correlationId,
550
+ priority,
551
+ delivery_hint: delivery,
552
+ via: "agents",
553
+ original_message_id: event.id,
554
+ },
555
+ });
556
+ // Handle wake decision
557
+ if (sessionChecker && wakeHandler) {
558
+ const decision = getWakeDecisionWithHint(recipientId, {
559
+ priority: priority,
560
+ deliveryHint: delivery,
561
+ }, sessionChecker);
562
+ if (decision.shouldWake || decision.shouldInterrupt) {
563
+ wakeHandler(recipientId, decision, event.id);
564
+ }
565
+ }
566
+ delivered.push(recipientId);
567
+ }
568
+ return {
569
+ id: event.id,
570
+ from,
571
+ to,
572
+ content,
573
+ timestamp: event.timestamp,
574
+ delivered,
575
+ correlationId,
576
+ };
577
+ }
578
+ function emitStatus(request) {
579
+ const { from, status_type, summary, details } = request;
580
+ // Check emission restrictions if validator installed
581
+ if (emissionValidator) {
582
+ const signal = details?.signal;
583
+ const result = emissionValidator(from.agent_id, signal);
584
+ if (result.action === "reject") {
585
+ // Strict mode: block the emission entirely
586
+ return;
587
+ }
588
+ if (result.action === "audit") {
589
+ // Audit mode: record audit event, then continue with emission
590
+ eventStore.emit({
591
+ type: "status",
592
+ source: { agent_id: "system" },
593
+ payload: {
594
+ status_type: "discovery",
595
+ summary: result.message ?? `Emission audit: agent ${from.agent_id} emitted signal '${signal}'`,
596
+ audit: {
597
+ type: "emission_violation",
598
+ agent_id: from.agent_id,
599
+ signal,
600
+ status_type,
601
+ },
602
+ },
603
+ });
604
+ }
605
+ // "warn" and "allow" proceed normally (warning is logged by the validator installer)
606
+ }
607
+ // Emit status event to event store
608
+ const event = eventStore.emit({
609
+ type: "status",
610
+ source: {
611
+ agent_id: from.agent_id,
612
+ task_id: from.task_id,
613
+ },
614
+ payload: {
615
+ status_type,
616
+ summary,
617
+ details,
618
+ },
619
+ });
620
+ const statusNotification = {
621
+ agent_id: from.agent_id,
622
+ task_id: from.task_id,
623
+ status_type,
624
+ summary,
625
+ details,
626
+ timestamp: event.timestamp,
627
+ };
628
+ // Route to subtree subscribers (hierarchical: parents/ancestors)
629
+ const subtreeRecipients = routeStatusToSubtreeSubscribers(from.agent_id, statusNotification);
630
+ // Route to topic co-subscribers (non-hierarchical: peers sharing topics)
631
+ routeStatusToTopicSubscribers(from.agent_id, statusNotification, subtreeRecipients);
632
+ }
633
+ // ─────────────────────────────────────────────────────────────────
634
+ // Message Retrieval
635
+ // ─────────────────────────────────────────────────────────────────
636
+ function getMessages(agentId, options) {
637
+ const limit = options?.limit;
638
+ const includeAcknowledged = options?.includeAcknowledged ?? false;
639
+ // Get all messages from event store
640
+ const allMessages = eventStore.getMessages(agentId, undefined);
641
+ // Filter out acknowledged unless requested
642
+ const acknowledged = acknowledgedMessages.get(agentId) ?? new Set();
643
+ const filtered = includeAcknowledged
644
+ ? allMessages
645
+ : allMessages.filter((msg) => !acknowledged.has(msg.id));
646
+ // Apply limit
647
+ const limited = limit ? filtered.slice(0, limit) : filtered;
648
+ return limited;
649
+ }
650
+ function getFullMessage(messageId) {
651
+ return eventStore.getFullMessage(messageId);
652
+ }
653
+ // ─────────────────────────────────────────────────────────────────
654
+ // Message Acknowledgment
655
+ // ─────────────────────────────────────────────────────────────────
656
+ function acknowledgeMessage(agentId, messageId) {
657
+ if (!acknowledgedMessages.has(agentId)) {
658
+ acknowledgedMessages.set(agentId, new Set());
659
+ }
660
+ acknowledgedMessages.get(agentId).add(messageId);
661
+ }
662
+ function acknowledgeMessages(agentId, messageIds) {
663
+ if (!acknowledgedMessages.has(agentId)) {
664
+ acknowledgedMessages.set(agentId, new Set());
665
+ }
666
+ const set = acknowledgedMessages.get(agentId);
667
+ for (const id of messageIds) {
668
+ set.add(id);
669
+ }
670
+ }
671
+ // ─────────────────────────────────────────────────────────────────
672
+ // Subscription Management
673
+ // ─────────────────────────────────────────────────────────────────
674
+ function subscribe(agentId, channel) {
675
+ eventStore.addSubscription(agentId, {
676
+ type: channel.type,
677
+ target: channel.target,
678
+ });
679
+ }
680
+ function unsubscribe(agentId, channel) {
681
+ eventStore.removeSubscription(agentId, {
682
+ type: channel.type,
683
+ target: channel.target,
684
+ });
685
+ }
686
+ function getSubscriptions(agentId) {
687
+ const subs = eventStore.getSubscriptions(agentId);
688
+ return subs.map((s) => ({
689
+ type: s.type,
690
+ target: s.target,
691
+ }));
692
+ }
693
+ function getSubscribers(channel) {
694
+ return eventStore.getSubscribers({
695
+ type: channel.type,
696
+ target: channel.target,
697
+ });
698
+ }
699
+ // ─────────────────────────────────────────────────────────────────
700
+ // Setup Helpers
701
+ // ─────────────────────────────────────────────────────────────────
702
+ function setupDefaultSubscriptions(options) {
703
+ const { agent_id, parent_id, task_id, subscribe_parent = true, additional_topics = [], role, } = options;
704
+ // 1. Subscribe agent to its own direct channel
705
+ subscribe(agent_id, { type: "agent", target: agent_id });
706
+ // 2. Subscribe agent to lineage (receives messages from ancestors)
707
+ subscribe(agent_id, { type: "lineage", target: agent_id });
708
+ // 3. Subscribe agent to task channel if task_id provided
709
+ if (task_id) {
710
+ subscribe(agent_id, { type: "task", target: task_id });
711
+ }
712
+ // 4. Subscribe parent to agent's subtree if requested
713
+ if (parent_id && subscribe_parent) {
714
+ subscribe(parent_id, { type: "subtree", target: agent_id });
715
+ }
716
+ // 5. Subscribe to additional topics
717
+ for (const topic of additional_topics) {
718
+ subscribe(agent_id, { type: "topic", target: topic });
719
+ }
720
+ // 6. Auto-subscribe to role channel if role is provided (Tier 1: Gastown model)
721
+ if (role) {
722
+ subscribe(agent_id, { type: "role", target: role });
723
+ }
724
+ }
725
+ // ─────────────────────────────────────────────────────────────────
726
+ // Internal Helpers
727
+ // ─────────────────────────────────────────────────────────────────
728
+ /**
729
+ * Route status event to subtree subscribers.
730
+ * Parents who have subscribed to an agent's subtree receive status notifications.
731
+ * Returns the set of agents that were notified (for dedup with topic routing).
732
+ */
733
+ function routeStatusToSubtreeSubscribers(agentId, status) {
734
+ const notified = new Set();
735
+ const agent = eventStore.getAgent(agentId);
736
+ if (!agent)
737
+ return notified;
738
+ // Find all agents with subtree subscription that includes this agent
739
+ // This includes:
740
+ // 1. Direct subtree subscription to this agent
741
+ // 2. Subtree subscription to any ancestor of this agent
742
+ const agentsToNotify = new Set();
743
+ // Check direct subtree subscribers
744
+ const directSubscribers = eventStore.getSubscribers({
745
+ type: "subtree",
746
+ target: agentId,
747
+ });
748
+ for (const sub of directSubscribers) {
749
+ agentsToNotify.add(sub);
750
+ }
751
+ // Check subtree subscribers of ancestors (they also want events from descendants)
752
+ for (const ancestorId of agent.lineage) {
753
+ const ancestorSubscribers = eventStore.getSubscribers({
754
+ type: "subtree",
755
+ target: ancestorId,
756
+ });
757
+ // Only add if the subscriber is an ancestor of the current agent
758
+ // (meaning they subscribed to one of our ancestors' subtrees)
759
+ for (const sub of ancestorSubscribers) {
760
+ // Check if sub is an ancestor of agentId
761
+ if (agent.lineage.includes(sub)) {
762
+ agentsToNotify.add(sub);
763
+ }
764
+ }
765
+ }
766
+ // Extract signal name from details (if tagged)
767
+ const statusSignal = status.details?.signal;
768
+ // Send status notification to each subscriber
769
+ for (const subscriberId of agentsToNotify) {
770
+ // Skip self-notification
771
+ if (subscriberId === agentId)
772
+ continue;
773
+ // Apply signal filter if installed
774
+ if (signalFilter && !signalFilter(agentId, subscriberId, statusSignal)) {
775
+ continue;
776
+ }
777
+ const statusContent = JSON.stringify({
778
+ type: "status_notification",
779
+ ...status,
780
+ });
781
+ const event = eventStore.emit({
782
+ type: "message",
783
+ source: {
784
+ agent_id: agentId,
785
+ },
786
+ target: {
787
+ agent_id: subscriberId,
788
+ },
789
+ payload: {
790
+ content: statusContent,
791
+ via: "subtree",
792
+ },
793
+ });
794
+ // Wake sleeping agents on status notifications
795
+ if (sessionChecker && wakeHandler) {
796
+ try {
797
+ const decision = getWakeDecisionWithHint(subscriberId, { priority: "normal" }, sessionChecker);
798
+ if (decision.shouldWake || decision.shouldInterrupt) {
799
+ wakeHandler(subscriberId, decision, event.id);
800
+ }
801
+ }
802
+ catch {
803
+ // Never fail status delivery due to wake errors
804
+ }
805
+ }
806
+ notified.add(subscriberId);
807
+ }
808
+ return notified;
809
+ }
810
+ /**
811
+ * Route status event to topic co-subscribers.
812
+ * Agents sharing topic subscriptions with the emitting agent receive status notifications.
813
+ * This enables non-hierarchical visibility: peers on the same topic see each other's status.
814
+ * Skips agents already notified via subtree routing to avoid duplicates.
815
+ */
816
+ function routeStatusToTopicSubscribers(agentId, status, alreadyNotified) {
817
+ // Find all topics the emitting agent is subscribed to
818
+ const subscriptions = eventStore.getSubscriptions(agentId);
819
+ const topicSubscriptions = subscriptions.filter((s) => s.type === "topic");
820
+ if (topicSubscriptions.length === 0)
821
+ return;
822
+ // Collect unique recipients across all shared topics
823
+ const topicRecipients = new Set();
824
+ for (const sub of topicSubscriptions) {
825
+ const subscribers = eventStore.getSubscribers({
826
+ type: "topic",
827
+ target: sub.target,
828
+ });
829
+ for (const subscriberId of subscribers) {
830
+ // Skip self and already-notified (from subtree routing)
831
+ if (subscriberId !== agentId && !alreadyNotified.has(subscriberId)) {
832
+ topicRecipients.add(subscriberId);
833
+ }
834
+ }
835
+ }
836
+ if (topicRecipients.size === 0)
837
+ return;
838
+ // Extract signal name from details (if tagged)
839
+ const statusSignal = status.details?.signal;
840
+ const statusContent = JSON.stringify({
841
+ type: "status_notification",
842
+ ...status,
843
+ });
844
+ // Deliver to each topic co-subscriber
845
+ for (const recipientId of topicRecipients) {
846
+ // Apply signal filter if installed
847
+ if (signalFilter && !signalFilter(agentId, recipientId, statusSignal)) {
848
+ continue;
849
+ }
850
+ const event = eventStore.emit({
851
+ type: "message",
852
+ source: {
853
+ agent_id: agentId,
854
+ },
855
+ target: {
856
+ agent_id: recipientId,
857
+ },
858
+ payload: {
859
+ content: statusContent,
860
+ via: "topic",
861
+ },
862
+ });
863
+ // Wake sleeping agents on status notifications
864
+ if (sessionChecker && wakeHandler) {
865
+ try {
866
+ const decision = getWakeDecisionWithHint(recipientId, { priority: "normal" }, sessionChecker);
867
+ if (decision.shouldWake || decision.shouldInterrupt) {
868
+ wakeHandler(recipientId, decision, event.id);
869
+ }
870
+ }
871
+ catch {
872
+ // Never fail status delivery due to wake errors
873
+ }
874
+ }
875
+ }
876
+ }
877
+ function setTurnRecorder(recorder) {
878
+ turnRecorder = recorder;
879
+ }
880
+ function setSignalFilter(filter) {
881
+ signalFilter = filter;
882
+ }
883
+ function setEmissionValidator(validator) {
884
+ emissionValidator = validator;
885
+ }
886
+ return {
887
+ sendToAddress,
888
+ emitStatus,
889
+ getMessages,
890
+ getFullMessage,
891
+ acknowledgeMessage,
892
+ acknowledgeMessages,
893
+ subscribe,
894
+ unsubscribe,
895
+ getSubscriptions,
896
+ getSubscribers,
897
+ setupDefaultSubscriptions,
898
+ setTurnRecorder,
899
+ setSignalFilter,
900
+ setEmissionValidator,
901
+ };
902
+ }
903
+ //# sourceMappingURL=message-router.js.map