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
@@ -235,11 +235,29 @@ export class ACPOverMAPHandler {
235
235
  throw new Error("Must call initialize before loadSession");
236
236
  }
237
237
 
238
- const { sessionId, cwd } = (params as { sessionId: string; cwd?: string }) ?? {};
239
- if (!sessionId) {
238
+ const { sessionId: rawSessionId, cwd, _meta } = (params as {
239
+ sessionId: string;
240
+ cwd?: string;
241
+ _meta?: Record<string, unknown>;
242
+ }) ?? {};
243
+ if (!rawSessionId) {
240
244
  throw new Error("sessionId required");
241
245
  }
242
246
 
247
+ // Extension: If _meta.agentId provided, look up session from agent record
248
+ let sessionId = rawSessionId;
249
+ const metaAgentId = _meta?.agentId as string | undefined;
250
+ if (metaAgentId) {
251
+ const agent = this.eventStore.getAgent(metaAgentId as AgentId);
252
+ if (!agent) {
253
+ throw new Error(`Agent not found: ${metaAgentId}`);
254
+ }
255
+ sessionId = agent.session_id;
256
+ console.error(
257
+ `[ACP-over-MAP] loadSession: Resolved agentId ${metaAgentId} to session ${sessionId}`
258
+ );
259
+ }
260
+
243
261
  const workingDir = cwd ?? this.defaultCwd;
244
262
 
245
263
  // Try to find an existing head manager with this session ID
@@ -484,6 +502,31 @@ export class ACPOverMAPHandler {
484
502
  return { task };
485
503
  }
486
504
 
505
+ case "_macro/resume": {
506
+ const { agentId } = methodParams as { agentId: string };
507
+ if (!agentId) {
508
+ throw new Error("agentId is required");
509
+ }
510
+
511
+ const agent = this.eventStore.getAgent(agentId as AgentId);
512
+ if (!agent) {
513
+ throw new Error(`Agent not found: ${agentId}`);
514
+ }
515
+
516
+ if (agent.state !== "stopped" && agent.state !== "failed") {
517
+ throw new Error(
518
+ `Agent ${agentId} is ${agent.state} — only stopped or failed agents can be resumed`
519
+ );
520
+ }
521
+
522
+ const spawned = await this.agentManager.resume(agentId as AgentId);
523
+ return {
524
+ success: true,
525
+ agentId: spawned.id,
526
+ sessionId: spawned.session_id,
527
+ };
528
+ }
529
+
487
530
  default:
488
531
  throw new Error(`Unknown extension method: ${method}`);
489
532
  }
@@ -57,6 +57,7 @@ const EVENT_TYPE_MAP: Record<EventType, MAPEventType | MAPEventType[] | null> =
57
57
  conversation: null, // Mail: handled by mail module
58
58
  turn: null, // Mail: handled by mail module
59
59
  thread: null, // Mail: handled by mail module
60
+ session: null, // Internal session tracking
60
61
  };
61
62
 
62
63
  /**
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Agent Detection Extension Methods
3
+ *
4
+ * Exposes CLI agent auto-detection to external MAP clients:
5
+ * - `_macro/agents/available` — List detected CLI agents (cached)
6
+ * - `_macro/agents/refresh` — Force a fresh detection scan
7
+ *
8
+ * Both methods are read-only queries gated by `canQuery`.
9
+ */
10
+
11
+ import type { MAPAdapter, ExtensionHandler, ExtensionContext } from "../interface.js";
12
+ import type {
13
+ DetectedAgent,
14
+ DetectionResult,
15
+ } from "../../../agent-detection/types.js";
16
+
17
+ // =============================================================================
18
+ // Request/Response Types
19
+ // =============================================================================
20
+
21
+ interface AvailableParams {
22
+ /** Include agents that are not installed (default: false) */
23
+ includeNotInstalled?: boolean;
24
+ }
25
+
26
+ interface AvailableResult {
27
+ /** Detected agents */
28
+ agents: PublicDetectedAgent[];
29
+ /** Number of agent definitions scanned */
30
+ scanned: number;
31
+ /** Detection duration in milliseconds */
32
+ durationMs: number;
33
+ /** Whether results came from cache */
34
+ cached: boolean;
35
+ }
36
+
37
+ interface RefreshResult {
38
+ /** Detected agents (fresh scan) */
39
+ agents: PublicDetectedAgent[];
40
+ /** Number of agent definitions scanned */
41
+ scanned: number;
42
+ /** Detection duration in milliseconds */
43
+ durationMs: number;
44
+ }
45
+
46
+ /**
47
+ * Public agent info returned to MAP clients.
48
+ * Strips internal details (binary path) for security.
49
+ */
50
+ interface PublicDetectedAgent {
51
+ /** Agent definition ID (e.g., "claude-code") */
52
+ id: string;
53
+ /** Human-readable name */
54
+ name: string;
55
+ /** Whether the binary was found on PATH */
56
+ installed: boolean;
57
+ /** Parsed version string (e.g., "1.2.3") */
58
+ version?: string;
59
+ /** Provider/vendor name */
60
+ vendor: string;
61
+ /** Short description */
62
+ description: string;
63
+ }
64
+
65
+ // =============================================================================
66
+ // Extension Services
67
+ // =============================================================================
68
+
69
+ /**
70
+ * Services required for agent detection extensions.
71
+ *
72
+ * Uses narrow method signatures rather than exposing the full AgentDetector
73
+ * to keep the contract minimal and testable.
74
+ */
75
+ export interface AgentDetectionExtensionServices {
76
+ /**
77
+ * Get available agents, returning cached results when possible.
78
+ */
79
+ getAvailableAgents: (options?: {
80
+ refresh?: boolean;
81
+ includeNotInstalled?: boolean;
82
+ }) => Promise<DetectionResult>;
83
+
84
+ /**
85
+ * Whether a detection scan is currently running.
86
+ */
87
+ isDetecting: () => boolean;
88
+
89
+ /**
90
+ * Get cached result without triggering a new scan.
91
+ * Returns null if no results are available yet.
92
+ */
93
+ getCachedResult: () => DetectionResult | null;
94
+ }
95
+
96
+ // =============================================================================
97
+ // Helpers
98
+ // =============================================================================
99
+
100
+ /**
101
+ * Convert internal DetectedAgent to public format.
102
+ * Strips filesystem paths for security.
103
+ */
104
+ function toPublicAgent(agent: DetectedAgent): PublicDetectedAgent {
105
+ return {
106
+ id: agent.id,
107
+ name: agent.name,
108
+ installed: agent.installed,
109
+ version: agent.version,
110
+ vendor: agent.definition.vendor,
111
+ description: agent.definition.description,
112
+ };
113
+ }
114
+
115
+ // =============================================================================
116
+ // Handler Implementations
117
+ // =============================================================================
118
+
119
+ function createAvailableHandler(
120
+ services: AgentDetectionExtensionServices,
121
+ ): ExtensionHandler {
122
+ return async (_context: ExtensionContext, params: unknown) => {
123
+ const { includeNotInstalled = false } = (params ?? {}) as AvailableParams;
124
+
125
+ // Try cached result first
126
+ const cached = services.getCachedResult();
127
+ if (cached) {
128
+ const agents = includeNotInstalled
129
+ ? cached.agents
130
+ : cached.agents.filter((a) => a.installed);
131
+
132
+ return {
133
+ agents: agents.map(toPublicAgent),
134
+ scanned: cached.scanned,
135
+ durationMs: cached.durationMs,
136
+ cached: true,
137
+ } satisfies AvailableResult;
138
+ }
139
+
140
+ // No cache — run detection
141
+ const result = await services.getAvailableAgents({ includeNotInstalled });
142
+
143
+ return {
144
+ agents: result.agents.map(toPublicAgent),
145
+ scanned: result.scanned,
146
+ durationMs: result.durationMs,
147
+ cached: false,
148
+ } satisfies AvailableResult;
149
+ };
150
+ }
151
+
152
+ function createRefreshHandler(
153
+ services: AgentDetectionExtensionServices,
154
+ ): ExtensionHandler {
155
+ return async (_context: ExtensionContext, _params: unknown) => {
156
+ const result = await services.getAvailableAgents({
157
+ refresh: true,
158
+ includeNotInstalled: true,
159
+ });
160
+
161
+ return {
162
+ agents: result.agents.map(toPublicAgent),
163
+ scanned: result.scanned,
164
+ durationMs: result.durationMs,
165
+ } satisfies RefreshResult;
166
+ };
167
+ }
168
+
169
+ // =============================================================================
170
+ // Registration
171
+ // =============================================================================
172
+
173
+ /**
174
+ * Register agent detection extension methods with the MAPAdapter.
175
+ *
176
+ * @param adapter - MAPAdapter instance
177
+ * @param services - Agent detection services
178
+ */
179
+ export function registerAgentDetectionExtensions(
180
+ adapter: MAPAdapter,
181
+ services: AgentDetectionExtensionServices,
182
+ ): void {
183
+ adapter.registerExtension(
184
+ "_macro/agents/available",
185
+ createAvailableHandler(services),
186
+ );
187
+ adapter.registerExtension(
188
+ "_macro/agents/refresh",
189
+ createRefreshHandler(services),
190
+ );
191
+ }
192
+
193
+ /**
194
+ * Unregister agent detection extension methods.
195
+ *
196
+ * @param adapter - MAPAdapter instance
197
+ */
198
+ export function unregisterAgentDetectionExtensions(adapter: MAPAdapter): void {
199
+ adapter.unregisterExtension("_macro/agents/available");
200
+ adapter.unregisterExtension("_macro/agents/refresh");
201
+ }
@@ -31,13 +31,40 @@ export {
31
31
  type InternalWorkspace,
32
32
  } from "./workspace.js";
33
33
 
34
+ // Workspace file search extension
35
+ export {
36
+ registerWorkspaceFileExtensions,
37
+ unregisterWorkspaceFileExtensions,
38
+ type WorkspaceFileServices,
39
+ } from "./workspace-files.js";
40
+
41
+ // Resume extension
42
+ export {
43
+ registerResumeExtension,
44
+ unregisterResumeExtension,
45
+ type ResumeExtensionServices,
46
+ } from "./resume.js";
47
+
48
+ // Agent detection extensions
49
+ export {
50
+ registerAgentDetectionExtensions,
51
+ unregisterAgentDetectionExtensions,
52
+ type AgentDetectionExtensionServices,
53
+ } from "./agent-detection.js";
54
+
34
55
  import type { MAPAdapter } from "../interface.js";
35
56
  import type { TaskExtensionServices } from "./task.js";
36
57
  import type { WakeExtensionServices } from "./wake.js";
37
58
  import type { WorkspaceExtensionServices } from "./workspace.js";
59
+ import type { WorkspaceFileServices } from "./workspace-files.js";
60
+ import type { ResumeExtensionServices } from "./resume.js";
61
+ import type { AgentDetectionExtensionServices } from "./agent-detection.js";
38
62
  import { registerTaskExtensions } from "./task.js";
39
63
  import { registerWakeExtension } from "./wake.js";
40
64
  import { registerWorkspaceExtension } from "./workspace.js";
65
+ import { registerWorkspaceFileExtensions } from "./workspace-files.js";
66
+ import { registerResumeExtension } from "./resume.js";
67
+ import { registerAgentDetectionExtensions } from "./agent-detection.js";
41
68
 
42
69
  // =============================================================================
43
70
  // Combined Registration
@@ -50,6 +77,9 @@ export interface MacroExtensionServices {
50
77
  task?: TaskExtensionServices;
51
78
  wake?: WakeExtensionServices;
52
79
  workspace?: WorkspaceExtensionServices;
80
+ workspaceFiles?: WorkspaceFileServices;
81
+ resume?: ResumeExtensionServices;
82
+ agentDetection?: AgentDetectionExtensionServices;
53
83
  }
54
84
 
55
85
  /**
@@ -98,6 +128,18 @@ export function registerMacroExtensions(
98
128
  if (services.workspace) {
99
129
  registerWorkspaceExtension(adapter, services.workspace);
100
130
  }
131
+
132
+ if (services.workspaceFiles) {
133
+ registerWorkspaceFileExtensions(adapter, services.workspaceFiles);
134
+ }
135
+
136
+ if (services.resume) {
137
+ registerResumeExtension(adapter, services.resume);
138
+ }
139
+
140
+ if (services.agentDetection) {
141
+ registerAgentDetectionExtensions(adapter, services.agentDetection);
142
+ }
101
143
  }
102
144
 
103
145
  /**
@@ -116,6 +158,12 @@ export function unregisterMacroExtensions(adapter: MAPAdapter): void {
116
158
  adapter.unregisterExtension("_macro/task/send");
117
159
  adapter.unregisterExtension("_macro/wake");
118
160
  adapter.unregisterExtension("_macro/workspace/info");
161
+ adapter.unregisterExtension("_macro/workspace/files/search");
162
+ adapter.unregisterExtension("_macro/workspace/files/list");
163
+ adapter.unregisterExtension("_macro/workspace/files/read");
164
+ adapter.unregisterExtension("_macro/resume");
165
+ adapter.unregisterExtension("_macro/agents/available");
166
+ adapter.unregisterExtension("_macro/agents/refresh");
119
167
  } catch {
120
168
  // Ignore errors from unregistering non-existent extensions
121
169
  }
@@ -140,6 +188,15 @@ export const MACRO_EXTENSION_METHODS = [
140
188
  "_macro/wake",
141
189
  // Workspace extension
142
190
  "_macro/workspace/info",
191
+ // Workspace file search extensions
192
+ "_macro/workspace/files/search",
193
+ "_macro/workspace/files/list",
194
+ "_macro/workspace/files/read",
195
+ // Resume extension
196
+ "_macro/resume",
197
+ // Agent detection extensions
198
+ "_macro/agents/available",
199
+ "_macro/agents/refresh",
143
200
  ] as const;
144
201
 
145
202
  /**
@@ -154,4 +211,10 @@ export const EXTENSION_CAPABILITIES: Record<string, string> = {
154
211
  "_macro/task/send": "canMessage",
155
212
  "_macro/wake": "canMessage", // Wake requires messaging capability
156
213
  "_macro/workspace/info": "canQuery",
214
+ "_macro/workspace/files/search": "canQuery",
215
+ "_macro/workspace/files/list": "canQuery",
216
+ "_macro/workspace/files/read": "canQuery",
217
+ "_macro/resume": "canManageLifecycle",
218
+ "_macro/agents/available": "canQuery",
219
+ "_macro/agents/refresh": "canQuery",
157
220
  };
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Resume Extension Method (_macro/resume)
3
+ *
4
+ * Resumes a stopped agent by spawning a new process and loading
5
+ * the existing ACP session. This is a lifecycle management operation
6
+ * independent from session loading.
7
+ *
8
+ * Unlike _macro/wake (which handles sleeping/idle agents), this extension
9
+ * handles agents whose process has terminated (state: "stopped" or "failed").
10
+ */
11
+
12
+ import type { MAPAdapter, ExtensionHandler, ExtensionContext } from "../interface.js";
13
+ import type { AgentId } from "../../../store/types/index.js";
14
+ import { RPCError } from "../rpc-handler.js";
15
+
16
+ // =============================================================================
17
+ // Request/Response Types
18
+ // =============================================================================
19
+
20
+ interface ResumeParams {
21
+ /** Agent ID to resume */
22
+ agentId: string;
23
+ }
24
+
25
+ interface ResumeResult {
26
+ /** Whether the resume was successful */
27
+ success: boolean;
28
+ /** The resumed agent's ID */
29
+ agentId: string;
30
+ /** The agent's ACP session ID */
31
+ sessionId?: string;
32
+ }
33
+
34
+ // =============================================================================
35
+ // Extension Services
36
+ // =============================================================================
37
+
38
+ /**
39
+ * Services required for resume extension
40
+ */
41
+ export interface ResumeExtensionServices {
42
+ /**
43
+ * Get agent by ID. Returns agent record or undefined if not found.
44
+ */
45
+ getAgent: (agentId: AgentId) => { id: AgentId; state: string; session_id?: string } | undefined;
46
+
47
+ /**
48
+ * Resume a stopped agent — spawns a new process and loads the existing session.
49
+ * Returns the spawned agent record.
50
+ */
51
+ resume: (agentId: AgentId) => Promise<{ id: AgentId; session_id: string }>;
52
+ }
53
+
54
+ // =============================================================================
55
+ // Handler Implementation
56
+ // =============================================================================
57
+
58
+ function createResumeHandler(services: ResumeExtensionServices): ExtensionHandler {
59
+ return async (_context: ExtensionContext, params: unknown) => {
60
+ const { agentId } = (params ?? {}) as ResumeParams;
61
+
62
+ if (!agentId) {
63
+ throw RPCError.invalidParams("agentId is required");
64
+ }
65
+
66
+ // Check agent exists
67
+ const agent = services.getAgent(agentId as AgentId);
68
+ if (!agent) {
69
+ throw RPCError.notFound("agent", agentId);
70
+ }
71
+
72
+ // Only resume stopped/failed agents
73
+ if (agent.state !== "stopped" && agent.state !== "failed") {
74
+ throw RPCError.invalidParams(
75
+ `Agent ${agentId} is ${agent.state} — only stopped or failed agents can be resumed`
76
+ );
77
+ }
78
+
79
+ // Resume the agent
80
+ const spawned = await services.resume(agentId as AgentId);
81
+
82
+ return {
83
+ success: true,
84
+ agentId: spawned.id,
85
+ sessionId: spawned.session_id,
86
+ } satisfies ResumeResult;
87
+ };
88
+ }
89
+
90
+ // =============================================================================
91
+ // Registration
92
+ // =============================================================================
93
+
94
+ /**
95
+ * Register resume extension method with the MAPAdapter.
96
+ *
97
+ * @param adapter - MAPAdapter instance
98
+ * @param services - Resume extension services
99
+ */
100
+ export function registerResumeExtension(
101
+ adapter: MAPAdapter,
102
+ services: ResumeExtensionServices
103
+ ): void {
104
+ adapter.registerExtension("_macro/resume", createResumeHandler(services));
105
+ }
106
+
107
+ /**
108
+ * Unregister resume extension method.
109
+ *
110
+ * @param adapter - MAPAdapter instance
111
+ */
112
+ export function unregisterResumeExtension(adapter: MAPAdapter): void {
113
+ adapter.unregisterExtension("_macro/resume");
114
+ }