cognitive-core 0.1.0 → 0.2.0

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 (972) hide show
  1. package/.claude/settings.json +88 -0
  2. package/.claude/settings.local.json +11 -0
  3. package/.entire/settings.json +4 -0
  4. package/CLAUDE.md +233 -0
  5. package/README.md +841 -255
  6. package/dist/atlas.d.ts +150 -12
  7. package/dist/atlas.d.ts.map +1 -1
  8. package/dist/atlas.js +391 -31
  9. package/dist/atlas.js.map +1 -1
  10. package/dist/bin/cli-utils.d.ts +37 -0
  11. package/dist/bin/cli-utils.d.ts.map +1 -0
  12. package/dist/bin/cli-utils.js +176 -0
  13. package/dist/bin/cli-utils.js.map +1 -0
  14. package/dist/bin/cognitive-core.d.ts +2 -12
  15. package/dist/bin/cognitive-core.d.ts.map +1 -1
  16. package/dist/bin/cognitive-core.js +76 -351
  17. package/dist/bin/cognitive-core.js.map +1 -1
  18. package/dist/bin/commands/kb.d.ts +6 -0
  19. package/dist/bin/commands/kb.d.ts.map +1 -0
  20. package/dist/bin/commands/kb.js +240 -0
  21. package/dist/bin/commands/kb.js.map +1 -0
  22. package/dist/bin/commands/learn.d.ts +6 -0
  23. package/dist/bin/commands/learn.d.ts.map +1 -0
  24. package/dist/bin/commands/learn.js +91 -0
  25. package/dist/bin/commands/learn.js.map +1 -0
  26. package/dist/bin/commands/legacy.d.ts +12 -0
  27. package/dist/bin/commands/legacy.d.ts.map +1 -0
  28. package/dist/bin/commands/legacy.js +142 -0
  29. package/dist/bin/commands/legacy.js.map +1 -0
  30. package/dist/bin/commands/run.d.ts +3 -0
  31. package/dist/bin/commands/run.d.ts.map +1 -0
  32. package/dist/bin/commands/run.js +99 -0
  33. package/dist/bin/commands/run.js.map +1 -0
  34. package/dist/bin/commands/sessions.d.ts +9 -0
  35. package/dist/bin/commands/sessions.d.ts.map +1 -0
  36. package/dist/bin/commands/sessions.js +183 -0
  37. package/dist/bin/commands/sessions.js.map +1 -0
  38. package/dist/bin/commands/skills.d.ts +6 -0
  39. package/dist/bin/commands/skills.d.ts.map +1 -0
  40. package/dist/bin/commands/skills.js +135 -0
  41. package/dist/bin/commands/skills.js.map +1 -0
  42. package/dist/embeddings/index.d.ts +1 -0
  43. package/dist/embeddings/index.d.ts.map +1 -1
  44. package/dist/embeddings/index.js +2 -0
  45. package/dist/embeddings/index.js.map +1 -1
  46. package/dist/embeddings/inverted-index.d.ts +47 -0
  47. package/dist/embeddings/inverted-index.d.ts.map +1 -0
  48. package/dist/embeddings/inverted-index.js +122 -0
  49. package/dist/embeddings/inverted-index.js.map +1 -0
  50. package/dist/embeddings/manager.d.ts +3 -1
  51. package/dist/embeddings/manager.d.ts.map +1 -1
  52. package/dist/embeddings/manager.js +12 -7
  53. package/dist/embeddings/manager.js.map +1 -1
  54. package/dist/embeddings/provider.d.ts.map +1 -1
  55. package/dist/embeddings/provider.js +6 -3
  56. package/dist/embeddings/provider.js.map +1 -1
  57. package/dist/embeddings/vector-store.d.ts +7 -3
  58. package/dist/embeddings/vector-store.d.ts.map +1 -1
  59. package/dist/embeddings/vector-store.js +22 -6
  60. package/dist/embeddings/vector-store.js.map +1 -1
  61. package/dist/factory.d.ts +11 -12
  62. package/dist/factory.d.ts.map +1 -1
  63. package/dist/factory.js +20 -7
  64. package/dist/factory.js.map +1 -1
  65. package/dist/index.d.ts +11 -8
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +71 -8
  68. package/dist/index.js.map +1 -1
  69. package/dist/learning/analyzer.d.ts.map +1 -1
  70. package/dist/learning/analyzer.js +17 -35
  71. package/dist/learning/analyzer.js.map +1 -1
  72. package/dist/learning/energy-evaluator.d.ts +128 -0
  73. package/dist/learning/energy-evaluator.d.ts.map +1 -0
  74. package/dist/learning/energy-evaluator.js +175 -0
  75. package/dist/learning/energy-evaluator.js.map +1 -0
  76. package/dist/learning/healing-orchestrator.d.ts +182 -0
  77. package/dist/learning/healing-orchestrator.d.ts.map +1 -0
  78. package/dist/learning/healing-orchestrator.js +250 -0
  79. package/dist/learning/healing-orchestrator.js.map +1 -0
  80. package/dist/learning/index.d.ts +11 -2
  81. package/dist/learning/index.d.ts.map +1 -1
  82. package/dist/learning/index.js +20 -3
  83. package/dist/learning/index.js.map +1 -1
  84. package/dist/learning/instant-loop.d.ts +87 -0
  85. package/dist/learning/instant-loop.d.ts.map +1 -0
  86. package/dist/learning/instant-loop.js +264 -0
  87. package/dist/learning/instant-loop.js.map +1 -0
  88. package/dist/learning/knowledge-extractor.d.ts +56 -0
  89. package/dist/learning/knowledge-extractor.d.ts.map +1 -0
  90. package/dist/learning/knowledge-extractor.js +336 -0
  91. package/dist/learning/knowledge-extractor.js.map +1 -0
  92. package/dist/learning/loop-coordinator.d.ts +61 -0
  93. package/dist/learning/loop-coordinator.d.ts.map +1 -0
  94. package/dist/learning/loop-coordinator.js +96 -0
  95. package/dist/learning/loop-coordinator.js.map +1 -0
  96. package/dist/learning/maintenance-scheduler.d.ts +141 -0
  97. package/dist/learning/maintenance-scheduler.d.ts.map +1 -0
  98. package/dist/learning/maintenance-scheduler.js +186 -0
  99. package/dist/learning/maintenance-scheduler.js.map +1 -0
  100. package/dist/learning/meta-learner.d.ts +7 -0
  101. package/dist/learning/meta-learner.d.ts.map +1 -1
  102. package/dist/learning/meta-learner.js +47 -21
  103. package/dist/learning/meta-learner.js.map +1 -1
  104. package/dist/learning/pipeline.d.ts +55 -4
  105. package/dist/learning/pipeline.d.ts.map +1 -1
  106. package/dist/learning/pipeline.js +134 -16
  107. package/dist/learning/pipeline.js.map +1 -1
  108. package/dist/learning/reflexion-generator.d.ts +64 -0
  109. package/dist/learning/reflexion-generator.d.ts.map +1 -0
  110. package/dist/learning/reflexion-generator.js +194 -0
  111. package/dist/learning/reflexion-generator.js.map +1 -0
  112. package/dist/learning/team-ingester.d.ts +152 -0
  113. package/dist/learning/team-ingester.d.ts.map +1 -0
  114. package/dist/learning/team-ingester.js +333 -0
  115. package/dist/learning/team-ingester.js.map +1 -0
  116. package/dist/learning/team-meta-learner.d.ts +50 -0
  117. package/dist/learning/team-meta-learner.d.ts.map +1 -0
  118. package/dist/learning/team-meta-learner.js +417 -0
  119. package/dist/learning/team-meta-learner.js.map +1 -0
  120. package/dist/learning/team-pipeline.d.ts +76 -0
  121. package/dist/learning/team-pipeline.d.ts.map +1 -0
  122. package/dist/learning/team-pipeline.js +266 -0
  123. package/dist/learning/team-pipeline.js.map +1 -0
  124. package/dist/learning/trajectory-sources/dataclaw.d.ts +41 -0
  125. package/dist/learning/trajectory-sources/dataclaw.d.ts.map +1 -0
  126. package/dist/learning/trajectory-sources/dataclaw.js +330 -0
  127. package/dist/learning/trajectory-sources/dataclaw.js.map +1 -0
  128. package/dist/learning/trajectory-sources/entire.d.ts +31 -0
  129. package/dist/learning/trajectory-sources/entire.d.ts.map +1 -0
  130. package/dist/learning/trajectory-sources/entire.js +189 -0
  131. package/dist/learning/trajectory-sources/entire.js.map +1 -0
  132. package/dist/learning/trajectory-sources/file.d.ts +23 -0
  133. package/dist/learning/trajectory-sources/file.d.ts.map +1 -0
  134. package/dist/learning/trajectory-sources/file.js +101 -0
  135. package/dist/learning/trajectory-sources/file.js.map +1 -0
  136. package/dist/learning/trajectory-sources/huggingface.d.ts +36 -0
  137. package/dist/learning/trajectory-sources/huggingface.d.ts.map +1 -0
  138. package/dist/learning/trajectory-sources/huggingface.js +157 -0
  139. package/dist/learning/trajectory-sources/huggingface.js.map +1 -0
  140. package/dist/learning/trajectory-sources/in-memory.d.ts +21 -0
  141. package/dist/learning/trajectory-sources/in-memory.d.ts.map +1 -0
  142. package/dist/learning/trajectory-sources/in-memory.js +43 -0
  143. package/dist/learning/trajectory-sources/in-memory.js.map +1 -0
  144. package/dist/learning/trajectory-sources/index.d.ts +7 -0
  145. package/dist/learning/trajectory-sources/index.d.ts.map +1 -0
  146. package/dist/learning/trajectory-sources/index.js +7 -0
  147. package/dist/learning/trajectory-sources/index.js.map +1 -0
  148. package/dist/learning/trajectory-sources/pipeline.d.ts +24 -0
  149. package/dist/learning/trajectory-sources/pipeline.d.ts.map +1 -0
  150. package/dist/learning/trajectory-sources/pipeline.js +47 -0
  151. package/dist/learning/trajectory-sources/pipeline.js.map +1 -0
  152. package/dist/learning/unified-pipeline.d.ts +281 -0
  153. package/dist/learning/unified-pipeline.d.ts.map +1 -0
  154. package/dist/learning/unified-pipeline.js +637 -0
  155. package/dist/learning/unified-pipeline.js.map +1 -0
  156. package/dist/memory/candidate-retrieval.d.ts +43 -0
  157. package/dist/memory/candidate-retrieval.d.ts.map +1 -0
  158. package/dist/memory/candidate-retrieval.js +41 -0
  159. package/dist/memory/candidate-retrieval.js.map +1 -0
  160. package/dist/memory/causal-store.d.ts +97 -0
  161. package/dist/memory/causal-store.d.ts.map +1 -0
  162. package/dist/memory/causal-store.js +209 -0
  163. package/dist/memory/causal-store.js.map +1 -0
  164. package/dist/memory/coherence.d.ts +71 -0
  165. package/dist/memory/coherence.d.ts.map +1 -0
  166. package/dist/memory/coherence.js +176 -0
  167. package/dist/memory/coherence.js.map +1 -0
  168. package/dist/memory/experience.d.ts +39 -6
  169. package/dist/memory/experience.d.ts.map +1 -1
  170. package/dist/memory/experience.js +193 -49
  171. package/dist/memory/experience.js.map +1 -1
  172. package/dist/memory/graph-layers/base.d.ts +29 -0
  173. package/dist/memory/graph-layers/base.d.ts.map +1 -0
  174. package/dist/memory/graph-layers/base.js +143 -0
  175. package/dist/memory/graph-layers/base.js.map +1 -0
  176. package/dist/memory/graph-layers/causal.d.ts +14 -0
  177. package/dist/memory/graph-layers/causal.d.ts.map +1 -0
  178. package/dist/memory/graph-layers/causal.js +14 -0
  179. package/dist/memory/graph-layers/causal.js.map +1 -0
  180. package/dist/memory/graph-layers/entity.d.ts +14 -0
  181. package/dist/memory/graph-layers/entity.d.ts.map +1 -0
  182. package/dist/memory/graph-layers/entity.js +14 -0
  183. package/dist/memory/graph-layers/entity.js.map +1 -0
  184. package/dist/memory/graph-layers/index.d.ts +6 -0
  185. package/dist/memory/graph-layers/index.d.ts.map +1 -0
  186. package/dist/memory/graph-layers/index.js +6 -0
  187. package/dist/memory/graph-layers/index.js.map +1 -0
  188. package/dist/memory/graph-layers/semantic.d.ts +14 -0
  189. package/dist/memory/graph-layers/semantic.d.ts.map +1 -0
  190. package/dist/memory/graph-layers/semantic.js +14 -0
  191. package/dist/memory/graph-layers/semantic.js.map +1 -0
  192. package/dist/memory/graph-layers/temporal.d.ts +14 -0
  193. package/dist/memory/graph-layers/temporal.d.ts.map +1 -0
  194. package/dist/memory/graph-layers/temporal.js +14 -0
  195. package/dist/memory/graph-layers/temporal.js.map +1 -0
  196. package/dist/memory/index.d.ts +15 -0
  197. package/dist/memory/index.d.ts.map +1 -1
  198. package/dist/memory/index.js +22 -0
  199. package/dist/memory/index.js.map +1 -1
  200. package/dist/memory/knowledge-bank.d.ts +234 -0
  201. package/dist/memory/knowledge-bank.d.ts.map +1 -0
  202. package/dist/memory/knowledge-bank.js +1048 -0
  203. package/dist/memory/knowledge-bank.js.map +1 -0
  204. package/dist/memory/knowledge-defrag.d.ts +49 -0
  205. package/dist/memory/knowledge-defrag.d.ts.map +1 -0
  206. package/dist/memory/knowledge-defrag.js +257 -0
  207. package/dist/memory/knowledge-defrag.js.map +1 -0
  208. package/dist/memory/knowledge-graph.d.ts +41 -0
  209. package/dist/memory/knowledge-graph.d.ts.map +1 -0
  210. package/dist/memory/knowledge-graph.js +273 -0
  211. package/dist/memory/knowledge-graph.js.map +1 -0
  212. package/dist/memory/meta.d.ts +7 -8
  213. package/dist/memory/meta.d.ts.map +1 -1
  214. package/dist/memory/meta.js +73 -79
  215. package/dist/memory/meta.js.map +1 -1
  216. package/dist/memory/playbook.d.ts +26 -9
  217. package/dist/memory/playbook.d.ts.map +1 -1
  218. package/dist/memory/playbook.js +198 -74
  219. package/dist/memory/playbook.js.map +1 -1
  220. package/dist/memory/reasoning-bank.d.ts +130 -0
  221. package/dist/memory/reasoning-bank.d.ts.map +1 -0
  222. package/dist/memory/reasoning-bank.js +342 -0
  223. package/dist/memory/reasoning-bank.js.map +1 -0
  224. package/dist/memory/reflexion.d.ts +59 -0
  225. package/dist/memory/reflexion.d.ts.map +1 -0
  226. package/dist/memory/reflexion.js +96 -0
  227. package/dist/memory/reflexion.js.map +1 -0
  228. package/dist/memory/search-provider.d.ts +31 -0
  229. package/dist/memory/search-provider.d.ts.map +1 -0
  230. package/dist/memory/search-provider.js +2 -0
  231. package/dist/memory/search-provider.js.map +1 -0
  232. package/dist/memory/search-providers/index.d.ts +3 -0
  233. package/dist/memory/search-providers/index.d.ts.map +1 -0
  234. package/dist/memory/search-providers/index.js +3 -0
  235. package/dist/memory/search-providers/index.js.map +1 -0
  236. package/dist/memory/search-providers/minimem.d.ts +43 -0
  237. package/dist/memory/search-providers/minimem.d.ts.map +1 -0
  238. package/dist/memory/search-providers/minimem.js +56 -0
  239. package/dist/memory/search-providers/minimem.js.map +1 -0
  240. package/dist/memory/search-providers/text-similarity.d.ts +15 -0
  241. package/dist/memory/search-providers/text-similarity.d.ts.map +1 -0
  242. package/dist/memory/search-providers/text-similarity.js +21 -0
  243. package/dist/memory/search-providers/text-similarity.js.map +1 -0
  244. package/dist/memory/skill-exporter.d.ts +75 -0
  245. package/dist/memory/skill-exporter.d.ts.map +1 -0
  246. package/dist/memory/skill-exporter.js +248 -0
  247. package/dist/memory/skill-exporter.js.map +1 -0
  248. package/dist/memory/system.d.ts +20 -3
  249. package/dist/memory/system.d.ts.map +1 -1
  250. package/dist/memory/system.js +61 -11
  251. package/dist/memory/system.js.map +1 -1
  252. package/dist/memory/team-experience.d.ts +298 -0
  253. package/dist/memory/team-experience.d.ts.map +1 -0
  254. package/dist/memory/team-experience.js +355 -0
  255. package/dist/memory/team-experience.js.map +1 -0
  256. package/dist/memory/temporal-compressor.d.ts +126 -0
  257. package/dist/memory/temporal-compressor.d.ts.map +1 -0
  258. package/dist/memory/temporal-compressor.js +335 -0
  259. package/dist/memory/temporal-compressor.js.map +1 -0
  260. package/dist/persistence/index.d.ts +11 -0
  261. package/dist/persistence/index.d.ts.map +1 -0
  262. package/dist/persistence/index.js +11 -0
  263. package/dist/persistence/index.js.map +1 -0
  264. package/dist/persistence/migrator.d.ts +40 -0
  265. package/dist/persistence/migrator.d.ts.map +1 -0
  266. package/dist/persistence/migrator.js +238 -0
  267. package/dist/persistence/migrator.js.map +1 -0
  268. package/dist/persistence/serializers.d.ts +45 -0
  269. package/dist/persistence/serializers.d.ts.map +1 -0
  270. package/dist/persistence/serializers.js +80 -0
  271. package/dist/persistence/serializers.js.map +1 -0
  272. package/dist/persistence/sqlite-persistence.d.ts +228 -0
  273. package/dist/persistence/sqlite-persistence.d.ts.map +1 -0
  274. package/dist/persistence/sqlite-persistence.js +588 -0
  275. package/dist/persistence/sqlite-persistence.js.map +1 -0
  276. package/dist/runtime/backends/acp-protocol.d.ts +49 -0
  277. package/dist/runtime/backends/acp-protocol.d.ts.map +1 -0
  278. package/dist/runtime/backends/acp-protocol.js +166 -0
  279. package/dist/runtime/backends/acp-protocol.js.map +1 -0
  280. package/dist/runtime/backends/acp.d.ts +26 -26
  281. package/dist/runtime/backends/acp.d.ts.map +1 -1
  282. package/dist/runtime/backends/acp.js +32 -156
  283. package/dist/runtime/backends/acp.js.map +1 -1
  284. package/dist/runtime/backends/index.d.ts +3 -1
  285. package/dist/runtime/backends/index.d.ts.map +1 -1
  286. package/dist/runtime/backends/index.js +3 -1
  287. package/dist/runtime/backends/index.js.map +1 -1
  288. package/dist/runtime/backends/macro-agent.d.ts +104 -0
  289. package/dist/runtime/backends/macro-agent.d.ts.map +1 -0
  290. package/dist/runtime/backends/macro-agent.js +107 -0
  291. package/dist/runtime/backends/macro-agent.js.map +1 -0
  292. package/dist/runtime/compute-provider.d.ts +87 -0
  293. package/dist/runtime/compute-provider.d.ts.map +1 -0
  294. package/dist/runtime/compute-provider.js +87 -0
  295. package/dist/runtime/compute-provider.js.map +1 -0
  296. package/dist/runtime/flows/learning.d.ts +10 -12
  297. package/dist/runtime/flows/learning.d.ts.map +1 -1
  298. package/dist/runtime/flows/learning.js +10 -23
  299. package/dist/runtime/flows/learning.js.map +1 -1
  300. package/dist/runtime/index.d.ts +3 -2
  301. package/dist/runtime/index.d.ts.map +1 -1
  302. package/dist/runtime/index.js +3 -1
  303. package/dist/runtime/index.js.map +1 -1
  304. package/dist/runtime/manager.d.ts +37 -4
  305. package/dist/runtime/manager.d.ts.map +1 -1
  306. package/dist/runtime/manager.js +139 -20
  307. package/dist/runtime/manager.js.map +1 -1
  308. package/dist/runtime/types.d.ts +38 -0
  309. package/dist/runtime/types.d.ts.map +1 -1
  310. package/dist/search/evaluator.d.ts +7 -0
  311. package/dist/search/evaluator.d.ts.map +1 -1
  312. package/dist/search/evaluator.js +24 -4
  313. package/dist/search/evaluator.js.map +1 -1
  314. package/dist/search/index.d.ts +2 -0
  315. package/dist/search/index.d.ts.map +1 -1
  316. package/dist/search/index.js +4 -0
  317. package/dist/search/index.js.map +1 -1
  318. package/dist/search/moe-gate.d.ts +124 -0
  319. package/dist/search/moe-gate.d.ts.map +1 -0
  320. package/dist/search/moe-gate.js +234 -0
  321. package/dist/search/moe-gate.js.map +1 -0
  322. package/dist/search/refinement-loop.d.ts +17 -0
  323. package/dist/search/refinement-loop.d.ts.map +1 -1
  324. package/dist/search/refinement-loop.js +77 -6
  325. package/dist/search/refinement-loop.js.map +1 -1
  326. package/dist/search/refinement-types.d.ts +2 -2
  327. package/dist/search/router.d.ts +32 -2
  328. package/dist/search/router.d.ts.map +1 -1
  329. package/dist/search/router.js +87 -4
  330. package/dist/search/router.js.map +1 -1
  331. package/dist/search/team-router.d.ts +91 -0
  332. package/dist/search/team-router.d.ts.map +1 -0
  333. package/dist/search/team-router.js +315 -0
  334. package/dist/search/team-router.js.map +1 -0
  335. package/dist/session-bank/git-reader.d.ts +44 -0
  336. package/dist/session-bank/git-reader.d.ts.map +1 -0
  337. package/dist/session-bank/git-reader.js +172 -0
  338. package/dist/session-bank/git-reader.js.map +1 -0
  339. package/dist/session-bank/index.d.ts +5 -0
  340. package/dist/session-bank/index.d.ts.map +1 -0
  341. package/dist/session-bank/index.js +4 -0
  342. package/dist/session-bank/index.js.map +1 -0
  343. package/dist/session-bank/parser.d.ts +50 -0
  344. package/dist/session-bank/parser.d.ts.map +1 -0
  345. package/dist/session-bank/parser.js +338 -0
  346. package/dist/session-bank/parser.js.map +1 -0
  347. package/dist/session-bank/session-bank.d.ts +40 -0
  348. package/dist/session-bank/session-bank.d.ts.map +1 -0
  349. package/dist/session-bank/session-bank.js +347 -0
  350. package/dist/session-bank/session-bank.js.map +1 -0
  351. package/dist/session-bank/types.d.ts +132 -0
  352. package/dist/session-bank/types.d.ts.map +1 -0
  353. package/dist/session-bank/types.js +7 -0
  354. package/dist/session-bank/types.js.map +1 -0
  355. package/dist/surfacing/index.d.ts +4 -0
  356. package/dist/surfacing/index.d.ts.map +1 -1
  357. package/dist/surfacing/index.js +3 -0
  358. package/dist/surfacing/index.js.map +1 -1
  359. package/dist/surfacing/publisher.d.ts +22 -0
  360. package/dist/surfacing/publisher.d.ts.map +1 -0
  361. package/dist/surfacing/publisher.js +9 -0
  362. package/dist/surfacing/publisher.js.map +1 -0
  363. package/dist/surfacing/skill-library.d.ts +12 -0
  364. package/dist/surfacing/skill-library.d.ts.map +1 -1
  365. package/dist/surfacing/skill-library.js +26 -0
  366. package/dist/surfacing/skill-library.js.map +1 -1
  367. package/dist/surfacing/skill-publisher.d.ts +43 -0
  368. package/dist/surfacing/skill-publisher.d.ts.map +1 -0
  369. package/dist/surfacing/skill-publisher.js +169 -0
  370. package/dist/surfacing/skill-publisher.js.map +1 -0
  371. package/dist/surfacing/sqlite-storage-adapter.d.ts +42 -0
  372. package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -0
  373. package/dist/surfacing/sqlite-storage-adapter.js +199 -0
  374. package/dist/surfacing/sqlite-storage-adapter.js.map +1 -0
  375. package/dist/surfacing/team-skill-library.d.ts +180 -0
  376. package/dist/surfacing/team-skill-library.d.ts.map +1 -0
  377. package/dist/surfacing/team-skill-library.js +384 -0
  378. package/dist/surfacing/team-skill-library.js.map +1 -0
  379. package/dist/types/config.d.ts +1318 -44
  380. package/dist/types/config.d.ts.map +1 -1
  381. package/dist/types/config.js +243 -0
  382. package/dist/types/config.js.map +1 -1
  383. package/dist/types/dataclaw.d.ts +286 -0
  384. package/dist/types/dataclaw.d.ts.map +1 -0
  385. package/dist/types/dataclaw.js +84 -0
  386. package/dist/types/dataclaw.js.map +1 -0
  387. package/dist/types/index.d.ts +9 -2
  388. package/dist/types/index.d.ts.map +1 -1
  389. package/dist/types/index.js +13 -1
  390. package/dist/types/index.js.map +1 -1
  391. package/dist/types/knowledge-graph.d.ts +148 -0
  392. package/dist/types/knowledge-graph.d.ts.map +1 -0
  393. package/dist/types/knowledge-graph.js +40 -0
  394. package/dist/types/knowledge-graph.js.map +1 -0
  395. package/dist/types/knowledge.d.ts +280 -0
  396. package/dist/types/knowledge.d.ts.map +1 -0
  397. package/dist/types/knowledge.js +191 -0
  398. package/dist/types/knowledge.js.map +1 -0
  399. package/dist/types/memory.d.ts +52 -0
  400. package/dist/types/memory.d.ts.map +1 -1
  401. package/dist/types/memory.js +13 -0
  402. package/dist/types/memory.js.map +1 -1
  403. package/dist/types/playbook.d.ts +4 -0
  404. package/dist/types/playbook.d.ts.map +1 -1
  405. package/dist/types/playbook.js.map +1 -1
  406. package/dist/types/team-meta.d.ts +160 -0
  407. package/dist/types/team-meta.d.ts.map +1 -0
  408. package/dist/types/team-meta.js +42 -0
  409. package/dist/types/team-meta.js.map +1 -0
  410. package/dist/types/team-playbook.d.ts +276 -0
  411. package/dist/types/team-playbook.d.ts.map +1 -0
  412. package/dist/types/team-playbook.js +85 -0
  413. package/dist/types/team-playbook.js.map +1 -0
  414. package/dist/types/team-trajectory.d.ts +305 -0
  415. package/dist/types/team-trajectory.d.ts.map +1 -0
  416. package/dist/types/team-trajectory.js +304 -0
  417. package/dist/types/team-trajectory.js.map +1 -0
  418. package/dist/types/trajectory-source.d.ts +39 -0
  419. package/dist/types/trajectory-source.d.ts.map +1 -0
  420. package/dist/types/trajectory-source.js +2 -0
  421. package/dist/types/trajectory-source.js.map +1 -0
  422. package/dist/utils/error-classifier.d.ts +30 -0
  423. package/dist/utils/error-classifier.d.ts.map +1 -0
  424. package/dist/utils/error-classifier.js +85 -0
  425. package/dist/utils/error-classifier.js.map +1 -0
  426. package/dist/utils/frontmatter.d.ts +34 -0
  427. package/dist/utils/frontmatter.d.ts.map +1 -0
  428. package/dist/utils/frontmatter.js +93 -0
  429. package/dist/utils/frontmatter.js.map +1 -0
  430. package/dist/utils/index.d.ts +4 -0
  431. package/dist/utils/index.d.ts.map +1 -1
  432. package/dist/utils/index.js +4 -0
  433. package/dist/utils/index.js.map +1 -1
  434. package/dist/utils/partitioned-store.d.ts +93 -0
  435. package/dist/utils/partitioned-store.d.ts.map +1 -0
  436. package/dist/utils/partitioned-store.js +251 -0
  437. package/dist/utils/partitioned-store.js.map +1 -0
  438. package/dist/utils/trajectory-helpers.d.ts +39 -0
  439. package/dist/utils/trajectory-helpers.d.ts.map +1 -0
  440. package/dist/utils/trajectory-helpers.js +57 -0
  441. package/dist/utils/trajectory-helpers.js.map +1 -0
  442. package/dist/workspace/index.d.ts +6 -0
  443. package/dist/workspace/index.d.ts.map +1 -0
  444. package/dist/workspace/index.js +11 -0
  445. package/dist/workspace/index.js.map +1 -0
  446. package/dist/workspace/runner.d.ts +49 -0
  447. package/dist/workspace/runner.d.ts.map +1 -0
  448. package/dist/workspace/runner.js +219 -0
  449. package/dist/workspace/runner.js.map +1 -0
  450. package/dist/workspace/skill-converter.d.ts +18 -0
  451. package/dist/workspace/skill-converter.d.ts.map +1 -0
  452. package/dist/workspace/skill-converter.js +257 -0
  453. package/dist/workspace/skill-converter.js.map +1 -0
  454. package/dist/workspace/templates/index.d.ts +11 -0
  455. package/dist/workspace/templates/index.d.ts.map +1 -0
  456. package/dist/workspace/templates/index.js +21 -0
  457. package/dist/workspace/templates/index.js.map +1 -0
  458. package/dist/workspace/templates/knowledge-defrag.d.ts +25 -0
  459. package/dist/workspace/templates/knowledge-defrag.d.ts.map +1 -0
  460. package/dist/workspace/templates/knowledge-defrag.js +154 -0
  461. package/dist/workspace/templates/knowledge-defrag.js.map +1 -0
  462. package/dist/workspace/templates/knowledge-extraction.d.ts +25 -0
  463. package/dist/workspace/templates/knowledge-extraction.d.ts.map +1 -0
  464. package/dist/workspace/templates/knowledge-extraction.js +246 -0
  465. package/dist/workspace/templates/knowledge-extraction.js.map +1 -0
  466. package/dist/workspace/templates/meta-reflection.d.ts +47 -0
  467. package/dist/workspace/templates/meta-reflection.d.ts.map +1 -0
  468. package/dist/workspace/templates/meta-reflection.js +135 -0
  469. package/dist/workspace/templates/meta-reflection.js.map +1 -0
  470. package/dist/workspace/templates/playbook-extraction.d.ts +20 -0
  471. package/dist/workspace/templates/playbook-extraction.d.ts.map +1 -0
  472. package/dist/workspace/templates/playbook-extraction.js +189 -0
  473. package/dist/workspace/templates/playbook-extraction.js.map +1 -0
  474. package/dist/workspace/templates/refinement-analysis.d.ts +31 -0
  475. package/dist/workspace/templates/refinement-analysis.d.ts.map +1 -0
  476. package/dist/workspace/templates/refinement-analysis.js +107 -0
  477. package/dist/workspace/templates/refinement-analysis.js.map +1 -0
  478. package/dist/workspace/templates/solution-evaluation.d.ts +21 -0
  479. package/dist/workspace/templates/solution-evaluation.d.ts.map +1 -0
  480. package/dist/workspace/templates/solution-evaluation.js +131 -0
  481. package/dist/workspace/templates/solution-evaluation.js.map +1 -0
  482. package/dist/workspace/templates/team-playbook-extraction.d.ts +44 -0
  483. package/dist/workspace/templates/team-playbook-extraction.d.ts.map +1 -0
  484. package/dist/workspace/templates/team-playbook-extraction.js +497 -0
  485. package/dist/workspace/templates/team-playbook-extraction.js.map +1 -0
  486. package/dist/workspace/templates/team-trajectory-analysis.d.ts +19 -0
  487. package/dist/workspace/templates/team-trajectory-analysis.d.ts.map +1 -0
  488. package/dist/workspace/templates/team-trajectory-analysis.js +442 -0
  489. package/dist/workspace/templates/team-trajectory-analysis.js.map +1 -0
  490. package/dist/workspace/templates/trajectory-analysis.d.ts +19 -0
  491. package/dist/workspace/templates/trajectory-analysis.d.ts.map +1 -0
  492. package/dist/workspace/templates/trajectory-analysis.js +170 -0
  493. package/dist/workspace/templates/trajectory-analysis.js.map +1 -0
  494. package/dist/workspace/templates/usage-inference.d.ts +19 -0
  495. package/dist/workspace/templates/usage-inference.d.ts.map +1 -0
  496. package/dist/workspace/templates/usage-inference.js +125 -0
  497. package/dist/workspace/templates/usage-inference.js.map +1 -0
  498. package/dist/workspace/types.d.ts +152 -0
  499. package/dist/workspace/types.d.ts.map +1 -0
  500. package/dist/workspace/types.js +17 -0
  501. package/dist/workspace/types.js.map +1 -0
  502. package/docs/DESIGN-agentic-workspace.md +2057 -0
  503. package/docs/DESIGN-semantic-memory-knowledge-bank.md +1789 -0
  504. package/docs/DESIGN-session-bank.md +1134 -0
  505. package/docs/DESIGN-team-extraction-pipeline.md +1369 -0
  506. package/docs/PROPOSAL-team-aware-learning.md +1080 -0
  507. package/docs/RESEARCH-semantic-memory-knowledge-structures.md +517 -0
  508. package/docs/RESEARCH-team-trajectory-learning.md +553 -0
  509. package/gaps.md +204 -0
  510. package/package.json +27 -7
  511. package/references/agent-workspace/CLAUDE.md +74 -0
  512. package/references/agent-workspace/README.md +587 -0
  513. package/references/agent-workspace/media/banner.png +0 -0
  514. package/references/agent-workspace/package-lock.json +2061 -0
  515. package/references/agent-workspace/package.json +54 -0
  516. package/references/agent-workspace/src/handle.ts +122 -0
  517. package/references/agent-workspace/src/index.ts +32 -0
  518. package/references/agent-workspace/src/manager.ts +102 -0
  519. package/references/agent-workspace/src/readers/json.ts +71 -0
  520. package/references/agent-workspace/src/readers/markdown.ts +37 -0
  521. package/references/agent-workspace/src/readers/raw.ts +27 -0
  522. package/references/agent-workspace/src/types.ts +68 -0
  523. package/references/agent-workspace/src/validation.ts +93 -0
  524. package/references/agent-workspace/src/writers/json.ts +17 -0
  525. package/references/agent-workspace/src/writers/markdown.ts +27 -0
  526. package/references/agent-workspace/src/writers/raw.ts +22 -0
  527. package/references/agent-workspace/tests/errors.test.ts +652 -0
  528. package/references/agent-workspace/tests/handle.test.ts +144 -0
  529. package/references/agent-workspace/tests/manager.test.ts +124 -0
  530. package/references/agent-workspace/tests/readers.test.ts +205 -0
  531. package/references/agent-workspace/tests/validation.test.ts +196 -0
  532. package/references/agent-workspace/tests/writers.test.ts +108 -0
  533. package/references/agent-workspace/tsconfig.json +20 -0
  534. package/references/agent-workspace/tsup.config.ts +9 -0
  535. package/references/minimem/.claude/settings.json +7 -0
  536. package/references/minimem/.sudocode/issues.jsonl +18 -0
  537. package/references/minimem/.sudocode/specs.jsonl +1 -0
  538. package/references/minimem/CLAUDE.md +310 -0
  539. package/references/minimem/README.md +556 -0
  540. package/references/minimem/claude-plugin/.claude-plugin/plugin.json +10 -0
  541. package/references/minimem/claude-plugin/.mcp.json +7 -0
  542. package/references/minimem/claude-plugin/README.md +158 -0
  543. package/references/minimem/claude-plugin/commands/recall.md +47 -0
  544. package/references/minimem/claude-plugin/commands/remember.md +41 -0
  545. package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +272 -0
  546. package/references/minimem/claude-plugin/hooks/hooks.json +27 -0
  547. package/references/minimem/claude-plugin/hooks/session-end.sh +86 -0
  548. package/references/minimem/claude-plugin/hooks/session-start.sh +85 -0
  549. package/references/minimem/claude-plugin/skills/memory/SKILL.md +108 -0
  550. package/references/minimem/package-lock.json +5373 -0
  551. package/references/minimem/package.json +60 -0
  552. package/references/minimem/scripts/postbuild.js +35 -0
  553. package/references/minimem/src/__tests__/edge-cases.test.ts +371 -0
  554. package/references/minimem/src/__tests__/errors.test.ts +265 -0
  555. package/references/minimem/src/__tests__/helpers.ts +199 -0
  556. package/references/minimem/src/__tests__/internal.test.ts +407 -0
  557. package/references/minimem/src/__tests__/knowledge.test.ts +287 -0
  558. package/references/minimem/src/__tests__/minimem.integration.test.ts +1127 -0
  559. package/references/minimem/src/__tests__/session.test.ts +190 -0
  560. package/references/minimem/src/cli/__tests__/commands.test.ts +759 -0
  561. package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +141 -0
  562. package/references/minimem/src/cli/commands/append.ts +76 -0
  563. package/references/minimem/src/cli/commands/config.ts +262 -0
  564. package/references/minimem/src/cli/commands/conflicts.ts +413 -0
  565. package/references/minimem/src/cli/commands/daemon.ts +169 -0
  566. package/references/minimem/src/cli/commands/index.ts +12 -0
  567. package/references/minimem/src/cli/commands/init.ts +88 -0
  568. package/references/minimem/src/cli/commands/mcp.ts +177 -0
  569. package/references/minimem/src/cli/commands/push-pull.ts +213 -0
  570. package/references/minimem/src/cli/commands/search.ts +158 -0
  571. package/references/minimem/src/cli/commands/status.ts +84 -0
  572. package/references/minimem/src/cli/commands/sync-init.ts +290 -0
  573. package/references/minimem/src/cli/commands/sync.ts +70 -0
  574. package/references/minimem/src/cli/commands/upsert.ts +197 -0
  575. package/references/minimem/src/cli/config.ts +584 -0
  576. package/references/minimem/src/cli/index.ts +264 -0
  577. package/references/minimem/src/cli/shared.ts +161 -0
  578. package/references/minimem/src/cli/sync/__tests__/central.test.ts +152 -0
  579. package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +209 -0
  580. package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +118 -0
  581. package/references/minimem/src/cli/sync/__tests__/detection.test.ts +207 -0
  582. package/references/minimem/src/cli/sync/__tests__/integration.test.ts +476 -0
  583. package/references/minimem/src/cli/sync/__tests__/registry.test.ts +363 -0
  584. package/references/minimem/src/cli/sync/__tests__/state.test.ts +255 -0
  585. package/references/minimem/src/cli/sync/__tests__/validation.test.ts +193 -0
  586. package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +178 -0
  587. package/references/minimem/src/cli/sync/central.ts +292 -0
  588. package/references/minimem/src/cli/sync/conflicts.ts +204 -0
  589. package/references/minimem/src/cli/sync/daemon.ts +407 -0
  590. package/references/minimem/src/cli/sync/detection.ts +138 -0
  591. package/references/minimem/src/cli/sync/index.ts +107 -0
  592. package/references/minimem/src/cli/sync/operations.ts +373 -0
  593. package/references/minimem/src/cli/sync/registry.ts +279 -0
  594. package/references/minimem/src/cli/sync/state.ts +355 -0
  595. package/references/minimem/src/cli/sync/validation.ts +206 -0
  596. package/references/minimem/src/cli/sync/watcher.ts +234 -0
  597. package/references/minimem/src/cli/version.ts +34 -0
  598. package/references/minimem/src/core/index.ts +9 -0
  599. package/references/minimem/src/core/indexer.ts +628 -0
  600. package/references/minimem/src/core/searcher.ts +221 -0
  601. package/references/minimem/src/db/schema.ts +183 -0
  602. package/references/minimem/src/db/sqlite-vec.ts +24 -0
  603. package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +431 -0
  604. package/references/minimem/src/embeddings/batch-gemini.ts +392 -0
  605. package/references/minimem/src/embeddings/batch-openai.ts +409 -0
  606. package/references/minimem/src/embeddings/embeddings.ts +434 -0
  607. package/references/minimem/src/index.ts +109 -0
  608. package/references/minimem/src/internal.ts +299 -0
  609. package/references/minimem/src/minimem.ts +1276 -0
  610. package/references/minimem/src/search/__tests__/hybrid.test.ts +247 -0
  611. package/references/minimem/src/search/graph.ts +234 -0
  612. package/references/minimem/src/search/hybrid.ts +151 -0
  613. package/references/minimem/src/search/search.ts +256 -0
  614. package/references/minimem/src/server/__tests__/mcp.test.ts +341 -0
  615. package/references/minimem/src/server/__tests__/tools.test.ts +364 -0
  616. package/references/minimem/src/server/mcp.ts +326 -0
  617. package/references/minimem/src/server/tools.ts +720 -0
  618. package/references/minimem/src/session.ts +460 -0
  619. package/references/minimem/tsconfig.json +19 -0
  620. package/references/minimem/tsup.config.ts +26 -0
  621. package/references/minimem/vitest.config.ts +24 -0
  622. package/references/sessionlog/.husky/pre-commit +1 -0
  623. package/references/sessionlog/.lintstagedrc.json +4 -0
  624. package/references/sessionlog/.prettierignore +4 -0
  625. package/references/sessionlog/.prettierrc.json +11 -0
  626. package/references/sessionlog/LICENSE +21 -0
  627. package/references/sessionlog/README.md +453 -0
  628. package/references/sessionlog/eslint.config.js +58 -0
  629. package/references/sessionlog/package-lock.json +3672 -0
  630. package/references/sessionlog/package.json +65 -0
  631. package/references/sessionlog/src/__tests__/agent-hooks.test.ts +570 -0
  632. package/references/sessionlog/src/__tests__/agent-registry.test.ts +127 -0
  633. package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +225 -0
  634. package/references/sessionlog/src/__tests__/claude-generator.test.ts +46 -0
  635. package/references/sessionlog/src/__tests__/commit-msg.test.ts +86 -0
  636. package/references/sessionlog/src/__tests__/cursor-agent.test.ts +224 -0
  637. package/references/sessionlog/src/__tests__/e2e-live.test.ts +890 -0
  638. package/references/sessionlog/src/__tests__/event-log.test.ts +183 -0
  639. package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +105 -0
  640. package/references/sessionlog/src/__tests__/gemini-agent.test.ts +375 -0
  641. package/references/sessionlog/src/__tests__/git-hooks.test.ts +78 -0
  642. package/references/sessionlog/src/__tests__/hook-managers.test.ts +121 -0
  643. package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +759 -0
  644. package/references/sessionlog/src/__tests__/opencode-agent.test.ts +338 -0
  645. package/references/sessionlog/src/__tests__/redaction.test.ts +136 -0
  646. package/references/sessionlog/src/__tests__/session-repo.test.ts +353 -0
  647. package/references/sessionlog/src/__tests__/session-store.test.ts +166 -0
  648. package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +466 -0
  649. package/references/sessionlog/src/__tests__/skill-live.test.ts +461 -0
  650. package/references/sessionlog/src/__tests__/summarize.test.ts +348 -0
  651. package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +610 -0
  652. package/references/sessionlog/src/__tests__/task-plan-live.test.ts +632 -0
  653. package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +121 -0
  654. package/references/sessionlog/src/__tests__/types.test.ts +166 -0
  655. package/references/sessionlog/src/__tests__/utils.test.ts +333 -0
  656. package/references/sessionlog/src/__tests__/validation.test.ts +103 -0
  657. package/references/sessionlog/src/__tests__/worktree.test.ts +57 -0
  658. package/references/sessionlog/src/agent/agents/claude-code.ts +1089 -0
  659. package/references/sessionlog/src/agent/agents/cursor.ts +361 -0
  660. package/references/sessionlog/src/agent/agents/gemini-cli.ts +632 -0
  661. package/references/sessionlog/src/agent/agents/opencode.ts +540 -0
  662. package/references/sessionlog/src/agent/registry.ts +143 -0
  663. package/references/sessionlog/src/agent/session-types.ts +113 -0
  664. package/references/sessionlog/src/agent/types.ts +220 -0
  665. package/references/sessionlog/src/cli.ts +597 -0
  666. package/references/sessionlog/src/commands/clean.ts +133 -0
  667. package/references/sessionlog/src/commands/disable.ts +84 -0
  668. package/references/sessionlog/src/commands/doctor.ts +145 -0
  669. package/references/sessionlog/src/commands/enable.ts +202 -0
  670. package/references/sessionlog/src/commands/explain.ts +261 -0
  671. package/references/sessionlog/src/commands/reset.ts +105 -0
  672. package/references/sessionlog/src/commands/resume.ts +180 -0
  673. package/references/sessionlog/src/commands/rewind.ts +195 -0
  674. package/references/sessionlog/src/commands/setup-ccweb.ts +275 -0
  675. package/references/sessionlog/src/commands/status.ts +172 -0
  676. package/references/sessionlog/src/config.ts +165 -0
  677. package/references/sessionlog/src/events/event-log.ts +126 -0
  678. package/references/sessionlog/src/git-operations.ts +558 -0
  679. package/references/sessionlog/src/hooks/git-hooks.ts +165 -0
  680. package/references/sessionlog/src/hooks/lifecycle.ts +391 -0
  681. package/references/sessionlog/src/index.ts +650 -0
  682. package/references/sessionlog/src/security/redaction.ts +283 -0
  683. package/references/sessionlog/src/session/state-machine.ts +452 -0
  684. package/references/sessionlog/src/store/checkpoint-store.ts +509 -0
  685. package/references/sessionlog/src/store/native-store.ts +173 -0
  686. package/references/sessionlog/src/store/provider-types.ts +99 -0
  687. package/references/sessionlog/src/store/session-store.ts +266 -0
  688. package/references/sessionlog/src/strategy/attribution.ts +296 -0
  689. package/references/sessionlog/src/strategy/common.ts +207 -0
  690. package/references/sessionlog/src/strategy/content-overlap.ts +228 -0
  691. package/references/sessionlog/src/strategy/manual-commit.ts +988 -0
  692. package/references/sessionlog/src/strategy/types.ts +279 -0
  693. package/references/sessionlog/src/summarize/claude-generator.ts +115 -0
  694. package/references/sessionlog/src/summarize/summarize.ts +432 -0
  695. package/references/sessionlog/src/types.ts +508 -0
  696. package/references/sessionlog/src/utils/chunk-files.ts +49 -0
  697. package/references/sessionlog/src/utils/commit-message.ts +65 -0
  698. package/references/sessionlog/src/utils/detect-agent.ts +36 -0
  699. package/references/sessionlog/src/utils/hook-managers.ts +125 -0
  700. package/references/sessionlog/src/utils/ide-tags.ts +32 -0
  701. package/references/sessionlog/src/utils/paths.ts +79 -0
  702. package/references/sessionlog/src/utils/preview-rewind.ts +80 -0
  703. package/references/sessionlog/src/utils/rewind-conflict.ts +121 -0
  704. package/references/sessionlog/src/utils/shadow-branch.ts +109 -0
  705. package/references/sessionlog/src/utils/string-utils.ts +46 -0
  706. package/references/sessionlog/src/utils/todo-extract.ts +188 -0
  707. package/references/sessionlog/src/utils/trailers.ts +187 -0
  708. package/references/sessionlog/src/utils/transcript-parse.ts +177 -0
  709. package/references/sessionlog/src/utils/transcript-timestamp.ts +59 -0
  710. package/references/sessionlog/src/utils/tree-ops.ts +219 -0
  711. package/references/sessionlog/src/utils/tty.ts +72 -0
  712. package/references/sessionlog/src/utils/validation.ts +65 -0
  713. package/references/sessionlog/src/utils/worktree.ts +58 -0
  714. package/references/sessionlog/src/wire-types.ts +59 -0
  715. package/references/sessionlog/templates/setup-env.sh +153 -0
  716. package/references/sessionlog/tsconfig.json +18 -0
  717. package/references/sessionlog/vitest.config.ts +12 -0
  718. package/references/skill-tree/.claude/settings.json +6 -0
  719. package/references/skill-tree/.sudocode/issues.jsonl +19 -0
  720. package/references/skill-tree/.sudocode/specs.jsonl +3 -0
  721. package/references/skill-tree/CLAUDE.md +126 -0
  722. package/references/skill-tree/README.md +372 -0
  723. package/references/skill-tree/docs/GAPS_v1.md +221 -0
  724. package/references/skill-tree/docs/INTEGRATION_PLAN.md +467 -0
  725. package/references/skill-tree/docs/TODOS.md +91 -0
  726. package/references/skill-tree/docs/anthropic_skill_guide.md +1364 -0
  727. package/references/skill-tree/docs/design/federated-skill-trees.md +524 -0
  728. package/references/skill-tree/docs/design/multi-agent-sync.md +759 -0
  729. package/references/skill-tree/docs/scraper/BRAINSTORM.md +583 -0
  730. package/references/skill-tree/docs/scraper/POC_PLAN.md +420 -0
  731. package/references/skill-tree/docs/scraper/README.md +170 -0
  732. package/references/skill-tree/examples/basic-usage.ts +164 -0
  733. package/references/skill-tree/package-lock.json +1852 -0
  734. package/references/skill-tree/package.json +66 -0
  735. package/references/skill-tree/scraper/README.md +123 -0
  736. package/references/skill-tree/scraper/docs/DESIGN.md +683 -0
  737. package/references/skill-tree/scraper/docs/PLAN.md +336 -0
  738. package/references/skill-tree/scraper/drizzle.config.ts +10 -0
  739. package/references/skill-tree/scraper/package-lock.json +6329 -0
  740. package/references/skill-tree/scraper/package.json +68 -0
  741. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +7 -0
  742. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +7 -0
  743. package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +27 -0
  744. package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +21 -0
  745. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +54 -0
  746. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +24 -0
  747. package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +93 -0
  748. package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +22 -0
  749. package/references/skill-tree/scraper/tsup.config.ts +14 -0
  750. package/references/skill-tree/scraper/vitest.config.ts +17 -0
  751. package/references/skill-tree/scripts/convert-to-vitest.ts +166 -0
  752. package/references/skill-tree/skills/skill-writer/SKILL.md +339 -0
  753. package/references/skill-tree/skills/skill-writer/references/examples.md +326 -0
  754. package/references/skill-tree/skills/skill-writer/references/patterns.md +210 -0
  755. package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +123 -0
  756. package/references/skill-tree/test/run-all.ts +106 -0
  757. package/references/skill-tree/test/utils.ts +128 -0
  758. package/references/skill-tree/vitest.config.ts +16 -0
  759. package/src/atlas.ts +583 -41
  760. package/src/bin/cli-utils.ts +220 -0
  761. package/src/bin/cognitive-core.ts +84 -392
  762. package/src/bin/commands/kb.ts +266 -0
  763. package/src/bin/commands/learn.ts +100 -0
  764. package/src/bin/commands/legacy.ts +182 -0
  765. package/src/bin/commands/run.ts +113 -0
  766. package/src/bin/commands/sessions.ts +221 -0
  767. package/src/bin/commands/skills.ts +146 -0
  768. package/src/embeddings/index.ts +3 -0
  769. package/src/embeddings/inverted-index.ts +134 -0
  770. package/src/embeddings/manager.ts +13 -8
  771. package/src/embeddings/provider.ts +10 -3
  772. package/src/embeddings/vector-store.ts +21 -9
  773. package/src/factory.ts +33 -16
  774. package/src/index.ts +231 -9
  775. package/src/learning/analyzer.ts +21 -37
  776. package/src/learning/energy-evaluator.ts +282 -0
  777. package/src/learning/healing-orchestrator.ts +383 -0
  778. package/src/learning/index.ts +104 -13
  779. package/src/learning/instant-loop.ts +357 -0
  780. package/src/learning/knowledge-extractor.ts +470 -0
  781. package/src/learning/maintenance-scheduler.ts +271 -0
  782. package/src/learning/meta-learner.ts +59 -23
  783. package/src/learning/reflexion-generator.ts +273 -0
  784. package/src/learning/team-ingester.ts +499 -0
  785. package/src/learning/team-meta-learner.ts +558 -0
  786. package/src/learning/team-pipeline.ts +364 -0
  787. package/src/learning/trajectory-sources/dataclaw.ts +403 -0
  788. package/src/learning/trajectory-sources/entire.ts +251 -0
  789. package/src/learning/trajectory-sources/file.ts +136 -0
  790. package/src/learning/trajectory-sources/huggingface.ts +248 -0
  791. package/src/learning/trajectory-sources/in-memory.ts +61 -0
  792. package/src/learning/trajectory-sources/index.ts +15 -0
  793. package/src/learning/trajectory-sources/pipeline.ts +69 -0
  794. package/src/learning/unified-pipeline.ts +921 -0
  795. package/src/memory/candidate-retrieval.ts +71 -0
  796. package/src/memory/causal-store.ts +273 -0
  797. package/src/memory/coherence.ts +252 -0
  798. package/src/memory/experience.ts +217 -50
  799. package/src/memory/graph-layers/base.ts +184 -0
  800. package/src/memory/graph-layers/causal.ts +16 -0
  801. package/src/memory/graph-layers/entity.ts +16 -0
  802. package/src/memory/graph-layers/index.ts +5 -0
  803. package/src/memory/graph-layers/semantic.ts +16 -0
  804. package/src/memory/graph-layers/temporal.ts +16 -0
  805. package/src/memory/index.ts +88 -0
  806. package/src/memory/knowledge-bank.ts +1317 -0
  807. package/src/memory/knowledge-defrag.ts +329 -0
  808. package/src/memory/knowledge-graph.ts +361 -0
  809. package/src/memory/meta.ts +78 -96
  810. package/src/memory/playbook.ts +239 -75
  811. package/src/memory/reasoning-bank.ts +458 -0
  812. package/src/memory/reflexion.ts +122 -0
  813. package/src/memory/search-provider.ts +35 -0
  814. package/src/memory/search-providers/index.ts +3 -0
  815. package/src/memory/search-providers/minimem.ts +84 -0
  816. package/src/memory/search-providers/text-similarity.ts +35 -0
  817. package/src/memory/skill-exporter.ts +357 -0
  818. package/src/memory/system.ts +80 -11
  819. package/src/memory/team-experience.ts +604 -0
  820. package/src/memory/temporal-compressor.ts +409 -0
  821. package/src/persistence/index.ts +37 -0
  822. package/src/persistence/migrator.ts +298 -0
  823. package/src/persistence/serializers.ts +79 -0
  824. package/src/persistence/sqlite-persistence.ts +925 -0
  825. package/src/runtime/backends/acp-protocol.ts +231 -0
  826. package/src/runtime/backends/acp.ts +57 -196
  827. package/src/runtime/backends/index.ts +14 -0
  828. package/src/runtime/backends/macro-agent.ts +177 -0
  829. package/src/runtime/compute-provider.ts +206 -0
  830. package/src/runtime/flows/learning.ts +25 -42
  831. package/src/runtime/index.ts +22 -0
  832. package/src/runtime/manager.ts +167 -23
  833. package/src/runtime/types.ts +41 -0
  834. package/src/search/evaluator.ts +29 -4
  835. package/src/search/index.ts +19 -0
  836. package/src/search/moe-gate.ts +304 -0
  837. package/src/search/refinement-loop.ts +106 -12
  838. package/src/search/router.ts +111 -4
  839. package/src/search/team-router.ts +459 -0
  840. package/src/session-bank/git-reader.ts +200 -0
  841. package/src/session-bank/index.ts +26 -0
  842. package/src/session-bank/parser.ts +548 -0
  843. package/src/session-bank/session-bank.ts +485 -0
  844. package/src/session-bank/types.ts +176 -0
  845. package/src/surfacing/index.ts +23 -0
  846. package/src/surfacing/publisher.ts +23 -0
  847. package/src/surfacing/skill-library.ts +31 -0
  848. package/src/surfacing/skill-publisher.ts +191 -0
  849. package/src/surfacing/sqlite-storage-adapter.ts +285 -0
  850. package/src/surfacing/team-skill-library.ts +610 -0
  851. package/src/types/config.ts +282 -0
  852. package/src/types/dataclaw.ts +99 -0
  853. package/src/types/huggingface-transformers.d.ts +12 -0
  854. package/src/types/index.ts +159 -0
  855. package/src/types/knowledge-graph.ts +246 -0
  856. package/src/types/knowledge.ts +388 -0
  857. package/src/types/memory.ts +30 -0
  858. package/src/types/playbook.ts +4 -0
  859. package/src/types/team-meta.ts +212 -0
  860. package/src/types/team-playbook.ts +384 -0
  861. package/src/types/team-trajectory.ts +673 -0
  862. package/src/types/trajectory-source.ts +47 -0
  863. package/src/utils/error-classifier.ts +113 -0
  864. package/src/utils/frontmatter.ts +118 -0
  865. package/src/utils/index.ts +25 -0
  866. package/src/utils/partitioned-store.ts +299 -0
  867. package/src/utils/trajectory-helpers.ts +79 -0
  868. package/src/workspace/index.ts +48 -0
  869. package/src/workspace/runner.ts +281 -0
  870. package/src/workspace/skill-converter.ts +288 -0
  871. package/src/workspace/templates/index.ts +64 -0
  872. package/src/workspace/templates/knowledge-defrag.ts +223 -0
  873. package/src/workspace/templates/knowledge-extraction.ts +337 -0
  874. package/src/workspace/templates/meta-reflection.ts +208 -0
  875. package/src/workspace/templates/playbook-extraction.ts +240 -0
  876. package/src/workspace/templates/refinement-analysis.ts +162 -0
  877. package/src/workspace/templates/solution-evaluation.ts +199 -0
  878. package/src/workspace/templates/team-playbook-extraction.ts +631 -0
  879. package/src/workspace/templates/team-trajectory-analysis.ts +564 -0
  880. package/src/workspace/templates/trajectory-analysis.ts +234 -0
  881. package/src/workspace/templates/usage-inference.ts +163 -0
  882. package/src/workspace/types.ts +241 -0
  883. package/tests/atlas-knowledge.test.ts +165 -0
  884. package/tests/embeddings/inverted-index.test.ts +138 -0
  885. package/tests/feature-toggles.test.ts +275 -0
  886. package/tests/gap-fixes.test.ts +1116 -0
  887. package/tests/integration/cli-e2e.test.ts +621 -0
  888. package/tests/integration/dataclaw-e2e.test.ts +559 -0
  889. package/tests/integration/e2e.test.ts +412 -4
  890. package/tests/integration/entire-e2e.test.ts +376 -0
  891. package/tests/integration/huggingface-e2e.test.ts +627 -0
  892. package/tests/integration/persistence-e2e.test.ts +741 -0
  893. package/tests/integration/phase-e2e.test.ts +1143 -0
  894. package/tests/integration/session-bank.test.ts +231 -0
  895. package/tests/integration/sessionlog-e2e.test.ts +329 -0
  896. package/tests/integration/skill-tree-wiring.test.ts +152 -0
  897. package/tests/integration/unified-pipeline-e2e.test.ts +634 -0
  898. package/tests/learning/analyzer.test.ts +1 -1
  899. package/tests/learning/dataclaw-trajectory-source.test.ts +642 -0
  900. package/tests/learning/energy-evaluator.test.ts +180 -0
  901. package/tests/learning/entire-trajectory-source.test.ts +380 -0
  902. package/tests/learning/healing-orchestrator.test.ts +269 -0
  903. package/tests/learning/huggingface-trajectory-source.test.ts +817 -0
  904. package/tests/learning/instant-loop.test.ts +243 -0
  905. package/tests/learning/knowledge-extractor.test.ts +491 -0
  906. package/tests/learning/maintenance-scheduler.test.ts +191 -0
  907. package/tests/learning/reflexion-generator.test.ts +411 -0
  908. package/tests/learning/team-ingester.test.ts +349 -0
  909. package/tests/learning/team-meta-learner.test.ts +618 -0
  910. package/tests/learning/team-pipeline.test.ts +334 -0
  911. package/tests/learning/trajectory-sources.test.ts +320 -0
  912. package/tests/learning/unified-pipeline.test.ts +322 -0
  913. package/tests/mcp/playbook-server.test.ts +6 -1
  914. package/tests/memory/causal-store.test.ts +276 -0
  915. package/tests/memory/coherence.test.ts +232 -0
  916. package/tests/memory/experience.test.ts +8 -3
  917. package/tests/memory/graph-layers/semantic.test.ts +219 -0
  918. package/tests/memory/knowledge-bank-extraction.test.ts +558 -0
  919. package/tests/memory/knowledge-bank.test.ts +705 -0
  920. package/tests/memory/knowledge-defrag.test.ts +366 -0
  921. package/tests/memory/knowledge-evolution.test.ts +563 -0
  922. package/tests/memory/knowledge-graph.test.ts +492 -0
  923. package/tests/memory/knowledge-inbox.test.ts +258 -0
  924. package/tests/memory/knowledge-minimem.test.ts +251 -0
  925. package/tests/memory/playbook.test.ts +307 -1
  926. package/tests/memory/provenance.test.ts +11 -2
  927. package/tests/memory/reasoning-bank.test.ts +239 -0
  928. package/tests/memory/reflexion.test.ts +166 -0
  929. package/tests/memory/skill-exporter.test.ts +475 -0
  930. package/tests/memory/system.test.ts +6 -1
  931. package/tests/memory/team-experience.test.ts +411 -0
  932. package/tests/memory/temporal-compressor.test.ts +318 -0
  933. package/tests/persistence/migrator.test.ts +1009 -0
  934. package/tests/persistence/sqlite-persistence.test.ts +635 -0
  935. package/tests/runtime/agent-manager.test.ts +7 -2
  936. package/tests/runtime/compute-provider.test.ts +288 -0
  937. package/tests/runtime/delegate.test.ts +354 -0
  938. package/tests/runtime/macro-agent-backend.test.ts +266 -0
  939. package/tests/search/moe-gate.test.ts +250 -0
  940. package/tests/search/refinement-loop.test.ts +11 -2
  941. package/tests/search/router.test.ts +81 -2
  942. package/tests/search/team-router.test.ts +376 -0
  943. package/tests/session-bank/fixtures/multi-tool-session/full.jsonl +12 -0
  944. package/tests/session-bank/fixtures/multi-tool-session/metadata.json +28 -0
  945. package/tests/session-bank/fixtures/root-metadata.json +18 -0
  946. package/tests/session-bank/fixtures/sessionlog-root-metadata.json +16 -0
  947. package/tests/session-bank/fixtures/sessionlog-session/full.jsonl +6 -0
  948. package/tests/session-bank/fixtures/sessionlog-session/metadata.json +55 -0
  949. package/tests/session-bank/fixtures/simple-session/full.jsonl +6 -0
  950. package/tests/session-bank/fixtures/simple-session/metadata.json +38 -0
  951. package/tests/session-bank/git-reader.test.ts +232 -0
  952. package/tests/session-bank/parser.test.ts +453 -0
  953. package/tests/session-bank/session-bank.test.ts +546 -0
  954. package/tests/surfacing/skill-library.test.ts +6 -1
  955. package/tests/surfacing/skill-publisher.test.ts +364 -0
  956. package/tests/surfacing/sqlite-storage-adapter.test.ts +206 -0
  957. package/tests/surfacing/team-skill-library.test.ts +444 -0
  958. package/tests/types/team-meta.test.ts +147 -0
  959. package/tests/types/team-playbook.test.ts +246 -0
  960. package/tests/types/team-trajectory.test.ts +557 -0
  961. package/tests/utils/frontmatter.test.ts +208 -0
  962. package/tests/utils/partitioned-store.test.ts +230 -0
  963. package/tests/workspace/full-flow.test.ts +845 -0
  964. package/tests/workspace/manager.test.ts +215 -0
  965. package/tests/workspace/runner.test.ts +336 -0
  966. package/tests/workspace/skill-converter.test.ts +205 -0
  967. package/tests/workspace/templates/knowledge-extraction.test.ts +235 -0
  968. package/tests/workspace/templates/team-playbook-extraction.test.ts +341 -0
  969. package/tests/workspace/templates/team-trajectory-analysis.test.ts +417 -0
  970. package/src/learning/llm-extractor.ts +0 -542
  971. package/src/learning/pipeline.ts +0 -244
  972. package/tests/learning/pipeline.test.ts +0 -176
@@ -0,0 +1,1369 @@
1
+ # Design: Team Knowledge Extraction Pipeline
2
+
3
+ ## Overview
4
+
5
+ This document describes the pipeline that transforms raw multi-agent team execution data into reusable knowledge. It builds on the research findings in `RESEARCH-team-trajectory-learning.md` and the team-aware learning proposal in `PROPOSAL-team-aware-learning.md`.
6
+
7
+ The pipeline mirrors the existing individual learning pipeline (`LearningPipeline.processTrajectory()` → `TrajectoryAnalyzer` → `PlaybookExtractor`), but operates on a **graph of interconnected trajectories** rather than a single linear trajectory, and uses **agentic analysis** rather than direct LLM calls.
8
+
9
+ ---
10
+
11
+ ## Core Design Decisions
12
+
13
+ ### 1. Team trajectory as a graph, not a flat event stream
14
+
15
+ A team trajectory is a set of individual `Trajectory` objects (nodes) connected by `AgentInteraction` edges. Individual trajectories are the existing type, unchanged. The interactions form a causal DAG overlaid on the linear trajectories.
16
+
17
+ ### 2. Agentic analysis, not raw LLM calls
18
+
19
+ The analysis phases spawn full agents (via the existing `AgentManager`) with filesystem workspaces, tool access, and injected knowledge. This allows iterative, tool-assisted analysis rather than single-prompt extraction. The analysis agents' own trajectories are captured for meta-learning.
20
+
21
+ ### 3. Three playbook types emerge from team analysis
22
+
23
+ - **Role playbooks**: How to be effective in a specific team role (surfaced to agents when assigned roles)
24
+ - **Team coordination playbooks**: How to compose and coordinate a team (surfaced during team formation)
25
+ - **Meta-learning signals**: Observations about team formation decisions and analysis quality (fed back into routing and future analysis)
26
+
27
+ ### 4. Compression and critical step identification combined
28
+
29
+ A single computational pass reduces the data before expensive agentic analysis. Simple structural methods first (pattern stripping, step folding), LLM summarization only as fallback.
30
+
31
+ ---
32
+
33
+ ## Phase 1-2: Ingest, Compress, Prepare Workspace
34
+
35
+ ### Input
36
+
37
+ The entry point receives individual trajectories tagged with interaction metadata at runtime by OpenTeams:
38
+
39
+ ```typescript
40
+ interface TeamTrajectoryInput {
41
+ /** High-level objective */
42
+ objective: string;
43
+ domain: string;
44
+ complexity: 'simple' | 'moderate' | 'complex' | 'epic';
45
+
46
+ /** Team structure snapshot */
47
+ teamName: string;
48
+ templateName: string;
49
+ topologyType: 'hierarchical' | 'flat' | 'wave' | 'custom';
50
+ enforcement: 'strict' | 'permissive' | 'audit';
51
+
52
+ /** Individual trajectories with interaction tags in step metadata */
53
+ memberTrajectories: {
54
+ agentId: string;
55
+ role: string;
56
+ trajectory: Trajectory; // existing type, unchanged
57
+ }[];
58
+
59
+ /** Declared expected interaction patterns from team.yaml */
60
+ expectedPatterns?: ExpectedInteractionPattern[];
61
+
62
+ /** Team-level outcome */
63
+ outcome: TeamOutcome;
64
+ }
65
+ ```
66
+
67
+ Runtime interaction tagging ensures each cross-agent step has metadata:
68
+
69
+ ```typescript
70
+ // Present in step.metadata when the step involves another agent
71
+ interface InteractionTag {
72
+ interactionId: string; // shared ID linking source + target
73
+ interactionType: InteractionType;
74
+ counterpartAgentId: string;
75
+ stepRole: 'source' | 'target';
76
+ channel?: string; // for signal interactions
77
+ signal?: string; // for signal interactions
78
+ }
79
+
80
+ type InteractionType =
81
+ | 'delegation'
82
+ | 'result_return'
83
+ | 'message'
84
+ | 'signal'
85
+ | 'spawn'
86
+ | 'escalation';
87
+ ```
88
+
89
+ ### Processing
90
+
91
+ This phase is entirely computational — no LLM calls.
92
+
93
+ ```typescript
94
+ class TeamTrajectoryIngester {
95
+ /**
96
+ * Build graph, compress, identify critical moments, prepare workspace.
97
+ * Combines what was previously Phases 1-3 into a single pass.
98
+ */
99
+ async ingest(input: TeamTrajectoryInput): Promise<AnalysisWorkspace> {
100
+
101
+ // 1. BUILD INTERACTION GRAPH
102
+ // - Extract interaction tags from all member step metadata
103
+ // - Group by interactionId, link source step to target step
104
+ // - Validate: no dangling edges, timestamps monotonic
105
+ // - Flag interactions as expected vs emergent
106
+ // (compare to input.expectedPatterns)
107
+
108
+ // 2. COMPUTE STRUCTURAL METRICS
109
+ // - Per-agent: step count, tool calls, tokens, outcome
110
+ // - Per-interaction: latency, content length, type distribution
111
+ // - Graph-level: interaction density, max in/out degree,
112
+ // bottleneck detection, parallelism ratio
113
+
114
+ // 3. COMPRESS PER-AGENT TRAJECTORIES
115
+ // - Identify interaction boundary steps (tagged with interactionId)
116
+ // → always preserve at full fidelity
117
+ // - Between boundaries, fold internal steps:
118
+ // structural first (strip verbose output, collapse consecutive
119
+ // non-key steps), LLM fallback only if still over budget
120
+ // - Remove token waste: repeated failed attempts (keep first + last),
121
+ // full file contents in observations, long stack traces
122
+
123
+ // 4. SCORE STEPS AND INTERACTIONS
124
+ // - Step scores: promise (position-based) + progress (action type)
125
+ // + interaction bonus (boundary steps score higher)
126
+ // - Interaction scores: downstream success + latency penalty
127
+ // + expected pattern bonus + information density
128
+ // - Mark top ~20% as critical
129
+
130
+ // 5. PREPARE WORKSPACE FILESYSTEM
131
+ // - Write compressed trajectories, interaction graph, metrics,
132
+ // team config, outcome, and critical moment annotations
133
+ // to a temporary workspace directory
134
+
135
+ return workspace;
136
+ }
137
+ }
138
+ ```
139
+
140
+ ### Output: The Analysis Workspace
141
+
142
+ The workspace is a filesystem directory that the analysis agent will use as its working environment:
143
+
144
+ ```
145
+ /tmp/team-analysis-{id}/
146
+ ├── input/ # Read-only context for the agent
147
+ │ ├── objective.md # Team objective + domain + complexity
148
+ │ ├── team-config.json # Topology, roles, expected patterns,
149
+ │ │ # enforcement mode
150
+ │ ├── outcome.json # Team outcome + per-member outcomes
151
+ │ ├── structural-metrics.json # Graph-level metrics computed above
152
+ │ ├── critical-moments.json # Annotated critical steps/interactions
153
+ │ │ # with scores
154
+ │ ├── trajectories/
155
+ │ │ ├── planner.json # Compressed trajectory for planner
156
+ │ │ ├── executor-1.json # Compressed trajectory for executor-1
157
+ │ │ ├── executor-2.json # etc.
158
+ │ │ └── verifier.json
159
+ │ └── interactions/
160
+ │ ├── graph.json # Interaction edges with timing, content,
161
+ │ │ # expected/emergent flags
162
+ │ └── timeline.json # Same interactions in chronological order
163
+
164
+ ├── workspace/ # Agent's scratch space (read-write)
165
+ │ └── (agent creates notes, intermediate analysis, etc.)
166
+
167
+ └── output/ # Agent writes structured results here
168
+ ├── agent-credits.json # Per-agent contribution assessment
169
+ ├── interaction-credits.json # Per-interaction value assessment
170
+ ├── coordination-assessment.json # Overall pattern analysis
171
+ ├── role-lessons/ # Per-role insights
172
+ │ ├── planner.json
173
+ │ ├── executor.json
174
+ │ └── verifier.json
175
+ ├── team-lessons.json # Team-level coordination insights
176
+ └── meta-observations.json # Observations about team formation
177
+ ```
178
+
179
+ ### Key Types
180
+
181
+ ```typescript
182
+ interface AnalysisWorkspace {
183
+ /** Workspace root directory */
184
+ path: string;
185
+
186
+ /** The built team trajectory (full graph structure) */
187
+ teamTrajectory: TeamTrajectory;
188
+
189
+ /** Compression statistics */
190
+ compressionStats: {
191
+ originalTokens: number;
192
+ compressedTokens: number;
193
+ ratio: number;
194
+ stepsPreserved: number;
195
+ stepsFolded: number;
196
+ };
197
+
198
+ /** Critical moment annotations */
199
+ criticalMoments: {
200
+ criticalSteps: Map<string, CriticalStep[]>;
201
+ criticalInteractions: CriticalInteraction[];
202
+ totalSteps: number;
203
+ criticalRatio: number;
204
+ };
205
+ }
206
+
207
+ interface TeamTrajectory {
208
+ id: string;
209
+ objective: string;
210
+ domain: string;
211
+ complexity: 'simple' | 'moderate' | 'complex' | 'epic';
212
+
213
+ teamName: string;
214
+ templateName: string;
215
+ topologyType: 'hierarchical' | 'flat' | 'wave' | 'custom';
216
+
217
+ members: MemberTrajectory[];
218
+ interactions: AgentInteraction[];
219
+ expectedPatterns: ExpectedInteractionPattern[];
220
+
221
+ outcome: TeamOutcome;
222
+ structuralMetrics: StructuralMetrics;
223
+
224
+ timestamp: Date;
225
+ metadata: Record<string, unknown>;
226
+ }
227
+
228
+ interface MemberTrajectory {
229
+ agentId: string;
230
+ role: string;
231
+ trajectory: Trajectory; // existing cognitive-core type
232
+ }
233
+
234
+ interface AgentInteraction {
235
+ id: string;
236
+ type: InteractionType;
237
+ from: { agentId: string; role: string; stepIndex: number };
238
+ to: { agentId: string; role: string; stepIndex: number };
239
+ content: string;
240
+ channel?: string;
241
+ signal?: string;
242
+ timestamp: Date;
243
+ latencyMs?: number;
244
+ wasExpected: boolean;
245
+ }
246
+
247
+ interface StructuralMetrics {
248
+ teamSize: number;
249
+ totalSteps: number;
250
+ totalInteractions: number;
251
+ interactionDensity: number; // interactions / steps
252
+ maxInDegree: { agentId: string; count: number };
253
+ maxOutDegree: { agentId: string; count: number };
254
+ parallelismRatio: number;
255
+ totalWallTimeSeconds: number;
256
+ totalTokens: number;
257
+ }
258
+
259
+ interface CriticalStep {
260
+ agentId: string;
261
+ role: string;
262
+ stepIndex: number;
263
+ step: Step;
264
+ scores: {
265
+ promise: number;
266
+ progress: number;
267
+ interactionBonus: number;
268
+ total: number;
269
+ };
270
+ }
271
+
272
+ interface CriticalInteraction {
273
+ interaction: AgentInteraction;
274
+ scores: {
275
+ downstreamSuccess: number;
276
+ latencyPenalty: number;
277
+ expectedBonus: number;
278
+ informationDensity: number;
279
+ total: number;
280
+ };
281
+ }
282
+ ```
283
+
284
+ ### Compression Configuration
285
+
286
+ ```typescript
287
+ interface CompressionConfig {
288
+ /** Max tokens per agent trajectory after compression */
289
+ maxTokensPerAgent: number; // default: 5000
290
+
291
+ /** Always preserve steps at interaction boundaries */
292
+ preserveInteractionBoundaries: boolean; // default: true
293
+
294
+ /** Max consecutive non-interaction steps before folding */
295
+ foldThreshold: number; // default: 5
296
+
297
+ /** Patterns to strip from observations (verbose tool output, etc.) */
298
+ stripPatterns: RegExp[]; // default: common verbose patterns
299
+
300
+ /** Fraction of steps to mark as critical */
301
+ maxCriticalRatio: number; // default: 0.25
302
+
303
+ /** Minimum score threshold for critical steps */
304
+ criticalStepThreshold: number; // default: 0.3
305
+
306
+ /** Minimum score threshold for critical interactions */
307
+ criticalInteractionThreshold: number; // default: 0.3
308
+ }
309
+ ```
310
+
311
+ ---
312
+
313
+ ## Phase 3: Agentic Analysis
314
+
315
+ ### Design Philosophy
316
+
317
+ Instead of `llmClient.complete(prompt)` returning structured JSON, we spawn a full agent via the existing `AgentManager`. The analysis agent gets:
318
+
319
+ - A **filesystem workspace** with the trajectory data as files it can selectively read
320
+ - **Tool access** to search, read, write, and compute — the same tools any Claude Code agent has
321
+ - **Injected knowledge** from past team analysis (team playbooks, analysis meta-playbooks, similar team experiences)
322
+ - **Trajectory capture** — the agent's own execution is recorded and fed through the individual learning pipeline, producing meta-learning about how to analyze teams
323
+
324
+ This uses the exact same infrastructure as task-solving agents. The only difference is the "task" is analysis rather than implementation.
325
+
326
+ ### Agent Spawn Configuration
327
+
328
+ Maps directly to the existing `AgentSpawnConfig`:
329
+
330
+ ```typescript
331
+ function buildAnalysisSpawnConfig(
332
+ workspace: AnalysisWorkspace,
333
+ injectedKnowledge: MemoryQueryResultV2
334
+ ): AgentSpawnConfig {
335
+ return {
336
+ agentType: 'claude-code',
337
+
338
+ task: {
339
+ id: `team-analysis-${workspace.teamTrajectory.id}`,
340
+ domain: 'team-analysis',
341
+ description: ANALYSIS_TASK_PROMPT, // see below
342
+ context: {
343
+ teamTrajectoryId: workspace.teamTrajectory.id,
344
+ objective: workspace.teamTrajectory.objective,
345
+ teamSize: workspace.teamTrajectory.members.length,
346
+ topologyType: workspace.teamTrajectory.topologyType,
347
+ outcome: workspace.teamTrajectory.outcome,
348
+ compressionRatio: workspace.compressionStats.ratio,
349
+ criticalRatio: workspace.criticalMoments.criticalRatio,
350
+ },
351
+ },
352
+
353
+ cwd: workspace.path,
354
+ injectedKnowledge,
355
+ captureToolCalls: true,
356
+ timeout: 300_000, // 5 minutes for analysis
357
+ };
358
+ }
359
+ ```
360
+
361
+ ### Analysis Task Prompt
362
+
363
+ The agent receives a task description that explains the workspace layout and expected output:
364
+
365
+ ```typescript
366
+ const ANALYSIS_TASK_PROMPT = `
367
+ Analyze a multi-agent team execution and extract learning signals.
368
+
369
+ ## Workspace Layout
370
+
371
+ input/ - Read-only team execution data
372
+ objective.md - What the team was trying to accomplish
373
+ team-config.json - Team structure and expected interaction patterns
374
+ outcome.json - Team and per-member outcomes
375
+ structural-metrics.json - Pre-computed graph metrics
376
+ critical-moments.json - Steps and interactions flagged as high-impact
377
+ trajectories/ - Per-agent compressed execution traces
378
+ interactions/
379
+ graph.json - Interaction edges between agents
380
+ timeline.json - Chronological interaction sequence
381
+
382
+ workspace/ - Your scratch space for notes and analysis
383
+
384
+ output/ - Write your structured analysis here
385
+
386
+ ## Your Task
387
+
388
+ 1. Read the objective, outcome, and team config to understand the context.
389
+
390
+ 2. Examine the interaction graph and structural metrics to identify
391
+ coordination patterns, bottlenecks, and communication efficiency.
392
+
393
+ 3. Read the critical moments annotations, then selectively read the
394
+ relevant compressed trajectories to understand what happened at
395
+ each critical step.
396
+
397
+ 4. For each agent/role, assess their contribution to the team outcome.
398
+ Write per-agent credit assessments to output/agent-credits.json.
399
+
400
+ 5. For each critical interaction, assess whether it was helpful, neutral,
401
+ or harmful. Write to output/interaction-credits.json.
402
+
403
+ 6. Identify coordination patterns (both designed and emergent) and
404
+ anti-patterns. Write to output/coordination-assessment.json.
405
+
406
+ 7. Extract role-specific lessons — what each role did well and what
407
+ could improve. Write to output/role-lessons/{role}.json.
408
+
409
+ 8. Extract team-level lessons about composition and coordination.
410
+ Write to output/team-lessons.json.
411
+
412
+ 9. Record observations about the team formation decision itself.
413
+ Write to output/meta-observations.json.
414
+
415
+ Use the workspace/ directory for any intermediate notes or analysis.
416
+ Refer to critical-moments.json to focus your analysis on the steps
417
+ and interactions that most influenced the outcome.
418
+ `;
419
+ ```
420
+
421
+ ### Knowledge Injection
422
+
423
+ The analysis agent receives three types of injected knowledge:
424
+
425
+ ```typescript
426
+ async function getAnalysisKnowledge(
427
+ memory: MemorySystem,
428
+ teamMemory: TeamMemorySystem,
429
+ workspace: AnalysisWorkspace
430
+ ): Promise<MemoryQueryResultV2> {
431
+
432
+ // 1. Team playbooks for similar task types
433
+ // So the agent knows what "good" team coordination looks like
434
+ const teamPlaybooks = await teamMemory.findMatchingTeamPlaybooks({
435
+ taskType: workspace.teamTrajectory.objective,
436
+ domain: workspace.teamTrajectory.domain,
437
+ topology: workspace.teamTrajectory.topologyType,
438
+ });
439
+
440
+ // 2. Past team analysis experiences
441
+ // So the agent can see how similar teams were analyzed before
442
+ const pastAnalyses = await teamMemory.findSimilarTeamExperiences({
443
+ objective: workspace.teamTrajectory.objective,
444
+ domain: workspace.teamTrajectory.domain,
445
+ });
446
+
447
+ // 3. Analysis meta-playbooks
448
+ // Playbooks about HOW to analyze (learned from past analysis agents)
449
+ // These live in the regular playbook library under domain "team-analysis"
450
+ const analysisPlaybooks = await memory.queryV2(
451
+ 'analyze multi-agent team execution extract learning signals',
452
+ { domains: ['team-analysis'] }
453
+ );
454
+
455
+ return mergeKnowledge(teamPlaybooks, pastAnalyses, analysisPlaybooks);
456
+ }
457
+ ```
458
+
459
+ The agent's system prompt includes both task-specific team playbooks and analysis meta-playbooks:
460
+
461
+ ```markdown
462
+ ## Atlas Knowledge
463
+
464
+ ### Applicable Team Playbooks
465
+ #### wave-parallel-feature-development (78% match)
466
+ **Composition:** planner + executors + verifier in wave topology
467
+ **Key Patterns:**
468
+ - plan-then-execute: Planner creates all tasks before executors start
469
+ - direct-verifier-subscription: Verifier subscribes to executor output
470
+ **Success Indicators:**
471
+ - coordination overhead < 25%
472
+ - all wave tasks complete before next wave
473
+
474
+ ### Analysis Guidance
475
+ #### team-bottleneck-detection (92% confidence)
476
+ **Strategy:** For teams with >4 agents, check interaction graph
477
+ in-degree first to identify bottleneck agents
478
+ **Tactics:**
479
+ - Read structural-metrics.json maxInDegree before trajectories
480
+ - Compare actual interaction patterns to expected patterns
481
+ - Bottleneck agents often have >40% of inbound interactions
482
+ ```
483
+
484
+ ### The Meta-Learning Feedback Loop
485
+
486
+ The analysis agent's own trajectory is captured via the existing `DefaultTrajectoryExtractor` and fed through the individual `LearningPipeline`:
487
+
488
+ ```
489
+ Analysis agent executes
490
+
491
+ ├─ AgentManager.spawn() → AgentSession
492
+ ├─ DefaultTrajectoryExtractor.extract() → Trajectory
493
+ │ (domain: "team-analysis")
494
+
495
+ ├─ LearningPipeline.processTrajectory()
496
+ │ → TrajectoryAnalyzer.analyze()
497
+ │ → ExperienceMemory.store()
498
+ │ → accumulate for batch learning
499
+
500
+ └─ Eventually: PlaybookExtractor.extract()
501
+ → Playbooks in domain "team-analysis"
502
+ → Injected into FUTURE analysis agents
503
+ ```
504
+
505
+ Over time, the system learns how to analyze teams better:
506
+
507
+ - "Reading structural-metrics.json before trajectories leads to faster bottleneck identification"
508
+ - "Writing notes in workspace/notes.md before producing output improves analysis quality"
509
+ - "For large teams (>5 agents), focus on interaction graph topology before individual trajectories"
510
+
511
+ These become playbooks in the "team-analysis" domain, surfaced via the existing `SkillLibrary` to future analysis agents.
512
+
513
+ ### Output Schema
514
+
515
+ The analysis agent writes JSON files to the `output/` directory. The pipeline reads and validates them after the agent completes.
516
+
517
+ ```typescript
518
+ // output/agent-credits.json
519
+ interface AgentCreditOutput {
520
+ credits: AgentCredit[];
521
+ }
522
+
523
+ interface AgentCredit {
524
+ agentId: string;
525
+ role: string;
526
+ /** Overall contribution to team outcome, 0-1 */
527
+ contributionScore: number;
528
+ /** Natural language assessment of this agent's performance */
529
+ assessment: string;
530
+ /** Per-critical-step attribution with reasoning */
531
+ stepAttributions: {
532
+ stepIndex: number;
533
+ attribution: number; // -1 to 1
534
+ reasoning: string;
535
+ }[];
536
+ /** Was this role necessary for this task? */
537
+ roleAssessment: 'essential' | 'helpful' | 'neutral' | 'redundant';
538
+ }
539
+
540
+ // output/interaction-credits.json
541
+ interface InteractionCreditOutput {
542
+ credits: InteractionCredit[];
543
+ }
544
+
545
+ interface InteractionCredit {
546
+ interactionId: string;
547
+ type: InteractionType;
548
+ fromRole: string;
549
+ toRole: string;
550
+ /** Was this interaction helpful, neutral, or harmful? */
551
+ value: 'helpful' | 'neutral' | 'harmful';
552
+ /** Credit score, -1 to 1 */
553
+ creditScore: number;
554
+ /** Natural language explanation */
555
+ reasoning: string;
556
+ /** Was this interaction necessary? */
557
+ necessity: 'critical' | 'useful' | 'unnecessary' | 'harmful';
558
+ /** How well-specified was the exchanged information? 0-1 */
559
+ contentQuality: number;
560
+ }
561
+
562
+ // output/coordination-assessment.json
563
+ interface CoordinationAssessmentOutput {
564
+ /** Overall coordination quality */
565
+ quality: 'excellent' | 'good' | 'acceptable' | 'poor';
566
+ /** Coordination patterns observed */
567
+ observedPatterns: {
568
+ name: string;
569
+ description: string;
570
+ roles: string[];
571
+ interactionIds: string[];
572
+ correlatedWithSuccess: boolean;
573
+ }[];
574
+ /** Anti-patterns observed */
575
+ observedAntiPatterns: {
576
+ name: string;
577
+ description: string;
578
+ roles: string[];
579
+ interactionIds: string[];
580
+ impact: string;
581
+ suggestedFix: string;
582
+ }[];
583
+ /** Comparison to expected patterns from team.yaml */
584
+ patternComparison: {
585
+ expected: string;
586
+ observed: 'followed' | 'deviated' | 'absent';
587
+ impact: string;
588
+ }[];
589
+ /** Emergent coordination not declared but observed */
590
+ emergentCoordination: {
591
+ description: string;
592
+ wasHelpful: boolean;
593
+ shouldBeFormalized: boolean;
594
+ }[];
595
+ /** 2-3 paragraph narrative summary */
596
+ narrative: string;
597
+ }
598
+
599
+ // output/role-lessons/{role}.json
600
+ interface RoleLessonOutput {
601
+ role: string;
602
+ agentId: string;
603
+ /** What this role did well */
604
+ strengths: string[];
605
+ /** What this role could improve */
606
+ improvements: string[];
607
+ /** Role necessity for this type of task */
608
+ roleAssessment: 'essential' | 'helpful' | 'neutral' | 'redundant';
609
+ /** How this role interacted with other roles */
610
+ interactionAssessment: {
611
+ withRole: string;
612
+ interactionType: InteractionType;
613
+ quality: 'effective' | 'adequate' | 'poor';
614
+ observation: string;
615
+ recommendation: string;
616
+ }[];
617
+ /** Evidence from the trajectory */
618
+ evidence: {
619
+ stepIndex: number;
620
+ description: string;
621
+ }[];
622
+ }
623
+
624
+ // output/team-lessons.json
625
+ interface TeamLessonsOutput {
626
+ /** Lessons about team composition */
627
+ compositionLessons: {
628
+ category: 'role-necessity' | 'team-size' | 'topology' | 'model-selection';
629
+ lesson: string;
630
+ evidence: string;
631
+ confidence: number;
632
+ }[];
633
+ /** Lessons about coordination */
634
+ coordinationLessons: {
635
+ category: 'delegation' | 'communication' | 'synchronization' | 'escalation';
636
+ lesson: string;
637
+ evidence: string;
638
+ confidence: number;
639
+ }[];
640
+ /** What the team should do differently */
641
+ recommendations: string[];
642
+ }
643
+
644
+ // output/meta-observations.json
645
+ interface TeamMetaObservationOutput {
646
+ /** Was the team formation effective? */
647
+ formation: {
648
+ wasEffective: boolean;
649
+ reasoning: string;
650
+ };
651
+ /** Was the composition right? */
652
+ composition: {
653
+ roleUtilization: Record<string, number>;
654
+ missingRoles: string[];
655
+ redundantRoles: string[];
656
+ teamSizeAssessment: 'too-small' | 'right-sized' | 'too-large';
657
+ };
658
+ /** Was the coordination approach right? */
659
+ coordination: {
660
+ topologyAssessment: 'effective' | 'neutral' | 'hindering';
661
+ enforcementAssessment: 'too-strict' | 'appropriate' | 'too-loose';
662
+ emergentPatterns: string[];
663
+ };
664
+ /** Suggestions for future team formation */
665
+ formationSuggestions: string[];
666
+ coordinationSuggestions: string[];
667
+ }
668
+ ```
669
+
670
+ ---
671
+
672
+ ## Phase 4: Collect, Store, Accumulate
673
+
674
+ After the analysis agent completes, the pipeline reads the output files, validates them, and stores the results.
675
+
676
+ ```typescript
677
+ class TeamAnalysisCollector {
678
+ async collect(
679
+ workspace: AnalysisWorkspace,
680
+ analysisAgentResult: AgentResult
681
+ ): Promise<TeamAnalysisResult> {
682
+
683
+ // 1. READ AND VALIDATE agent output files
684
+ const agentCredits = await this.readAndValidate<AgentCreditOutput>(
685
+ `${workspace.path}/output/agent-credits.json`
686
+ );
687
+ const interactionCredits = await this.readAndValidate<InteractionCreditOutput>(
688
+ `${workspace.path}/output/interaction-credits.json`
689
+ );
690
+ const coordination = await this.readAndValidate<CoordinationAssessmentOutput>(
691
+ `${workspace.path}/output/coordination-assessment.json`
692
+ );
693
+ const roleLessons = await this.readRoleLessons(
694
+ `${workspace.path}/output/role-lessons/`
695
+ );
696
+ const teamLessons = await this.readAndValidate<TeamLessonsOutput>(
697
+ `${workspace.path}/output/team-lessons.json`
698
+ );
699
+ const metaObs = await this.readAndValidate<TeamMetaObservationOutput>(
700
+ `${workspace.path}/output/meta-observations.json`
701
+ );
702
+
703
+ // 2. ASSEMBLE into TeamAnalysisResult
704
+ const result: TeamAnalysisResult = {
705
+ teamTrajectoryId: workspace.teamTrajectory.id,
706
+ agentCredits: agentCredits.credits,
707
+ interactionCredits: interactionCredits.credits,
708
+ coordinationAssessment: coordination,
709
+ roleLessons,
710
+ teamLessons,
711
+ metaObservation: metaObs,
712
+ analysisMetrics: {
713
+ analysisTokens: analysisAgentResult.metrics.tokenEstimate ?? 0,
714
+ analysisTimeMs: analysisAgentResult.metrics.totalTime,
715
+ analysisToolCalls: analysisAgentResult.metrics.toolCallCount,
716
+ },
717
+ };
718
+
719
+ // 3. STORE in TeamExperienceMemory
720
+ await this.teamMemory.storeTeamExperience({
721
+ teamTrajectory: workspace.teamTrajectory,
722
+ analysis: result,
723
+ });
724
+
725
+ // 4. RECORD TeamMetaObservation
726
+ await this.teamMemory.recordMetaObservation({
727
+ teamTrajectoryId: workspace.teamTrajectory.id,
728
+ ...metaObs,
729
+ outcome: {
730
+ success: workspace.teamTrajectory.outcome.success,
731
+ quality: this.assessQuality(workspace.teamTrajectory.outcome),
732
+ },
733
+ timestamp: new Date(),
734
+ });
735
+
736
+ // 5. ACCUMULATE lessons for batch playbook extraction
737
+ this.accumulated.push({
738
+ teamTrajectoryId: workspace.teamTrajectory.id,
739
+ objective: workspace.teamTrajectory.objective,
740
+ domain: workspace.teamTrajectory.domain,
741
+ topologyType: workspace.teamTrajectory.topologyType,
742
+ outcome: workspace.teamTrajectory.outcome,
743
+ roleLessons,
744
+ teamLessons,
745
+ coordinationAssessment: coordination,
746
+ agentCredits: agentCredits.credits,
747
+ });
748
+
749
+ // 6. PROCESS ANALYSIS AGENT'S OWN TRAJECTORY
750
+ // through existing individual learning pipeline
751
+ await this.individualPipeline.processTrajectory(
752
+ analysisAgentResult.trajectory
753
+ );
754
+
755
+ // 7. CLEANUP workspace
756
+ await this.cleanupWorkspace(workspace.path);
757
+
758
+ return result;
759
+ }
760
+ }
761
+ ```
762
+
763
+ ---
764
+
765
+ ## Phase 5: Batch Playbook Distillation
766
+
767
+ Triggered when enough team lessons have accumulated (configurable threshold, default 5). This phase also uses agentic analysis — a playbook extraction agent examines the batch and produces/updates playbooks.
768
+
769
+ ### Three Playbook Types
770
+
771
+ #### Type 1: Role-Specific Playbooks
772
+
773
+ *"How to be effective in this role within this type of team."*
774
+
775
+ These are distinct from individual task playbooks (which are about solving problems alone) and from team coordination playbooks (which are about team composition). Role playbooks capture **teamwork behavior from a single agent's perspective**.
776
+
777
+ ```typescript
778
+ interface RolePlaybook {
779
+ id: string;
780
+ name: string; // e.g., "effective-wave-planner"
781
+
782
+ // === APPLICABILITY ===
783
+ /** Which role this applies to */
784
+ role: string;
785
+ /** Team contexts where this guidance is relevant */
786
+ teamContext: {
787
+ topologies: ('hierarchical' | 'flat' | 'wave' | 'custom')[];
788
+ teamSizeRange: { min: number; max: number };
789
+ taskTypes: string[];
790
+ domains: string[];
791
+ };
792
+
793
+ // === ROLE GUIDANCE ===
794
+ guidance: {
795
+ /** Core responsibilities when playing this role */
796
+ responsibilities: string[];
797
+
798
+ /** How to interact with each other role */
799
+ interactionGuidance: RoleInteractionGuidance[];
800
+
801
+ /** Decision frameworks specific to this role */
802
+ decisionFrameworks: {
803
+ name: string;
804
+ when: string;
805
+ guidance: string;
806
+ }[];
807
+
808
+ /** Common mistakes in this role */
809
+ antiPatterns: string[];
810
+ };
811
+
812
+ // === EVOLUTION ===
813
+ evolution: {
814
+ version: string;
815
+ createdFrom: string[]; // team trajectory IDs
816
+ refinements: Refinement[];
817
+ successCount: number;
818
+ failureCount: number;
819
+ lastUsed?: Date;
820
+ };
821
+ confidence: number;
822
+ createdAt: Date;
823
+ updatedAt: Date;
824
+ }
825
+
826
+ interface RoleInteractionGuidance {
827
+ /** Which other role */
828
+ withRole: string;
829
+ /** What type of interaction */
830
+ interactionType: InteractionType;
831
+ /** How to do it effectively */
832
+ guidance: string;
833
+ /** Concrete examples from successful executions */
834
+ examples: string[];
835
+ /** What NOT to do */
836
+ antiPatterns: string[];
837
+ }
838
+ ```
839
+
840
+ **Example:**
841
+
842
+ ```yaml
843
+ name: effective-wave-executor
844
+ role: executor
845
+ teamContext:
846
+ topologies: [wave]
847
+ teamSizeRange: { min: 3, max: 6 }
848
+ taskTypes: [full-stack-feature, multi-component-feature]
849
+
850
+ guidance:
851
+ responsibilities:
852
+ - "Implement assigned vertical slice independently"
853
+ - "Signal completion on execution_events channel immediately"
854
+ - "Include test results in result_return to verifier"
855
+
856
+ interactionGuidance:
857
+ - withRole: planner
858
+ interactionType: result_return
859
+ guidance: >
860
+ When returning results, include: (1) files changed with brief
861
+ description, (2) test results summary, (3) any deviations from
862
+ the delegated spec and why.
863
+ examples:
864
+ - "Completed login form. Changed: src/components/LoginForm.tsx
865
+ (new), src/api/auth.ts (modified). Tests: 4/4 passing.
866
+ Deviation: used react-hook-form instead of controlled
867
+ inputs for better validation UX."
868
+ antiPatterns:
869
+ - "Sending just 'done' without artifact details"
870
+
871
+ - withRole: verifier
872
+ interactionType: signal
873
+ guidance: >
874
+ Signal TASK_DONE on execution_events as soon as tests pass.
875
+ Don't wait for planner acknowledgment. Verifier subscribes
876
+ directly and can begin review immediately.
877
+ antiPatterns:
878
+ - "Only signaling after planner confirms receipt"
879
+
880
+ decisionFrameworks:
881
+ - name: blocked-decision
882
+ when: "Blocked on unclear spec or missing context"
883
+ guidance: >
884
+ If blocked for <2 minutes of reasoning, make a reasonable
885
+ assumption and document it in result_return. If blocked on
886
+ fundamental ambiguity (e.g., which API to use), escalate
887
+ immediately rather than guessing.
888
+
889
+ antiPatterns:
890
+ - "Asking planner for clarification on every detail"
891
+ - "Implementing beyond the delegated scope"
892
+ - "Not including test evidence in completion signal"
893
+ ```
894
+
895
+ **How role playbooks are surfaced:**
896
+
897
+ When an agent is assigned a team role, role playbooks are injected alongside individual task playbooks. The agent's system prompt gains a "Team Role Guidance" section:
898
+
899
+ ```typescript
900
+ // Extension to AgentManager for team member spawning
901
+ async spawnTeamMember(config: TeamMemberSpawnConfig): Promise<AgentResult> {
902
+ // Individual task playbooks (existing SkillLibrary)
903
+ const taskKnowledge = await this.memory.queryV2(config.task.description, {
904
+ domains: [config.task.domain],
905
+ });
906
+
907
+ // Role playbooks (new RolePlaybookLibrary)
908
+ const rolePlaybooks = await this.rolePlaybookLibrary.findMatching({
909
+ role: config.role,
910
+ topology: config.teamTopology,
911
+ taskType: config.taskType,
912
+ domain: config.task.domain,
913
+ });
914
+
915
+ // Format both into system prompt
916
+ const systemPrompt = [
917
+ this.injector.format(taskKnowledge, config.agentType),
918
+ this.formatRoleGuidance(rolePlaybooks, config.role),
919
+ ].join('\n\n');
920
+
921
+ return this.spawn({
922
+ ...config,
923
+ systemPromptAdditions: systemPrompt,
924
+ });
925
+ }
926
+ ```
927
+
928
+ Rendered in the agent's system prompt as:
929
+
930
+ ```markdown
931
+ ## Task Skills
932
+ ### fix-typescript-errors (90% confidence)
933
+ **Strategy:** Use dynamic analysis to trace type errors...
934
+
935
+ ## Team Role Guidance
936
+ ### effective-wave-executor (82% confidence)
937
+ **Your Role:** executor in wave-parallel team
938
+ **Responsibilities:**
939
+ - Implement assigned vertical slice independently
940
+ - Signal completion immediately on execution_events
941
+ **Working with planner:**
942
+ - When returning results, include files changed + test results...
943
+ **Working with verifier:**
944
+ - Signal TASK_DONE as soon as tests pass, don't wait for planner...
945
+ **Avoid:**
946
+ - Asking planner for clarification on every detail
947
+ - Implementing beyond the delegated scope
948
+ ```
949
+
950
+ #### Type 2: Team Coordination Playbooks
951
+
952
+ These are the `TeamPlaybook` type from `PROPOSAL-team-aware-learning.md` — unchanged. They describe how to compose and coordinate a team for a given task type. Surfaced when `atlas.recommendTeam()` is called during team formation.
953
+
954
+ #### Type 3: Team Meta-Observations and Meta-Strategies
955
+
956
+ Team meta-learning parallels the existing individual `MetaLearner` → `MetaStrategy` pattern. It observes patterns about team formation decisions and produces strategies that adjust future team recommendations.
957
+
958
+ ```typescript
959
+ interface TeamMetaObservation {
960
+ id: string;
961
+ teamTrajectoryId: string;
962
+
963
+ /** Formation decision assessment */
964
+ formation: {
965
+ playbookUsed?: string;
966
+ formationMethod: 'template' | 'playbook' | 'manual' | 'adaptive';
967
+ wasEffective: boolean;
968
+ reasoning: string;
969
+ };
970
+
971
+ /** Composition effectiveness */
972
+ composition: {
973
+ roleUtilization: Record<string, number>;
974
+ missingRoles: string[];
975
+ redundantRoles: string[];
976
+ teamSizeAssessment: 'too-small' | 'right-sized' | 'too-large';
977
+ };
978
+
979
+ /** Coordination effectiveness */
980
+ coordination: {
981
+ topologyAssessment: 'effective' | 'neutral' | 'hindering';
982
+ enforcementAssessment: 'too-strict' | 'appropriate' | 'too-loose';
983
+ emergentPatterns: string[];
984
+ };
985
+
986
+ /** Outcome */
987
+ outcome: {
988
+ success: boolean;
989
+ quality: 'excellent' | 'good' | 'acceptable' | 'poor';
990
+ speedupEstimate: number;
991
+ costEfficiency: number;
992
+ };
993
+
994
+ /** Lessons */
995
+ lessons: {
996
+ formationSuggestions: string[];
997
+ coordinationSuggestions: string[];
998
+ roleSuggestions: string[];
999
+ };
1000
+
1001
+ timestamp: Date;
1002
+ }
1003
+
1004
+ interface TeamMetaStrategy {
1005
+ id: string;
1006
+ name: string;
1007
+
1008
+ /** When to apply this meta-strategy */
1009
+ condition: {
1010
+ taskCharacteristics: string[];
1011
+ resourceConstraints: string[];
1012
+ domains: string[];
1013
+ };
1014
+
1015
+ /** What adjustment to make during team formation */
1016
+ adjustment: {
1017
+ topologyBias?: Record<string, number>;
1018
+ teamSizeAdjustment: 'increase' | 'decrease' | 'maintain';
1019
+ roleAdjustments: string[];
1020
+ coordinationHints: string[];
1021
+ enforcementBias?: 'strict' | 'permissive' | 'audit';
1022
+ };
1023
+
1024
+ applicationCount: number;
1025
+ successRate: number;
1026
+ createdAt: Date;
1027
+ updatedAt: Date;
1028
+ }
1029
+ ```
1030
+
1031
+ **Meta-strategy generation** follows the same pattern as individual meta-learning:
1032
+
1033
+ ```
1034
+ 1. TeamMetaObservations accumulate (threshold: 5)
1035
+ 2. Periodically analyze:
1036
+ - Which topologies succeed for which task types?
1037
+ - Which team sizes work for which complexity levels?
1038
+ - Which role compositions correlate with success?
1039
+ 3. Generate TeamMetaStrategies from patterns
1040
+ 4. Apply during atlas.recommendTeam() to adjust recommendations
1041
+ ```
1042
+
1043
+ ### Batch Extraction Agent
1044
+
1045
+ Like Phase 3, batch extraction uses an agentic approach:
1046
+
1047
+ ```typescript
1048
+ async runBatchLearning(): Promise<TeamBatchResult> {
1049
+ if (this.accumulated.length < this.config.minTeamTrajectories) {
1050
+ return { ready: false };
1051
+ }
1052
+
1053
+ // Prepare extraction workspace
1054
+ const workspace = await this.prepareExtractionWorkspace(this.accumulated);
1055
+
1056
+ // Get existing playbooks for deduplication
1057
+ const existingTeamPlaybooks = await this.teamMemory.getTeamPlaybooks();
1058
+ const existingRolePlaybooks = await this.teamMemory.getRolePlaybooks();
1059
+
1060
+ // Inject existing playbooks + extraction meta-playbooks
1061
+ const knowledge = await this.getExtractionKnowledge(
1062
+ existingTeamPlaybooks,
1063
+ existingRolePlaybooks
1064
+ );
1065
+
1066
+ // Spawn extraction agent
1067
+ const result = await this.agentManager.spawn({
1068
+ agentType: 'claude-code',
1069
+ task: {
1070
+ id: `team-extraction-${Date.now()}`,
1071
+ domain: 'team-playbook-extraction',
1072
+ description: EXTRACTION_TASK_PROMPT,
1073
+ },
1074
+ cwd: workspace.path,
1075
+ injectedKnowledge: knowledge,
1076
+ captureToolCalls: true,
1077
+ });
1078
+
1079
+ // Read extraction agent's output
1080
+ const newTeamPlaybooks = await this.readPlaybooks(
1081
+ `${workspace.path}/output/team-playbooks/`
1082
+ );
1083
+ const newRolePlaybooks = await this.readPlaybooks(
1084
+ `${workspace.path}/output/role-playbooks/`
1085
+ );
1086
+ const playbookUpdates = await this.readUpdates(
1087
+ `${workspace.path}/output/updates/`
1088
+ );
1089
+ const metaStrategies = await this.readMetaStrategies(
1090
+ `${workspace.path}/output/meta-strategies/`
1091
+ );
1092
+
1093
+ // Store results
1094
+ for (const pb of newTeamPlaybooks) await this.teamMemory.storeTeamPlaybook(pb);
1095
+ for (const pb of newRolePlaybooks) await this.teamMemory.storeRolePlaybook(pb);
1096
+ for (const upd of playbookUpdates) await this.teamMemory.updatePlaybook(upd);
1097
+ for (const ms of metaStrategies) await this.teamMemory.storeMetaStrategy(ms);
1098
+
1099
+ // Process extraction agent's own trajectory for meta-learning
1100
+ await this.individualPipeline.processTrajectory(result.trajectory);
1101
+
1102
+ this.accumulated = [];
1103
+
1104
+ return {
1105
+ ready: true,
1106
+ teamPlaybooksCreated: newTeamPlaybooks.length,
1107
+ rolePlaybooksCreated: newRolePlaybooks.length,
1108
+ playbooksUpdated: playbookUpdates.length,
1109
+ metaStrategiesCreated: metaStrategies.length,
1110
+ };
1111
+ }
1112
+ ```
1113
+
1114
+ The extraction workspace contains the batch of accumulated lessons:
1115
+
1116
+ ```
1117
+ /tmp/team-extraction-{id}/
1118
+ ├── input/
1119
+ │ ├── lesson-batches/
1120
+ │ │ ├── team-exec-001.json # Lessons from team execution 1
1121
+ │ │ ├── team-exec-002.json # Lessons from team execution 2
1122
+ │ │ └── ...
1123
+ │ ├── existing-team-playbooks/
1124
+ │ │ └── *.json # For deduplication
1125
+ │ └── existing-role-playbooks/
1126
+ │ └── *.json # For deduplication
1127
+
1128
+ ├── workspace/ # Scratch space
1129
+
1130
+ └── output/
1131
+ ├── team-playbooks/ # New team coordination playbooks
1132
+ ├── role-playbooks/ # New role-specific playbooks
1133
+ ├── updates/ # Updates to existing playbooks
1134
+ └── meta-strategies/ # New team meta-strategies
1135
+ ```
1136
+
1137
+ ---
1138
+
1139
+ ## Full Pipeline Orchestration
1140
+
1141
+ The `TeamLearningPipeline` class ties everything together:
1142
+
1143
+ ```typescript
1144
+ class TeamLearningPipeline {
1145
+ private ingester: TeamTrajectoryIngester;
1146
+ private agentManager: AgentManager;
1147
+ private collector: TeamAnalysisCollector;
1148
+ private individualPipeline: LearningPipeline;
1149
+ private teamMemory: TeamMemorySystem;
1150
+ private memory: MemorySystem;
1151
+
1152
+ private accumulated: AccumulatedTeamLessons[] = [];
1153
+
1154
+ /**
1155
+ * Process a single team execution.
1156
+ * Phases 1-4: ingest → agentic analysis → collect.
1157
+ *
1158
+ * Mirrors LearningPipeline.processTrajectory().
1159
+ */
1160
+ async processTeamTrajectory(
1161
+ input: TeamTrajectoryInput
1162
+ ): Promise<TeamProcessResult> {
1163
+
1164
+ // Phase 1-2: Ingest, compress, prepare workspace
1165
+ const workspace = await this.ingester.ingest(input);
1166
+
1167
+ // Phase 3: Agentic analysis
1168
+ const knowledge = await this.getAnalysisKnowledge(workspace);
1169
+ const spawnConfig = buildAnalysisSpawnConfig(workspace, knowledge);
1170
+ const agentResult = await this.agentManager.spawn(spawnConfig);
1171
+
1172
+ // Phase 4: Collect, store, accumulate
1173
+ const analysisResult = await this.collector.collect(
1174
+ workspace, agentResult
1175
+ );
1176
+
1177
+ return {
1178
+ teamTrajectoryId: workspace.teamTrajectory.id,
1179
+ analysis: analysisResult,
1180
+ compressionStats: workspace.compressionStats,
1181
+ analysisMetrics: analysisResult.analysisMetrics,
1182
+ };
1183
+ }
1184
+
1185
+ /**
1186
+ * Run batch playbook extraction on accumulated lessons.
1187
+ * Phase 5.
1188
+ *
1189
+ * Mirrors LearningPipeline.runBatchLearning().
1190
+ */
1191
+ async runBatchLearning(): Promise<TeamBatchResult> {
1192
+ if (this.accumulated.length < this.config.minTeamTrajectories) {
1193
+ return { ready: false };
1194
+ }
1195
+
1196
+ // ... extraction agent workspace + spawn (see Phase 5 above)
1197
+ }
1198
+
1199
+ /**
1200
+ * Check if batch learning is ready.
1201
+ */
1202
+ isBatchReady(): boolean {
1203
+ return this.accumulated.length >= this.config.minTeamTrajectories;
1204
+ }
1205
+
1206
+ /**
1207
+ * Get accumulated lesson count.
1208
+ */
1209
+ getAccumulatedCount(): number {
1210
+ return this.accumulated.length;
1211
+ }
1212
+ }
1213
+ ```
1214
+
1215
+ ### Configuration
1216
+
1217
+ ```typescript
1218
+ interface TeamLearningConfig {
1219
+ /** Enable team-aware learning */
1220
+ enabled: boolean; // default: false
1221
+
1222
+ /** Compression settings */
1223
+ compression: CompressionConfig;
1224
+
1225
+ /** Minimum team executions before batch extraction */
1226
+ minTeamTrajectories: number; // default: 5
1227
+
1228
+ /** Similarity threshold for playbook deduplication */
1229
+ deduplicationThreshold: number; // default: 0.85
1230
+
1231
+ /** Maximum team experiences to store */
1232
+ maxTeamExperiences: number; // default: 200
1233
+
1234
+ /** Maximum team playbooks */
1235
+ maxTeamPlaybooks: number; // default: 50
1236
+
1237
+ /** Maximum role playbooks */
1238
+ maxRolePlaybooks: number; // default: 100
1239
+
1240
+ /** Analysis agent timeout */
1241
+ analysisTimeout: number; // default: 300_000 (5 minutes)
1242
+
1243
+ /** Extraction agent timeout */
1244
+ extractionTimeout: number; // default: 600_000 (10 minutes)
1245
+ }
1246
+ ```
1247
+
1248
+ ---
1249
+
1250
+ ## Integration with Atlas
1251
+
1252
+ New methods on the `Atlas` class:
1253
+
1254
+ ```typescript
1255
+ class Atlas {
1256
+ // ... existing methods ...
1257
+
1258
+ /**
1259
+ * Process a team trajectory for learning.
1260
+ * Team-level analog of processTrajectory().
1261
+ */
1262
+ async processTeamTrajectory(
1263
+ input: TeamTrajectoryInput
1264
+ ): Promise<TeamProcessResult> {
1265
+ return this.teamPipeline.processTeamTrajectory(input);
1266
+ }
1267
+
1268
+ /**
1269
+ * Recommend a team composition for a given task.
1270
+ * Uses team playbooks + role playbooks + meta-strategies.
1271
+ */
1272
+ async recommendTeam(task: {
1273
+ description: string;
1274
+ domain: string;
1275
+ complexity: 'simple' | 'moderate' | 'complex' | 'epic';
1276
+ constraints?: {
1277
+ maxAgents?: number;
1278
+ maxTokenBudget?: number;
1279
+ preferredTopology?: string;
1280
+ };
1281
+ }): Promise<TeamRecommendation> {
1282
+ // 1. Find matching team playbooks
1283
+ // 2. Apply team meta-strategies
1284
+ // 3. Include relevant role playbooks for each recommended role
1285
+ // 4. Return recommendation with asTeamYaml() export
1286
+ }
1287
+
1288
+ /**
1289
+ * Spawn a team member with both task knowledge and role guidance.
1290
+ */
1291
+ async spawnTeamMember(config: TeamMemberSpawnConfig): Promise<AgentResult> {
1292
+ // 1. Get task playbooks from individual SkillLibrary
1293
+ // 2. Get role playbooks from RolePlaybookLibrary
1294
+ // 3. Inject both into agent's system prompt
1295
+ // 4. Spawn via AgentManager
1296
+ // 5. Capture trajectory with interaction tags
1297
+ }
1298
+
1299
+ /**
1300
+ * Run batch team learning.
1301
+ */
1302
+ async runTeamBatchLearning(): Promise<TeamBatchResult> {
1303
+ return this.teamPipeline.runBatchLearning();
1304
+ }
1305
+ }
1306
+ ```
1307
+
1308
+ ---
1309
+
1310
+ ## Storage Layout
1311
+
1312
+ ```
1313
+ .atlas/
1314
+ ├── experiences/ # Individual agent experiences (existing)
1315
+ ├── playbooks/ # Individual task playbooks (existing)
1316
+ ├── meta-observations/ # Individual meta-observations (existing)
1317
+ ├── meta-strategies/ # Individual meta-strategies (existing)
1318
+
1319
+ ├── team-experiences/ # Team trajectory experiences + analysis
1320
+ ├── team-playbooks/ # Team coordination playbooks
1321
+ ├── role-playbooks/ # Role-specific playbooks (new type)
1322
+ ├── team-meta-observations/ # Team formation observations
1323
+ ├── team-meta-strategies/ # Team formation meta-strategies
1324
+
1325
+ └── vectors.db # Vector store (extended with team embeddings)
1326
+ ```
1327
+
1328
+ ---
1329
+
1330
+ ## The Recursive Learning Architecture
1331
+
1332
+ The full system has three learning loops, all using the same infrastructure:
1333
+
1334
+ ```
1335
+ LOOP 1: Individual Learning (existing)
1336
+ Agent solves task → trajectory → playbooks about task-solving
1337
+
1338
+ LOOP 2: Team Learning (new)
1339
+ Team executes task → team trajectory → team/role playbooks about coordination
1340
+ Analysis agent analyzes → its trajectory → playbooks about analysis (LOOP 1)
1341
+
1342
+ LOOP 3: Meta-Learning (extended)
1343
+ Individual meta-observations → routing meta-strategies (existing)
1344
+ Team meta-observations → formation meta-strategies (new)
1345
+ Analysis meta-observations → analysis improvement (via LOOP 1)
1346
+ ```
1347
+
1348
+ All three loops use the same `AgentManager`, `MemorySystem`, `LearningPipeline`, and `SkillLibrary` infrastructure. The team layer is purely additive — no existing components are modified.
1349
+
1350
+ ---
1351
+
1352
+ ## Toward a Reusable Agentic Workspace
1353
+
1354
+ The workspace pattern used here — filesystem directory with input/workspace/output structure, agent spawned with tools and injected knowledge, trajectory captured for meta-learning — is not specific to team analysis. It is a general pattern for any cognitive-core analysis task:
1355
+
1356
+ - **Playbook extraction**: Input = trajectory batch. Output = new playbooks.
1357
+ - **Meta-learning analysis**: Input = observation batch. Output = meta-strategies.
1358
+ - **Trajectory evaluation**: Input = trajectory. Output = quality assessment.
1359
+ - **Experience curation**: Input = experience store. Output = pruning recommendations.
1360
+
1361
+ A reusable `AnalysisWorkspaceManager` could standardize this pattern across all cognitive-core analysis tasks, providing:
1362
+
1363
+ 1. **Workspace lifecycle**: Create, populate, cleanup temporary directories
1364
+ 2. **Schema validation**: Validate agent output against expected schemas
1365
+ 3. **Knowledge injection**: Query appropriate playbooks for the analysis domain
1366
+ 4. **Trajectory capture**: Automatically route analysis agent trajectories through the learning pipeline
1367
+ 5. **Error handling**: Retry or fallback if the analysis agent fails to produce valid output
1368
+
1369
+ This is discussed further in the agentic workspace design (separate document).