macro-agent 0.1.0 → 0.1.2

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 (660) hide show
  1. package/.claude/settings.local.json +3 -1
  2. package/.sudocode/issues.jsonl +28 -0
  3. package/.sudocode/specs.jsonl +8 -0
  4. package/CLAUDE.md +25 -17
  5. package/README.md +11 -29
  6. package/dist/acp/macro-agent.d.ts +15 -0
  7. package/dist/acp/macro-agent.d.ts.map +1 -1
  8. package/dist/acp/macro-agent.js +131 -35
  9. package/dist/acp/macro-agent.js.map +1 -1
  10. package/dist/acp/types.d.ts +32 -1
  11. package/dist/acp/types.d.ts.map +1 -1
  12. package/dist/acp/types.js.map +1 -1
  13. package/dist/agent/agent-manager.d.ts +65 -1
  14. package/dist/agent/agent-manager.d.ts.map +1 -1
  15. package/dist/agent/agent-manager.js +544 -200
  16. package/dist/agent/agent-manager.js.map +1 -1
  17. package/dist/agent/types.d.ts +8 -1
  18. package/dist/agent/types.d.ts.map +1 -1
  19. package/dist/agent/types.js.map +1 -1
  20. package/dist/api/server.d.ts +8 -1
  21. package/dist/api/server.d.ts.map +1 -1
  22. package/dist/api/server.js +136 -8
  23. package/dist/api/server.js.map +1 -1
  24. package/dist/api/types.d.ts +1 -1
  25. package/dist/api/types.d.ts.map +1 -1
  26. package/dist/auth/index.d.ts +2 -0
  27. package/dist/auth/index.d.ts.map +1 -0
  28. package/dist/auth/index.js +2 -0
  29. package/dist/auth/index.js.map +1 -0
  30. package/dist/auth/token.d.ts +41 -0
  31. package/dist/auth/token.d.ts.map +1 -0
  32. package/dist/auth/token.js +73 -0
  33. package/dist/auth/token.js.map +1 -0
  34. package/dist/cli/acp.d.ts +2 -23
  35. package/dist/cli/acp.d.ts.map +1 -1
  36. package/dist/cli/acp.js +197 -61
  37. package/dist/cli/acp.js.map +1 -1
  38. package/dist/cli/index.js +152 -16
  39. package/dist/cli/index.js.map +1 -1
  40. package/dist/cli/mcp.d.ts +6 -0
  41. package/dist/cli/mcp.d.ts.map +1 -1
  42. package/dist/cli/mcp.js +279 -173
  43. package/dist/cli/mcp.js.map +1 -1
  44. package/dist/cli/parse-args.d.ts +20 -0
  45. package/dist/cli/parse-args.d.ts.map +1 -0
  46. package/dist/cli/parse-args.js +43 -0
  47. package/dist/cli/parse-args.js.map +1 -0
  48. package/dist/cli/stable-instance-id.d.ts +8 -0
  49. package/dist/cli/stable-instance-id.d.ts.map +1 -0
  50. package/dist/cli/stable-instance-id.js +14 -0
  51. package/dist/cli/stable-instance-id.js.map +1 -0
  52. package/dist/config/project-config.d.ts +85 -7
  53. package/dist/config/project-config.d.ts.map +1 -1
  54. package/dist/config/project-config.js +133 -20
  55. package/dist/config/project-config.js.map +1 -1
  56. package/dist/index.d.ts +1 -0
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +2 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/lifecycle/handlers/index.d.ts +7 -3
  61. package/dist/lifecycle/handlers/index.d.ts.map +1 -1
  62. package/dist/lifecycle/handlers/index.js +25 -8
  63. package/dist/lifecycle/handlers/index.js.map +1 -1
  64. package/dist/lifecycle/types.d.ts +2 -0
  65. package/dist/lifecycle/types.d.ts.map +1 -1
  66. package/dist/lifecycle/types.js.map +1 -1
  67. package/dist/map/adapter/acp-over-map.d.ts +17 -0
  68. package/dist/map/adapter/acp-over-map.d.ts.map +1 -1
  69. package/dist/map/adapter/acp-over-map.js +384 -23
  70. package/dist/map/adapter/acp-over-map.js.map +1 -1
  71. package/dist/map/adapter/connection-manager.d.ts.map +1 -1
  72. package/dist/map/adapter/connection-manager.js +3 -0
  73. package/dist/map/adapter/connection-manager.js.map +1 -1
  74. package/dist/map/adapter/event-log.d.ts +87 -0
  75. package/dist/map/adapter/event-log.d.ts.map +1 -0
  76. package/dist/map/adapter/event-log.js +122 -0
  77. package/dist/map/adapter/event-log.js.map +1 -0
  78. package/dist/map/adapter/event-translator.js +6 -6
  79. package/dist/map/adapter/event-translator.js.map +1 -1
  80. package/dist/map/adapter/extensions/agent-lifecycle.d.ts +82 -0
  81. package/dist/map/adapter/extensions/agent-lifecycle.d.ts.map +1 -0
  82. package/dist/map/adapter/extensions/agent-lifecycle.js +164 -0
  83. package/dist/map/adapter/extensions/agent-lifecycle.js.map +1 -0
  84. package/dist/map/adapter/extensions/index.d.ts +13 -1
  85. package/dist/map/adapter/extensions/index.d.ts.map +1 -1
  86. package/dist/map/adapter/extensions/index.js +61 -0
  87. package/dist/map/adapter/extensions/index.js.map +1 -1
  88. package/dist/map/adapter/extensions/mcp-bridge.d.ts +57 -0
  89. package/dist/map/adapter/extensions/mcp-bridge.d.ts.map +1 -0
  90. package/dist/map/adapter/extensions/mcp-bridge.js +745 -0
  91. package/dist/map/adapter/extensions/mcp-bridge.js.map +1 -0
  92. package/dist/map/adapter/extensions/rename.d.ts +29 -0
  93. package/dist/map/adapter/extensions/rename.d.ts.map +1 -0
  94. package/dist/map/adapter/extensions/rename.js +49 -0
  95. package/dist/map/adapter/extensions/rename.js.map +1 -0
  96. package/dist/map/adapter/extensions/streams.d.ts +95 -0
  97. package/dist/map/adapter/extensions/streams.d.ts.map +1 -0
  98. package/dist/map/adapter/extensions/streams.js +515 -0
  99. package/dist/map/adapter/extensions/streams.js.map +1 -0
  100. package/dist/map/adapter/extensions/task.d.ts.map +1 -1
  101. package/dist/map/adapter/extensions/task.js +10 -0
  102. package/dist/map/adapter/extensions/task.js.map +1 -1
  103. package/dist/map/adapter/extensions/update-metadata.d.ts +29 -0
  104. package/dist/map/adapter/extensions/update-metadata.d.ts.map +1 -0
  105. package/dist/map/adapter/extensions/update-metadata.js +67 -0
  106. package/dist/map/adapter/extensions/update-metadata.js.map +1 -0
  107. package/dist/map/adapter/index.d.ts +2 -1
  108. package/dist/map/adapter/index.d.ts.map +1 -1
  109. package/dist/map/adapter/index.js +10 -2
  110. package/dist/map/adapter/index.js.map +1 -1
  111. package/dist/map/adapter/interface.d.ts +2 -0
  112. package/dist/map/adapter/interface.d.ts.map +1 -1
  113. package/dist/map/adapter/map-adapter.d.ts +3 -0
  114. package/dist/map/adapter/map-adapter.d.ts.map +1 -1
  115. package/dist/map/adapter/map-adapter.js +258 -35
  116. package/dist/map/adapter/map-adapter.js.map +1 -1
  117. package/dist/map/adapter/subscription-manager.d.ts.map +1 -1
  118. package/dist/map/adapter/subscription-manager.js +5 -1
  119. package/dist/map/adapter/subscription-manager.js.map +1 -1
  120. package/dist/map/adapter/types.d.ts +3 -1
  121. package/dist/map/adapter/types.d.ts.map +1 -1
  122. package/dist/mcp/map-client.d.ts +39 -0
  123. package/dist/mcp/map-client.d.ts.map +1 -0
  124. package/dist/mcp/map-client.js +129 -0
  125. package/dist/mcp/map-client.js.map +1 -0
  126. package/dist/mcp/mcp-server.d.ts +16 -0
  127. package/dist/mcp/mcp-server.d.ts.map +1 -1
  128. package/dist/mcp/mcp-server.js +125 -88
  129. package/dist/mcp/mcp-server.js.map +1 -1
  130. package/dist/mcp/tools/done.d.ts.map +1 -1
  131. package/dist/mcp/tools/done.js +18 -0
  132. package/dist/mcp/tools/done.js.map +1 -1
  133. package/dist/mcp/types.d.ts +9 -1
  134. package/dist/mcp/types.d.ts.map +1 -1
  135. package/dist/mcp/types.js.map +1 -1
  136. package/dist/metrics/metrics.js +1 -1
  137. package/dist/metrics/metrics.js.map +1 -1
  138. package/dist/roles/builtin/coordinator.d.ts.map +1 -1
  139. package/dist/roles/builtin/coordinator.js +2 -1
  140. package/dist/roles/builtin/coordinator.js.map +1 -1
  141. package/dist/roles/builtin/integrator.d.ts.map +1 -1
  142. package/dist/roles/builtin/integrator.js +2 -1
  143. package/dist/roles/builtin/integrator.js.map +1 -1
  144. package/dist/roles/builtin/worker.d.ts.map +1 -1
  145. package/dist/roles/builtin/worker.js +3 -1
  146. package/dist/roles/builtin/worker.js.map +1 -1
  147. package/dist/roles/capabilities.d.ts +9 -1
  148. package/dist/roles/capabilities.d.ts.map +1 -1
  149. package/dist/roles/capabilities.js +27 -7
  150. package/dist/roles/capabilities.js.map +1 -1
  151. package/dist/roles/config-loader.d.ts +6 -6
  152. package/dist/roles/config-loader.d.ts.map +1 -1
  153. package/dist/roles/config-loader.js +8 -7
  154. package/dist/roles/config-loader.js.map +1 -1
  155. package/dist/roles/registry.d.ts +2 -2
  156. package/dist/roles/registry.js +2 -2
  157. package/dist/roles/types.d.ts +3 -1
  158. package/dist/roles/types.d.ts.map +1 -1
  159. package/dist/server/combined-server.d.ts +28 -1
  160. package/dist/server/combined-server.d.ts.map +1 -1
  161. package/dist/server/combined-server.js +111 -8
  162. package/dist/server/combined-server.js.map +1 -1
  163. package/dist/store/event-store.d.ts +2 -1
  164. package/dist/store/event-store.d.ts.map +1 -1
  165. package/dist/store/event-store.js +80 -24
  166. package/dist/store/event-store.js.map +1 -1
  167. package/dist/store/instance.d.ts +1 -1
  168. package/dist/store/instance.d.ts.map +1 -1
  169. package/dist/store/instance.js +2 -2
  170. package/dist/store/instance.js.map +1 -1
  171. package/dist/store/types/agents.d.ts +23 -0
  172. package/dist/store/types/agents.d.ts.map +1 -1
  173. package/dist/store/types/events.d.ts +1 -1
  174. package/dist/store/types/events.d.ts.map +1 -1
  175. package/dist/task/backend/index.d.ts +47 -29
  176. package/dist/task/backend/index.d.ts.map +1 -1
  177. package/dist/task/backend/index.js +109 -71
  178. package/dist/task/backend/index.js.map +1 -1
  179. package/dist/task/backend/memory.d.ts +1 -0
  180. package/dist/task/backend/memory.d.ts.map +1 -1
  181. package/dist/task/backend/memory.js +3 -0
  182. package/dist/task/backend/memory.js.map +1 -1
  183. package/dist/task/backend/opentasks/backend.d.ts +140 -0
  184. package/dist/task/backend/opentasks/backend.d.ts.map +1 -0
  185. package/dist/task/backend/opentasks/backend.js +1023 -0
  186. package/dist/task/backend/opentasks/backend.js.map +1 -0
  187. package/dist/task/backend/opentasks/client.d.ts +337 -0
  188. package/dist/task/backend/opentasks/client.d.ts.map +1 -0
  189. package/dist/task/backend/opentasks/client.js +225 -0
  190. package/dist/task/backend/opentasks/client.js.map +1 -0
  191. package/dist/task/backend/opentasks/daemon-manager.d.ts +89 -0
  192. package/dist/task/backend/opentasks/daemon-manager.d.ts.map +1 -0
  193. package/dist/task/backend/opentasks/daemon-manager.js +195 -0
  194. package/dist/task/backend/opentasks/daemon-manager.js.map +1 -0
  195. package/dist/task/backend/opentasks/index.d.ts +21 -0
  196. package/dist/task/backend/opentasks/index.d.ts.map +1 -0
  197. package/dist/task/backend/opentasks/index.js +21 -0
  198. package/dist/task/backend/opentasks/index.js.map +1 -0
  199. package/dist/task/backend/opentasks/mapping.d.ts +48 -0
  200. package/dist/task/backend/opentasks/mapping.d.ts.map +1 -0
  201. package/dist/task/backend/opentasks/mapping.js +77 -0
  202. package/dist/task/backend/opentasks/mapping.js.map +1 -0
  203. package/dist/task/backend/types.d.ts +33 -53
  204. package/dist/task/backend/types.d.ts.map +1 -1
  205. package/dist/task/backend/types.js +7 -11
  206. package/dist/task/backend/types.js.map +1 -1
  207. package/dist/task/backend/unified-tool-provider.d.ts +57 -0
  208. package/dist/task/backend/unified-tool-provider.d.ts.map +1 -0
  209. package/dist/task/backend/unified-tool-provider.js +623 -0
  210. package/dist/task/backend/unified-tool-provider.js.map +1 -0
  211. package/dist/teams/index.d.ts +3 -1
  212. package/dist/teams/index.d.ts.map +1 -1
  213. package/dist/teams/index.js +2 -0
  214. package/dist/teams/index.js.map +1 -1
  215. package/dist/teams/seed-defaults.d.ts +20 -0
  216. package/dist/teams/seed-defaults.d.ts.map +1 -0
  217. package/dist/teams/seed-defaults.js +71 -0
  218. package/dist/teams/seed-defaults.js.map +1 -0
  219. package/dist/teams/team-loader.d.ts +7 -3
  220. package/dist/teams/team-loader.d.ts.map +1 -1
  221. package/dist/teams/team-loader.js +156 -164
  222. package/dist/teams/team-loader.js.map +1 -1
  223. package/dist/teams/team-manager.d.ts +112 -0
  224. package/dist/teams/team-manager.d.ts.map +1 -0
  225. package/dist/teams/team-manager.js +305 -0
  226. package/dist/teams/team-manager.js.map +1 -0
  227. package/dist/teams/team-runtime.d.ts +125 -19
  228. package/dist/teams/team-runtime.d.ts.map +1 -1
  229. package/dist/teams/team-runtime.js +529 -119
  230. package/dist/teams/team-runtime.js.map +1 -1
  231. package/dist/teams/types.d.ts +41 -151
  232. package/dist/teams/types.d.ts.map +1 -1
  233. package/dist/teams/types.js +2 -3
  234. package/dist/teams/types.js.map +1 -1
  235. package/docs/architecture.md +7 -6
  236. package/docs/configuration.md +26 -62
  237. package/docs/implementation-details.md +5 -5
  238. package/docs/implementation-summary.md +17 -17
  239. package/docs/plan-self-driving-support.md +4 -4
  240. package/docs/spec-self-driving-support.md +10 -10
  241. package/docs/team-templates.md +2 -2
  242. package/docs/teams.md +76 -3
  243. package/docs/troubleshooting.md +10 -11
  244. package/package.json +7 -4
  245. package/references/minimem/.claude/settings.json +7 -0
  246. package/references/minimem/.sudocode/issues.jsonl +18 -0
  247. package/references/minimem/.sudocode/specs.jsonl +1 -0
  248. package/references/minimem/CLAUDE.md +310 -0
  249. package/references/minimem/README.md +562 -0
  250. package/references/minimem/claude-plugin/.claude-plugin/plugin.json +10 -0
  251. package/references/minimem/claude-plugin/.mcp.json +7 -0
  252. package/references/minimem/claude-plugin/README.md +158 -0
  253. package/references/minimem/claude-plugin/commands/recall.md +47 -0
  254. package/references/minimem/claude-plugin/commands/remember.md +41 -0
  255. package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +272 -0
  256. package/references/minimem/claude-plugin/hooks/hooks.json +27 -0
  257. package/references/minimem/claude-plugin/hooks/session-end.sh +86 -0
  258. package/references/minimem/claude-plugin/hooks/session-start.sh +85 -0
  259. package/references/minimem/claude-plugin/skills/memory/SKILL.md +108 -0
  260. package/references/minimem/media/banner.png +0 -0
  261. package/references/minimem/package-lock.json +5373 -0
  262. package/references/minimem/package.json +72 -0
  263. package/references/minimem/scripts/postbuild.js +35 -0
  264. package/references/minimem/src/__tests__/edge-cases.test.ts +371 -0
  265. package/references/minimem/src/__tests__/errors.test.ts +265 -0
  266. package/references/minimem/src/__tests__/helpers.ts +199 -0
  267. package/references/minimem/src/__tests__/internal.test.ts +407 -0
  268. package/references/minimem/src/__tests__/knowledge.test.ts +287 -0
  269. package/references/minimem/src/__tests__/minimem.integration.test.ts +1127 -0
  270. package/references/minimem/src/__tests__/session.test.ts +190 -0
  271. package/references/minimem/src/cli/__tests__/commands.test.ts +759 -0
  272. package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +141 -0
  273. package/references/minimem/src/cli/commands/append.ts +76 -0
  274. package/references/minimem/src/cli/commands/config.ts +262 -0
  275. package/references/minimem/src/cli/commands/conflicts.ts +413 -0
  276. package/references/minimem/src/cli/commands/daemon.ts +169 -0
  277. package/references/minimem/src/cli/commands/index.ts +12 -0
  278. package/references/minimem/src/cli/commands/init.ts +88 -0
  279. package/references/minimem/src/cli/commands/mcp.ts +177 -0
  280. package/references/minimem/src/cli/commands/push-pull.ts +213 -0
  281. package/references/minimem/src/cli/commands/search.ts +158 -0
  282. package/references/minimem/src/cli/commands/status.ts +84 -0
  283. package/references/minimem/src/cli/commands/sync-init.ts +290 -0
  284. package/references/minimem/src/cli/commands/sync.ts +70 -0
  285. package/references/minimem/src/cli/commands/upsert.ts +197 -0
  286. package/references/minimem/src/cli/config.ts +584 -0
  287. package/references/minimem/src/cli/index.ts +264 -0
  288. package/references/minimem/src/cli/shared.ts +161 -0
  289. package/references/minimem/src/cli/sync/__tests__/central.test.ts +152 -0
  290. package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +209 -0
  291. package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +118 -0
  292. package/references/minimem/src/cli/sync/__tests__/detection.test.ts +207 -0
  293. package/references/minimem/src/cli/sync/__tests__/integration.test.ts +476 -0
  294. package/references/minimem/src/cli/sync/__tests__/registry.test.ts +363 -0
  295. package/references/minimem/src/cli/sync/__tests__/state.test.ts +255 -0
  296. package/references/minimem/src/cli/sync/__tests__/validation.test.ts +193 -0
  297. package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +178 -0
  298. package/references/minimem/src/cli/sync/central.ts +292 -0
  299. package/references/minimem/src/cli/sync/conflicts.ts +204 -0
  300. package/references/minimem/src/cli/sync/daemon.ts +407 -0
  301. package/references/minimem/src/cli/sync/detection.ts +138 -0
  302. package/references/minimem/src/cli/sync/index.ts +107 -0
  303. package/references/minimem/src/cli/sync/operations.ts +373 -0
  304. package/references/minimem/src/cli/sync/registry.ts +279 -0
  305. package/references/minimem/src/cli/sync/state.ts +355 -0
  306. package/references/minimem/src/cli/sync/validation.ts +206 -0
  307. package/references/minimem/src/cli/sync/watcher.ts +234 -0
  308. package/references/minimem/src/cli/version.ts +34 -0
  309. package/references/minimem/src/core/index.ts +9 -0
  310. package/references/minimem/src/core/indexer.ts +628 -0
  311. package/references/minimem/src/core/searcher.ts +221 -0
  312. package/references/minimem/src/db/schema.ts +183 -0
  313. package/references/minimem/src/db/sqlite-vec.ts +24 -0
  314. package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +431 -0
  315. package/references/minimem/src/embeddings/batch-gemini.ts +392 -0
  316. package/references/minimem/src/embeddings/batch-openai.ts +409 -0
  317. package/references/minimem/src/embeddings/embeddings.ts +434 -0
  318. package/references/minimem/src/index.ts +109 -0
  319. package/references/minimem/src/internal.ts +299 -0
  320. package/references/minimem/src/minimem.ts +1276 -0
  321. package/references/minimem/src/search/__tests__/hybrid.test.ts +247 -0
  322. package/references/minimem/src/search/graph.ts +234 -0
  323. package/references/minimem/src/search/hybrid.ts +151 -0
  324. package/references/minimem/src/search/search.ts +256 -0
  325. package/references/minimem/src/server/__tests__/mcp.test.ts +341 -0
  326. package/references/minimem/src/server/__tests__/tools.test.ts +364 -0
  327. package/references/minimem/src/server/mcp.ts +326 -0
  328. package/references/minimem/src/server/tools.ts +720 -0
  329. package/references/minimem/src/session.ts +460 -0
  330. package/references/minimem/tsconfig.json +19 -0
  331. package/references/minimem/tsup.config.ts +26 -0
  332. package/references/minimem/vitest.config.ts +24 -0
  333. package/references/openteams/.claude/settings.json +6 -0
  334. package/references/openteams/README.md +1 -0
  335. package/references/openteams/SKILL.md +341 -0
  336. package/references/openteams/design.md +411 -0
  337. package/references/openteams/examples/bmad-method/prompts/analyst/ROLE.md +16 -0
  338. package/references/openteams/examples/bmad-method/prompts/analyst/SOUL.md +5 -0
  339. package/references/openteams/examples/bmad-method/prompts/architect/ROLE.md +24 -0
  340. package/references/openteams/examples/bmad-method/prompts/architect/SOUL.md +5 -0
  341. package/references/openteams/examples/bmad-method/prompts/developer/ROLE.md +25 -0
  342. package/references/openteams/examples/bmad-method/prompts/developer/SOUL.md +5 -0
  343. package/references/openteams/examples/bmad-method/prompts/master/ROLE.md +21 -0
  344. package/references/openteams/examples/bmad-method/prompts/master/SOUL.md +5 -0
  345. package/references/openteams/examples/bmad-method/prompts/pm/ROLE.md +20 -0
  346. package/references/openteams/examples/bmad-method/prompts/pm/SOUL.md +5 -0
  347. package/references/openteams/examples/bmad-method/prompts/qa/ROLE.md +17 -0
  348. package/references/openteams/examples/bmad-method/prompts/qa/SOUL.md +5 -0
  349. package/references/openteams/examples/bmad-method/prompts/quick-flow-dev/ROLE.md +23 -0
  350. package/references/openteams/examples/bmad-method/prompts/quick-flow-dev/SOUL.md +5 -0
  351. package/references/openteams/examples/bmad-method/prompts/scrum-master/ROLE.md +27 -0
  352. package/references/openteams/examples/bmad-method/prompts/scrum-master/SOUL.md +5 -0
  353. package/references/openteams/examples/bmad-method/prompts/tech-writer/ROLE.md +21 -0
  354. package/references/openteams/examples/bmad-method/prompts/tech-writer/SOUL.md +5 -0
  355. package/references/openteams/examples/bmad-method/prompts/ux-designer/ROLE.md +16 -0
  356. package/references/openteams/examples/bmad-method/prompts/ux-designer/SOUL.md +5 -0
  357. package/references/openteams/examples/bmad-method/roles/analyst.yaml +9 -0
  358. package/references/openteams/examples/bmad-method/roles/architect.yaml +9 -0
  359. package/references/openteams/examples/bmad-method/roles/developer.yaml +8 -0
  360. package/references/openteams/examples/bmad-method/roles/master.yaml +8 -0
  361. package/references/openteams/examples/bmad-method/roles/pm.yaml +9 -0
  362. package/references/openteams/examples/bmad-method/roles/qa.yaml +8 -0
  363. package/references/openteams/examples/bmad-method/roles/quick-flow-dev.yaml +8 -0
  364. package/references/openteams/examples/bmad-method/roles/scrum-master.yaml +9 -0
  365. package/references/openteams/examples/bmad-method/roles/tech-writer.yaml +8 -0
  366. package/references/openteams/examples/bmad-method/roles/ux-designer.yaml +8 -0
  367. package/references/openteams/examples/bmad-method/team.yaml +161 -0
  368. package/references/openteams/examples/get-shit-done/prompts/codebase-mapper/ROLE.md +17 -0
  369. package/references/openteams/examples/get-shit-done/prompts/codebase-mapper/SOUL.md +5 -0
  370. package/references/openteams/examples/get-shit-done/prompts/debugger/ROLE.md +25 -0
  371. package/references/openteams/examples/get-shit-done/prompts/debugger/SOUL.md +5 -0
  372. package/references/openteams/examples/get-shit-done/prompts/executor/ROLE.md +34 -0
  373. package/references/openteams/examples/get-shit-done/prompts/executor/SOUL.md +5 -0
  374. package/references/openteams/examples/get-shit-done/prompts/integration-checker/ROLE.md +18 -0
  375. package/references/openteams/examples/get-shit-done/prompts/integration-checker/SOUL.md +3 -0
  376. package/references/openteams/examples/get-shit-done/prompts/orchestrator/ROLE.md +42 -0
  377. package/references/openteams/examples/get-shit-done/prompts/orchestrator/SOUL.md +5 -0
  378. package/references/openteams/examples/get-shit-done/prompts/phase-researcher/ROLE.md +15 -0
  379. package/references/openteams/examples/get-shit-done/prompts/phase-researcher/SOUL.md +3 -0
  380. package/references/openteams/examples/get-shit-done/prompts/plan-checker/ROLE.md +17 -0
  381. package/references/openteams/examples/get-shit-done/prompts/plan-checker/SOUL.md +3 -0
  382. package/references/openteams/examples/get-shit-done/prompts/planner/ROLE.md +28 -0
  383. package/references/openteams/examples/get-shit-done/prompts/planner/SOUL.md +5 -0
  384. package/references/openteams/examples/get-shit-done/prompts/project-researcher/ROLE.md +16 -0
  385. package/references/openteams/examples/get-shit-done/prompts/project-researcher/SOUL.md +3 -0
  386. package/references/openteams/examples/get-shit-done/prompts/research-synthesizer/ROLE.md +13 -0
  387. package/references/openteams/examples/get-shit-done/prompts/research-synthesizer/SOUL.md +3 -0
  388. package/references/openteams/examples/get-shit-done/prompts/roadmapper/ROLE.md +14 -0
  389. package/references/openteams/examples/get-shit-done/prompts/roadmapper/SOUL.md +3 -0
  390. package/references/openteams/examples/get-shit-done/prompts/verifier/ROLE.md +19 -0
  391. package/references/openteams/examples/get-shit-done/prompts/verifier/SOUL.md +5 -0
  392. package/references/openteams/examples/get-shit-done/roles/codebase-mapper.yaml +8 -0
  393. package/references/openteams/examples/get-shit-done/roles/debugger.yaml +8 -0
  394. package/references/openteams/examples/get-shit-done/roles/executor.yaml +8 -0
  395. package/references/openteams/examples/get-shit-done/roles/integration-checker.yaml +8 -0
  396. package/references/openteams/examples/get-shit-done/roles/orchestrator.yaml +9 -0
  397. package/references/openteams/examples/get-shit-done/roles/phase-researcher.yaml +7 -0
  398. package/references/openteams/examples/get-shit-done/roles/plan-checker.yaml +8 -0
  399. package/references/openteams/examples/get-shit-done/roles/planner.yaml +8 -0
  400. package/references/openteams/examples/get-shit-done/roles/project-researcher.yaml +8 -0
  401. package/references/openteams/examples/get-shit-done/roles/research-synthesizer.yaml +7 -0
  402. package/references/openteams/examples/get-shit-done/roles/roadmapper.yaml +7 -0
  403. package/references/openteams/examples/get-shit-done/roles/verifier.yaml +8 -0
  404. package/references/openteams/examples/get-shit-done/team.yaml +154 -0
  405. package/references/openteams/package-lock.json +2181 -0
  406. package/references/openteams/package.json +48 -0
  407. package/references/openteams/schema/role.schema.json +125 -0
  408. package/references/openteams/schema/team.schema.json +284 -0
  409. package/references/openteams/src/cli/agent.ts +104 -0
  410. package/references/openteams/src/cli/cli.test.ts +381 -0
  411. package/references/openteams/src/cli/generate.ts +220 -0
  412. package/references/openteams/src/cli/message.ts +241 -0
  413. package/references/openteams/src/cli/task.ts +154 -0
  414. package/references/openteams/src/cli/team.ts +104 -0
  415. package/references/openteams/src/cli/template.ts +207 -0
  416. package/references/openteams/src/cli.ts +45 -0
  417. package/references/openteams/src/db/database.test.ts +185 -0
  418. package/references/openteams/src/db/database.ts +240 -0
  419. package/references/openteams/src/generators/agent-prompt-generator.test.ts +332 -0
  420. package/references/openteams/src/generators/agent-prompt-generator.ts +521 -0
  421. package/references/openteams/src/generators/package-generator.test.ts +129 -0
  422. package/references/openteams/src/generators/package-generator.ts +102 -0
  423. package/references/openteams/src/generators/skill-generator.test.ts +246 -0
  424. package/references/openteams/src/generators/skill-generator.ts +374 -0
  425. package/references/openteams/src/index.ts +104 -0
  426. package/references/openteams/src/services/agent-service.test.ts +158 -0
  427. package/references/openteams/src/services/agent-service.ts +84 -0
  428. package/references/openteams/src/services/communication-service.test.ts +455 -0
  429. package/references/openteams/src/services/communication-service.ts +371 -0
  430. package/references/openteams/src/services/message-service.test.ts +342 -0
  431. package/references/openteams/src/services/message-service.ts +203 -0
  432. package/references/openteams/src/services/task-service.test.ts +434 -0
  433. package/references/openteams/src/services/task-service.ts +239 -0
  434. package/references/openteams/src/services/team-service.test.ts +181 -0
  435. package/references/openteams/src/services/team-service.ts +139 -0
  436. package/references/openteams/src/services/template-service.test.ts +306 -0
  437. package/references/openteams/src/services/template-service.ts +182 -0
  438. package/references/openteams/src/spawner/acp-factory.ts +96 -0
  439. package/references/openteams/src/spawner/interface.ts +31 -0
  440. package/references/openteams/src/spawner/mock.test.ts +93 -0
  441. package/references/openteams/src/spawner/mock.ts +59 -0
  442. package/references/openteams/src/template/loader.test.ts +1319 -0
  443. package/references/openteams/src/template/loader.ts +698 -0
  444. package/references/openteams/src/template/types.ts +200 -0
  445. package/references/openteams/src/types.ts +205 -0
  446. package/references/openteams/tsconfig.json +18 -0
  447. package/references/openteams/vitest.config.ts +9 -0
  448. package/references/skill-tree/.claude/settings.json +6 -0
  449. package/references/skill-tree/.sudocode/issues.jsonl +11 -0
  450. package/references/skill-tree/.sudocode/specs.jsonl +1 -0
  451. package/references/skill-tree/CLAUDE.md +150 -0
  452. package/references/skill-tree/README.md +324 -0
  453. package/references/skill-tree/docs/GAPS_v1.md +221 -0
  454. package/references/skill-tree/docs/INTEGRATION_PLAN.md +467 -0
  455. package/references/skill-tree/docs/TODOS.md +91 -0
  456. package/references/skill-tree/docs/anthropic_skill_guide.md +1364 -0
  457. package/references/skill-tree/docs/design/federated-skill-trees.md +524 -0
  458. package/references/skill-tree/docs/design/multi-agent-sync.md +759 -0
  459. package/references/skill-tree/docs/scraper/BRAINSTORM.md +583 -0
  460. package/references/skill-tree/docs/scraper/POC_PLAN.md +420 -0
  461. package/references/skill-tree/docs/scraper/README.md +170 -0
  462. package/references/skill-tree/examples/basic-usage.ts +190 -0
  463. package/references/skill-tree/package-lock.json +1509 -0
  464. package/references/skill-tree/package.json +66 -0
  465. package/references/skill-tree/scraper/README.md +123 -0
  466. package/references/skill-tree/scraper/docs/DESIGN.md +683 -0
  467. package/references/skill-tree/scraper/docs/PLAN.md +336 -0
  468. package/references/skill-tree/scraper/drizzle.config.ts +10 -0
  469. package/references/skill-tree/scraper/package-lock.json +6329 -0
  470. package/references/skill-tree/scraper/package.json +68 -0
  471. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +7 -0
  472. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +7 -0
  473. package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +27 -0
  474. package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +21 -0
  475. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +54 -0
  476. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +24 -0
  477. package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +93 -0
  478. package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +22 -0
  479. package/references/skill-tree/scraper/tsup.config.ts +14 -0
  480. package/references/skill-tree/scraper/vitest.config.ts +17 -0
  481. package/references/skill-tree/scripts/convert-to-vitest.ts +166 -0
  482. package/references/skill-tree/skills/skill-writer/SKILL.md +339 -0
  483. package/references/skill-tree/skills/skill-writer/references/examples.md +326 -0
  484. package/references/skill-tree/skills/skill-writer/references/patterns.md +210 -0
  485. package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +123 -0
  486. package/references/skill-tree/test/run-all.ts +106 -0
  487. package/references/skill-tree/test/utils.ts +128 -0
  488. package/references/skill-tree/vitest.config.ts +16 -0
  489. package/src/__tests__/e2e/agent-spawn-visibility.e2e.test.ts +761 -0
  490. package/src/__tests__/e2e/full-agent-conflict-resolution.e2e.test.ts +2 -2
  491. package/src/__tests__/e2e/mcp-thin-client-bridge.e2e.test.ts +304 -0
  492. package/src/__tests__/e2e/mcp-tools-available.e2e.test.ts +324 -0
  493. package/src/__tests__/e2e/multi-agent.e2e.test.ts +5 -5
  494. package/src/__tests__/e2e/spawn-session-streaming.e2e.test.ts +563 -0
  495. package/src/acp/__tests__/integration.test.ts +56 -31
  496. package/src/acp/__tests__/macro-agent.test.ts +16 -7
  497. package/src/acp/macro-agent.ts +170 -36
  498. package/src/acp/types.ts +46 -1
  499. package/src/agent/__tests__/agent-manager.test.ts +228 -2
  500. package/src/agent/agent-manager.ts +809 -285
  501. package/src/agent/types.ts +12 -1
  502. package/src/api/__tests__/server.test.ts +203 -4
  503. package/src/api/server.ts +169 -10
  504. package/src/api/types.ts +3 -1
  505. package/src/auth/__tests__/token.test.ts +100 -0
  506. package/src/auth/index.ts +1 -0
  507. package/src/auth/token.ts +82 -0
  508. package/src/cli/__tests__/acp.test.ts +1 -1
  509. package/src/cli/__tests__/stable-instance-id.test.ts +1 -1
  510. package/src/cli/acp.ts +197 -72
  511. package/src/cli/index.ts +125 -15
  512. package/src/cli/mcp.ts +315 -197
  513. package/src/cli/parse-args.ts +54 -0
  514. package/src/cli/stable-instance-id.ts +14 -0
  515. package/src/config/project-config.ts +214 -27
  516. package/src/index.ts +3 -0
  517. package/src/lifecycle/__tests__/cascade-termination.test.ts +1 -1
  518. package/src/lifecycle/__tests__/handlers.test.ts +53 -0
  519. package/src/lifecycle/handlers/index.ts +25 -8
  520. package/src/lifecycle/types.ts +3 -0
  521. package/src/map/adapter/__tests__/acp-over-map-cancel.test.ts +22 -4
  522. package/src/map/adapter/__tests__/acp-over-map-getmodels.test.ts +355 -0
  523. package/src/map/adapter/__tests__/acp-over-map-history.test.ts +263 -0
  524. package/src/map/adapter/__tests__/acp-over-map-persistence.e2e.test.ts +1 -1
  525. package/src/map/adapter/__tests__/event-broadcast.test.ts +420 -0
  526. package/src/map/adapter/__tests__/event-log.test.ts +527 -0
  527. package/src/map/adapter/__tests__/event-translator.test.ts +3 -3
  528. package/src/map/adapter/__tests__/extensions.test.ts +408 -0
  529. package/src/map/adapter/__tests__/map-adapter.test.ts +99 -0
  530. package/src/map/adapter/__tests__/mcp-bridge.test.ts +1187 -0
  531. package/src/map/adapter/__tests__/multi-client-broadcast.test.ts +711 -0
  532. package/src/map/adapter/__tests__/stream-extensions.test.ts +494 -0
  533. package/src/map/adapter/__tests__/websocket-integration.test.ts +218 -0
  534. package/src/map/adapter/acp-over-map.ts +678 -66
  535. package/src/map/adapter/connection-manager.ts +3 -0
  536. package/src/map/adapter/event-log.ts +208 -0
  537. package/src/map/adapter/event-translator.ts +6 -6
  538. package/src/map/adapter/extensions/agent-lifecycle.ts +267 -0
  539. package/src/map/adapter/extensions/index.ts +96 -0
  540. package/src/map/adapter/extensions/mcp-bridge.ts +995 -0
  541. package/src/map/adapter/extensions/streams.ts +839 -0
  542. package/src/map/adapter/extensions/task.ts +11 -0
  543. package/src/map/adapter/extensions/update-metadata.ts +126 -0
  544. package/src/map/adapter/index.ts +33 -0
  545. package/src/map/adapter/interface.ts +2 -0
  546. package/src/map/adapter/map-adapter.ts +312 -47
  547. package/src/map/adapter/subscription-manager.ts +5 -1
  548. package/src/map/adapter/types.ts +10 -1
  549. package/src/mcp/__tests__/map-client.test.ts +386 -0
  550. package/src/mcp/__tests__/mcp-server-thin-client.test.ts +368 -0
  551. package/src/mcp/__tests__/mcp-server.test.ts +100 -1
  552. package/src/mcp/map-client.ts +177 -0
  553. package/src/mcp/mcp-server.ts +205 -103
  554. package/src/mcp/tools/done.ts +19 -0
  555. package/src/mcp/types.ts +6 -1
  556. package/src/metrics/metrics.ts +1 -1
  557. package/src/monitor/__tests__/stale-agent-flow.integration.test.ts +1 -1
  558. package/src/roles/__tests__/config-loader.test.ts +7 -7
  559. package/src/roles/builtin/coordinator.ts +2 -0
  560. package/src/roles/builtin/integrator.ts +2 -0
  561. package/src/roles/builtin/worker.ts +3 -0
  562. package/src/roles/capabilities.ts +28 -7
  563. package/src/roles/config-loader.ts +8 -7
  564. package/src/roles/registry.ts +2 -2
  565. package/src/roles/types.ts +7 -0
  566. package/src/server/__tests__/combined-server.test.ts +94 -21
  567. package/src/server/combined-server.ts +203 -33
  568. package/src/steering/__tests__/steering-integration.test.ts +1 -1
  569. package/src/store/__tests__/event-store-oob.test.ts +109 -0
  570. package/src/store/__tests__/event-store.test.ts +196 -1
  571. package/src/store/__tests__/instance.test.ts +3 -3
  572. package/src/store/event-store.ts +92 -23
  573. package/src/store/instance.ts +2 -2
  574. package/src/store/types/agents.ts +20 -0
  575. package/src/store/types/events.ts +1 -1
  576. package/src/task/backend/__tests__/create-task-backend.test.ts +225 -0
  577. package/src/task/backend/__tests__/e2e/unified-tool-provider-opentasks.e2e.test.ts +524 -0
  578. package/src/task/backend/__tests__/memory-pull-mode.test.ts +153 -0
  579. package/src/task/backend/__tests__/unified-tool-provider.test.ts +579 -0
  580. package/src/task/backend/index.ts +156 -106
  581. package/src/task/backend/memory.ts +4 -0
  582. package/src/task/backend/opentasks/__tests__/backend.test.ts +968 -0
  583. package/src/task/backend/opentasks/__tests__/daemon-manager.test.ts +406 -0
  584. package/src/task/backend/opentasks/__tests__/mapping.test.ts +84 -0
  585. package/src/task/backend/opentasks/__tests__/opentasks-backend.e2e.test.ts +1338 -0
  586. package/src/task/backend/opentasks/backend.ts +1323 -0
  587. package/src/task/backend/opentasks/client.ts +652 -0
  588. package/src/task/backend/opentasks/daemon-manager.ts +256 -0
  589. package/src/task/backend/opentasks/index.ts +69 -0
  590. package/src/task/backend/opentasks/mapping.ts +94 -0
  591. package/src/task/backend/types.ts +42 -66
  592. package/src/task/backend/unified-tool-provider.ts +779 -0
  593. package/src/teams/CLAUDE.md +180 -0
  594. package/src/teams/__tests__/cross-subsystem.integration.test.ts +1 -1
  595. package/src/teams/__tests__/e2e/workspace-isolation.e2e.test.ts +1263 -0
  596. package/src/teams/__tests__/team-manager.test.ts +814 -0
  597. package/src/teams/__tests__/team-system.test.ts +1291 -8
  598. package/src/teams/index.ts +21 -3
  599. package/src/teams/seed-defaults.ts +79 -0
  600. package/src/teams/team-loader.ts +202 -236
  601. package/src/teams/team-manager.ts +387 -0
  602. package/src/teams/team-runtime.ts +592 -121
  603. package/src/teams/types.ts +99 -200
  604. package/test_fixtures/README.md +2 -3
  605. package/test_fixtures/fixtures/index.ts +0 -3
  606. package/test_fixtures/fixtures/projects/project-with-specs.ts +7 -149
  607. package/test_fixtures/fixtures/repos/index.ts +1 -3
  608. package/test_fixtures/fixtures/repos/temp-repo-factory.ts +0 -116
  609. package/test_fixtures/fixtures/repos/types.ts +0 -11
  610. package/test_fixtures/harness/__tests__/fixtures.test.ts +10 -102
  611. package/test_fixtures/harness/__tests__/temp-repo-and-simulator.test.ts +0 -33
  612. package/test_fixtures/harness/simulator/agent-simulator.ts +4 -4
  613. package/vitest.config.ts +1 -1
  614. package/vitest.e2e.config.ts +1 -1
  615. package/vitest.setup.ts +1 -30
  616. package/.macro-agent/teams/self-driving/prompts/grinder.md +0 -27
  617. package/.macro-agent/teams/self-driving/prompts/judge.md +0 -27
  618. package/.macro-agent/teams/self-driving/prompts/planner.md +0 -33
  619. package/.macro-agent/teams/self-driving/roles/grinder.yaml +0 -17
  620. package/.macro-agent/teams/self-driving/roles/judge.yaml +0 -24
  621. package/.macro-agent/teams/self-driving/roles/planner.yaml +0 -18
  622. package/.macro-agent/teams/self-driving/team.yaml +0 -103
  623. package/.macro-agent/teams/structured/prompts/developer.md +0 -26
  624. package/.macro-agent/teams/structured/prompts/lead.md +0 -25
  625. package/.macro-agent/teams/structured/prompts/reviewer.md +0 -24
  626. package/.macro-agent/teams/structured/roles/developer.yaml +0 -12
  627. package/.macro-agent/teams/structured/roles/lead.yaml +0 -11
  628. package/.macro-agent/teams/structured/roles/reviewer.yaml +0 -19
  629. package/.macro-agent/teams/structured/team.yaml +0 -89
  630. package/docs/sudocode-integration.md +0 -383
  631. package/src/task/backend/__tests__/backend-parity.test.ts +0 -451
  632. package/src/task/backend/__tests__/tool-provider-edge-cases.test.ts +0 -430
  633. package/src/task/backend/__tests__/tool-provider.test.ts +0 -983
  634. package/src/task/backend/sudocode/__tests__/backend-edge-cases.test.ts +0 -575
  635. package/src/task/backend/sudocode/__tests__/backend.test.ts +0 -1194
  636. package/src/task/backend/sudocode/__tests__/client-integration.test.ts +0 -418
  637. package/src/task/backend/sudocode/__tests__/client.test.ts +0 -345
  638. package/src/task/backend/sudocode/__tests__/e2e/backend.e2e.test.ts +0 -753
  639. package/src/task/backend/sudocode/__tests__/e2e/server-client.e2e.test.ts +0 -680
  640. package/src/task/backend/sudocode/__tests__/e2e-workflow.test.ts +0 -666
  641. package/src/task/backend/sudocode/__tests__/integration/standalone-client.integration.test.ts +0 -396
  642. package/src/task/backend/sudocode/__tests__/integration/sudocode-cli.integration.test.ts +0 -328
  643. package/src/task/backend/sudocode/__tests__/integration/test-utils.ts +0 -175
  644. package/src/task/backend/sudocode/__tests__/mapping-edge-cases.test.ts +0 -265
  645. package/src/task/backend/sudocode/__tests__/server-client.test.ts +0 -675
  646. package/src/task/backend/sudocode/__tests__/sync-policy-edge-cases.test.ts +0 -521
  647. package/src/task/backend/sudocode/__tests__/sync-policy.test.ts +0 -519
  648. package/src/task/backend/sudocode/__tests__/tools.test.ts +0 -471
  649. package/src/task/backend/sudocode/backend.ts +0 -1237
  650. package/src/task/backend/sudocode/client.ts +0 -515
  651. package/src/task/backend/sudocode/index.ts +0 -120
  652. package/src/task/backend/sudocode/mapping.ts +0 -93
  653. package/src/task/backend/sudocode/server-client.ts +0 -522
  654. package/src/task/backend/sudocode/standalone-client.ts +0 -623
  655. package/src/task/backend/sudocode/sync-policy.ts +0 -387
  656. package/src/task/backend/sudocode/tools.ts +0 -896
  657. package/src/task/backend/tool-provider.ts +0 -506
  658. package/test_fixtures/fixtures/sudocode/index.ts +0 -29
  659. package/test_fixtures/fixtures/sudocode/issues.ts +0 -185
  660. package/test_fixtures/fixtures/sudocode/specs.ts +0 -159
@@ -1,103 +0,0 @@
1
- name: self-driving
2
- description: "Autonomous codebase development with continuous planning"
3
- version: 1
4
-
5
- roles:
6
- - planner
7
- - grinder
8
- - judge
9
-
10
- topology:
11
- root:
12
- role: planner
13
- prompt: prompts/planner.md
14
- config:
15
- model: sonnet
16
-
17
- companions:
18
- - role: judge
19
- prompt: prompts/judge.md
20
- config:
21
- model: haiku
22
-
23
- spawn_rules:
24
- planner: [grinder, planner]
25
- judge: []
26
- grinder: []
27
-
28
- communication:
29
- channels:
30
- task_updates:
31
- description: "Task lifecycle events"
32
- signals: [TASK_CREATED, TASK_COMPLETED, TASK_FAILED]
33
- work_coordination:
34
- description: "Work assignment and completion"
35
- signals: [WORK_ASSIGNED, WORKER_DONE, MERGE_REQUEST]
36
- health:
37
- description: "System health monitoring"
38
- signals: [HEALTH_CHECK, METRIC_SNAPSHOT, GREEN_SNAPSHOT]
39
-
40
- subscriptions:
41
- planner:
42
- - channel: task_updates
43
- - channel: work_coordination
44
- signals: [WORKER_DONE]
45
- - channel: health
46
- signals: [METRIC_SNAPSHOT]
47
- judge:
48
- - channel: task_updates
49
- signals: [TASK_FAILED]
50
- - channel: work_coordination
51
- signals: [WORKER_DONE]
52
- - channel: health
53
- grinder:
54
- - channel: work_coordination
55
- signals: [WORK_ASSIGNED]
56
-
57
- emissions:
58
- planner: [TASK_CREATED, WORK_ASSIGNED]
59
- judge: [HEALTH_CHECK, GREEN_SNAPSHOT, FIXUP_CREATED]
60
- grinder: [WORKER_DONE]
61
-
62
- routing:
63
- status: upstream
64
- peers:
65
- - from: judge
66
- to: planner
67
- via: direct
68
- signals: [FIXUP_CREATED, GREEN_SNAPSHOT]
69
- - from: planner
70
- to: judge
71
- via: direct
72
- signals: [CONVERGENCE_CHECK]
73
-
74
- enforcement: permissive
75
-
76
- macro_agent:
77
- task_assignment:
78
- mode: pull
79
- pull:
80
- idle_timeout_s: 300
81
- claim_retry_delay_ms: 2000
82
- max_concurrent_per_agent: 1
83
-
84
- integration:
85
- strategy: trunk
86
- config:
87
- max_retries: 3
88
- conflict_action: abandon
89
-
90
- lifecycle:
91
- continuations:
92
- enabled: true
93
- max_history_messages: 50
94
- checkpoint_interval: round_trip
95
- scaling:
96
- min_workers: 3
97
- max_workers: 20
98
- scale_on: task_queue_depth
99
- idle_drain: true
100
-
101
- observability:
102
- metrics_window_s: 3600
103
- snapshot_interval_s: 300
@@ -1,26 +0,0 @@
1
- # Developer
2
-
3
- You are a **Developer** on a structured development team. You execute a single assigned task in your isolated workspace.
4
-
5
- ## Responsibilities
6
-
7
- 1. **Implement** - Complete the assigned task according to its description
8
- 2. **Test** - Verify your changes work correctly
9
- 3. **Commit** - Create clean, descriptive commits
10
- 4. **Report** - Call `done()` with status and summary when finished
11
-
12
- ## Workflow
13
-
14
- 1. Read and understand the task description
15
- 2. Explore the relevant code to plan your changes
16
- 3. Implement the changes
17
- 4. Run tests to verify correctness
18
- 5. Commit your work with a clear message
19
- 6. Call `done()` with status `completed` and a brief summary
20
-
21
- ## Guidelines
22
-
23
- - Stay focused on your assigned task only
24
- - Do not modify files outside the scope of your task
25
- - If you encounter a blocker, call `done()` with status `failed` and describe the issue
26
- - Make atomic commits that are easy to review
@@ -1,25 +0,0 @@
1
- # Lead
2
-
3
- You are the **Lead** of a structured development team. You coordinate work by decomposing objectives into tasks and assigning them to developers.
4
-
5
- ## Responsibilities
6
-
7
- 1. **Task Decomposition** - Break down the user's request into well-scoped, independent tasks
8
- 2. **Assignment** - Spawn developers and assign each a specific task
9
- 3. **Progress Tracking** - Monitor task completion and handle failures
10
- 4. **Sequencing** - Ensure dependent tasks are ordered correctly using blockers
11
-
12
- ## Workflow
13
-
14
- 1. Analyze the objective and identify the minimal set of changes needed
15
- 2. Create tasks with clear descriptions and acceptance criteria
16
- 3. Spawn developers to handle each task
17
- 4. Monitor TASK_COMPLETED / TASK_FAILED signals
18
- 5. When all tasks complete, call `done()` with a summary
19
-
20
- ## Guidelines
21
-
22
- - Keep tasks small and focused (one file or one logical change)
23
- - Set blockers between tasks that have data dependencies
24
- - Prefer parallel execution where tasks are independent
25
- - If a task fails, assess whether to retry or adjust the plan
@@ -1,24 +0,0 @@
1
- # Reviewer
2
-
3
- You are a **Reviewer** on a structured development team. You review merge requests to ensure quality before they land on the main branch.
4
-
5
- ## Responsibilities
6
-
7
- 1. **Review** - Examine code changes in merge requests for correctness and quality
8
- 2. **Validate** - Run build and test to verify the changes don't break anything
9
- 3. **Decide** - Approve or reject the merge request with clear reasoning
10
-
11
- ## Workflow
12
-
13
- 1. Wait for MERGE_REQUEST signals
14
- 2. Check out the branch and review the diff
15
- 3. Run `build` and `test` commands
16
- 4. If everything passes, emit REVIEW_APPROVED
17
- 5. If issues found, emit REVIEW_REJECTED with explanation
18
-
19
- ## Guidelines
20
-
21
- - Focus on correctness, not style preferences
22
- - Run the test suite before approving
23
- - Provide specific, actionable feedback on rejections
24
- - Do not modify code directly; report issues back to the lead
@@ -1,12 +0,0 @@
1
- name: developer
2
- extends: worker
3
- display_name: "Developer"
4
- description: "Executes assigned tasks in isolated workspaces"
5
-
6
- prompt: prompts/developer.md
7
-
8
- macro_agent:
9
- lifecycle:
10
- type: ephemeral
11
- task_bound: true
12
- self_cleanup: true
@@ -1,11 +0,0 @@
1
- name: lead
2
- extends: coordinator
3
- display_name: "Lead"
4
- description: "Decomposes work into tasks and assigns them to developers"
5
-
6
- prompt: prompts/lead.md
7
-
8
- macro_agent:
9
- lifecycle:
10
- type: persistent
11
- cascade_terminate: true
@@ -1,19 +0,0 @@
1
- name: reviewer
2
- extends: monitor
3
- display_name: "Reviewer"
4
- description: "Reviews merge requests and approves or rejects changes"
5
-
6
- capabilities_add:
7
- - exec.build
8
- - exec.test
9
-
10
- prompt: prompts/reviewer.md
11
-
12
- macro_agent:
13
- workspace:
14
- type: own
15
- branch_pattern: "review/{agent-id}"
16
- cleanup_on_terminate: true
17
- lifecycle:
18
- type: event-driven
19
- parent_bound: false
@@ -1,89 +0,0 @@
1
- name: structured
2
- description: "Hierarchical development with explicit task assignment and merge queue"
3
- version: 1
4
-
5
- roles:
6
- - lead
7
- - developer
8
- - reviewer
9
-
10
- topology:
11
- root:
12
- role: lead
13
- prompt: prompts/lead.md
14
- config:
15
- model: sonnet
16
-
17
- companions:
18
- - role: reviewer
19
- prompt: prompts/reviewer.md
20
- config:
21
- model: haiku
22
-
23
- spawn_rules:
24
- lead: [developer, lead]
25
- reviewer: []
26
- developer: []
27
-
28
- communication:
29
- channels:
30
- task_updates:
31
- description: "Task lifecycle events"
32
- signals: [TASK_CREATED, TASK_ASSIGNED, TASK_COMPLETED, TASK_FAILED]
33
- merge_flow:
34
- description: "Merge queue and integration events"
35
- signals: [MERGE_REQUEST, MERGE_COMPLETED, MERGE_CONFLICT]
36
- review_flow:
37
- description: "Code review signals"
38
- signals: [REVIEW_REQUESTED, REVIEW_APPROVED, REVIEW_REJECTED]
39
-
40
- subscriptions:
41
- lead:
42
- - channel: task_updates
43
- - channel: merge_flow
44
- - channel: review_flow
45
- signals: [REVIEW_APPROVED, REVIEW_REJECTED]
46
- reviewer:
47
- - channel: merge_flow
48
- signals: [MERGE_REQUEST]
49
- - channel: review_flow
50
- developer:
51
- - channel: task_updates
52
- signals: [TASK_ASSIGNED]
53
-
54
- emissions:
55
- lead: [TASK_CREATED, TASK_ASSIGNED]
56
- reviewer: [REVIEW_APPROVED, REVIEW_REJECTED]
57
- developer: [MERGE_REQUEST, TASK_COMPLETED, TASK_FAILED]
58
-
59
- routing:
60
- status: upstream
61
- peers:
62
- - from: reviewer
63
- to: lead
64
- via: direct
65
- signals: [REVIEW_APPROVED, REVIEW_REJECTED]
66
-
67
- enforcement: permissive
68
-
69
- macro_agent:
70
- task_assignment:
71
- mode: push
72
-
73
- integration:
74
- strategy: queue
75
- config:
76
- require_review: true
77
-
78
- lifecycle:
79
- continuations:
80
- enabled: false
81
- scaling:
82
- min_workers: 1
83
- max_workers: 10
84
- scale_on: manual
85
- idle_drain: false
86
-
87
- observability:
88
- metrics_window_s: 1800
89
- snapshot_interval_s: 600
@@ -1,383 +0,0 @@
1
- # Sudocode Integration
2
-
3
- macro-agent integrates with [sudocode](https://github.com/sudocode-ai/sudocode) to provide external issue tracking and dependency management for tasks. This enables agents to work on issues from a structured backlog with proper dependency ordering.
4
-
5
- ## Overview
6
-
7
- When using the sudocode backend:
8
- - Tasks are bound to sudocode issues via `external_id`
9
- - Blocking relationships come from sudocode's issue links
10
- - `listReady()` returns only tasks whose bound issues have no incomplete blockers
11
- - Task status can optionally sync with issue status
12
-
13
- ## Quick Start
14
-
15
- ### 1. Set Environment Variables
16
-
17
- ```bash
18
- # Enable sudocode backend
19
- export MACRO_TASK_BACKEND=sudocode
20
-
21
- # Set project path (defaults to cwd)
22
- export SUDOCODE_PROJECT_PATH=/path/to/project
23
- ```
24
-
25
- ### 2. Start macro-agent
26
-
27
- ```bash
28
- npx multiagent
29
- ```
30
-
31
- The agent will automatically connect to sudocode and use issues as the task source.
32
-
33
- ## Configuration Reference
34
-
35
- ### Environment Variables
36
-
37
- | Variable | Description | Default |
38
- |----------|-------------|---------|
39
- | `MACRO_TASK_BACKEND` | Backend type: `memory` or `sudocode` | `memory` |
40
- | `MACRO_TASK_TOOL_MODE` | Tool exposure mode: `abstract`, `native`, `both`, `auto` | `auto` |
41
- | `SUDOCODE_PROJECT_PATH` | Path to sudocode project root | `process.cwd()` |
42
- | `SUDOCODE_TOOL_MODE` | Sudocode tool mode: `native`, `mapped`, `both` | `mapped` |
43
-
44
- ### Programmatic Configuration
45
-
46
- ```typescript
47
- import { createTaskBackend, loadTaskConfigFromEnv } from 'macro-agent';
48
-
49
- // Load from environment
50
- const config = loadTaskConfigFromEnv();
51
-
52
- // Or configure manually
53
- const config = {
54
- backend: {
55
- type: 'sudocode',
56
- projectPath: '/path/to/project',
57
- idStrategy: 'dual', // Task ID strategy
58
- syncMode: 'realtime', // Event sync mode
59
- executionTracking: { mode: 'bound-only' },
60
- autoLinkSpecs: true, // Link tasks to specs
61
- toolMode: 'mapped', // Tool exposure mode
62
- },
63
- toolMode: 'auto',
64
- };
65
-
66
- const { backend, toolProvider, toolMode } = await createTaskBackend(config, eventStore);
67
- ```
68
-
69
- ### Backend Configuration Options
70
-
71
- ```typescript
72
- interface SudocodeBackendConfig {
73
- type: 'sudocode';
74
-
75
- /** Path to sudocode project root (contains .sudocode/) */
76
- projectPath: string;
77
-
78
- /** ID strategy (default: 'dual') */
79
- idStrategy?: 'dual';
80
-
81
- /** Sync mode for event subscriptions */
82
- syncMode?: 'realtime' | 'batch';
83
-
84
- /** Execution tracking configuration */
85
- executionTracking?: ExecutionTrackingConfig;
86
-
87
- /** Auto-link tasks to specs when created from spec context */
88
- autoLinkSpecs?: boolean;
89
-
90
- /** Tool mode for this backend */
91
- toolMode?: 'native' | 'mapped' | 'both';
92
- }
93
- ```
94
-
95
- ### Execution Tracking Options
96
-
97
- Control when execution records are created:
98
-
99
- ```typescript
100
- type ExecutionTrackingConfig =
101
- | { mode: 'none' } // No execution records
102
- | { mode: 'bound-only' } // Only tasks with external binding (default)
103
- | { mode: 'all' } // All agent runs
104
- | { mode: 'filter'; filter: ExecutionFilter };
105
- ```
106
-
107
- ## Usage Guide
108
-
109
- ### Creating Tasks Bound to Issues
110
-
111
- ```typescript
112
- // Create task bound to an existing sudocode issue
113
- const task = await backend.create({
114
- description: 'Implement feature X',
115
- external_id: 'i-abc123', // sudocode issue ID
116
- });
117
-
118
- console.log(task.external_id); // 'i-abc123'
119
- ```
120
-
121
- ### Multiple Tasks Per Issue
122
-
123
- Multiple tasks (parallel workers) can work on the same issue:
124
-
125
- ```typescript
126
- // Parallel workers on same issue
127
- const task1 = await backend.create({
128
- description: 'Worker 1 attempt',
129
- external_id: 'i-abc123',
130
- });
131
-
132
- const task2 = await backend.create({
133
- description: 'Worker 2 attempt',
134
- external_id: 'i-abc123',
135
- });
136
-
137
- // Assign to different agents
138
- await backend.assign(task1.id, 'worker-1');
139
- await backend.assign(task2.id, 'worker-2');
140
- ```
141
-
142
- ### Working with Dependencies
143
-
144
- Sudocode's blocking relationships determine task readiness:
145
-
146
- ```typescript
147
- // Get tasks that are ready (no blocking dependencies)
148
- const ready = await backend.listReady();
149
-
150
- // Check if a specific task is blocked
151
- const task = await backend.get(taskId);
152
- if (task.isBlocked) {
153
- // Task's bound issue has incomplete blockers
154
- const blockers = await backend.getBlockers(taskId);
155
- console.log('Blocked by:', blockers.map(b => b.external_id));
156
- }
157
- ```
158
-
159
- ### Task Lifecycle
160
-
161
- ```typescript
162
- // 1. Create task bound to issue
163
- const task = await backend.create({
164
- description: 'Implement feature',
165
- external_id: 'i-abc123',
166
- });
167
-
168
- // 2. Assign to agent
169
- await backend.assign(task.id, 'agent-1');
170
-
171
- // 3. Start execution
172
- await backend.start(task.id);
173
- // Issue status syncs to 'in_progress' if syncStatus enabled
174
-
175
- // 4. Complete task
176
- await backend.complete(task.id, {
177
- summary: 'Feature implemented',
178
- result: { files_changed: 3 },
179
- });
180
-
181
- // 5. (Optional) Issue is closed by coordinator, not automatically
182
- ```
183
-
184
- ### Event Subscriptions
185
-
186
- ```typescript
187
- // Subscribe to all task changes
188
- const unsubscribe = backend.onTaskChange((event) => {
189
- console.log(`Task ${event.taskId}: ${event.type}`);
190
- });
191
-
192
- // Subscribe to specific task
193
- const unsubscribe = backend.onTaskChange(taskId, (event) => {
194
- console.log(`Task updated: ${event.type}`);
195
- });
196
- ```
197
-
198
- ## Tool Modes
199
-
200
- The sudocode backend supports different tool exposure modes:
201
-
202
- | Mode | Description |
203
- |------|-------------|
204
- | `native` | Expose sudocode's native tools (`upsert_issue`, `link`, etc.) |
205
- | `mapped` | Map to abstract task tools (`create_task`, `complete_task`, etc.) |
206
- | `both` | Expose both tool sets |
207
-
208
- ### Auto Mode Behavior
209
-
210
- When `toolMode: 'auto'`:
211
- - Sudocode backend defaults to `mapped` (abstract tools)
212
- - Memory backend defaults to `abstract`
213
-
214
- ## Architecture
215
-
216
- ```
217
- ┌─────────────────────────────────────────────────────────────┐
218
- │ SudocodeTaskBackend │
219
- │ │
220
- │ ┌─────────────────────────────────────────────────────┐ │
221
- │ │ EventStore (Task Storage) │ │
222
- │ │ - Tasks with external_id bindings │ │
223
- │ │ - Task-level state (assignment, status, outputs) │ │
224
- │ └─────────────────────────────────────────────────────┘ │
225
- │ │ │
226
- │ ┌─────────────────────────────────────────────────────┐ │
227
- │ │ SudocodeClient (Interface) │ │
228
- │ │ - Abstracts deployment mode │ │
229
- │ │ - Issue/spec/relationship operations │ │
230
- │ └─────────────────────────────────────────────────────┘ │
231
- └──────────────────────────────┼───────────────────────────────┘
232
-
233
- ┌──────────────────┴──────────────────┐
234
- ▼ ▼
235
- ┌───────────────────────────┐ ┌───────────────────────────┐
236
- │ ServerClient │ │ StandaloneClient │
237
- │ (Managed Mode) │ │ (Standalone Mode) │
238
- │ - REST API + WebSocket │ │ - CLI + File Watcher │
239
- └───────────────────────────┘ └───────────────────────────┘
240
- ```
241
-
242
- ### Data Flow
243
-
244
- 1. **Task Creation**: Backend creates task in EventStore, binds to issue via `external_id`
245
- 2. **Blocker Lookup**: When `isBlocked` is queried, client fetches issue's blockers
246
- 3. **Status Sync**: Task status changes optionally sync to issue status
247
- 4. **Ready Queries**: `listReady()` filters tasks by sudocode's ready issues
248
-
249
- ## Migration Guide
250
-
251
- ### From InMemoryTaskBackend
252
-
253
- #### Breaking Changes
254
-
255
- 1. **No `subtasks[]` array** - Use `getChildren(parentId)` instead
256
- 2. **No `agent_history[]` array** - Use `getAgentHistory(taskId)` instead
257
- 3. **`isBlocked` is computed** - Based on sudocode relationships, not task.blockers
258
-
259
- #### Migration Steps
260
-
261
- 1. Update task creation to use `external_id` for issue binding:
262
- ```typescript
263
- // Before
264
- const task = await backend.create({ description: 'Work' });
265
-
266
- // After (with issue binding)
267
- const task = await backend.create({
268
- description: 'Work',
269
- external_id: 'i-abc123',
270
- });
271
- ```
272
-
273
- 2. Replace direct property access with method calls:
274
- ```typescript
275
- // Before
276
- const children = task.subtasks;
277
- const history = task.agent_history;
278
-
279
- // After
280
- const children = await backend.getChildren(task.id);
281
- const history = await backend.getAgentHistory(task.id);
282
- ```
283
-
284
- 3. Use `listReady()` for dependency-aware queries:
285
- ```typescript
286
- // Before (manual filtering)
287
- const tasks = await backend.list({ status: 'pending' });
288
- const ready = tasks.filter(t => !t.blockers?.length);
289
-
290
- // After
291
- const ready = await backend.listReady({ status: 'pending' });
292
- ```
293
-
294
- ### Coexistence
295
-
296
- Both backends can coexist during migration:
297
- - Tasks without `external_id` work like in-memory tasks
298
- - Tasks with `external_id` are bound to sudocode issues
299
- - Switch backends via environment variable without code changes
300
-
301
- ## Sync Policy
302
-
303
- Configure how task and issue state synchronize:
304
-
305
- ```typescript
306
- interface SyncPolicy {
307
- /** Action when bound issue is closed externally */
308
- onIssueClosed: 'complete_task' | 'fail_task' | 'notify_only';
309
-
310
- /** Action when issue description changes */
311
- onDescriptionChanged: 'propagate' | 'snapshot';
312
-
313
- /** Action when blocker status changes */
314
- onBlockerChanged: 'update_blocked' | 'notify_only';
315
-
316
- /** Update issue status when task starts */
317
- updateIssueOnStart: boolean;
318
-
319
- /** Update issue when task completes */
320
- updateIssueOnComplete: 'close' | 'comment' | 'never';
321
- }
322
- ```
323
-
324
- Default policy:
325
- ```typescript
326
- const defaultSyncPolicy = {
327
- onIssueClosed: 'notify_only', // Don't auto-complete/fail tasks
328
- onDescriptionChanged: 'snapshot', // Keep original description
329
- onBlockerChanged: 'update_blocked', // Update isBlocked state
330
- updateIssueOnStart: true, // Sync status to in_progress
331
- updateIssueOnComplete: 'never', // Let coordinator close issues
332
- };
333
- ```
334
-
335
- ## API Reference
336
-
337
- ### TaskBackend Methods
338
-
339
- | Method | Description |
340
- |--------|-------------|
341
- | `create(options)` | Create task, optionally bound to issue |
342
- | `get(id)` | Get task with computed `isBlocked` |
343
- | `update(id, updates)` | Update task metadata |
344
- | `assign(id, agentId)` | Assign task to agent |
345
- | `start(id)` | Start task, optionally sync to issue |
346
- | `complete(id, outputs?)` | Complete task |
347
- | `fail(id, error)` | Mark task as failed |
348
- | `list(filter?)` | List tasks with optional filter |
349
- | `listReady(filter?)` | List unblocked tasks |
350
- | `getBlockers(id)` | Get blocking tasks |
351
- | `getBlocking(id)` | Get tasks blocked by this one |
352
- | `getChildren(id)` | Get subtasks |
353
- | `getAgentHistory(id)` | Get assignment history |
354
- | `onTaskChange(callback)` | Subscribe to task events |
355
-
356
- ### ExtendedTask Fields
357
-
358
- | Field | Type | Description |
359
- |-------|------|-------------|
360
- | `id` | `string` | Internal task ID |
361
- | `external_id` | `string?` | Bound sudocode issue ID |
362
- | `status` | `TaskStatus` | Current status |
363
- | `isBlocked` | `boolean` | Computed from issue blockers |
364
- | `assigned_agent` | `string?` | Assigned agent ID |
365
- | `parent_task` | `string?` | Parent task ID |
366
- | `outputs` | `object?` | Task outputs on completion |
367
-
368
- ## Troubleshooting
369
-
370
- ### Task shows isBlocked=false when issue has blockers
371
-
372
- Ensure the sudocode client has fetched the latest issue state. Call `backend.getBlockers(taskId)` to refresh blocker data.
373
-
374
- ### Status not syncing to issue
375
-
376
- Check that `syncStatus: true` is set in backend config (default is true).
377
-
378
- ### Tasks not appearing in listReady()
379
-
380
- Tasks must:
381
- 1. Have status `pending` or `assigned`
382
- 2. Be bound to an issue with no incomplete blockers
383
- 3. Not be excluded by filter criteria