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
@@ -0,0 +1,150 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance for Claude Code when working with this repository.
4
+
5
+ ## Project Overview
6
+
7
+ **skill-tree** is a TypeScript library for managing agent skill versions and evolution. It extracts, iterates, and adapts skills from agent trajectories, enabling AI agents to build and maintain reusable skill libraries.
8
+
9
+ ## Key Architecture
10
+
11
+ ```
12
+ src/
13
+ ├── index.ts # Main exports
14
+ ├── skill-bank.ts # Main orchestrator (SkillBank class)
15
+ ├── types.ts # Core type definitions
16
+ ├── semver.ts # Semantic versioning utilities
17
+ ├── adapters/ # Session format adapters (Claude Code, OpenAI, etc.)
18
+ ├── extraction/ # Manual and automatic skill extraction
19
+ ├── storage/ # Storage adapters (memory, filesystem, SQLite)
20
+ ├── matching/ # Semantic skill matching with embeddings
21
+ ├── versioning/ # Lineage tracking and version management
22
+ ├── learning/ # Learning providers for skill extraction
23
+ │ ├── types.ts # LearningProvider interface, candidate types
24
+ │ └── providers/ # Provider implementations
25
+ │ ├── naive.ts # Simple heuristic-based extraction
26
+ │ └── cognitive-core.ts # Advanced batch learning via cognitive-core
27
+ ├── validation/ # Skill validation and testing
28
+ ├── metrics/ # Usage tracking and analytics
29
+ ├── hooks/ # Event hooks and activation system
30
+ ├── agents/ # AGENTS.md generation and parsing
31
+ ├── composition/ # Skill composition and merging
32
+ └── cli/ # Command-line interface
33
+ ```
34
+
35
+ ## Core Concepts
36
+
37
+ ### Skill
38
+ A reusable piece of knowledge with:
39
+ - `problem`: What it solves
40
+ - `triggerConditions`: When to apply
41
+ - `solution`: Step-by-step guidance
42
+ - `verification`: How to verify success
43
+ - Semantic versioning and lineage tracking
44
+
45
+ ### Trajectory
46
+ An agent session parsed into structured turns (user, assistant, tool interactions) with metadata and outcome.
47
+
48
+ ### LearningProvider
49
+ Interface for extracting candidates from trajectories. Two implementations:
50
+ - `NaiveLearningProvider`: Simple, synchronous extraction
51
+ - `CognitiveCoreProvider`: Advanced batch learning with dependency injection
52
+
53
+ ### LearningCandidate
54
+ Extracted knowledge before promotion to a versioned skill. Has kinds: `skill`, `strategy`, `pattern`, `error-fix`.
55
+
56
+ ## Development Commands
57
+
58
+ ```bash
59
+ # Build
60
+ npm run build
61
+
62
+ # Run all tests
63
+ npm test
64
+
65
+ # Run specific test file
66
+ npx tsx test/learning.test.ts
67
+
68
+ # Type check
69
+ npx tsc --noEmit
70
+ ```
71
+
72
+ ## Testing Patterns
73
+
74
+ Tests use a simple test harness in `test/run-all.ts`. Each test file exports tests via `describe()` and `it()` functions.
75
+
76
+ ```typescript
77
+ describe('My Feature', () => {
78
+ it('does something', () => {
79
+ // assertions
80
+ });
81
+ });
82
+ ```
83
+
84
+ Mock factories are used for dependency injection testing, especially for `CognitiveCoreProvider`:
85
+
86
+ ```typescript
87
+ function createMockCognitiveCoreFactory(): CognitiveCoreFactory & MockInspection {
88
+ // Returns mock implementations with inspection helpers
89
+ }
90
+ ```
91
+
92
+ ## CognitiveCoreProvider
93
+
94
+ This provider integrates with [cognitive-core](./references/cognitive-core/) (Atlas) for advanced learning. Key design decisions:
95
+
96
+ 1. **Dependency Injection**: Uses `CognitiveCoreFactory` interface instead of direct imports to avoid `tsconfig.json` `rootDir` issues and maintain clean separation.
97
+
98
+ 2. **Batch Accumulation**: Accumulates trajectories until `minTrajectories` threshold, then runs batch extraction for cross-trajectory pattern detection.
99
+
100
+ 3. **Trajectory Conversion**: Converts skill-tree `Turn[]` to cognitive-core's ReAct `Step[]` format when `convertToReAct: true`.
101
+
102
+ 4. **Kind Inference**: Automatically determines `LearningKind` from playbook content (error triggers → `error-fix`, strategy keywords → `strategy`, etc.).
103
+
104
+ 5. **Outcome Feedback**: Records success/failure to refine playbook confidence over time.
105
+
106
+ See `src/learning/providers/README.md` for detailed documentation.
107
+
108
+ ## Important Files
109
+
110
+ - `src/skill-bank.ts`: Main API entry point
111
+ - `src/learning/types.ts`: Learning interface definitions
112
+ - `src/learning/providers/cognitive-core.ts`: Cognitive-core adapter
113
+ - `test/learning.test.ts`: Comprehensive learning provider tests
114
+
115
+ ## Common Tasks
116
+
117
+ ### Adding a new learning provider
118
+
119
+ 1. Implement `LearningProvider` interface in `src/learning/providers/`
120
+ 2. Export from `src/learning/providers/index.ts`
121
+ 3. Re-export from `src/learning/index.ts`
122
+ 4. Add tests in `test/learning.test.ts`
123
+
124
+ ### Extending CognitiveCoreProvider
125
+
126
+ The provider uses interface types (`CCPlaybook`, `CCTrajectory`, etc.) that mirror cognitive-core. If cognitive-core adds new fields, update the interfaces in `cognitive-core.ts`.
127
+
128
+ ### Running a subset of tests
129
+
130
+ ```bash
131
+ # Run only learning tests
132
+ npx tsx test/learning.test.ts
133
+
134
+ # Run with verbose output
135
+ DEBUG=1 npx tsx test/learning.test.ts
136
+ ```
137
+
138
+ ## Code Style
139
+
140
+ - TypeScript with strict mode
141
+ - ES modules (`.js` extensions in imports)
142
+ - JSDoc comments for public APIs
143
+ - Interface types preferred over type aliases for extensibility
144
+ - Dependency injection for external integrations
145
+
146
+ ## References
147
+
148
+ - [cognitive-core (Atlas)](./references/cognitive-core/README.md): External learning engine
149
+ - [OpenSkills](https://github.com/numman-ali/openskills): Skill format inspiration
150
+ - [Claudeception](https://github.com/blader/Claudeception): Quality gates concept
@@ -0,0 +1,324 @@
1
+ # skill-tree
2
+
3
+ A TypeScript library for managing agent skill versions and evolution. Extract, iterate, and adapt skills from agent trajectories.
4
+
5
+ ## Overview
6
+
7
+ skill-tree helps you build and maintain a library of reusable skills for AI agents by:
8
+
9
+ - **Extracting skills** from agent sessions/trajectories (manual or automatic)
10
+ - **Storing skills** in a versioned, searchable format (OpenSkills-compatible)
11
+ - **Evolving skills** through versioning, forking, and merging
12
+ - **Quality gates** to ensure extracted skills are reusable and non-trivial
13
+
14
+ Inspired by research on skill libraries ([arXiv:2512.17102](https://arxiv.org/abs/2512.17102)), [Claudeception](https://github.com/blader/Claudeception), and [OpenSkills](https://github.com/numman-ali/openskills).
15
+
16
+ ## Installation
17
+
18
+ ```bash
19
+ npm install skill-tree
20
+ ```
21
+
22
+ ## Quick Start
23
+
24
+ ```typescript
25
+ import { createSkillBank } from 'skill-tree';
26
+
27
+ // Create a skill bank with filesystem storage
28
+ const skillBank = createSkillBank({
29
+ storage: {
30
+ type: 'filesystem',
31
+ basePath: './skills',
32
+ openSkillsCompatible: true,
33
+ },
34
+ });
35
+
36
+ await skillBank.initialize();
37
+
38
+ // Parse a Claude Code session
39
+ const trajectory = await skillBank.parseSession(sessionContent);
40
+
41
+ // Extract a skill manually
42
+ const result = await skillBank.extractManual(trajectory, {
43
+ suggestedName: 'typescript-import-fix',
44
+ description: 'Fix TypeScript ES module import errors',
45
+ tags: ['typescript', 'imports'],
46
+ });
47
+
48
+ if (result.success) {
49
+ console.log('Extracted skill:', result.skill.name);
50
+ }
51
+
52
+ // Search for skills
53
+ const skills = await skillBank.searchSkills('typescript error');
54
+
55
+ // Create a new version
56
+ const updated = await skillBank.createVersion('typescript-import-fix', {
57
+ solution: 'Updated solution...',
58
+ }, { bumpType: 'minor' });
59
+ ```
60
+
61
+ ## Core Concepts
62
+
63
+ ### Skills
64
+
65
+ A skill represents a reusable piece of knowledge extracted from agent interactions:
66
+
67
+ ```typescript
68
+ interface Skill {
69
+ id: string; // Unique identifier
70
+ name: string; // Human-readable name
71
+ version: string; // Semantic version
72
+ description: string; // For semantic matching
73
+ problem: string; // What problem this solves
74
+ triggerConditions: TriggerCondition[]; // When to apply
75
+ solution: string; // Step-by-step solution
76
+ verification: string; // How to verify it worked
77
+ examples: SkillExample[]; // Usage examples
78
+ // ... metadata, metrics, lineage
79
+ }
80
+ ```
81
+
82
+ ### Trajectories
83
+
84
+ Agent sessions are parsed into trajectories:
85
+
86
+ ```typescript
87
+ interface Trajectory {
88
+ sessionId: string;
89
+ turns: Turn[]; // User/assistant/tool interactions
90
+ metadata: TrajectoryMetadata;
91
+ outcome?: TrajectoryOutcome;
92
+ }
93
+ ```
94
+
95
+ ### Quality Gates
96
+
97
+ Extraction includes quality gates (inspired by Claudeception) to ensure skills are:
98
+
99
+ - **Reusable**: Applicable across multiple future tasks
100
+ - **Non-trivial**: Involves discovery beyond documentation lookup
101
+ - **Specific**: Has clear trigger conditions
102
+ - **Verified**: Solution demonstrably works
103
+
104
+ ## Features
105
+
106
+ ### Session Adapters
107
+
108
+ Parse different agent session formats:
109
+
110
+ ```typescript
111
+ // Built-in: Claude Code JSONL
112
+ const trajectory = await skillBank.parseSession(jsonlContent);
113
+
114
+ // Register custom adapters
115
+ skillBank.registerAdapter(myCustomAdapter);
116
+ ```
117
+
118
+ ### Extraction Modes
119
+
120
+ **Manual extraction** with user guidance:
121
+
122
+ ```typescript
123
+ const result = await skillBank.extractManual(trajectory, {
124
+ turnRange: [5, 15], // Extract specific turns
125
+ suggestedName: 'my-skill',
126
+ tags: ['debugging'],
127
+ });
128
+ ```
129
+
130
+ **Automatic extraction** using LLM:
131
+
132
+ ```typescript
133
+ skillBank.setLLMProvider(myLLMProvider);
134
+
135
+ const results = await skillBank.extractAutomatic(trajectory, {
136
+ minConfidence: 0.7,
137
+ });
138
+ ```
139
+
140
+ ### Storage
141
+
142
+ **Filesystem storage** (OpenSkills-compatible):
143
+
144
+ ```typescript
145
+ const skillBank = createSkillBank({
146
+ storage: {
147
+ type: 'filesystem',
148
+ basePath: '~/.skills',
149
+ openSkillsCompatible: true, // YAML frontmatter + Markdown
150
+ },
151
+ });
152
+ ```
153
+
154
+ **Memory storage** (for testing):
155
+
156
+ ```typescript
157
+ const skillBank = createSkillBank({
158
+ storage: { type: 'memory' },
159
+ });
160
+ ```
161
+
162
+ Skills are stored in the OpenSkills format:
163
+
164
+ ```
165
+ skills/
166
+ ├── my-skill/
167
+ │ ├── SKILL.md # Skill content (YAML + Markdown)
168
+ │ └── .skilltree.json # Metadata and lineage
169
+ └── .versions/
170
+ └── my-skill/
171
+ ├── 1.0.0.json # Version snapshots
172
+ └── 1.1.0.json
173
+ ```
174
+
175
+ ### Versioning
176
+
177
+ Semantic versioning with full lineage tracking:
178
+
179
+ ```typescript
180
+ // Create new version
181
+ const v2 = await skillBank.createVersion('my-skill', updates, {
182
+ bumpType: 'minor',
183
+ changelog: 'Added alternative solution',
184
+ });
185
+
186
+ // Get version history
187
+ const history = await skillBank.getVersionHistory('my-skill');
188
+
189
+ // Rollback to previous version
190
+ const restored = await skillBank.rollbackSkill('my-skill', '1.0.0');
191
+
192
+ // Compare versions
193
+ const diff = await skillBank.compareVersions('my-skill', '1.0.0', '2.0.0');
194
+ ```
195
+
196
+ ### Skill Evolution
197
+
198
+ Fork and merge skills:
199
+
200
+ ```typescript
201
+ // Fork for a specialized use case
202
+ const forked = await skillBank.forkSkill('my-skill', {
203
+ newId: 'my-skill-react',
204
+ newName: 'My Skill (React variant)',
205
+ reason: 'Specialized for React projects',
206
+ });
207
+
208
+ // Merge improvements back
209
+ const merged = await skillBank.lineageTracker.mergeSkill(
210
+ 'my-skill',
211
+ 'my-skill-react',
212
+ { fields: ['solution', 'examples'] }
213
+ );
214
+ ```
215
+
216
+ ### Events
217
+
218
+ Subscribe to skill bank events:
219
+
220
+ ```typescript
221
+ const unsubscribe = skillBank.on((event) => {
222
+ switch (event.type) {
223
+ case 'skill:created':
224
+ console.log('New skill:', event.skill.name);
225
+ break;
226
+ case 'extraction:completed':
227
+ console.log('Extraction confidence:', event.result.confidence);
228
+ break;
229
+ }
230
+ });
231
+ ```
232
+
233
+ ## API Reference
234
+
235
+ ### SkillBank
236
+
237
+ Main orchestrator class.
238
+
239
+ | Method | Description |
240
+ |--------|-------------|
241
+ | `initialize()` | Initialize storage (required before use) |
242
+ | `parseSession(content, adapter?)` | Parse session into trajectory |
243
+ | `extractManual(trajectory, options?)` | Extract skill with guidance |
244
+ | `extractAutomatic(trajectory, options?)` | Extract skills using LLM |
245
+ | `getSkill(id, version?)` | Get skill by ID |
246
+ | `listSkills(filter?)` | List skills with optional filter |
247
+ | `searchSkills(query)` | Search skills by text |
248
+ | `saveSkill(skill)` | Save or update a skill |
249
+ | `deleteSkill(id, version?)` | Delete a skill |
250
+ | `createVersion(id, updates, options?)` | Create new version |
251
+ | `forkSkill(id, options)` | Fork a skill |
252
+ | `getVersionHistory(id)` | Get version history |
253
+ | `rollbackSkill(id, version)` | Rollback to version |
254
+ | `on(handler)` | Subscribe to events |
255
+
256
+ ### Versioning Utilities
257
+
258
+ ```typescript
259
+ import {
260
+ parseVersion,
261
+ compareVersions,
262
+ bumpVersion,
263
+ satisfiesRange,
264
+ } from 'skill-tree';
265
+
266
+ bumpVersion('1.2.3', 'minor'); // '1.3.0'
267
+ satisfiesRange('1.5.0', '^1.2.0'); // true
268
+ ```
269
+
270
+ ## Skill Format
271
+
272
+ Skills use YAML frontmatter + Markdown (OpenSkills-compatible):
273
+
274
+ ```markdown
275
+ ---
276
+ name: typescript-esm-import-fix
277
+ description: |
278
+ Fix TypeScript ES module import errors by adding .js extension
279
+ version: 1.0.0
280
+ author: extracted
281
+ status: active
282
+ date: 2024-01-15
283
+ tags:
284
+ - typescript
285
+ - esm
286
+ - imports
287
+ ---
288
+
289
+ ## Problem
290
+
291
+ TypeScript with ES modules requires explicit .js extensions in imports.
292
+
293
+ ## Trigger Conditions
294
+
295
+ - **error**: `Cannot find module './utils'`
296
+ - **pattern**: `import .* from '\./[^']+(?<!\.js)'`
297
+
298
+ ## Solution
299
+
300
+ 1. Add `.js` extension to relative imports
301
+ 2. Even for `.ts` files, use `.js` in the import path
302
+
303
+ ## Verification
304
+
305
+ Run `tsc` and verify no module resolution errors.
306
+
307
+ ## Examples
308
+
309
+ ### Basic import fix
310
+
311
+ **Before:**
312
+ ```typescript
313
+ import { helper } from './utils'
314
+ ```
315
+
316
+ **After:**
317
+ ```typescript
318
+ import { helper } from './utils.js'
319
+ ```
320
+ ```
321
+
322
+ ## License
323
+
324
+ MIT
@@ -0,0 +1,221 @@
1
+ # Integration Gaps Tracking - v1
2
+
3
+ This document tracks the remaining work to complete the skill indexer integration as defined in [INTEGRATION_PLAN.md](./INTEGRATION_PLAN.md).
4
+
5
+ ## Status Overview
6
+
7
+ | Phase | Status | Completion |
8
+ |-------|--------|------------|
9
+ | Phase 1: Import Pipeline | ✅ Complete | 100% |
10
+ | Phase 2: CLI Unification | ✅ Complete | 100% |
11
+ | Phase 3: Unified Storage | ✅ Complete | 100% |
12
+ | Phase 4: Direct Integration | ✅ Complete | 100% |
13
+ | Phase 5: Bidirectional Sync | ✅ Complete | 100% |
14
+
15
+ ---
16
+
17
+ ## High Priority Items
18
+
19
+ ### 1. Unified Configuration System
20
+
21
+ **Status**: ✅ Complete
22
+
23
+ **Goal**: Single config file for both skill-tree and indexer settings.
24
+
25
+ **Location**: `~/.skill-tree/config.yaml`
26
+
27
+ **Tasks**:
28
+ - [x] Create `src/config/` module
29
+ - [x] Define `SkillTreeConfig` interface
30
+ - [x] Implement config file loading with defaults
31
+ - [x] Support environment variable substitution
32
+ - [x] Integrate with CLI global options
33
+ - [x] Integrate with IndexerService
34
+
35
+ **Files Created**:
36
+ - `src/config/types.ts` - Configuration type definitions
37
+ - `src/config/loader.ts` - Config loading and merging logic
38
+ - `src/config/index.ts` - Module exports
39
+ - `src/cli/commands/config.ts` - CLI config command
40
+
41
+ **Config Schema**:
42
+ ```yaml
43
+ storage:
44
+ type: sqlite | filesystem | memory
45
+ path: ~/.skill-tree/skills.db
46
+
47
+ indexer:
48
+ github_token: ${GITHUB_TOKEN}
49
+ anthropic_key: ${ANTHROPIC_API_KEY}
50
+ sources:
51
+ - https://github.com/VoltAgent/awesome-agent-skills
52
+ batch_size: 10
53
+ min_confidence: 0.7
54
+
55
+ matching:
56
+ embedding_model: text-embedding-3-small
57
+ similarity_threshold: 0.8
58
+
59
+ sync:
60
+ auto_check: false
61
+ check_interval_hours: 24
62
+ conflict_resolution: prompt
63
+
64
+ cli:
65
+ output_format: table
66
+ color: true
67
+ quiet: false
68
+ ```
69
+
70
+ ---
71
+
72
+ ### 2. IndexerService Direct Execution
73
+
74
+ **Status**: ✅ Complete
75
+
76
+ **Goal**: CLI commands execute directly instead of delegating to subprocess.
77
+
78
+ **Tasks**:
79
+ - [x] Update `IndexerService.initialize()` to properly load scraper modules
80
+ - [x] Implement `scrape()` method with actual scraper integration
81
+ - [x] Implement `classify()` method with actual indexer integration
82
+ - [x] Implement `detectRelationships()` method
83
+ - [x] Implement `getTaxonomyTree()` using storage adapter
84
+ - [x] Implement `getStats()` method
85
+ - [x] Update CLI commands to use IndexerService directly
86
+ - [x] Add fallback to subprocess if modules unavailable
87
+
88
+ **Files Modified**:
89
+ - `src/services/indexer.ts` - Full IndexerService implementation
90
+ - `src/cli/commands/indexer/scrape.ts` - Direct execution with fallback
91
+ - `src/cli/commands/indexer/classify.ts` - Direct execution with fallback
92
+ - `src/cli/commands/indexer/taxonomy.ts` - Direct execution with fallback
93
+ - `src/cli/commands/indexer/relationships.ts` - Direct execution with fallback
94
+ - `src/cli/commands/indexer/stats.ts` - Direct execution with fallback
95
+
96
+ ---
97
+
98
+ ## Medium Priority Items
99
+
100
+ ### 3. Direct SkillBank Integration
101
+
102
+ **Status**: ✅ Complete
103
+
104
+ **Goal**: IndexerService writes directly to SkillBank, no export/import step.
105
+
106
+ **Tasks**:
107
+ - [x] Implement `IndexerService.scrapeAndIndex()` method
108
+ - [x] Convert scraped skills on-the-fly using converter
109
+ - [x] Store directly via SkillBank.addSkill()
110
+ - [x] Auto-place in taxonomy after save
111
+ - [x] Update `skill-tree index scrape` to use direct integration
112
+
113
+ **Files Modified**:
114
+ - `src/services/indexer.ts` - Added `scrapeAndIndex()` method
115
+ - `src/skill-bank.ts` - Added `addSkill()` method with taxonomy placement
116
+ - `src/cli/commands/indexer/scrape.ts` - Added `--import` flag for auto-import
117
+
118
+ **Workflow After**:
119
+ ```bash
120
+ # One command does everything
121
+ skill-tree index scrape https://github.com/org/repo
122
+ # Skills immediately available in skill-tree
123
+ skill-tree list
124
+ ```
125
+
126
+ ---
127
+
128
+ ### 4. SkillBank Event System
129
+
130
+ **Status**: ✅ Complete
131
+
132
+ **Goal**: Event-driven hooks for skill lifecycle.
133
+
134
+ **Tasks**:
135
+ - [x] Add EventEmitter to SkillBank (already existed via `on()`)
136
+ - [x] Define event types: `skill:created`, `skill:updated`, `skill:deleted`
137
+ - [x] Emit events from `addSkill()`, `updateSkill()`, `deleteSkill()`
138
+ - [x] Hook relationship detection to `skill:created` for imported skills
139
+ - [x] Add `on()` and `off()` methods to SkillBank API
140
+ - [x] Add `onEvent()` for typed event subscriptions
141
+ - [x] Add `getStorage()` for advanced integration
142
+
143
+ **Files Modified**:
144
+ - `src/skill-bank.ts` - Enhanced event system with `off()`, `onEvent()`, `getStorage()`
145
+
146
+ **Event Interface**:
147
+ ```typescript
148
+ interface SkillEvent {
149
+ type: 'skill:created' | 'skill:updated' | 'skill:deleted' | 'skill:deprecated';
150
+ skill: Skill;
151
+ timestamp: Date;
152
+ source?: 'manual' | 'imported' | 'extracted';
153
+ }
154
+ ```
155
+
156
+ ---
157
+
158
+ ## Lower Priority Items
159
+
160
+ ### 5. Bidirectional Sync
161
+
162
+ **Status**: ✅ Complete
163
+
164
+ **Goal**: Keep skills in sync with remote sources.
165
+
166
+ **Tasks**:
167
+ - [x] Create `src/services/sync.ts`
168
+ - [x] Define `SkillSyncState` type
169
+ - [x] Implement `checkForUpdates()` - compare ETags/versions
170
+ - [x] Implement `pullRemoteChanges()` - fetch and merge
171
+ - [x] Implement `detectConflicts()` - local vs remote changes
172
+ - [x] Add `skill-tree index sync` command with options:
173
+ - [x] `--status` - show sync state
174
+ - [x] `--pull` - pull remote changes
175
+ - [x] `--dry-run` - preview changes
176
+
177
+ **Files Created**:
178
+ - `src/services/sync.ts` - Full SyncService implementation
179
+
180
+ **Files Modified**:
181
+ - `src/cli/commands/indexer/sync.ts` - Updated with sync status and pull commands
182
+
183
+ **Note**: SQLite sync_state table not yet added to schema (sync states stored in memory for now). This can be added in a future iteration.
184
+
185
+ ---
186
+
187
+ ## Open Questions (Decisions Made)
188
+
189
+ | Question | Status | Decision |
190
+ |----------|--------|----------|
191
+ | Taxonomy ownership | ✅ Resolved | Preserve original, allow re-classification on demand |
192
+ | Deduplication strategy | ✅ Resolved | Use `externalSource.url` as dedup key |
193
+ | Version conflict resolution | ✅ Resolved | Default to manual, with `--resolve` flag for automation |
194
+ | Namespace separation | ✅ Resolved | Use `source.type` field, no namespace prefix |
195
+
196
+ ---
197
+
198
+ ## Success Criteria Checklist
199
+
200
+ - [x] Single CLI (`skill-tree`) for all operations
201
+ - [x] Single database with skills from all sources
202
+ - [x] Taxonomy browsing works for all skills
203
+ - [x] Relationships detected across indexed and extracted skills
204
+ - [x] Clear provenance tracking (source: extracted vs indexed)
205
+ - [x] Seamless workflow from discovery to usage
206
+
207
+ ---
208
+
209
+ ## Change Log
210
+
211
+ | Date | Change |
212
+ |------|--------|
213
+ | 2025-01-XX | Initial gap analysis created |
214
+ | 2025-01-XX | Phases 1-3 implemented |
215
+ | 2025-01-XX | Tests added (56 tests) |
216
+ | 2025-02-01 | Unified configuration system implemented |
217
+ | 2025-02-01 | IndexerService direct execution implemented |
218
+ | 2025-02-01 | Direct SkillBank integration implemented |
219
+ | 2025-02-01 | SkillBank event system enhanced |
220
+ | 2025-02-01 | Bidirectional sync service implemented |
221
+ | 2025-02-01 | All phases complete |