macro-agent 0.1.2 → 0.1.3

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 (1540) hide show
  1. package/.gitattributes +3 -0
  2. package/.opentasks/config.json +9 -0
  3. package/CLAUDE.md +432 -206
  4. package/README.md +129 -371
  5. package/dist/acp/index.d.ts +9 -51
  6. package/dist/acp/index.d.ts.map +1 -1
  7. package/dist/acp/index.js +5 -46
  8. package/dist/acp/index.js.map +1 -1
  9. package/dist/acp/macro-agent.d.ts +28 -255
  10. package/dist/acp/macro-agent.d.ts.map +1 -1
  11. package/dist/acp/macro-agent.js +593 -1231
  12. package/dist/acp/macro-agent.js.map +1 -1
  13. package/dist/acp/map-bridge.d.ts +62 -0
  14. package/dist/acp/map-bridge.d.ts.map +1 -0
  15. package/dist/acp/map-bridge.js +123 -0
  16. package/dist/acp/map-bridge.js.map +1 -0
  17. package/dist/acp/session-mapper.d.ts +29 -126
  18. package/dist/acp/session-mapper.d.ts.map +1 -1
  19. package/dist/acp/session-mapper.js +36 -234
  20. package/dist/acp/session-mapper.js.map +1 -1
  21. package/dist/acp/types.d.ts +24 -535
  22. package/dist/acp/types.d.ts.map +1 -1
  23. package/dist/acp/types.js +7 -7
  24. package/dist/acp/types.js.map +1 -1
  25. package/dist/acp/websocket-server.d.ts +16 -136
  26. package/dist/acp/websocket-server.d.ts.map +1 -1
  27. package/dist/acp/websocket-server.js +131 -371
  28. package/dist/acp/websocket-server.js.map +1 -1
  29. package/dist/adapters/federation.d.ts +76 -0
  30. package/dist/adapters/federation.d.ts.map +1 -0
  31. package/dist/adapters/federation.js +120 -0
  32. package/dist/adapters/federation.js.map +1 -0
  33. package/dist/adapters/inbox-adapter.d.ts +72 -0
  34. package/dist/adapters/inbox-adapter.d.ts.map +1 -0
  35. package/dist/adapters/inbox-adapter.js +196 -0
  36. package/dist/adapters/inbox-adapter.js.map +1 -0
  37. package/dist/adapters/inbox-client-adapter.d.ts +40 -0
  38. package/dist/adapters/inbox-client-adapter.d.ts.map +1 -0
  39. package/dist/adapters/inbox-client-adapter.js +135 -0
  40. package/dist/adapters/inbox-client-adapter.js.map +1 -0
  41. package/dist/adapters/index.d.ts +11 -0
  42. package/dist/adapters/index.d.ts.map +1 -0
  43. package/dist/adapters/index.js +10 -0
  44. package/dist/adapters/index.js.map +1 -0
  45. package/dist/adapters/opentasks-daemon.d.ts +32 -0
  46. package/dist/adapters/opentasks-daemon.d.ts.map +1 -0
  47. package/dist/adapters/opentasks-daemon.js +190 -0
  48. package/dist/adapters/opentasks-daemon.js.map +1 -0
  49. package/dist/adapters/tasks-adapter.d.ts +49 -0
  50. package/dist/adapters/tasks-adapter.d.ts.map +1 -0
  51. package/dist/adapters/tasks-adapter.js +209 -0
  52. package/dist/adapters/tasks-adapter.js.map +1 -0
  53. package/dist/adapters/types.d.ts +198 -0
  54. package/dist/adapters/types.d.ts.map +1 -0
  55. package/dist/adapters/types.js +13 -0
  56. package/dist/adapters/types.js.map +1 -0
  57. package/dist/agent/agent-manager-v2.d.ts +38 -0
  58. package/dist/agent/agent-manager-v2.d.ts.map +1 -0
  59. package/dist/agent/agent-manager-v2.js +1097 -0
  60. package/dist/agent/agent-manager-v2.js.map +1 -0
  61. package/dist/agent/agent-manager.d.ts +52 -42
  62. package/dist/agent/agent-manager.d.ts.map +1 -1
  63. package/dist/agent/agent-manager.js +11 -1318
  64. package/dist/agent/agent-manager.js.map +1 -1
  65. package/dist/agent/agent-store.d.ts +89 -0
  66. package/dist/agent/agent-store.d.ts.map +1 -0
  67. package/dist/agent/agent-store.js +279 -0
  68. package/dist/agent/agent-store.js.map +1 -0
  69. package/dist/api/index.d.ts +5 -3
  70. package/dist/api/index.d.ts.map +1 -1
  71. package/dist/api/index.js +4 -3
  72. package/dist/api/index.js.map +1 -1
  73. package/dist/api/server.d.ts +6 -127
  74. package/dist/api/server.d.ts.map +1 -1
  75. package/dist/api/server.js +235 -1574
  76. package/dist/api/server.js.map +1 -1
  77. package/dist/api/types.d.ts +20 -248
  78. package/dist/api/types.d.ts.map +1 -1
  79. package/dist/api/types.js +3 -1
  80. package/dist/api/types.js.map +1 -1
  81. package/dist/boot-v2.d.ts +165 -0
  82. package/dist/boot-v2.d.ts.map +1 -0
  83. package/dist/boot-v2.js +315 -0
  84. package/dist/boot-v2.js.map +1 -0
  85. package/dist/cli/acp.d.ts +6 -28
  86. package/dist/cli/acp.d.ts.map +1 -1
  87. package/dist/cli/acp.js +38 -442
  88. package/dist/cli/acp.js.map +1 -1
  89. package/dist/cli/index.d.ts +1 -2
  90. package/dist/cli/index.d.ts.map +1 -1
  91. package/dist/cli/index.js +65 -453
  92. package/dist/cli/index.js.map +1 -1
  93. package/dist/cli/mcp.d.ts +18 -8
  94. package/dist/cli/mcp.d.ts.map +1 -1
  95. package/dist/cli/mcp.js +231 -301
  96. package/dist/cli/mcp.js.map +1 -1
  97. package/dist/cognitive/analyst-role.d.ts +13 -0
  98. package/dist/cognitive/analyst-role.d.ts.map +1 -0
  99. package/dist/cognitive/analyst-role.js +48 -0
  100. package/dist/cognitive/analyst-role.js.map +1 -0
  101. package/dist/cognitive/index.d.ts +18 -0
  102. package/dist/cognitive/index.d.ts.map +1 -0
  103. package/dist/cognitive/index.js +21 -0
  104. package/dist/cognitive/index.js.map +1 -0
  105. package/dist/cognitive/macro-agent-backend.d.ts +40 -0
  106. package/dist/cognitive/macro-agent-backend.d.ts.map +1 -0
  107. package/dist/cognitive/macro-agent-backend.js +290 -0
  108. package/dist/cognitive/macro-agent-backend.js.map +1 -0
  109. package/dist/cognitive/session-converter.d.ts +30 -0
  110. package/dist/cognitive/session-converter.d.ts.map +1 -0
  111. package/dist/cognitive/session-converter.js +119 -0
  112. package/dist/cognitive/session-converter.js.map +1 -0
  113. package/dist/cognitive/types.d.ts +129 -0
  114. package/dist/cognitive/types.d.ts.map +1 -0
  115. package/dist/cognitive/types.js +12 -0
  116. package/dist/cognitive/types.js.map +1 -0
  117. package/dist/cognitive/workspace-handler.d.ts +46 -0
  118. package/dist/cognitive/workspace-handler.d.ts.map +1 -0
  119. package/dist/cognitive/workspace-handler.js +135 -0
  120. package/dist/cognitive/workspace-handler.js.map +1 -0
  121. package/dist/control/control-client.d.ts +63 -0
  122. package/dist/control/control-client.d.ts.map +1 -0
  123. package/dist/control/control-client.js +276 -0
  124. package/dist/control/control-client.js.map +1 -0
  125. package/dist/control/control-server.d.ts +46 -0
  126. package/dist/control/control-server.d.ts.map +1 -0
  127. package/dist/control/control-server.js +237 -0
  128. package/dist/control/control-server.js.map +1 -0
  129. package/dist/control/index.d.ts +9 -0
  130. package/dist/control/index.d.ts.map +1 -0
  131. package/dist/control/index.js +8 -0
  132. package/dist/control/index.js.map +1 -0
  133. package/dist/control/types.d.ts +64 -0
  134. package/dist/control/types.d.ts.map +1 -0
  135. package/dist/control/types.js +10 -0
  136. package/dist/control/types.js.map +1 -0
  137. package/dist/index.d.ts +14 -16
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/index.js +15 -34
  140. package/dist/index.js.map +1 -1
  141. package/dist/integrations/context-builder.d.ts +49 -0
  142. package/dist/integrations/context-builder.d.ts.map +1 -0
  143. package/dist/integrations/context-builder.js +160 -0
  144. package/dist/integrations/context-builder.js.map +1 -0
  145. package/dist/integrations/sessionlog.d.ts +58 -0
  146. package/dist/integrations/sessionlog.d.ts.map +1 -0
  147. package/dist/integrations/sessionlog.js +152 -0
  148. package/dist/integrations/sessionlog.js.map +1 -0
  149. package/dist/integrations/skilltree.d.ts +53 -0
  150. package/dist/integrations/skilltree.d.ts.map +1 -0
  151. package/dist/integrations/skilltree.js +140 -0
  152. package/dist/integrations/skilltree.js.map +1 -0
  153. package/dist/lifecycle/cleanup.d.ts +5 -14
  154. package/dist/lifecycle/cleanup.d.ts.map +1 -1
  155. package/dist/lifecycle/cleanup.js +4 -34
  156. package/dist/lifecycle/cleanup.js.map +1 -1
  157. package/dist/lifecycle/handlers-v2.d.ts +33 -0
  158. package/dist/lifecycle/handlers-v2.d.ts.map +1 -0
  159. package/dist/lifecycle/handlers-v2.js +319 -0
  160. package/dist/lifecycle/handlers-v2.js.map +1 -0
  161. package/dist/lifecycle/index.d.ts +3 -5
  162. package/dist/lifecycle/index.d.ts.map +1 -1
  163. package/dist/lifecycle/index.js +3 -12
  164. package/dist/lifecycle/index.js.map +1 -1
  165. package/dist/map/acp-bridge.d.ts +39 -0
  166. package/dist/map/acp-bridge.d.ts.map +1 -0
  167. package/dist/map/acp-bridge.js +180 -0
  168. package/dist/map/acp-bridge.js.map +1 -0
  169. package/dist/map/cc-swarm-hooks.d.ts +36 -0
  170. package/dist/map/cc-swarm-hooks.d.ts.map +1 -0
  171. package/dist/map/cc-swarm-hooks.js +218 -0
  172. package/dist/map/cc-swarm-hooks.js.map +1 -0
  173. package/dist/map/coordination-handler.d.ts +36 -0
  174. package/dist/map/coordination-handler.d.ts.map +1 -0
  175. package/dist/map/coordination-handler.js +166 -0
  176. package/dist/map/coordination-handler.js.map +1 -0
  177. package/dist/map/index.d.ts +5 -10
  178. package/dist/map/index.d.ts.map +1 -1
  179. package/dist/map/index.js +4 -13
  180. package/dist/map/index.js.map +1 -1
  181. package/dist/map/lifecycle-bridge.d.ts +34 -0
  182. package/dist/map/lifecycle-bridge.d.ts.map +1 -0
  183. package/dist/map/lifecycle-bridge.js +96 -0
  184. package/dist/map/lifecycle-bridge.js.map +1 -0
  185. package/dist/map/server.d.ts +38 -0
  186. package/dist/map/server.d.ts.map +1 -0
  187. package/dist/map/server.js +461 -0
  188. package/dist/map/server.js.map +1 -0
  189. package/dist/map/sidecar.d.ts +24 -0
  190. package/dist/map/sidecar.d.ts.map +1 -0
  191. package/dist/map/sidecar.js +263 -0
  192. package/dist/map/sidecar.js.map +1 -0
  193. package/dist/map/task-bridge.d.ts +22 -0
  194. package/dist/map/task-bridge.d.ts.map +1 -0
  195. package/dist/map/task-bridge.js +67 -0
  196. package/dist/map/task-bridge.js.map +1 -0
  197. package/dist/map/trajectory-reporter.d.ts +24 -0
  198. package/dist/map/trajectory-reporter.d.ts.map +1 -0
  199. package/dist/map/trajectory-reporter.js +86 -0
  200. package/dist/map/trajectory-reporter.js.map +1 -0
  201. package/dist/map/types.d.ts +162 -226
  202. package/dist/map/types.d.ts.map +1 -1
  203. package/dist/map/types.js +6 -165
  204. package/dist/map/types.js.map +1 -1
  205. package/dist/mcp/index.d.ts +2 -2
  206. package/dist/mcp/index.d.ts.map +1 -1
  207. package/dist/mcp/index.js +2 -2
  208. package/dist/mcp/index.js.map +1 -1
  209. package/dist/mcp/mcp-server-v2.d.ts +44 -0
  210. package/dist/mcp/mcp-server-v2.d.ts.map +1 -0
  211. package/dist/mcp/mcp-server-v2.js +376 -0
  212. package/dist/mcp/mcp-server-v2.js.map +1 -0
  213. package/dist/mcp/tools/done-v2.d.ts +57 -0
  214. package/dist/mcp/tools/done-v2.d.ts.map +1 -0
  215. package/dist/mcp/tools/done-v2.js +129 -0
  216. package/dist/mcp/tools/done-v2.js.map +1 -0
  217. package/dist/metrics/index.d.ts +7 -1
  218. package/dist/metrics/index.d.ts.map +1 -1
  219. package/dist/metrics/index.js +6 -1
  220. package/dist/metrics/index.js.map +1 -1
  221. package/dist/metrics/metrics.d.ts +9 -70
  222. package/dist/metrics/metrics.d.ts.map +1 -1
  223. package/dist/metrics/metrics.js +89 -145
  224. package/dist/metrics/metrics.js.map +1 -1
  225. package/dist/metrics/types.d.ts +44 -0
  226. package/dist/metrics/types.d.ts.map +1 -0
  227. package/dist/metrics/types.js +7 -0
  228. package/dist/metrics/types.js.map +1 -0
  229. package/dist/store/index.d.ts +3 -6
  230. package/dist/store/index.d.ts.map +1 -1
  231. package/dist/store/index.js +3 -21
  232. package/dist/store/index.js.map +1 -1
  233. package/dist/store/types/events.d.ts +3 -60
  234. package/dist/store/types/events.d.ts.map +1 -1
  235. package/dist/store/types/events.js +3 -46
  236. package/dist/store/types/events.js.map +1 -1
  237. package/dist/store/types/index.d.ts +0 -3
  238. package/dist/store/types/index.d.ts.map +1 -1
  239. package/dist/store/types/index.js +0 -3
  240. package/dist/store/types/index.js.map +1 -1
  241. package/dist/teams/index.d.ts +0 -2
  242. package/dist/teams/index.d.ts.map +1 -1
  243. package/dist/teams/index.js +0 -2
  244. package/dist/teams/index.js.map +1 -1
  245. package/dist/teams/team-manager-v2.d.ts +87 -0
  246. package/dist/teams/team-manager-v2.d.ts.map +1 -0
  247. package/dist/teams/team-manager-v2.js +203 -0
  248. package/dist/teams/team-manager-v2.js.map +1 -0
  249. package/dist/teams/team-runtime-v2.d.ts +149 -0
  250. package/dist/teams/team-runtime-v2.d.ts.map +1 -0
  251. package/dist/teams/team-runtime-v2.js +741 -0
  252. package/dist/teams/team-runtime-v2.js.map +1 -0
  253. package/dist/trigger/index.d.ts +2 -2
  254. package/dist/trigger/index.d.ts.map +1 -1
  255. package/dist/trigger/index.js +4 -4
  256. package/dist/trigger/index.js.map +1 -1
  257. package/dist/trigger/sources/cron/cron-service.d.ts +1 -1
  258. package/dist/trigger/sources/cron/cron-service.d.ts.map +1 -1
  259. package/dist/trigger/sources/webhook/webhook-handler.d.ts +1 -1
  260. package/dist/trigger/sources/webhook/webhook-handler.d.ts.map +1 -1
  261. package/dist/trigger/strategies/ai-router.d.ts +31 -0
  262. package/dist/trigger/strategies/ai-router.d.ts.map +1 -0
  263. package/dist/trigger/strategies/ai-router.js +132 -0
  264. package/dist/trigger/strategies/ai-router.js.map +1 -0
  265. package/dist/trigger/trigger-system-v2.d.ts +106 -0
  266. package/dist/trigger/trigger-system-v2.d.ts.map +1 -0
  267. package/dist/trigger/trigger-system-v2.js +347 -0
  268. package/dist/trigger/trigger-system-v2.js.map +1 -0
  269. package/dist/trigger/types.d.ts +8 -0
  270. package/dist/trigger/types.d.ts.map +1 -1
  271. package/dist/trigger/types.js.map +1 -1
  272. package/dist/workspace/strategies/optimistic.d.ts +13 -3
  273. package/dist/workspace/strategies/optimistic.d.ts.map +1 -1
  274. package/dist/workspace/strategies/optimistic.js +4 -4
  275. package/dist/workspace/strategies/optimistic.js.map +1 -1
  276. package/docs/design-subsystem-extraction.md +627 -0
  277. package/docs/lifecycle-events-design.md +111 -0
  278. package/docs/openhive-capability-summary.md +415 -0
  279. package/docs/openhive-integration.md +415 -0
  280. package/docs/roadmap-v2-gaps.md +216 -0
  281. package/package.json +26 -7
  282. package/src/__tests__/boot-v2.test.ts +196 -0
  283. package/src/__tests__/e2e/acp-over-map-live.e2e.test.ts +496 -0
  284. package/src/__tests__/e2e/acp-over-map.e2e.test.ts +365 -0
  285. package/src/__tests__/e2e/agent-lifecycle.e2e.test.ts +770 -0
  286. package/src/__tests__/e2e/cc-swarm-bridge.e2e.test.ts +253 -0
  287. package/src/__tests__/e2e/cognitive-workspace.e2e.test.ts +282 -0
  288. package/src/__tests__/e2e/done-scenarios.e2e.test.ts +322 -0
  289. package/src/__tests__/e2e/live-agent.e2e.test.ts +1330 -0
  290. package/src/__tests__/e2e/map-server.e2e.test.ts +128 -0
  291. package/src/__tests__/e2e/map-sidecar.e2e.test.ts +139 -0
  292. package/src/__tests__/e2e/opentasks-integration.e2e.test.ts +280 -0
  293. package/src/__tests__/e2e/pull-mode.e2e.test.ts +632 -0
  294. package/src/__tests__/e2e/resume-continue.e2e.test.ts +312 -0
  295. package/src/__tests__/e2e/swarmkit-integration.e2e.test.ts +562 -0
  296. package/src/__tests__/e2e/swarmkit-live.e2e.test.ts +1049 -0
  297. package/src/__tests__/e2e/trajectory-tracking.e2e.test.ts +258 -0
  298. package/src/__tests__/e2e/trigger-wake.e2e.test.ts +257 -0
  299. package/src/__tests__/e2e/workspace-lifecycle.e2e.test.ts +375 -0
  300. package/src/acp/__tests__/macro-agent.test.ts +234 -945
  301. package/src/acp/__tests__/session-mapper.test.ts +82 -155
  302. package/src/acp/__tests__/websocket-server.test.ts +121 -270
  303. package/src/acp/index.ts +18 -118
  304. package/src/acp/macro-agent.ts +692 -1752
  305. package/src/acp/map-bridge.ts +193 -0
  306. package/src/acp/session-mapper.ts +43 -276
  307. package/src/acp/types.ts +39 -767
  308. package/src/acp/websocket-server.ts +152 -588
  309. package/src/adapters/__tests__/federation.test.ts +256 -0
  310. package/src/adapters/__tests__/inbox-adapter.test.ts +316 -0
  311. package/src/adapters/__tests__/tasks-adapter.test.ts +269 -0
  312. package/src/adapters/federation.ts +185 -0
  313. package/src/adapters/inbox-adapter.ts +292 -0
  314. package/src/adapters/inbox-client-adapter.ts +173 -0
  315. package/src/adapters/index.ts +44 -0
  316. package/src/adapters/opentasks-daemon.ts +252 -0
  317. package/src/adapters/tasks-adapter.ts +327 -0
  318. package/src/adapters/types.ts +285 -0
  319. package/src/agent/__tests__/agent-manager-v2.test.ts +554 -0
  320. package/src/agent/__tests__/agent-store.test.ts +413 -0
  321. package/src/agent/agent-manager-v2.ts +1476 -0
  322. package/src/agent/agent-manager.ts +41 -1794
  323. package/src/agent/agent-store.ts +385 -0
  324. package/src/api/__tests__/server.test.ts +235 -1157
  325. package/src/api/index.ts +5 -3
  326. package/src/api/server.ts +270 -1989
  327. package/src/api/types.ts +25 -339
  328. package/src/boot-v2.ts +527 -0
  329. package/src/cli/acp.ts +38 -500
  330. package/src/cli/index.ts +68 -470
  331. package/src/cli/mcp.ts +260 -340
  332. package/src/cognitive/__tests__/macro-agent-backend.test.ts +478 -0
  333. package/src/cognitive/__tests__/session-converter.test.ts +423 -0
  334. package/src/cognitive/__tests__/workspace-handler.test.ts +221 -0
  335. package/src/cognitive/analyst-role.ts +59 -0
  336. package/src/cognitive/index.ts +49 -0
  337. package/src/cognitive/macro-agent-backend.ts +354 -0
  338. package/src/cognitive/session-converter.ts +151 -0
  339. package/src/cognitive/types.ts +163 -0
  340. package/src/cognitive/workspace-handler.ts +163 -0
  341. package/src/control/__tests__/control-resilience.test.ts +251 -0
  342. package/src/control/__tests__/control-socket.test.ts +240 -0
  343. package/src/control/control-client.ts +337 -0
  344. package/src/control/control-server.ts +298 -0
  345. package/src/control/index.ts +17 -0
  346. package/src/control/types.ts +95 -0
  347. package/src/index.ts +42 -224
  348. package/src/integrations/__tests__/context-builder.test.ts +218 -0
  349. package/src/integrations/__tests__/sessionlog.test.ts +498 -0
  350. package/src/integrations/__tests__/skilltree.test.ts +136 -0
  351. package/src/integrations/context-builder.ts +280 -0
  352. package/src/integrations/sessionlog.ts +194 -0
  353. package/src/integrations/skilltree.ts +183 -0
  354. package/src/lifecycle/__tests__/handlers-v2.test.ts +565 -0
  355. package/src/lifecycle/cleanup.ts +6 -46
  356. package/src/lifecycle/handlers-v2.ts +437 -0
  357. package/src/lifecycle/index.ts +2 -28
  358. package/src/map/__tests__/lifecycle-bridge.test.ts +223 -0
  359. package/src/map/__tests__/permission-forwarding.test.ts +143 -0
  360. package/src/map/__tests__/sidecar-integration.test.ts +190 -0
  361. package/src/map/__tests__/task-bridge.test.ts +153 -0
  362. package/src/map/__tests__/trajectory-reporter.test.ts +173 -0
  363. package/src/map/acp-bridge.ts +270 -0
  364. package/src/map/cc-swarm-hooks.ts +242 -0
  365. package/src/map/coordination-handler.ts +220 -0
  366. package/src/map/index.ts +13 -14
  367. package/src/map/lifecycle-bridge.ts +140 -0
  368. package/src/map/server.ts +527 -0
  369. package/src/map/sidecar.ts +312 -0
  370. package/src/map/task-bridge.ts +89 -0
  371. package/src/map/trajectory-reporter.ts +124 -0
  372. package/src/map/types.ts +195 -367
  373. package/src/mcp/__tests__/mcp-server-v2.test.ts +236 -0
  374. package/src/mcp/index.ts +2 -2
  375. package/src/mcp/mcp-server-v2.ts +485 -0
  376. package/src/mcp/tools/done-v2.ts +203 -0
  377. package/src/metrics/__tests__/metrics.test.ts +205 -0
  378. package/src/metrics/index.ts +13 -9
  379. package/src/metrics/metrics.ts +110 -239
  380. package/src/metrics/types.ts +63 -0
  381. package/src/store/index.ts +3 -64
  382. package/src/store/types/events.ts +5 -100
  383. package/src/store/types/index.ts +0 -3
  384. package/src/teams/__tests__/team-manager-v2.test.ts +425 -0
  385. package/src/teams/__tests__/team-runtime-v2.test.ts +402 -0
  386. package/src/teams/index.ts +0 -2
  387. package/src/teams/team-manager-v2.ts +268 -0
  388. package/src/teams/team-runtime-v2.ts +898 -0
  389. package/src/trigger/__tests__/trigger-system-v2.test.ts +257 -0
  390. package/src/trigger/index.ts +16 -31
  391. package/src/trigger/sources/cron/cron-service.ts +1 -1
  392. package/src/trigger/sources/webhook/webhook-handler.ts +1 -1
  393. package/src/trigger/strategies/ai-router.ts +170 -0
  394. package/src/trigger/trigger-system-v2.ts +536 -0
  395. package/src/trigger/types.ts +13 -0
  396. package/src/workspace/strategies/optimistic.ts +9 -6
  397. package/.claude/settings.local.json +0 -61
  398. package/dist/acp/websocket-stream.d.ts +0 -30
  399. package/dist/acp/websocket-stream.d.ts.map +0 -1
  400. package/dist/acp/websocket-stream.js +0 -118
  401. package/dist/acp/websocket-stream.js.map +0 -1
  402. package/dist/activity/deduplication.d.ts +0 -85
  403. package/dist/activity/deduplication.d.ts.map +0 -1
  404. package/dist/activity/deduplication.js +0 -149
  405. package/dist/activity/deduplication.js.map +0 -1
  406. package/dist/activity/index.d.ts +0 -16
  407. package/dist/activity/index.d.ts.map +0 -1
  408. package/dist/activity/index.js +0 -17
  409. package/dist/activity/index.js.map +0 -1
  410. package/dist/activity/relevance.d.ts +0 -81
  411. package/dist/activity/relevance.d.ts.map +0 -1
  412. package/dist/activity/relevance.js +0 -161
  413. package/dist/activity/relevance.js.map +0 -1
  414. package/dist/activity/types.d.ts +0 -169
  415. package/dist/activity/types.d.ts.map +0 -1
  416. package/dist/activity/types.js +0 -33
  417. package/dist/activity/types.js.map +0 -1
  418. package/dist/activity/watcher.d.ts +0 -64
  419. package/dist/activity/watcher.d.ts.map +0 -1
  420. package/dist/activity/watcher.js +0 -212
  421. package/dist/activity/watcher.js.map +0 -1
  422. package/dist/agent/wake.d.ts +0 -85
  423. package/dist/agent/wake.d.ts.map +0 -1
  424. package/dist/agent/wake.js +0 -278
  425. package/dist/agent/wake.js.map +0 -1
  426. package/dist/lifecycle/handlers/generic.d.ts +0 -27
  427. package/dist/lifecycle/handlers/generic.d.ts.map +0 -1
  428. package/dist/lifecycle/handlers/generic.js +0 -56
  429. package/dist/lifecycle/handlers/generic.js.map +0 -1
  430. package/dist/lifecycle/handlers/index.d.ts +0 -51
  431. package/dist/lifecycle/handlers/index.d.ts.map +0 -1
  432. package/dist/lifecycle/handlers/index.js +0 -110
  433. package/dist/lifecycle/handlers/index.js.map +0 -1
  434. package/dist/lifecycle/handlers/integrator.d.ts +0 -81
  435. package/dist/lifecycle/handlers/integrator.d.ts.map +0 -1
  436. package/dist/lifecycle/handlers/integrator.js +0 -451
  437. package/dist/lifecycle/handlers/integrator.js.map +0 -1
  438. package/dist/lifecycle/handlers/monitor.d.ts +0 -29
  439. package/dist/lifecycle/handlers/monitor.d.ts.map +0 -1
  440. package/dist/lifecycle/handlers/monitor.js +0 -79
  441. package/dist/lifecycle/handlers/monitor.js.map +0 -1
  442. package/dist/lifecycle/handlers/worker.d.ts +0 -56
  443. package/dist/lifecycle/handlers/worker.d.ts.map +0 -1
  444. package/dist/lifecycle/handlers/worker.js +0 -381
  445. package/dist/lifecycle/handlers/worker.js.map +0 -1
  446. package/dist/mail/conversation-map.d.ts +0 -33
  447. package/dist/mail/conversation-map.d.ts.map +0 -1
  448. package/dist/mail/conversation-map.js +0 -61
  449. package/dist/mail/conversation-map.js.map +0 -1
  450. package/dist/mail/index.d.ts +0 -11
  451. package/dist/mail/index.d.ts.map +0 -1
  452. package/dist/mail/index.js +0 -11
  453. package/dist/mail/index.js.map +0 -1
  454. package/dist/mail/mail-service.d.ts +0 -85
  455. package/dist/mail/mail-service.d.ts.map +0 -1
  456. package/dist/mail/mail-service.js +0 -121
  457. package/dist/mail/mail-service.js.map +0 -1
  458. package/dist/mail/stores/eventstore-conversation-store.d.ts +0 -40
  459. package/dist/mail/stores/eventstore-conversation-store.d.ts.map +0 -1
  460. package/dist/mail/stores/eventstore-conversation-store.js +0 -131
  461. package/dist/mail/stores/eventstore-conversation-store.js.map +0 -1
  462. package/dist/mail/stores/eventstore-participant-store.d.ts +0 -43
  463. package/dist/mail/stores/eventstore-participant-store.d.ts.map +0 -1
  464. package/dist/mail/stores/eventstore-participant-store.js +0 -145
  465. package/dist/mail/stores/eventstore-participant-store.js.map +0 -1
  466. package/dist/mail/stores/eventstore-thread-store.d.ts +0 -46
  467. package/dist/mail/stores/eventstore-thread-store.d.ts.map +0 -1
  468. package/dist/mail/stores/eventstore-thread-store.js +0 -118
  469. package/dist/mail/stores/eventstore-thread-store.js.map +0 -1
  470. package/dist/mail/stores/eventstore-turn-store.d.ts +0 -47
  471. package/dist/mail/stores/eventstore-turn-store.d.ts.map +0 -1
  472. package/dist/mail/stores/eventstore-turn-store.js +0 -153
  473. package/dist/mail/stores/eventstore-turn-store.js.map +0 -1
  474. package/dist/mail/stores/index.d.ts +0 -12
  475. package/dist/mail/stores/index.d.ts.map +0 -1
  476. package/dist/mail/stores/index.js +0 -12
  477. package/dist/mail/stores/index.js.map +0 -1
  478. package/dist/mail/stores/types.d.ts +0 -146
  479. package/dist/mail/stores/types.d.ts.map +0 -1
  480. package/dist/mail/stores/types.js +0 -13
  481. package/dist/mail/stores/types.js.map +0 -1
  482. package/dist/mail/turn-recorder.d.ts +0 -30
  483. package/dist/mail/turn-recorder.d.ts.map +0 -1
  484. package/dist/mail/turn-recorder.js +0 -98
  485. package/dist/mail/turn-recorder.js.map +0 -1
  486. package/dist/map/adapter/acp-over-map.d.ts +0 -115
  487. package/dist/map/adapter/acp-over-map.d.ts.map +0 -1
  488. package/dist/map/adapter/acp-over-map.js +0 -1024
  489. package/dist/map/adapter/acp-over-map.js.map +0 -1
  490. package/dist/map/adapter/connection-manager.d.ts +0 -150
  491. package/dist/map/adapter/connection-manager.d.ts.map +0 -1
  492. package/dist/map/adapter/connection-manager.js +0 -207
  493. package/dist/map/adapter/connection-manager.js.map +0 -1
  494. package/dist/map/adapter/event-log.d.ts +0 -87
  495. package/dist/map/adapter/event-log.d.ts.map +0 -1
  496. package/dist/map/adapter/event-log.js +0 -122
  497. package/dist/map/adapter/event-log.js.map +0 -1
  498. package/dist/map/adapter/event-translator.d.ts +0 -85
  499. package/dist/map/adapter/event-translator.d.ts.map +0 -1
  500. package/dist/map/adapter/event-translator.js +0 -295
  501. package/dist/map/adapter/event-translator.js.map +0 -1
  502. package/dist/map/adapter/extensions/agent-detection.d.ts +0 -49
  503. package/dist/map/adapter/extensions/agent-detection.d.ts.map +0 -1
  504. package/dist/map/adapter/extensions/agent-detection.js +0 -91
  505. package/dist/map/adapter/extensions/agent-detection.js.map +0 -1
  506. package/dist/map/adapter/extensions/agent-lifecycle.d.ts +0 -82
  507. package/dist/map/adapter/extensions/agent-lifecycle.d.ts.map +0 -1
  508. package/dist/map/adapter/extensions/agent-lifecycle.js +0 -164
  509. package/dist/map/adapter/extensions/agent-lifecycle.js.map +0 -1
  510. package/dist/map/adapter/extensions/index.d.ts +0 -92
  511. package/dist/map/adapter/extensions/index.d.ts.map +0 -1
  512. package/dist/map/adapter/extensions/index.js +0 -214
  513. package/dist/map/adapter/extensions/index.js.map +0 -1
  514. package/dist/map/adapter/extensions/mcp-bridge.d.ts +0 -57
  515. package/dist/map/adapter/extensions/mcp-bridge.d.ts.map +0 -1
  516. package/dist/map/adapter/extensions/mcp-bridge.js +0 -745
  517. package/dist/map/adapter/extensions/mcp-bridge.js.map +0 -1
  518. package/dist/map/adapter/extensions/rename.d.ts +0 -29
  519. package/dist/map/adapter/extensions/rename.d.ts.map +0 -1
  520. package/dist/map/adapter/extensions/rename.js +0 -49
  521. package/dist/map/adapter/extensions/rename.js.map +0 -1
  522. package/dist/map/adapter/extensions/resume.d.ts +0 -47
  523. package/dist/map/adapter/extensions/resume.d.ts.map +0 -1
  524. package/dist/map/adapter/extensions/resume.js +0 -59
  525. package/dist/map/adapter/extensions/resume.js.map +0 -1
  526. package/dist/map/adapter/extensions/streams.d.ts +0 -95
  527. package/dist/map/adapter/extensions/streams.d.ts.map +0 -1
  528. package/dist/map/adapter/extensions/streams.js +0 -515
  529. package/dist/map/adapter/extensions/streams.js.map +0 -1
  530. package/dist/map/adapter/extensions/task.d.ts +0 -40
  531. package/dist/map/adapter/extensions/task.d.ts.map +0 -1
  532. package/dist/map/adapter/extensions/task.js +0 -197
  533. package/dist/map/adapter/extensions/task.js.map +0 -1
  534. package/dist/map/adapter/extensions/update-metadata.d.ts +0 -29
  535. package/dist/map/adapter/extensions/update-metadata.d.ts.map +0 -1
  536. package/dist/map/adapter/extensions/update-metadata.js +0 -67
  537. package/dist/map/adapter/extensions/update-metadata.js.map +0 -1
  538. package/dist/map/adapter/extensions/wake.d.ts +0 -60
  539. package/dist/map/adapter/extensions/wake.d.ts.map +0 -1
  540. package/dist/map/adapter/extensions/wake.js +0 -144
  541. package/dist/map/adapter/extensions/wake.js.map +0 -1
  542. package/dist/map/adapter/extensions/workspace-files.d.ts +0 -42
  543. package/dist/map/adapter/extensions/workspace-files.d.ts.map +0 -1
  544. package/dist/map/adapter/extensions/workspace-files.js +0 -338
  545. package/dist/map/adapter/extensions/workspace-files.js.map +0 -1
  546. package/dist/map/adapter/extensions/workspace.d.ts +0 -57
  547. package/dist/map/adapter/extensions/workspace.d.ts.map +0 -1
  548. package/dist/map/adapter/extensions/workspace.js +0 -81
  549. package/dist/map/adapter/extensions/workspace.js.map +0 -1
  550. package/dist/map/adapter/index.d.ts +0 -20
  551. package/dist/map/adapter/index.d.ts.map +0 -1
  552. package/dist/map/adapter/index.js +0 -40
  553. package/dist/map/adapter/index.js.map +0 -1
  554. package/dist/map/adapter/interface.d.ts +0 -450
  555. package/dist/map/adapter/interface.d.ts.map +0 -1
  556. package/dist/map/adapter/interface.js +0 -24
  557. package/dist/map/adapter/interface.js.map +0 -1
  558. package/dist/map/adapter/mail-handler-adapter.d.ts +0 -27
  559. package/dist/map/adapter/mail-handler-adapter.d.ts.map +0 -1
  560. package/dist/map/adapter/mail-handler-adapter.js +0 -292
  561. package/dist/map/adapter/mail-handler-adapter.js.map +0 -1
  562. package/dist/map/adapter/map-adapter.d.ts +0 -200
  563. package/dist/map/adapter/map-adapter.d.ts.map +0 -1
  564. package/dist/map/adapter/map-adapter.js +0 -1199
  565. package/dist/map/adapter/map-adapter.js.map +0 -1
  566. package/dist/map/adapter/rpc-handler.d.ts +0 -263
  567. package/dist/map/adapter/rpc-handler.d.ts.map +0 -1
  568. package/dist/map/adapter/rpc-handler.js +0 -365
  569. package/dist/map/adapter/rpc-handler.js.map +0 -1
  570. package/dist/map/adapter/subscription-manager.d.ts +0 -174
  571. package/dist/map/adapter/subscription-manager.d.ts.map +0 -1
  572. package/dist/map/adapter/subscription-manager.js +0 -248
  573. package/dist/map/adapter/subscription-manager.js.map +0 -1
  574. package/dist/map/adapter/types.d.ts +0 -194
  575. package/dist/map/adapter/types.d.ts.map +0 -1
  576. package/dist/map/adapter/types.js +0 -27
  577. package/dist/map/adapter/types.js.map +0 -1
  578. package/dist/map/adapter/websocket-integration.d.ts +0 -113
  579. package/dist/map/adapter/websocket-integration.d.ts.map +0 -1
  580. package/dist/map/adapter/websocket-integration.js +0 -134
  581. package/dist/map/adapter/websocket-integration.js.map +0 -1
  582. package/dist/map/federation/envelope.d.ts +0 -98
  583. package/dist/map/federation/envelope.d.ts.map +0 -1
  584. package/dist/map/federation/envelope.js +0 -160
  585. package/dist/map/federation/envelope.js.map +0 -1
  586. package/dist/map/federation/federation-handler.d.ts +0 -50
  587. package/dist/map/federation/federation-handler.d.ts.map +0 -1
  588. package/dist/map/federation/federation-handler.js +0 -306
  589. package/dist/map/federation/federation-handler.js.map +0 -1
  590. package/dist/map/federation/index.d.ts +0 -14
  591. package/dist/map/federation/index.d.ts.map +0 -1
  592. package/dist/map/federation/index.js +0 -13
  593. package/dist/map/federation/index.js.map +0 -1
  594. package/dist/map/federation/types.d.ts +0 -239
  595. package/dist/map/federation/types.d.ts.map +0 -1
  596. package/dist/map/federation/types.js +0 -23
  597. package/dist/map/federation/types.js.map +0 -1
  598. package/dist/map/utils/address-translation.d.ts +0 -99
  599. package/dist/map/utils/address-translation.d.ts.map +0 -1
  600. package/dist/map/utils/address-translation.js +0 -285
  601. package/dist/map/utils/address-translation.js.map +0 -1
  602. package/dist/map/utils/index.d.ts +0 -7
  603. package/dist/map/utils/index.d.ts.map +0 -1
  604. package/dist/map/utils/index.js +0 -7
  605. package/dist/map/utils/index.js.map +0 -1
  606. package/dist/mcp/map-client.d.ts +0 -39
  607. package/dist/mcp/map-client.d.ts.map +0 -1
  608. package/dist/mcp/map-client.js +0 -129
  609. package/dist/mcp/map-client.js.map +0 -1
  610. package/dist/mcp/mcp-server.d.ts +0 -72
  611. package/dist/mcp/mcp-server.d.ts.map +0 -1
  612. package/dist/mcp/mcp-server.js +0 -1024
  613. package/dist/mcp/mcp-server.js.map +0 -1
  614. package/dist/mcp/tools/claim_task.d.ts +0 -35
  615. package/dist/mcp/tools/claim_task.d.ts.map +0 -1
  616. package/dist/mcp/tools/claim_task.js +0 -58
  617. package/dist/mcp/tools/claim_task.js.map +0 -1
  618. package/dist/mcp/tools/done.d.ts +0 -102
  619. package/dist/mcp/tools/done.d.ts.map +0 -1
  620. package/dist/mcp/tools/done.js +0 -252
  621. package/dist/mcp/tools/done.js.map +0 -1
  622. package/dist/mcp/tools/inject_context.d.ts +0 -61
  623. package/dist/mcp/tools/inject_context.d.ts.map +0 -1
  624. package/dist/mcp/tools/inject_context.js +0 -123
  625. package/dist/mcp/tools/inject_context.js.map +0 -1
  626. package/dist/mcp/tools/list_claimable_tasks.d.ts +0 -38
  627. package/dist/mcp/tools/list_claimable_tasks.d.ts.map +0 -1
  628. package/dist/mcp/tools/list_claimable_tasks.js +0 -63
  629. package/dist/mcp/tools/list_claimable_tasks.js.map +0 -1
  630. package/dist/mcp/tools/unclaim_task.d.ts +0 -31
  631. package/dist/mcp/tools/unclaim_task.d.ts.map +0 -1
  632. package/dist/mcp/tools/unclaim_task.js +0 -47
  633. package/dist/mcp/tools/unclaim_task.js.map +0 -1
  634. package/dist/mcp/tools/wait_for_activity.d.ts +0 -60
  635. package/dist/mcp/tools/wait_for_activity.d.ts.map +0 -1
  636. package/dist/mcp/tools/wait_for_activity.js +0 -135
  637. package/dist/mcp/tools/wait_for_activity.js.map +0 -1
  638. package/dist/monitor/health-check-service.d.ts +0 -143
  639. package/dist/monitor/health-check-service.d.ts.map +0 -1
  640. package/dist/monitor/health-check-service.js +0 -240
  641. package/dist/monitor/health-check-service.js.map +0 -1
  642. package/dist/monitor/index.d.ts +0 -14
  643. package/dist/monitor/index.d.ts.map +0 -1
  644. package/dist/monitor/index.js +0 -14
  645. package/dist/monitor/index.js.map +0 -1
  646. package/dist/monitor/stall-detector.d.ts +0 -109
  647. package/dist/monitor/stall-detector.d.ts.map +0 -1
  648. package/dist/monitor/stall-detector.js +0 -152
  649. package/dist/monitor/stall-detector.js.map +0 -1
  650. package/dist/peer/capability-manager.d.ts +0 -56
  651. package/dist/peer/capability-manager.d.ts.map +0 -1
  652. package/dist/peer/capability-manager.js +0 -186
  653. package/dist/peer/capability-manager.js.map +0 -1
  654. package/dist/peer/encapsulation-manager.d.ts +0 -190
  655. package/dist/peer/encapsulation-manager.d.ts.map +0 -1
  656. package/dist/peer/encapsulation-manager.js +0 -486
  657. package/dist/peer/encapsulation-manager.js.map +0 -1
  658. package/dist/peer/federation-manager.d.ts +0 -223
  659. package/dist/peer/federation-manager.d.ts.map +0 -1
  660. package/dist/peer/federation-manager.js +0 -528
  661. package/dist/peer/federation-manager.js.map +0 -1
  662. package/dist/peer/hierarchy-errors.d.ts +0 -208
  663. package/dist/peer/hierarchy-errors.d.ts.map +0 -1
  664. package/dist/peer/hierarchy-errors.js +0 -268
  665. package/dist/peer/hierarchy-errors.js.map +0 -1
  666. package/dist/peer/hierarchy-protocol.d.ts +0 -159
  667. package/dist/peer/hierarchy-protocol.d.ts.map +0 -1
  668. package/dist/peer/hierarchy-protocol.js +0 -142
  669. package/dist/peer/hierarchy-protocol.js.map +0 -1
  670. package/dist/peer/index.d.ts +0 -15
  671. package/dist/peer/index.d.ts.map +0 -1
  672. package/dist/peer/index.js +0 -15
  673. package/dist/peer/index.js.map +0 -1
  674. package/dist/peer/peer-manager.d.ts +0 -99
  675. package/dist/peer/peer-manager.d.ts.map +0 -1
  676. package/dist/peer/peer-manager.js +0 -333
  677. package/dist/peer/peer-manager.js.map +0 -1
  678. package/dist/peer/task-delegation.d.ts +0 -189
  679. package/dist/peer/task-delegation.d.ts.map +0 -1
  680. package/dist/peer/task-delegation.js +0 -303
  681. package/dist/peer/task-delegation.js.map +0 -1
  682. package/dist/peer/transports/index.d.ts +0 -8
  683. package/dist/peer/transports/index.d.ts.map +0 -1
  684. package/dist/peer/transports/index.js +0 -8
  685. package/dist/peer/transports/index.js.map +0 -1
  686. package/dist/peer/transports/local-transport.d.ts +0 -56
  687. package/dist/peer/transports/local-transport.d.ts.map +0 -1
  688. package/dist/peer/transports/local-transport.js +0 -263
  689. package/dist/peer/transports/local-transport.js.map +0 -1
  690. package/dist/peer/transports/websocket-transport.d.ts +0 -86
  691. package/dist/peer/transports/websocket-transport.d.ts.map +0 -1
  692. package/dist/peer/transports/websocket-transport.js +0 -338
  693. package/dist/peer/transports/websocket-transport.js.map +0 -1
  694. package/dist/peer/types.d.ts +0 -268
  695. package/dist/peer/types.d.ts.map +0 -1
  696. package/dist/peer/types.js +0 -36
  697. package/dist/peer/types.js.map +0 -1
  698. package/dist/router/address-resolver.d.ts +0 -102
  699. package/dist/router/address-resolver.d.ts.map +0 -1
  700. package/dist/router/address-resolver.js +0 -198
  701. package/dist/router/address-resolver.js.map +0 -1
  702. package/dist/router/broadcast.d.ts +0 -53
  703. package/dist/router/broadcast.d.ts.map +0 -1
  704. package/dist/router/broadcast.js +0 -75
  705. package/dist/router/broadcast.js.map +0 -1
  706. package/dist/router/channels.d.ts +0 -148
  707. package/dist/router/channels.d.ts.map +0 -1
  708. package/dist/router/channels.js +0 -126
  709. package/dist/router/channels.js.map +0 -1
  710. package/dist/router/index.d.ts +0 -21
  711. package/dist/router/index.d.ts.map +0 -1
  712. package/dist/router/index.js +0 -18
  713. package/dist/router/index.js.map +0 -1
  714. package/dist/router/message-router.d.ts +0 -197
  715. package/dist/router/message-router.d.ts.map +0 -1
  716. package/dist/router/message-router.js +0 -903
  717. package/dist/router/message-router.js.map +0 -1
  718. package/dist/router/message-types.d.ts +0 -183
  719. package/dist/router/message-types.d.ts.map +0 -1
  720. package/dist/router/message-types.js +0 -79
  721. package/dist/router/message-types.js.map +0 -1
  722. package/dist/router/role-resolver.d.ts +0 -67
  723. package/dist/router/role-resolver.d.ts.map +0 -1
  724. package/dist/router/role-resolver.js +0 -106
  725. package/dist/router/role-resolver.js.map +0 -1
  726. package/dist/router/signals.d.ts +0 -253
  727. package/dist/router/signals.d.ts.map +0 -1
  728. package/dist/router/signals.js +0 -53
  729. package/dist/router/signals.js.map +0 -1
  730. package/dist/router/types.d.ts +0 -191
  731. package/dist/router/types.d.ts.map +0 -1
  732. package/dist/router/types.js +0 -34
  733. package/dist/router/types.js.map +0 -1
  734. package/dist/router/wake.d.ts +0 -111
  735. package/dist/router/wake.d.ts.map +0 -1
  736. package/dist/router/wake.js +0 -180
  737. package/dist/router/wake.js.map +0 -1
  738. package/dist/server/combined-server.d.ts +0 -95
  739. package/dist/server/combined-server.d.ts.map +0 -1
  740. package/dist/server/combined-server.js +0 -335
  741. package/dist/server/combined-server.js.map +0 -1
  742. package/dist/steering/index.d.ts +0 -11
  743. package/dist/steering/index.d.ts.map +0 -1
  744. package/dist/steering/index.js +0 -11
  745. package/dist/steering/index.js.map +0 -1
  746. package/dist/steering/inject.d.ts +0 -39
  747. package/dist/steering/inject.d.ts.map +0 -1
  748. package/dist/steering/inject.js +0 -197
  749. package/dist/steering/inject.js.map +0 -1
  750. package/dist/steering/types.d.ts +0 -100
  751. package/dist/steering/types.d.ts.map +0 -1
  752. package/dist/steering/types.js +0 -11
  753. package/dist/steering/types.js.map +0 -1
  754. package/dist/store/backends/index.d.ts +0 -11
  755. package/dist/store/backends/index.d.ts.map +0 -1
  756. package/dist/store/backends/index.js +0 -15
  757. package/dist/store/backends/index.js.map +0 -1
  758. package/dist/store/backends/json-backend.d.ts +0 -23
  759. package/dist/store/backends/json-backend.d.ts.map +0 -1
  760. package/dist/store/backends/json-backend.js +0 -220
  761. package/dist/store/backends/json-backend.js.map +0 -1
  762. package/dist/store/backends/memory-backend.d.ts +0 -12
  763. package/dist/store/backends/memory-backend.d.ts.map +0 -1
  764. package/dist/store/backends/memory-backend.js +0 -205
  765. package/dist/store/backends/memory-backend.js.map +0 -1
  766. package/dist/store/backends/sqlite-backend.d.ts +0 -27
  767. package/dist/store/backends/sqlite-backend.d.ts.map +0 -1
  768. package/dist/store/backends/sqlite-backend.js +0 -231
  769. package/dist/store/backends/sqlite-backend.js.map +0 -1
  770. package/dist/store/backends/tinybase-backend.d.ts +0 -22
  771. package/dist/store/backends/tinybase-backend.d.ts.map +0 -1
  772. package/dist/store/backends/tinybase-backend.js +0 -203
  773. package/dist/store/backends/tinybase-backend.js.map +0 -1
  774. package/dist/store/backends/types.d.ts +0 -175
  775. package/dist/store/backends/types.d.ts.map +0 -1
  776. package/dist/store/backends/types.js +0 -28
  777. package/dist/store/backends/types.js.map +0 -1
  778. package/dist/store/event-store.d.ts +0 -128
  779. package/dist/store/event-store.d.ts.map +0 -1
  780. package/dist/store/event-store.js +0 -1746
  781. package/dist/store/event-store.js.map +0 -1
  782. package/dist/store/instance.d.ts +0 -283
  783. package/dist/store/instance.d.ts.map +0 -1
  784. package/dist/store/instance.js +0 -363
  785. package/dist/store/instance.js.map +0 -1
  786. package/dist/store/migrations.d.ts +0 -41
  787. package/dist/store/migrations.d.ts.map +0 -1
  788. package/dist/store/migrations.js +0 -79
  789. package/dist/store/migrations.js.map +0 -1
  790. package/dist/store/types/config.d.ts +0 -16
  791. package/dist/store/types/config.d.ts.map +0 -1
  792. package/dist/store/types/config.js +0 -8
  793. package/dist/store/types/config.js.map +0 -1
  794. package/dist/store/types/conversations.d.ts +0 -91
  795. package/dist/store/types/conversations.d.ts.map +0 -1
  796. package/dist/store/types/conversations.js +0 -8
  797. package/dist/store/types/conversations.js.map +0 -1
  798. package/dist/store/types/sessions.d.ts +0 -44
  799. package/dist/store/types/sessions.d.ts.map +0 -1
  800. package/dist/store/types/sessions.js +0 -9
  801. package/dist/store/types/sessions.js.map +0 -1
  802. package/dist/task/backend/index.d.ts +0 -93
  803. package/dist/task/backend/index.d.ts.map +0 -1
  804. package/dist/task/backend/index.js +0 -178
  805. package/dist/task/backend/index.js.map +0 -1
  806. package/dist/task/backend/memory.d.ts +0 -70
  807. package/dist/task/backend/memory.d.ts.map +0 -1
  808. package/dist/task/backend/memory.js +0 -621
  809. package/dist/task/backend/memory.js.map +0 -1
  810. package/dist/task/backend/opentasks/backend.d.ts +0 -140
  811. package/dist/task/backend/opentasks/backend.d.ts.map +0 -1
  812. package/dist/task/backend/opentasks/backend.js +0 -1023
  813. package/dist/task/backend/opentasks/backend.js.map +0 -1
  814. package/dist/task/backend/opentasks/client.d.ts +0 -337
  815. package/dist/task/backend/opentasks/client.d.ts.map +0 -1
  816. package/dist/task/backend/opentasks/client.js +0 -225
  817. package/dist/task/backend/opentasks/client.js.map +0 -1
  818. package/dist/task/backend/opentasks/daemon-manager.d.ts +0 -89
  819. package/dist/task/backend/opentasks/daemon-manager.d.ts.map +0 -1
  820. package/dist/task/backend/opentasks/daemon-manager.js +0 -195
  821. package/dist/task/backend/opentasks/daemon-manager.js.map +0 -1
  822. package/dist/task/backend/opentasks/index.d.ts +0 -21
  823. package/dist/task/backend/opentasks/index.d.ts.map +0 -1
  824. package/dist/task/backend/opentasks/index.js +0 -21
  825. package/dist/task/backend/opentasks/index.js.map +0 -1
  826. package/dist/task/backend/opentasks/mapping.d.ts +0 -48
  827. package/dist/task/backend/opentasks/mapping.d.ts.map +0 -1
  828. package/dist/task/backend/opentasks/mapping.js +0 -77
  829. package/dist/task/backend/opentasks/mapping.js.map +0 -1
  830. package/dist/task/backend/sudocode/__tests__/integration/test-utils.d.ts +0 -54
  831. package/dist/task/backend/sudocode/__tests__/integration/test-utils.d.ts.map +0 -1
  832. package/dist/task/backend/sudocode/__tests__/integration/test-utils.js +0 -88
  833. package/dist/task/backend/sudocode/__tests__/integration/test-utils.js.map +0 -1
  834. package/dist/task/backend/sudocode/backend.d.ts +0 -155
  835. package/dist/task/backend/sudocode/backend.d.ts.map +0 -1
  836. package/dist/task/backend/sudocode/backend.js +0 -942
  837. package/dist/task/backend/sudocode/backend.js.map +0 -1
  838. package/dist/task/backend/sudocode/client.d.ts +0 -303
  839. package/dist/task/backend/sudocode/client.d.ts.map +0 -1
  840. package/dist/task/backend/sudocode/client.js +0 -101
  841. package/dist/task/backend/sudocode/client.js.map +0 -1
  842. package/dist/task/backend/sudocode/index.d.ts +0 -19
  843. package/dist/task/backend/sudocode/index.d.ts.map +0 -1
  844. package/dist/task/backend/sudocode/index.js +0 -17
  845. package/dist/task/backend/sudocode/index.js.map +0 -1
  846. package/dist/task/backend/sudocode/mapping.d.ts +0 -51
  847. package/dist/task/backend/sudocode/mapping.d.ts.map +0 -1
  848. package/dist/task/backend/sudocode/mapping.js +0 -86
  849. package/dist/task/backend/sudocode/mapping.js.map +0 -1
  850. package/dist/task/backend/sudocode/server-client.d.ts +0 -56
  851. package/dist/task/backend/sudocode/server-client.d.ts.map +0 -1
  852. package/dist/task/backend/sudocode/server-client.js +0 -367
  853. package/dist/task/backend/sudocode/server-client.js.map +0 -1
  854. package/dist/task/backend/sudocode/standalone-client.d.ts +0 -91
  855. package/dist/task/backend/sudocode/standalone-client.d.ts.map +0 -1
  856. package/dist/task/backend/sudocode/standalone-client.js +0 -476
  857. package/dist/task/backend/sudocode/standalone-client.js.map +0 -1
  858. package/dist/task/backend/sudocode/sync-policy.d.ts +0 -166
  859. package/dist/task/backend/sudocode/sync-policy.d.ts.map +0 -1
  860. package/dist/task/backend/sudocode/sync-policy.js +0 -221
  861. package/dist/task/backend/sudocode/sync-policy.js.map +0 -1
  862. package/dist/task/backend/sudocode/tools.d.ts +0 -87
  863. package/dist/task/backend/sudocode/tools.d.ts.map +0 -1
  864. package/dist/task/backend/sudocode/tools.js +0 -743
  865. package/dist/task/backend/sudocode/tools.js.map +0 -1
  866. package/dist/task/backend/tool-provider.d.ts +0 -56
  867. package/dist/task/backend/tool-provider.d.ts.map +0 -1
  868. package/dist/task/backend/tool-provider.js +0 -424
  869. package/dist/task/backend/tool-provider.js.map +0 -1
  870. package/dist/task/backend/types.d.ts +0 -297
  871. package/dist/task/backend/types.d.ts.map +0 -1
  872. package/dist/task/backend/types.js +0 -27
  873. package/dist/task/backend/types.js.map +0 -1
  874. package/dist/task/backend/unified-tool-provider.d.ts +0 -57
  875. package/dist/task/backend/unified-tool-provider.d.ts.map +0 -1
  876. package/dist/task/backend/unified-tool-provider.js +0 -623
  877. package/dist/task/backend/unified-tool-provider.js.map +0 -1
  878. package/dist/task/index.d.ts +0 -7
  879. package/dist/task/index.d.ts.map +0 -1
  880. package/dist/task/index.js +0 -7
  881. package/dist/task/index.js.map +0 -1
  882. package/dist/task/retry-policy.d.ts +0 -89
  883. package/dist/task/retry-policy.d.ts.map +0 -1
  884. package/dist/task/retry-policy.js +0 -160
  885. package/dist/task/retry-policy.js.map +0 -1
  886. package/dist/task/task-manager.d.ts +0 -70
  887. package/dist/task/task-manager.d.ts.map +0 -1
  888. package/dist/task/task-manager.js +0 -319
  889. package/dist/task/task-manager.js.map +0 -1
  890. package/dist/task/types.d.ts +0 -72
  891. package/dist/task/types.d.ts.map +0 -1
  892. package/dist/task/types.js +0 -33
  893. package/dist/task/types.js.map +0 -1
  894. package/dist/teams/team-manager.d.ts +0 -112
  895. package/dist/teams/team-manager.d.ts.map +0 -1
  896. package/dist/teams/team-manager.js +0 -305
  897. package/dist/teams/team-manager.js.map +0 -1
  898. package/dist/teams/team-runtime.d.ts +0 -245
  899. package/dist/teams/team-runtime.d.ts.map +0 -1
  900. package/dist/teams/team-runtime.js +0 -1023
  901. package/dist/teams/team-runtime.js.map +0 -1
  902. package/dist/trigger/router/index.d.ts +0 -11
  903. package/dist/trigger/router/index.d.ts.map +0 -1
  904. package/dist/trigger/router/index.js +0 -10
  905. package/dist/trigger/router/index.js.map +0 -1
  906. package/dist/trigger/router/strategies/ai-router-strategy.d.ts +0 -34
  907. package/dist/trigger/router/strategies/ai-router-strategy.d.ts.map +0 -1
  908. package/dist/trigger/router/strategies/ai-router-strategy.js +0 -359
  909. package/dist/trigger/router/strategies/ai-router-strategy.js.map +0 -1
  910. package/dist/trigger/router/strategies/direct-strategy.d.ts +0 -32
  911. package/dist/trigger/router/strategies/direct-strategy.d.ts.map +0 -1
  912. package/dist/trigger/router/strategies/direct-strategy.js +0 -119
  913. package/dist/trigger/router/strategies/direct-strategy.js.map +0 -1
  914. package/dist/trigger/router/strategies/index.d.ts +0 -11
  915. package/dist/trigger/router/strategies/index.d.ts.map +0 -1
  916. package/dist/trigger/router/strategies/index.js +0 -11
  917. package/dist/trigger/router/strategies/index.js.map +0 -1
  918. package/dist/trigger/router/strategies/role-strategy.d.ts +0 -39
  919. package/dist/trigger/router/strategies/role-strategy.d.ts.map +0 -1
  920. package/dist/trigger/router/strategies/role-strategy.js +0 -207
  921. package/dist/trigger/router/strategies/role-strategy.js.map +0 -1
  922. package/dist/trigger/router/trigger-router.d.ts +0 -54
  923. package/dist/trigger/router/trigger-router.d.ts.map +0 -1
  924. package/dist/trigger/router/trigger-router.js +0 -362
  925. package/dist/trigger/router/trigger-router.js.map +0 -1
  926. package/dist/trigger/router/types.d.ts +0 -225
  927. package/dist/trigger/router/types.d.ts.map +0 -1
  928. package/dist/trigger/router/types.js +0 -10
  929. package/dist/trigger/router/types.js.map +0 -1
  930. package/dist/trigger/trigger-system.d.ts +0 -77
  931. package/dist/trigger/trigger-system.d.ts.map +0 -1
  932. package/dist/trigger/trigger-system.js +0 -84
  933. package/dist/trigger/trigger-system.js.map +0 -1
  934. package/references/acp-factory-ref/CHANGELOG.md +0 -33
  935. package/references/acp-factory-ref/LICENSE +0 -21
  936. package/references/acp-factory-ref/README.md +0 -341
  937. package/references/acp-factory-ref/package-lock.json +0 -3102
  938. package/references/acp-factory-ref/package.json +0 -96
  939. package/references/acp-factory-ref/python/CHANGELOG.md +0 -33
  940. package/references/acp-factory-ref/python/LICENSE +0 -21
  941. package/references/acp-factory-ref/python/Makefile +0 -57
  942. package/references/acp-factory-ref/python/README.md +0 -253
  943. package/references/acp-factory-ref/python/pyproject.toml +0 -73
  944. package/references/acp-factory-ref/python/tests/e2e/__init__.py +0 -1
  945. package/references/acp-factory-ref/python/tests/e2e/test_codex_e2e.py +0 -349
  946. package/references/acp-factory-ref/python/tests/e2e/test_gemini_e2e.py +0 -165
  947. package/references/acp-factory-ref/python/tests/e2e/test_opencode_e2e.py +0 -296
  948. package/references/acp-factory-ref/python/tests/test_client_handler.py +0 -543
  949. package/references/acp-factory-ref/python/tests/test_pushable.py +0 -199
  950. package/references/claude-code-acp/.github/workflows/ci.yml +0 -45
  951. package/references/claude-code-acp/.github/workflows/publish.yml +0 -34
  952. package/references/claude-code-acp/.prettierrc.json +0 -4
  953. package/references/claude-code-acp/CHANGELOG.md +0 -249
  954. package/references/claude-code-acp/LICENSE +0 -222
  955. package/references/claude-code-acp/README.md +0 -53
  956. package/references/claude-code-acp/docs/RELEASES.md +0 -24
  957. package/references/claude-code-acp/eslint.config.js +0 -48
  958. package/references/claude-code-acp/package-lock.json +0 -4570
  959. package/references/claude-code-acp/package.json +0 -88
  960. package/references/claude-code-acp/scripts/release.sh +0 -119
  961. package/references/claude-code-acp/src/acp-agent.ts +0 -2076
  962. package/references/claude-code-acp/src/index.ts +0 -26
  963. package/references/claude-code-acp/src/lib.ts +0 -38
  964. package/references/claude-code-acp/src/mcp-server.ts +0 -911
  965. package/references/claude-code-acp/src/settings.ts +0 -522
  966. package/references/claude-code-acp/src/tests/.claude/commands/quick-math.md +0 -5
  967. package/references/claude-code-acp/src/tests/.claude/commands/say-hello.md +0 -6
  968. package/references/claude-code-acp/src/tests/acp-agent-fork.test.ts +0 -479
  969. package/references/claude-code-acp/src/tests/acp-agent.test.ts +0 -1502
  970. package/references/claude-code-acp/src/tests/extract-lines.test.ts +0 -103
  971. package/references/claude-code-acp/src/tests/fork-session.test.ts +0 -335
  972. package/references/claude-code-acp/src/tests/replace-and-calculate-location.test.ts +0 -334
  973. package/references/claude-code-acp/src/tests/settings.test.ts +0 -617
  974. package/references/claude-code-acp/src/tests/skills-options.test.ts +0 -187
  975. package/references/claude-code-acp/src/tests/tools.test.ts +0 -318
  976. package/references/claude-code-acp/src/tests/typescript-declarations.test.ts +0 -558
  977. package/references/claude-code-acp/src/tools.ts +0 -819
  978. package/references/claude-code-acp/src/utils.ts +0 -171
  979. package/references/claude-code-acp/tsconfig.json +0 -18
  980. package/references/claude-code-acp/vitest.config.ts +0 -19
  981. package/references/minimem/.claude/settings.json +0 -7
  982. package/references/minimem/.sudocode/issues.jsonl +0 -18
  983. package/references/minimem/.sudocode/specs.jsonl +0 -1
  984. package/references/minimem/CLAUDE.md +0 -310
  985. package/references/minimem/README.md +0 -562
  986. package/references/minimem/claude-plugin/.claude-plugin/plugin.json +0 -10
  987. package/references/minimem/claude-plugin/.mcp.json +0 -7
  988. package/references/minimem/claude-plugin/README.md +0 -158
  989. package/references/minimem/claude-plugin/commands/recall.md +0 -47
  990. package/references/minimem/claude-plugin/commands/remember.md +0 -41
  991. package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +0 -272
  992. package/references/minimem/claude-plugin/hooks/hooks.json +0 -27
  993. package/references/minimem/claude-plugin/hooks/session-end.sh +0 -86
  994. package/references/minimem/claude-plugin/hooks/session-start.sh +0 -85
  995. package/references/minimem/claude-plugin/skills/memory/SKILL.md +0 -108
  996. package/references/minimem/media/banner.png +0 -0
  997. package/references/minimem/package-lock.json +0 -5373
  998. package/references/minimem/package.json +0 -72
  999. package/references/minimem/scripts/postbuild.js +0 -35
  1000. package/references/minimem/src/__tests__/edge-cases.test.ts +0 -371
  1001. package/references/minimem/src/__tests__/errors.test.ts +0 -265
  1002. package/references/minimem/src/__tests__/helpers.ts +0 -199
  1003. package/references/minimem/src/__tests__/internal.test.ts +0 -407
  1004. package/references/minimem/src/__tests__/knowledge.test.ts +0 -287
  1005. package/references/minimem/src/__tests__/minimem.integration.test.ts +0 -1127
  1006. package/references/minimem/src/__tests__/session.test.ts +0 -190
  1007. package/references/minimem/src/cli/__tests__/commands.test.ts +0 -759
  1008. package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +0 -141
  1009. package/references/minimem/src/cli/commands/append.ts +0 -76
  1010. package/references/minimem/src/cli/commands/config.ts +0 -262
  1011. package/references/minimem/src/cli/commands/conflicts.ts +0 -413
  1012. package/references/minimem/src/cli/commands/daemon.ts +0 -169
  1013. package/references/minimem/src/cli/commands/index.ts +0 -12
  1014. package/references/minimem/src/cli/commands/init.ts +0 -88
  1015. package/references/minimem/src/cli/commands/mcp.ts +0 -177
  1016. package/references/minimem/src/cli/commands/push-pull.ts +0 -213
  1017. package/references/minimem/src/cli/commands/search.ts +0 -158
  1018. package/references/minimem/src/cli/commands/status.ts +0 -84
  1019. package/references/minimem/src/cli/commands/sync-init.ts +0 -290
  1020. package/references/minimem/src/cli/commands/sync.ts +0 -70
  1021. package/references/minimem/src/cli/commands/upsert.ts +0 -197
  1022. package/references/minimem/src/cli/config.ts +0 -584
  1023. package/references/minimem/src/cli/index.ts +0 -264
  1024. package/references/minimem/src/cli/shared.ts +0 -161
  1025. package/references/minimem/src/cli/sync/__tests__/central.test.ts +0 -152
  1026. package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +0 -209
  1027. package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +0 -118
  1028. package/references/minimem/src/cli/sync/__tests__/detection.test.ts +0 -207
  1029. package/references/minimem/src/cli/sync/__tests__/integration.test.ts +0 -476
  1030. package/references/minimem/src/cli/sync/__tests__/registry.test.ts +0 -363
  1031. package/references/minimem/src/cli/sync/__tests__/state.test.ts +0 -255
  1032. package/references/minimem/src/cli/sync/__tests__/validation.test.ts +0 -193
  1033. package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +0 -178
  1034. package/references/minimem/src/cli/sync/central.ts +0 -292
  1035. package/references/minimem/src/cli/sync/conflicts.ts +0 -204
  1036. package/references/minimem/src/cli/sync/daemon.ts +0 -407
  1037. package/references/minimem/src/cli/sync/detection.ts +0 -138
  1038. package/references/minimem/src/cli/sync/index.ts +0 -107
  1039. package/references/minimem/src/cli/sync/operations.ts +0 -373
  1040. package/references/minimem/src/cli/sync/registry.ts +0 -279
  1041. package/references/minimem/src/cli/sync/state.ts +0 -355
  1042. package/references/minimem/src/cli/sync/validation.ts +0 -206
  1043. package/references/minimem/src/cli/sync/watcher.ts +0 -234
  1044. package/references/minimem/src/cli/version.ts +0 -34
  1045. package/references/minimem/src/core/index.ts +0 -9
  1046. package/references/minimem/src/core/indexer.ts +0 -628
  1047. package/references/minimem/src/core/searcher.ts +0 -221
  1048. package/references/minimem/src/db/schema.ts +0 -183
  1049. package/references/minimem/src/db/sqlite-vec.ts +0 -24
  1050. package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +0 -431
  1051. package/references/minimem/src/embeddings/batch-gemini.ts +0 -392
  1052. package/references/minimem/src/embeddings/batch-openai.ts +0 -409
  1053. package/references/minimem/src/embeddings/embeddings.ts +0 -434
  1054. package/references/minimem/src/index.ts +0 -109
  1055. package/references/minimem/src/internal.ts +0 -299
  1056. package/references/minimem/src/minimem.ts +0 -1276
  1057. package/references/minimem/src/search/__tests__/hybrid.test.ts +0 -247
  1058. package/references/minimem/src/search/graph.ts +0 -234
  1059. package/references/minimem/src/search/hybrid.ts +0 -151
  1060. package/references/minimem/src/search/search.ts +0 -256
  1061. package/references/minimem/src/server/__tests__/mcp.test.ts +0 -341
  1062. package/references/minimem/src/server/__tests__/tools.test.ts +0 -364
  1063. package/references/minimem/src/server/mcp.ts +0 -326
  1064. package/references/minimem/src/server/tools.ts +0 -720
  1065. package/references/minimem/src/session.ts +0 -460
  1066. package/references/minimem/tsconfig.json +0 -19
  1067. package/references/minimem/tsup.config.ts +0 -26
  1068. package/references/minimem/vitest.config.ts +0 -24
  1069. package/references/multi-agent-protocol/.sudocode/issues.jsonl +0 -111
  1070. package/references/multi-agent-protocol/.sudocode/specs.jsonl +0 -13
  1071. package/references/multi-agent-protocol/LICENSE +0 -21
  1072. package/references/multi-agent-protocol/README.md +0 -113
  1073. package/references/multi-agent-protocol/docs/00-design-specification.md +0 -496
  1074. package/references/multi-agent-protocol/docs/01-open-questions.md +0 -1050
  1075. package/references/multi-agent-protocol/docs/02-wire-protocol.md +0 -296
  1076. package/references/multi-agent-protocol/docs/03-streaming-semantics.md +0 -252
  1077. package/references/multi-agent-protocol/docs/04-error-handling.md +0 -231
  1078. package/references/multi-agent-protocol/docs/05-connection-model.md +0 -244
  1079. package/references/multi-agent-protocol/docs/06-visibility-permissions.md +0 -243
  1080. package/references/multi-agent-protocol/docs/07-federation.md +0 -259
  1081. package/references/multi-agent-protocol/docs/08-macro-agent-migration.md +0 -253
  1082. package/references/multi-agent-protocol/docs/09-authentication.md +0 -680
  1083. package/references/multi-agent-protocol/docs/10-mail-protocol.md +0 -553
  1084. package/references/multi-agent-protocol/docs/agent-iam-integration.md +0 -877
  1085. package/references/multi-agent-protocol/docs/agentic-mesh-integration-draft.md +0 -459
  1086. package/references/multi-agent-protocol/docs/git-transport-draft.md +0 -251
  1087. package/references/multi-agent-protocol/docs-site/Gemfile +0 -22
  1088. package/references/multi-agent-protocol/docs-site/README.md +0 -82
  1089. package/references/multi-agent-protocol/docs-site/_config.yml +0 -91
  1090. package/references/multi-agent-protocol/docs-site/_includes/head_custom.html +0 -20
  1091. package/references/multi-agent-protocol/docs-site/_sass/color_schemes/map.scss +0 -42
  1092. package/references/multi-agent-protocol/docs-site/_sass/custom/custom.scss +0 -34
  1093. package/references/multi-agent-protocol/docs-site/examples/full-integration.md +0 -510
  1094. package/references/multi-agent-protocol/docs-site/examples/index.md +0 -138
  1095. package/references/multi-agent-protocol/docs-site/examples/simple-chat.md +0 -282
  1096. package/references/multi-agent-protocol/docs-site/examples/task-queue.md +0 -399
  1097. package/references/multi-agent-protocol/docs-site/getting-started/index.md +0 -98
  1098. package/references/multi-agent-protocol/docs-site/getting-started/installation.md +0 -219
  1099. package/references/multi-agent-protocol/docs-site/getting-started/overview.md +0 -172
  1100. package/references/multi-agent-protocol/docs-site/getting-started/quickstart.md +0 -237
  1101. package/references/multi-agent-protocol/docs-site/index.md +0 -136
  1102. package/references/multi-agent-protocol/docs-site/protocol/authentication.md +0 -391
  1103. package/references/multi-agent-protocol/docs-site/protocol/connection-model.md +0 -376
  1104. package/references/multi-agent-protocol/docs-site/protocol/design.md +0 -284
  1105. package/references/multi-agent-protocol/docs-site/protocol/error-handling.md +0 -312
  1106. package/references/multi-agent-protocol/docs-site/protocol/federation.md +0 -449
  1107. package/references/multi-agent-protocol/docs-site/protocol/index.md +0 -129
  1108. package/references/multi-agent-protocol/docs-site/protocol/permissions.md +0 -398
  1109. package/references/multi-agent-protocol/docs-site/protocol/streaming.md +0 -353
  1110. package/references/multi-agent-protocol/docs-site/protocol/wire-protocol.md +0 -369
  1111. package/references/multi-agent-protocol/docs-site/sdk/api/agent.md +0 -357
  1112. package/references/multi-agent-protocol/docs-site/sdk/api/client.md +0 -380
  1113. package/references/multi-agent-protocol/docs-site/sdk/api/index.md +0 -62
  1114. package/references/multi-agent-protocol/docs-site/sdk/api/server.md +0 -453
  1115. package/references/multi-agent-protocol/docs-site/sdk/api/types.md +0 -468
  1116. package/references/multi-agent-protocol/docs-site/sdk/guides/agent.md +0 -375
  1117. package/references/multi-agent-protocol/docs-site/sdk/guides/authentication.md +0 -405
  1118. package/references/multi-agent-protocol/docs-site/sdk/guides/client.md +0 -352
  1119. package/references/multi-agent-protocol/docs-site/sdk/guides/index.md +0 -89
  1120. package/references/multi-agent-protocol/docs-site/sdk/guides/server.md +0 -360
  1121. package/references/multi-agent-protocol/docs-site/sdk/guides/testing.md +0 -446
  1122. package/references/multi-agent-protocol/docs-site/sdk/guides/transports.md +0 -363
  1123. package/references/multi-agent-protocol/docs-site/sdk/index.md +0 -206
  1124. package/references/multi-agent-protocol/package-lock.json +0 -3886
  1125. package/references/multi-agent-protocol/package.json +0 -56
  1126. package/references/multi-agent-protocol/schema/meta.json +0 -467
  1127. package/references/multi-agent-protocol/schema/schema.json +0 -2558
  1128. package/references/openteams/.claude/settings.json +0 -6
  1129. package/references/openteams/README.md +0 -1
  1130. package/references/openteams/SKILL.md +0 -341
  1131. package/references/openteams/design.md +0 -411
  1132. package/references/openteams/examples/bmad-method/prompts/analyst/ROLE.md +0 -16
  1133. package/references/openteams/examples/bmad-method/prompts/analyst/SOUL.md +0 -5
  1134. package/references/openteams/examples/bmad-method/prompts/architect/ROLE.md +0 -24
  1135. package/references/openteams/examples/bmad-method/prompts/architect/SOUL.md +0 -5
  1136. package/references/openteams/examples/bmad-method/prompts/developer/ROLE.md +0 -25
  1137. package/references/openteams/examples/bmad-method/prompts/developer/SOUL.md +0 -5
  1138. package/references/openteams/examples/bmad-method/prompts/master/ROLE.md +0 -21
  1139. package/references/openteams/examples/bmad-method/prompts/master/SOUL.md +0 -5
  1140. package/references/openteams/examples/bmad-method/prompts/pm/ROLE.md +0 -20
  1141. package/references/openteams/examples/bmad-method/prompts/pm/SOUL.md +0 -5
  1142. package/references/openteams/examples/bmad-method/prompts/qa/ROLE.md +0 -17
  1143. package/references/openteams/examples/bmad-method/prompts/qa/SOUL.md +0 -5
  1144. package/references/openteams/examples/bmad-method/prompts/quick-flow-dev/ROLE.md +0 -23
  1145. package/references/openteams/examples/bmad-method/prompts/quick-flow-dev/SOUL.md +0 -5
  1146. package/references/openteams/examples/bmad-method/prompts/scrum-master/ROLE.md +0 -27
  1147. package/references/openteams/examples/bmad-method/prompts/scrum-master/SOUL.md +0 -5
  1148. package/references/openteams/examples/bmad-method/prompts/tech-writer/ROLE.md +0 -21
  1149. package/references/openteams/examples/bmad-method/prompts/tech-writer/SOUL.md +0 -5
  1150. package/references/openteams/examples/bmad-method/prompts/ux-designer/ROLE.md +0 -16
  1151. package/references/openteams/examples/bmad-method/prompts/ux-designer/SOUL.md +0 -5
  1152. package/references/openteams/examples/bmad-method/roles/analyst.yaml +0 -9
  1153. package/references/openteams/examples/bmad-method/roles/architect.yaml +0 -9
  1154. package/references/openteams/examples/bmad-method/roles/developer.yaml +0 -8
  1155. package/references/openteams/examples/bmad-method/roles/master.yaml +0 -8
  1156. package/references/openteams/examples/bmad-method/roles/pm.yaml +0 -9
  1157. package/references/openteams/examples/bmad-method/roles/qa.yaml +0 -8
  1158. package/references/openteams/examples/bmad-method/roles/quick-flow-dev.yaml +0 -8
  1159. package/references/openteams/examples/bmad-method/roles/scrum-master.yaml +0 -9
  1160. package/references/openteams/examples/bmad-method/roles/tech-writer.yaml +0 -8
  1161. package/references/openteams/examples/bmad-method/roles/ux-designer.yaml +0 -8
  1162. package/references/openteams/examples/bmad-method/team.yaml +0 -161
  1163. package/references/openteams/examples/get-shit-done/prompts/codebase-mapper/ROLE.md +0 -17
  1164. package/references/openteams/examples/get-shit-done/prompts/codebase-mapper/SOUL.md +0 -5
  1165. package/references/openteams/examples/get-shit-done/prompts/debugger/ROLE.md +0 -25
  1166. package/references/openteams/examples/get-shit-done/prompts/debugger/SOUL.md +0 -5
  1167. package/references/openteams/examples/get-shit-done/prompts/executor/ROLE.md +0 -34
  1168. package/references/openteams/examples/get-shit-done/prompts/executor/SOUL.md +0 -5
  1169. package/references/openteams/examples/get-shit-done/prompts/integration-checker/ROLE.md +0 -18
  1170. package/references/openteams/examples/get-shit-done/prompts/integration-checker/SOUL.md +0 -3
  1171. package/references/openteams/examples/get-shit-done/prompts/orchestrator/ROLE.md +0 -42
  1172. package/references/openteams/examples/get-shit-done/prompts/orchestrator/SOUL.md +0 -5
  1173. package/references/openteams/examples/get-shit-done/prompts/phase-researcher/ROLE.md +0 -15
  1174. package/references/openteams/examples/get-shit-done/prompts/phase-researcher/SOUL.md +0 -3
  1175. package/references/openteams/examples/get-shit-done/prompts/plan-checker/ROLE.md +0 -17
  1176. package/references/openteams/examples/get-shit-done/prompts/plan-checker/SOUL.md +0 -3
  1177. package/references/openteams/examples/get-shit-done/prompts/planner/ROLE.md +0 -28
  1178. package/references/openteams/examples/get-shit-done/prompts/planner/SOUL.md +0 -5
  1179. package/references/openteams/examples/get-shit-done/prompts/project-researcher/ROLE.md +0 -16
  1180. package/references/openteams/examples/get-shit-done/prompts/project-researcher/SOUL.md +0 -3
  1181. package/references/openteams/examples/get-shit-done/prompts/research-synthesizer/ROLE.md +0 -13
  1182. package/references/openteams/examples/get-shit-done/prompts/research-synthesizer/SOUL.md +0 -3
  1183. package/references/openteams/examples/get-shit-done/prompts/roadmapper/ROLE.md +0 -14
  1184. package/references/openteams/examples/get-shit-done/prompts/roadmapper/SOUL.md +0 -3
  1185. package/references/openteams/examples/get-shit-done/prompts/verifier/ROLE.md +0 -19
  1186. package/references/openteams/examples/get-shit-done/prompts/verifier/SOUL.md +0 -5
  1187. package/references/openteams/examples/get-shit-done/roles/codebase-mapper.yaml +0 -8
  1188. package/references/openteams/examples/get-shit-done/roles/debugger.yaml +0 -8
  1189. package/references/openteams/examples/get-shit-done/roles/executor.yaml +0 -8
  1190. package/references/openteams/examples/get-shit-done/roles/integration-checker.yaml +0 -8
  1191. package/references/openteams/examples/get-shit-done/roles/orchestrator.yaml +0 -9
  1192. package/references/openteams/examples/get-shit-done/roles/phase-researcher.yaml +0 -7
  1193. package/references/openteams/examples/get-shit-done/roles/plan-checker.yaml +0 -8
  1194. package/references/openteams/examples/get-shit-done/roles/planner.yaml +0 -8
  1195. package/references/openteams/examples/get-shit-done/roles/project-researcher.yaml +0 -8
  1196. package/references/openteams/examples/get-shit-done/roles/research-synthesizer.yaml +0 -7
  1197. package/references/openteams/examples/get-shit-done/roles/roadmapper.yaml +0 -7
  1198. package/references/openteams/examples/get-shit-done/roles/verifier.yaml +0 -8
  1199. package/references/openteams/examples/get-shit-done/team.yaml +0 -154
  1200. package/references/openteams/package-lock.json +0 -2181
  1201. package/references/openteams/package.json +0 -48
  1202. package/references/openteams/schema/role.schema.json +0 -125
  1203. package/references/openteams/schema/team.schema.json +0 -284
  1204. package/references/openteams/src/cli/agent.ts +0 -104
  1205. package/references/openteams/src/cli/cli.test.ts +0 -381
  1206. package/references/openteams/src/cli/generate.ts +0 -220
  1207. package/references/openteams/src/cli/message.ts +0 -241
  1208. package/references/openteams/src/cli/task.ts +0 -154
  1209. package/references/openteams/src/cli/team.ts +0 -104
  1210. package/references/openteams/src/cli/template.ts +0 -207
  1211. package/references/openteams/src/cli.ts +0 -45
  1212. package/references/openteams/src/db/database.test.ts +0 -185
  1213. package/references/openteams/src/db/database.ts +0 -240
  1214. package/references/openteams/src/generators/agent-prompt-generator.test.ts +0 -332
  1215. package/references/openteams/src/generators/agent-prompt-generator.ts +0 -521
  1216. package/references/openteams/src/generators/package-generator.test.ts +0 -129
  1217. package/references/openteams/src/generators/package-generator.ts +0 -102
  1218. package/references/openteams/src/generators/skill-generator.test.ts +0 -246
  1219. package/references/openteams/src/generators/skill-generator.ts +0 -374
  1220. package/references/openteams/src/index.ts +0 -104
  1221. package/references/openteams/src/services/agent-service.test.ts +0 -158
  1222. package/references/openteams/src/services/agent-service.ts +0 -84
  1223. package/references/openteams/src/services/communication-service.test.ts +0 -455
  1224. package/references/openteams/src/services/communication-service.ts +0 -371
  1225. package/references/openteams/src/services/message-service.test.ts +0 -342
  1226. package/references/openteams/src/services/message-service.ts +0 -203
  1227. package/references/openteams/src/services/task-service.test.ts +0 -434
  1228. package/references/openteams/src/services/task-service.ts +0 -239
  1229. package/references/openteams/src/services/team-service.test.ts +0 -181
  1230. package/references/openteams/src/services/team-service.ts +0 -139
  1231. package/references/openteams/src/services/template-service.test.ts +0 -306
  1232. package/references/openteams/src/services/template-service.ts +0 -182
  1233. package/references/openteams/src/spawner/acp-factory.ts +0 -96
  1234. package/references/openteams/src/spawner/interface.ts +0 -31
  1235. package/references/openteams/src/spawner/mock.test.ts +0 -93
  1236. package/references/openteams/src/spawner/mock.ts +0 -59
  1237. package/references/openteams/src/template/loader.test.ts +0 -1319
  1238. package/references/openteams/src/template/loader.ts +0 -698
  1239. package/references/openteams/src/template/types.ts +0 -200
  1240. package/references/openteams/src/types.ts +0 -205
  1241. package/references/openteams/tsconfig.json +0 -18
  1242. package/references/openteams/vitest.config.ts +0 -9
  1243. package/references/skill-tree/.claude/settings.json +0 -6
  1244. package/references/skill-tree/.sudocode/issues.jsonl +0 -11
  1245. package/references/skill-tree/.sudocode/specs.jsonl +0 -1
  1246. package/references/skill-tree/CLAUDE.md +0 -150
  1247. package/references/skill-tree/README.md +0 -324
  1248. package/references/skill-tree/docs/GAPS_v1.md +0 -221
  1249. package/references/skill-tree/docs/INTEGRATION_PLAN.md +0 -467
  1250. package/references/skill-tree/docs/TODOS.md +0 -91
  1251. package/references/skill-tree/docs/anthropic_skill_guide.md +0 -1364
  1252. package/references/skill-tree/docs/design/federated-skill-trees.md +0 -524
  1253. package/references/skill-tree/docs/design/multi-agent-sync.md +0 -759
  1254. package/references/skill-tree/docs/scraper/BRAINSTORM.md +0 -583
  1255. package/references/skill-tree/docs/scraper/POC_PLAN.md +0 -420
  1256. package/references/skill-tree/docs/scraper/README.md +0 -170
  1257. package/references/skill-tree/examples/basic-usage.ts +0 -190
  1258. package/references/skill-tree/package-lock.json +0 -1509
  1259. package/references/skill-tree/package.json +0 -66
  1260. package/references/skill-tree/scraper/README.md +0 -123
  1261. package/references/skill-tree/scraper/docs/DESIGN.md +0 -683
  1262. package/references/skill-tree/scraper/docs/PLAN.md +0 -336
  1263. package/references/skill-tree/scraper/drizzle.config.ts +0 -10
  1264. package/references/skill-tree/scraper/package-lock.json +0 -6329
  1265. package/references/skill-tree/scraper/package.json +0 -68
  1266. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +0 -7
  1267. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +0 -7
  1268. package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +0 -27
  1269. package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +0 -21
  1270. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +0 -54
  1271. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +0 -24
  1272. package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +0 -93
  1273. package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +0 -22
  1274. package/references/skill-tree/scraper/tsup.config.ts +0 -14
  1275. package/references/skill-tree/scraper/vitest.config.ts +0 -17
  1276. package/references/skill-tree/scripts/convert-to-vitest.ts +0 -166
  1277. package/references/skill-tree/skills/skill-writer/SKILL.md +0 -339
  1278. package/references/skill-tree/skills/skill-writer/references/examples.md +0 -326
  1279. package/references/skill-tree/skills/skill-writer/references/patterns.md +0 -210
  1280. package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +0 -123
  1281. package/references/skill-tree/test/run-all.ts +0 -106
  1282. package/references/skill-tree/test/utils.ts +0 -128
  1283. package/references/skill-tree/vitest.config.ts +0 -16
  1284. package/src/__tests__/e2e/agent-spawn-visibility.e2e.test.ts +0 -761
  1285. package/src/__tests__/e2e/cascade-termination.e2e.test.ts +0 -588
  1286. package/src/__tests__/e2e/conflict-resolution-flow.e2e.test.ts +0 -790
  1287. package/src/__tests__/e2e/full-agent-conflict-resolution.e2e.test.ts +0 -714
  1288. package/src/__tests__/e2e/full-agent-orchestration.e2e.test.ts +0 -536
  1289. package/src/__tests__/e2e/mcp-server-debug.e2e.test.ts +0 -372
  1290. package/src/__tests__/e2e/mcp-thin-client-bridge.e2e.test.ts +0 -304
  1291. package/src/__tests__/e2e/mcp-tools-available.e2e.test.ts +0 -324
  1292. package/src/__tests__/e2e/multi-agent.e2e.test.ts +0 -1527
  1293. package/src/__tests__/e2e/multi-coordinator.e2e.test.ts +0 -602
  1294. package/src/__tests__/e2e/orchestration-flow.e2e.test.ts +0 -686
  1295. package/src/__tests__/e2e/spawn-session-streaming.e2e.test.ts +0 -563
  1296. package/src/__tests__/e2e/steering-task.e2e.test.ts +0 -840
  1297. package/src/__tests__/integration.e2e.test.ts +0 -407
  1298. package/src/acp/__tests__/combined-websocket-server.test.ts +0 -260
  1299. package/src/acp/__tests__/history.test.ts +0 -530
  1300. package/src/acp/__tests__/integration.test.ts +0 -1049
  1301. package/src/acp/__tests__/multi-client-mounting.test.ts +0 -303
  1302. package/src/acp/__tests__/session-persistence.test.ts +0 -276
  1303. package/src/acp/__tests__/websocket-full.e2e.test.ts +0 -401
  1304. package/src/acp/__tests__/websocket-integration.test.ts +0 -484
  1305. package/src/acp/__tests__/websocket-stream.test.ts +0 -281
  1306. package/src/acp/__tests__/websocket.e2e.test.ts +0 -390
  1307. package/src/acp/websocket-stream.ts +0 -140
  1308. package/src/activity/__tests__/deduplication.test.ts +0 -345
  1309. package/src/activity/__tests__/relevance.test.ts +0 -347
  1310. package/src/activity/__tests__/watcher.test.ts +0 -344
  1311. package/src/activity/deduplication.ts +0 -219
  1312. package/src/activity/index.ts +0 -51
  1313. package/src/activity/relevance.ts +0 -258
  1314. package/src/activity/types.ts +0 -263
  1315. package/src/activity/watcher.ts +0 -345
  1316. package/src/agent/__tests__/agent-manager.test.ts +0 -1382
  1317. package/src/agent/__tests__/wake.test.ts +0 -768
  1318. package/src/agent/wake.ts +0 -357
  1319. package/src/api/__tests__/conversation-api.test.ts +0 -468
  1320. package/src/cli/__tests__/acp.test.ts +0 -214
  1321. package/src/lifecycle/__tests__/cascade-termination.test.ts +0 -919
  1322. package/src/lifecycle/__tests__/cascade.test.ts +0 -595
  1323. package/src/lifecycle/__tests__/cleanup.test.ts +0 -322
  1324. package/src/lifecycle/__tests__/handlers.test.ts +0 -1879
  1325. package/src/lifecycle/__tests__/lifecycle.e2e.test.ts +0 -354
  1326. package/src/lifecycle/__tests__/merge-queue.e2e.test.ts +0 -602
  1327. package/src/lifecycle/handlers/generic.ts +0 -87
  1328. package/src/lifecycle/handlers/index.ts +0 -183
  1329. package/src/lifecycle/handlers/integrator.ts +0 -672
  1330. package/src/lifecycle/handlers/monitor.ts +0 -114
  1331. package/src/lifecycle/handlers/worker.ts +0 -506
  1332. package/src/mail/__tests__/conversation-lifecycle.test.ts +0 -409
  1333. package/src/mail/__tests__/eventstore-stores.test.ts +0 -1073
  1334. package/src/mail/__tests__/mail-full-agent.e2e.test.ts +0 -575
  1335. package/src/mail/__tests__/mail-integration.test.ts +0 -759
  1336. package/src/mail/__tests__/mail-map-protocol.e2e.test.ts +0 -1068
  1337. package/src/mail/__tests__/mail-service.test.ts +0 -506
  1338. package/src/mail/__tests__/turn-recorder.test.ts +0 -328
  1339. package/src/mail/conversation-map.ts +0 -107
  1340. package/src/mail/index.ts +0 -25
  1341. package/src/mail/mail-service.ts +0 -257
  1342. package/src/mail/stores/eventstore-conversation-store.ts +0 -146
  1343. package/src/mail/stores/eventstore-participant-store.ts +0 -172
  1344. package/src/mail/stores/eventstore-thread-store.ts +0 -129
  1345. package/src/mail/stores/eventstore-turn-store.ts +0 -173
  1346. package/src/mail/stores/index.ts +0 -12
  1347. package/src/mail/stores/types.ts +0 -160
  1348. package/src/mail/turn-recorder.ts +0 -124
  1349. package/src/map/README.md +0 -79
  1350. package/src/map/__tests__/adapter-types.test.ts +0 -326
  1351. package/src/map/__tests__/interface-types.test.ts +0 -342
  1352. package/src/map/__tests__/types.test.ts +0 -411
  1353. package/src/map/adapter/__tests__/acp-over-map-cancel.test.ts +0 -820
  1354. package/src/map/adapter/__tests__/acp-over-map-getmodels.test.ts +0 -355
  1355. package/src/map/adapter/__tests__/acp-over-map-history.test.ts +0 -1386
  1356. package/src/map/adapter/__tests__/acp-over-map-persistence.e2e.test.ts +0 -440
  1357. package/src/map/adapter/__tests__/connection-manager.test.ts +0 -344
  1358. package/src/map/adapter/__tests__/event-broadcast.test.ts +0 -420
  1359. package/src/map/adapter/__tests__/event-log.test.ts +0 -527
  1360. package/src/map/adapter/__tests__/event-translator.test.ts +0 -550
  1361. package/src/map/adapter/__tests__/extensions.test.ts +0 -1387
  1362. package/src/map/adapter/__tests__/map-adapter.test.ts +0 -926
  1363. package/src/map/adapter/__tests__/mcp-bridge.test.ts +0 -1187
  1364. package/src/map/adapter/__tests__/multi-client-broadcast.test.ts +0 -711
  1365. package/src/map/adapter/__tests__/rpc-handler.test.ts +0 -644
  1366. package/src/map/adapter/__tests__/stream-extensions.test.ts +0 -494
  1367. package/src/map/adapter/__tests__/subscription-manager.test.ts +0 -536
  1368. package/src/map/adapter/__tests__/websocket-integration.test.ts +0 -487
  1369. package/src/map/adapter/__tests__/workspace-files.test.ts +0 -673
  1370. package/src/map/adapter/acp-over-map.ts +0 -1483
  1371. package/src/map/adapter/connection-manager.ts +0 -400
  1372. package/src/map/adapter/event-log.ts +0 -208
  1373. package/src/map/adapter/event-translator.ts +0 -415
  1374. package/src/map/adapter/extensions/agent-detection.ts +0 -201
  1375. package/src/map/adapter/extensions/agent-lifecycle.ts +0 -267
  1376. package/src/map/adapter/extensions/index.ts +0 -316
  1377. package/src/map/adapter/extensions/mcp-bridge.ts +0 -995
  1378. package/src/map/adapter/extensions/resume.ts +0 -114
  1379. package/src/map/adapter/extensions/streams.ts +0 -839
  1380. package/src/map/adapter/extensions/task.ts +0 -326
  1381. package/src/map/adapter/extensions/update-metadata.ts +0 -126
  1382. package/src/map/adapter/extensions/wake.ts +0 -239
  1383. package/src/map/adapter/extensions/workspace-files.ts +0 -449
  1384. package/src/map/adapter/extensions/workspace.ts +0 -176
  1385. package/src/map/adapter/index.ts +0 -163
  1386. package/src/map/adapter/interface.ts +0 -581
  1387. package/src/map/adapter/mail-handler-adapter.ts +0 -429
  1388. package/src/map/adapter/map-adapter.ts +0 -1749
  1389. package/src/map/adapter/rpc-handler.ts +0 -604
  1390. package/src/map/adapter/subscription-manager.ts +0 -474
  1391. package/src/map/adapter/types.ts +0 -266
  1392. package/src/map/adapter/websocket-integration.ts +0 -229
  1393. package/src/map/federation/__tests__/envelope.test.ts +0 -362
  1394. package/src/map/federation/__tests__/federation-handler.test.ts +0 -461
  1395. package/src/map/federation/envelope.ts +0 -243
  1396. package/src/map/federation/federation-handler.ts +0 -442
  1397. package/src/map/federation/index.ts +0 -65
  1398. package/src/map/federation/types.ts +0 -344
  1399. package/src/mcp/__tests__/map-client.test.ts +0 -386
  1400. package/src/mcp/__tests__/mcp-server-thin-client.test.ts +0 -368
  1401. package/src/mcp/__tests__/mcp-server.test.ts +0 -1002
  1402. package/src/mcp/map-client.ts +0 -177
  1403. package/src/mcp/mcp-server.ts +0 -1406
  1404. package/src/mcp/tools/__tests__/done.test.ts +0 -484
  1405. package/src/mcp/tools/claim_task.ts +0 -86
  1406. package/src/mcp/tools/done.ts +0 -357
  1407. package/src/mcp/tools/inject_context.ts +0 -173
  1408. package/src/mcp/tools/list_claimable_tasks.ts +0 -93
  1409. package/src/mcp/tools/unclaim_task.ts +0 -71
  1410. package/src/mcp/tools/wait_for_activity.ts +0 -185
  1411. package/src/monitor/__tests__/health-check-service.test.ts +0 -425
  1412. package/src/monitor/__tests__/stale-agent-flow.integration.test.ts +0 -393
  1413. package/src/monitor/__tests__/stall-detector.test.ts +0 -395
  1414. package/src/monitor/health-check-service.ts +0 -359
  1415. package/src/monitor/index.ts +0 -28
  1416. package/src/monitor/stall-detector.ts +0 -238
  1417. package/src/peer/__tests__/capability-manager.test.ts +0 -454
  1418. package/src/peer/__tests__/encapsulation-manager.test.ts +0 -787
  1419. package/src/peer/__tests__/federation-manager.test.ts +0 -828
  1420. package/src/peer/__tests__/hierarchy-errors.test.ts +0 -307
  1421. package/src/peer/__tests__/peer-manager.test.ts +0 -535
  1422. package/src/peer/__tests__/task-delegation.test.ts +0 -741
  1423. package/src/peer/capability-manager.ts +0 -289
  1424. package/src/peer/encapsulation-manager.ts +0 -831
  1425. package/src/peer/federation-manager.ts +0 -897
  1426. package/src/peer/hierarchy-errors.ts +0 -382
  1427. package/src/peer/hierarchy-protocol.ts +0 -328
  1428. package/src/peer/index.ts +0 -15
  1429. package/src/peer/peer-manager.ts +0 -540
  1430. package/src/peer/task-delegation.ts +0 -594
  1431. package/src/peer/transports/__tests__/local-transport.test.ts +0 -355
  1432. package/src/peer/transports/__tests__/websocket-transport.test.ts +0 -270
  1433. package/src/peer/transports/index.ts +0 -18
  1434. package/src/peer/transports/local-transport.ts +0 -348
  1435. package/src/peer/transports/websocket-transport.ts +0 -452
  1436. package/src/peer/types.ts +0 -331
  1437. package/src/roles/__tests__/capability-enforcement.test.ts +0 -989
  1438. package/src/roles/__tests__/message-routing.e2e.test.ts +0 -464
  1439. package/src/roles/__tests__/role-resolution.test.ts +0 -576
  1440. package/src/router/README.md +0 -120
  1441. package/src/router/__tests__/address-resolver.test.ts +0 -340
  1442. package/src/router/__tests__/broadcast.test.ts +0 -185
  1443. package/src/router/__tests__/message-router.test.ts +0 -1070
  1444. package/src/router/__tests__/role-channel.test.ts +0 -213
  1445. package/src/router/__tests__/send-to-address.test.ts +0 -731
  1446. package/src/router/__tests__/wake.test.ts +0 -459
  1447. package/src/router/address-resolver.ts +0 -303
  1448. package/src/router/broadcast.ts +0 -117
  1449. package/src/router/channels.ts +0 -283
  1450. package/src/router/index.ts +0 -148
  1451. package/src/router/message-router.ts +0 -1392
  1452. package/src/router/message-types.ts +0 -294
  1453. package/src/router/role-resolver.ts +0 -164
  1454. package/src/router/signals.ts +0 -335
  1455. package/src/router/types.ts +0 -306
  1456. package/src/router/wake.ts +0 -270
  1457. package/src/server/__tests__/combined-server.test.ts +0 -360
  1458. package/src/server/combined-server.ts +0 -544
  1459. package/src/steering/__tests__/inject.test.ts +0 -405
  1460. package/src/steering/__tests__/injection.e2e.test.ts +0 -932
  1461. package/src/steering/__tests__/steering-integration.test.ts +0 -747
  1462. package/src/steering/index.ts +0 -25
  1463. package/src/steering/inject.ts +0 -262
  1464. package/src/steering/types.ts +0 -143
  1465. package/src/store/README.md +0 -134
  1466. package/src/store/__tests__/event-store-oob.test.ts +0 -109
  1467. package/src/store/__tests__/event-store.test.ts +0 -1446
  1468. package/src/store/__tests__/instance.test.ts +0 -556
  1469. package/src/store/__tests__/migrations.test.ts +0 -109
  1470. package/src/store/backends/__tests__/memory-backend.test.ts +0 -383
  1471. package/src/store/backends/__tests__/sqlite-backend.test.ts +0 -427
  1472. package/src/store/backends/index.ts +0 -42
  1473. package/src/store/backends/json-backend.ts +0 -295
  1474. package/src/store/backends/memory-backend.ts +0 -256
  1475. package/src/store/backends/sqlite-backend.ts +0 -337
  1476. package/src/store/backends/tinybase-backend.ts +0 -276
  1477. package/src/store/backends/types.ts +0 -252
  1478. package/src/store/event-store.ts +0 -2214
  1479. package/src/store/instance.ts +0 -681
  1480. package/src/store/migrations.ts +0 -96
  1481. package/src/store/types/config.ts +0 -19
  1482. package/src/store/types/conversations.ts +0 -129
  1483. package/src/store/types/sessions.ts +0 -53
  1484. package/src/task/__tests__/retry-policy.test.ts +0 -409
  1485. package/src/task/__tests__/task-integration.test.ts +0 -457
  1486. package/src/task/__tests__/task-manager.test.ts +0 -815
  1487. package/src/task/backend/__tests__/create-task-backend.test.ts +0 -225
  1488. package/src/task/backend/__tests__/e2e/unified-tool-provider-opentasks.e2e.test.ts +0 -524
  1489. package/src/task/backend/__tests__/memory-pull-mode.test.ts +0 -153
  1490. package/src/task/backend/__tests__/memory.test.ts +0 -1274
  1491. package/src/task/backend/__tests__/unified-tool-provider.test.ts +0 -579
  1492. package/src/task/backend/index.ts +0 -310
  1493. package/src/task/backend/memory.ts +0 -828
  1494. package/src/task/backend/opentasks/__tests__/backend.test.ts +0 -968
  1495. package/src/task/backend/opentasks/__tests__/daemon-manager.test.ts +0 -406
  1496. package/src/task/backend/opentasks/__tests__/mapping.test.ts +0 -84
  1497. package/src/task/backend/opentasks/__tests__/opentasks-backend.e2e.test.ts +0 -1338
  1498. package/src/task/backend/opentasks/backend.ts +0 -1323
  1499. package/src/task/backend/opentasks/client.ts +0 -652
  1500. package/src/task/backend/opentasks/daemon-manager.ts +0 -256
  1501. package/src/task/backend/opentasks/index.ts +0 -69
  1502. package/src/task/backend/opentasks/mapping.ts +0 -94
  1503. package/src/task/backend/types.ts +0 -458
  1504. package/src/task/backend/unified-tool-provider.ts +0 -779
  1505. package/src/task/index.ts +0 -7
  1506. package/src/task/retry-policy.ts +0 -204
  1507. package/src/task/task-manager.ts +0 -515
  1508. package/src/task/types.ts +0 -136
  1509. package/src/teams/CLAUDE.md +0 -180
  1510. package/src/teams/__tests__/cross-subsystem.integration.test.ts +0 -983
  1511. package/src/teams/__tests__/e2e/team-runtime.e2e.test.ts +0 -553
  1512. package/src/teams/__tests__/e2e/workspace-isolation.e2e.test.ts +0 -1263
  1513. package/src/teams/__tests__/team-manager.test.ts +0 -814
  1514. package/src/teams/__tests__/team-system.test.ts +0 -2563
  1515. package/src/teams/team-manager.ts +0 -387
  1516. package/src/teams/team-runtime.ts +0 -1198
  1517. package/src/trigger/CLAUDE.md +0 -308
  1518. package/src/trigger/README.md +0 -429
  1519. package/src/trigger/__tests__/macro-agent-regression.test.ts +0 -946
  1520. package/src/trigger/__tests__/routing-strategies.test.ts +0 -329
  1521. package/src/trigger/__tests__/trigger-router.test.ts +0 -433
  1522. package/src/trigger/__tests__/trigger-system-integration.test.ts +0 -581
  1523. package/src/trigger/router/index.ts +0 -36
  1524. package/src/trigger/router/strategies/ai-router-strategy.ts +0 -481
  1525. package/src/trigger/router/strategies/direct-strategy.ts +0 -162
  1526. package/src/trigger/router/strategies/index.ts +0 -26
  1527. package/src/trigger/router/strategies/role-strategy.ts +0 -274
  1528. package/src/trigger/router/trigger-router.ts +0 -463
  1529. package/src/trigger/router/types.ts +0 -273
  1530. package/src/trigger/trigger-system.ts +0 -206
  1531. package/src/workspace/__tests__/multi-coordinator.test.ts +0 -1005
  1532. package/src/workspace/__tests__/workspace-manager.test.ts +0 -391
  1533. package/src/workspace/__tests__/workspace.e2e.test.ts +0 -1155
  1534. package/src/workspace/merge-queue/__tests__/hierarchical-consolidation.e2e.test.ts +0 -414
  1535. package/test_fixtures/harness/__tests__/behavior-executor-and-stepper.test.ts +0 -714
  1536. package/test_fixtures/harness/__tests__/fixtures.test.ts +0 -347
  1537. package/test_fixtures/harness/__tests__/merge-queue-and-worktrees.test.ts +0 -452
  1538. package/test_fixtures/harness/__tests__/temp-repo-and-simulator.test.ts +0 -422
  1539. package/test_fixtures/harness/__tests__/test-harness-and-assertions.test.ts +0 -568
  1540. /package/{references/acp-factory-ref/python/tests/__init__.py → .opentasks/graph.jsonl} +0 -0
@@ -1,27 +1,18 @@
1
1
  /**
2
- * AgentManager - Service for managing agent lifecycle and sessions
2
+ * AgentManager - Interface and types for managing agent lifecycle and sessions
3
3
  *
4
- * Integrates:
5
- * - acp-factory for Claude Code process/session management
6
- * - EventStore for persistent agent state
7
- * - MessageRouter for subscription setup
4
+ * The V1 implementation has been removed. The V2 implementation lives in
5
+ * agent-manager-v2.ts and is wired via boot-v2.ts.
6
+ *
7
+ * This file retains:
8
+ * - The AgentManager interface (used everywhere)
9
+ * - The AgentManagerConfig interface
10
+ * - The SpawnInterceptor type
11
+ * - A re-export of createAgentManagerV2 as createAgentManager for backward compat
8
12
  */
9
13
 
10
- import { nanoid } from "nanoid";
11
- import {
12
- uniqueNamesGenerator,
13
- adjectives,
14
- animals,
15
- } from "unique-names-generator";
16
- import {
17
- AgentFactory,
18
- type Session,
19
- type AgentHandle,
20
- type ExtendedSessionUpdate,
21
- type PermissionMode,
22
- } from "acp-factory";
23
- import type { EventStore } from "../store/event-store.js";
24
- import type { MessageRouter } from "../router/message-router.js";
14
+ import type { PermissionMode } from "acp-factory";
15
+ import type { ExtendedSessionUpdate, Session } from "acp-factory";
25
16
  import type {
26
17
  Agent,
27
18
  AgentId,
@@ -43,50 +34,8 @@ import type {
43
34
  AgentConfig,
44
35
  ContinueAgentOptions,
45
36
  } from "./types.js";
46
- import { AgentManagerError } from "./types.js";
47
- import type { RoleRegistry, Capability } from "../roles/types.js";
48
- import { AGENT_CAPABILITIES } from "../roles/capabilities.js";
49
- import { DefaultRoleRegistry } from "../roles/registry.js";
50
- import { generateSystemPrompt } from "./system-prompt.js";
51
- import type { WorkspaceManager, Workspace } from "../workspace/types.js";
52
- import {
53
- terminateWithChangeConsolidation,
54
- type WorkspaceProvider,
55
- type CascadeAgentManager,
56
- } from "../lifecycle/cascade.js";
57
- import type { HealthCheckService } from "../monitor/health-check-service.js";
58
- import { AgentTokenManager } from "../auth/token.js";
59
-
60
- // ─────────────────────────────────────────────────────────────────
61
- // Helper Functions
62
- // ─────────────────────────────────────────────────────────────────
63
-
64
- /**
65
- * Map a child role name to the required spawn capability.
66
- * Handles subroles like "worker.resolver" by checking base role.
67
- */
68
- function getSpawnCapability(childRole: string): Capability {
69
- // Extract base role (e.g., "worker.resolver" -> "worker")
70
- const baseRole = childRole.split(".")[0];
71
-
72
- switch (baseRole) {
73
- case "worker":
74
- return AGENT_CAPABILITIES.SPAWN_WORKER;
75
- case "integrator":
76
- return AGENT_CAPABILITIES.SPAWN_INTEGRATOR;
77
- case "monitor":
78
- return AGENT_CAPABILITIES.SPAWN_MONITOR;
79
- case "coordinator":
80
- // Coordinators require special handling - typically only other coordinators
81
- // or system-level agents can spawn coordinators
82
- return AGENT_CAPABILITIES.SPAWN_CUSTOM;
83
- default:
84
- // For team-defined roles (e.g., "grinder"), return the specific capability
85
- // (e.g., "agent.spawn.grinder"). The spawn check also accepts
86
- // "agent.spawn.custom" as a generic fallback.
87
- return `agent.spawn.${childRole}` as Capability;
88
- }
89
- }
37
+ import type { RoleRegistry } from "../roles/types.js";
38
+ import type { WorkspaceManager } from "../workspace/types.js";
90
39
 
91
40
  // ─────────────────────────────────────────────────────────────────
92
41
  // AgentManager Interface
@@ -317,16 +266,35 @@ export interface AgentManager {
317
266
  */
318
267
  setOpenTasksSocketPath(socketPath: string): void;
319
268
 
320
- // ── Mail Services (Late Binding) ─────────────────────────────
269
+ /**
270
+ * Set the MAP server URL for propagation to child agents via SWARM_MAP_SERVER.
271
+ * When set, spawned agents with cc-swarm hooks will connect to macro-agent's
272
+ * local MAP server instead of directly to an external hub.
273
+ */
274
+ setMapServerUrl(url: string): void;
275
+
276
+ /**
277
+ * Configure swarmkit integrations (minimem, skill-tree, sessionlog).
278
+ * Called by boot-v2 after system initialization.
279
+ */
280
+ setIntegrationConfigs(configs: {
281
+ minimem?: { enabled: boolean; dir?: string; provider?: string; global?: boolean };
282
+ skilltree?: { enabled: boolean; basePath?: string; defaultProfile?: string };
283
+ sessionlog?: { enabled: boolean; sync?: string };
284
+ }): void;
285
+
286
+ /**
287
+ * Set a compiled skill-tree loadout for a role.
288
+ * Called by TeamRuntime during team bootstrap.
289
+ */
290
+ setSkillLoadout(role: string, content: string): void;
321
291
 
322
292
  /**
323
- * Set mail services for conversation tracking.
324
- * Used for late binding when mailService is created after AgentManager.
293
+ * Set the MAP sidecar reference for trajectory reporting.
294
+ * Called by boot-v2 after the sidecar is created.
295
+ * Enables session-end checkpoint emission on terminate.
325
296
  */
326
- setMailServices(
327
- mailService: import("../mail/mail-service.js").MailService,
328
- conversationMap: import("../mail/conversation-map.js").ConversationMap,
329
- ): void;
297
+ setSidecar(sidecar: { connected: boolean; reportCheckpoint(cp: any): Promise<any> } | null): void;
330
298
 
331
299
  // ── Cleanup ────────────────────────────────────────────────────
332
300
 
@@ -365,25 +333,6 @@ export interface AgentManagerConfig {
365
333
  */
366
334
  roleRegistry?: RoleRegistry;
367
335
 
368
- /**
369
- * Optional HealthCheckService for monitoring coordinator health.
370
- * When provided, health checks will automatically start/stop
371
- * with coordinator agent lifecycle.
372
- */
373
- healthCheckService?: HealthCheckService;
374
-
375
- /**
376
- * Optional MailService for conversation tracking.
377
- * When provided, spawn creates task conversations and terminate closes them.
378
- */
379
- mailService?: import("../mail/mail-service.js").MailService;
380
-
381
- /**
382
- * Optional ConversationMap for agent-to-conversation tracking.
383
- * Required when mailService is provided.
384
- */
385
- conversationMap?: import("../mail/conversation-map.js").ConversationMap;
386
-
387
336
  /**
388
337
  * Optional server URL for MCP thin-client mode.
389
338
  * When set, spawned agents use ephemeral MAP WebSocket calls instead
@@ -397,19 +346,6 @@ export interface AgentManagerConfig {
397
346
  */
398
347
  serverToken?: string;
399
348
 
400
- /**
401
- * Per-agent token manager for MCP bridge authentication.
402
- * When provided, generates a unique token per agent at spawn time
403
- * and revokes it on terminate.
404
- */
405
- agentTokenManager?: AgentTokenManager;
406
-
407
- /**
408
- * Task backend type to propagate to child MCP subprocesses.
409
- * Sourced from merged config. Falls back to MACRO_TASK_BACKEND env var.
410
- */
411
- taskBackend?: string;
412
-
413
349
  /**
414
350
  * OpenTasks socket path to propagate to child MCP subprocesses.
415
351
  * Sourced from merged config. Falls back to OPENTASKS_SOCKET_PATH env var.
@@ -430,1696 +366,7 @@ export type SpawnInterceptor = (
430
366
  ) => SpawnAgentOptions | Promise<SpawnAgentOptions>;
431
367
 
432
368
  // ─────────────────────────────────────────────────────────────────
433
- // AgentManager Implementation
434
- // ─────────────────────────────────────────────────────────────────
435
-
436
- export function createAgentManager(
437
- eventStore: EventStore,
438
- messageRouter: MessageRouter,
439
- config: AgentManagerConfig = {},
440
- ): AgentManager {
441
- const {
442
- defaultPermissionMode = "auto-approve",
443
- defaultAgentType = "claude-code",
444
- defaultCwd = process.cwd(),
445
- workspaceManager,
446
- roleRegistry = new DefaultRoleRegistry(),
447
- healthCheckService,
448
- mailService: initialMailService,
449
- conversationMap: initialConversationMap,
450
- serverUrl,
451
- serverToken,
452
- agentTokenManager,
453
- taskBackend: configTaskBackend,
454
- openTasksSocketPath: initialOpenTasksSocketPath,
455
- } = config;
456
-
457
- // Mutable OpenTasks socket path (support late binding via setOpenTasksSocketPath)
458
- let configOpenTasksSocketPath = initialOpenTasksSocketPath;
459
-
460
- // Mutable mail services (support late binding via setMailServices)
461
- let mailService = initialMailService;
462
- let conversationMap = initialConversationMap;
463
-
464
- // Mutable spawn interceptor (set by TeamRuntime)
465
- let spawnInterceptor: SpawnInterceptor | null = null;
466
-
467
- // Active sessions tracked in memory
468
- const activeSessions = new Map<AgentId, ActiveSession>();
469
-
470
- // Agent workspace mappings (agentId → workspace)
471
- const agentWorkspaces = new Map<AgentId, Workspace>();
472
-
473
- // Lifecycle event listeners
474
- const lifecycleListeners = new Set<AgentLifecycleCallback>();
475
-
476
- // Shutdown guard — prevents spawns during close()
477
- let isShuttingDown = false;
478
-
479
- // ─────────────────────────────────────────────────────────────────
480
- // MCP Server Config
481
- // ─────────────────────────────────────────────────────────────────
482
-
483
- /**
484
- * Build the macro-agent MCP server config for a Claude Code agent session.
485
- * Used by spawn(), resume(), and forkAgent() to ensure every agent gets
486
- * access to the macro-agent coordination tools.
487
- */
488
- function buildMacroAgentMcp(opts: {
489
- agentId: string;
490
- parentId: string;
491
- taskId: string;
492
- cwd: string;
493
- permissionMode: string;
494
- lineage?: string[];
495
- sessionId?: string;
496
- streamId?: string;
497
- }) {
498
- // Common env vars for both thin-client and legacy modes
499
- const env = [
500
- { name: "MACRO_AGENT_ID", value: opts.agentId },
501
- { name: "MACRO_PARENT_ID", value: opts.parentId },
502
- { name: "MACRO_TASK_ID", value: opts.taskId },
503
- { name: "MACRO_AGENT_CWD", value: opts.cwd },
504
- { name: "MACRO_PERMISSION_MODE", value: opts.permissionMode },
505
- {
506
- name: "MACRO_TASK_BACKEND",
507
- value: configTaskBackend ?? process.env.MACRO_TASK_BACKEND ?? "",
508
- },
509
- {
510
- name: "OPENTASKS_SOCKET_PATH",
511
- value: configOpenTasksSocketPath ?? process.env.OPENTASKS_SOCKET_PATH ?? "",
512
- },
513
- // Pass streamId so MCP subprocess can include it in lifecycle context
514
- // (WorkspaceManager is not available in subprocess)
515
- { name: "MACRO_STREAM_ID", value: opts.streamId ?? "" },
516
- ];
517
-
518
- if (serverUrl) {
519
- // Thin-client mode: forward tool calls to main server via MAP WebSocket
520
- env.push(
521
- { name: "MACRO_SERVER_URL", value: serverUrl },
522
- {
523
- name: "MACRO_AGENT_LINEAGE",
524
- value: JSON.stringify(opts.lineage ?? []),
525
- },
526
- { name: "MACRO_SESSION_ID", value: opts.sessionId ?? "" },
527
- );
528
-
529
- // Auth tokens for thin-client connections
530
- if (serverToken) {
531
- env.push({ name: "MACRO_SERVER_TOKEN", value: serverToken });
532
- }
533
- if (agentTokenManager) {
534
- const agentToken = agentTokenManager.createToken(opts.agentId);
535
- env.push({ name: "MACRO_AGENT_TOKEN", value: agentToken });
536
- }
537
- } else {
538
- // Legacy mode: create local service stack with shared SQLite
539
- env.push(
540
- { name: "MACRO_INSTANCE_ID", value: eventStore.instanceId },
541
- { name: "MACRO_BASE_DIR", value: eventStore.baseDir },
542
- );
543
- }
544
-
545
- return {
546
- name: "macro-agent",
547
- command: "npx",
548
- args: ["multiagent-mcp"],
549
- env,
550
- };
551
- }
552
-
553
- // ─────────────────────────────────────────────────────────────────
554
- // Lifecycle
555
- // ─────────────────────────────────────────────────────────────────
556
-
557
- async function spawn(rawOptions: SpawnAgentOptions): Promise<SpawnedAgent> {
558
- if (isShuttingDown) {
559
- throw new AgentManagerError(
560
- "Cannot spawn agent during shutdown",
561
- "SHUTDOWN_IN_PROGRESS",
562
- );
563
- }
564
-
565
- // Apply spawn interceptor if set (used by TeamRuntime for team context injection)
566
- const options = spawnInterceptor
567
- ? await spawnInterceptor(rawOptions)
568
- : rawOptions;
569
-
570
- const {
571
- task,
572
- task_id,
573
- parent,
574
- cwd = defaultCwd,
575
- permissionMode = defaultPermissionMode,
576
- subscribeParent = true,
577
- topics = [],
578
- config: agentConfig,
579
- agentType = defaultAgentType,
580
- customPrompt,
581
- interactionPatterns,
582
- // Workspace-related fields (Phase 2)
583
- role,
584
- team_instance,
585
- streamId,
586
- streamConfig,
587
- dataplaneTaskId,
588
- capabilities,
589
- } = options;
590
-
591
- // Generate IDs upfront (including session_id so we can persist before starting MCP)
592
- const agentId = `agent_${nanoid(12)}`;
593
- const taskId = task_id ?? `task_${nanoid(12)}`;
594
- const sessionId = `session_${nanoid(12)}`;
595
-
596
- // Validate parent exists if specified
597
- if (parent) {
598
- const parentAgent = eventStore.getAgent(parent);
599
- if (!parentAgent) {
600
- throw new AgentManagerError(
601
- `Parent agent not found: ${parent}`,
602
- "AGENT_NOT_FOUND",
603
- parent,
604
- );
605
- }
606
-
607
- // Check spawn capability
608
- const childRole = role ?? "worker";
609
- const requiredCapability = getSpawnCapability(childRole);
610
- const parentRole = parentAgent.role ?? "worker";
611
-
612
- // Accept either the specific capability (e.g., agent.spawn.grinder)
613
- // or the generic agent.spawn.custom as a fallback for non-built-in roles
614
- const hasSpecific = roleRegistry.hasCapability(
615
- parentRole,
616
- requiredCapability,
617
- );
618
- const hasGeneric =
619
- requiredCapability !== AGENT_CAPABILITIES.SPAWN_CUSTOM &&
620
- roleRegistry.hasCapability(parentRole, AGENT_CAPABILITIES.SPAWN_CUSTOM);
621
-
622
- if (!hasSpecific && !hasGeneric) {
623
- throw new AgentManagerError(
624
- `Parent agent with role '${parentRole}' does not have capability to spawn '${childRole}' agents. ` +
625
- `Required capability: ${requiredCapability}`,
626
- "CAPABILITY_DENIED",
627
- parent,
628
- );
629
- }
630
- }
631
-
632
- // Build system prompt context
633
- const parentAgent = parent ? eventStore.getAgent(parent) : null;
634
- const promptContext: SystemPromptContext = {
635
- agentId,
636
- task,
637
- taskId,
638
- parentId: parent ?? null,
639
- isHeadManager: !parent,
640
- lineage: parentAgent?.lineage ? [...parentAgent.lineage, parent!] : [],
641
- role: role ?? "worker",
642
- mcpTools: [
643
- "done", // Listed first - most important tool for completion
644
- "spawn_agent",
645
- "emit_status",
646
- "send_message",
647
- "check_messages",
648
- "get_hierarchy",
649
- "get_agent_summary",
650
- "stop_agent",
651
- "create_task",
652
- "get_task",
653
- ],
654
- };
655
-
656
- let systemPrompt = generateSystemPrompt(promptContext);
657
-
658
- // Append role prompt: team customPrompt takes precedence over resolvedRole.systemPrompt
659
- const resolvedRole = roleRegistry.resolveRole(role ?? "worker");
660
- if (customPrompt) {
661
- systemPrompt += `\n\n# Role Instructions\n\n${customPrompt}`;
662
- } else if (resolvedRole.systemPrompt) {
663
- systemPrompt += `\n\n# Role-Specific Instructions\n\n${resolvedRole.systemPrompt}`;
664
- }
665
-
666
- // Append team interaction pattern sections (pull mode, trunk integration, etc.)
667
- if (interactionPatterns && interactionPatterns.length > 0) {
668
- for (const pattern of interactionPatterns) {
669
- systemPrompt += `\n\n${pattern}`;
670
- }
671
- }
672
-
673
- eventStore.emit({
674
- type: "spawn",
675
- source: { agent_id: parent ?? "system" },
676
- payload: {
677
- agent_id: agentId,
678
- session_id: sessionId,
679
- task,
680
- task_id: taskId,
681
- parent: parent ?? null,
682
- role: role ?? undefined,
683
- team_instance: team_instance ?? undefined,
684
- config: agentConfig ?? {},
685
- cwd,
686
- },
687
- });
688
-
689
- // Generate a human-readable default name
690
- const generatedName = uniqueNamesGenerator({
691
- dictionaries: [adjectives, animals],
692
- separator: "-",
693
- length: 2,
694
- });
695
- eventStore.updateAgentMetadata(agentId as AgentId, { name: generatedName });
696
-
697
- // Persist immediately so MCP server subprocess can read the agent
698
- await eventStore.persist();
699
-
700
- // Verify the agent is now in the store
701
- const verifyAgent = eventStore.getAgent(agentId);
702
- const allAgents = eventStore.listAgents();
703
- console.error(
704
- `[AgentManager] After persist: agent ${agentId} exists = ${!!verifyAgent}, total agents = ${allAgents.length}, instancePath = ${eventStore.instancePath}`,
705
- );
706
- console.error(
707
- `[AgentManager] All agent IDs: ${allAgents.map((a) => a.id).join(", ")}`,
708
- );
709
-
710
- try {
711
- // Spawn agent process via acp-factory
712
- const handle = await AgentFactory.spawn(agentType, {
713
- permissionMode,
714
- env: agentConfig?.env,
715
- });
716
-
717
- try {
718
- // ─────────────────────────────────────────────────────────────────
719
- // Workspace Creation (before session, so cwd reflects worktree)
720
- // ─────────────────────────────────────────────────────────────────
721
- let workspace: Workspace | undefined;
722
- let resolvedStreamId = streamId;
723
-
724
- if (workspaceManager && role) {
725
- try {
726
- workspace = await createWorkspaceForRole(
727
- workspaceManager,
728
- agentId,
729
- role,
730
- {
731
- streamId,
732
- streamConfig,
733
- dataplaneTaskId,
734
- capabilities,
735
- cwd,
736
- },
737
- );
738
-
739
- if (workspace) {
740
- agentWorkspaces.set(agentId, workspace);
741
- resolvedStreamId = workspace.streamId;
742
-
743
- // Create and claim a dataplane task so the worktree gets a real
744
- // worker branch. Without this, the worktree stays in detached
745
- // HEAD and done() would detect "HEAD" instead of the actual
746
- // worker branch name (e.g. worker/<agentId>/<taskId>).
747
- if (workspace.role === "worker" && workspace.streamId) {
748
- try {
749
- const dpTaskId = workspaceManager.createTask(
750
- workspace.streamId,
751
- { title: task ?? `Task for ${agentId}` },
752
- );
753
- workspaceManager.claimTask(dpTaskId, agentId, workspace.path);
754
- } catch (claimErr) {
755
- console.error(
756
- `[AgentManager] Failed to create/claim dataplane task for ${agentId}:`,
757
- claimErr,
758
- );
759
- // Continue without a branch — worktree stays in detached HEAD
760
- }
761
- }
762
-
763
- // Register with parent coordinator if applicable
764
- const isChildRole = role === "worker" || role === "integrator" ||
765
- (capabilities && (capabilities.includes("workspace.worktree") || capabilities.includes("workspace.integrate")));
766
- if (parent && isChildRole) {
767
- const parentWorkspace = agentWorkspaces.get(parent);
768
- if (parentWorkspace?.role === "coordinator") {
769
- workspaceManager.registerChildWorkspace(
770
- parent,
771
- agentId,
772
- workspace.path,
773
- );
774
- }
775
- }
776
- }
777
- } catch (wsError) {
778
- console.error(
779
- `[AgentManager] Failed to create workspace for ${agentId}: ${wsError}`,
780
- );
781
- // Continue without workspace — don't fail the spawn
782
- }
783
- }
784
-
785
- // Use workspace path as the agent's working directory when available.
786
- // This ensures the agent process, MCP subprocess (MACRO_AGENT_CWD), and
787
- // done handler all use the worktree path instead of the repo root.
788
- const effectiveCwd = workspace?.path ?? cwd;
789
-
790
- // Update agent's cwd in EventStore so resume() also uses workspace path
791
- if (workspace) {
792
- eventStore.updateAgentMetadata(agentId as AgentId, { cwd: effectiveCwd });
793
- await eventStore.persist();
794
- }
795
-
796
- const macroAgentMcp = buildMacroAgentMcp({
797
- agentId,
798
- parentId: parent ?? "",
799
- taskId,
800
- cwd: effectiveCwd,
801
- permissionMode,
802
- lineage: parentAgent?.lineage
803
- ? [...parentAgent.lineage, parent!]
804
- : [],
805
- sessionId,
806
- streamId,
807
- });
808
-
809
- // Combine with any user-provided MCP servers
810
- // Note: Like macroAgentMcp, user MCP servers use stdio (no 'type' field)
811
- const userMcpServers =
812
- agentConfig?.mcpServers?.map((s) => ({
813
- name: s.name,
814
- command: s.command,
815
- args: s.args ?? [],
816
- env: s.env
817
- ? Object.entries(s.env).map(([name, value]) => ({ name, value }))
818
- : [],
819
- })) ?? [];
820
-
821
- // Create session with MCP servers
822
- // Note: The MCP server subprocess will start here and look for the agent
823
- // in EventStore. We already persisted the spawn event above.
824
- //
825
- // When permissionMode is "interactive", we strip settingSources so that
826
- // the Claude Code subprocess doesn't read pre-approved tool rules from
827
- // the user's ~/.claude/settings.local.json. This ensures ALL tool calls
828
- // go through the canUseTool → requestPermission ACP flow.
829
- const agentMeta =
830
- permissionMode === "interactive"
831
- ? { claudeCode: { options: { settingSources: [] } } }
832
- : undefined;
833
- const session = await handle.createSession(effectiveCwd, {
834
- mcpServers: [macroAgentMcp, ...userMcpServers],
835
- ...(agentMeta && { agentMeta }),
836
- });
837
-
838
- // Emit started status (session is ready)
839
- // Include the provider's session ID (e.g., Claude Code UUID) so
840
- // it can be used for handle.loadSession() during resume
841
- eventStore.emit({
842
- type: "status",
843
- source: { agent_id: agentId },
844
- payload: {
845
- status_type: "started",
846
- summary: "Agent session started",
847
- provider_session_id: session.id,
848
- },
849
- });
850
-
851
- // Persist the status event
852
- await eventStore.persist();
853
-
854
- // Set up default subscriptions via MessageRouter
855
- messageRouter.setupDefaultSubscriptions({
856
- agent_id: agentId,
857
- parent_id: parent ?? undefined,
858
- task_id: taskId,
859
- subscribe_parent: subscribeParent,
860
- additional_topics: topics,
861
- role: role ?? undefined,
862
- });
863
-
864
- // ─────────────────────────────────────────────────────────────────
865
- // Mail: Create task conversation for this agent
866
- // ─────────────────────────────────────────────────────────────────
867
- if (mailService && conversationMap) {
868
- try {
869
- const parentConversationId = parent
870
- ? (conversationMap.getAgentConversation(parent) ??
871
- conversationMap.getSessionConversation(parent))
872
- : undefined;
873
-
874
- const { conversationId: taskConvId } =
875
- mailService.createConversation({
876
- type: "task",
877
- subject: task?.slice(0, 80),
878
- createdBy: parent ?? agentId,
879
- parentConversationId: parentConversationId,
880
- });
881
-
882
- // Join parent and child as participants
883
- if (parent) {
884
- mailService.joinConversation({
885
- conversationId: taskConvId,
886
- participantId: parent,
887
- participantType: "agent",
888
- role: "initiator",
889
- agentId: parent,
890
- });
891
- }
892
- mailService.joinConversation({
893
- conversationId: taskConvId,
894
- participantId: agentId,
895
- participantType: "agent",
896
- role: "worker",
897
- agentId,
898
- });
899
-
900
- conversationMap.setAgentConversation(agentId, taskConvId);
901
- } catch (err) {
902
- // Never fail spawn due to mail errors
903
- console.warn(
904
- `[AgentManager] Failed to create task conversation for ${agentId}:`,
905
- err,
906
- );
907
- }
908
- }
909
-
910
- // Track active session
911
- const activeSession: ActiveSession = {
912
- agentId,
913
- handle,
914
- session,
915
- createdAt: Date.now(),
916
- isPrompting: false,
917
- };
918
- activeSessions.set(agentId, activeSession);
919
-
920
- // Get the agent from materialized view
921
- const agent = eventStore.getAgent(agentId)!;
922
-
923
- // Notify lifecycle listeners
924
- notifyLifecycle({ type: "spawned", agent });
925
- notifyLifecycle({ type: "started", agent });
926
-
927
- // Start health monitoring for coordinators
928
- if (healthCheckService && role === "coordinator") {
929
- healthCheckService.startForCoordinator(agentId);
930
- }
931
-
932
- return {
933
- id: agentId,
934
- session_id: sessionId, // Macro-agent's own session ID for ACP protocol mapping
935
- agent,
936
- session,
937
- workspace,
938
- streamId: resolvedStreamId,
939
- };
940
- } catch (handleError) {
941
- // Close the spawned process to prevent orphaning
942
- try {
943
- await handle.close();
944
- } catch {
945
- // Ignore errors during cleanup
946
- }
947
- throw handleError;
948
- }
949
- } catch (error) {
950
- // Clean up the spawn event we already emitted
951
- eventStore.emit({
952
- type: "stop",
953
- source: { agent_id: agentId },
954
- payload: {
955
- reason: "failed",
956
- },
957
- });
958
- await eventStore.persist();
959
-
960
- throw new AgentManagerError(
961
- `Failed to spawn agent: ${error}`,
962
- "SPAWN_FAILED",
963
- agentId,
964
- );
965
- }
966
- }
967
-
968
- async function terminate(
969
- agentId: AgentId,
970
- reason: AgentStopReason,
971
- ): Promise<void> {
972
- const agent = eventStore.getAgent(agentId);
973
- if (!agent) {
974
- throw new AgentManagerError(
975
- `Agent not found: ${agentId}`,
976
- "AGENT_NOT_FOUND",
977
- agentId,
978
- );
979
- }
980
-
981
- // Close active session if exists
982
- const activeSession = activeSessions.get(agentId);
983
- if (activeSession) {
984
- try {
985
- await activeSession.handle.close();
986
- } catch {
987
- // Ignore errors during cleanup
988
- }
989
- activeSessions.delete(agentId);
990
- }
991
-
992
- // Stop health monitoring for coordinators
993
- if (healthCheckService && agent.role === "coordinator") {
994
- healthCheckService.stopForCoordinator(agentId);
995
- }
996
-
997
- // ─────────────────────────────────────────────────────────────────
998
- // Workspace Cleanup (Phase 2)
999
- // ─────────────────────────────────────────────────────────────────
1000
- if (workspaceManager && agentWorkspaces.has(agentId)) {
1001
- try {
1002
- workspaceManager.deallocateWorkspace(agentId);
1003
- agentWorkspaces.delete(agentId);
1004
- } catch (wsError) {
1005
- console.error(
1006
- `[AgentManager] Failed to deallocate workspace for ${agentId}: ${wsError}`,
1007
- );
1008
- // Continue with termination even if workspace cleanup fails
1009
- }
1010
- }
1011
-
1012
- // Revoke agent authentication token
1013
- if (agentTokenManager) {
1014
- agentTokenManager.revokeToken(agentId);
1015
- }
1016
-
1017
- // ─────────────────────────────────────────────────────────────────
1018
- // Mail: Close task conversation on terminate
1019
- // ─────────────────────────────────────────────────────────────────
1020
- if (mailService && conversationMap) {
1021
- try {
1022
- const convId = conversationMap.getAgentConversation(agentId);
1023
- if (convId) {
1024
- mailService.closeConversation({
1025
- conversationId: convId,
1026
- closedBy: agentId,
1027
- reason: reason === "completed" ? "completed" : "failed",
1028
- });
1029
- }
1030
- // Close any peer conversations
1031
- const peerConvIds = conversationMap.closePeerConversationsFor(agentId);
1032
- for (const peerConvId of peerConvIds) {
1033
- mailService.closeConversation({
1034
- conversationId: peerConvId,
1035
- closedBy: agentId,
1036
- reason: "participant_left",
1037
- });
1038
- }
1039
- conversationMap.removeAgent(agentId);
1040
- } catch (err) {
1041
- console.warn(
1042
- `[AgentManager] Failed to close conversation for ${agentId}:`,
1043
- err,
1044
- );
1045
- }
1046
- }
1047
-
1048
- // Emit stop event
1049
- eventStore.emit({
1050
- type: "stop",
1051
- source: { agent_id: agentId },
1052
- payload: {
1053
- agent_id: agentId,
1054
- reason,
1055
- },
1056
- });
1057
-
1058
- // If agent had a task, update task status based on reason
1059
- if (agent.task_id) {
1060
- const taskStatus =
1061
- reason === "completed"
1062
- ? "completed"
1063
- : reason === "failed"
1064
- ? "failed"
1065
- : "pending";
1066
-
1067
- eventStore.emit({
1068
- type: "task",
1069
- source: { agent_id: agentId },
1070
- payload: {
1071
- task_id: agent.task_id,
1072
- action: reason === "completed" ? "completed" : "status_change",
1073
- details: { status: taskStatus },
1074
- },
1075
- });
1076
- }
1077
-
1078
- // Persist events to SQLite for cross-process visibility
1079
- await eventStore.persist();
1080
-
1081
- // Notify lifecycle listeners
1082
- const updatedAgent = eventStore.getAgent(agentId)!;
1083
- notifyLifecycle({ type: "stopped", agent: updatedAgent, reason });
1084
-
1085
- // Terminate child agents when parent stops (always cascade)
1086
- // Use change consolidation to merge child branches back to parent before terminating
1087
- const children = getChildren(agentId);
1088
- const parentWorkspace = agentWorkspaces.get(agentId);
1089
-
1090
- for (const child of children) {
1091
- if (child.state === "running" || child.state === "spawning") {
1092
- // Create workspace provider for change consolidation
1093
- const workspaceProvider: WorkspaceProvider | undefined = parentWorkspace
1094
- ? {
1095
- getWorkspace: (id: AgentId) => agentWorkspaces.get(id) ?? null,
1096
- }
1097
- : undefined;
1098
-
1099
- // Create cascade adapter for termination
1100
- const cascadeAdapter: CascadeAgentManager = {
1101
- getChildren: (id) =>
1102
- getChildren(id).map((c) => ({
1103
- id: c.id,
1104
- state: c.state,
1105
- parent: c.parent,
1106
- })),
1107
- terminate: async (id, terminateReason) => {
1108
- await terminate(id, terminateReason as AgentStopReason);
1109
- },
1110
- };
1111
-
1112
- // Use terminateWithChangeConsolidation to merge changes before terminating
1113
- await terminateWithChangeConsolidation(
1114
- child.id,
1115
- agentId,
1116
- cascadeAdapter,
1117
- workspaceProvider,
1118
- );
1119
- }
1120
- }
1121
- }
1122
-
1123
- async function resume(
1124
- agentId: AgentId,
1125
- overridePermissionMode?: PermissionMode,
1126
- ): Promise<SpawnedAgent> {
1127
- if (isShuttingDown) {
1128
- throw new AgentManagerError(
1129
- "Cannot resume agent during shutdown",
1130
- "SHUTDOWN_IN_PROGRESS",
1131
- agentId,
1132
- );
1133
- }
1134
-
1135
- const agent = eventStore.getAgent(agentId);
1136
- if (!agent) {
1137
- throw new AgentManagerError(
1138
- `Agent not found: ${agentId}`,
1139
- "AGENT_NOT_FOUND",
1140
- agentId,
1141
- );
1142
- }
1143
-
1144
- // Check if already running
1145
- if (activeSessions.has(agentId)) {
1146
- throw new AgentManagerError(
1147
- `Agent already has active session: ${agentId}`,
1148
- "ALREADY_RUNNING",
1149
- agentId,
1150
- );
1151
- }
1152
-
1153
- const permissionMode = overridePermissionMode ?? defaultPermissionMode;
1154
-
1155
- // Spawn new process
1156
- const handle = await AgentFactory.spawn(defaultAgentType, {
1157
- permissionMode,
1158
- });
1159
-
1160
- try {
1161
- const agentCwd = agent.cwd ?? defaultCwd;
1162
- let session;
1163
-
1164
- // When interactive mode, strip settings to prevent auto-approval
1165
- const resumeAgentMeta =
1166
- permissionMode === "interactive"
1167
- ? { claudeCode: { options: { settingSources: [] } } }
1168
- : undefined;
1169
-
1170
- const macroAgentMcp = buildMacroAgentMcp({
1171
- agentId,
1172
- parentId: agent.parent ?? "",
1173
- taskId: agent.task_id ?? "",
1174
- cwd: agentCwd,
1175
- permissionMode,
1176
- lineage: agent.lineage ?? [],
1177
- sessionId: agent.session_id ?? "",
1178
- });
1179
- const mcpServers = [macroAgentMcp];
1180
-
1181
- if (agent.provider_session_id) {
1182
- // Load existing session using the provider's session ID (e.g., Claude Code UUID)
1183
- // Note: loadSession's TS type for mcpServers is { name, uri }[] but
1184
- // the underlying ACP protocol accepts full McpServerStdio. The JS
1185
- // implementation passes mcpServers through to the connection unchanged.
1186
- session = await handle.loadSession(
1187
- agent.provider_session_id,
1188
- agentCwd,
1189
- mcpServers as any,
1190
- resumeAgentMeta ? { agentMeta: resumeAgentMeta } : undefined,
1191
- );
1192
- } else {
1193
- // No provider session ID available (agent predates this feature or wasn't persisted).
1194
- // Create a new session instead of loading with the macro-agent session_id
1195
- // which is not a valid provider session ID (e.g., Claude Code expects UUIDs).
1196
- session = await handle.createSession(agentCwd, {
1197
- mcpServers,
1198
- ...(resumeAgentMeta && { agentMeta: resumeAgentMeta }),
1199
- });
1200
-
1201
- // Store the provider session ID for future resumes
1202
- eventStore.emit({
1203
- type: "status",
1204
- source: { agent_id: agentId },
1205
- payload: {
1206
- status_type: "started",
1207
- summary: "Agent session created (no provider session to resume)",
1208
- provider_session_id: session.id,
1209
- },
1210
- });
1211
- }
1212
-
1213
- // Track active session
1214
- const activeSession: ActiveSession = {
1215
- agentId,
1216
- handle,
1217
- session,
1218
- createdAt: Date.now(),
1219
- isPrompting: false,
1220
- };
1221
- activeSessions.set(agentId, activeSession);
1222
-
1223
- // Emit status event for resume
1224
- eventStore.emit({
1225
- type: "status",
1226
- source: { agent_id: agentId },
1227
- payload: {
1228
- status_type: "started",
1229
- summary: "Agent session resumed",
1230
- provider_session_id: session.id,
1231
- },
1232
- });
1233
-
1234
- return {
1235
- id: agentId,
1236
- session_id: agent.session_id, // Macro-agent's own session ID
1237
- agent: eventStore.getAgent(agentId)!,
1238
- session,
1239
- };
1240
- } catch (handleError) {
1241
- // Close the spawned process to prevent orphaning
1242
- try {
1243
- await handle.close();
1244
- } catch {
1245
- // Ignore errors during cleanup
1246
- }
1247
- throw handleError;
1248
- }
1249
- }
1250
-
1251
- // ─────────────────────────────────────────────────────────────────
1252
- // Fork
1253
- // ─────────────────────────────────────────────────────────────────
1254
-
1255
- async function forkAgent(
1256
- sourceAgentId: AgentId,
1257
- options?: { name?: string; prompt?: string; cwd?: string },
1258
- ): Promise<SpawnedAgent> {
1259
- if (isShuttingDown) {
1260
- throw new AgentManagerError(
1261
- "Cannot fork agent during shutdown",
1262
- "SHUTDOWN_IN_PROGRESS",
1263
- sourceAgentId,
1264
- );
1265
- }
1266
-
1267
- const sourceAgent = eventStore.getAgent(sourceAgentId);
1268
- if (!sourceAgent) {
1269
- throw new AgentManagerError(
1270
- `Agent not found: ${sourceAgentId}`,
1271
- "AGENT_NOT_FOUND",
1272
- sourceAgentId,
1273
- );
1274
- }
1275
-
1276
- // Need either an active session or a persisted provider_session_id
1277
- const activeSession = activeSessions.get(sourceAgentId);
1278
- if (!activeSession && !sourceAgent.provider_session_id) {
1279
- throw new AgentManagerError(
1280
- `Agent has no session to fork: ${sourceAgentId}`,
1281
- "FORK_NOT_SUPPORTED",
1282
- sourceAgentId,
1283
- );
1284
- }
1285
-
1286
- // Generate new IDs
1287
- const agentId = `agent_${nanoid(12)}`;
1288
- const taskId = `task_${nanoid(12)}`;
1289
- const sessionId = `session_${nanoid(12)}`;
1290
- const cwd = options?.cwd ?? sourceAgent.cwd ?? defaultCwd;
1291
-
1292
- // Emit spawn event with fork metadata
1293
- eventStore.emit({
1294
- type: "spawn",
1295
- source: { agent_id: sourceAgentId },
1296
- payload: {
1297
- agent_id: agentId,
1298
- session_id: sessionId,
1299
- task: options?.name ?? `[Fork of ${sourceAgentId}]`,
1300
- task_id: taskId,
1301
- parent: sourceAgent.parent ?? null,
1302
- role: sourceAgent.role ?? undefined,
1303
- team_instance: sourceAgent.team_instance ?? undefined,
1304
- config: {},
1305
- cwd,
1306
- metadata: { fork_of: sourceAgentId },
1307
- },
1308
- });
1309
-
1310
- // Generate a human-readable name
1311
- const generatedName = uniqueNamesGenerator({
1312
- dictionaries: [adjectives, animals],
1313
- separator: "-",
1314
- length: 2,
1315
- });
1316
- eventStore.updateAgentMetadata(agentId as AgentId, { name: generatedName });
1317
- await eventStore.persist();
1318
-
1319
- // Get the provider session ID to fork from
1320
- let forkedProviderSessionId: string;
1321
- if (activeSession) {
1322
- // Active session: fork with flush to ensure data is persisted
1323
- const forkedSession = await activeSession.session.forkWithFlush();
1324
- forkedProviderSessionId = forkedSession.id;
1325
- } else {
1326
- // Stopped agent: use the persisted provider session ID directly
1327
- forkedProviderSessionId = sourceAgent.provider_session_id!;
1328
- }
1329
-
1330
- // Spawn a new process
1331
- const handle = await AgentFactory.spawn(defaultAgentType, {
1332
- permissionMode: defaultPermissionMode,
1333
- });
1334
-
1335
- try {
1336
- const macroAgentMcp = buildMacroAgentMcp({
1337
- agentId,
1338
- parentId: sourceAgent.parent ?? "",
1339
- taskId,
1340
- cwd,
1341
- permissionMode: defaultPermissionMode,
1342
- lineage: sourceAgent.lineage ?? [],
1343
- sessionId,
1344
- });
1345
-
1346
- // Load the forked session on the new process with correct MCP config.
1347
- // Note: loadSession's TS type for mcpServers is { name, uri }[] but
1348
- // the underlying ACP protocol accepts full McpServerStdio. The JS
1349
- // implementation passes mcpServers through to the connection unchanged.
1350
- const session = await handle.loadSession(forkedProviderSessionId, cwd, [
1351
- macroAgentMcp,
1352
- ] as any);
1353
-
1354
- // Emit started status with provider session ID
1355
- eventStore.emit({
1356
- type: "status",
1357
- source: { agent_id: agentId },
1358
- payload: {
1359
- status_type: "started",
1360
- summary: "Agent session started (forked)",
1361
- provider_session_id: session.id,
1362
- },
1363
- });
1364
- await eventStore.persist();
1365
-
1366
- // Set up message router subscriptions
1367
- messageRouter.setupDefaultSubscriptions({
1368
- agent_id: agentId,
1369
- parent_id: sourceAgent.parent ?? undefined,
1370
- task_id: taskId,
1371
- subscribe_parent: false,
1372
- additional_topics: [],
1373
- role: sourceAgent.role ?? undefined,
1374
- });
1375
-
1376
- // Track active session
1377
- const newActiveSession: ActiveSession = {
1378
- agentId,
1379
- handle,
1380
- session,
1381
- createdAt: Date.now(),
1382
- isPrompting: false,
1383
- };
1384
- activeSessions.set(agentId, newActiveSession);
1385
-
1386
- const agent = eventStore.getAgent(agentId)!;
1387
- notifyLifecycle({ type: "spawned", agent });
1388
- notifyLifecycle({ type: "started", agent });
1389
-
1390
- return {
1391
- id: agentId,
1392
- session_id: sessionId,
1393
- agent,
1394
- session,
1395
- };
1396
- } catch (handleError) {
1397
- try {
1398
- await handle.close();
1399
- } catch {
1400
- // Ignore errors during cleanup
1401
- }
1402
- throw handleError;
1403
- }
1404
- }
1405
-
1406
- // ─────────────────────────────────────────────────────────────────
1407
- // Queries
1408
- // ─────────────────────────────────────────────────────────────────
1409
-
1410
- function get(agentId: AgentId): Agent | null {
1411
- return eventStore.getAgent(agentId);
1412
- }
1413
-
1414
- function list(filter?: AgentFilter): Agent[] {
1415
- let agents = eventStore.listAgents();
1416
-
1417
- if (filter) {
1418
- if (filter.state) {
1419
- agents = agents.filter((a) => a.state === filter.state);
1420
- }
1421
- if (filter.parent !== undefined) {
1422
- agents = agents.filter((a) => a.parent === filter.parent);
1423
- }
1424
- if (filter.task_id) {
1425
- agents = agents.filter((a) => a.task_id === filter.task_id);
1426
- }
1427
- if (filter.headManagersOnly) {
1428
- agents = agents.filter((a) => a.parent === null);
1429
- }
1430
- }
1431
-
1432
- return agents;
1433
- }
1434
-
1435
- function getChildren(agentId: AgentId): Agent[] {
1436
- return eventStore.listAgents({ parent: agentId });
1437
- }
1438
-
1439
- function getHierarchy(
1440
- agentId: AgentId,
1441
- options?: HierarchyOptions,
1442
- ): AgentHierarchy | null {
1443
- const agent = eventStore.getAgent(agentId);
1444
- if (!agent) return null;
1445
-
1446
- const maxDepth = options?.depth;
1447
-
1448
- function buildNode(a: Agent, currentDepth: number): AgentHierarchyNode {
1449
- const shouldIncludeChildren =
1450
- maxDepth === undefined || currentDepth < maxDepth;
1451
- const children = shouldIncludeChildren ? getChildren(a.id) : [];
1452
- return {
1453
- agent: a,
1454
- children: children.map((c) => buildNode(c, currentDepth + 1)),
1455
- };
1456
- }
1457
-
1458
- const root = buildNode(agent, 1);
1459
-
1460
- // Calculate depth and total agents
1461
- function calcDepth(node: AgentHierarchyNode): number {
1462
- if (node.children.length === 0) return 1;
1463
- return 1 + Math.max(...node.children.map(calcDepth));
1464
- }
1465
-
1466
- function countAgents(node: AgentHierarchyNode): number {
1467
- return 1 + node.children.reduce((sum, c) => sum + countAgents(c), 0);
1468
- }
1469
-
1470
- return {
1471
- root,
1472
- depth: calcDepth(root),
1473
- totalAgents: countAgents(root),
1474
- };
1475
- }
1476
-
1477
- // ─────────────────────────────────────────────────────────────────
1478
- // Head Manager
1479
- // ─────────────────────────────────────────────────────────────────
1480
-
1481
- async function getOrCreateHeadManager(
1482
- options: HeadManagerOptions,
1483
- ): Promise<SpawnedAgent> {
1484
- const {
1485
- cwd,
1486
- systemPrompt,
1487
- permissionMode,
1488
- topics = [],
1489
- sessionId,
1490
- forceNew = false,
1491
- } = options;
1492
-
1493
- // If not forcing new, attempt to resume an existing session
1494
- if (!forceNew) {
1495
- const headManagers = listHeadManagers()
1496
- .filter((h) => h.state === "running")
1497
- .sort((a, b) => {
1498
- // Sort by started_at descending, then by created_at descending as tiebreaker
1499
- const startDiff = (b.started_at ?? 0) - (a.started_at ?? 0);
1500
- if (startDiff !== 0) return startDiff;
1501
- return b.created_at - a.created_at;
1502
- });
1503
-
1504
- if (sessionId) {
1505
- // Resume specific session by ID
1506
- const specific = headManagers.find((h) => h.session_id === sessionId);
1507
- if (specific && activeSessions.has(specific.id)) {
1508
- const activeSession = activeSessions.get(specific.id)!;
1509
- return {
1510
- id: specific.id,
1511
- session_id: specific.session_id,
1512
- agent: specific,
1513
- session: activeSession.session,
1514
- };
1515
- }
1516
- } else if (headManagers.length > 0) {
1517
- // Resume latest running session with active session
1518
- const latest = headManagers[0];
1519
- if (activeSessions.has(latest.id)) {
1520
- const activeSession = activeSessions.get(latest.id)!;
1521
- return {
1522
- id: latest.id,
1523
- session_id: latest.session_id,
1524
- agent: latest,
1525
- session: activeSession.session,
1526
- };
1527
- }
1528
- }
1529
- }
1530
-
1531
- // No existing session found or forceNew requested - create new
1532
- return spawn({
1533
- task:
1534
- systemPrompt ??
1535
- "You are a head manager agent. Coordinate tasks and spawn child agents as needed.",
1536
- parent: null,
1537
- cwd,
1538
- permissionMode,
1539
- topics,
1540
- subscribeParent: false,
1541
- });
1542
- }
1543
-
1544
- function listHeadManagers(): Agent[] {
1545
- return list({ headManagersOnly: true });
1546
- }
1547
-
1548
- // ─────────────────────────────────────────────────────────────────
1549
- // Session Interaction
1550
- // ─────────────────────────────────────────────────────────────────
1551
-
1552
- async function* prompt(
1553
- agentId: AgentId,
1554
- message: string,
1555
- ): AsyncIterable<ExtendedSessionUpdate> {
1556
- const activeSession = activeSessions.get(agentId);
1557
- if (!activeSession) {
1558
- throw new AgentManagerError(
1559
- `No active session for agent: ${agentId}`,
1560
- "SESSION_NOT_FOUND",
1561
- agentId,
1562
- );
1563
- }
1564
-
1565
- activeSession.isPrompting = true;
1566
-
1567
- try {
1568
- for await (const update of activeSession.session.prompt(message)) {
1569
- yield update;
1570
- }
1571
- } finally {
1572
- activeSession.isPrompting = false;
1573
- }
1574
- }
1575
-
1576
- /**
1577
- * Prompt an agent and automatically follow up to ensure done() is called.
1578
- */
1579
- async function promptUntilDone(
1580
- agentId: AgentId,
1581
- message: string,
1582
- options?: {
1583
- maxFollowUps?: number;
1584
- throwOnMaxExceeded?: boolean;
1585
- onUpdate?: (update: ExtendedSessionUpdate) => void;
1586
- },
1587
- ): Promise<{
1588
- doneCalled: boolean;
1589
- doneStatus?: string;
1590
- exceededMax: boolean;
1591
- followUpCount: number;
1592
- updates: ExtendedSessionUpdate[];
1593
- }> {
1594
- const maxFollowUps = options?.maxFollowUps ?? 2;
1595
- const throwOnMaxExceeded = options?.throwOnMaxExceeded ?? false;
1596
- const onUpdate = options?.onUpdate;
1597
- const allUpdates: ExtendedSessionUpdate[] = [];
1598
- let followUpCount = 0;
1599
-
1600
- // Helper to check if done() was called by looking for status events
1601
- // The done() MCP tool emits status events with status_type completed/failed
1602
- // and includes signal: "WORKER_DONE" in the details
1603
- const checkDoneCalled = async (): Promise<{
1604
- called: boolean;
1605
- status?: string;
1606
- }> => {
1607
- // Reload from disk to see events from MCP subprocess
1608
- await eventStore.reload();
1609
- const statusEvents = eventStore.query({ type: "status" });
1610
-
1611
- // Look for status events from this agent that indicate completion
1612
- const agentCompletedStatus = statusEvents.find(
1613
- (e) =>
1614
- e.source?.agent_id === agentId &&
1615
- (e.payload?.status_type === "completed" ||
1616
- e.payload?.status_type === "failed" ||
1617
- (e.payload?.details as Record<string, unknown>)?.signal ===
1618
- "WORKER_DONE"),
1619
- );
1620
-
1621
- if (agentCompletedStatus) {
1622
- return {
1623
- called: true,
1624
- status: agentCompletedStatus.payload?.status_type as string,
1625
- };
1626
- }
1627
-
1628
- return { called: false };
1629
- };
1630
-
1631
- // Initial prompt
1632
- for await (const update of prompt(agentId, message)) {
1633
- allUpdates.push(update);
1634
- onUpdate?.(update);
1635
- }
1636
-
1637
- // Check if done() was called
1638
- let doneResult = await checkDoneCalled();
1639
- if (doneResult.called) {
1640
- return {
1641
- doneCalled: true,
1642
- doneStatus: doneResult.status,
1643
- exceededMax: false,
1644
- followUpCount: 0,
1645
- updates: allUpdates,
1646
- };
1647
- }
1648
-
1649
- // Follow-up prompts
1650
- const followUpMessages = [
1651
- `Your work appears complete, but you haven't called done() yet. Please call done() now with your completion status.
1652
-
1653
- Example: done({ status: "completed", summary: "Brief description of what you accomplished" })
1654
-
1655
- If you're blocked or need help, call: done({ status: "blocked", summary: "What you need help with" })`,
1656
-
1657
- `IMPORTANT: You MUST call the done() tool to signal completion. This is required for proper cleanup.
1658
-
1659
- Call done() NOW with status "completed" if your work is finished, or "blocked" if you need assistance.`,
1660
- ];
1661
-
1662
- for (let i = 0; i < maxFollowUps; i++) {
1663
- followUpCount++;
1664
- const followUpMessage =
1665
- followUpMessages[Math.min(i, followUpMessages.length - 1)];
1666
-
1667
- // Send follow-up prompt
1668
- for await (const update of prompt(agentId, followUpMessage)) {
1669
- allUpdates.push(update);
1670
- onUpdate?.(update);
1671
- }
1672
-
1673
- // Check again
1674
- doneResult = await checkDoneCalled();
1675
- if (doneResult.called) {
1676
- return {
1677
- doneCalled: true,
1678
- doneStatus: doneResult.status,
1679
- exceededMax: false,
1680
- followUpCount,
1681
- updates: allUpdates,
1682
- };
1683
- }
1684
- }
1685
-
1686
- // done() was never called after max follow-ups
1687
- if (throwOnMaxExceeded) {
1688
- throw new Error(
1689
- `Agent ${agentId} did not call done() after ${maxFollowUps} follow-up attempts. ` +
1690
- `Total prompts sent: ${1 + followUpCount}. Consider increasing maxFollowUps or investigating agent behavior.`,
1691
- );
1692
- }
1693
-
1694
- return {
1695
- doneCalled: false,
1696
- exceededMax: true,
1697
- followUpCount,
1698
- updates: allUpdates,
1699
- };
1700
- }
1701
-
1702
- function getSession(agentId: AgentId): Session | null {
1703
- const activeSession = activeSessions.get(agentId);
1704
- return activeSession?.session ?? null;
1705
- }
1706
-
1707
- function hasActiveSession(agentId: AgentId): boolean {
1708
- return activeSessions.has(agentId);
1709
- }
1710
-
1711
- function isPrompting(agentId: AgentId): boolean {
1712
- const activeSession = activeSessions.get(agentId);
1713
- return activeSession?.isPrompting ?? false;
1714
- }
1715
-
1716
- async function supportsInjection(agentId: AgentId): Promise<boolean> {
1717
- const session = getSession(agentId);
1718
- if (!session) {
1719
- return false;
1720
- }
1721
- // Check if the session supports injection
1722
- // Uses acp-factory's supportsInject() which returns cached/estimated result
1723
- try {
1724
- return session.supportsInject();
1725
- } catch {
1726
- return false;
1727
- }
1728
- }
1729
-
1730
- function isProcessRunning(agentId: AgentId): boolean {
1731
- const activeSession = activeSessions.get(agentId);
1732
- if (!activeSession) {
1733
- return false;
1734
- }
1735
- return activeSession.handle.isRunning();
1736
- }
1737
-
1738
- // ─────────────────────────────────────────────────────────────────
1739
- // Permission Handling
1740
- // ─────────────────────────────────────────────────────────────────
1741
-
1742
- function respondToPermission(
1743
- agentId: AgentId,
1744
- requestId: string,
1745
- optionId: string,
1746
- ): boolean {
1747
- const activeSession = activeSessions.get(agentId);
1748
- if (!activeSession) {
1749
- console.warn(
1750
- `[AgentManager] Cannot respond to permission: no active session for agent ${agentId}`,
1751
- );
1752
- return false;
1753
- }
1754
-
1755
- try {
1756
- activeSession.session.respondToPermission(requestId, optionId);
1757
- console.log(
1758
- `[AgentManager] Responded to permission ${requestId} for agent ${agentId} with ${optionId}`,
1759
- );
1760
- return true;
1761
- } catch (err) {
1762
- console.error(
1763
- `[AgentManager] Error responding to permission ${requestId}:`,
1764
- err,
1765
- );
1766
- return false;
1767
- }
1768
- }
1769
-
1770
- function cancelPermission(agentId: AgentId, requestId: string): boolean {
1771
- const activeSession = activeSessions.get(agentId);
1772
- if (!activeSession) {
1773
- console.warn(
1774
- `[AgentManager] Cannot cancel permission: no active session for agent ${agentId}`,
1775
- );
1776
- return false;
1777
- }
1778
-
1779
- try {
1780
- activeSession.session.cancelPermission(requestId);
1781
- console.log(
1782
- `[AgentManager] Cancelled permission ${requestId} for agent ${agentId}`,
1783
- );
1784
- return true;
1785
- } catch (err) {
1786
- console.error(
1787
- `[AgentManager] Error cancelling permission ${requestId}:`,
1788
- err,
1789
- );
1790
- return false;
1791
- }
1792
- }
1793
-
1794
- function setPermissionMode(agentId: AgentId, mode: PermissionMode): boolean {
1795
- const activeSession = activeSessions.get(agentId);
1796
- if (!activeSession) {
1797
- console.warn(
1798
- `[AgentManager] Cannot set permission mode: no active session for agent ${agentId}`,
1799
- );
1800
- return false;
1801
- }
1802
-
1803
- try {
1804
- activeSession.handle.setPermissionMode(mode);
1805
- console.log(
1806
- `[AgentManager] Set permission mode for agent ${agentId} to ${mode}`,
1807
- );
1808
- return true;
1809
- } catch (err) {
1810
- console.error(
1811
- `[AgentManager] Error setting permission mode for agent ${agentId}:`,
1812
- err,
1813
- );
1814
- return false;
1815
- }
1816
- }
1817
-
1818
- function getPermissionMode(agentId: AgentId): PermissionMode | null {
1819
- const activeSession = activeSessions.get(agentId);
1820
- if (!activeSession) {
1821
- return null;
1822
- }
1823
- return activeSession.handle.getPermissionMode();
1824
- }
1825
-
1826
- // ─────────────────────────────────────────────────────────────────
1827
- // Lifecycle Callbacks
1828
- // ─────────────────────────────────────────────────────────────────
1829
-
1830
- function onLifecycleEvent(callback: AgentLifecycleCallback): () => void {
1831
- lifecycleListeners.add(callback);
1832
- return () => lifecycleListeners.delete(callback);
1833
- }
1834
-
1835
- function notifyLifecycle(event: Parameters<AgentLifecycleCallback>[0]): void {
1836
- for (const listener of lifecycleListeners) {
1837
- try {
1838
- listener(event);
1839
- } catch {
1840
- // Ignore listener errors
1841
- }
1842
- }
1843
- }
1844
-
1845
- // ─────────────────────────────────────────────────────────────────
1846
- // OpenTasks Socket Path (Late Binding)
1847
- // ─────────────────────────────────────────────────────────────────
1848
-
1849
- function setOpenTasksSocketPath(socketPath: string): void {
1850
- configOpenTasksSocketPath = socketPath;
1851
- }
1852
-
1853
- // ─────────────────────────────────────────────────────────────────
1854
- // Mail Services (Late Binding)
1855
- // ─────────────────────────────────────────────────────────────────
1856
-
1857
- function setMailServices(
1858
- ms: import("../mail/mail-service.js").MailService,
1859
- cm: import("../mail/conversation-map.js").ConversationMap,
1860
- ): void {
1861
- mailService = ms;
1862
- conversationMap = cm;
1863
- }
1864
-
1865
- // ─────────────────────────────────────────────────────────────────
1866
- // Cleanup
1867
- // ─────────────────────────────────────────────────────────────────
1868
-
1869
- async function close(): Promise<void> {
1870
- // Prevent new spawns/resumes from racing with cleanup
1871
- isShuttingDown = true;
1872
-
1873
- // Stop all health checks
1874
- if (healthCheckService) {
1875
- healthCheckService.stopAll();
1876
- }
1877
-
1878
- // Close all active sessions
1879
- const closePromises: Promise<void>[] = [];
1880
- for (const [agentId, session] of activeSessions) {
1881
- closePromises.push(
1882
- (async () => {
1883
- try {
1884
- await session.handle.close();
1885
- } catch {
1886
- // Ignore errors during cleanup
1887
- }
1888
- })(),
1889
- );
1890
- }
1891
-
1892
- await Promise.all(closePromises);
1893
- activeSessions.clear();
1894
- lifecycleListeners.clear();
1895
- }
1896
-
1897
- function setSpawnInterceptor(interceptor: SpawnInterceptor | null): void {
1898
- spawnInterceptor = interceptor;
1899
- }
1900
-
1901
- function getRoleRegistry(): RoleRegistry {
1902
- return roleRegistry;
1903
- }
1904
-
1905
- /**
1906
- * Continue a terminated agent by spawning a new agent with the same
1907
- * role and task, injecting prior conversation context as a resume prefix.
1908
- */
1909
- async function continueAgent(
1910
- agentId: AgentId,
1911
- options?: ContinueAgentOptions,
1912
- ): Promise<SpawnedAgent> {
1913
- const agent = eventStore.getAgent(agentId);
1914
- if (!agent) {
1915
- throw new AgentManagerError(
1916
- `Agent not found: ${agentId}`,
1917
- "AGENT_NOT_FOUND",
1918
- agentId,
1919
- );
1920
- }
1921
-
1922
- // Build resume context from EventStore events
1923
- const maxMessages = options?.maxMessages ?? 50;
1924
- const events = eventStore.query({
1925
- type: "status",
1926
- source_agent_id: agentId,
1927
- limit: maxMessages,
1928
- });
1929
-
1930
- // Format conversation turns as resume context
1931
- const contextLines: string[] = [];
1932
- if (options?.additionalContext) {
1933
- contextLines.push(options.additionalContext);
1934
- }
1935
-
1936
- if (events.length > 0) {
1937
- contextLines.push("## Prior Session Context");
1938
- contextLines.push(
1939
- `Continuing from agent ${agentId} (${events.length} events).`,
1940
- );
1941
- for (const event of events.slice(-20)) {
1942
- const summary = event.payload?.summary;
1943
- if (summary && typeof summary === "string") {
1944
- contextLines.push(`- ${summary}`);
1945
- }
1946
- }
1947
- }
1948
-
1949
- const resumeContext = contextLines.join("\n");
1950
-
1951
- // Spawn a continuation agent with same role, task, and context
1952
- const taskDescription =
1953
- options?.task ?? agent.task ?? `Continue work from ${agentId}`;
1954
-
1955
- const newAgent = await spawn({
1956
- task: taskDescription,
1957
- role: agent.role,
1958
- parent: agent.parent ?? undefined,
1959
- cwd: agent.cwd ?? defaultCwd,
1960
- customPrompt: resumeContext || undefined,
1961
- });
1962
-
1963
- // Emit continuation event
1964
- eventStore.emit({
1965
- type: "status",
1966
- source: { agent_id: newAgent.id },
1967
- payload: {
1968
- status_type: "started",
1969
- summary: `Continuation of agent ${agentId}`,
1970
- continuation_of: agentId,
1971
- },
1972
- });
1973
-
1974
- return newAgent;
1975
- }
1976
-
1977
- return {
1978
- spawn,
1979
- terminate,
1980
- resume,
1981
- continueAgent,
1982
- forkAgent,
1983
- get,
1984
- list,
1985
- getChildren,
1986
- getHierarchy,
1987
- getOrCreateHeadManager,
1988
- listHeadManagers,
1989
- prompt,
1990
- promptUntilDone,
1991
- getSession,
1992
- hasActiveSession,
1993
- isPrompting,
1994
- supportsInjection,
1995
- isProcessRunning,
1996
- respondToPermission,
1997
- cancelPermission,
1998
- setPermissionMode,
1999
- getPermissionMode,
2000
- onLifecycleEvent,
2001
- setSpawnInterceptor,
2002
- getRoleRegistry,
2003
- setOpenTasksSocketPath,
2004
- setMailServices,
2005
- close,
2006
- };
2007
- }
2008
-
2009
- // ─────────────────────────────────────────────────────────────────
2010
- // Workspace Creation Helper (Phase 2)
369
+ // Re-export V2 implementation as createAgentManager for backward compat
2011
370
  // ─────────────────────────────────────────────────────────────────
2012
371
 
2013
- interface CreateWorkspaceOptions {
2014
- streamId?: string;
2015
- streamConfig?: import("../workspace/types.js").StreamConfig;
2016
- dataplaneTaskId?: string;
2017
- capabilities?: string[];
2018
- cwd: string;
2019
- }
2020
-
2021
- /**
2022
- * Create a workspace for an agent based on their capabilities.
2023
- *
2024
- * Dispatches on workspace capabilities (workspace.stream, workspace.integrate,
2025
- * workspace.worktree) rather than role names. This allows team-defined roles
2026
- * (e.g., "developer" extending "worker") to get proper workspace allocation
2027
- * by inheriting workspace capabilities from their base role.
2028
- *
2029
- * Falls back to role-name matching for backward compatibility when no
2030
- * capabilities are provided.
2031
- *
2032
- * @param workspaceManager - WorkspaceManager instance
2033
- * @param agentId - Agent ID
2034
- * @param role - Agent role name (used for logging and fallback)
2035
- * @param options - Workspace options including capabilities
2036
- * @returns Created workspace or undefined
2037
- */
2038
- async function createWorkspaceForRole(
2039
- workspaceManager: WorkspaceManager,
2040
- agentId: AgentId,
2041
- role: string,
2042
- options: CreateWorkspaceOptions,
2043
- ): Promise<Workspace | undefined> {
2044
- const { streamId, streamConfig, dataplaneTaskId, capabilities } = options;
2045
-
2046
- // Capability-based dispatch (preferred — works for team-defined roles)
2047
- if (capabilities && capabilities.length > 0) {
2048
- if (capabilities.includes("workspace.stream")) {
2049
- // Coordinator pattern: create integration stream.
2050
- // In team mode, stream is managed by TeamRuntime.setupWorkspaceIntegration(),
2051
- // so missing streamConfig is expected — return silently.
2052
- if (!streamConfig) {
2053
- return undefined;
2054
- }
2055
- const newStreamId = workspaceManager.createIntegrationStream(agentId, streamConfig);
2056
- return workspaceManager.createCoordinatorWorkspace(agentId, newStreamId);
2057
-
2058
- } else if (capabilities.includes("workspace.integrate")) {
2059
- // Integrator pattern: join existing stream
2060
- if (!streamId) {
2061
- console.warn(
2062
- `[AgentManager] ${role} ${agentId} has workspace.integrate but no streamId, skipping workspace`,
2063
- );
2064
- return undefined;
2065
- }
2066
- return workspaceManager.createIntegratorWorkspace(agentId, streamId);
2067
-
2068
- } else if (capabilities.includes("workspace.worktree")) {
2069
- // Worker pattern: create worktree in stream
2070
- if (!streamId) {
2071
- console.warn(
2072
- `[AgentManager] ${role} ${agentId} has workspace.worktree but no streamId, skipping workspace`,
2073
- );
2074
- return undefined;
2075
- }
2076
- const taskId = dataplaneTaskId ?? agentId;
2077
- return workspaceManager.createWorkerWorkspace(agentId, taskId, streamId);
2078
- }
2079
-
2080
- // Has capabilities but no workspace capability — no workspace needed
2081
- return undefined;
2082
- }
2083
-
2084
- // Fallback: role-name dispatch (backward compatibility for non-team spawns)
2085
- switch (role) {
2086
- case "coordinator": {
2087
- if (!streamConfig) {
2088
- console.warn(
2089
- `[AgentManager] Coordinator ${agentId} spawn missing streamConfig, skipping workspace`,
2090
- );
2091
- return undefined;
2092
- }
2093
- const newStreamId = workspaceManager.createIntegrationStream(agentId, streamConfig);
2094
- return workspaceManager.createCoordinatorWorkspace(agentId, newStreamId);
2095
- }
2096
-
2097
- case "integrator": {
2098
- if (!streamId) {
2099
- console.warn(
2100
- `[AgentManager] Integrator ${agentId} spawn missing streamId, skipping workspace`,
2101
- );
2102
- return undefined;
2103
- }
2104
- return workspaceManager.createIntegratorWorkspace(agentId, streamId);
2105
- }
2106
-
2107
- case "worker":
2108
- case "worker.resolver": {
2109
- if (!streamId) {
2110
- console.warn(
2111
- `[AgentManager] Worker ${agentId} spawn missing streamId, skipping workspace`,
2112
- );
2113
- return undefined;
2114
- }
2115
- const taskId = dataplaneTaskId ?? agentId;
2116
- return workspaceManager.createWorkerWorkspace(agentId, taskId, streamId);
2117
- }
2118
-
2119
- case "monitor":
2120
- return undefined;
2121
-
2122
- default:
2123
- return undefined;
2124
- }
2125
- }
372
+ export { createAgentManagerV2, createAgentManagerV2 as createAgentManager } from "./agent-manager-v2.js";