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,510 +0,0 @@
1
- ---
2
- title: Full Integration
3
- parent: Examples
4
- nav_order: 3
5
- description: "Complete end-to-end application"
6
- ---
7
-
8
- # Full Integration
9
- {: .no_toc }
10
-
11
- A complete application demonstrating all MAP concepts.
12
- {: .fs-6 .fw-300 }
13
-
14
- ## Table of contents
15
- {: .no_toc .text-delta }
16
-
17
- 1. TOC
18
- {:toc}
19
-
20
- ---
21
-
22
- ## Overview
23
-
24
- This example brings together all MAP concepts:
25
- - Server with authentication
26
- - Multiple agent types with roles
27
- - Scopes for collaboration
28
- - Client dashboard with real-time updates
29
- - Error handling and reconnection
30
-
31
- ---
32
-
33
- ## Architecture
34
-
35
- ```mermaid
36
- flowchart TB
37
- subgraph Server["MAP Server"]
38
- EventBus["EventBus"]
39
- Agents["Agents"]
40
- Scopes["Scopes"]
41
- Subs["Subscriptions"]
42
- end
43
-
44
- Dashboard["Dashboard<br/>(Client)"] --> Server
45
- Coordinator["Coordinator<br/>(Agent)"] --> Server
46
- Workers["Workers<br/>(Agents)"] --> Server
47
- ```
48
-
49
- ---
50
-
51
- ## Server with Authentication
52
-
53
- ```typescript
54
- // server.ts
55
- import { MAPServer } from "@multi-agent-protocol/sdk/server";
56
- import { WebSocketServer } from "ws";
57
- import jwt from "jsonwebtoken";
58
-
59
- const JWT_SECRET = process.env.JWT_SECRET || "development-secret";
60
-
61
- const server = new MAPServer({
62
- name: "ProductionServer",
63
- version: "1.0.0",
64
-
65
- auth: {
66
- required: process.env.NODE_ENV === "production",
67
- methods: ["bearer", "none"],
68
-
69
- validate: async (credentials) => {
70
- if (credentials.method === "none") {
71
- return {
72
- success: true,
73
- principal: { id: "anonymous", claims: { role: "guest" } },
74
- };
75
- }
76
-
77
- if (credentials.method === "bearer") {
78
- try {
79
- const payload = jwt.verify(credentials.credential!, JWT_SECRET);
80
- return {
81
- success: true,
82
- principal: {
83
- id: payload.sub as string,
84
- claims: payload,
85
- },
86
- };
87
- } catch {
88
- return {
89
- success: false,
90
- error: { code: "invalid_credentials", message: "Invalid token" },
91
- };
92
- }
93
- }
94
-
95
- return { success: false, error: { code: "method_not_supported", message: "Unknown method" } };
96
- },
97
- },
98
-
99
- middleware: [
100
- // Logging
101
- async (method, params, ctx, next) => {
102
- const start = Date.now();
103
- console.log(`[${ctx.session.id}] → ${method}`);
104
- const result = await next();
105
- console.log(`[${ctx.session.id}] ← ${method} (${Date.now() - start}ms)`);
106
- return result;
107
- },
108
- ],
109
-
110
- additionalHandlers: {
111
- "stats/overview": async () => ({
112
- agents: server.agents.list().length,
113
- scopes: server.scopes.list().length,
114
- connections: server.connections.size,
115
- uptime: process.uptime(),
116
- }),
117
- },
118
- });
119
-
120
- // Track statistics
121
- let messagesProcessed = 0;
122
- server.on("message.sent", () => messagesProcessed++);
123
-
124
- const wss = new WebSocketServer({ port: 8080 });
125
-
126
- wss.on("connection", (ws, req) => {
127
- console.log(`New connection from ${req.socket.remoteAddress}`);
128
- server.accept(websocketToStream(ws)).start();
129
- });
130
-
131
- // Graceful shutdown
132
- process.on("SIGTERM", async () => {
133
- console.log("Shutting down...");
134
- await server.close({ timeout: 10000 });
135
- wss.close();
136
- process.exit(0);
137
- });
138
-
139
- console.log("Server running on ws://localhost:8080");
140
- ```
141
-
142
- ---
143
-
144
- ## Coordinator Agent
145
-
146
- ```typescript
147
- // coordinator.ts
148
- import { AgentConnection } from "@multi-agent-protocol/sdk";
149
-
150
- interface Task {
151
- id: string;
152
- type: string;
153
- data: unknown;
154
- submitter: string;
155
- assignedTo?: string;
156
- status: "pending" | "assigned" | "completed" | "failed";
157
- createdAt: number;
158
- }
159
-
160
- async function main() {
161
- const agent = new AgentConnection(await connect(), {
162
- name: "Coordinator",
163
- role: "coordinator",
164
- metadata: {
165
- version: "1.0.0",
166
- capabilities: ["task-routing", "load-balancing"],
167
- },
168
- reconnect: { enabled: true },
169
- });
170
-
171
- await agent.connect();
172
- console.log("Coordinator started");
173
-
174
- // Create work scope
175
- const workScope = await agent.createScope({
176
- name: "work-queue",
177
- metadata: { maxWorkers: 10 },
178
- });
179
-
180
- // State
181
- const workers = new Map<string, { busy: boolean; tasksCompleted: number }>();
182
- const tasks = new Map<string, Task>();
183
- const pendingQueue: string[] = [];
184
-
185
- // Subscribe to events
186
- const sub = await agent.subscribe({
187
- eventTypes: ["scope.joined", "scope.left", "agent.unregistered"],
188
- });
189
-
190
- // Event processing
191
- (async () => {
192
- for await (const event of sub) {
193
- handleEvent(event);
194
- }
195
- })();
196
-
197
- function handleEvent(event: any) {
198
- switch (event.type) {
199
- case "scope.joined":
200
- if (event.data.scopeId === workScope.id && event.data.agentId !== agent.id) {
201
- workers.set(event.data.agentId, { busy: false, tasksCompleted: 0 });
202
- console.log(`Worker joined: ${event.data.agentId}`);
203
- processQueue();
204
- }
205
- break;
206
-
207
- case "scope.left":
208
- case "agent.unregistered":
209
- if (workers.has(event.data.agentId)) {
210
- workers.delete(event.data.agentId);
211
- console.log(`Worker left: ${event.data.agentId}`);
212
- // Reassign their tasks
213
- reassignTasks(event.data.agentId);
214
- }
215
- break;
216
- }
217
- }
218
-
219
- // Message handling
220
- agent.onMessage(async (message) => {
221
- const { type } = message.payload;
222
-
223
- switch (type) {
224
- case "submit-task":
225
- handleSubmitTask(message);
226
- break;
227
-
228
- case "task-result":
229
- handleTaskResult(message);
230
- break;
231
-
232
- case "get-status":
233
- await sendStatus(message.from);
234
- break;
235
- }
236
- });
237
-
238
- function handleSubmitTask(message: any) {
239
- const task: Task = {
240
- id: `task-${Date.now()}-${Math.random().toString(36).slice(2)}`,
241
- type: message.payload.taskType,
242
- data: message.payload.data,
243
- submitter: message.from,
244
- status: "pending",
245
- createdAt: Date.now(),
246
- };
247
-
248
- tasks.set(task.id, task);
249
- pendingQueue.push(task.id);
250
- console.log(`Task ${task.id} queued`);
251
-
252
- processQueue();
253
- }
254
-
255
- function handleTaskResult(message: any) {
256
- const { taskId, success, result, error } = message.payload;
257
- const task = tasks.get(taskId);
258
-
259
- if (task) {
260
- task.status = success ? "completed" : "failed";
261
-
262
- const worker = workers.get(message.from);
263
- if (worker) {
264
- worker.busy = false;
265
- if (success) worker.tasksCompleted++;
266
- }
267
-
268
- // Notify submitter
269
- agent.send({
270
- to: { agentId: task.submitter },
271
- payload: {
272
- type: "task-completed",
273
- taskId,
274
- success,
275
- result,
276
- error,
277
- },
278
- });
279
-
280
- console.log(`Task ${taskId}: ${task.status}`);
281
- processQueue();
282
- }
283
- }
284
-
285
- function processQueue() {
286
- while (pendingQueue.length > 0) {
287
- const availableWorker = [...workers.entries()].find(([, w]) => !w.busy);
288
- if (!availableWorker) break;
289
-
290
- const taskId = pendingQueue.shift()!;
291
- const task = tasks.get(taskId)!;
292
- const [workerId, worker] = availableWorker;
293
-
294
- task.status = "assigned";
295
- task.assignedTo = workerId;
296
- worker.busy = true;
297
-
298
- agent.send({
299
- to: { agentId: workerId },
300
- payload: { type: "task", task },
301
- });
302
-
303
- console.log(`Task ${taskId} assigned to ${workerId}`);
304
- }
305
- }
306
-
307
- function reassignTasks(workerId: string) {
308
- for (const [taskId, task] of tasks) {
309
- if (task.assignedTo === workerId && task.status === "assigned") {
310
- task.status = "pending";
311
- task.assignedTo = undefined;
312
- pendingQueue.unshift(taskId);
313
- console.log(`Task ${taskId} requeued`);
314
- }
315
- }
316
- processQueue();
317
- }
318
-
319
- async function sendStatus(to: string) {
320
- await agent.send({
321
- to: { agentId: to },
322
- payload: {
323
- type: "status",
324
- workers: workers.size,
325
- pendingTasks: pendingQueue.length,
326
- totalTasks: tasks.size,
327
- },
328
- });
329
- }
330
-
331
- console.log(`Work scope created: ${workScope.id}`);
332
- }
333
-
334
- main().catch(console.error);
335
- ```
336
-
337
- ---
338
-
339
- ## Worker Agent
340
-
341
- ```typescript
342
- // worker.ts
343
- import { AgentConnection } from "@multi-agent-protocol/sdk";
344
-
345
- async function main() {
346
- const name = process.argv[2] || `Worker-${Date.now()}`;
347
-
348
- const agent = new AgentConnection(await connect(), {
349
- name,
350
- role: "worker",
351
- metadata: { capabilities: ["compute"] },
352
- reconnect: { enabled: true },
353
- });
354
-
355
- const { agent: registered } = await agent.connect();
356
- console.log(`Worker ${name} started (${registered.id})`);
357
-
358
- // Find and join work scope
359
- const { scopes } = await agent.listScopes();
360
- const workScope = scopes.find((s) => s.name === "work-queue");
361
-
362
- if (workScope) {
363
- await agent.joinScope(workScope.id);
364
- console.log("Joined work queue");
365
- } else {
366
- // Wait for scope to be created
367
- const sub = await agent.subscribe({ eventTypes: ["scope.created"] });
368
- for await (const event of sub) {
369
- if (event.data.scope.name === "work-queue") {
370
- await agent.joinScope(event.data.scope.id);
371
- console.log("Joined work queue");
372
- await sub.unsubscribe();
373
- break;
374
- }
375
- }
376
- }
377
-
378
- // Handle tasks
379
- agent.onMessage(async (message) => {
380
- if (message.payload.type === "task") {
381
- const { task } = message.payload;
382
- console.log(`Processing: ${task.id} (${task.type})`);
383
-
384
- await agent.update({ state: "busy", metadata: { currentTask: task.id } });
385
-
386
- try {
387
- // Simulate work
388
- const result = await processTask(task);
389
-
390
- await agent.send({
391
- to: { agentId: message.from },
392
- payload: { type: "task-result", taskId: task.id, success: true, result },
393
- });
394
-
395
- console.log(`Completed: ${task.id}`);
396
- } catch (error) {
397
- await agent.send({
398
- to: { agentId: message.from },
399
- payload: { type: "task-result", taskId: task.id, success: false, error: error.message },
400
- });
401
-
402
- console.log(`Failed: ${task.id} - ${error.message}`);
403
- }
404
-
405
- await agent.update({ state: "running", metadata: { currentTask: null } });
406
- }
407
- });
408
-
409
- console.log("Ready for work");
410
- }
411
-
412
- async function processTask(task: any) {
413
- // Simulate processing time
414
- await new Promise((r) => setTimeout(r, 1000 + Math.random() * 2000));
415
- return { processed: true, timestamp: Date.now() };
416
- }
417
-
418
- main().catch(console.error);
419
- ```
420
-
421
- ---
422
-
423
- ## Dashboard Client
424
-
425
- ```typescript
426
- // dashboard.ts
427
- import { ClientConnection } from "@multi-agent-protocol/sdk";
428
-
429
- async function main() {
430
- const client = new ClientConnection(await connect(), {
431
- name: "Dashboard",
432
- reconnect: { enabled: true },
433
- });
434
-
435
- client.onStateChange((state) => {
436
- console.log(`Connection: ${state}`);
437
- });
438
-
439
- const { systemInfo } = await client.connect();
440
- console.log(`Connected to ${systemInfo?.name}`);
441
-
442
- // Initial state
443
- await refreshState();
444
-
445
- // Subscribe to all events
446
- const sub = await client.subscribe({ eventTypes: ["*"] });
447
-
448
- console.log("\nMonitoring events...\n");
449
-
450
- for await (const event of sub) {
451
- console.log(`[${new Date().toISOString()}] ${event.type}`);
452
-
453
- if (event.type.startsWith("agent.")) {
454
- await refreshState();
455
- }
456
- }
457
-
458
- async function refreshState() {
459
- const { agents } = await client.listAgents();
460
- const { scopes } = await client.listScopes();
461
-
462
- console.log("\n--- System State ---");
463
- console.log(`Agents: ${agents.length}`);
464
- agents.forEach((a) => {
465
- console.log(` ${a.name} (${a.role}) - ${a.state}`);
466
- });
467
- console.log(`Scopes: ${scopes.length}`);
468
- scopes.forEach((s) => {
469
- console.log(` ${s.name}`);
470
- });
471
- console.log("-------------------\n");
472
- }
473
- }
474
-
475
- main().catch(console.error);
476
- ```
477
-
478
- ---
479
-
480
- ## Running the Full Example
481
-
482
- ```bash
483
- # Terminal 1: Server
484
- npx ts-node server.ts
485
-
486
- # Terminal 2: Coordinator
487
- npx ts-node coordinator.ts
488
-
489
- # Terminal 3-5: Workers
490
- npx ts-node worker.ts Worker1
491
- npx ts-node worker.ts Worker2
492
- npx ts-node worker.ts Worker3
493
-
494
- # Terminal 6: Dashboard
495
- npx ts-node dashboard.ts
496
- ```
497
-
498
- ---
499
-
500
- ## Concepts Demonstrated
501
-
502
- - **Authentication** with JWT tokens
503
- - **Middleware** for logging
504
- - **Custom handlers** for stats
505
- - **Scopes** for work distribution
506
- - **Coordinator pattern** with load balancing
507
- - **Worker pool** with task reassignment
508
- - **Real-time dashboard** with event subscription
509
- - **Reconnection** handling
510
- - **Graceful shutdown**
@@ -1,138 +0,0 @@
1
- ---
2
- title: Examples
3
- nav_order: 5
4
- has_children: true
5
- description: "Complete working examples"
6
- ---
7
-
8
- # Examples
9
-
10
- Complete working examples demonstrating MAP patterns.
11
- {: .fs-6 .fw-300 }
12
-
13
- ---
14
-
15
- ## Available Examples
16
-
17
- | Example | Description | Concepts |
18
- |:--------|:------------|:---------|
19
- | [Simple Chat](./simple-chat.html) | Basic agent-to-agent messaging | Agents, messaging |
20
- | [Task Queue](./task-queue.html) | Work distribution with scopes | Scopes, coordination |
21
- | [Full Integration](./full-integration.html) | Complete end-to-end application | All concepts |
22
-
23
- ---
24
-
25
- ## Running Examples
26
-
27
- All examples are available in the SDK repository:
28
-
29
- ```bash
30
- git clone https://github.com/multi-agent-protocol/multi-agent-protocol.git
31
- cd multi-agent-protocol/ts-sdk/examples
32
- npm install
33
- ```
34
-
35
- Each example has its own README with specific instructions.
36
-
37
- ---
38
-
39
- ## Example Patterns
40
-
41
- ### Pattern 1: Hub and Spoke
42
-
43
- One coordinator, multiple workers:
44
-
45
- ```mermaid
46
- flowchart TB
47
- Client["Client"]
48
- Coord["Coordinator"]
49
- W1["Worker 1"]
50
- W2["Worker 2"]
51
- W3["Worker 3"]
52
-
53
- Client --> Coord
54
- Coord --> W1
55
- Coord --> W2
56
- Coord --> W3
57
- ```
58
-
59
- ### Pattern 2: Peer Collaboration
60
-
61
- Agents collaborate through shared scopes:
62
-
63
- ```mermaid
64
- flowchart TB
65
- subgraph ScopeA["Scope A"]
66
- A1["Agent 1"]
67
- A2["Agent 2"]
68
- end
69
-
70
- subgraph ScopeB["Scope B"]
71
- A2b["Agent 2"]
72
- A3["Agent 3"]
73
- end
74
-
75
- A2 -.->|"shared"| A2b
76
- ```
77
-
78
- ### Pattern 3: Pipeline
79
-
80
- Sequential processing through agents:
81
-
82
- ```mermaid
83
- flowchart LR
84
- Input["Input"] --> Agent1["Agent 1"]
85
- Agent1 --> Agent2["Agent 2"]
86
- Agent2 --> Agent3["Agent 3"]
87
- Agent3 --> Output["Output"]
88
- ```
89
-
90
- ---
91
-
92
- ## Quick Start Template
93
-
94
- Here's a minimal template to start a new MAP application:
95
-
96
- ```typescript
97
- // server.ts
98
- import { MAPServer } from "@multi-agent-protocol/sdk/server";
99
- import { WebSocketServer } from "ws";
100
-
101
- const server = new MAPServer({ name: "MyServer" });
102
- const wss = new WebSocketServer({ port: 8080 });
103
-
104
- wss.on("connection", (ws) => {
105
- server.accept(websocketToStream(ws)).start();
106
- });
107
-
108
- console.log("Server running on ws://localhost:8080");
109
- ```
110
-
111
- ```typescript
112
- // agent.ts
113
- import { AgentConnection } from "@multi-agent-protocol/sdk";
114
-
115
- const agent = new AgentConnection(stream, {
116
- name: "MyAgent",
117
- role: "worker",
118
- });
119
-
120
- await agent.connect();
121
-
122
- agent.onMessage(async (message) => {
123
- // Handle messages
124
- });
125
- ```
126
-
127
- ```typescript
128
- // client.ts
129
- import { ClientConnection } from "@multi-agent-protocol/sdk";
130
-
131
- const client = new ClientConnection(stream, { name: "MyClient" });
132
- await client.connect();
133
-
134
- const subscription = await client.subscribe({ eventTypes: ["*"] });
135
- for await (const event of subscription) {
136
- // Handle events
137
- }
138
- ```