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
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2025
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,113 +0,0 @@
1
- # Multi-Agent Protocol (MAP)
2
-
3
- A JSON-RPC based protocol for observing, coordinating, and routing messages within multi-agent AI systems.
4
-
5
- ## Overview
6
-
7
- Unlike protocols designed for single-agent interaction (ACP) or peer-to-peer agent delegation (A2A), MAP provides a **window into** a multi-agent system with visibility into its internal structure, agent relationships, and message flows.
8
-
9
- MAP provides a standardized way for:
10
- - **Clients** to observe and interact with agent systems (with configurable visibility)
11
- - **Agents** to communicate, form hierarchies, and join scopes
12
- - **Systems** to federate and route messages across boundaries
13
-
14
- ### Protocol Landscape
15
-
16
- | Protocol | Relationship | Visibility | Primary Use |
17
- |----------|--------------|------------|-------------|
18
- | MCP | Agent → Tool | N/A | Tool invocation |
19
- | ACP | Client → Agent | Opaque | Single-agent sessions |
20
- | A2A | Agent → Agent (peer) | Opaque | Cross-org delegation |
21
- | **MAP** | Client → System | Transparent | Internal orchestration |
22
-
23
- ## Packages
24
-
25
- | Package | Description |
26
- |---------|-------------|
27
- | [@multi-agent-protocol/sdk](./ts-sdk) | TypeScript SDK for MAP |
28
-
29
- ## Quick Start
30
-
31
- ```bash
32
- npm install @multi-agent-protocol/sdk
33
- ```
34
-
35
- ```typescript
36
- import { ClientConnection, createStreamPair } from '@multi-agent-protocol/sdk';
37
-
38
- // Connect to a MAP server
39
- const client = new ClientConnection(stream, { name: 'My Client' });
40
- await client.connect();
41
-
42
- // Subscribe to events
43
- const subscription = await client.subscribe({
44
- eventTypes: ['agent.registered', 'agent.state.changed'],
45
- });
46
-
47
- for await (const event of subscription) {
48
- console.log(event.type, event.data);
49
- }
50
- ```
51
-
52
- ## Features
53
-
54
- - **Real-time streaming** - Subscribe to events with backpressure support
55
- - **Auto-reconnection** - Exponential backoff with subscription restoration
56
- - **Permission system** - 4-layer access control (system, participant, scope, agent)
57
- - **Federation** - Connect multiple MAP systems with envelope-based routing
58
- - **Causal ordering** - Events released in dependency order
59
-
60
- ## Documentation
61
-
62
- ### Schema
63
-
64
- The protocol schema is defined in [`schema/`](./schema/):
65
- - [`schema.json`](./schema/schema.json) - Complete JSON Schema for all MAP message types
66
- - [`meta.json`](./schema/meta.json) - Method metadata, tiers, and error codes
67
-
68
- ## Repository Structure
69
-
70
- ```
71
- multi-agent-protocol/
72
- ├── docs/ # Design specifications
73
- ├── schema/ # JSON Schema and metadata
74
- │ ├── schema.json # Protocol message schemas
75
- │ └── meta.json # Method tiers and error codes
76
- └── ts-sdk/ # TypeScript SDK implementation
77
- ├── src/ # Source code
78
- └── docs/ # SDK-specific docs (gap analysis)
79
- ```
80
-
81
- ## Development
82
-
83
- ```bash
84
- # Install dependencies
85
- npm install
86
-
87
- # Build SDK
88
- npm run build -w ts-sdk
89
-
90
- # Run tests
91
- npm test -w ts-sdk
92
-
93
- # Type check
94
- npm run typecheck -w ts-sdk
95
- ```
96
-
97
- ## Protocol Methods
98
-
99
- The protocol defines 27 methods across three tiers:
100
-
101
- **Core (Required):** `map/connect`, `map/disconnect`, `map/send`, `map/subscribe`, `map/unsubscribe`, `map/agents/list`, `map/agents/get`
102
-
103
- **Structure (Recommended):** Agent lifecycle (`register`, `spawn`, `unregister`, `update`, `stop`, `suspend`, `resume`), scope management (`scopes/create`, `join`, `leave`), and structure queries
104
-
105
- **Extensions (Optional):** Federation (`federation/connect`, `federation/route`), session management, and steering (`map/inject`)
106
-
107
- ## License
108
-
109
- MIT
110
-
111
- ## Authors
112
-
113
- Created and maintened by the [sudocode](https://github.com/sudocode-ai) team.
@@ -1,496 +0,0 @@
1
- # Multi-Agent Protocol (MAP) Design Specification
2
-
3
- ## Overview
4
-
5
- MAP (Multi-Agent Protocol) is a communication protocol for **observing, coordinating, and routing messages within multi-agent AI systems**. Unlike protocols designed for single-agent interaction (ACP) or peer-to-peer agent delegation (A2A), MAP provides a **window into** a multi-agent system with visibility into its internal structure, agent relationships, and message flows.
6
-
7
- ### Design Philosophy
8
-
9
- **Primary Abstraction**: The agent and its relationships to other agents, followed by the messages that flow between them.
10
-
11
- **Core Principle**: MAP treats the multi-agent system as a **transparent, observable entity** rather than an opaque black box. Clients connecting via MAP can see (with appropriate permissions) the internal structure and activity of the system.
12
-
13
- **Key Design Principles**:
14
- 1. **Topology is configuration, not protocol** - The same protocol supports hierarchical orchestration (like Claude Code's Task agents) and peer collaboration (like macro-agent workers)
15
- 2. **Unified messaging with metadata** - One message type with metadata that specializes behavior (task delegation, peer messaging, broadcast)
16
- 3. **Visibility is first-class** - Agents and scopes have explicit visibility settings; "parent-only" visibility enables hidden sub-agents
17
- 4. **Lifecycle is descriptive, not prescriptive** - Protocol records lifecycle metadata; implementations decide how to enforce it
18
- 5. **Extensibility at every layer** - States, lifecycle patterns, visibility levels, and message metadata are all extensible
19
- 6. **Unified participant model** - Agents and clients speak the same protocol; difference is in capabilities and visibility, not in the wire format
20
-
21
- ### What MAP Is NOT
22
-
23
- - **Not ACP**: ACP is client ↔ single agent. MAP is client ↔ multi-agent system.
24
- - **Not A2A**: A2A is peer agent ↔ peer agent (opaque). MAP is for internal systems with visibility.
25
- - **Not a replacement**: MAP complements ACP/A2A. Agents can use ACP for client interaction, A2A for external peers, and MAP for internal coordination.
26
-
27
- ### Reference Implementation: Claude Code as Multi-Agent System
28
-
29
- Claude Code demonstrates the "orchestration pattern" - a multi-agent system where:
30
- - User interacts with one main agent
31
- - Sub-agents (Task tool) are spawned for specific work
32
- - Sub-agents are invisible to the user
33
- - Communication is hierarchical (parent ↔ child)
34
- - Agents are task-scoped (ephemeral)
35
-
36
- MAP should support this pattern as naturally as it supports the full-visibility "collaboration pattern" of macro-agent.
37
-
38
- ---
39
-
40
- ## Protocol Landscape & Relationships
41
-
42
- ```
43
- ┌─────────────────────────────────────────────────────────────────────────────┐
44
- │ Agent Protocol Ecosystem │
45
- ├─────────────────────────────────────────────────────────────────────────────┤
46
- │ │
47
- │ Protocol Relationship Visibility Primary Use │
48
- │ ──────── ──────────── ────────── ─────────── │
49
- │ MCP Agent → Tool N/A Tool invocation │
50
- │ ACP Client → Agent Opaque Single-agent sessions │
51
- │ A2A Agent → Agent (peer) Opaque Cross-org delegation │
52
- │ MAP Client → System Transparent Internal orchestration │
53
- │ Agent → Agent (internal) │
54
- │ │
55
- └─────────────────────────────────────────────────────────────────────────────┘
56
-
57
- Human/Client
58
-
59
- ┌──────────────┼──────────────┐
60
- │ │ │
61
- ACP MAP (direct)
62
- │ │ │
63
- ▼ ▼ ▼
64
- ┌─────────┐ ┌───────────────────────────┐
65
- │ Single │ │ Multi-Agent System │
66
- │ Agent │ │ ┌─────┐ ┌─────┐ │
67
- └─────────┘ │ │Agent│◄─MAP─►│Agent│ │
68
- │ └──┬──┘ └──┬──┘ │
69
- │ │ MAP │ │
70
- │ └──────┬──────┘ │
71
- │ │ │
72
- │ ┌─────▼─────┐ │
73
- │ │ Agent │ │──── A2A ────► External
74
- │ └───────────┘ │ Peers
75
- └───────────────────────────┘
76
- ```
77
-
78
- ### Integration Patterns
79
-
80
- **Pattern 1: MAP + ACP (Hybrid Client)**
81
- ```
82
- Client uses ACP for single-agent focus, MAP for system awareness.
83
- The MAP SDK can convert MAP streams into ACP-compatible sessions.
84
- ```
85
-
86
- **Pattern 2: MAP + A2A (Federated Systems)**
87
- ```
88
- Internal coordination via MAP.
89
- External peer communication via A2A.
90
- Individual agents can participate in both.
91
- ```
92
-
93
- **Pattern 3: MAP-to-MAP (System Federation)**
94
- ```
95
- Two MAP systems can communicate via their exposed message channels.
96
- Each system remains internally transparent, externally opaque.
97
- ```
98
-
99
- ---
100
-
101
- ## Unified Participant Model
102
-
103
- A core design principle of MAP is that **agents and clients speak the same protocol**. The difference is not in the wire format, but in:
104
- - **Capabilities**: What actions they can perform
105
- - **Visibility**: What they can see
106
- - **Transport**: How they connect
107
-
108
- This enables:
109
- - Consistent semantics across all participants
110
- - Federation as a natural extension (remote agents are just participants)
111
- - Hierarchical composition (agents can be servers to their children)
112
- - Transport optimization without protocol changes
113
-
114
- ### Participants
115
-
116
- ```typescript
117
- // PARTICIPANT: The base abstraction for all MAP entities
118
- // Both agents and clients are participants in the protocol
119
- interface MAPParticipant {
120
- id: string;
121
- type: "agent" | "client" | "system" | "gateway";
122
-
123
- // What this participant can see (determined by role, scope, grants)
124
- visibility: MAPParticipantVisibility;
125
-
126
- // What this participant can do
127
- capabilities: MAPParticipantCapabilities;
128
-
129
- // How this participant is connected
130
- transport: MAPTransport;
131
-
132
- // Session information
133
- session?: MAPSession;
134
- }
135
-
136
- interface MAPParticipantCapabilities {
137
- // Observation
138
- canObserve: boolean; // Can subscribe to events
139
- canQuery: boolean; // Can query agents/structure
140
-
141
- // Messaging
142
- canSend: boolean; // Can send messages
143
- canReceive: boolean; // Can receive messages addressed to it
144
- canBroadcast: boolean; // Can send to scopes/roles
145
-
146
- // Agent management
147
- canSpawn: boolean; // Can create child agents
148
- canRegister: boolean; // Can register agents (not as children)
149
- canUnregister: boolean; // Can remove agents
150
-
151
- // Control
152
- canSteer: boolean; // Can inject context/control agents
153
- canStop: boolean; // Can request agent termination
154
-
155
- // Scope management
156
- canCreateScopes: boolean;
157
- canManageScopes: boolean;
158
-
159
- // Mail (conversations/turns) - extension
160
- mail?: {
161
- enabled?: boolean; // Server supports mail (response only)
162
- canCreate?: boolean; // Can create conversations
163
- canJoin?: boolean; // Can join conversations
164
- canInvite?: boolean; // Can invite participants
165
- canViewHistory?: boolean; // Can view conversation history
166
- canCreateThreads?: boolean; // Can create threads
167
- };
168
- }
169
- ```
170
-
171
- ### Capability Matrix
172
-
173
- ```
174
- ┌─────────────────────────────────────────────────────────────────────────────┐
175
- │ Capability Matrix │
176
- ├─────────────────────────────────────────────────────────────────────────────┤
177
- │ │
178
- │ Capability │ Client │ Agent │ System │ Gateway │
179
- │ │ (observer)│ (worker) │ │ (federation) │
180
- │ ──────────────────┼──────────┼──────────┼──────────┼────────────────────── │
181
- │ canObserve │ ✓ │ ✓* │ ✓ │ ✓* │
182
- │ canQuery │ ✓ │ ✓* │ ✓ │ ✓* │
183
- │ canSend │ ✓* │ ✓ │ ✓ │ ✓ │
184
- │ canReceive │ ✗ │ ✓ │ ✓ │ ✓ │
185
- │ canBroadcast │ ✗ │ ✓* │ ✓ │ ✗ │
186
- │ canSpawn │ ✗ │ ✓ │ ✓ │ ✗ │
187
- │ canRegister │ ✗ │ ✓* │ ✓ │ ✗ │
188
- │ canUnregister │ ✗ │ ✓* │ ✓ │ ✗ │
189
- │ canSteer │ ✓* │ ✓* │ ✓ │ ✗ │
190
- │ canStop │ ✓* │ ✓* │ ✓ │ ✗ │
191
- │ canCreateScopes │ ✗ │ ✓* │ ✓ │ ✗ │
192
- │ canManageScopes │ ✗ │ ✓* │ ✓ │ ✗ │
193
- │ │
194
- │ ✓ = default yes ✗ = default no * = depends on role/permissions │
195
- │ │
196
- └─────────────────────────────────────────────────────────────────────────────┘
197
- ```
198
-
199
- ### Hierarchical Composition
200
-
201
- Agents can be both clients (to their parent/system) and servers (to their children):
202
-
203
- ```
204
- ┌─────────────────────────────────────────────────────────────────┐
205
- │ Hierarchical Composition │
206
- ├─────────────────────────────────────────────────────────────────┤
207
- │ │
208
- │ External Client (dashboard) │
209
- │ │ │
210
- │ │ MAP (websocket) │
211
- │ ▼ │
212
- │ ┌─────────────────────────────────────────────────────────┐ │
213
- │ │ Coordinator │ │
214
- │ │ - Is a participant (receives from client) │ │
215
- │ │ - Acts as MAP router for children │ │
216
- │ └─────────────────────────────────────────────────────────┘ │
217
- │ │ │ │
218
- │ │ MAP (inprocess) │ MAP (inprocess) │
219
- │ ▼ ▼ │
220
- │ ┌──────────────┐ ┌──────────────┐ │
221
- │ │ Worker A │ │ Worker B │ │
222
- │ │ - Participant│ │ - Participant│ │
223
- │ │ - Has children│ └──────────────┘ │
224
- │ └──────────────┘ │
225
- │ │ │
226
- │ │ MAP (stdio) │
227
- │ ▼ │
228
- │ ┌──────────────┐ │
229
- │ │ Sub-agent │ (Claude Code pattern) │
230
- │ │ - Leaf node │ │
231
- │ └──────────────┘ │
232
- │ │
233
- └─────────────────────────────────────────────────────────────────┘
234
- ```
235
-
236
- ---
237
-
238
- ## Transport Layer
239
-
240
- MAP is transport-agnostic. The protocol defines message format and semantics; the transport layer handles delivery.
241
-
242
- ### Transport Bindings
243
-
244
- ```typescript
245
- interface MAPTransport {
246
- type: string;
247
-
248
- // Send a message or request
249
- send(frame: MAPFrame): Promise<void>;
250
-
251
- // Receive messages/events
252
- receive(): AsyncIterable<MAPFrame>;
253
-
254
- // Connection lifecycle
255
- close(): Promise<void>;
256
-
257
- // Connection state
258
- state: "connecting" | "connected" | "disconnected" | "error";
259
- }
260
- ```
261
-
262
- ### Built-in Transport Bindings
263
-
264
- | Transport | Use Case | Framing |
265
- |-----------|----------|---------|
266
- | WebSocket | Remote clients, federation | JSON messages |
267
- | stdio | Subprocess agents (Claude Code) | NDJSON (newline-delimited) |
268
- | In-process | Co-located agents | Direct object passing |
269
- | HTTP + SSE | Stateless clients | POST + Server-Sent Events |
270
-
271
- ---
272
-
273
- ## Core Objects
274
-
275
- ```typescript
276
- // AGENT: The fundamental unit in the system
277
- interface MAPAgent {
278
- id: string;
279
- name?: string;
280
-
281
- // Relationships
282
- parent?: string; // Hierarchical parent
283
- relationships?: MAPRelationship[]; // Other connections (peers, custom)
284
-
285
- // State (extensible - implementations can add custom states)
286
- state: MAPAgentState;
287
-
288
- // Classification
289
- role?: string; // Role identifier
290
- scopes: string[]; // Scope memberships
291
-
292
- // Visibility (who can see/address this agent)
293
- visibility?: MAPVisibility;
294
-
295
- // Lifecycle (descriptive, not prescriptive)
296
- lifecycle?: MAPAgentLifecycle;
297
-
298
- // Metadata
299
- metadata?: Record<string, unknown>;
300
- }
301
-
302
- // Agent states - extensible for implementations
303
- type MAPAgentState =
304
- | "registered" // Known to system, not yet active
305
- | "active" // Running and responsive
306
- | "busy" // Active but processing
307
- | "idle" // Active but waiting
308
- | "suspended" // Paused, can be resumed
309
- | "stopping" // Shutting down gracefully
310
- | "stopped" // Terminated, may have result
311
- | "failed" // Terminated abnormally
312
- | string; // Extensible for custom states
313
-
314
- // MESSAGE: Unified communication with metadata specialization
315
- interface MAPMessage {
316
- id: string;
317
- from: string; // Sender (agent, client, system)
318
- to: MAPAddress; // Target address
319
-
320
- // Payload - flexible structure
321
- payload: unknown;
322
-
323
- meta: {
324
- timestamp: number;
325
- relationship?: "parent-to-child" | "child-to-parent" | "peer" | "broadcast";
326
- expectsResponse?: boolean;
327
- correlationId?: string;
328
- isResult?: boolean;
329
- priority?: "urgent" | "high" | "normal" | "low";
330
- delivery?: "fire-and-forget" | "acknowledged" | "guaranteed";
331
-
332
- // Mail turn tracking (optional extension)
333
- mail?: {
334
- conversationId: string; // Record as turn in this conversation
335
- threadId?: string; // Optionally assign to thread
336
- inReplyTo?: string; // Turn ID this is replying to
337
- visibility?: TurnVisibility; // Who can see this turn
338
- };
339
- };
340
- }
341
- ```
342
-
343
- ### Addressing Model
344
-
345
- ```typescript
346
- // Flexible addressing for any topology
347
- type MAPAddress =
348
- // Direct addressing
349
- | string // Shorthand: agent ID
350
- | { agent: string } // Single agent
351
- | { agents: string[] } // Multiple agents
352
-
353
- // Structural addressing
354
- | { scope: string } // All in scope
355
- | { role: string; within?: string } // Role, optionally scoped
356
-
357
- // Hierarchical addressing (relative to sender)
358
- | { parent: true } // Sender's parent
359
- | { children: true; depth?: number } // Sender's children
360
- | { ancestors: true; depth?: number } // Up the tree
361
- | { descendants: true; depth?: number } // Down the tree
362
- | { siblings: true } // Same parent
363
-
364
- // Special
365
- | { broadcast: true } // All agents in system
366
- | { system: true } // The system/router itself
367
- | { participant: string } // Any participant by ID
368
- | { participants: "all" | "agents" | "clients" }; // Categories
369
- ```
370
-
371
- ---
372
-
373
- ## Protocol Methods
374
-
375
- ### Tier 1: Core (Required)
376
-
377
- ```typescript
378
- // SYSTEM
379
- "map/connect" // Connect to system, negotiate capabilities
380
- "map/disconnect" // Graceful disconnect
381
-
382
- // SESSION
383
- "map/session/list" // List participant's sessions
384
- "map/session/load" // Load/reconnect to existing session
385
- "map/session/close" // Explicitly end session
386
-
387
- // AGENTS (read)
388
- "map/agents/list" // List agents with filters (server-filtered)
389
- "map/agents/get" // Get single agent details
390
-
391
- // MESSAGING
392
- "map/send" // Send message to address
393
-
394
- // STREAMING
395
- "map/subscribe" // Subscribe to event streams
396
- "map/unsubscribe" // Unsubscribe from streams
397
-
398
- // AUTH
399
- "map/auth/refresh" // In-band token refresh
400
- ```
401
-
402
- ### Tier 2: Structure (Recommended)
403
-
404
- ```typescript
405
- // AGENTS (write)
406
- "map/agents/register" // Add agent to system
407
- "map/agents/spawn" // Register + initial task (atomic)
408
- "map/agents/unregister" // Remove agent
409
- "map/agents/update" // Update agent state/metadata
410
-
411
- // LIFECYCLE CONTROL
412
- "map/agents/stop" // Request graceful stop
413
- "map/agents/suspend" // Pause agent
414
- "map/agents/resume" // Resume suspended agent
415
-
416
- // STRUCTURE
417
- "map/structure/graph" // Get relationship graph
418
-
419
- // SCOPES
420
- "map/scopes/list" // List scopes
421
- "map/scopes/create" // Create scope
422
- "map/scopes/delete" // Delete scope
423
- "map/scopes/join" // Agent joins scope
424
- "map/scopes/leave" // Agent leaves scope
425
- ```
426
-
427
- ### Tier 3: Extensions (Optional)
428
-
429
- ```typescript
430
- // TASKS
431
- "map/tasks/create" // Create task
432
- "map/tasks/assign" // Assign to agent
433
- "map/tasks/update" // Update status
434
- "map/tasks/list" // List tasks
435
-
436
- // STEERING
437
- "map/inject" // Context injection with delivery semantics
438
-
439
- // FEDERATION
440
- "map/federation/connect" // Connect to peer MAP system
441
- "map/federation/route" // Route message to peer system
442
-
443
- // MAIL (Conversations, Turns, Threads)
444
- "mail/create" // Create a conversation
445
- "mail/get" // Get conversation details with optional includes
446
- "mail/list" // List conversations with filtering
447
- "mail/close" // Close a conversation
448
- "mail/join" // Join a conversation with optional catch-up
449
- "mail/leave" // Leave a conversation
450
- "mail/invite" // Invite a participant to a conversation
451
- "mail/turn" // Record a turn in a conversation
452
- "mail/turns/list" // List turns with filtering and pagination
453
- "mail/thread/create" // Create a thread within a conversation
454
- "mail/thread/list" // List threads in a conversation
455
- "mail/summary" // Get or generate a conversation summary
456
- "mail/replay" // Replay conversation turns from a point
457
- ```
458
-
459
- > See [10-mail-protocol.md](10-mail-protocol.md) for the full Mail Protocol specification.
460
-
461
- ---
462
-
463
- ## Design Decisions Summary
464
-
465
- | Decision | Choice | Rationale |
466
- |----------|--------|-----------|
467
- | Primary abstraction | Agent + relationships, then messages | Matches mental model of multi-agent systems |
468
- | Topology | Configuration, not protocol | Same protocol supports orchestration (tree) and collaboration (mesh) |
469
- | Participant model | Unified - agents and clients same protocol | Consistent semantics, transport optimization, natural federation |
470
- | Transport | Pluggable (WebSocket, stdio, in-process, HTTP) | Same protocol, optimized for different deployment contexts |
471
- | Messaging | Unified with metadata specialization | One message type; metadata determines behavior |
472
- | Lifecycle | Descriptive, not prescriptive | Protocol records metadata; implementation decides enforcement |
473
- | Visibility | First-class on agents and scopes | Configurable per-agent and per-scope |
474
- | Wire format | JSON-RPC 2.0 | Consistent with ACP, A2A, MCP |
475
-
476
- ---
477
-
478
- ## Related Specs
479
-
480
- - [01-open-questions.md](01-open-questions.md): Open Questions & Design Decisions
481
- - [02-wire-protocol.md](02-wire-protocol.md): Wire Protocol & ACP Compatibility Layer
482
- - [03-streaming-semantics.md](03-streaming-semantics.md): Streaming Semantics
483
- - [04-error-handling.md](04-error-handling.md): Error Handling & Failure Modes
484
- - [05-connection-model.md](05-connection-model.md): Connection Model & Client Patterns
485
- - [06-visibility-permissions.md](06-visibility-permissions.md): Visibility & Permission Model
486
- - [07-federation.md](07-federation.md): Federation & System-to-System Communication
487
- - [08-macro-agent-migration.md](08-macro-agent-migration.md): macro-agent Migration Example
488
- - [10-mail-protocol.md](10-mail-protocol.md): Mail Protocol (Conversations, Turns, Threads)
489
-
490
- ---
491
-
492
- ## References
493
-
494
- - ACP: [Agent Client Protocol](https://agentclientprotocol.com)
495
- - A2A: [Agent-to-Agent Protocol](https://a2a-protocol.org/latest/)
496
- - MCP: [Model Context Protocol](https://modelcontextprotocol.io)