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,103 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { extractLinesWithByteLimit } from "../utils.js";
3
-
4
- describe("extractLinesWithByteLimit", () => {
5
- const simpleContent = "Line 1\nLine 2\nLine 3\nLine 4\nLine 5";
6
-
7
- it("should extract all lines when under byte limit", () => {
8
- const result = extractLinesWithByteLimit(simpleContent, 1000);
9
-
10
- expect(result.content).toBe(simpleContent);
11
- expect(result.wasLimited).toBe(false);
12
- expect(result.linesRead).toBe(5);
13
- });
14
-
15
- it("should limit output when exceeding byte limit", () => {
16
- // Create content that will exceed byte limit
17
- const longLine = "x".repeat(100);
18
- const manyLines = Array(10).fill(longLine).join("\n");
19
-
20
- const result = extractLinesWithByteLimit(manyLines, 250);
21
-
22
- expect(result.wasLimited).toBe(true);
23
- expect(result.linesRead).toBe(2);
24
- });
25
-
26
- it("should handle empty content", () => {
27
- const result = extractLinesWithByteLimit("", 1000);
28
-
29
- expect(result.content).toBe("");
30
- expect(result.wasLimited).toBe(false);
31
- expect(result.linesRead).toBe(1); // We read the one empty line
32
- });
33
-
34
- it("should handle single line file", () => {
35
- const singleLine = "This is a single line without newline";
36
- const result = extractLinesWithByteLimit(singleLine, 1000);
37
-
38
- expect(result.content).toBe(singleLine);
39
- expect(result.wasLimited).toBe(false);
40
- expect(result.linesRead).toBe(1);
41
- });
42
-
43
- it("should correctly count bytes with multi-byte characters", () => {
44
- const unicodeContent = "Hello 世界\n你好 World\nEmoji: 🌍\nNormal line";
45
- const result = extractLinesWithByteLimit(unicodeContent, 1000);
46
-
47
- expect(result.content).toBe(unicodeContent);
48
- expect(result.linesRead).toBe(4);
49
- });
50
-
51
- it("should stop at byte limit even with one more line available", () => {
52
- // Create lines where adding one more would exceed limit
53
- const line1 = "a".repeat(40);
54
- const line2 = "b".repeat(40);
55
- const line3 = "c".repeat(40);
56
- const content = `${line1}\n${line2}\n${line3}`;
57
-
58
- const result = extractLinesWithByteLimit(content, 85);
59
-
60
- expect(result.content).toBe(`${line1}\n${line2}\n`);
61
- expect(result.wasLimited).toBe(true);
62
- expect(result.linesRead).toBe(2);
63
- });
64
-
65
- it("should read exactly to limit when possible", () => {
66
- const exactContent = "12345\n67890\n12345"; // 17 bytes total
67
- const result = extractLinesWithByteLimit(exactContent, 17);
68
-
69
- expect(result.content).toBe(exactContent);
70
- expect(result.wasLimited).toBe(false);
71
- expect(result.linesRead).toBe(3);
72
- });
73
-
74
- it("should handle Windows-style line endings", () => {
75
- const windowsContent = "Line 1\r\nLine 2\r\nLine 3";
76
- const result = extractLinesWithByteLimit(windowsContent, 1000);
77
-
78
- // Note: split("\n") will keep the \r characters
79
- expect(result.content).toBe("Line 1\r\nLine 2\r\nLine 3");
80
- expect(result.linesRead).toBe(3);
81
- });
82
-
83
- it("should handle very large files efficiently", () => {
84
- // Create a 100KB file
85
- const largeLine = "x".repeat(1000);
86
- const largeContent = Array(110).fill(largeLine).join("\n");
87
-
88
- const result = extractLinesWithByteLimit(largeContent, 50000);
89
-
90
- expect(result.wasLimited).toBe(true);
91
- });
92
-
93
- it("should allow at least one line even if it exceeds byte limit", () => {
94
- const veryLongLine = "x".repeat(100000); // 100KB line
95
- const result = extractLinesWithByteLimit(veryLongLine, 50000);
96
-
97
- // Should return the line even though it exceeds the byte limit
98
- // because we always allow at least one line if no lines have been added yet
99
- expect(result.content).toBe(veryLongLine);
100
- expect(result.linesRead).toBe(1);
101
- expect(result.wasLimited).toBe(false);
102
- });
103
- });
@@ -1,335 +0,0 @@
1
- /**
2
- * Tests for session management functionality (fork and load).
3
- *
4
- * Run with: npx vitest run src/tests/fork-session.test.ts
5
- */
6
- import { describe, it, expect, beforeEach } from "vitest";
7
- import type { ClaudeAcpAgent } from "../acp-agent.js";
8
-
9
- // Mock client for testing
10
- const mockClient = {} as any;
11
-
12
- describe("session management", () => {
13
- let agent: ClaudeAcpAgent;
14
-
15
- beforeEach(async () => {
16
- const { ClaudeAcpAgent } = await import("../acp-agent.js");
17
- agent = new ClaudeAcpAgent(mockClient);
18
- });
19
-
20
- describe("capability advertisement", () => {
21
- it("advertises sessionCapabilities.fork", async () => {
22
- const response = await agent.initialize({
23
- protocolVersion: 1,
24
- clientInfo: { name: "test-client", version: "1.0.0" },
25
- });
26
-
27
- expect(response.agentCapabilities?.sessionCapabilities?.fork).toEqual({});
28
- });
29
-
30
- it("advertises loadSession capability", async () => {
31
- const response = await agent.initialize({
32
- protocolVersion: 1,
33
- clientInfo: { name: "test-client", version: "1.0.0" },
34
- });
35
-
36
- expect(response.agentCapabilities?.loadSession).toBe(true);
37
- });
38
-
39
- it("includes all expected agent capabilities", async () => {
40
- const response = await agent.initialize({
41
- protocolVersion: 1,
42
- clientInfo: { name: "test-client", version: "1.0.0" },
43
- });
44
-
45
- expect(response.agentCapabilities).toMatchObject({
46
- promptCapabilities: {
47
- image: true,
48
- embeddedContext: true,
49
- },
50
- mcpCapabilities: {
51
- http: true,
52
- sse: true,
53
- },
54
- sessionCapabilities: {
55
- fork: {},
56
- resume: {},
57
- },
58
- loadSession: true,
59
- });
60
- });
61
- });
62
-
63
- describe("forkSession", () => {
64
- it("method exists on ClaudeAcpAgent", () => {
65
- expect(typeof agent.forkSession).toBe("function");
66
- });
67
-
68
- it("accepts ForkSessionRequest params with sessionId", () => {
69
- // Verify method signature accepts minimal params
70
- expect(agent.forkSession).toBeInstanceOf(Function);
71
- expect(agent.forkSession.length).toBeGreaterThanOrEqual(1);
72
- });
73
-
74
- it("accepts optional _meta with cwd and mcpServers", () => {
75
- // Verify method can handle extended params via _meta
76
- expect(agent.forkSession).toBeInstanceOf(Function);
77
- });
78
- });
79
-
80
- describe("loadSession", () => {
81
- it("method exists on ClaudeAcpAgent", () => {
82
- expect(typeof agent.loadSession).toBe("function");
83
- });
84
-
85
- it("accepts LoadSessionRequest params", () => {
86
- // Verify method signature accepts params (sessionId, cwd, mcpServers)
87
- expect(agent.loadSession).toBeInstanceOf(Function);
88
- expect(agent.loadSession.length).toBeGreaterThanOrEqual(1);
89
- });
90
- });
91
-
92
- describe("deprecated methods", () => {
93
- it("unstable_forkSession delegates to forkSession", () => {
94
- expect(typeof agent.unstable_forkSession).toBe("function");
95
- });
96
-
97
- it("unstable_resumeSession delegates to loadSession", () => {
98
- expect(typeof agent.unstable_resumeSession).toBe("function");
99
- });
100
- });
101
-
102
- describe("extMethod _session/inject", () => {
103
- it("extMethod exists on ClaudeAcpAgent", () => {
104
- expect(typeof agent.extMethod).toBe("function");
105
- });
106
-
107
- it("returns error for non-existent session", async () => {
108
- const result = await agent.extMethod("_session/inject", {
109
- sessionId: "non-existent-session",
110
- message: "test message",
111
- });
112
-
113
- expect(result).toEqual({
114
- success: false,
115
- error: "Session non-existent-session not found",
116
- });
117
- });
118
-
119
- it("throws for unknown extension methods", async () => {
120
- await expect(
121
- agent.extMethod("_unknown/method", {}),
122
- ).rejects.toThrow();
123
- });
124
-
125
- it("accepts string messages", async () => {
126
- // Mock a session in the agent's sessions map
127
- const mockSession = {
128
- query: {} as any,
129
- input: {
130
- push: () => {},
131
- end: () => {},
132
- },
133
- cancelled: false,
134
- permissionMode: "default" as const,
135
- settingsManager: {} as any,
136
- abortController: new AbortController(),
137
- cwd: "/tmp",
138
- };
139
- (agent as any).sessions["test-session"] = mockSession;
140
-
141
- const result = await agent.extMethod("_session/inject", {
142
- sessionId: "test-session",
143
- message: "test message",
144
- });
145
-
146
- expect(result).toEqual({ success: true });
147
-
148
- // Cleanup
149
- delete (agent as any).sessions["test-session"];
150
- });
151
-
152
- it("accepts ContentBlock array messages", async () => {
153
- // Mock a session
154
- const mockSession = {
155
- query: {} as any,
156
- input: {
157
- push: () => {},
158
- end: () => {},
159
- },
160
- cancelled: false,
161
- permissionMode: "default" as const,
162
- settingsManager: {} as any,
163
- abortController: new AbortController(),
164
- cwd: "/tmp",
165
- };
166
- (agent as any).sessions["test-session"] = mockSession;
167
-
168
- const result = await agent.extMethod("_session/inject", {
169
- sessionId: "test-session",
170
- message: [
171
- { type: "text", text: "first part" },
172
- { type: "text", text: "second part" },
173
- ],
174
- });
175
-
176
- expect(result).toEqual({ success: true });
177
-
178
- // Cleanup
179
- delete (agent as any).sessions["test-session"];
180
- });
181
-
182
- it("returns error for cancelled session", async () => {
183
- // Mock a cancelled session
184
- const mockSession = {
185
- query: {} as any,
186
- input: {
187
- push: () => {},
188
- end: () => {},
189
- },
190
- cancelled: true, // Session is cancelled
191
- permissionMode: "default" as const,
192
- settingsManager: {} as any,
193
- abortController: new AbortController(),
194
- cwd: "/tmp",
195
- };
196
- (agent as any).sessions["cancelled-session"] = mockSession;
197
-
198
- const result = await agent.extMethod("_session/inject", {
199
- sessionId: "cancelled-session",
200
- message: "test message",
201
- });
202
-
203
- expect(result).toEqual({
204
- success: false,
205
- error: "Session cancelled-session is cancelled",
206
- });
207
-
208
- // Cleanup
209
- delete (agent as any).sessions["cancelled-session"];
210
- });
211
-
212
- it("actually pushes message to session input", async () => {
213
- // Track what was pushed
214
- const pushedMessages: any[] = [];
215
- const mockSession = {
216
- query: {} as any,
217
- input: {
218
- push: (msg: any) => pushedMessages.push(msg),
219
- end: () => {},
220
- },
221
- cancelled: false,
222
- permissionMode: "default" as const,
223
- settingsManager: {} as any,
224
- abortController: new AbortController(),
225
- cwd: "/tmp",
226
- };
227
- (agent as any).sessions["push-test-session"] = mockSession;
228
-
229
- await agent.extMethod("_session/inject", {
230
- sessionId: "push-test-session",
231
- message: "hello world",
232
- });
233
-
234
- expect(pushedMessages.length).toBe(1);
235
- expect(pushedMessages[0].type).toBe("user");
236
- expect(pushedMessages[0].message.role).toBe("user");
237
- expect(pushedMessages[0].message.content).toContainEqual({
238
- type: "text",
239
- text: "hello world",
240
- });
241
-
242
- // Cleanup
243
- delete (agent as any).sessions["push-test-session"];
244
- });
245
- });
246
-
247
- describe("extMethod _session/listSkills", () => {
248
- it("returns error for non-existent session", async () => {
249
- const result = await agent.extMethod("_session/listSkills", {
250
- sessionId: "non-existent-session",
251
- });
252
-
253
- expect(result).toEqual({
254
- success: false,
255
- error: "Session non-existent-session not found",
256
- });
257
- });
258
-
259
- it("returns empty skills array when session has no skills", async () => {
260
- // Mock a session without skills
261
- const mockSession = {
262
- query: {} as any,
263
- input: {
264
- push: () => {},
265
- end: () => {},
266
- },
267
- cancelled: false,
268
- permissionMode: "default" as const,
269
- settingsManager: {} as any,
270
- abortController: new AbortController(),
271
- cwd: "/tmp",
272
- compaction: {
273
- enabled: false,
274
- threshold: 100000,
275
- currentTokens: 0,
276
- isCompacting: false,
277
- },
278
- // No skills field
279
- };
280
- (agent as any).sessions["test-session"] = mockSession;
281
-
282
- const result = await agent.extMethod("_session/listSkills", {
283
- sessionId: "test-session",
284
- });
285
-
286
- expect(result).toEqual({
287
- success: true,
288
- skills: [],
289
- });
290
-
291
- // Cleanup
292
- delete (agent as any).sessions["test-session"];
293
- });
294
-
295
- it("returns skills array when session has skills", async () => {
296
- // Mock a session with skills
297
- const mockSkills = [
298
- { name: "pdf-processor", description: "Process PDF files", source: "project" },
299
- { name: "code-reviewer", description: "Review code changes", source: "user" },
300
- ];
301
- const mockSession = {
302
- query: {} as any,
303
- input: {
304
- push: () => {},
305
- end: () => {},
306
- },
307
- cancelled: false,
308
- permissionMode: "default" as const,
309
- settingsManager: {} as any,
310
- abortController: new AbortController(),
311
- cwd: "/tmp",
312
- compaction: {
313
- enabled: false,
314
- threshold: 100000,
315
- currentTokens: 0,
316
- isCompacting: false,
317
- },
318
- skills: mockSkills,
319
- };
320
- (agent as any).sessions["skills-session"] = mockSession;
321
-
322
- const result = await agent.extMethod("_session/listSkills", {
323
- sessionId: "skills-session",
324
- });
325
-
326
- expect(result).toEqual({
327
- success: true,
328
- skills: mockSkills,
329
- });
330
-
331
- // Cleanup
332
- delete (agent as any).sessions["skills-session"];
333
- });
334
- });
335
- });