cognitive-core 0.1.2 → 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 (483) hide show
  1. package/CLAUDE.md +233 -0
  2. package/README.md +370 -54
  3. package/dist/atlas.d.ts +10 -10
  4. package/dist/atlas.d.ts.map +1 -1
  5. package/dist/atlas.js +79 -48
  6. package/dist/atlas.js.map +1 -1
  7. package/dist/bin/cli-utils.d.ts +37 -0
  8. package/dist/bin/cli-utils.d.ts.map +1 -0
  9. package/dist/bin/cli-utils.js +176 -0
  10. package/dist/bin/cli-utils.js.map +1 -0
  11. package/dist/bin/cognitive-core.d.ts +2 -12
  12. package/dist/bin/cognitive-core.d.ts.map +1 -1
  13. package/dist/bin/cognitive-core.js +76 -351
  14. package/dist/bin/cognitive-core.js.map +1 -1
  15. package/dist/bin/commands/kb.d.ts +6 -0
  16. package/dist/bin/commands/kb.d.ts.map +1 -0
  17. package/dist/bin/commands/kb.js +240 -0
  18. package/dist/bin/commands/kb.js.map +1 -0
  19. package/dist/bin/commands/learn.d.ts +6 -0
  20. package/dist/bin/commands/learn.d.ts.map +1 -0
  21. package/dist/bin/commands/learn.js +91 -0
  22. package/dist/bin/commands/learn.js.map +1 -0
  23. package/dist/bin/commands/legacy.d.ts +12 -0
  24. package/dist/bin/commands/legacy.d.ts.map +1 -0
  25. package/dist/bin/commands/legacy.js +142 -0
  26. package/dist/bin/commands/legacy.js.map +1 -0
  27. package/dist/bin/commands/run.d.ts +3 -0
  28. package/dist/bin/commands/run.d.ts.map +1 -0
  29. package/dist/bin/commands/run.js +99 -0
  30. package/dist/bin/commands/run.js.map +1 -0
  31. package/dist/bin/commands/sessions.d.ts +9 -0
  32. package/dist/bin/commands/sessions.d.ts.map +1 -0
  33. package/dist/bin/commands/sessions.js +183 -0
  34. package/dist/bin/commands/sessions.js.map +1 -0
  35. package/dist/bin/commands/skills.d.ts +6 -0
  36. package/dist/bin/commands/skills.d.ts.map +1 -0
  37. package/dist/bin/commands/skills.js +135 -0
  38. package/dist/bin/commands/skills.js.map +1 -0
  39. package/dist/embeddings/index.d.ts +1 -0
  40. package/dist/embeddings/index.d.ts.map +1 -1
  41. package/dist/embeddings/index.js +2 -0
  42. package/dist/embeddings/index.js.map +1 -1
  43. package/dist/embeddings/inverted-index.d.ts +47 -0
  44. package/dist/embeddings/inverted-index.d.ts.map +1 -0
  45. package/dist/embeddings/inverted-index.js +122 -0
  46. package/dist/embeddings/inverted-index.js.map +1 -0
  47. package/dist/embeddings/manager.d.ts +3 -1
  48. package/dist/embeddings/manager.d.ts.map +1 -1
  49. package/dist/embeddings/manager.js +12 -7
  50. package/dist/embeddings/manager.js.map +1 -1
  51. package/dist/embeddings/vector-store.d.ts +7 -3
  52. package/dist/embeddings/vector-store.d.ts.map +1 -1
  53. package/dist/embeddings/vector-store.js +22 -6
  54. package/dist/embeddings/vector-store.js.map +1 -1
  55. package/dist/factory.d.ts +11 -12
  56. package/dist/factory.d.ts.map +1 -1
  57. package/dist/factory.js +20 -7
  58. package/dist/factory.js.map +1 -1
  59. package/dist/index.d.ts +7 -6
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +37 -5
  62. package/dist/index.js.map +1 -1
  63. package/dist/learning/analyzer.d.ts.map +1 -1
  64. package/dist/learning/analyzer.js +17 -35
  65. package/dist/learning/analyzer.js.map +1 -1
  66. package/dist/learning/energy-evaluator.d.ts +128 -0
  67. package/dist/learning/energy-evaluator.d.ts.map +1 -0
  68. package/dist/learning/energy-evaluator.js +175 -0
  69. package/dist/learning/energy-evaluator.js.map +1 -0
  70. package/dist/learning/healing-orchestrator.d.ts +182 -0
  71. package/dist/learning/healing-orchestrator.d.ts.map +1 -0
  72. package/dist/learning/healing-orchestrator.js +250 -0
  73. package/dist/learning/healing-orchestrator.js.map +1 -0
  74. package/dist/learning/index.d.ts +7 -2
  75. package/dist/learning/index.d.ts.map +1 -1
  76. package/dist/learning/index.js +13 -2
  77. package/dist/learning/index.js.map +1 -1
  78. package/dist/learning/instant-loop.d.ts +87 -0
  79. package/dist/learning/instant-loop.d.ts.map +1 -0
  80. package/dist/learning/instant-loop.js +264 -0
  81. package/dist/learning/instant-loop.js.map +1 -0
  82. package/dist/learning/loop-coordinator.d.ts +61 -0
  83. package/dist/learning/loop-coordinator.d.ts.map +1 -0
  84. package/dist/learning/loop-coordinator.js +96 -0
  85. package/dist/learning/loop-coordinator.js.map +1 -0
  86. package/dist/learning/maintenance-scheduler.d.ts +141 -0
  87. package/dist/learning/maintenance-scheduler.d.ts.map +1 -0
  88. package/dist/learning/maintenance-scheduler.js +186 -0
  89. package/dist/learning/maintenance-scheduler.js.map +1 -0
  90. package/dist/learning/meta-learner.d.ts.map +1 -1
  91. package/dist/learning/meta-learner.js +4 -21
  92. package/dist/learning/meta-learner.js.map +1 -1
  93. package/dist/learning/pipeline.d.ts +31 -4
  94. package/dist/learning/pipeline.d.ts.map +1 -1
  95. package/dist/learning/pipeline.js +64 -12
  96. package/dist/learning/pipeline.js.map +1 -1
  97. package/dist/learning/reflexion-generator.d.ts +64 -0
  98. package/dist/learning/reflexion-generator.d.ts.map +1 -0
  99. package/dist/learning/reflexion-generator.js +194 -0
  100. package/dist/learning/reflexion-generator.js.map +1 -0
  101. package/dist/learning/trajectory-sources/entire.d.ts +8 -5
  102. package/dist/learning/trajectory-sources/entire.d.ts.map +1 -1
  103. package/dist/learning/trajectory-sources/entire.js +13 -6
  104. package/dist/learning/trajectory-sources/entire.js.map +1 -1
  105. package/dist/learning/trajectory-sources/index.d.ts +1 -1
  106. package/dist/learning/trajectory-sources/index.d.ts.map +1 -1
  107. package/dist/learning/trajectory-sources/index.js +1 -1
  108. package/dist/learning/trajectory-sources/index.js.map +1 -1
  109. package/dist/learning/trajectory-sources/pipeline.d.ts +4 -4
  110. package/dist/learning/trajectory-sources/pipeline.d.ts.map +1 -1
  111. package/dist/learning/trajectory-sources/pipeline.js +2 -2
  112. package/dist/learning/trajectory-sources/pipeline.js.map +1 -1
  113. package/dist/learning/unified-pipeline.d.ts +281 -0
  114. package/dist/learning/unified-pipeline.d.ts.map +1 -0
  115. package/dist/learning/unified-pipeline.js +637 -0
  116. package/dist/learning/unified-pipeline.js.map +1 -0
  117. package/dist/memory/candidate-retrieval.d.ts +43 -0
  118. package/dist/memory/candidate-retrieval.d.ts.map +1 -0
  119. package/dist/memory/candidate-retrieval.js +41 -0
  120. package/dist/memory/candidate-retrieval.js.map +1 -0
  121. package/dist/memory/causal-store.d.ts +97 -0
  122. package/dist/memory/causal-store.d.ts.map +1 -0
  123. package/dist/memory/causal-store.js +209 -0
  124. package/dist/memory/causal-store.js.map +1 -0
  125. package/dist/memory/coherence.d.ts +71 -0
  126. package/dist/memory/coherence.d.ts.map +1 -0
  127. package/dist/memory/coherence.js +176 -0
  128. package/dist/memory/coherence.js.map +1 -0
  129. package/dist/memory/experience.d.ts +39 -6
  130. package/dist/memory/experience.d.ts.map +1 -1
  131. package/dist/memory/experience.js +193 -49
  132. package/dist/memory/experience.js.map +1 -1
  133. package/dist/memory/index.d.ts +7 -0
  134. package/dist/memory/index.d.ts.map +1 -1
  135. package/dist/memory/index.js +12 -0
  136. package/dist/memory/index.js.map +1 -1
  137. package/dist/memory/knowledge-bank.d.ts +14 -0
  138. package/dist/memory/knowledge-bank.d.ts.map +1 -1
  139. package/dist/memory/knowledge-bank.js +45 -0
  140. package/dist/memory/knowledge-bank.js.map +1 -1
  141. package/dist/memory/meta.d.ts +7 -8
  142. package/dist/memory/meta.d.ts.map +1 -1
  143. package/dist/memory/meta.js +73 -79
  144. package/dist/memory/meta.js.map +1 -1
  145. package/dist/memory/playbook.d.ts +26 -9
  146. package/dist/memory/playbook.d.ts.map +1 -1
  147. package/dist/memory/playbook.js +198 -74
  148. package/dist/memory/playbook.js.map +1 -1
  149. package/dist/memory/reasoning-bank.d.ts +130 -0
  150. package/dist/memory/reasoning-bank.d.ts.map +1 -0
  151. package/dist/memory/reasoning-bank.js +342 -0
  152. package/dist/memory/reasoning-bank.js.map +1 -0
  153. package/dist/memory/reflexion.d.ts +59 -0
  154. package/dist/memory/reflexion.d.ts.map +1 -0
  155. package/dist/memory/reflexion.js +96 -0
  156. package/dist/memory/reflexion.js.map +1 -0
  157. package/dist/memory/system.d.ts +7 -2
  158. package/dist/memory/system.d.ts.map +1 -1
  159. package/dist/memory/system.js +19 -7
  160. package/dist/memory/system.js.map +1 -1
  161. package/dist/memory/temporal-compressor.d.ts +126 -0
  162. package/dist/memory/temporal-compressor.d.ts.map +1 -0
  163. package/dist/memory/temporal-compressor.js +335 -0
  164. package/dist/memory/temporal-compressor.js.map +1 -0
  165. package/dist/persistence/index.d.ts +11 -0
  166. package/dist/persistence/index.d.ts.map +1 -0
  167. package/dist/persistence/index.js +11 -0
  168. package/dist/persistence/index.js.map +1 -0
  169. package/dist/persistence/migrator.d.ts +40 -0
  170. package/dist/persistence/migrator.d.ts.map +1 -0
  171. package/dist/persistence/migrator.js +238 -0
  172. package/dist/persistence/migrator.js.map +1 -0
  173. package/dist/persistence/serializers.d.ts +45 -0
  174. package/dist/persistence/serializers.d.ts.map +1 -0
  175. package/dist/persistence/serializers.js +80 -0
  176. package/dist/persistence/serializers.js.map +1 -0
  177. package/dist/persistence/sqlite-persistence.d.ts +228 -0
  178. package/dist/persistence/sqlite-persistence.d.ts.map +1 -0
  179. package/dist/persistence/sqlite-persistence.js +588 -0
  180. package/dist/persistence/sqlite-persistence.js.map +1 -0
  181. package/dist/runtime/flows/learning.d.ts +10 -12
  182. package/dist/runtime/flows/learning.d.ts.map +1 -1
  183. package/dist/runtime/flows/learning.js +10 -23
  184. package/dist/runtime/flows/learning.js.map +1 -1
  185. package/dist/search/index.d.ts +1 -0
  186. package/dist/search/index.d.ts.map +1 -1
  187. package/dist/search/index.js +2 -0
  188. package/dist/search/index.js.map +1 -1
  189. package/dist/search/moe-gate.d.ts +124 -0
  190. package/dist/search/moe-gate.d.ts.map +1 -0
  191. package/dist/search/moe-gate.js +234 -0
  192. package/dist/search/moe-gate.js.map +1 -0
  193. package/dist/search/router.d.ts +32 -2
  194. package/dist/search/router.d.ts.map +1 -1
  195. package/dist/search/router.js +87 -4
  196. package/dist/search/router.js.map +1 -1
  197. package/dist/session-bank/git-reader.d.ts +9 -4
  198. package/dist/session-bank/git-reader.d.ts.map +1 -1
  199. package/dist/session-bank/git-reader.js +22 -15
  200. package/dist/session-bank/git-reader.js.map +1 -1
  201. package/dist/session-bank/index.d.ts +2 -2
  202. package/dist/session-bank/index.d.ts.map +1 -1
  203. package/dist/session-bank/index.js +2 -2
  204. package/dist/session-bank/index.js.map +1 -1
  205. package/dist/session-bank/parser.d.ts +16 -5
  206. package/dist/session-bank/parser.d.ts.map +1 -1
  207. package/dist/session-bank/parser.js +187 -80
  208. package/dist/session-bank/parser.js.map +1 -1
  209. package/dist/session-bank/session-bank.d.ts +5 -0
  210. package/dist/session-bank/session-bank.d.ts.map +1 -1
  211. package/dist/session-bank/session-bank.js +30 -9
  212. package/dist/session-bank/session-bank.js.map +1 -1
  213. package/dist/session-bank/types.d.ts +4 -1
  214. package/dist/session-bank/types.d.ts.map +1 -1
  215. package/dist/session-bank/types.js +3 -3
  216. package/dist/session-bank/types.js.map +1 -1
  217. package/dist/surfacing/skill-publisher.d.ts.map +1 -1
  218. package/dist/surfacing/skill-publisher.js +15 -43
  219. package/dist/surfacing/skill-publisher.js.map +1 -1
  220. package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -1
  221. package/dist/surfacing/sqlite-storage-adapter.js +13 -21
  222. package/dist/surfacing/sqlite-storage-adapter.js.map +1 -1
  223. package/dist/types/config.d.ts +100 -0
  224. package/dist/types/config.d.ts.map +1 -1
  225. package/dist/types/config.js +27 -0
  226. package/dist/types/config.js.map +1 -1
  227. package/dist/types/index.d.ts +2 -2
  228. package/dist/types/index.d.ts.map +1 -1
  229. package/dist/types/index.js +1 -1
  230. package/dist/types/index.js.map +1 -1
  231. package/dist/types/memory.d.ts +52 -0
  232. package/dist/types/memory.d.ts.map +1 -1
  233. package/dist/types/memory.js +13 -0
  234. package/dist/types/memory.js.map +1 -1
  235. package/dist/types/playbook.d.ts +4 -0
  236. package/dist/types/playbook.d.ts.map +1 -1
  237. package/dist/types/playbook.js.map +1 -1
  238. package/dist/utils/error-classifier.d.ts +30 -0
  239. package/dist/utils/error-classifier.d.ts.map +1 -0
  240. package/dist/utils/error-classifier.js +85 -0
  241. package/dist/utils/error-classifier.js.map +1 -0
  242. package/dist/utils/index.d.ts +3 -0
  243. package/dist/utils/index.d.ts.map +1 -1
  244. package/dist/utils/index.js +3 -0
  245. package/dist/utils/index.js.map +1 -1
  246. package/dist/utils/partitioned-store.d.ts +93 -0
  247. package/dist/utils/partitioned-store.d.ts.map +1 -0
  248. package/dist/utils/partitioned-store.js +251 -0
  249. package/dist/utils/partitioned-store.js.map +1 -0
  250. package/dist/utils/trajectory-helpers.d.ts +39 -0
  251. package/dist/utils/trajectory-helpers.d.ts.map +1 -0
  252. package/dist/utils/trajectory-helpers.js +57 -0
  253. package/dist/utils/trajectory-helpers.js.map +1 -0
  254. package/dist/workspace/runner.d.ts +3 -4
  255. package/dist/workspace/runner.d.ts.map +1 -1
  256. package/dist/workspace/runner.js.map +1 -1
  257. package/dist/workspace/types.d.ts +9 -2
  258. package/dist/workspace/types.d.ts.map +1 -1
  259. package/dist/workspace/types.js.map +1 -1
  260. package/package.json +6 -4
  261. package/references/sessionlog/.husky/pre-commit +1 -0
  262. package/references/sessionlog/.lintstagedrc.json +4 -0
  263. package/references/sessionlog/.prettierignore +4 -0
  264. package/references/sessionlog/.prettierrc.json +11 -0
  265. package/references/sessionlog/LICENSE +21 -0
  266. package/references/sessionlog/README.md +453 -0
  267. package/references/sessionlog/eslint.config.js +58 -0
  268. package/references/sessionlog/package-lock.json +3672 -0
  269. package/references/sessionlog/package.json +65 -0
  270. package/references/sessionlog/src/__tests__/agent-hooks.test.ts +570 -0
  271. package/references/sessionlog/src/__tests__/agent-registry.test.ts +127 -0
  272. package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +225 -0
  273. package/references/sessionlog/src/__tests__/claude-generator.test.ts +46 -0
  274. package/references/sessionlog/src/__tests__/commit-msg.test.ts +86 -0
  275. package/references/sessionlog/src/__tests__/cursor-agent.test.ts +224 -0
  276. package/references/sessionlog/src/__tests__/e2e-live.test.ts +890 -0
  277. package/references/sessionlog/src/__tests__/event-log.test.ts +183 -0
  278. package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +105 -0
  279. package/references/sessionlog/src/__tests__/gemini-agent.test.ts +375 -0
  280. package/references/sessionlog/src/__tests__/git-hooks.test.ts +78 -0
  281. package/references/sessionlog/src/__tests__/hook-managers.test.ts +121 -0
  282. package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +759 -0
  283. package/references/sessionlog/src/__tests__/opencode-agent.test.ts +338 -0
  284. package/references/sessionlog/src/__tests__/redaction.test.ts +136 -0
  285. package/references/sessionlog/src/__tests__/session-repo.test.ts +353 -0
  286. package/references/sessionlog/src/__tests__/session-store.test.ts +166 -0
  287. package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +466 -0
  288. package/references/sessionlog/src/__tests__/skill-live.test.ts +461 -0
  289. package/references/sessionlog/src/__tests__/summarize.test.ts +348 -0
  290. package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +610 -0
  291. package/references/sessionlog/src/__tests__/task-plan-live.test.ts +632 -0
  292. package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +121 -0
  293. package/references/sessionlog/src/__tests__/types.test.ts +166 -0
  294. package/references/sessionlog/src/__tests__/utils.test.ts +333 -0
  295. package/references/sessionlog/src/__tests__/validation.test.ts +103 -0
  296. package/references/sessionlog/src/__tests__/worktree.test.ts +57 -0
  297. package/references/sessionlog/src/agent/agents/claude-code.ts +1089 -0
  298. package/references/sessionlog/src/agent/agents/cursor.ts +361 -0
  299. package/references/sessionlog/src/agent/agents/gemini-cli.ts +632 -0
  300. package/references/sessionlog/src/agent/agents/opencode.ts +540 -0
  301. package/references/sessionlog/src/agent/registry.ts +143 -0
  302. package/references/sessionlog/src/agent/session-types.ts +113 -0
  303. package/references/sessionlog/src/agent/types.ts +220 -0
  304. package/references/sessionlog/src/cli.ts +597 -0
  305. package/references/sessionlog/src/commands/clean.ts +133 -0
  306. package/references/sessionlog/src/commands/disable.ts +84 -0
  307. package/references/sessionlog/src/commands/doctor.ts +145 -0
  308. package/references/sessionlog/src/commands/enable.ts +202 -0
  309. package/references/sessionlog/src/commands/explain.ts +261 -0
  310. package/references/sessionlog/src/commands/reset.ts +105 -0
  311. package/references/sessionlog/src/commands/resume.ts +180 -0
  312. package/references/sessionlog/src/commands/rewind.ts +195 -0
  313. package/references/sessionlog/src/commands/setup-ccweb.ts +275 -0
  314. package/references/sessionlog/src/commands/status.ts +172 -0
  315. package/references/sessionlog/src/config.ts +165 -0
  316. package/references/sessionlog/src/events/event-log.ts +126 -0
  317. package/references/sessionlog/src/git-operations.ts +558 -0
  318. package/references/sessionlog/src/hooks/git-hooks.ts +165 -0
  319. package/references/sessionlog/src/hooks/lifecycle.ts +391 -0
  320. package/references/sessionlog/src/index.ts +650 -0
  321. package/references/sessionlog/src/security/redaction.ts +283 -0
  322. package/references/sessionlog/src/session/state-machine.ts +452 -0
  323. package/references/sessionlog/src/store/checkpoint-store.ts +509 -0
  324. package/references/sessionlog/src/store/native-store.ts +173 -0
  325. package/references/sessionlog/src/store/provider-types.ts +99 -0
  326. package/references/sessionlog/src/store/session-store.ts +266 -0
  327. package/references/sessionlog/src/strategy/attribution.ts +296 -0
  328. package/references/sessionlog/src/strategy/common.ts +207 -0
  329. package/references/sessionlog/src/strategy/content-overlap.ts +228 -0
  330. package/references/sessionlog/src/strategy/manual-commit.ts +988 -0
  331. package/references/sessionlog/src/strategy/types.ts +279 -0
  332. package/references/sessionlog/src/summarize/claude-generator.ts +115 -0
  333. package/references/sessionlog/src/summarize/summarize.ts +432 -0
  334. package/references/sessionlog/src/types.ts +508 -0
  335. package/references/sessionlog/src/utils/chunk-files.ts +49 -0
  336. package/references/sessionlog/src/utils/commit-message.ts +65 -0
  337. package/references/sessionlog/src/utils/detect-agent.ts +36 -0
  338. package/references/sessionlog/src/utils/hook-managers.ts +125 -0
  339. package/references/sessionlog/src/utils/ide-tags.ts +32 -0
  340. package/references/sessionlog/src/utils/paths.ts +79 -0
  341. package/references/sessionlog/src/utils/preview-rewind.ts +80 -0
  342. package/references/sessionlog/src/utils/rewind-conflict.ts +121 -0
  343. package/references/sessionlog/src/utils/shadow-branch.ts +109 -0
  344. package/references/sessionlog/src/utils/string-utils.ts +46 -0
  345. package/references/sessionlog/src/utils/todo-extract.ts +188 -0
  346. package/references/sessionlog/src/utils/trailers.ts +187 -0
  347. package/references/sessionlog/src/utils/transcript-parse.ts +177 -0
  348. package/references/sessionlog/src/utils/transcript-timestamp.ts +59 -0
  349. package/references/sessionlog/src/utils/tree-ops.ts +219 -0
  350. package/references/sessionlog/src/utils/tty.ts +72 -0
  351. package/references/sessionlog/src/utils/validation.ts +65 -0
  352. package/references/sessionlog/src/utils/worktree.ts +58 -0
  353. package/references/sessionlog/src/wire-types.ts +59 -0
  354. package/references/sessionlog/templates/setup-env.sh +153 -0
  355. package/references/sessionlog/tsconfig.json +18 -0
  356. package/references/sessionlog/vitest.config.ts +12 -0
  357. package/references/skill-tree/.sudocode/issues.jsonl +8 -0
  358. package/references/skill-tree/.sudocode/specs.jsonl +2 -0
  359. package/references/skill-tree/CLAUDE.md +56 -80
  360. package/references/skill-tree/README.md +188 -140
  361. package/references/skill-tree/examples/basic-usage.ts +95 -121
  362. package/references/skill-tree/package-lock.json +369 -26
  363. package/references/skill-tree/package.json +1 -1
  364. package/src/atlas.ts +97 -67
  365. package/src/bin/cli-utils.ts +220 -0
  366. package/src/bin/cognitive-core.ts +84 -392
  367. package/src/bin/commands/kb.ts +266 -0
  368. package/src/bin/commands/learn.ts +100 -0
  369. package/src/bin/commands/legacy.ts +182 -0
  370. package/src/bin/commands/run.ts +113 -0
  371. package/src/bin/commands/sessions.ts +221 -0
  372. package/src/bin/commands/skills.ts +146 -0
  373. package/src/embeddings/index.ts +3 -0
  374. package/src/embeddings/inverted-index.ts +134 -0
  375. package/src/embeddings/manager.ts +13 -8
  376. package/src/embeddings/vector-store.ts +21 -9
  377. package/src/factory.ts +33 -16
  378. package/src/index.ts +109 -9
  379. package/src/learning/analyzer.ts +21 -37
  380. package/src/learning/energy-evaluator.ts +282 -0
  381. package/src/learning/healing-orchestrator.ts +383 -0
  382. package/src/learning/index.ts +65 -9
  383. package/src/learning/instant-loop.ts +357 -0
  384. package/src/learning/maintenance-scheduler.ts +271 -0
  385. package/src/learning/meta-learner.ts +5 -23
  386. package/src/learning/reflexion-generator.ts +273 -0
  387. package/src/learning/trajectory-sources/entire.ts +24 -13
  388. package/src/learning/trajectory-sources/index.ts +2 -2
  389. package/src/learning/trajectory-sources/pipeline.ts +5 -5
  390. package/src/learning/unified-pipeline.ts +921 -0
  391. package/src/memory/candidate-retrieval.ts +71 -0
  392. package/src/memory/causal-store.ts +273 -0
  393. package/src/memory/coherence.ts +252 -0
  394. package/src/memory/experience.ts +217 -50
  395. package/src/memory/index.ts +43 -0
  396. package/src/memory/knowledge-bank.ts +57 -0
  397. package/src/memory/meta.ts +78 -96
  398. package/src/memory/playbook.ts +239 -75
  399. package/src/memory/reasoning-bank.ts +458 -0
  400. package/src/memory/reflexion.ts +122 -0
  401. package/src/memory/system.ts +21 -5
  402. package/src/memory/temporal-compressor.ts +409 -0
  403. package/src/persistence/index.ts +37 -0
  404. package/src/persistence/migrator.ts +298 -0
  405. package/src/persistence/serializers.ts +79 -0
  406. package/src/persistence/sqlite-persistence.ts +925 -0
  407. package/src/runtime/flows/learning.ts +25 -42
  408. package/src/search/index.ts +10 -0
  409. package/src/search/moe-gate.ts +304 -0
  410. package/src/search/router.ts +111 -4
  411. package/src/session-bank/git-reader.ts +29 -19
  412. package/src/session-bank/index.ts +4 -2
  413. package/src/session-bank/parser.ts +280 -98
  414. package/src/session-bank/session-bank.ts +33 -12
  415. package/src/session-bank/types.ts +8 -5
  416. package/src/surfacing/skill-publisher.ts +17 -49
  417. package/src/surfacing/sqlite-storage-adapter.ts +16 -32
  418. package/src/types/config.ts +30 -0
  419. package/src/types/index.ts +3 -0
  420. package/src/types/memory.ts +30 -0
  421. package/src/types/playbook.ts +4 -0
  422. package/src/utils/error-classifier.ts +113 -0
  423. package/src/utils/index.ts +18 -0
  424. package/src/utils/partitioned-store.ts +299 -0
  425. package/src/utils/trajectory-helpers.ts +79 -0
  426. package/src/workspace/runner.ts +3 -3
  427. package/src/workspace/types.ts +10 -2
  428. package/tests/embeddings/inverted-index.test.ts +138 -0
  429. package/tests/feature-toggles.test.ts +275 -0
  430. package/tests/gap-fixes.test.ts +17 -4
  431. package/tests/integration/cli-e2e.test.ts +621 -0
  432. package/tests/integration/e2e.test.ts +6 -5
  433. package/tests/integration/entire-e2e.test.ts +314 -125
  434. package/tests/integration/persistence-e2e.test.ts +741 -0
  435. package/tests/integration/phase-e2e.test.ts +1143 -0
  436. package/tests/integration/session-bank.test.ts +20 -14
  437. package/tests/integration/sessionlog-e2e.test.ts +329 -0
  438. package/tests/integration/unified-pipeline-e2e.test.ts +634 -0
  439. package/tests/learning/analyzer.test.ts +1 -1
  440. package/tests/learning/energy-evaluator.test.ts +180 -0
  441. package/tests/learning/entire-trajectory-source.test.ts +25 -25
  442. package/tests/learning/healing-orchestrator.test.ts +269 -0
  443. package/tests/learning/instant-loop.test.ts +243 -0
  444. package/tests/learning/maintenance-scheduler.test.ts +191 -0
  445. package/tests/learning/reflexion-generator.test.ts +411 -0
  446. package/tests/learning/trajectory-sources.test.ts +12 -4
  447. package/tests/learning/unified-pipeline.test.ts +322 -0
  448. package/tests/mcp/playbook-server.test.ts +6 -1
  449. package/tests/memory/causal-store.test.ts +276 -0
  450. package/tests/memory/coherence.test.ts +232 -0
  451. package/tests/memory/experience.test.ts +8 -3
  452. package/tests/memory/playbook.test.ts +307 -1
  453. package/tests/memory/provenance.test.ts +11 -2
  454. package/tests/memory/reasoning-bank.test.ts +239 -0
  455. package/tests/memory/reflexion.test.ts +166 -0
  456. package/tests/memory/skill-exporter.test.ts +6 -1
  457. package/tests/memory/system.test.ts +6 -1
  458. package/tests/memory/temporal-compressor.test.ts +318 -0
  459. package/tests/persistence/migrator.test.ts +1009 -0
  460. package/tests/persistence/sqlite-persistence.test.ts +635 -0
  461. package/tests/runtime/agent-manager.test.ts +6 -1
  462. package/tests/runtime/delegate.test.ts +6 -1
  463. package/tests/search/moe-gate.test.ts +250 -0
  464. package/tests/search/refinement-loop.test.ts +11 -2
  465. package/tests/search/router.test.ts +81 -2
  466. package/tests/session-bank/fixtures/sessionlog-root-metadata.json +16 -0
  467. package/tests/session-bank/fixtures/sessionlog-session/full.jsonl +6 -0
  468. package/tests/session-bank/fixtures/sessionlog-session/metadata.json +55 -0
  469. package/tests/session-bank/git-reader.test.ts +13 -13
  470. package/tests/session-bank/parser.test.ts +135 -3
  471. package/tests/session-bank/session-bank.test.ts +1 -1
  472. package/tests/surfacing/skill-library.test.ts +6 -1
  473. package/tests/surfacing/skill-publisher.test.ts +24 -58
  474. package/tests/surfacing/sqlite-storage-adapter.test.ts +11 -23
  475. package/tests/utils/partitioned-store.test.ts +230 -0
  476. package/tests/workspace/full-flow.test.ts +10 -4
  477. package/tests/workspace/runner.test.ts +10 -4
  478. package/docs/DESIGN-workspace-migration.md +0 -1079
  479. package/docs/PLAN-agentic-workspace-implementation.md +0 -717
  480. package/docs/PLAN-graph-migration.md +0 -299
  481. package/docs/PLAN-session-bank-implementation.md +0 -474
  482. package/src/learning/pipeline.ts +0 -323
  483. package/tests/learning/pipeline.test.ts +0 -176
package/README.md CHANGED
@@ -9,9 +9,13 @@ A TypeScript learning system for AI agents. Records how agents solve problems, e
9
9
  - [Quick Start](#quick-start)
10
10
  - [How It Works](#how-it-works)
11
11
  - [Knowledge Bank](#knowledge-bank)
12
+ - [Learning Pipeline](#learning-pipeline)
13
+ - [Three-Speed Pipeline Detail](#three-speed-learning-pipeline)
12
14
  - [CLI](#cli)
13
15
  - [Agent Backends](#agent-backends)
14
16
  - [Skill Library](#skill-library)
17
+ - [Session Bank](#session-bank)
18
+ - [Workspace Templates](#workspace-templates)
15
19
  - [Configuration](#configuration)
16
20
  - [Core Types](#core-types)
17
21
  - [Research References](#research-references)
@@ -27,8 +31,11 @@ cognitive-core gives agents persistent, structured memory:
27
31
  1. **Trajectories** record what the agent did (ReAct-style thought/action/observation steps)
28
32
  2. **Playbooks** distill trajectories into reusable guidance (strategy, tactics, verification criteria)
29
33
  3. **Knowledge Bank** extracts and organizes factual knowledge — what agents learn about tools, libraries, and patterns
30
- 4. **Routing** matches incoming tasks to relevant playbooks before the agent starts working
34
+ 4. **Routing** matches incoming tasks to relevant playbooks before the agent starts working, using a learned MoE gating function
31
35
  5. **Meta-learning** tracks which playbooks helped and adjusts routing over time
36
+ 6. **Three-speed learning** — immediate per-trajectory updates (<200ms), energy-triggered batch extraction, and circadian-gated maintenance — all managed by a single `UnifiedLearningPipeline`
37
+ 7. **Temporal compression** — experiences flow through Hot/Warm/Cold/Evicted tiers based on access frequency, keeping memory bounded
38
+ 8. **Unified persistence** — all system state lives in a single SQLite database with WAL mode, including learned MoE routing weights, experience clusters, and playbook version history that survive restarts
32
39
 
33
40
  The result: agents that get measurably better at recurring problem types without fine-tuning or prompt engineering.
34
41
 
@@ -38,7 +45,7 @@ The result: agents that get measurably better at recurring problem types without
38
45
  npm install cognitive-core
39
46
  ```
40
47
 
41
- Requires Node.js 18+.
48
+ Requires Node.js 22+.
42
49
 
43
50
  ## Quick Start
44
51
 
@@ -98,7 +105,9 @@ const trajectory = createTrajectory({
98
105
  });
99
106
 
100
107
  const result = await atlas.processTrajectory(trajectory);
101
- console.log(result.abstractable); // true - system can extract a playbook from this
108
+ // result.instantLoop.experienceId stored experience
109
+ // result.batchTriggered — whether batch learning was auto-triggered
110
+ // result.maintenanceTriggered — whether maintenance cycle ran
102
111
 
103
112
  await atlas.close();
104
113
  ```
@@ -126,40 +135,148 @@ Every call to `atlas.solve(task)` runs through this pipeline:
126
135
 
127
136
  ```mermaid
128
137
  flowchart TD
129
- Task[Task arrives] --> Router[TaskRouter]
138
+ Task[Task arrives] --> Router[TaskRouter + MoEGate]
130
139
 
131
140
  Router -->|queries| Memory[MemorySystem]
132
141
  Memory --> Exp[ExperienceMemory]
133
142
  Memory --> PB[PlaybookLibrary]
134
143
  Memory --> KB[KnowledgeBank]
135
144
  Memory --> Meta[MetaMemory]
145
+ Memory --> RB[ReasoningBank]
146
+ Memory --> CS[CausalStore]
136
147
 
137
148
  Router --> Decision{RoutingDecision}
138
149
 
139
- Decision --> Agent[AgentManager]
140
- Agent -->|injects playbooks + knowledge| Backend[Backend]
150
+ Decision --> Skills[SkillLibrary + KnowledgeBank surfacing]
151
+ Skills -->|injects playbooks + knowledge| Agent[AgentManager]
152
+ Agent --> Backend[Backend]
141
153
  Backend -->|returns trajectory| Session[AgentSession]
142
154
 
143
155
  Session --> Check{Succeeded?}
144
- Check -->|Yes| Learn[LearningPipeline]
156
+ Check -->|Yes| PostExec[Post-execution]
145
157
  Check -->|No| Refine{Retry?}
146
158
  Refine -->|Yes, max 3x| Agent
147
- Refine -->|No| Learn
159
+ Refine -->|No| PostExec
160
+
161
+ PostExec --> Usage[PlaybookUsageInference]
162
+ PostExec --> MetaReflect[MetaLearner reflection]
163
+ PostExec --> Effective[EffectivenessTracker annotate]
164
+
165
+ PostExec --> Pipeline[UnifiedLearningPipeline]
166
+
167
+ Pipeline --> Immediate[Speed 1: Immediate]
168
+ Immediate --> Store[Store experience]
169
+ Immediate --> Bump[Bump playbook confidence]
170
+ Immediate --> QuickK[Extract knowledge notes]
171
+ Immediate --> Causal[Extract causal edges]
172
+ Immediate --> Reflexion[Generate reflexion episode]
173
+
174
+ Pipeline --> Energy{EnergyEvaluator}
175
+ Energy -->|threshold reached| Batch[Speed 2: Batch]
176
+ Energy -->|below threshold| Done[Done]
177
+ Batch --> Extract[PlaybookExtractor]
178
+ Batch --> DeepK[Batch knowledge extraction]
179
+ Batch --> Compress[TemporalCompressor]
180
+ Batch --> Cluster[ReasoningBank re-cluster]
181
+ Batch --> Prune[ExperienceMemory prune]
182
+
183
+ Batch --> MaintCheck{Maintenance due?}
184
+ MaintCheck -->|Yes| Maint[Speed 3: Maintenance]
185
+ MaintCheck -->|No| Done
186
+ Maint --> Heal[HealingOrchestrator]
187
+ Maint --> Defrag[Knowledge defrag]
188
+ Maint --> MetaStrat[Meta-strategy generation]
189
+ Maint --> Done
190
+
191
+ Done -.->|next task| Router
192
+ ```
148
193
 
149
- Learn --> Analyze[TrajectoryAnalyzer]
150
- Learn --> Extract[PlaybookExtractor]
151
- Learn --> KnowExtract[KnowledgeExtractor]
152
- Learn --> Usage[UsageInference]
153
- Learn --> MetaLearn[MetaLearner]
194
+ ### Post-execution subsystems
154
195
 
155
- Analyze --> Updated[Memory updated]
156
- Extract --> Updated
157
- KnowExtract --> Updated
158
- Usage --> Updated
159
- MetaLearn --> Updated
196
+ After every `solve()` call, three subsystems run synchronously on the trajectory before it enters the learning pipeline. These require the `RoutingDecision` and injected playbook context, so they **only run via `solve()`** — not via `processTrajectory()`.
160
197
 
161
- Updated -.->|next task| Router
162
- ```
198
+ | Subsystem | What it does |
199
+ |-----------|--------------|
200
+ | **PlaybookUsageInference** | Infers which injected playbooks were actually used by the agent. Records outcomes to SkillLibrary for tier management. |
201
+ | **MetaLearner** | Generates a meta-reflection on routing/retrieval effectiveness. Stores observations and periodically generates meta-strategies. |
202
+ | **EffectivenessTracker** | Annotates the trajectory with which playbooks were surfaced vs. applied and which experiences were retrieved. |
203
+
204
+ All three use workspace templates (LLM-assisted) when an `AgenticTaskRunner` is set, with heuristic fallback otherwise.
205
+
206
+ ### Three-speed learning pipeline
207
+
208
+ All learning is managed by the `UnifiedLearningPipeline`, which consolidates InstantLoop, batch extraction, energy-based triggering, maintenance scheduling, and healing into a single orchestrator.
209
+
210
+ #### Speed 1: Immediate (<200ms, no LLM)
211
+
212
+ Fires on **every trajectory**. The InstantLoop performs lightweight, synchronous updates:
213
+
214
+ | Operation | Target |
215
+ |-----------|--------|
216
+ | Store experience | ExperienceMemory |
217
+ | Bump matched playbook confidence | PlaybookLibrary |
218
+ | Extract lightweight knowledge notes | KnowledgeBank |
219
+ | Extract causal edges | CausalStore |
220
+ | Generate reflexion episode | ReflexionMemory |
221
+
222
+ After the instant loop, the trajectory is analyzed (heuristic or workspace template) and accumulated for batch.
223
+
224
+ #### Speed 2: Batch (energy-triggered)
225
+
226
+ Triggered by the `EnergyEvaluator` — not just a count threshold. The evaluator computes an energy score from signals:
227
+
228
+ | Signal | Weight | Trigger condition |
229
+ |--------|--------|-------------------|
230
+ | Count threshold | — | `pendingCount >= countThreshold` (default: `minTrajectories`) |
231
+ | Contradiction detected | 0.4 | Coherence checker flagged a conflict |
232
+ | Novel domain | 0.3 | First trajectory in an unseen domain |
233
+ | High error rate | 0.2 | Recent failure rate exceeds 60% |
234
+ | Pattern shift | 0.1 | External signal (e.g., from caller) |
235
+
236
+ Batch triggers when `pendingCount >= countThreshold` **or** `energy >= energyThreshold (0.7)`, subject to a debounce interval (`minIntervalMs`, default: 30s).
237
+
238
+ When batch runs:
239
+
240
+ 1. **Playbook extraction** — extract new playbooks from trajectory clusters, refine existing ones
241
+ 2. **Batch knowledge extraction** — richer than instant-loop extraction, covers all accumulated trajectories
242
+ 3. **Temporal compression** — promote/demote/evict experiences across Hot/Warm/Cold/Evicted tiers
243
+ 4. **Re-clustering** — ReasoningBank rebuilds K-means++ clusters from current experiences
244
+ 5. **Pruning** — ExperienceMemory prunes beyond `maxExperiences`
245
+ 6. **Meta-learning** — MetaLearner generates routing strategies
246
+
247
+ After batch completes, accumulated trajectories are cleared and the energy evaluator resets.
248
+
249
+ #### Speed 3: Maintenance (circadian-gated)
250
+
251
+ Runs after batch when the `MaintenanceScheduler` signals readiness. Three scheduling modes:
252
+
253
+ | Mode | When maintenance runs |
254
+ |------|----------------------|
255
+ | `manual` | Only via explicit `runMaintenance({ force: true })` |
256
+ | `afterNBatches` | After every N batch cycles (e.g., `batchInterval: 2`) |
257
+ | `periodic` | After a time interval since last maintenance |
258
+
259
+ Built-in maintenance tasks:
260
+
261
+ | Task | What it does |
262
+ |------|--------------|
263
+ | **healing-cycle** | `HealingOrchestrator` runs anomaly detectors (PlaybookDriftDetector, MemoryBloatDetector) and applies repair strategies |
264
+ | **knowledge-defrag** | KnowledgeBank merges duplicate/overlapping notes |
265
+ | **meta-strategy-generation** | MetaLearner generates new routing strategies from accumulated observations |
266
+
267
+ Custom maintenance tasks and anomaly detectors can be registered via `registerMaintenanceTask()` and `addAnomalyDetector()`.
268
+
269
+ #### `solve()` vs `processTrajectory()`
270
+
271
+ | | `atlas.solve(task)` | `atlas.processTrajectory(trajectory)` |
272
+ |---|---|---|
273
+ | **Routing** | Yes — TaskRouter + MoEGate | No |
274
+ | **Agent execution** | Yes — AgentManager + refinement | No (trajectory provided externally) |
275
+ | **Post-execution** | Yes — UsageInference, MetaLearner, EffectivenessTracker | No (requires routing context) |
276
+ | **Three-speed pipeline** | Yes | Yes |
277
+ | **Returns** | `SolveResult` (trajectory, routing, playbook usage) | `ImmediateResult` (instant loop, energy eval, batch/maintenance results) |
278
+
279
+ Use `solve()` when Atlas owns execution. Use `processTrajectory()` to feed in external trajectories — the full three-speed pipeline still runs, but post-execution subsystems that require routing context are skipped.
163
280
 
164
281
  ### Playbook lifecycle
165
282
 
@@ -187,7 +304,7 @@ stateDiagram-v2
187
304
 
188
305
  ### Memory architecture
189
306
 
190
- The four memory stores serve different retrieval patterns:
307
+ Seven memory stores serve different retrieval patterns:
191
308
 
192
309
  ```mermaid
193
310
  graph LR
@@ -196,9 +313,13 @@ graph LR
196
313
  P[PlaybookLibrary]
197
314
  K[KnowledgeBank]
198
315
  M[MetaMemory]
316
+ RB[ReasoningBank]
317
+ CS[CausalStore]
318
+ RF[ReflexionMemory]
199
319
  end
200
320
 
201
321
  subgraph Search
322
+ II[InvertedIndex]
202
323
  BM[BM25 Index]
203
324
  VS[sqlite-vec]
204
325
  TS[Text Similarity]
@@ -211,35 +332,55 @@ graph LR
211
332
  MM[minimem optional]
212
333
  end
213
334
 
335
+ E --> II
214
336
  E --> BM
215
337
  E --> VS
338
+ P --> II
216
339
  P --> BM
217
340
  P --> VS
218
341
  K --> TS
219
342
  K -.-> MM
343
+ CS --> II
344
+ CS --> TS
345
+ RB --> TS
220
346
  VS -.-> OAI
221
347
  VS -.-> VOY
222
348
  VS -.-> HF
223
349
 
224
350
  subgraph Storage
225
- JSON[JSON files]
226
- SQL[SQLite]
351
+ SQL[SQLite — cognitive-core.db]
227
352
  MD[Markdown + YAML]
353
+ SKILL[SQLite — skills.db]
228
354
  end
229
355
 
230
- E --> JSON
231
- P --> JSON
232
- M --> JSON
233
- K --> MD
356
+ E --> SQL
357
+ P --> SQL
358
+ M --> SQL
359
+ CS --> SQL
360
+ RF --> SQL
361
+ RB -.->|system_state| SQL
234
362
  VS --> SQL
363
+ K --> MD
235
364
  ```
236
365
 
237
366
  | Store | Purpose | Format |
238
367
  |-------|---------|--------|
239
- | **ExperienceMemory** | Episodic — *what happened* | JSON |
240
- | **PlaybookLibrary** | Procedural — *how to do things* | JSON |
368
+ | **ExperienceMemory** | Episodic — *what happened* | SQLite |
369
+ | **PlaybookLibrary** | Procedural — *how to do things* | SQLite (with version history) |
241
370
  | **KnowledgeBank** | Semantic — *facts, concepts, relationships* | Markdown + YAML frontmatter |
242
- | **MetaMemory** | Meta-learning — *what worked* | JSON |
371
+ | **MetaMemory** | Meta-learning — *what worked* | SQLite |
372
+ | **ReasoningBank** | Clustered experience retrieval (K-means++) | SQLite (system_state) |
373
+ | **CausalStore** | Cause-effect relationships | SQLite |
374
+ | **ReflexionMemory** | Structured self-reflections | SQLite |
375
+
376
+ ### Candidate retrieval
377
+
378
+ All memory stores use a shared two-phase retrieval pattern:
379
+
380
+ 1. **InvertedIndex narrowing** — tokenize the query, find candidate IDs via posting lists (fast, O(query tokens))
381
+ 2. **Fallback to full scan** — if the index returns fewer candidates than needed, fall back to the full store or domain partition
382
+
383
+ This is implemented once in `memory/candidate-retrieval.ts` and shared by ExperienceMemory, PlaybookLibrary, and CausalStore.
243
384
 
244
385
  ### Search and matching
245
386
 
@@ -247,6 +388,32 @@ Memory search uses BM25 text matching by default. For higher-quality retrieval,
247
388
 
248
389
  Knowledge bank search uses text similarity by default, with optional delegation to [minimem](https://github.com/alexngai/minimem) for hybrid vector + BM25 search when available.
249
390
 
391
+ ### MoE routing gate
392
+
393
+ The TaskRouter uses a **Mixture-of-Experts inspired gating function** to select routing strategies. Instead of fixed threshold rules, a learned linear gate computes `softmax(W · features)` over the four strategies (direct, adapt, explore, fallback). Weights are updated online from outcome feedback, with per-domain specialization. Cold start falls back to uniform weights (equivalent to the original threshold logic).
394
+
395
+ ### Temporal compression
396
+
397
+ Experiences flow through four tiers based on their access frequency:
398
+
399
+ | Tier | Fidelity | Threshold |
400
+ |------|----------|-----------|
401
+ | **Hot** | Full data preserved | accessScore > 0.5 |
402
+ | **Warm** | Key steps only (solutionOutput stripped) | accessScore > 0.2 |
403
+ | **Cold** | Single-paragraph summary | accessScore > 0.05 |
404
+ | **Evicted** | Removed (pattern captured in ReasoningBank) | accessScore < 0.05 |
405
+
406
+ Hysteresis prevents oscillation: an experience must stay below a threshold for 2 consecutive compression passes before demotion.
407
+
408
+ ### Coherence checking
409
+
410
+ Before inserting new knowledge notes, the `CoherenceChecker` detects contradictions using a simplified sheaf-inspired approach:
411
+
412
+ 1. Filter existing notes to the same entity/domain
413
+ 2. Compute text similarity between new and candidate notes
414
+ 3. Detect sentiment conflicts via negation heuristics (e.g., "always" vs "never", "use" vs "avoid")
415
+ 4. Flag contradictions where `residualEnergy = similarity × sentimentConflict` exceeds threshold
416
+
250
417
  ## Knowledge Bank
251
418
 
252
419
  The knowledge bank is a **semantic memory** store for facts, concepts, and relationships that agents learn from experience. While playbooks capture *how* to do things, the knowledge bank captures *what agents know* — facts about tools, libraries, version-specific behavior, and causal relationships.
@@ -303,9 +470,10 @@ Trajectory → KnowledgeExtractor → Observations (confidence: 0.3)
303
470
 
304
471
  Knowledge evolves through:
305
472
  - **Reinforcement** — same fact observed again increases confidence
306
- - **Contradiction detection** — conflicting facts are flagged and resolved
473
+ - **Contradiction detection** — conflicting facts are flagged by the CoherenceChecker and resolved
307
474
  - **Consolidation** — observations about the same entity merge into entity notes
308
475
  - **Decay** — unvalidated knowledge gradually loses confidence
476
+ - **Defragmentation** — the KnowledgeDefragmenter merges duplicate/overlapping notes
309
477
 
310
478
  ### Knowledge surfacing
311
479
 
@@ -327,47 +495,150 @@ When [minimem](https://github.com/alexngai/minimem) is available, the knowledge
327
495
 
328
496
  See [Design Doc](docs/DESIGN-semantic-memory-knowledge-bank.md) for the full architecture.
329
497
 
498
+ ## Learning Pipeline
499
+
500
+ ### Knowledge extraction
501
+
502
+ The `KnowledgeExtractor` runs four heuristic strategies per trajectory:
503
+
504
+ 1. **Error patterns** — extracts observations from error signatures and suggested fixes
505
+ 2. **Config facts** — detects reads/writes of config files (package.json, tsconfig, etc.) and captures versions
506
+ 3. **Causal chains** — identifies failure→recovery step sequences and creates causal links
507
+ 4. **Entity identification** — matches known entities in observations and produces entity updates
508
+
509
+ ### Reflexion generation
510
+
511
+ The `ReflexionGenerator` creates structured self-reflection episodes from completed trajectories. Each episode includes:
512
+ - Outcome classification (success/partial/failure)
513
+ - Self-critique (wasted effort, thrashing detection)
514
+ - Key insights (tools used, file paths, error patterns)
515
+ - Strategy assessment against matched playbooks
516
+ - Suggested playbook updates
517
+
518
+ ### Shared utilities
519
+
520
+ Common analysis patterns are consolidated into shared utilities to avoid duplication:
521
+
522
+ | Utility | Used by |
523
+ |---------|---------|
524
+ | `classifyError()` / `classifyErrorType()` | TrajectoryAnalyzer, ReflexionGenerator |
525
+ | `detectRepeatedActions()` | TrajectoryAnalyzer, ReflexionGenerator, MetaLearner |
526
+ | `extractToolNames()` | ReflexionGenerator, MetaLearner |
527
+ | `getCandidates()` | ExperienceMemory, PlaybookLibrary, CausalStore |
528
+
330
529
  ## CLI
331
530
 
332
- cognitive-core ships a CLI for querying playbooks and storing trajectories without writing code.
531
+ cognitive-core ships a CLI for operating the learning system — ingesting trajectories, querying memory, and running maintenance. Available as both `cogcore` (short) and `cognitive-core`.
532
+
533
+ ```bash
534
+ npm install -g cognitive-core
535
+ cogcore help
536
+ ```
537
+
538
+ ### Daemon mode
539
+
540
+ The primary operational command. Polls SessionLog for new coding sessions and feeds them through the learning pipeline automatically.
541
+
542
+ ```bash
543
+ # Continuous mode — watch for new sessions and process them
544
+ cogcore run --repo /path/to/repo --interval 30
545
+
546
+ # One-shot mode — process all unprocessed sessions and exit
547
+ cogcore run --once --repo /path/to/repo
548
+ ```
549
+
550
+ The flow: `SessionBank.discover()` → filter unprocessed → `SessionTrajectorySource.synthesize()` → `atlas.processTrajectory()` → `bank.markProcessed()`. Supports graceful shutdown via SIGINT/SIGTERM.
551
+
552
+ ### Playbook commands
333
553
 
334
554
  ```bash
335
555
  # Initialize storage
336
- cognitive-core init --dir .cognitive-core
556
+ cogcore init
337
557
 
338
558
  # Store a trajectory from a JSON file
339
- cognitive-core store ./trajectory.json
559
+ cogcore store ./trajectory.json
340
560
 
341
561
  # Search for relevant playbooks
342
- cognitive-core search "fix typescript import errors" --domain code
562
+ cogcore search "fix typescript import errors" --domain code
343
563
  # Found 2 playbook(s) matching "fix typescript import errors":
344
564
  #
345
565
  # Match: 92% (trigger)
346
566
  # ## typescript-import-resolution
347
567
  # Confidence: 85%
348
568
  # Strategy: Check tsconfig.json paths configuration
349
- # Tactics:
350
- # - Verify moduleResolution setting
351
- # - Check baseUrl and paths mapping
352
- # - Inspect file extensions (.js vs .ts)
353
569
 
354
570
  # Get full playbook details
355
- cognitive-core get playbook-abc123
571
+ cogcore get playbook-abc123
356
572
 
357
- # List domains with playbooks
358
- cognitive-core domains
573
+ # List domains with playbook counts
574
+ cogcore domains
359
575
 
360
- # View memory statistics
361
- cognitive-core stats
362
- # Experiences: 47
363
- # Playbooks: 12
364
- # Meta-observations: 31
576
+ # View system statistics
577
+ cogcore stats
365
578
  ```
366
579
 
367
- All commands support `--json` for structured output:
580
+ ### Knowledge bank
581
+
582
+ Query and manage the semantic memory store (observations, entities, domain summaries).
368
583
 
369
584
  ```bash
370
- cognitive-core search "debug async errors" --json | jq '.results[0].strategy'
585
+ cogcore kb search "prisma migration"
586
+ cogcore kb list # all notes
587
+ cogcore kb list --type entities # entity notes only
588
+ cogcore kb list --type domains # domain summaries only
589
+ cogcore kb get prisma # by ID, entity name, or domain name
590
+ cogcore kb stats # observation/entity/domain counts, graph stats
591
+ cogcore kb defrag # deduplicate, process inbox, run decay
592
+ ```
593
+
594
+ ### Sessions
595
+
596
+ Inspect SessionLog checkpoint data from git orphan branches. SessionBank is standalone — it reads directly from the git repo without Atlas.
597
+
598
+ ```bash
599
+ cogcore sessions list --repo .
600
+ cogcore sessions get 2026-02-15-aabbccdd-1122-3344-5566-778899aabbcc
601
+ cogcore sessions query --agent "Claude Code" --since 2026-01-01 --limit 10
602
+ ```
603
+
604
+ ### Learning pipeline
605
+
606
+ Operator controls for the three-speed learning pipeline.
607
+
608
+ ```bash
609
+ cogcore learn stats # processed count, pending, batch/maintenance cycles
610
+ cogcore learn batch # force batch learning on accumulated trajectories
611
+ cogcore learn maintenance # force maintenance cycle (defrag, healing, meta-strategies)
612
+ ```
613
+
614
+ ### Skill library
615
+
616
+ Inspect and manage the tiered skill system.
617
+
618
+ ```bash
619
+ cogcore skills list # all skills with tier, confidence, success rate
620
+ cogcore skills list --tier core # core skills only (always in system prompt)
621
+ cogcore skills list --tier domain # domain skills only
622
+ cogcore skills stats # core/domain counts, last refresh
623
+ cogcore skills refresh # trigger tier re-evaluation (promotions/demotions)
624
+ ```
625
+
626
+ ### Global options
627
+
628
+ All commands support these flags:
629
+
630
+ | Flag | Description |
631
+ |------|-------------|
632
+ | `--dir <path>` | Storage directory (default: `.cognitive-core`) |
633
+ | `--json` | Machine-readable JSON output |
634
+ | `--limit <n>` | Maximum results |
635
+ | `--domain <d>` | Filter by domain |
636
+ | `--repo <path>` | Git repository path (for sessions/run) |
637
+
638
+ ```bash
639
+ # Pipe JSON output to jq
640
+ cogcore search "debug async errors" --json | jq '.[0].strategy'
641
+ cogcore kb stats --json | jq '.observationCount'
371
642
  ```
372
643
 
373
644
  ## Agent Backends
@@ -467,12 +738,57 @@ const skills = await atlas.getSkillLibrary()?.getSkillsForAgent(task);
467
738
  // skills.contextual - matched to this specific task
468
739
  ```
469
740
 
741
+ ### skill-tree integration
742
+
743
+ When `skillTree.enabled` is true (default), playbooks are published to a `skill-tree` SQLite database via `SqliteStorageAdapter`, making them available to external consumers.
744
+
745
+ ### Team skill library
746
+
747
+ For multi-agent systems, the `TeamSkillLibrary` surfaces team-level and role-specific playbooks with ELO-based ranking from team outcome feedback.
748
+
749
+ ## Session Bank
750
+
751
+ The session bank provides integration with the Claude Code CLI, enabling cognitive-core to learn from real coding sessions.
752
+
753
+ ```typescript
754
+ import { SessionBank, EntireGitReader, EntireTranscriptParser } from 'cognitive-core';
755
+ ```
756
+
757
+ Components:
758
+ - **EntireGitReader** — reads session transcripts from Claude Code's git-based storage
759
+ - **EntireTranscriptParser** — parses raw transcripts into structured `SessionRecord` objects
760
+ - **SessionBank** — manages session records with querying by date range, domain, and outcome
761
+
762
+ The `EntireTrajectorySource` bridges session bank records into trajectories for the learning pipeline.
763
+
764
+ ## Workspace Templates
765
+
766
+ The workspace system provides LLM-assisted analysis via structured templates. Each template defines inputs, outputs, and a processing prompt. The `AgenticTaskRunner` executes templates against a workspace.
767
+
768
+ Available templates:
769
+
770
+ | Template | Purpose |
771
+ |----------|---------|
772
+ | `trajectory-analysis` | Deep trajectory analysis with LLM |
773
+ | `playbook-extraction` | Extract playbooks from trajectory clusters |
774
+ | `knowledge-extraction` | LLM-assisted knowledge extraction |
775
+ | `usage-inference` | Infer which playbooks were actually used |
776
+ | `meta-reflection` | Generate meta-learning observations |
777
+ | `solution-evaluation` | Evaluate solution quality |
778
+ | `refinement-analysis` | Analyze refinement opportunities |
779
+ | `knowledge-defrag` | Merge overlapping knowledge notes |
780
+ | `team-playbook-extraction` | Extract team-level playbooks |
781
+ | `team-trajectory-analysis` | Analyze multi-agent trajectories |
782
+
783
+ Templates can run in heuristic mode (no LLM, pattern matching only) or agentic mode (LLM-assisted, higher quality).
784
+
470
785
  ## Configuration
471
786
 
472
787
  ```typescript
473
788
  const atlas = createAtlasWithAgents([backend], {
474
789
  storage: {
475
790
  baseDir: '.cognitive-core',
791
+ dbName: 'cognitive-core.db', // SQLite database filename
476
792
  persistenceEnabled: true,
477
793
  },
478
794
  learning: {
@@ -607,16 +923,16 @@ cognitive-core draws from several lines of research on agent memory and learning
607
923
  - **[MAGMA](https://arxiv.org/abs/2601.03236)** - Multi-graph decomposition into semantic, temporal, causal, entity layers (graph overlay design)
608
924
  - **[Zep](https://arxiv.org/pdf/2501.13956)** - Entity extraction, community detection, temporal tracking
609
925
  - **[Memory Survey](https://arxiv.org/abs/2512.13564)** - Comprehensive survey and taxonomy of factual/experiential/procedural memory
926
+ - **ruvector** - Inspiration for infrastructure improvements: ReasoningBank (K-means++ clustering), MoE routing gate, CoherenceChecker (sheaf-inspired), TemporalCompressor (tiered memory), InstantLoop (hot-path learning)
610
927
 
611
928
  ## Limitations
612
929
 
613
930
  - **No cross-domain transfer**. A playbook learned in the `code` domain won't surface for `testing` tasks even if the underlying pattern is the same. Domain tags are string-matched, not semantically compared.
614
- - **Cold start**. The system needs ~10 trajectories before batch learning kicks in and playbooks start appearing. Until then, agents run without memory augmentation. Knowledge extraction works per-trajectory, so knowledge is available sooner.
615
- - **Text-based matching by default**. BM25 works but misses semantic similarity. Vector search requires configuring an embedding provider and adds latency. Knowledge bank search uses text similarity unless minimem is available.
616
- - **No trajectory quality filtering**. The system stores all trajectories, including ones from poorly-performing agents. Low-quality trajectories can produce low-quality playbooks and knowledge. The deduplication threshold and confidence model help, but don't solve the garbage-in problem.
617
- - **Single-machine storage**. Persistence is JSON file-based (experiences, playbooks), Markdown file-based (knowledge), and SQLite (vector store). There's no built-in replication, multi-agent concurrency, or cloud storage.
931
+ - **Cold start**. The system needs ~10 trajectories before batch learning kicks in and playbooks start appearing. The instant loop provides per-trajectory updates immediately, and knowledge extraction works per-trajectory, so some learning is available sooner.
932
+ - **Text-based matching by default**. BM25 and inverted index candidate narrowing work but miss semantic similarity. Vector search requires configuring an embedding provider and adds latency. Knowledge bank search uses text similarity unless minimem is available.
933
+ - **No trajectory quality filtering**. The system stores all trajectories, including ones from poorly-performing agents. Low-quality trajectories can produce low-quality playbooks and knowledge. The deduplication threshold, confidence model, and temporal compression help, but don't solve the garbage-in problem.
934
+ - **Single-machine storage**. All system-internal data lives in a single SQLite database (`cognitive-core.db` with WAL mode), knowledge notes are Markdown files, and skills use a separate `skills.db`. There's no built-in replication, multi-agent concurrency, or cloud storage.
618
935
  - **Extraction is heuristic by default**. Without an LLM extractor configured, both playbook and knowledge extraction use text pattern matching, which produces lower-quality results. LLM-assisted extraction is available via workspace templates.
619
- - **Knowledge extraction is not auto-wired into the learning pipeline**. Knowledge must be extracted explicitly via `KnowledgeBank.extractFromTrajectory()`. This is by design — it allows callers to control when extraction runs.
620
936
 
621
937
  ## Contributing
622
938
 
package/dist/atlas.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import type { Task, Trajectory, TeamTrajectory, TeamPlaybook, AtlasConfig, Playbook } from './types/index.js';
2
2
  import type { KnowledgeMatch } from './types/knowledge.js';
3
3
  import { MemorySystem, type TeamExperience } from './memory/index.js';
4
- import { LearningPipeline, type ProcessResult, type BatchResult } from './learning/index.js';
4
+ import { UnifiedLearningPipeline, type ImmediateResult, type UnifiedBatchResult } from './learning/unified-pipeline.js';
5
5
  import { TeamLearningPipeline, type TeamBatchResult, type TeamProcessResult } from './learning/team-pipeline.js';
6
6
  import { TeamMetaLearner } from './learning/team-meta-learner.js';
7
7
  import { TeamRouter, type TeamRecommendation, type TeamRecommendationInput } from './search/team-router.js';
8
8
  import { TeamSkillLibrary, type TeamOutcomeFeedback } from './surfacing/team-skill-library.js';
9
- import { MetaLearner } from './learning/meta-learner.js';
10
- import { LearningEffectivenessTracker } from './learning/effectiveness.js';
9
+ import type { MetaLearner } from './learning/meta-learner.js';
10
+ import type { LearningEffectivenessTracker } from './learning/effectiveness.js';
11
11
  import { type RoutingDecision } from './search/router.js';
12
12
  import { RefinementLoop } from './search/refinement-loop.js';
13
13
  import type { RefinementResult } from './search/refinement-types.js';
@@ -98,7 +98,7 @@ export interface SolveResult {
98
98
  */
99
99
  export declare class Atlas {
100
100
  private memory;
101
- private learning;
101
+ private unifiedPipeline;
102
102
  private router;
103
103
  private solver;
104
104
  private agentManager;
@@ -111,14 +111,13 @@ export declare class Atlas {
111
111
  private skillTreeStorage;
112
112
  private usageInference;
113
113
  private mcpServer;
114
- private metaLearner;
115
- private effectivenessTracker;
116
114
  private taskRunner;
117
115
  private workspaceManager;
118
116
  private teamLearning;
119
117
  private teamRouter;
120
118
  private teamMetaLearner;
121
119
  private teamSkillLibrary;
120
+ private persistence;
122
121
  constructor(config?: Partial<AtlasConfig>);
123
122
  /**
124
123
  * Initialize Atlas (load persisted data)
@@ -175,9 +174,10 @@ export declare class Atlas {
175
174
  */
176
175
  solveBatch(tasks: Task[]): Promise<SolveResult[]>;
177
176
  /**
178
- * Process an external trajectory (from another agent)
177
+ * Process an external trajectory (from another agent).
178
+ * Runs the instant loop first (hot path), then feeds into the batch pipeline.
179
179
  */
180
- processTrajectory(trajectory: Trajectory): Promise<ProcessResult>;
180
+ processTrajectory(trajectory: Trajectory): Promise<ImmediateResult>;
181
181
  /**
182
182
  * Process a team trajectory through the full team learning pipeline.
183
183
  * Ingests, analyzes (heuristic or agentic), stores, and accumulates
@@ -246,7 +246,7 @@ export declare class Atlas {
246
246
  /**
247
247
  * Run batch learning explicitly
248
248
  */
249
- runBatchLearning(): Promise<BatchResult>;
249
+ runBatchLearning(): Promise<UnifiedBatchResult>;
250
250
  /**
251
251
  * Query memory for relevant context
252
252
  */
@@ -270,7 +270,7 @@ export declare class Atlas {
270
270
  /**
271
271
  * Get the learning pipeline for direct access
272
272
  */
273
- getLearning(): LearningPipeline;
273
+ getLearning(): UnifiedLearningPipeline;
274
274
  /**
275
275
  * Get the skill library for direct access
276
276
  */