macro-agent 0.0.11 → 0.0.13

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 +5 -3
  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,446 +0,0 @@
1
- ---
2
- title: Testing
3
- parent: Guides
4
- grand_parent: SDK
5
- nav_order: 6
6
- description: "Test your MAP integrations"
7
- ---
8
-
9
- # Testing
10
- {: .no_toc }
11
-
12
- Test your MAP integrations effectively.
13
- {: .fs-6 .fw-300 }
14
-
15
- ## Table of contents
16
- {: .no_toc .text-delta }
17
-
18
- 1. TOC
19
- {:toc}
20
-
21
- ---
22
-
23
- ## Overview
24
-
25
- The SDK provides utilities for testing MAP integrations without network overhead.
26
-
27
- ---
28
-
29
- ## In-Memory Testing
30
-
31
- Use `createStreamPair()` to create connected streams for testing:
32
-
33
- ```typescript
34
- import { createStreamPair } from "@multi-agent-protocol/sdk/stream";
35
- import { MAPServer } from "@multi-agent-protocol/sdk/server";
36
- import { ClientConnection, AgentConnection } from "@multi-agent-protocol/sdk";
37
-
38
- describe("MAP Integration", () => {
39
- let server: MAPServer;
40
-
41
- beforeEach(() => {
42
- server = new MAPServer({ name: "TestServer" });
43
- });
44
-
45
- afterEach(async () => {
46
- await server.close();
47
- });
48
-
49
- it("should connect a client", async () => {
50
- const [clientStream, serverStream] = createStreamPair();
51
- server.accept(serverStream).start();
52
-
53
- const client = new ClientConnection(clientStream, { name: "TestClient" });
54
- const result = await client.connect();
55
-
56
- expect(result.sessionId).toBeDefined();
57
- expect(result.systemInfo?.name).toBe("TestServer");
58
-
59
- await client.disconnect();
60
- });
61
- });
62
- ```
63
-
64
- ---
65
-
66
- ## Testing Agents
67
-
68
- ```typescript
69
- import { createStreamPair } from "@multi-agent-protocol/sdk/stream";
70
- import { MAPServer } from "@multi-agent-protocol/sdk/server";
71
- import { AgentConnection } from "@multi-agent-protocol/sdk";
72
-
73
- describe("Agent", () => {
74
- let server: MAPServer;
75
-
76
- beforeEach(() => {
77
- server = new MAPServer({ name: "TestServer" });
78
- });
79
-
80
- afterEach(async () => {
81
- await server.close();
82
- });
83
-
84
- it("should register an agent", async () => {
85
- const [agentStream, serverStream] = createStreamPair();
86
- server.accept(serverStream).start();
87
-
88
- const agent = new AgentConnection(agentStream, {
89
- name: "TestAgent",
90
- role: "worker",
91
- });
92
-
93
- const { agent: registered } = await agent.connect();
94
-
95
- expect(registered.id).toBeDefined();
96
- expect(registered.name).toBe("TestAgent");
97
- expect(registered.role).toBe("worker");
98
-
99
- // Verify agent is in registry
100
- const agents = server.agents.list();
101
- expect(agents).toHaveLength(1);
102
- expect(agents[0].name).toBe("TestAgent");
103
-
104
- await agent.disconnect();
105
- });
106
-
107
- it("should handle messages", async () => {
108
- const [agentStream, serverStream] = createStreamPair();
109
- server.accept(serverStream).start();
110
-
111
- const agent = new AgentConnection(agentStream, {
112
- name: "TestAgent",
113
- role: "worker",
114
- });
115
-
116
- const receivedMessages: any[] = [];
117
- agent.onMessage((message) => {
118
- receivedMessages.push(message);
119
- });
120
-
121
- await agent.connect();
122
-
123
- // Send message directly through server
124
- server.messages.send({
125
- to: { agentId: agent.id },
126
- payload: { type: "test", data: "hello" },
127
- });
128
-
129
- // Wait for message delivery
130
- await new Promise((r) => setTimeout(r, 50));
131
-
132
- expect(receivedMessages).toHaveLength(1);
133
- expect(receivedMessages[0].payload.type).toBe("test");
134
-
135
- await agent.disconnect();
136
- });
137
- });
138
- ```
139
-
140
- ---
141
-
142
- ## Testing Client Subscriptions
143
-
144
- ```typescript
145
- describe("Client Subscriptions", () => {
146
- let server: MAPServer;
147
-
148
- beforeEach(() => {
149
- server = new MAPServer({ name: "TestServer" });
150
- });
151
-
152
- afterEach(async () => {
153
- await server.close();
154
- });
155
-
156
- it("should receive events", async () => {
157
- const [clientStream, serverStream] = createStreamPair();
158
- server.accept(serverStream).start();
159
-
160
- const client = new ClientConnection(clientStream, { name: "TestClient" });
161
- await client.connect();
162
-
163
- // Subscribe to agent events
164
- const subscription = await client.subscribe({
165
- eventTypes: ["agent.registered"],
166
- });
167
-
168
- // Collect events
169
- const events: any[] = [];
170
- const eventPromise = (async () => {
171
- for await (const event of subscription) {
172
- events.push(event);
173
- if (events.length >= 1) break;
174
- }
175
- })();
176
-
177
- // Register an agent
178
- const [agentStream, agentServerStream] = createStreamPair();
179
- server.accept(agentServerStream).start();
180
- const agent = new AgentConnection(agentStream, { name: "NewAgent" });
181
- await agent.connect();
182
-
183
- // Wait for event
184
- await eventPromise;
185
-
186
- expect(events).toHaveLength(1);
187
- expect(events[0].type).toBe("agent.registered");
188
- expect(events[0].data.agent.name).toBe("NewAgent");
189
-
190
- await subscription.unsubscribe();
191
- await agent.disconnect();
192
- await client.disconnect();
193
- });
194
- });
195
- ```
196
-
197
- ---
198
-
199
- ## Testing Agent-to-Agent Messaging
200
-
201
- ```typescript
202
- describe("Agent Messaging", () => {
203
- let server: MAPServer;
204
-
205
- beforeEach(() => {
206
- server = new MAPServer({ name: "TestServer" });
207
- });
208
-
209
- afterEach(async () => {
210
- await server.close();
211
- });
212
-
213
- it("should send messages between agents", async () => {
214
- // Create two agents
215
- const [stream1, serverStream1] = createStreamPair();
216
- const [stream2, serverStream2] = createStreamPair();
217
- server.accept(serverStream1).start();
218
- server.accept(serverStream2).start();
219
-
220
- const agent1 = new AgentConnection(stream1, { name: "Agent1" });
221
- const agent2 = new AgentConnection(stream2, { name: "Agent2" });
222
-
223
- const agent2Messages: any[] = [];
224
- agent2.onMessage((message) => {
225
- agent2Messages.push(message);
226
- });
227
-
228
- const { agent: registered1 } = await agent1.connect();
229
- const { agent: registered2 } = await agent2.connect();
230
-
231
- // Agent1 sends to Agent2
232
- await agent1.send({
233
- to: { agentId: registered2.id },
234
- payload: { type: "greeting", message: "Hello from Agent1" },
235
- });
236
-
237
- // Wait for delivery
238
- await new Promise((r) => setTimeout(r, 50));
239
-
240
- expect(agent2Messages).toHaveLength(1);
241
- expect(agent2Messages[0].payload.message).toBe("Hello from Agent1");
242
- expect(agent2Messages[0].from).toBe(registered1.id);
243
-
244
- await agent1.disconnect();
245
- await agent2.disconnect();
246
- });
247
- });
248
- ```
249
-
250
- ---
251
-
252
- ## Testing Scopes
253
-
254
- ```typescript
255
- describe("Scopes", () => {
256
- let server: MAPServer;
257
-
258
- beforeEach(() => {
259
- server = new MAPServer({ name: "TestServer" });
260
- });
261
-
262
- afterEach(async () => {
263
- await server.close();
264
- });
265
-
266
- it("should broadcast to scope members", async () => {
267
- // Create three agents
268
- const connections = await Promise.all([
269
- createAgent(server, "Agent1"),
270
- createAgent(server, "Agent2"),
271
- createAgent(server, "Agent3"),
272
- ]);
273
-
274
- const [agent1, agent2, agent3] = connections;
275
-
276
- // Collect messages for agents 2 and 3
277
- const messages2: any[] = [];
278
- const messages3: any[] = [];
279
- agent2.conn.onMessage((m) => messages2.push(m));
280
- agent3.conn.onMessage((m) => messages3.push(m));
281
-
282
- // Agent1 creates scope
283
- const scope = await agent1.conn.createScope({ name: "team" });
284
-
285
- // Agent2 joins, Agent3 doesn't
286
- await agent2.conn.joinScope(scope.id);
287
-
288
- // Agent1 broadcasts to scope
289
- await agent1.conn.send({
290
- to: { scopeId: scope.id },
291
- payload: { type: "announcement", text: "Team meeting!" },
292
- });
293
-
294
- await new Promise((r) => setTimeout(r, 50));
295
-
296
- // Only Agent2 (scope member) receives the message
297
- expect(messages2).toHaveLength(1);
298
- expect(messages3).toHaveLength(0);
299
-
300
- // Cleanup
301
- for (const { conn } of connections) {
302
- await conn.disconnect();
303
- }
304
- });
305
- });
306
-
307
- async function createAgent(server: MAPServer, name: string) {
308
- const [stream, serverStream] = createStreamPair();
309
- server.accept(serverStream).start();
310
- const conn = new AgentConnection(stream, { name });
311
- const { agent } = await conn.connect();
312
- return { conn, agent };
313
- }
314
- ```
315
-
316
- ---
317
-
318
- ## Test Utilities
319
-
320
- ### Helper for Multiple Connections
321
-
322
- ```typescript
323
- class TestHarness {
324
- server: MAPServer;
325
- connections: Array<{
326
- stream: Stream;
327
- client?: ClientConnection;
328
- agent?: AgentConnection;
329
- }> = [];
330
-
331
- constructor() {
332
- this.server = new MAPServer({ name: "TestServer" });
333
- }
334
-
335
- async createClient(name: string): Promise<ClientConnection> {
336
- const [clientStream, serverStream] = createStreamPair();
337
- this.server.accept(serverStream).start();
338
-
339
- const client = new ClientConnection(clientStream, { name });
340
- await client.connect();
341
-
342
- this.connections.push({ stream: clientStream, client });
343
- return client;
344
- }
345
-
346
- async createAgent(name: string, role?: string): Promise<AgentConnection> {
347
- const [agentStream, serverStream] = createStreamPair();
348
- this.server.accept(serverStream).start();
349
-
350
- const agent = new AgentConnection(agentStream, { name, role });
351
- await agent.connect();
352
-
353
- this.connections.push({ stream: agentStream, agent });
354
- return agent;
355
- }
356
-
357
- async cleanup() {
358
- for (const { client, agent } of this.connections) {
359
- if (client) await client.disconnect().catch(() => {});
360
- if (agent) await agent.disconnect().catch(() => {});
361
- }
362
- await this.server.close();
363
- }
364
- }
365
-
366
- // Usage
367
- describe("With TestHarness", () => {
368
- let harness: TestHarness;
369
-
370
- beforeEach(() => {
371
- harness = new TestHarness();
372
- });
373
-
374
- afterEach(async () => {
375
- await harness.cleanup();
376
- });
377
-
378
- it("should work", async () => {
379
- const client = await harness.createClient("TestClient");
380
- const agent = await harness.createAgent("TestAgent", "worker");
381
-
382
- const { agents } = await client.listAgents();
383
- expect(agents).toHaveLength(1);
384
- });
385
- });
386
- ```
387
-
388
- ---
389
-
390
- ## Mocking
391
-
392
- ### Mock Event Emission
393
-
394
- ```typescript
395
- it("should handle events", async () => {
396
- const harness = new TestHarness();
397
- const client = await harness.createClient("TestClient");
398
-
399
- const subscription = await client.subscribe({
400
- eventTypes: ["custom.event"],
401
- });
402
-
403
- const events: any[] = [];
404
- const eventPromise = collectEvents(subscription, events, 1);
405
-
406
- // Emit custom event directly
407
- harness.server.emit({
408
- type: "custom.event",
409
- data: { foo: "bar" },
410
- });
411
-
412
- await eventPromise;
413
- expect(events[0].data.foo).toBe("bar");
414
-
415
- await harness.cleanup();
416
- });
417
-
418
- async function collectEvents(
419
- subscription: Subscription,
420
- events: any[],
421
- count: number
422
- ) {
423
- for await (const event of subscription) {
424
- events.push(event);
425
- if (events.length >= count) break;
426
- }
427
- }
428
- ```
429
-
430
- ---
431
-
432
- ## Best Practices
433
-
434
- 1. **Use in-memory streams** - Avoid network in unit tests
435
- 2. **Clean up connections** - Always disconnect and close server
436
- 3. **Use timeouts wisely** - Allow time for async message delivery
437
- 4. **Test error cases** - Verify error handling works correctly
438
- 5. **Isolate tests** - Fresh server instance per test
439
- 6. **Use helpers** - Create utilities for common patterns
440
-
441
- ---
442
-
443
- ## Next Steps
444
-
445
- - [Server Setup](./server.html) - Configure test servers
446
- - [Transports](./transports.html) - Understand transport options