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
@@ -0,0 +1,1330 @@
1
+ /**
2
+ * Live Agent E2E Tests (V2)
3
+ *
4
+ * Tests that spawn REAL Claude Code agents via acp-factory.
5
+ * These require authenticated Claude Code and hit the API.
6
+ *
7
+ * REQUIRES: RUN_FULL_AGENT_TESTS=true
8
+ *
9
+ * Run with:
10
+ * RUN_FULL_AGENT_TESTS=true npx vitest run --config vitest.e2e.config.ts src/__tests__/e2e/live-agent.e2e.test.ts
11
+ */
12
+
13
+ import {
14
+ describe,
15
+ it,
16
+ expect,
17
+ beforeEach,
18
+ afterEach,
19
+ } from "vitest";
20
+ import * as path from "path";
21
+ import * as os from "os";
22
+ import * as fs from "fs";
23
+ import { execSync } from "child_process";
24
+ import { bootV2, type MacroAgentSystemV2 } from "../../boot-v2.js";
25
+
26
+ // ─────────────────────────────────────────────────────────────────
27
+ // Configuration
28
+ // ─────────────────────────────────────────────────────────────────
29
+
30
+ const RUN_FULL_AGENT = !!process.env.RUN_FULL_AGENT_TESTS;
31
+ const describeFn = RUN_FULL_AGENT ? describe : describe.skip;
32
+
33
+ const TIMEOUT = {
34
+ SPAWN: 60_000,
35
+ PROMPT: 90_000,
36
+ MULTI: 180_000,
37
+ };
38
+
39
+ // ─────────────────────────────────────────────────────────────────
40
+ // Helpers
41
+ // ─────────────────────────────────────────────────────────────────
42
+
43
+ function createTestRepo(prefix: string): { path: string; cleanup: () => void } {
44
+ const tmpDir = fs.mkdtempSync(
45
+ path.join(os.tmpdir(), `live-agent-${prefix}-`)
46
+ );
47
+ const repoPath = path.join(tmpDir, "test-repo");
48
+ fs.mkdirSync(repoPath);
49
+ execSync("git init", { cwd: repoPath, stdio: "pipe" });
50
+ execSync('git config user.email "test@test.com"', { cwd: repoPath, stdio: "pipe" });
51
+ execSync('git config user.name "Test User"', { cwd: repoPath, stdio: "pipe" });
52
+ fs.writeFileSync(path.join(repoPath, "README.md"), "# Test Repo\n");
53
+ execSync("git add -A", { cwd: repoPath, stdio: "pipe" });
54
+ execSync('git commit -m "Initial commit"', { cwd: repoPath, stdio: "pipe" });
55
+
56
+ return {
57
+ path: repoPath,
58
+ cleanup: () => fs.rmSync(tmpDir, { recursive: true, force: true }),
59
+ };
60
+ }
61
+
62
+ function log(msg: string): void {
63
+ console.log(`[LIVE-E2E] ${msg}`);
64
+ }
65
+
66
+ // ─────────────────────────────────────────────────────────────────
67
+ // Tests
68
+ // ─────────────────────────────────────────────────────────────────
69
+
70
+ describeFn("Live Agent E2E (V2)", () => {
71
+ let system: MacroAgentSystemV2;
72
+ let testRepo: { path: string; cleanup: () => void };
73
+ let baseDir: string;
74
+
75
+ beforeEach(async () => {
76
+ testRepo = createTestRepo("v2");
77
+ baseDir = path.join(testRepo.path, ".macro-agent");
78
+ fs.mkdirSync(baseDir, { recursive: true });
79
+
80
+ // Boot V2 with real acp-factory (no mocking)
81
+ system = await bootV2({
82
+ cwd: testRepo.path,
83
+ baseDir,
84
+ defaultPermissionMode: "auto-approve",
85
+ inbox: {
86
+ socketPath: path.join(baseDir, "inbox.sock"),
87
+ },
88
+ });
89
+ log("System booted");
90
+ });
91
+
92
+ afterEach(async () => {
93
+ if (system) {
94
+ try {
95
+ // Terminate all running agents
96
+ const running = system.agentManager.list({ state: "running" });
97
+ for (const agent of running) {
98
+ try {
99
+ await system.agentManager.terminate(agent.id, "cancelled");
100
+ } catch {
101
+ // Best effort
102
+ }
103
+ }
104
+ await system.shutdown();
105
+ } catch {
106
+ // Best effort
107
+ }
108
+ }
109
+ testRepo?.cleanup();
110
+ log("Cleanup complete");
111
+ });
112
+
113
+ // ── Spawn & Prompt ──────────────────────────────────────────
114
+
115
+ it(
116
+ "should spawn a real agent and receive a prompt response",
117
+ async () => {
118
+ log("Spawning real agent...");
119
+ const agent = await system.agentManager.spawn({
120
+ task: "Reply with exactly: HELLO_FROM_AGENT",
121
+ role: "worker",
122
+ cwd: testRepo.path,
123
+ });
124
+
125
+ log(`Agent spawned: ${agent.id}`);
126
+ expect(agent.id).toBeDefined();
127
+ expect(agent.session).toBeDefined();
128
+
129
+ // Verify in store
130
+ const record = system.agentStore.getAgent(agent.id);
131
+ expect(record).not.toBeNull();
132
+ expect(record!.state).toBe("running");
133
+
134
+ // Verify in inbox
135
+ const inbox = (system.inboxAdapter as any).getInbox();
136
+ const inboxAgent = inbox.storage.getAgent(agent.id);
137
+ expect(inboxAgent).toBeDefined();
138
+ expect(inboxAgent.status).toBe("active");
139
+
140
+ log("Prompting agent...");
141
+ const updates: any[] = [];
142
+ for await (const update of system.agentManager.prompt(
143
+ agent.id,
144
+ 'Say exactly "HELLO_FROM_AGENT" and nothing else.'
145
+ )) {
146
+ updates.push(update);
147
+ }
148
+
149
+ log(`Got ${updates.length} updates from prompt`);
150
+ expect(updates.length).toBeGreaterThan(0);
151
+
152
+ // Check that at least one update has text content
153
+ const hasContent = updates.some(
154
+ (u) =>
155
+ u.type === "assistant" ||
156
+ u.type === "text" ||
157
+ (u as any).content !== undefined
158
+ );
159
+ expect(hasContent).toBe(true);
160
+
161
+ log("Terminating agent...");
162
+ await system.agentManager.terminate(agent.id, "completed");
163
+
164
+ const stopped = system.agentStore.getAgent(agent.id);
165
+ expect(stopped!.state).toBe("stopped");
166
+
167
+ // Verify deregistered from inbox
168
+ const afterStop = inbox.storage.getAgent(agent.id);
169
+ expect(afterStop.status).toBe("offline");
170
+
171
+ log("Test complete");
172
+ },
173
+ TIMEOUT.PROMPT
174
+ );
175
+
176
+ // ── Parent-Child with Real Agents ───────────────────────────
177
+
178
+ it(
179
+ "should spawn parent and child agents with real processes",
180
+ async () => {
181
+ log("Spawning coordinator...");
182
+ const coordinator = await system.agentManager.spawn({
183
+ task: "You are a coordinator. Wait for instructions.",
184
+ role: "coordinator",
185
+ cwd: testRepo.path,
186
+ });
187
+
188
+ log(`Coordinator spawned: ${coordinator.id}`);
189
+ expect(coordinator.id).toBeDefined();
190
+
191
+ log("Spawning worker under coordinator...");
192
+ const worker = await system.agentManager.spawn({
193
+ task: "You are a worker. Reply with WORKER_READY.",
194
+ role: "worker",
195
+ parent: coordinator.id,
196
+ cwd: testRepo.path,
197
+ });
198
+
199
+ log(`Worker spawned: ${worker.id}`);
200
+ expect(worker.id).toBeDefined();
201
+ expect(worker.agent.parent).toBe(coordinator.id);
202
+
203
+ // Verify hierarchy
204
+ const children = system.agentManager.getChildren(coordinator.id);
205
+ expect(children).toHaveLength(1);
206
+ expect(children[0].id).toBe(worker.id);
207
+
208
+ const hierarchy = system.agentManager.getHierarchy(coordinator.id);
209
+ expect(hierarchy!.totalAgents).toBe(2);
210
+
211
+ log("Terminating coordinator (should cascade)...");
212
+ await system.agentManager.terminate(coordinator.id, "completed");
213
+
214
+ // Both should be stopped
215
+ expect(system.agentStore.getAgent(coordinator.id)!.state).toBe("stopped");
216
+ expect(system.agentStore.getAgent(worker.id)!.state).toBe("stopped");
217
+
218
+ log("Test complete");
219
+ },
220
+ TIMEOUT.MULTI
221
+ );
222
+
223
+ // ── Inter-Agent Messaging with Real Agents ──────────────────
224
+
225
+ it(
226
+ "should deliver inbox messages between real agents",
227
+ async () => {
228
+ log("Spawning two agents...");
229
+ const a = await system.agentManager.spawn({
230
+ task: "Agent A. Wait for instructions.",
231
+ role: "coordinator",
232
+ cwd: testRepo.path,
233
+ });
234
+
235
+ const b = await system.agentManager.spawn({
236
+ task: "Agent B. Wait for instructions.",
237
+ role: "worker",
238
+ parent: a.id,
239
+ cwd: testRepo.path,
240
+ });
241
+
242
+ log("Sending message A → B via inbox...");
243
+ const msgId = await system.inboxAdapter.send(
244
+ a.id,
245
+ b.id,
246
+ "Hello from coordinator",
247
+ { threadTag: "live-test", importance: "normal" }
248
+ );
249
+ expect(msgId).toBeTruthy();
250
+
251
+ // Verify message in B's inbox
252
+ const bInbox = await system.inboxAdapter.checkInbox(b.id);
253
+ expect(bInbox.length).toBeGreaterThanOrEqual(1);
254
+
255
+ const msg = bInbox.find((m) => m.sender_id === a.id);
256
+ expect(msg).toBeDefined();
257
+
258
+ log("Sending event message B → A...");
259
+ await system.inboxAdapter.send(
260
+ b.id,
261
+ a.id,
262
+ { type: "event", event: "task_completed", data: { result: "success" } },
263
+ { importance: "high" }
264
+ );
265
+
266
+ const aInbox = await system.inboxAdapter.checkInbox(a.id);
267
+ const eventMsg = aInbox.find(
268
+ (m) => m.content?.type === "event" && m.content?.event === "task_completed"
269
+ );
270
+ expect(eventMsg).toBeDefined();
271
+
272
+ log("Reading thread...");
273
+ const thread = await system.inboxAdapter.readThread("live-test");
274
+ expect(thread.length).toBeGreaterThanOrEqual(1);
275
+
276
+ // Cleanup
277
+ await system.agentManager.terminate(a.id, "completed");
278
+
279
+ log("Test complete");
280
+ },
281
+ TIMEOUT.MULTI
282
+ );
283
+
284
+ // ── Cascade Termination with Inbox Notifications ────────────
285
+
286
+ it(
287
+ "should send inbox notification to parent when child terminates",
288
+ async () => {
289
+ log("Spawning parent + child...");
290
+ const parent = await system.agentManager.spawn({
291
+ task: "Parent agent. Wait for child status.",
292
+ role: "coordinator",
293
+ cwd: testRepo.path,
294
+ });
295
+
296
+ const child = await system.agentManager.spawn({
297
+ task: "Child agent. Do some work.",
298
+ role: "worker",
299
+ parent: parent.id,
300
+ cwd: testRepo.path,
301
+ });
302
+
303
+ log(`Parent: ${parent.id}, Child: ${child.id}`);
304
+
305
+ log("Terminating child...");
306
+ await system.agentManager.terminate(child.id, "completed");
307
+
308
+ // Parent should receive agent_stopped event via inbox
309
+ const parentInbox = await system.inboxAdapter.checkInbox(parent.id);
310
+ const stopNotification = parentInbox.find(
311
+ (m) =>
312
+ m.content?.type === "event" &&
313
+ m.content?.event === "agent_stopped" &&
314
+ m.content?.data?.agentId === child.id
315
+ );
316
+ expect(stopNotification).toBeDefined();
317
+ expect(stopNotification!.content.data.reason).toBe("completed");
318
+ expect(stopNotification!.importance).toBe("high");
319
+
320
+ log("Verified parent received stop notification via inbox");
321
+
322
+ // Cleanup
323
+ await system.agentManager.terminate(parent.id, "cancelled");
324
+ log("Test complete");
325
+ },
326
+ TIMEOUT.MULTI
327
+ );
328
+
329
+ // ── Agent Continuation ──────────────────────────────────────
330
+
331
+ it(
332
+ "should continue a terminated agent with a new real process",
333
+ async () => {
334
+ log("Spawning original agent...");
335
+ const original = await system.agentManager.spawn({
336
+ task: "Original task: compute 2+2",
337
+ role: "worker",
338
+ cwd: testRepo.path,
339
+ });
340
+
341
+ log(`Original: ${original.id}`);
342
+
343
+ // Prompt it so it has some history
344
+ log("Prompting original...");
345
+ const updates: any[] = [];
346
+ for await (const update of system.agentManager.prompt(
347
+ original.id,
348
+ "What is 2+2? Reply briefly."
349
+ )) {
350
+ updates.push(update);
351
+ }
352
+ log(`Got ${updates.length} updates`);
353
+
354
+ // Terminate
355
+ log("Terminating original...");
356
+ await system.agentManager.terminate(original.id, "completed");
357
+ expect(system.agentStore.getAgent(original.id)!.state).toBe("stopped");
358
+
359
+ // Continue
360
+ log("Continuing agent...");
361
+ const continued = await system.agentManager.continueAgent(original.id, {
362
+ additionalContext: "Previous agent computed 2+2=4. Continue from there.",
363
+ task: "Continue: now compute 3+3",
364
+ });
365
+
366
+ expect(continued.id).not.toBe(original.id);
367
+ expect(continued.agent.state).toBe("running");
368
+ expect(continued.agent.role).toBe("worker");
369
+
370
+ // Verify new agent is in store and inbox
371
+ const record = system.agentStore.getAgent(continued.id)!;
372
+ expect(record.state).toBe("running");
373
+
374
+ const inbox = (system.inboxAdapter as any).getInbox();
375
+ expect(inbox.storage.getAgent(continued.id)).toBeDefined();
376
+
377
+ // Prompt the continuation
378
+ log("Prompting continuation...");
379
+ const contUpdates: any[] = [];
380
+ for await (const update of system.agentManager.prompt(
381
+ continued.id,
382
+ "What is 3+3? Reply briefly."
383
+ )) {
384
+ contUpdates.push(update);
385
+ }
386
+ log(`Got ${contUpdates.length} continuation updates`);
387
+ expect(contUpdates.length).toBeGreaterThan(0);
388
+
389
+ // Cleanup
390
+ await system.agentManager.terminate(continued.id, "completed");
391
+ log("Test complete");
392
+ },
393
+ TIMEOUT.MULTI
394
+ );
395
+
396
+ // ── Agent Fork ──────────────────────────────────────────────
397
+
398
+ it(
399
+ "should fork a live agent session into a new real process",
400
+ async () => {
401
+ log("Spawning source agent...");
402
+ const source = await system.agentManager.spawn({
403
+ task: "Source agent for forking. Remember: the secret is BANANA.",
404
+ role: "worker",
405
+ cwd: testRepo.path,
406
+ });
407
+
408
+ log(`Source: ${source.id}`);
409
+
410
+ // Give it some conversation context
411
+ log("Prompting source...");
412
+ for await (const _update of system.agentManager.prompt(
413
+ source.id,
414
+ "Remember: the secret word is BANANA. Confirm you understand."
415
+ )) {
416
+ // drain
417
+ }
418
+
419
+ // Fork it
420
+ log("Forking agent...");
421
+ const forked = await system.agentManager.forkAgent(source.id, {
422
+ name: "forked-worker",
423
+ });
424
+
425
+ expect(forked.id).not.toBe(source.id);
426
+ expect(forked.agent.state).toBe("running");
427
+
428
+ // Verify fork metadata
429
+ const forkedRecord = system.agentStore.getAgent(forked.id)!;
430
+ expect(forkedRecord.metadata?.fork_of).toBe(source.id);
431
+
432
+ // Verify both agents are in inbox
433
+ const inbox = (system.inboxAdapter as any).getInbox();
434
+ expect(inbox.storage.getAgent(source.id)?.status).toBe("active");
435
+ expect(inbox.storage.getAgent(forked.id)?.status).toBe("active");
436
+
437
+ // Both should be independently addressable
438
+ await system.inboxAdapter.send(
439
+ "system",
440
+ forked.id,
441
+ "Hello forked agent"
442
+ );
443
+ const forkedInbox = await system.inboxAdapter.checkInbox(forked.id);
444
+ expect(forkedInbox.length).toBeGreaterThanOrEqual(1);
445
+
446
+ // Cleanup
447
+ await system.agentManager.terminate(source.id, "cancelled");
448
+ await system.agentManager.terminate(forked.id, "cancelled");
449
+ log("Test complete");
450
+ },
451
+ TIMEOUT.MULTI
452
+ );
453
+
454
+ // ── Context Injection via Inbox ─────────────────────────────
455
+
456
+ it(
457
+ "should deliver high-priority context injection via inbox",
458
+ async () => {
459
+ log("Spawning agent for context injection...");
460
+ const agent = await system.agentManager.spawn({
461
+ task: "Wait for context updates via inbox.",
462
+ role: "worker",
463
+ cwd: testRepo.path,
464
+ });
465
+
466
+ log(`Agent: ${agent.id}`);
467
+
468
+ // Send urgent context injection (replaces old steering/inject)
469
+ log("Sending urgent context injection...");
470
+ const msgId = await system.inboxAdapter.send(
471
+ "system",
472
+ agent.id,
473
+ {
474
+ type: "text",
475
+ text: "URGENT: Stop current work. Priority has changed to fixing bug #42.",
476
+ },
477
+ {
478
+ importance: "urgent",
479
+ subject: "Priority change",
480
+ threadTag: `inject:system`,
481
+ }
482
+ );
483
+ expect(msgId).toBeTruthy();
484
+
485
+ // Verify message in inbox with correct importance
486
+ const inbox = await system.inboxAdapter.checkInbox(agent.id);
487
+ const injected = inbox.find((m) => m.id === msgId);
488
+ expect(injected).toBeDefined();
489
+ expect(injected!.importance).toBe("urgent");
490
+ expect(injected!.subject).toBe("Priority change");
491
+
492
+ // Send high-priority event injection
493
+ log("Sending high-priority event injection...");
494
+ await system.inboxAdapter.send(
495
+ "system",
496
+ agent.id,
497
+ {
498
+ type: "event",
499
+ event: "context_update",
500
+ data: { newPriority: "bug-42", previousTask: "feature-x" },
501
+ },
502
+ { importance: "high" }
503
+ );
504
+
505
+ const inboxAfter = await system.inboxAdapter.checkInbox(agent.id);
506
+ const eventInjection = inboxAfter.find(
507
+ (m) => m.content?.type === "event" && m.content?.event === "context_update"
508
+ );
509
+ expect(eventInjection).toBeDefined();
510
+ expect(eventInjection!.importance).toBe("high");
511
+
512
+ // Cleanup
513
+ await system.agentManager.terminate(agent.id, "cancelled");
514
+ log("Test complete");
515
+ },
516
+ TIMEOUT.PROMPT
517
+ );
518
+
519
+ // ── Team Bootstrap with Real Agents ─────────────────────────
520
+
521
+ it(
522
+ "should bootstrap a team with real agents and scoped inbox",
523
+ async () => {
524
+ const { loadTeam } = await import("../../teams/team-loader.js");
525
+ const { TeamRuntimeV2 } = await import("../../teams/team-runtime-v2.js");
526
+
527
+ log("Loading self-driving team template...");
528
+ const manifest = await loadTeam(
529
+ "self-driving",
530
+ system.roleRegistry,
531
+ path.resolve(import.meta.dirname, "../../..")
532
+ );
533
+
534
+ const runtime = new TeamRuntimeV2(manifest, {
535
+ agentManager: system.agentManager,
536
+ inboxAdapter: system.inboxAdapter,
537
+ tasksAdapter: system.tasksAdapter,
538
+ });
539
+
540
+ await runtime.initialize();
541
+
542
+ log("Bootstrapping team...");
543
+ const result = await runtime.bootstrap();
544
+
545
+ expect(result.rootId).toBeDefined();
546
+ expect(result.companionIds.length).toBeGreaterThanOrEqual(1);
547
+
548
+ log(`Root: ${result.rootId}, Companions: ${result.companionIds.join(", ")}`);
549
+
550
+ // Verify agents have team scope
551
+ const rootRecord = system.agentStore.getAgent(result.rootId)!;
552
+ expect(rootRecord.team).toBe("self-driving");
553
+ expect(rootRecord.role).toBe("planner");
554
+
555
+ const companionRecord = system.agentStore.getAgent(result.companionIds[0])!;
556
+ expect(companionRecord.team).toBe("self-driving");
557
+ expect(companionRecord.role).toBe("judge");
558
+
559
+ // Verify scoped inbox registration
560
+ const inbox = (system.inboxAdapter as any).getInbox();
561
+ const rootInboxAgent = inbox.storage.getAgent(result.rootId);
562
+ expect(rootInboxAgent).toBeDefined();
563
+ expect(rootInboxAgent.scope).toBe("self-driving");
564
+
565
+ // Install signal filtering
566
+ runtime.installOnServices();
567
+
568
+ // Send a message between team agents
569
+ log("Sending message judge → planner...");
570
+ await system.inboxAdapter.send(
571
+ result.companionIds[0], // judge
572
+ result.rootId, // planner
573
+ {
574
+ type: "event",
575
+ event: "FIXUP_CREATED",
576
+ data: { fix: "typo correction" },
577
+ },
578
+ { scope: "self-driving" }
579
+ );
580
+
581
+ const plannerInbox = await system.inboxAdapter.checkInbox(result.rootId);
582
+ expect(plannerInbox.length).toBeGreaterThanOrEqual(1);
583
+
584
+ // Prompt root agent to verify it's a real live process
585
+ log("Prompting planner...");
586
+ const updates: any[] = [];
587
+ for await (const update of system.agentManager.prompt(
588
+ result.rootId,
589
+ "Respond with: TEAM_READY"
590
+ )) {
591
+ updates.push(update);
592
+ }
593
+ expect(updates.length).toBeGreaterThan(0);
594
+
595
+ // Teardown team
596
+ log("Tearing down team...");
597
+ await runtime.teardown();
598
+
599
+ // Terminate all team agents
600
+ await system.agentManager.terminate(result.rootId, "cancelled");
601
+ for (const cid of result.companionIds) {
602
+ try {
603
+ await system.agentManager.terminate(cid, "cancelled");
604
+ } catch {
605
+ // May already be stopped via cascade
606
+ }
607
+ }
608
+
609
+ log("Test complete");
610
+ },
611
+ TIMEOUT.MULTI
612
+ );
613
+
614
+ // ── Multi-Worker with Inbox Coordination ────────────────────
615
+
616
+ it(
617
+ "should coordinate multiple workers via inbox messaging",
618
+ async () => {
619
+ log("Spawning coordinator + 2 workers...");
620
+ const coord = await system.agentManager.spawn({
621
+ task: "Coordinate two workers.",
622
+ role: "coordinator",
623
+ cwd: testRepo.path,
624
+ });
625
+
626
+ const w1 = await system.agentManager.spawn({
627
+ task: "Worker 1: handle frontend.",
628
+ role: "worker",
629
+ parent: coord.id,
630
+ cwd: testRepo.path,
631
+ });
632
+
633
+ const w2 = await system.agentManager.spawn({
634
+ task: "Worker 2: handle backend.",
635
+ role: "worker",
636
+ parent: coord.id,
637
+ cwd: testRepo.path,
638
+ });
639
+
640
+ log(`Coord: ${coord.id}, W1: ${w1.id}, W2: ${w2.id}`);
641
+
642
+ // Coordinator broadcasts task assignments
643
+ log("Broadcasting task assignments...");
644
+ await system.inboxAdapter.send(
645
+ coord.id,
646
+ [w1.id, w2.id],
647
+ {
648
+ type: "event",
649
+ event: "task_assigned",
650
+ data: { phase: "implementation" },
651
+ },
652
+ { threadTag: "sprint-1", importance: "high" }
653
+ );
654
+
655
+ // Both workers should have the message
656
+ const w1Inbox = await system.inboxAdapter.checkInbox(w1.id);
657
+ const w2Inbox = await system.inboxAdapter.checkInbox(w2.id);
658
+ expect(w1Inbox.find((m) => m.content?.event === "task_assigned")).toBeDefined();
659
+ expect(w2Inbox.find((m) => m.content?.event === "task_assigned")).toBeDefined();
660
+
661
+ // Worker 1 reports completion
662
+ log("W1 reporting completion...");
663
+ await system.inboxAdapter.send(
664
+ w1.id,
665
+ coord.id,
666
+ {
667
+ type: "event",
668
+ event: "task_completed",
669
+ data: { worker: w1.id, component: "frontend" },
670
+ },
671
+ { threadTag: "sprint-1", importance: "normal" }
672
+ );
673
+
674
+ // Worker 2 reports completion
675
+ log("W2 reporting completion...");
676
+ await system.inboxAdapter.send(
677
+ w2.id,
678
+ coord.id,
679
+ {
680
+ type: "event",
681
+ event: "task_completed",
682
+ data: { worker: w2.id, component: "backend" },
683
+ },
684
+ { threadTag: "sprint-1", importance: "normal" }
685
+ );
686
+
687
+ // Coordinator should have both completion events
688
+ const coordInbox = await system.inboxAdapter.checkInbox(coord.id);
689
+ const completions = coordInbox.filter(
690
+ (m) => m.content?.type === "event" && m.content?.event === "task_completed"
691
+ );
692
+ expect(completions.length).toBeGreaterThanOrEqual(2);
693
+
694
+ // Read the full thread
695
+ const thread = await system.inboxAdapter.readThread("sprint-1");
696
+ // Assignment + 2 completions = at least 3 messages in thread
697
+ expect(thread.length).toBeGreaterThanOrEqual(3);
698
+
699
+ log("Verified full coordination flow via inbox");
700
+
701
+ // Terminate parent (cascades to workers)
702
+ await system.agentManager.terminate(coord.id, "completed");
703
+
704
+ expect(system.agentStore.getAgent(w1.id)!.state).toBe("stopped");
705
+ expect(system.agentStore.getAgent(w2.id)!.state).toBe("stopped");
706
+
707
+ log("Test complete");
708
+ },
709
+ TIMEOUT.MULTI
710
+ );
711
+
712
+ // ── Control Socket: Spawn via IPC ───────────────────────────
713
+
714
+ it(
715
+ "should spawn agent via control socket (MCP subprocess flow)",
716
+ async () => {
717
+ const { ControlClient } = await import("../../control/control-client.js");
718
+
719
+ log("Connecting control client to control socket...");
720
+ const controlClient = new ControlClient(system.controlSocketPath);
721
+ await controlClient.connect();
722
+ expect(controlClient.connected).toBe(true);
723
+
724
+ log("Pinging control server...");
725
+ const pingOk = await controlClient.ping();
726
+ expect(pingOk).toBe(true);
727
+
728
+ // First, spawn a coordinator via the normal API (to be the parent)
729
+ log("Spawning coordinator via main API...");
730
+ const coordinator = await system.agentManager.spawn({
731
+ task: "Coordinator for control socket test",
732
+ role: "coordinator",
733
+ cwd: testRepo.path,
734
+ });
735
+
736
+ // Now spawn a worker via the control socket (simulating MCP subprocess)
737
+ log("Spawning worker via control socket...");
738
+ const spawnResult = await controlClient.spawn({
739
+ task: "Worker spawned via control socket",
740
+ role: "worker",
741
+ parent: coordinator.id,
742
+ cwd: testRepo.path,
743
+ });
744
+
745
+ expect(spawnResult.agent_id).toBeDefined();
746
+ expect(spawnResult.role).toBe("worker");
747
+ log(`Worker spawned via control socket: ${spawnResult.agent_id}`);
748
+
749
+ // Verify the agent exists in AgentStore (shared SQLite)
750
+ const record = system.agentStore.getAgent(spawnResult.agent_id);
751
+ expect(record).not.toBeNull();
752
+ expect(record!.role).toBe("worker");
753
+ expect(record!.state).toBe("running");
754
+ expect(record!.parent_id).toBe(coordinator.id);
755
+
756
+ // Verify the agent is registered in inbox
757
+ const inbox = (system.inboxAdapter as any).getInbox();
758
+ const inboxAgent = inbox.storage.getAgent(spawnResult.agent_id);
759
+ expect(inboxAgent).toBeDefined();
760
+ expect(inboxAgent.status).toBe("active");
761
+
762
+ // Verify the agent appears in hierarchy
763
+ const hierarchy = system.agentManager.getHierarchy(coordinator.id);
764
+ expect(hierarchy!.totalAgents).toBe(2);
765
+
766
+ // Query via control socket (simulating MCP subprocess reads)
767
+ log("Querying agent via control socket...");
768
+ const agentFromControl = await controlClient.getAgent(spawnResult.agent_id);
769
+ expect(agentFromControl).toBeDefined();
770
+ expect((agentFromControl as any).role).toBe("worker");
771
+
772
+ const children = await controlClient.getChildren(coordinator.id);
773
+ expect(children).toHaveLength(1);
774
+ expect((children[0] as any).id).toBe(spawnResult.agent_id);
775
+
776
+ // Terminate via control socket (simulating MCP subprocess stop_agent)
777
+ log("Terminating worker via control socket...");
778
+ await controlClient.terminate(spawnResult.agent_id, "completed");
779
+
780
+ const stoppedRecord = system.agentStore.getAgent(spawnResult.agent_id);
781
+ expect(stoppedRecord!.state).toBe("stopped");
782
+ expect(stoppedRecord!.stop_reason).toBe("completed");
783
+
784
+ // Verify deregistered from inbox
785
+ const afterStop = inbox.storage.getAgent(spawnResult.agent_id);
786
+ expect(afterStop.status).toBe("offline");
787
+
788
+ // Cleanup
789
+ controlClient.disconnect();
790
+ await system.agentManager.terminate(coordinator.id, "cancelled");
791
+
792
+ log("Test complete");
793
+ },
794
+ TIMEOUT.MULTI
795
+ );
796
+
797
+ // ── Control Socket: Error Handling ──────────────────────────
798
+
799
+ it(
800
+ "should handle control socket errors correctly",
801
+ async () => {
802
+ const { ControlClient } = await import("../../control/control-client.js");
803
+
804
+ log("Connecting control client...");
805
+ const controlClient = new ControlClient(system.controlSocketPath);
806
+ await controlClient.connect();
807
+
808
+ // Try to terminate a non-existent agent
809
+ log("Testing terminate of non-existent agent...");
810
+ let terminateError: Error | null = null;
811
+ try {
812
+ await controlClient.terminate("nonexistent_agent", "cancelled");
813
+ } catch (err) {
814
+ terminateError = err as Error;
815
+ }
816
+ expect(terminateError).not.toBeNull();
817
+ expect(terminateError!.message).toContain("not found");
818
+
819
+ // Try to get a non-existent agent
820
+ log("Testing get of non-existent agent...");
821
+ let getError: Error | null = null;
822
+ try {
823
+ await controlClient.getAgent("nonexistent_agent");
824
+ } catch (err) {
825
+ getError = err as Error;
826
+ }
827
+ expect(getError).not.toBeNull();
828
+
829
+ controlClient.disconnect();
830
+ log("Test complete");
831
+ },
832
+ TIMEOUT.SPAWN
833
+ );
834
+
835
+ // ── Helper: detect tool calls in session updates ────────────
836
+
837
+ /**
838
+ * Extract tool calls from session updates.
839
+ *
840
+ * acp-factory tool_call updates have this structure:
841
+ * { sessionUpdate: "tool_call", title: "mcp__macro-agent__done", kind: "tool_call", ... }
842
+ *
843
+ * The tool name is in the `title` field, formatted as "mcp__<server>__<tool>" or just "<tool>".
844
+ */
845
+ function findToolCalls(updates: any[]): { name: string; fullTitle: string; input: any }[] {
846
+ const calls: { name: string; fullTitle: string; input: any }[] = [];
847
+ for (const u of updates) {
848
+ const uAny = u as any;
849
+
850
+ if (
851
+ (uAny.sessionUpdate === "tool_call" || uAny.sessionUpdate === "tool_call_update") &&
852
+ uAny.title
853
+ ) {
854
+ const fullTitle = uAny.title as string;
855
+ // Extract short name: "mcp__macro-agent__done" → "done"
856
+ const parts = fullTitle.split("__");
857
+ const shortName = parts[parts.length - 1];
858
+
859
+ if (!calls.some(c => c.fullTitle === fullTitle)) {
860
+ calls.push({
861
+ name: shortName,
862
+ fullTitle,
863
+ input: uAny.rawInput ?? uAny.input,
864
+ });
865
+ }
866
+ }
867
+
868
+ // content block format
869
+ if (uAny.content?.type === "tool_use") {
870
+ const name = uAny.content.name;
871
+ if (!calls.some(c => c.name === name)) {
872
+ calls.push({ name, fullTitle: name, input: uAny.content.input });
873
+ }
874
+ }
875
+ }
876
+ return calls;
877
+ }
878
+
879
+ function getTextContent(updates: any[]): string {
880
+ const parts: string[] = [];
881
+ for (const u of updates) {
882
+ const uAny = u as any;
883
+ if (uAny.sessionUpdate === "agent_message_chunk" && uAny.content?.text) {
884
+ parts.push(uAny.content.text);
885
+ }
886
+ }
887
+ return parts.join("");
888
+ }
889
+
890
+ // ── Agent-Initiated Spawn via MCP Tool ──────────────────────
891
+
892
+ it(
893
+ "should allow a real agent to spawn a child via spawn_agent MCP tool",
894
+ async () => {
895
+ log("Spawning coordinator agent...");
896
+ const coordinator = await system.agentManager.spawn({
897
+ task: "You are a coordinator. When asked, use the spawn_agent tool to create a worker agent.",
898
+ role: "coordinator",
899
+ cwd: testRepo.path,
900
+ });
901
+
902
+ log(`Coordinator: ${coordinator.id}`);
903
+
904
+ // Prompt the coordinator to spawn a child using the MCP tool
905
+ log("Prompting coordinator to spawn a worker...");
906
+ const updates: any[] = [];
907
+ for await (const update of system.agentManager.prompt(
908
+ coordinator.id,
909
+ 'Use the spawn_agent tool to create a worker agent with task "Write a hello world function". Do not do anything else — just call spawn_agent and report the result.'
910
+ )) {
911
+ updates.push(update);
912
+ }
913
+
914
+ log(`Got ${updates.length} updates from coordinator prompt`);
915
+
916
+ // Log update types and any text content for debugging
917
+ for (const u of updates) {
918
+ const uAny = u as any;
919
+ if (uAny.sessionUpdate === "agent_message_chunk" && uAny.content?.text) {
920
+ log(` [text] ${uAny.content.text.slice(0, 200)}`);
921
+ } else if (uAny.type === "tool_use" || uAny.subtype === "tool_use") {
922
+ log(` [tool_use] ${JSON.stringify(uAny).slice(0, 200)}`);
923
+ } else if (uAny.type === "tool_result" || uAny.subtype === "tool_result") {
924
+ log(` [tool_result] ${JSON.stringify(uAny).slice(0, 200)}`);
925
+ } else {
926
+ log(` [${uAny.sessionUpdate ?? uAny.type ?? "unknown"}]`);
927
+ }
928
+ }
929
+
930
+ // Wait a moment for the spawn to complete (async via control socket)
931
+ await new Promise((r) => setTimeout(r, 2000));
932
+
933
+ // Check if a child was spawned
934
+ const children = system.agentManager.getChildren(coordinator.id);
935
+ log(`Children found: ${children.length}`);
936
+
937
+ if (children.length > 0) {
938
+ log(`Child agent spawned: ${children[0].id} (role: ${children[0].role})`);
939
+
940
+ // Verify child is in AgentStore
941
+ const childRecord = system.agentStore.getAgent(children[0].id);
942
+ expect(childRecord).not.toBeNull();
943
+ expect(childRecord!.state).toBe("running");
944
+ expect(childRecord!.parent_id).toBe(coordinator.id);
945
+
946
+ // Verify child is in inbox
947
+ const inbox = (system.inboxAdapter as any).getInbox();
948
+ const childInbox = inbox.storage.getAgent(children[0].id);
949
+ expect(childInbox).toBeDefined();
950
+ expect(childInbox.status).toBe("active");
951
+
952
+ // Verify hierarchy
953
+ const hierarchy = system.agentManager.getHierarchy(coordinator.id);
954
+ expect(hierarchy!.totalAgents).toBeGreaterThanOrEqual(2);
955
+
956
+ log("Agent-initiated spawn via MCP tool verified!");
957
+ } else {
958
+ // The agent might not have called spawn_agent — check the response
959
+ // for tool use indicators
960
+ const hasToolUse = updates.some(
961
+ (u: any) =>
962
+ u.type === "tool_use" ||
963
+ u.subtype === "tool_use" ||
964
+ (typeof u.content === "object" && u.content?.type === "tool_use")
965
+ );
966
+ log(`Tool use detected in updates: ${hasToolUse}`);
967
+
968
+ // Even if the agent didn't spawn (model discretion), verify the
969
+ // control socket path was available
970
+ expect(system.controlSocketPath).toBeTruthy();
971
+ log("Note: Agent did not call spawn_agent (model discretion). Control socket path verified.");
972
+ }
973
+
974
+ // Cleanup
975
+ await system.agentManager.terminate(coordinator.id, "completed");
976
+ log("Test complete");
977
+ },
978
+ TIMEOUT.MULTI
979
+ );
980
+
981
+ // ── done() tool: give worker real work, verify done flow ────
982
+
983
+ it(
984
+ "should verify done() tool works when worker completes a real task",
985
+ async () => {
986
+ log("Spawning coordinator + worker...");
987
+ const coordinator = await system.agentManager.spawn({
988
+ task: "You coordinate workers. Monitor their completion status.",
989
+ role: "coordinator",
990
+ cwd: testRepo.path,
991
+ });
992
+
993
+ const worker = await system.agentManager.spawn({
994
+ task: "Create a file called task-result.txt, then call the done MCP tool to signal completion.",
995
+ role: "worker",
996
+ parent: coordinator.id,
997
+ cwd: testRepo.path,
998
+ });
999
+
1000
+ log(`Coordinator: ${coordinator.id}, Worker: ${worker.id}`);
1001
+
1002
+ // Use promptUntilDone — it follows up if the agent doesn't call done()
1003
+ log("Prompting worker with task + done instruction...");
1004
+ const result = await system.agentManager.promptUntilDone(
1005
+ worker.id,
1006
+ `Create a file at ${testRepo.path}/task-result.txt with content "task completed". After creating the file, you MUST call the "done" MCP tool with status="completed" and summary="Created task-result.txt". The done tool signals to the orchestration system that you are finished.`,
1007
+ {
1008
+ maxFollowUps: 2,
1009
+ onUpdate: (update: any) => {
1010
+ if (update.sessionUpdate === "tool_call") {
1011
+ log(` [tool_call] ${update.toolName ?? "unknown"}`);
1012
+ }
1013
+ },
1014
+ }
1015
+ );
1016
+
1017
+ log(`promptUntilDone result: doneCalled=${result.doneCalled}, doneStatus=${result.doneStatus}, updates=${result.updates.length}`);
1018
+
1019
+ // Check if the file was created (verifies worker did real work)
1020
+ const { existsSync, readFileSync } = await import("fs");
1021
+ const filePath = path.join(testRepo.path, "task-result.txt");
1022
+ const fileCreated = existsSync(filePath);
1023
+ log(`File created: ${fileCreated}`);
1024
+ if (fileCreated) {
1025
+ const content = readFileSync(filePath, "utf-8");
1026
+ log(`File content: "${content.trim()}"`);
1027
+ }
1028
+
1029
+ // Check if done was called
1030
+ if (result.doneCalled) {
1031
+ log(`done() was called! status=${result.doneStatus}`);
1032
+
1033
+ // Dump done tool_call updates for debugging rawInput
1034
+ const doneUpdates = result.updates.filter(
1035
+ (u: any) =>
1036
+ (u.sessionUpdate === "tool_call" || u.sessionUpdate === "tool_call_update") &&
1037
+ typeof u.title === "string" &&
1038
+ u.title.endsWith("__done")
1039
+ );
1040
+ for (const du of doneUpdates) {
1041
+ const d = du as any;
1042
+ log(` done update: status=${d.status}, rawInput=${typeof d.rawInput === "string" ? d.rawInput.slice(0, 200) : JSON.stringify(d.rawInput)?.slice(0, 200)}`);
1043
+ if (d.content) {
1044
+ log(` done content: ${typeof d.content === "string" ? d.content.slice(0, 200) : JSON.stringify(d.content)?.slice(0, 200)}`);
1045
+ }
1046
+ }
1047
+
1048
+ // Wait for inbox notifications to propagate
1049
+ await new Promise((r) => setTimeout(r, 2000));
1050
+
1051
+ // Check coordinator's inbox for WORKER_DONE or agent_stopped
1052
+ const coordInbox = await system.inboxAdapter.checkInbox(coordinator.id);
1053
+ log(`Coordinator inbox: ${coordInbox.length} messages`);
1054
+
1055
+ const lifecycleMsgs = coordInbox.filter(
1056
+ (m) =>
1057
+ m.content?.type === "event" &&
1058
+ (m.content?.event === "WORKER_DONE" ||
1059
+ m.content?.event === "agent_stopped")
1060
+ );
1061
+ log(`Lifecycle messages to coordinator: ${lifecycleMsgs.length}`);
1062
+ for (const msg of lifecycleMsgs) {
1063
+ log(` event=${msg.content.event}, from=${msg.sender_id}, importance=${msg.importance}`);
1064
+ }
1065
+
1066
+ if (lifecycleMsgs.length > 0) {
1067
+ expect(lifecycleMsgs.length).toBeGreaterThanOrEqual(1);
1068
+ log("Coordinator received lifecycle notification via inbox!");
1069
+ }
1070
+ } else {
1071
+ // done wasn't called — log what happened
1072
+ const text = getTextContent(result.updates);
1073
+ log(`Worker didn't call done(). Response: ${text.slice(0, 300)}`);
1074
+
1075
+ // Log all tool calls for debugging
1076
+ const allToolCalls = findToolCalls(result.updates);
1077
+ log(`All tool calls: ${allToolCalls.map(t => t.name).join(", ") || "none"}`);
1078
+
1079
+ // Log update types
1080
+ const updateTypes = result.updates
1081
+ .map((u: any) => u.sessionUpdate ?? u.type ?? "?")
1082
+ .filter((t: string) => t !== "agent_message_chunk");
1083
+ log(`Non-text update types: ${updateTypes.join(", ")}`);
1084
+ }
1085
+
1086
+ // Cleanup
1087
+ try { await system.agentManager.terminate(worker.id, "cancelled"); } catch {}
1088
+ await system.agentManager.terminate(coordinator.id, "cancelled");
1089
+ log("Test complete");
1090
+ },
1091
+ TIMEOUT.MULTI
1092
+ );
1093
+
1094
+ // ── Agent spawns child, child does work, parent sees result ─
1095
+
1096
+ it(
1097
+ "should verify spawned child agent actually executes and produces output",
1098
+ async () => {
1099
+ log("Spawning coordinator...");
1100
+ const coordinator = await system.agentManager.spawn({
1101
+ task: "You are a coordinator. Spawn workers and check their results.",
1102
+ role: "coordinator",
1103
+ cwd: testRepo.path,
1104
+ });
1105
+
1106
+ log(`Coordinator: ${coordinator.id}`);
1107
+
1108
+ // Prompt coordinator to spawn a child that creates a file
1109
+ log("Prompting coordinator to spawn a worker that creates a file...");
1110
+ const spawnUpdates: any[] = [];
1111
+ for await (const update of system.agentManager.prompt(
1112
+ coordinator.id,
1113
+ `Use spawn_agent to create a worker with task "Create a file called hello.txt containing 'Hello from worker agent'". Then tell me the agent_id from the result.`
1114
+ )) {
1115
+ spawnUpdates.push(update);
1116
+ }
1117
+
1118
+ const spawnToolCalls = findToolCalls(spawnUpdates);
1119
+ const spawnCalled = spawnToolCalls.some(t => t.name === "spawn_agent");
1120
+ log(`spawn_agent called: ${spawnCalled}`);
1121
+
1122
+ // Wait for child to be created
1123
+ await new Promise((r) => setTimeout(r, 3000));
1124
+
1125
+ const children = system.agentManager.getChildren(coordinator.id);
1126
+ log(`Children: ${children.length}`);
1127
+
1128
+ if (children.length > 0) {
1129
+ const child = children[0];
1130
+ log(`Child: ${child.id} (state: ${child.state})`);
1131
+
1132
+ // The child is a real Claude Code process.
1133
+ // Prompt it to create the file.
1134
+ if (system.agentManager.hasActiveSession(child.id)) {
1135
+ log("Prompting child to create file...");
1136
+ const childUpdates: any[] = [];
1137
+ for await (const update of system.agentManager.prompt(
1138
+ child.id,
1139
+ `Create a file at ${testRepo.path}/hello.txt with content "Hello from worker agent". Use the Write tool.`
1140
+ )) {
1141
+ childUpdates.push(update);
1142
+ }
1143
+
1144
+ const childToolCalls = findToolCalls(childUpdates);
1145
+ log(`Child tool calls: ${childToolCalls.map(t => t.name).join(", ") || "none"}`);
1146
+
1147
+ // Wait for file creation
1148
+ await new Promise((r) => setTimeout(r, 1000));
1149
+
1150
+ // Verify the file was created
1151
+ const { existsSync, readFileSync } = await import("fs");
1152
+ const filePath = path.join(testRepo.path, "hello.txt");
1153
+ if (existsSync(filePath)) {
1154
+ const content = readFileSync(filePath, "utf-8");
1155
+ log(`File created! Content: "${content.trim()}"`);
1156
+ expect(content).toContain("Hello");
1157
+ } else {
1158
+ log("File not created (agent may have used different path)");
1159
+ // Check if child used any write-like tools
1160
+ const wroteFile = childToolCalls.some(
1161
+ t => t.name === "Write" || t.name === "write" || t.name === "Bash"
1162
+ );
1163
+ log(`Child attempted file write: ${wroteFile}`);
1164
+ }
1165
+ }
1166
+ } else {
1167
+ log("No children spawned — spawn_agent may not have been called");
1168
+ const text = getTextContent(spawnUpdates);
1169
+ log(`Coordinator response: ${text.slice(0, 200)}`);
1170
+ }
1171
+
1172
+ // Cleanup
1173
+ for (const child of children) {
1174
+ try { await system.agentManager.terminate(child.id, "cancelled"); } catch {}
1175
+ }
1176
+ await system.agentManager.terminate(coordinator.id, "cancelled");
1177
+ log("Test complete");
1178
+ },
1179
+ TIMEOUT.MULTI
1180
+ );
1181
+
1182
+ // ── Agent calls stop_agent on a child ───────────────────────
1183
+
1184
+ it(
1185
+ "should verify agent can stop a child via stop_agent MCP tool",
1186
+ async () => {
1187
+ log("Spawning coordinator...");
1188
+ const coordinator = await system.agentManager.spawn({
1189
+ task: "You are a coordinator that manages workers.",
1190
+ role: "coordinator",
1191
+ cwd: testRepo.path,
1192
+ });
1193
+
1194
+ // Spawn a worker directly (so we know it exists)
1195
+ const worker = await system.agentManager.spawn({
1196
+ task: "Wait for instructions.",
1197
+ role: "worker",
1198
+ parent: coordinator.id,
1199
+ cwd: testRepo.path,
1200
+ });
1201
+
1202
+ log(`Coordinator: ${coordinator.id}, Worker: ${worker.id}`);
1203
+ expect(system.agentStore.getAgent(worker.id)!.state).toBe("running");
1204
+
1205
+ // Prompt coordinator to stop the worker
1206
+ log("Prompting coordinator to stop the worker...");
1207
+ const updates: any[] = [];
1208
+ for await (const update of system.agentManager.prompt(
1209
+ coordinator.id,
1210
+ `You have an MCP tool called "stop_agent". Call it with agent_id="${worker.id}" and reason="completed". This is a legitimate test operation on your own child agent.`
1211
+ )) {
1212
+ updates.push(update);
1213
+ }
1214
+
1215
+ const toolCalls = findToolCalls(updates);
1216
+ const stopCalled = toolCalls.some(t => t.name === "stop_agent");
1217
+ log(`stop_agent called: ${stopCalled}`);
1218
+
1219
+ // Wait for termination regardless — the agent may have called it
1220
+ // through a mechanism our detector doesn't catch
1221
+ await new Promise((r) => setTimeout(r, 3000));
1222
+
1223
+ const workerRecord = system.agentStore.getAgent(worker.id)!;
1224
+ log(`Worker state after prompt: ${workerRecord.state}`);
1225
+
1226
+ if (workerRecord.state === "stopped") {
1227
+ log("Worker was stopped (verified in AgentStore)!");
1228
+ expect(workerRecord.state).toBe("stopped");
1229
+ } else if (stopCalled) {
1230
+ log("stop_agent tool was called but worker may still be running");
1231
+ } else {
1232
+ const text = getTextContent(updates);
1233
+ log(`Coordinator response: ${text.slice(0, 200)}`);
1234
+ // Log all update types for debugging
1235
+ log(`Update types: ${updates.map((u: any) => u.sessionUpdate ?? u.type ?? "?").join(", ")}`);
1236
+ }
1237
+
1238
+ // Cleanup
1239
+ try { await system.agentManager.terminate(worker.id, "cancelled"); } catch {}
1240
+ await system.agentManager.terminate(coordinator.id, "cancelled");
1241
+ log("Test complete");
1242
+ },
1243
+ TIMEOUT.MULTI
1244
+ );
1245
+
1246
+ // ── Agent uses inject_context to steer another agent ────────
1247
+
1248
+ it(
1249
+ "should verify agent can inject context into another agent via MCP tool",
1250
+ async () => {
1251
+ log("Spawning two agents...");
1252
+ const coordinator = await system.agentManager.spawn({
1253
+ task: "You coordinate workers. Use inject_context to steer them.",
1254
+ role: "coordinator",
1255
+ cwd: testRepo.path,
1256
+ });
1257
+
1258
+ const worker = await system.agentManager.spawn({
1259
+ task: "Wait for instructions.",
1260
+ role: "worker",
1261
+ parent: coordinator.id,
1262
+ cwd: testRepo.path,
1263
+ });
1264
+
1265
+ log(`Coordinator: ${coordinator.id}, Worker: ${worker.id}`);
1266
+
1267
+ // First, have the coordinator spawn a child itself so it "knows" about it
1268
+ log("Having coordinator spawn its own child first...");
1269
+ const spawnUpdates: any[] = [];
1270
+ for await (const update of system.agentManager.prompt(
1271
+ coordinator.id,
1272
+ `Use spawn_agent to create a worker with task "Wait for context updates".`
1273
+ )) {
1274
+ spawnUpdates.push(update);
1275
+ }
1276
+ await new Promise((r) => setTimeout(r, 3000));
1277
+
1278
+ const children = system.agentManager.getChildren(coordinator.id);
1279
+ const targetId = children.length > 0
1280
+ ? children[children.length - 1].id // Use the coordinator's own child
1281
+ : worker.id; // Fallback to our manually spawned worker
1282
+
1283
+ log(`Target for inject_context: ${targetId}`);
1284
+
1285
+ // Prompt coordinator to inject context
1286
+ log("Prompting coordinator to inject context...");
1287
+ const updates: any[] = [];
1288
+ for await (const update of system.agentManager.prompt(
1289
+ coordinator.id,
1290
+ `Use the inject_context tool to send a message to agent "${targetId}". Set content to "New task assignment: implement feature #42" and urgent to true.`
1291
+ )) {
1292
+ updates.push(update);
1293
+ }
1294
+
1295
+ const toolCalls = findToolCalls(updates);
1296
+ const injectCalled = toolCalls.some(t => t.name === "inject_context");
1297
+ log(`inject_context called: ${injectCalled}`);
1298
+
1299
+ // Check inbox regardless of tool call detection
1300
+ await new Promise((r) => setTimeout(r, 2000));
1301
+
1302
+ const targetInbox = await system.inboxAdapter.checkInbox(targetId);
1303
+ log(`Target inbox: ${targetInbox.length} messages`);
1304
+
1305
+ const injectedMsg = targetInbox.find(
1306
+ (m) => m.sender_id === coordinator.id
1307
+ );
1308
+
1309
+ if (injectedMsg) {
1310
+ log(`Injected message found! importance=${injectedMsg.importance}, subject=${injectedMsg.subject ?? "none"}`);
1311
+ log("Agent-initiated context injection verified!");
1312
+ } else if (injectCalled) {
1313
+ log("inject_context tool was called but message not found in inbox");
1314
+ } else {
1315
+ const text = getTextContent(updates);
1316
+ log(`Coordinator response: ${text.slice(0, 200)}`);
1317
+ log(`Update types: ${updates.map((u: any) => u.sessionUpdate ?? u.type ?? "?").join(", ")}`);
1318
+ }
1319
+
1320
+ // Cleanup — terminate all children, then coordinator
1321
+ for (const child of system.agentManager.getChildren(coordinator.id)) {
1322
+ try { await system.agentManager.terminate(child.id, "cancelled"); } catch {}
1323
+ }
1324
+ try { await system.agentManager.terminate(worker.id, "cancelled"); } catch {}
1325
+ await system.agentManager.terminate(coordinator.id, "completed");
1326
+ log("Test complete");
1327
+ },
1328
+ TIMEOUT.MULTI
1329
+ );
1330
+ });