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
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Integration Strategy Registry
3
+ *
4
+ * Factory registry for creating named integration strategies.
5
+ * Supports registration of custom strategies alongside built-in ones.
6
+ *
7
+ * @module workspace/strategies/registry
8
+ */
9
+
10
+ import type {
11
+ IntegrationStrategy,
12
+ IntegrationStrategyFactory,
13
+ } from "./types.js";
14
+ import { QueueIntegrationStrategy } from "./queue.js";
15
+ import { TrunkIntegrationStrategy } from "./trunk.js";
16
+ import { OptimisticIntegrationStrategy } from "./optimistic.js";
17
+
18
+ // =============================================================================
19
+ // Registry
20
+ // =============================================================================
21
+
22
+ export class IntegrationStrategyRegistry {
23
+ private factories = new Map<string, IntegrationStrategyFactory>();
24
+
25
+ /**
26
+ * Register a strategy factory under a name.
27
+ */
28
+ register(name: string, factory: IntegrationStrategyFactory): void {
29
+ this.factories.set(name, factory);
30
+ }
31
+
32
+ /**
33
+ * Create a strategy instance by name.
34
+ *
35
+ * @throws Error if the strategy name is not registered
36
+ */
37
+ get(name: string, config?: Record<string, unknown>): IntegrationStrategy {
38
+ const factory = this.factories.get(name);
39
+ if (!factory) {
40
+ throw new Error(
41
+ `Unknown integration strategy: '${name}'. Available: ${this.list().join(", ")}`
42
+ );
43
+ }
44
+ return factory(config);
45
+ }
46
+
47
+ /**
48
+ * Check if a strategy is registered.
49
+ */
50
+ has(name: string): boolean {
51
+ return this.factories.has(name);
52
+ }
53
+
54
+ /**
55
+ * List registered strategy names.
56
+ */
57
+ list(): string[] {
58
+ return Array.from(this.factories.keys());
59
+ }
60
+ }
61
+
62
+ // =============================================================================
63
+ // Default Registry
64
+ // =============================================================================
65
+
66
+ /**
67
+ * Create a registry with all built-in strategies registered.
68
+ */
69
+ export function createDefaultStrategyRegistry(): IntegrationStrategyRegistry {
70
+ const registry = new IntegrationStrategyRegistry();
71
+
72
+ registry.register(
73
+ "queue",
74
+ (config) => new QueueIntegrationStrategy(config)
75
+ );
76
+ registry.register(
77
+ "trunk",
78
+ (config) => new TrunkIntegrationStrategy(config)
79
+ );
80
+ registry.register(
81
+ "optimistic",
82
+ (config) => new OptimisticIntegrationStrategy(config)
83
+ );
84
+
85
+ return registry;
86
+ }
87
+
88
+ /** Singleton default registry */
89
+ export const defaultStrategyRegistry = createDefaultStrategyRegistry();
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Trunk Integration Strategy
3
+ *
4
+ * Direct push to integration branch with rebase-and-retry on conflict.
5
+ * Suited for trunk-based development workflows where changes are
6
+ * integrated immediately.
7
+ *
8
+ * @module workspace/strategies/trunk
9
+ */
10
+
11
+ import { execSync } from "child_process";
12
+ import type {
13
+ IntegrationStrategy,
14
+ LandRequest,
15
+ LandResult,
16
+ TrunkStrategyConfig,
17
+ } from "./types.js";
18
+
19
+ export class TrunkIntegrationStrategy implements IntegrationStrategy {
20
+ readonly name = "trunk";
21
+ private maxRetries: number;
22
+ private conflictAction: "abandon" | "queued_for_resolution";
23
+
24
+ constructor(config?: Record<string, unknown>) {
25
+ const typedConfig = config as TrunkStrategyConfig | undefined;
26
+ this.maxRetries = typedConfig?.maxRetries ?? 3;
27
+ this.conflictAction = typedConfig?.conflictAction ?? "abandon";
28
+ }
29
+
30
+ async land(request: LandRequest): Promise<LandResult> {
31
+ const { workspacePath, targetBranch } = request;
32
+ let retryCount = 0;
33
+
34
+ while (retryCount <= this.maxRetries) {
35
+ try {
36
+ // Fetch latest target branch
37
+ this.git(workspacePath, `fetch origin ${targetBranch}`);
38
+
39
+ // Rebase our changes onto latest target
40
+ try {
41
+ this.git(workspacePath, `rebase origin/${targetBranch}`);
42
+ } catch {
43
+ // Rebase conflict — abort and retry or give up
44
+ try {
45
+ this.git(workspacePath, "rebase --abort");
46
+ } catch {
47
+ /* already clean */
48
+ }
49
+
50
+ if (retryCount >= this.maxRetries) {
51
+ const conflictFiles = this.getConflictFiles(workspacePath);
52
+ return {
53
+ status: "conflict",
54
+ conflictFiles,
55
+ action: this.conflictAction === "abandon" ? "abandoned" : this.conflictAction,
56
+ retryCount,
57
+ error: `Rebase conflict after ${retryCount + 1} attempts`,
58
+ };
59
+ }
60
+
61
+ retryCount++;
62
+ continue;
63
+ }
64
+
65
+ // Push to target branch
66
+ try {
67
+ this.git(workspacePath, `push origin HEAD:${targetBranch}`);
68
+ } catch {
69
+ // Push rejected (concurrent update) — retry
70
+ if (retryCount >= this.maxRetries) {
71
+ return {
72
+ status: "conflict",
73
+ action: this.conflictAction === "abandon" ? "abandoned" : this.conflictAction,
74
+ retryCount,
75
+ error: `Push rejected after ${retryCount + 1} attempts`,
76
+ };
77
+ }
78
+
79
+ retryCount++;
80
+ continue;
81
+ }
82
+
83
+ // Get the HEAD commit hash
84
+ const commitHash = this.git(workspacePath, "rev-parse HEAD").trim();
85
+
86
+ return {
87
+ status: "landed",
88
+ commitHash,
89
+ retryCount,
90
+ };
91
+ } catch (error) {
92
+ return {
93
+ status: "failed",
94
+ retryCount,
95
+ error: `Unexpected error: ${error instanceof Error ? error.message : String(error)}`,
96
+ };
97
+ }
98
+ }
99
+
100
+ return {
101
+ status: "failed",
102
+ retryCount,
103
+ error: "Exceeded maximum retries",
104
+ };
105
+ }
106
+
107
+ private git(cwd: string, args: string): string {
108
+ return execSync(`git ${args}`, {
109
+ cwd,
110
+ encoding: "utf-8",
111
+ timeout: 30000,
112
+ });
113
+ }
114
+
115
+ private getConflictFiles(cwd: string): string[] {
116
+ try {
117
+ const output = this.git(cwd, "diff --name-only --diff-filter=U");
118
+ return output.split("\n").filter(Boolean);
119
+ } catch {
120
+ return [];
121
+ }
122
+ }
123
+ }
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Integration Strategy Types
3
+ *
4
+ * Defines the pluggable strategy interface for integrating worker changes
5
+ * into the integration branch. Strategies determine how completed work
6
+ * is landed (merge queue, direct push, optimistic push).
7
+ *
8
+ * @module workspace/strategies/types
9
+ */
10
+
11
+ // =============================================================================
12
+ // Land Request / Result
13
+ // =============================================================================
14
+
15
+ /**
16
+ * Result status from a land operation
17
+ */
18
+ export type LandResultStatus = "landed" | "conflict" | "failed";
19
+
20
+ /**
21
+ * Request to land changes from a worker branch
22
+ */
23
+ export interface LandRequest {
24
+ /** Worker's branch with completed changes */
25
+ sourceBranch: string;
26
+
27
+ /** Target integration branch */
28
+ targetBranch: string;
29
+
30
+ /** Workspace path where git operations run */
31
+ workspacePath: string;
32
+
33
+ /** Agent ID of the worker */
34
+ agentId: string;
35
+
36
+ /** Task ID associated with the changes */
37
+ taskId?: string;
38
+
39
+ /** Stream ID for the integration stream */
40
+ streamId?: string;
41
+
42
+ /** Commit message for the merge/rebase */
43
+ commitMessage?: string;
44
+ }
45
+
46
+ /**
47
+ * Result of a land operation
48
+ */
49
+ export interface LandResult {
50
+ /** Whether the landing was successful */
51
+ status: LandResultStatus;
52
+
53
+ /** Merge/rebase commit hash if landed */
54
+ commitHash?: string;
55
+
56
+ /** Merge request ID if submitted to a queue */
57
+ mergeRequestId?: string;
58
+
59
+ /** Files with conflicts if status is "conflict" */
60
+ conflictFiles?: string[];
61
+
62
+ /** Action taken on conflict exhaustion */
63
+ action?: "abandoned" | "queued_for_resolution";
64
+
65
+ /** Error message if status is "failed" */
66
+ error?: string;
67
+
68
+ /** Number of retry attempts made */
69
+ retryCount?: number;
70
+ }
71
+
72
+ // =============================================================================
73
+ // Strategy Interface
74
+ // =============================================================================
75
+
76
+ /**
77
+ * Integration strategy interface.
78
+ *
79
+ * Strategies determine how completed worker changes are integrated
80
+ * into the target branch. Different strategies suit different workflows:
81
+ * - queue: Sequential merge via integrator (default, existing behavior)
82
+ * - trunk: Direct push with rebase-and-retry
83
+ * - optimistic: Push immediately, validate later (judge validates)
84
+ */
85
+ export interface IntegrationStrategy {
86
+ /** Strategy name */
87
+ readonly name: string;
88
+
89
+ /**
90
+ * Land changes from source branch to target branch.
91
+ */
92
+ land(request: LandRequest): Promise<LandResult>;
93
+
94
+ /**
95
+ * Optional initialization hook (called on TeamRuntime.initialize()).
96
+ */
97
+ initialize?(): Promise<void>;
98
+
99
+ /**
100
+ * Optional cleanup hook (called on TeamRuntime.teardown()).
101
+ */
102
+ close?(): Promise<void>;
103
+ }
104
+
105
+ // =============================================================================
106
+ // Strategy Configuration Types
107
+ // =============================================================================
108
+
109
+ /**
110
+ * Configuration for the queue strategy
111
+ */
112
+ export interface QueueStrategyConfig {
113
+ /** Priority for submitted merge requests (default: 100) */
114
+ defaultPriority?: number;
115
+ }
116
+
117
+ /**
118
+ * Configuration for the trunk strategy
119
+ */
120
+ export interface TrunkStrategyConfig {
121
+ /** Maximum rebase-and-retry attempts on conflict (default: 3) */
122
+ maxRetries?: number;
123
+
124
+ /** Action on conflict exhaustion (default: "abandon") */
125
+ conflictAction?: "abandon" | "queued_for_resolution";
126
+ }
127
+
128
+ /**
129
+ * Configuration for the optimistic strategy
130
+ */
131
+ export interface OptimisticStrategyConfig {
132
+ /** Maximum rebase-and-retry attempts on conflict (default: 3) */
133
+ maxRetries?: number;
134
+ }
135
+
136
+ // =============================================================================
137
+ // Factory
138
+ // =============================================================================
139
+
140
+ /**
141
+ * Factory function signature for creating strategies
142
+ */
143
+ export type IntegrationStrategyFactory = (
144
+ config?: Record<string, unknown>
145
+ ) => IntegrationStrategy;
@@ -8,7 +8,7 @@
8
8
  * @implements [[s-7ktd]] Workspace types section
9
9
  */
10
10
 
11
- import type { Stream, WorkerTask, StartTaskResult } from 'dataplane';
11
+ import type { Stream, WorkerTask, StartTaskResult } from 'git-cascade';
12
12
  import type { MergeQueueInterface } from './merge-queue/types.js';
13
13
 
14
14
  /**
@@ -8,7 +8,7 @@
8
8
  * @implements [[s-7ktd]] WorkspaceManager API section
9
9
  */
10
10
 
11
- import type { Stream, WorkerTask, StartTaskResult, AgentWorktree, CleanupWorkerBranchesOptions, CleanupResult } from 'dataplane';
11
+ import type { Stream, WorkerTask, StartTaskResult, AgentWorktree, CleanupWorkerBranchesOptions, CleanupResult } from 'git-cascade';
12
12
  import { DataplaneAdapter } from './dataplane-adapter.js';
13
13
  import type { DataplaneConfig, WorktreePoolConfig } from './config.js';
14
14
  import { DEFAULT_POOL_CONFIG } from './config.js';
@@ -1,59 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "mcp__plugin_sudocode_sudocode__show_spec",
5
- "mcp__plugin_sudocode_sudocode__list_specs",
6
- "mcp__plugin_sudocode_sudocode__upsert_issue",
7
- "mcp__plugin_sudocode_sudocode__link",
8
- "Bash(npm test:*)",
9
- "Bash(npx vitest:*)",
10
- "Bash(npm run test:run:*)",
11
- "Bash(npm install:*)",
12
- "mcp__plugin_sudocode_sudocode__add_feedback",
13
- "mcp__plugin_sudocode_sudocode__show_issue",
14
- "mcp__plugin_sudocode_sudocode__ready",
15
- "mcp__plugin_sudocode_sudocode__list_issues",
16
- "Bash(wc:*)",
17
- "Bash(npm run build:*)",
18
- "Skill(sudocode:sudocode)",
19
- "Bash(find:*)",
20
- "Bash(jq:*)",
21
- "Bash(for spec in s-60tc s-7ktd s-32xs s-bcqm s-8472 s-9rld)",
22
- "Bash(do)",
23
- "Bash(echo:*)",
24
- "Bash(done)",
25
- "Bash(grep:*)",
26
- "mcp__plugin_sudocode_sudocode__upsert_spec",
27
- "mcp__macro-agent__check_messages",
28
- "mcp__macro-agent__get_hierarchy",
29
- "Bash(git branch:*)",
30
- "Bash(git worktree:*)",
31
- "Bash(npm run test:e2e:*)",
32
- "Bash(node --experimental-strip-types:*)",
33
- "Bash(npx tsx:*)",
34
- "Bash(for:*)",
35
- "Bash(do echo \"Testing: $f\" npx vitest run --config vitest.e2e.config.ts \"$f\")",
36
- "Bash(__NEW_LINE_6544485f4eb6ac41__ echo \"Testing full copy...\")",
37
- "Bash(ls:*)",
38
- "Bash(git status:*)",
39
- "Bash(RUN_E2E_TESTS=true npx vitest:*)",
40
- "Bash(RUN_E2E_TESTS=true npm run test:e2e:*)",
41
- "Bash(npx tsc:*)",
42
- "Bash(npm run test:*)",
43
- "Bash(node:*)",
44
- "Bash(RUN_FULL_AGENT_TESTS=true npx vitest:*)",
45
- "Bash(RUN_FULL_AGENT_TESTS=true npm run test:e2e:*)",
46
- "Bash(MACRO_AGENT_ID=test_agent MACRO_INSTANCE_ID=test_instance MACRO_BASE_DIR=/tmp/test-mcp timeout 3 node:*)",
47
- "Bash(MACRO_AGENT_ID=test_agent MACRO_INSTANCE_ID=test_instance timeout 5 npx multiagent-mcp:*)",
48
- "Bash(npm view:*)",
49
- "Bash(npm ls:*)",
50
- "Bash(npx @sudocode-ai/claude-code-acp@latest --version)",
51
- "WebSearch",
52
- "Bash(npm link:*)",
53
- "Bash(npm unlink:*)",
54
- "mcp__macro-agent__spawn_agent",
55
- "Bash(git stash:*)",
56
- "Bash(do echo \"Testing $f\")"
57
- ]
58
- }
59
- }
@@ -1,99 +0,0 @@
1
- /**
2
- * Address Translation Utilities
3
- *
4
- * Provides bidirectional translation between MAP addresses and
5
- * legacy MessageRouter channel format. Used during migration to
6
- * support both addressing schemes.
7
- *
8
- * @see specs/s-5qir_map_integration_for_macro_agent.md
9
- */
10
- import type { Address } from "../types.js";
11
- import type { ChannelType } from "../../router/types.js";
12
- import type { AgentId } from "../../store/types/index.js";
13
- /**
14
- * Legacy channel format from MessageRouter.
15
- * Used for translation during migration.
16
- */
17
- export interface LegacyChannel {
18
- type: ChannelType;
19
- /** Target ID (agent_id, task_id, or topic name) */
20
- target: string;
21
- /** Role name for role channels */
22
- role?: string;
23
- /** Coordinator ID for scoped role channels */
24
- coordinatorId?: AgentId;
25
- /** Broadcast scope */
26
- scope?: string;
27
- }
28
- /**
29
- * Translate a MAP Address to legacy MessageRouter channel format.
30
- *
31
- * Used during migration to route messages through the existing
32
- * MessageRouter while accepting MAP-style addresses.
33
- *
34
- * @param address - MAP address to translate
35
- * @returns Legacy channel format
36
- * @throws Error if address type is not supported in legacy format
37
- */
38
- export declare function addressToChannel(address: Address): LegacyChannel;
39
- /**
40
- * Translate a legacy MessageRouter channel to MAP address format.
41
- *
42
- * Used to migrate existing code to the new addressing scheme.
43
- *
44
- * @param channel - Legacy channel to translate
45
- * @returns MAP address
46
- * @throws Error if channel type is unknown
47
- */
48
- export declare function channelToAddress(channel: LegacyChannel): Address;
49
- /**
50
- * Check if a MAP address can be translated to legacy channel format.
51
- *
52
- * Returns false for address types that were added in MAP and have
53
- * no equivalent in the legacy MessageRouter.
54
- *
55
- * @param address - Address to check
56
- * @returns true if address can be translated to legacy format
57
- */
58
- export declare function isLegacyCompatible(address: Address): boolean;
59
- /**
60
- * Get a list of address features that are not legacy compatible.
61
- *
62
- * @param address - Address to check
63
- * @returns Array of incompatible feature names, empty if fully compatible
64
- */
65
- export declare function getLegacyIncompatibilities(address: Address): string[];
66
- /**
67
- * Error thrown when a MAP address cannot be translated to legacy format.
68
- */
69
- export declare class AddressTranslationError extends Error {
70
- readonly address: Address;
71
- constructor(message: string, address: Address);
72
- }
73
- /**
74
- * Error thrown when a legacy channel cannot be translated to MAP format.
75
- */
76
- export declare class ChannelTranslationError extends Error {
77
- readonly channel: LegacyChannel;
78
- constructor(message: string, channel: LegacyChannel);
79
- }
80
- /**
81
- * Attempt to translate an address, returning undefined if not compatible.
82
- *
83
- * @param address - Address to translate
84
- * @returns Legacy channel or undefined if not compatible
85
- */
86
- export declare function tryAddressToChannel(address: Address): LegacyChannel | undefined;
87
- /**
88
- * Create a mapping table entry for documentation/debugging.
89
- */
90
- export interface AddressMapping {
91
- mapAddress: string;
92
- legacyChannel: string;
93
- notes?: string;
94
- }
95
- /**
96
- * Get the address mapping table for documentation.
97
- */
98
- export declare function getAddressMappingTable(): AddressMapping[];
99
- //# sourceMappingURL=address-translation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"address-translation.d.ts","sourceRoot":"","sources":["../../../src/map/utils/address-translation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,OAAO,EASR,MAAM,aAAa,CAAC;AAcrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAU,MAAM,4BAA4B,CAAC;AAMlE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CA0FhE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAsChE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAW5D;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAiBrE;AAMD;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEd,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;CAK9C;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;gBAEpB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;CAKpD;AAMD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,GACf,aAAa,GAAG,SAAS,CAU3B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,cAAc,EAAE,CAuDzD"}