macro-agent 0.0.11 → 0.0.12

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 (408) hide show
  1. package/.macro-agent/teams/self-driving/prompts/grinder.md +27 -0
  2. package/.macro-agent/teams/self-driving/prompts/judge.md +27 -0
  3. package/.macro-agent/teams/self-driving/prompts/planner.md +33 -0
  4. package/.macro-agent/teams/self-driving/roles/grinder.yaml +17 -0
  5. package/.macro-agent/teams/self-driving/roles/judge.yaml +24 -0
  6. package/.macro-agent/teams/self-driving/roles/planner.yaml +18 -0
  7. package/.macro-agent/teams/self-driving/team.yaml +103 -0
  8. package/.macro-agent/teams/structured/prompts/developer.md +26 -0
  9. package/.macro-agent/teams/structured/prompts/lead.md +25 -0
  10. package/.macro-agent/teams/structured/prompts/reviewer.md +24 -0
  11. package/.macro-agent/teams/structured/roles/developer.yaml +12 -0
  12. package/.macro-agent/teams/structured/roles/lead.yaml +11 -0
  13. package/.macro-agent/teams/structured/roles/reviewer.yaml +19 -0
  14. package/.macro-agent/teams/structured/team.yaml +89 -0
  15. package/.sudocode/issues.jsonl +6 -0
  16. package/.sudocode/specs.jsonl +7 -0
  17. package/CLAUDE.md +110 -30
  18. package/README.md +60 -3
  19. package/dist/acp/macro-agent.d.ts +4 -0
  20. package/dist/acp/macro-agent.d.ts.map +1 -1
  21. package/dist/acp/macro-agent.js +50 -4
  22. package/dist/acp/macro-agent.js.map +1 -1
  23. package/dist/acp/session-mapper.d.ts +20 -1
  24. package/dist/acp/session-mapper.d.ts.map +1 -1
  25. package/dist/acp/session-mapper.js +90 -1
  26. package/dist/acp/session-mapper.js.map +1 -1
  27. package/dist/acp/types.d.ts +24 -1
  28. package/dist/acp/types.d.ts.map +1 -1
  29. package/dist/acp/types.js.map +1 -1
  30. package/dist/agent/agent-manager.d.ts +25 -1
  31. package/dist/agent/agent-manager.d.ts.map +1 -1
  32. package/dist/agent/agent-manager.js +93 -7
  33. package/dist/agent/agent-manager.js.map +1 -1
  34. package/dist/agent/types.d.ts +22 -0
  35. package/dist/agent/types.d.ts.map +1 -1
  36. package/dist/agent/types.js.map +1 -1
  37. package/dist/agent-detection/command-builder.d.ts +30 -0
  38. package/dist/agent-detection/command-builder.d.ts.map +1 -0
  39. package/dist/agent-detection/command-builder.js +71 -0
  40. package/dist/agent-detection/command-builder.js.map +1 -0
  41. package/dist/agent-detection/detector.d.ts +84 -0
  42. package/dist/agent-detection/detector.d.ts.map +1 -0
  43. package/dist/agent-detection/detector.js +240 -0
  44. package/dist/agent-detection/detector.js.map +1 -0
  45. package/dist/agent-detection/index.d.ts +12 -0
  46. package/dist/agent-detection/index.d.ts.map +1 -0
  47. package/dist/agent-detection/index.js +14 -0
  48. package/dist/agent-detection/index.js.map +1 -0
  49. package/dist/agent-detection/registry.d.ts +53 -0
  50. package/dist/agent-detection/registry.d.ts.map +1 -0
  51. package/dist/agent-detection/registry.js +177 -0
  52. package/dist/agent-detection/registry.js.map +1 -0
  53. package/dist/agent-detection/types.d.ts +121 -0
  54. package/dist/agent-detection/types.d.ts.map +1 -0
  55. package/dist/agent-detection/types.js +20 -0
  56. package/dist/agent-detection/types.js.map +1 -0
  57. package/dist/api/server.d.ts.map +1 -1
  58. package/dist/api/server.js +95 -0
  59. package/dist/api/server.js.map +1 -1
  60. package/dist/cli/index.js +29 -0
  61. package/dist/cli/index.js.map +1 -1
  62. package/dist/cli/mcp.js +38 -0
  63. package/dist/cli/mcp.js.map +1 -1
  64. package/dist/config/index.d.ts +2 -0
  65. package/dist/config/index.d.ts.map +1 -0
  66. package/dist/config/index.js +2 -0
  67. package/dist/config/index.js.map +1 -0
  68. package/dist/config/project-config.d.ts +46 -0
  69. package/dist/config/project-config.d.ts.map +1 -0
  70. package/dist/config/project-config.js +68 -0
  71. package/dist/config/project-config.js.map +1 -0
  72. package/dist/lifecycle/cascade.d.ts +1 -1
  73. package/dist/lifecycle/cascade.d.ts.map +1 -1
  74. package/dist/lifecycle/handlers/index.d.ts +4 -0
  75. package/dist/lifecycle/handlers/index.d.ts.map +1 -1
  76. package/dist/lifecycle/handlers/index.js +2 -0
  77. package/dist/lifecycle/handlers/index.js.map +1 -1
  78. package/dist/lifecycle/handlers/worker.d.ts +4 -0
  79. package/dist/lifecycle/handlers/worker.d.ts.map +1 -1
  80. package/dist/lifecycle/handlers/worker.js +35 -3
  81. package/dist/lifecycle/handlers/worker.js.map +1 -1
  82. package/dist/map/adapter/acp-over-map.d.ts.map +1 -1
  83. package/dist/map/adapter/acp-over-map.js +32 -2
  84. package/dist/map/adapter/acp-over-map.js.map +1 -1
  85. package/dist/map/adapter/event-translator.d.ts.map +1 -1
  86. package/dist/map/adapter/event-translator.js +1 -0
  87. package/dist/map/adapter/event-translator.js.map +1 -1
  88. package/dist/map/adapter/extensions/agent-detection.d.ts +49 -0
  89. package/dist/map/adapter/extensions/agent-detection.d.ts.map +1 -0
  90. package/dist/map/adapter/extensions/agent-detection.js +91 -0
  91. package/dist/map/adapter/extensions/agent-detection.js.map +1 -0
  92. package/dist/map/adapter/extensions/index.d.ts +10 -1
  93. package/dist/map/adapter/extensions/index.d.ts.map +1 -1
  94. package/dist/map/adapter/extensions/index.js +39 -0
  95. package/dist/map/adapter/extensions/index.js.map +1 -1
  96. package/dist/map/adapter/extensions/resume.d.ts +47 -0
  97. package/dist/map/adapter/extensions/resume.d.ts.map +1 -0
  98. package/dist/map/adapter/extensions/resume.js +59 -0
  99. package/dist/map/adapter/extensions/resume.js.map +1 -0
  100. package/dist/map/adapter/extensions/workspace-files.d.ts +42 -0
  101. package/dist/map/adapter/extensions/workspace-files.d.ts.map +1 -0
  102. package/dist/map/adapter/extensions/workspace-files.js +338 -0
  103. package/dist/map/adapter/extensions/workspace-files.js.map +1 -0
  104. package/dist/mcp/mcp-server.d.ts +6 -0
  105. package/dist/mcp/mcp-server.d.ts.map +1 -1
  106. package/dist/mcp/mcp-server.js +45 -0
  107. package/dist/mcp/mcp-server.js.map +1 -1
  108. package/dist/mcp/tools/claim_task.d.ts +35 -0
  109. package/dist/mcp/tools/claim_task.d.ts.map +1 -0
  110. package/dist/mcp/tools/claim_task.js +58 -0
  111. package/dist/mcp/tools/claim_task.js.map +1 -0
  112. package/dist/mcp/tools/done.d.ts +11 -2
  113. package/dist/mcp/tools/done.d.ts.map +1 -1
  114. package/dist/mcp/tools/done.js +15 -10
  115. package/dist/mcp/tools/done.js.map +1 -1
  116. package/dist/mcp/tools/list_claimable_tasks.d.ts +38 -0
  117. package/dist/mcp/tools/list_claimable_tasks.d.ts.map +1 -0
  118. package/dist/mcp/tools/list_claimable_tasks.js +63 -0
  119. package/dist/mcp/tools/list_claimable_tasks.js.map +1 -0
  120. package/dist/mcp/tools/unclaim_task.d.ts +31 -0
  121. package/dist/mcp/tools/unclaim_task.d.ts.map +1 -0
  122. package/dist/mcp/tools/unclaim_task.js +47 -0
  123. package/dist/mcp/tools/unclaim_task.js.map +1 -0
  124. package/dist/metrics/index.d.ts +2 -0
  125. package/dist/metrics/index.d.ts.map +1 -0
  126. package/dist/metrics/index.js +2 -0
  127. package/dist/metrics/index.js.map +1 -0
  128. package/dist/metrics/metrics.d.ts +79 -0
  129. package/dist/metrics/metrics.d.ts.map +1 -0
  130. package/dist/metrics/metrics.js +166 -0
  131. package/dist/metrics/metrics.js.map +1 -0
  132. package/dist/roles/capabilities.d.ts +1 -0
  133. package/dist/roles/capabilities.d.ts.map +1 -1
  134. package/dist/roles/capabilities.js +3 -0
  135. package/dist/roles/capabilities.js.map +1 -1
  136. package/dist/roles/types.d.ts +1 -1
  137. package/dist/roles/types.d.ts.map +1 -1
  138. package/dist/router/message-router.d.ts +41 -0
  139. package/dist/router/message-router.d.ts.map +1 -1
  140. package/dist/router/message-router.js +136 -5
  141. package/dist/router/message-router.js.map +1 -1
  142. package/dist/store/event-store.d.ts +8 -1
  143. package/dist/store/event-store.d.ts.map +1 -1
  144. package/dist/store/event-store.js +120 -4
  145. package/dist/store/event-store.js.map +1 -1
  146. package/dist/store/types/agents.d.ts +1 -1
  147. package/dist/store/types/agents.d.ts.map +1 -1
  148. package/dist/store/types/events.d.ts +1 -1
  149. package/dist/store/types/events.d.ts.map +1 -1
  150. package/dist/store/types/events.js.map +1 -1
  151. package/dist/store/types/index.d.ts +1 -0
  152. package/dist/store/types/index.d.ts.map +1 -1
  153. package/dist/store/types/index.js +1 -0
  154. package/dist/store/types/index.js.map +1 -1
  155. package/dist/store/types/sessions.d.ts +44 -0
  156. package/dist/store/types/sessions.d.ts.map +1 -0
  157. package/dist/store/types/sessions.js +9 -0
  158. package/dist/store/types/sessions.js.map +1 -0
  159. package/dist/store/types/tasks.d.ts +2 -0
  160. package/dist/store/types/tasks.d.ts.map +1 -1
  161. package/dist/task/backend/memory.d.ts +4 -1
  162. package/dist/task/backend/memory.d.ts.map +1 -1
  163. package/dist/task/backend/memory.js +81 -0
  164. package/dist/task/backend/memory.js.map +1 -1
  165. package/dist/task/backend/types.d.ts +30 -0
  166. package/dist/task/backend/types.d.ts.map +1 -1
  167. package/dist/task/backend/types.js.map +1 -1
  168. package/dist/teams/index.d.ts +4 -0
  169. package/dist/teams/index.d.ts.map +1 -0
  170. package/dist/teams/index.js +4 -0
  171. package/dist/teams/index.js.map +1 -0
  172. package/dist/teams/team-loader.d.ts +20 -0
  173. package/dist/teams/team-loader.d.ts.map +1 -0
  174. package/dist/teams/team-loader.js +293 -0
  175. package/dist/teams/team-loader.js.map +1 -0
  176. package/dist/teams/team-runtime.d.ts +139 -0
  177. package/dist/teams/team-runtime.d.ts.map +1 -0
  178. package/dist/teams/team-runtime.js +613 -0
  179. package/dist/teams/team-runtime.js.map +1 -0
  180. package/dist/teams/types.d.ts +266 -0
  181. package/dist/teams/types.d.ts.map +1 -0
  182. package/dist/teams/types.js +20 -0
  183. package/dist/teams/types.js.map +1 -0
  184. package/dist/workspace/dataplane-adapter.d.ts +1 -1
  185. package/dist/workspace/dataplane-adapter.d.ts.map +1 -1
  186. package/dist/workspace/dataplane-adapter.js +1 -1
  187. package/dist/workspace/dataplane-adapter.js.map +1 -1
  188. package/dist/workspace/index.d.ts +1 -1
  189. package/dist/workspace/index.d.ts.map +1 -1
  190. package/dist/workspace/strategies/index.d.ts +6 -0
  191. package/dist/workspace/strategies/index.d.ts.map +1 -0
  192. package/dist/workspace/strategies/index.js +5 -0
  193. package/dist/workspace/strategies/index.js.map +1 -0
  194. package/dist/workspace/strategies/optimistic.d.ts +26 -0
  195. package/dist/workspace/strategies/optimistic.d.ts.map +1 -0
  196. package/dist/workspace/strategies/optimistic.js +121 -0
  197. package/dist/workspace/strategies/optimistic.js.map +1 -0
  198. package/dist/workspace/strategies/queue.d.ts +26 -0
  199. package/dist/workspace/strategies/queue.d.ts.map +1 -0
  200. package/dist/workspace/strategies/queue.js +67 -0
  201. package/dist/workspace/strategies/queue.js.map +1 -0
  202. package/dist/workspace/strategies/registry.d.ts +37 -0
  203. package/dist/workspace/strategies/registry.d.ts.map +1 -0
  204. package/dist/workspace/strategies/registry.js +63 -0
  205. package/dist/workspace/strategies/registry.js.map +1 -0
  206. package/dist/workspace/strategies/trunk.d.ts +20 -0
  207. package/dist/workspace/strategies/trunk.d.ts.map +1 -0
  208. package/dist/workspace/strategies/trunk.js +108 -0
  209. package/dist/workspace/strategies/trunk.js.map +1 -0
  210. package/dist/workspace/strategies/types.d.ts +104 -0
  211. package/dist/workspace/strategies/types.d.ts.map +1 -0
  212. package/dist/workspace/strategies/types.js +11 -0
  213. package/dist/workspace/strategies/types.js.map +1 -0
  214. package/dist/workspace/types.d.ts +1 -1
  215. package/dist/workspace/types.d.ts.map +1 -1
  216. package/dist/workspace/workspace-manager.d.ts +1 -1
  217. package/dist/workspace/workspace-manager.d.ts.map +1 -1
  218. package/docs/implementation-details.md +1127 -0
  219. package/docs/implementation-summary.md +448 -0
  220. package/docs/plan-self-driving-support.md +433 -0
  221. package/docs/spec-self-driving-support.md +462 -0
  222. package/docs/team-templates.md +860 -0
  223. package/docs/teams.md +233 -0
  224. package/package.json +4 -2
  225. package/src/acp/__tests__/integration.test.ts +161 -1
  226. package/src/acp/__tests__/macro-agent.test.ts +95 -0
  227. package/src/acp/__tests__/session-persistence.test.ts +276 -0
  228. package/src/acp/macro-agent.ts +79 -7
  229. package/src/acp/session-mapper.ts +108 -1
  230. package/src/acp/types.ts +33 -1
  231. package/src/agent/agent-manager.ts +158 -6
  232. package/src/agent/types.ts +27 -0
  233. package/src/agent-detection/__tests__/command-builder.test.ts +336 -0
  234. package/src/agent-detection/__tests__/detector.test.ts +768 -0
  235. package/src/agent-detection/__tests__/registry.test.ts +254 -0
  236. package/src/agent-detection/command-builder.ts +90 -0
  237. package/src/agent-detection/detector.ts +307 -0
  238. package/src/agent-detection/index.ts +36 -0
  239. package/src/agent-detection/registry.ts +200 -0
  240. package/src/agent-detection/types.ts +184 -0
  241. package/src/api/server.ts +110 -0
  242. package/src/cli/index.ts +44 -0
  243. package/src/cli/mcp.ts +47 -0
  244. package/src/config/index.ts +9 -0
  245. package/src/config/project-config.ts +107 -0
  246. package/src/lifecycle/cascade.ts +1 -1
  247. package/src/lifecycle/handlers/index.ts +8 -0
  248. package/src/lifecycle/handlers/worker.ts +48 -3
  249. package/src/map/adapter/__tests__/extensions.test.ts +359 -0
  250. package/src/map/adapter/__tests__/workspace-files.test.ts +673 -0
  251. package/src/map/adapter/acp-over-map.ts +45 -2
  252. package/src/map/adapter/event-translator.ts +1 -0
  253. package/src/map/adapter/extensions/agent-detection.ts +201 -0
  254. package/src/map/adapter/extensions/index.ts +63 -0
  255. package/src/map/adapter/extensions/resume.ts +114 -0
  256. package/src/map/adapter/extensions/workspace-files.ts +449 -0
  257. package/src/mcp/mcp-server.ts +67 -0
  258. package/src/mcp/tools/claim_task.ts +86 -0
  259. package/src/mcp/tools/done.ts +24 -10
  260. package/src/mcp/tools/list_claimable_tasks.ts +93 -0
  261. package/src/mcp/tools/unclaim_task.ts +71 -0
  262. package/src/metrics/index.ts +9 -0
  263. package/src/metrics/metrics.ts +280 -0
  264. package/src/roles/capabilities.ts +3 -0
  265. package/src/roles/types.ts +2 -1
  266. package/src/router/__tests__/message-router.test.ts +561 -0
  267. package/src/router/message-router.ts +223 -6
  268. package/src/store/event-store.ts +151 -3
  269. package/src/store/types/agents.ts +1 -1
  270. package/src/store/types/events.ts +2 -1
  271. package/src/store/types/index.ts +1 -0
  272. package/src/store/types/sessions.ts +53 -0
  273. package/src/store/types/tasks.ts +3 -0
  274. package/src/task/backend/memory.ts +116 -0
  275. package/src/task/backend/types.ts +43 -0
  276. package/src/teams/__tests__/cross-subsystem.integration.test.ts +983 -0
  277. package/src/teams/__tests__/e2e/team-runtime.e2e.test.ts +553 -0
  278. package/src/teams/__tests__/team-system.test.ts +1280 -0
  279. package/src/teams/index.ts +13 -0
  280. package/src/teams/team-loader.ts +434 -0
  281. package/src/teams/team-runtime.ts +727 -0
  282. package/src/teams/types.ts +377 -0
  283. package/src/workspace/dataplane-adapter.ts +1 -1
  284. package/src/workspace/index.ts +1 -1
  285. package/src/workspace/strategies/index.ts +18 -0
  286. package/src/workspace/strategies/optimistic.ts +136 -0
  287. package/src/workspace/strategies/queue.ts +81 -0
  288. package/src/workspace/strategies/registry.ts +89 -0
  289. package/src/workspace/strategies/trunk.ts +123 -0
  290. package/src/workspace/strategies/types.ts +145 -0
  291. package/src/workspace/types.ts +1 -1
  292. package/src/workspace/workspace-manager.ts +1 -1
  293. package/.claude/settings.local.json +0 -59
  294. package/dist/map/utils/address-translation.d.ts +0 -99
  295. package/dist/map/utils/address-translation.d.ts.map +0 -1
  296. package/dist/map/utils/address-translation.js +0 -285
  297. package/dist/map/utils/address-translation.js.map +0 -1
  298. package/dist/map/utils/index.d.ts +0 -7
  299. package/dist/map/utils/index.d.ts.map +0 -1
  300. package/dist/map/utils/index.js +0 -7
  301. package/dist/map/utils/index.js.map +0 -1
  302. package/references/acp-factory-ref/CHANGELOG.md +0 -33
  303. package/references/acp-factory-ref/LICENSE +0 -21
  304. package/references/acp-factory-ref/README.md +0 -341
  305. package/references/acp-factory-ref/package-lock.json +0 -3102
  306. package/references/acp-factory-ref/package.json +0 -96
  307. package/references/acp-factory-ref/python/CHANGELOG.md +0 -33
  308. package/references/acp-factory-ref/python/LICENSE +0 -21
  309. package/references/acp-factory-ref/python/Makefile +0 -57
  310. package/references/acp-factory-ref/python/README.md +0 -253
  311. package/references/acp-factory-ref/python/pyproject.toml +0 -73
  312. package/references/acp-factory-ref/python/tests/__init__.py +0 -0
  313. package/references/acp-factory-ref/python/tests/e2e/__init__.py +0 -1
  314. package/references/acp-factory-ref/python/tests/e2e/test_codex_e2e.py +0 -349
  315. package/references/acp-factory-ref/python/tests/e2e/test_gemini_e2e.py +0 -165
  316. package/references/acp-factory-ref/python/tests/e2e/test_opencode_e2e.py +0 -296
  317. package/references/acp-factory-ref/python/tests/test_client_handler.py +0 -543
  318. package/references/acp-factory-ref/python/tests/test_pushable.py +0 -199
  319. package/references/claude-code-acp/.github/workflows/ci.yml +0 -45
  320. package/references/claude-code-acp/.github/workflows/publish.yml +0 -34
  321. package/references/claude-code-acp/.prettierrc.json +0 -4
  322. package/references/claude-code-acp/CHANGELOG.md +0 -249
  323. package/references/claude-code-acp/LICENSE +0 -222
  324. package/references/claude-code-acp/README.md +0 -53
  325. package/references/claude-code-acp/docs/RELEASES.md +0 -24
  326. package/references/claude-code-acp/eslint.config.js +0 -48
  327. package/references/claude-code-acp/package-lock.json +0 -4570
  328. package/references/claude-code-acp/package.json +0 -88
  329. package/references/claude-code-acp/scripts/release.sh +0 -119
  330. package/references/claude-code-acp/src/acp-agent.ts +0 -2065
  331. package/references/claude-code-acp/src/index.ts +0 -26
  332. package/references/claude-code-acp/src/lib.ts +0 -38
  333. package/references/claude-code-acp/src/mcp-server.ts +0 -911
  334. package/references/claude-code-acp/src/settings.ts +0 -522
  335. package/references/claude-code-acp/src/tests/.claude/commands/quick-math.md +0 -5
  336. package/references/claude-code-acp/src/tests/.claude/commands/say-hello.md +0 -6
  337. package/references/claude-code-acp/src/tests/acp-agent-fork.test.ts +0 -479
  338. package/references/claude-code-acp/src/tests/acp-agent.test.ts +0 -1502
  339. package/references/claude-code-acp/src/tests/extract-lines.test.ts +0 -103
  340. package/references/claude-code-acp/src/tests/fork-session.test.ts +0 -335
  341. package/references/claude-code-acp/src/tests/replace-and-calculate-location.test.ts +0 -334
  342. package/references/claude-code-acp/src/tests/settings.test.ts +0 -617
  343. package/references/claude-code-acp/src/tests/skills-options.test.ts +0 -187
  344. package/references/claude-code-acp/src/tests/tools.test.ts +0 -318
  345. package/references/claude-code-acp/src/tests/typescript-declarations.test.ts +0 -558
  346. package/references/claude-code-acp/src/tools.ts +0 -819
  347. package/references/claude-code-acp/src/utils.ts +0 -171
  348. package/references/claude-code-acp/tsconfig.json +0 -18
  349. package/references/claude-code-acp/vitest.config.ts +0 -19
  350. package/references/multi-agent-protocol/.sudocode/issues.jsonl +0 -111
  351. package/references/multi-agent-protocol/.sudocode/specs.jsonl +0 -13
  352. package/references/multi-agent-protocol/LICENSE +0 -21
  353. package/references/multi-agent-protocol/README.md +0 -113
  354. package/references/multi-agent-protocol/docs/00-design-specification.md +0 -496
  355. package/references/multi-agent-protocol/docs/01-open-questions.md +0 -1050
  356. package/references/multi-agent-protocol/docs/02-wire-protocol.md +0 -296
  357. package/references/multi-agent-protocol/docs/03-streaming-semantics.md +0 -252
  358. package/references/multi-agent-protocol/docs/04-error-handling.md +0 -231
  359. package/references/multi-agent-protocol/docs/05-connection-model.md +0 -244
  360. package/references/multi-agent-protocol/docs/06-visibility-permissions.md +0 -243
  361. package/references/multi-agent-protocol/docs/07-federation.md +0 -259
  362. package/references/multi-agent-protocol/docs/08-macro-agent-migration.md +0 -253
  363. package/references/multi-agent-protocol/docs/09-authentication.md +0 -680
  364. package/references/multi-agent-protocol/docs/10-mail-protocol.md +0 -553
  365. package/references/multi-agent-protocol/docs/agent-iam-integration.md +0 -877
  366. package/references/multi-agent-protocol/docs/agentic-mesh-integration-draft.md +0 -459
  367. package/references/multi-agent-protocol/docs/git-transport-draft.md +0 -251
  368. package/references/multi-agent-protocol/docs-site/Gemfile +0 -22
  369. package/references/multi-agent-protocol/docs-site/README.md +0 -82
  370. package/references/multi-agent-protocol/docs-site/_config.yml +0 -91
  371. package/references/multi-agent-protocol/docs-site/_includes/head_custom.html +0 -20
  372. package/references/multi-agent-protocol/docs-site/_sass/color_schemes/map.scss +0 -42
  373. package/references/multi-agent-protocol/docs-site/_sass/custom/custom.scss +0 -34
  374. package/references/multi-agent-protocol/docs-site/examples/full-integration.md +0 -510
  375. package/references/multi-agent-protocol/docs-site/examples/index.md +0 -138
  376. package/references/multi-agent-protocol/docs-site/examples/simple-chat.md +0 -282
  377. package/references/multi-agent-protocol/docs-site/examples/task-queue.md +0 -399
  378. package/references/multi-agent-protocol/docs-site/getting-started/index.md +0 -98
  379. package/references/multi-agent-protocol/docs-site/getting-started/installation.md +0 -219
  380. package/references/multi-agent-protocol/docs-site/getting-started/overview.md +0 -172
  381. package/references/multi-agent-protocol/docs-site/getting-started/quickstart.md +0 -237
  382. package/references/multi-agent-protocol/docs-site/index.md +0 -136
  383. package/references/multi-agent-protocol/docs-site/protocol/authentication.md +0 -391
  384. package/references/multi-agent-protocol/docs-site/protocol/connection-model.md +0 -376
  385. package/references/multi-agent-protocol/docs-site/protocol/design.md +0 -284
  386. package/references/multi-agent-protocol/docs-site/protocol/error-handling.md +0 -312
  387. package/references/multi-agent-protocol/docs-site/protocol/federation.md +0 -449
  388. package/references/multi-agent-protocol/docs-site/protocol/index.md +0 -129
  389. package/references/multi-agent-protocol/docs-site/protocol/permissions.md +0 -398
  390. package/references/multi-agent-protocol/docs-site/protocol/streaming.md +0 -353
  391. package/references/multi-agent-protocol/docs-site/protocol/wire-protocol.md +0 -369
  392. package/references/multi-agent-protocol/docs-site/sdk/api/agent.md +0 -357
  393. package/references/multi-agent-protocol/docs-site/sdk/api/client.md +0 -380
  394. package/references/multi-agent-protocol/docs-site/sdk/api/index.md +0 -62
  395. package/references/multi-agent-protocol/docs-site/sdk/api/server.md +0 -453
  396. package/references/multi-agent-protocol/docs-site/sdk/api/types.md +0 -468
  397. package/references/multi-agent-protocol/docs-site/sdk/guides/agent.md +0 -375
  398. package/references/multi-agent-protocol/docs-site/sdk/guides/authentication.md +0 -405
  399. package/references/multi-agent-protocol/docs-site/sdk/guides/client.md +0 -352
  400. package/references/multi-agent-protocol/docs-site/sdk/guides/index.md +0 -89
  401. package/references/multi-agent-protocol/docs-site/sdk/guides/server.md +0 -360
  402. package/references/multi-agent-protocol/docs-site/sdk/guides/testing.md +0 -446
  403. package/references/multi-agent-protocol/docs-site/sdk/guides/transports.md +0 -363
  404. package/references/multi-agent-protocol/docs-site/sdk/index.md +0 -206
  405. package/references/multi-agent-protocol/package-lock.json +0 -3886
  406. package/references/multi-agent-protocol/package.json +0 -56
  407. package/references/multi-agent-protocol/schema/meta.json +0 -467
  408. package/references/multi-agent-protocol/schema/schema.json +0 -2558
@@ -0,0 +1,377 @@
1
+ /**
2
+ * Team Template Types
3
+ *
4
+ * TypeScript types for the team manifest schema. Generic multi-agent fields
5
+ * (name, roles, topology, communication) are separated from macro-agent
6
+ * specific extensions under the `macro_agent` namespace for interoperability.
7
+ *
8
+ * @module teams/types
9
+ */
10
+
11
+ import type { RoleDefinition, Capability } from "../roles/types.js";
12
+
13
+ // =============================================================================
14
+ // Core Manifest
15
+ // =============================================================================
16
+
17
+ /**
18
+ * Fully resolved team manifest.
19
+ *
20
+ * Returned by TeamLoader.load() with all inheritance resolved,
21
+ * capabilities computed, and prompts loaded.
22
+ */
23
+ export interface TeamManifest {
24
+ /** Team name (directory name) */
25
+ name: string;
26
+
27
+ /** Human-readable description */
28
+ description: string;
29
+
30
+ /** Schema version */
31
+ version: number;
32
+
33
+ /** Role names used by this team */
34
+ roles: string[];
35
+
36
+ /** Agent spawn topology */
37
+ topology: TeamTopology;
38
+
39
+ /** Communication topology */
40
+ communication: TeamCommunication;
41
+
42
+ /** macro-agent specific extensions */
43
+ macro_agent: MacroAgentExtensions;
44
+
45
+ // ─────────────────────────────────────────────────────────────
46
+ // Resolved state (populated by TeamLoader, not in YAML)
47
+ // ─────────────────────────────────────────────────────────────
48
+
49
+ /** Resolved role definitions keyed by role name */
50
+ _resolvedRoles: Map<string, ResolvedTeamRole>;
51
+
52
+ /** Loaded prompt contents keyed by file path */
53
+ _loadedPrompts: Map<string, string>;
54
+
55
+ /** Loaded MCP server configs keyed by role name */
56
+ _mcpServers: Map<string, McpServerEntry[]>;
57
+ }
58
+
59
+ // =============================================================================
60
+ // Topology
61
+ // =============================================================================
62
+
63
+ /**
64
+ * Defines the agent spawn graph for the team.
65
+ */
66
+ export interface TeamTopology {
67
+ /** The initial agent spawned when the team starts */
68
+ root: TopologyNode;
69
+
70
+ /** Agents spawned alongside root (peers, not children) */
71
+ companions?: TopologyNode[];
72
+
73
+ /**
74
+ * Which roles can spawn which other roles.
75
+ * Translated into capability additions by TeamLoader (RD3).
76
+ */
77
+ spawn_rules?: Record<string, string[]>;
78
+ }
79
+
80
+ /**
81
+ * A node in the team's spawn topology.
82
+ */
83
+ export interface TopologyNode {
84
+ /** Role name (must be in manifest.roles) */
85
+ role: string;
86
+
87
+ /** Path to prompt file relative to team directory */
88
+ prompt?: string;
89
+
90
+ /** Agent configuration */
91
+ config?: TopologyNodeConfig;
92
+ }
93
+
94
+ export interface TopologyNodeConfig {
95
+ /** Model to use (e.g., "sonnet", "haiku", "opus") */
96
+ model?: string;
97
+
98
+ /** Additional key-value config passed to agent */
99
+ [key: string]: unknown;
100
+ }
101
+
102
+ // =============================================================================
103
+ // Communication
104
+ // =============================================================================
105
+
106
+ /**
107
+ * Communication topology for the team.
108
+ *
109
+ * Declares channels (signal groups), per-role subscriptions,
110
+ * emission restrictions, and routing rules.
111
+ */
112
+ export interface TeamCommunication {
113
+ /** Named signal channels */
114
+ channels?: Record<string, ChannelDefinition>;
115
+
116
+ /** Per-role subscription declarations */
117
+ subscriptions?: Record<string, ChannelSubscription[]>;
118
+
119
+ /** Per-role emission declarations (which signals a role can emit) */
120
+ emissions?: Record<string, string[]>;
121
+
122
+ /** Routing configuration */
123
+ routing?: CommunicationRouting;
124
+
125
+ /** Enforcement level for communication rules */
126
+ enforcement?: CommunicationEnforcement;
127
+ }
128
+
129
+ export type CommunicationEnforcement = "strict" | "permissive" | "audit";
130
+
131
+ /**
132
+ * A named channel grouping related signals.
133
+ */
134
+ export interface ChannelDefinition {
135
+ /** Human-readable description */
136
+ description?: string;
137
+
138
+ /** Signals in this channel */
139
+ signals: string[];
140
+ }
141
+
142
+ /**
143
+ * A role's subscription to a channel.
144
+ */
145
+ export interface ChannelSubscription {
146
+ /** Channel name (must exist in communication.channels) */
147
+ channel: string;
148
+
149
+ /** Specific signals to receive. If omitted, receives all signals in the channel */
150
+ signals?: string[];
151
+ }
152
+
153
+ /**
154
+ * Communication routing configuration.
155
+ */
156
+ export interface CommunicationRouting {
157
+ /** Status flow direction */
158
+ status?: "upstream";
159
+
160
+ /** Explicit peer connections (non-hierarchical) */
161
+ peers?: PeerConnection[];
162
+ }
163
+
164
+ /**
165
+ * A peer-to-peer connection between two roles.
166
+ */
167
+ export interface PeerConnection {
168
+ /** Source role name */
169
+ from: string;
170
+
171
+ /** Target role name */
172
+ to: string;
173
+
174
+ /** Routing mechanism */
175
+ via: "direct" | "topic" | "scope";
176
+
177
+ /** Signals allowed on this connection */
178
+ signals?: string[];
179
+ }
180
+
181
+ // =============================================================================
182
+ // macro-agent Extensions
183
+ // =============================================================================
184
+
185
+ /**
186
+ * macro-agent specific team configuration.
187
+ *
188
+ * Namespaced under `macro_agent` in team.yaml for interoperability.
189
+ */
190
+ export interface MacroAgentExtensions {
191
+ /** Task assignment configuration */
192
+ task_assignment?: TaskAssignmentConfig;
193
+
194
+ /** Integration strategy configuration */
195
+ integration?: IntegrationConfig;
196
+
197
+ /** Agent lifecycle configuration */
198
+ lifecycle?: LifecycleConfig;
199
+
200
+ /** Observability configuration */
201
+ observability?: ObservabilityConfig;
202
+ }
203
+
204
+ export interface TaskAssignmentConfig {
205
+ /** Assignment mode */
206
+ mode: "push" | "pull";
207
+
208
+ /** Pull-mode specific settings */
209
+ pull?: {
210
+ /** Seconds before idle worker self-terminates */
211
+ idle_timeout_s?: number;
212
+ /** Milliseconds between claim retries */
213
+ claim_retry_delay_ms?: number;
214
+ /** Max concurrent task claims per agent */
215
+ max_concurrent_per_agent?: number;
216
+ };
217
+ }
218
+
219
+ export interface IntegrationConfig {
220
+ /** Strategy name: 'queue' | 'trunk' | 'optimistic' | custom name */
221
+ strategy: string;
222
+
223
+ /** Strategy-specific configuration passed to strategy.initialize() */
224
+ config?: Record<string, unknown>;
225
+ }
226
+
227
+ export interface LifecycleConfig {
228
+ /** Session continuation settings */
229
+ continuations?: {
230
+ enabled: boolean;
231
+ max_history_messages?: number;
232
+ checkpoint_interval?: "round_trip" | "none";
233
+ };
234
+
235
+ /** Worker scaling settings */
236
+ scaling?: {
237
+ min_workers?: number;
238
+ max_workers?: number;
239
+ scale_on?: "task_queue_depth" | "manual";
240
+ idle_drain?: boolean;
241
+ };
242
+ }
243
+
244
+ export interface ObservabilityConfig {
245
+ /** Sliding window for metric computation (seconds) */
246
+ metrics_window_s?: number;
247
+ /** Interval between metric snapshots (seconds) */
248
+ snapshot_interval_s?: number;
249
+ }
250
+
251
+ // =============================================================================
252
+ // Team Role Definition
253
+ // =============================================================================
254
+
255
+ /**
256
+ * Role definition as declared in a team template's roles/*.yaml file.
257
+ *
258
+ * Supports both full replacement and additive/subtractive capability composition.
259
+ */
260
+ export interface TeamRoleDefinition {
261
+ /** Role name */
262
+ name: string;
263
+
264
+ /** Built-in role to extend */
265
+ extends?: string;
266
+
267
+ /** Display name for UI/logs */
268
+ display_name?: string;
269
+
270
+ /** Human-readable description */
271
+ description?: string;
272
+
273
+ /**
274
+ * Full replacement capability list.
275
+ * Mutually exclusive with add/remove.
276
+ */
277
+ capabilities?: string[];
278
+
279
+ /**
280
+ * Capabilities to add to the parent role's set.
281
+ * Only valid when `extends` is set.
282
+ */
283
+ capabilities_add?: string[];
284
+
285
+ /**
286
+ * Capabilities to remove from the parent role's set.
287
+ * Only valid when `extends` is set.
288
+ */
289
+ capabilities_remove?: string[];
290
+
291
+ /** Path to prompt file relative to team directory */
292
+ prompt?: string;
293
+
294
+ /** macro-agent specific role configuration */
295
+ macro_agent?: TeamRoleMacroAgent;
296
+ }
297
+
298
+ export interface TeamRoleMacroAgent {
299
+ /** Workspace configuration */
300
+ workspace?: {
301
+ type?: string;
302
+ branch_pattern?: string;
303
+ cleanup_on_terminate?: boolean;
304
+ };
305
+
306
+ /** Lifecycle configuration */
307
+ lifecycle?: {
308
+ type?: "ephemeral" | "persistent" | "daemon" | "event-driven";
309
+ cascade_terminate?: boolean;
310
+ self_cleanup?: boolean;
311
+ task_bound?: boolean;
312
+ parent_bound?: boolean;
313
+ max_duration_ms?: number;
314
+ };
315
+ }
316
+
317
+ // =============================================================================
318
+ // Resolved Types
319
+ // =============================================================================
320
+
321
+ /**
322
+ * A team role with inheritance resolved and capabilities computed.
323
+ */
324
+ export interface ResolvedTeamRole {
325
+ /** Role name */
326
+ name: string;
327
+
328
+ /** The built-in role this extends */
329
+ baseRole: string;
330
+
331
+ /** Final computed capability set */
332
+ capabilities: Capability[];
333
+
334
+ /** Loaded prompt content (if prompt file specified) */
335
+ prompt?: string;
336
+
337
+ /** Full RoleDefinition for RoleRegistry registration */
338
+ roleDefinition: RoleDefinition;
339
+ }
340
+
341
+ // =============================================================================
342
+ // MCP Server Config
343
+ // =============================================================================
344
+
345
+ /**
346
+ * MCP server entry from tools/mcp-servers.json.
347
+ * Follows Claude Code's native format.
348
+ */
349
+ export interface McpServerEntry {
350
+ name: string;
351
+ command: string;
352
+ args?: string[];
353
+ env?: Record<string, string>;
354
+ }
355
+
356
+ // =============================================================================
357
+ // Team Loading Errors
358
+ // =============================================================================
359
+
360
+ export type TeamLoadErrorCode =
361
+ | "MANIFEST_NOT_FOUND"
362
+ | "INVALID_MANIFEST"
363
+ | "ROLE_NOT_FOUND"
364
+ | "PROMPT_NOT_FOUND"
365
+ | "INVALID_COMMUNICATION"
366
+ | "INVALID_ROLE";
367
+
368
+ export class TeamLoadError extends Error {
369
+ constructor(
370
+ message: string,
371
+ public readonly code: TeamLoadErrorCode,
372
+ public readonly teamName?: string
373
+ ) {
374
+ super(message);
375
+ this.name = "TeamLoadError";
376
+ }
377
+ }
@@ -29,7 +29,7 @@ import {
29
29
  type Checkpoint,
30
30
  workerTasks,
31
31
  diffStacks,
32
- } from 'dataplane';
32
+ } from 'git-cascade';
33
33
  import type { DataplaneConfig } from './config.js';
34
34
  import { DEFAULT_DATAPLANE_CONFIG } from './config.js';
35
35
 
@@ -107,4 +107,4 @@ export type {
107
107
  ListTasksOptions,
108
108
  CleanupWorkerBranchesOptions,
109
109
  CleanupResult,
110
- } from 'dataplane';
110
+ } from 'git-cascade';
@@ -0,0 +1,18 @@
1
+ export type {
2
+ IntegrationStrategy,
3
+ IntegrationStrategyFactory,
4
+ LandRequest,
5
+ LandResult,
6
+ LandResultStatus,
7
+ QueueStrategyConfig,
8
+ TrunkStrategyConfig,
9
+ OptimisticStrategyConfig,
10
+ } from "./types.js";
11
+ export { QueueIntegrationStrategy } from "./queue.js";
12
+ export { TrunkIntegrationStrategy } from "./trunk.js";
13
+ export { OptimisticIntegrationStrategy } from "./optimistic.js";
14
+ export {
15
+ IntegrationStrategyRegistry,
16
+ createDefaultStrategyRegistry,
17
+ defaultStrategyRegistry,
18
+ } from "./registry.js";
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Optimistic Integration Strategy
3
+ *
4
+ * Push immediately and emit a validation event. Does NOT run build/test —
5
+ * validation is the judge agent's responsibility (RD5).
6
+ *
7
+ * Uses the same rebase-and-retry logic as trunk for handling push conflicts.
8
+ *
9
+ * @module workspace/strategies/optimistic
10
+ */
11
+
12
+ import { execSync } from "child_process";
13
+ import type {
14
+ IntegrationStrategy,
15
+ LandRequest,
16
+ LandResult,
17
+ OptimisticStrategyConfig,
18
+ } from "./types.js";
19
+ import type { EventStore } from "../../store/event-store.js";
20
+
21
+ export class OptimisticIntegrationStrategy implements IntegrationStrategy {
22
+ readonly name = "optimistic";
23
+ private maxRetries: number;
24
+ private eventStore?: EventStore;
25
+
26
+ constructor(config?: Record<string, unknown>) {
27
+ const typedConfig = config as OptimisticStrategyConfig | undefined;
28
+ this.maxRetries = typedConfig?.maxRetries ?? 3;
29
+ }
30
+
31
+ /**
32
+ * Set the EventStore for emitting validation events.
33
+ * Called after construction since EventStore may not be available at strategy creation time.
34
+ */
35
+ setEventStore(store: EventStore): void {
36
+ this.eventStore = store;
37
+ }
38
+
39
+ async land(request: LandRequest): Promise<LandResult> {
40
+ const { workspacePath, targetBranch } = request;
41
+ let retryCount = 0;
42
+
43
+ while (retryCount <= this.maxRetries) {
44
+ try {
45
+ // Fetch latest
46
+ this.git(workspacePath, `fetch origin ${targetBranch}`);
47
+
48
+ // Rebase onto latest
49
+ try {
50
+ this.git(workspacePath, `rebase origin/${targetBranch}`);
51
+ } catch {
52
+ try {
53
+ this.git(workspacePath, "rebase --abort");
54
+ } catch {
55
+ /* already clean */
56
+ }
57
+
58
+ if (retryCount >= this.maxRetries) {
59
+ return {
60
+ status: "conflict",
61
+ retryCount,
62
+ error: `Rebase conflict after ${retryCount + 1} attempts`,
63
+ };
64
+ }
65
+ retryCount++;
66
+ continue;
67
+ }
68
+
69
+ // Push optimistically
70
+ try {
71
+ this.git(workspacePath, `push origin HEAD:${targetBranch}`);
72
+ } catch {
73
+ if (retryCount >= this.maxRetries) {
74
+ return {
75
+ status: "conflict",
76
+ retryCount,
77
+ error: `Push rejected after ${retryCount + 1} attempts`,
78
+ };
79
+ }
80
+ retryCount++;
81
+ continue;
82
+ }
83
+
84
+ const commitHash = this.git(workspacePath, "rev-parse HEAD").trim();
85
+
86
+ // Emit validation:requested event (RD5 — judge handles validation)
87
+ if (this.eventStore) {
88
+ try {
89
+ this.eventStore.emit({
90
+ type: "status",
91
+ source: { agent_id: request.agentId },
92
+ payload: {
93
+ status_type: "checkpoint",
94
+ summary: `Validation requested for ${commitHash.slice(0, 8)}`,
95
+ validation_requested: true,
96
+ commitHash,
97
+ sourceBranch: request.sourceBranch,
98
+ targetBranch,
99
+ taskId: request.taskId,
100
+ agentId: request.agentId,
101
+ },
102
+ });
103
+ } catch {
104
+ // Never fail land() due to event emission failure
105
+ }
106
+ }
107
+
108
+ return {
109
+ status: "landed",
110
+ commitHash,
111
+ retryCount,
112
+ };
113
+ } catch (error) {
114
+ return {
115
+ status: "failed",
116
+ retryCount,
117
+ error: `Unexpected error: ${error instanceof Error ? error.message : String(error)}`,
118
+ };
119
+ }
120
+ }
121
+
122
+ return {
123
+ status: "failed",
124
+ retryCount,
125
+ error: "Exceeded maximum retries",
126
+ };
127
+ }
128
+
129
+ private git(cwd: string, args: string): string {
130
+ return execSync(`git ${args}`, {
131
+ cwd,
132
+ encoding: "utf-8",
133
+ timeout: 30000,
134
+ });
135
+ }
136
+ }
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Queue Integration Strategy
3
+ *
4
+ * Wraps the existing MergeQueueInterface — submits merge requests to
5
+ * the queue for sequential processing by an integrator agent.
6
+ *
7
+ * This produces identical behavior to the current worker done() handler's
8
+ * merge queue path.
9
+ *
10
+ * @module workspace/strategies/queue
11
+ */
12
+
13
+ import type {
14
+ IntegrationStrategy,
15
+ LandRequest,
16
+ LandResult,
17
+ QueueStrategyConfig,
18
+ } from "./types.js";
19
+ import type { MergeQueueInterface } from "../merge-queue/types.js";
20
+
21
+ export class QueueIntegrationStrategy implements IntegrationStrategy {
22
+ readonly name = "queue";
23
+ private mergeQueue?: MergeQueueInterface;
24
+ private defaultPriority: number;
25
+
26
+ constructor(config?: Record<string, unknown>) {
27
+ const typedConfig = config as QueueStrategyConfig | undefined;
28
+ this.defaultPriority = typedConfig?.defaultPriority ?? 100;
29
+ }
30
+
31
+ /**
32
+ * Set the merge queue instance.
33
+ * Called after construction since merge queue may not be available at strategy creation time.
34
+ */
35
+ setMergeQueue(queue: MergeQueueInterface): void {
36
+ this.mergeQueue = queue;
37
+ }
38
+
39
+ async land(request: LandRequest): Promise<LandResult> {
40
+ if (!this.mergeQueue) {
41
+ return {
42
+ status: "failed",
43
+ error: "Merge queue not configured",
44
+ };
45
+ }
46
+
47
+ if (!request.streamId) {
48
+ return {
49
+ status: "failed",
50
+ error: "streamId required for queue strategy",
51
+ };
52
+ }
53
+
54
+ if (!request.taskId) {
55
+ return {
56
+ status: "failed",
57
+ error: "taskId required for queue strategy",
58
+ };
59
+ }
60
+
61
+ try {
62
+ const mrId = this.mergeQueue.submit({
63
+ streamId: request.streamId,
64
+ taskId: request.taskId,
65
+ workerBranch: request.sourceBranch,
66
+ workerAgentId: request.agentId,
67
+ priority: this.defaultPriority,
68
+ });
69
+
70
+ return {
71
+ status: "landed",
72
+ mergeRequestId: mrId,
73
+ };
74
+ } catch (error) {
75
+ return {
76
+ status: "failed",
77
+ error: `Failed to submit to merge queue: ${error instanceof Error ? error.message : String(error)}`,
78
+ };
79
+ }
80
+ }
81
+ }