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
@@ -0,0 +1,383 @@
1
+ /**
2
+ * HealingOrchestrator — Plug-in anomaly detection and repair pattern.
3
+ *
4
+ * Inspired by ruvector's HealingOrchestrator (ruvector-dag/healing/orchestrator.rs).
5
+ * Runs registered anomaly detectors and repair strategies in each maintenance
6
+ * cycle. Detectors and strategies are push-registered via add methods.
7
+ *
8
+ * The orchestrator itself has no internal timer — `runCycle()` is called
9
+ * explicitly by the MaintenanceScheduler or manually by the caller.
10
+ */
11
+
12
+ /**
13
+ * Health context provided to detectors and repair strategies.
14
+ */
15
+ export interface HealthContext {
16
+ /** Total trajectories processed since last cycle */
17
+ trajectoriesProcessed: number;
18
+ /** Current experience count */
19
+ experienceCount: number;
20
+ /** Current playbook count */
21
+ playbookCount: number;
22
+ /** Recent success rate (0.0–1.0) */
23
+ recentSuccessRate: number;
24
+ /** Batches since last maintenance */
25
+ batchesSinceLastMaintenance: number;
26
+ /** Custom metrics from subsystems */
27
+ metrics: Record<string, number>;
28
+ }
29
+
30
+ /**
31
+ * An anomaly detected by a detector.
32
+ */
33
+ export interface Anomaly {
34
+ /** Unique type identifier (e.g., 'playbook-drift', 'memory-bloat') */
35
+ type: string;
36
+ /** Severity: higher = more urgent */
37
+ severity: 'low' | 'medium' | 'high';
38
+ /** Human-readable description */
39
+ description: string;
40
+ /** Detector that found this anomaly */
41
+ detectorName: string;
42
+ /** Arbitrary data for repair strategies to use */
43
+ data?: Record<string, unknown>;
44
+ }
45
+
46
+ /**
47
+ * Result of a repair attempt.
48
+ */
49
+ export interface RepairResult {
50
+ /** Whether the repair was successful */
51
+ success: boolean;
52
+ /** What the repair strategy did */
53
+ action: string;
54
+ /** Repair strategy name */
55
+ strategyName: string;
56
+ /** Duration in ms */
57
+ durationMs: number;
58
+ }
59
+
60
+ /**
61
+ * Result of a full healing cycle.
62
+ */
63
+ export interface HealingCycleResult {
64
+ /** Anomalies detected in this cycle */
65
+ anomaliesDetected: Anomaly[];
66
+ /** Repair attempts and their results */
67
+ repairs: RepairResult[];
68
+ /** Total duration of the cycle in ms */
69
+ durationMs: number;
70
+ /** Timestamp */
71
+ timestamp: Date;
72
+ }
73
+
74
+ /**
75
+ * Interface for anomaly detectors.
76
+ * Implement this to create custom health checks.
77
+ */
78
+ export interface AnomalyDetector {
79
+ /** Unique name for this detector */
80
+ readonly name: string;
81
+ /** Run detection and return any anomalies found */
82
+ detect(context: HealthContext): Promise<Anomaly[]>;
83
+ }
84
+
85
+ /**
86
+ * Interface for repair strategies.
87
+ * Implement this to create custom repair actions.
88
+ */
89
+ export interface RepairStrategy {
90
+ /** Unique name for this strategy */
91
+ readonly name: string;
92
+ /** Check if this strategy can handle a given anomaly type */
93
+ canRepair(anomaly: Anomaly): boolean;
94
+ /** Attempt to repair the anomaly */
95
+ repair(anomaly: Anomaly, context: HealthContext): Promise<RepairResult>;
96
+ }
97
+
98
+ /**
99
+ * HealingOrchestrator — coordinates anomaly detection and repair.
100
+ */
101
+ export class HealingOrchestrator {
102
+ private detectors: AnomalyDetector[] = [];
103
+ private strategies: RepairStrategy[] = [];
104
+ private cycleHistory: HealingCycleResult[] = [];
105
+ private maxHistorySize: number;
106
+
107
+ constructor(options?: { maxHistorySize?: number }) {
108
+ this.maxHistorySize = options?.maxHistorySize ?? 20;
109
+ }
110
+
111
+ /**
112
+ * Register an anomaly detector.
113
+ */
114
+ addDetector(detector: AnomalyDetector): void {
115
+ // Replace existing detector with same name
116
+ this.detectors = this.detectors.filter(d => d.name !== detector.name);
117
+ this.detectors.push(detector);
118
+ }
119
+
120
+ /**
121
+ * Unregister an anomaly detector by name.
122
+ */
123
+ removeDetector(name: string): void {
124
+ this.detectors = this.detectors.filter(d => d.name !== name);
125
+ }
126
+
127
+ /**
128
+ * Register a repair strategy.
129
+ */
130
+ addRepairStrategy(strategy: RepairStrategy): void {
131
+ this.strategies = this.strategies.filter(s => s.name !== strategy.name);
132
+ this.strategies.push(strategy);
133
+ }
134
+
135
+ /**
136
+ * Unregister a repair strategy by name.
137
+ */
138
+ removeRepairStrategy(name: string): void {
139
+ this.strategies = this.strategies.filter(s => s.name !== name);
140
+ }
141
+
142
+ /**
143
+ * Run a healing cycle.
144
+ *
145
+ * 1. Runs all registered detectors to find anomalies
146
+ * 2. For each anomaly, finds the first matching repair strategy
147
+ * 3. Executes the repair
148
+ */
149
+ async runCycle(context: HealthContext): Promise<HealingCycleResult> {
150
+ const start = Date.now();
151
+ const anomalies: Anomaly[] = [];
152
+ const repairs: RepairResult[] = [];
153
+
154
+ // Phase 1: Detection
155
+ for (const detector of this.detectors) {
156
+ try {
157
+ const detected = await detector.detect(context);
158
+ anomalies.push(...detected);
159
+ } catch (error) {
160
+ // Non-critical — log but continue
161
+ anomalies.push({
162
+ type: 'detector-error',
163
+ severity: 'low',
164
+ description: `Detector '${detector.name}' failed: ${error instanceof Error ? error.message : String(error)}`,
165
+ detectorName: detector.name,
166
+ });
167
+ }
168
+ }
169
+
170
+ // Sort by severity (high first)
171
+ const severityOrder: Record<string, number> = { high: 0, medium: 1, low: 2 };
172
+ anomalies.sort(
173
+ (a, b) => (severityOrder[a.severity] ?? 3) - (severityOrder[b.severity] ?? 3),
174
+ );
175
+
176
+ // Phase 2: Repair
177
+ for (const anomaly of anomalies) {
178
+ // Skip detector errors (not repairable)
179
+ if (anomaly.type === 'detector-error') continue;
180
+
181
+ for (const strategy of this.strategies) {
182
+ if (!strategy.canRepair(anomaly)) continue;
183
+
184
+ const repairStart = Date.now();
185
+ try {
186
+ const result = await strategy.repair(anomaly, context);
187
+ repairs.push(result);
188
+ } catch (error) {
189
+ repairs.push({
190
+ success: false,
191
+ action: `Failed: ${error instanceof Error ? error.message : String(error)}`,
192
+ strategyName: strategy.name,
193
+ durationMs: Date.now() - repairStart,
194
+ });
195
+ }
196
+
197
+ // Only apply first matching strategy per anomaly
198
+ break;
199
+ }
200
+ }
201
+
202
+ const result: HealingCycleResult = {
203
+ anomaliesDetected: anomalies,
204
+ repairs,
205
+ durationMs: Date.now() - start,
206
+ timestamp: new Date(),
207
+ };
208
+
209
+ this.cycleHistory.push(result);
210
+ if (this.cycleHistory.length > this.maxHistorySize) {
211
+ this.cycleHistory.shift();
212
+ }
213
+
214
+ return result;
215
+ }
216
+
217
+ /**
218
+ * Get cycle history for diagnostics.
219
+ */
220
+ getCycleHistory(): readonly HealingCycleResult[] {
221
+ return this.cycleHistory;
222
+ }
223
+
224
+ /**
225
+ * Get registered detectors.
226
+ */
227
+ getDetectors(): readonly AnomalyDetector[] {
228
+ return this.detectors;
229
+ }
230
+
231
+ /**
232
+ * Get registered repair strategies.
233
+ */
234
+ getRepairStrategies(): readonly RepairStrategy[] {
235
+ return this.strategies;
236
+ }
237
+ }
238
+
239
+ /**
240
+ * Create a HealingOrchestrator.
241
+ */
242
+ export function createHealingOrchestrator(
243
+ options?: { maxHistorySize?: number },
244
+ ): HealingOrchestrator {
245
+ return new HealingOrchestrator(options);
246
+ }
247
+
248
+ // =========================================================================
249
+ // Built-in Detectors
250
+ // =========================================================================
251
+
252
+ /**
253
+ * Detects when playbook success rates are consistently low,
254
+ * suggesting playbook drift.
255
+ */
256
+ export class PlaybookDriftDetector implements AnomalyDetector {
257
+ readonly name = 'playbook-drift';
258
+ private threshold: number;
259
+
260
+ constructor(threshold = 0.3) {
261
+ this.threshold = threshold;
262
+ }
263
+
264
+ async detect(context: HealthContext): Promise<Anomaly[]> {
265
+ const anomalies: Anomaly[] = [];
266
+
267
+ if (
268
+ context.recentSuccessRate < this.threshold &&
269
+ context.playbookCount > 0 &&
270
+ context.trajectoriesProcessed >= 5
271
+ ) {
272
+ anomalies.push({
273
+ type: 'playbook-drift',
274
+ severity: 'medium',
275
+ description: `Recent success rate (${(context.recentSuccessRate * 100).toFixed(0)}%) is below threshold (${(this.threshold * 100).toFixed(0)}%) with ${context.playbookCount} playbooks available`,
276
+ detectorName: this.name,
277
+ data: {
278
+ successRate: context.recentSuccessRate,
279
+ playbookCount: context.playbookCount,
280
+ },
281
+ });
282
+ }
283
+
284
+ return anomalies;
285
+ }
286
+ }
287
+
288
+ /**
289
+ * Detects when the experience store is growing beyond capacity,
290
+ * suggesting aggressive pruning is needed.
291
+ */
292
+ export class MemoryBloatDetector implements AnomalyDetector {
293
+ readonly name = 'memory-bloat';
294
+ private maxExperiences: number;
295
+ private warningRatio: number;
296
+
297
+ constructor(maxExperiences = 1000, warningRatio = 0.9) {
298
+ this.maxExperiences = maxExperiences;
299
+ this.warningRatio = warningRatio;
300
+ }
301
+
302
+ async detect(context: HealthContext): Promise<Anomaly[]> {
303
+ const anomalies: Anomaly[] = [];
304
+
305
+ if (
306
+ this.maxExperiences > 0 &&
307
+ context.experienceCount >= this.maxExperiences * this.warningRatio
308
+ ) {
309
+ const severity =
310
+ context.experienceCount >= this.maxExperiences ? 'high' : 'medium';
311
+
312
+ anomalies.push({
313
+ type: 'memory-bloat',
314
+ severity,
315
+ description: `Experience count (${context.experienceCount}) is ${severity === 'high' ? 'at' : 'approaching'} capacity (${this.maxExperiences})`,
316
+ detectorName: this.name,
317
+ data: {
318
+ experienceCount: context.experienceCount,
319
+ maxExperiences: this.maxExperiences,
320
+ },
321
+ });
322
+ }
323
+
324
+ return anomalies;
325
+ }
326
+ }
327
+
328
+ /**
329
+ * Detects when a custom metric exceeds a Z-score threshold,
330
+ * inspired by ruvector's Z-score-based outlier detection.
331
+ */
332
+ export class MetricDriftDetector implements AnomalyDetector {
333
+ readonly name: string;
334
+ private metricKey: string;
335
+ private history: number[] = [];
336
+ private windowSize: number;
337
+ private zThreshold: number;
338
+
339
+ constructor(
340
+ metricKey: string,
341
+ options?: { windowSize?: number; zThreshold?: number },
342
+ ) {
343
+ this.name = `metric-drift:${metricKey}`;
344
+ this.metricKey = metricKey;
345
+ this.windowSize = options?.windowSize ?? 20;
346
+ this.zThreshold = options?.zThreshold ?? 2.0;
347
+ }
348
+
349
+ async detect(context: HealthContext): Promise<Anomaly[]> {
350
+ const value = context.metrics[this.metricKey];
351
+ if (value === undefined) return [];
352
+
353
+ this.history.push(value);
354
+ if (this.history.length > this.windowSize) {
355
+ this.history.shift();
356
+ }
357
+
358
+ if (this.history.length < 3) return [];
359
+
360
+ const mean = this.history.reduce((s, v) => s + v, 0) / this.history.length;
361
+ const variance =
362
+ this.history.reduce((s, v) => s + (v - mean) ** 2, 0) / this.history.length;
363
+ const std = Math.sqrt(variance);
364
+
365
+ if (std === 0) return [];
366
+
367
+ const zScore = Math.abs(value - mean) / std;
368
+
369
+ if (zScore >= this.zThreshold) {
370
+ return [
371
+ {
372
+ type: 'metric-drift',
373
+ severity: zScore >= this.zThreshold * 1.5 ? 'high' : 'medium',
374
+ description: `Metric '${this.metricKey}' value ${value.toFixed(2)} has z-score ${zScore.toFixed(2)} (threshold: ${this.zThreshold})`,
375
+ detectorName: this.name,
376
+ data: { metricKey: this.metricKey, value, zScore, mean, std },
377
+ },
378
+ ];
379
+ }
380
+
381
+ return [];
382
+ }
383
+ }
@@ -11,13 +11,6 @@ export {
11
11
  type AnalyzerConfig,
12
12
  } from './analyzer.js';
13
13
 
14
- export {
15
- LearningPipeline,
16
- createLearningPipeline,
17
- type ProcessResult,
18
- type BatchResult,
19
- } from './pipeline.js';
20
-
21
14
  // Playbook-based learning
22
15
  export {
23
16
  PlaybookExtractor,
@@ -77,12 +70,27 @@ export {
77
70
  InMemoryTrajectorySource,
78
71
  FileTrajectorySource,
79
72
  PipelineTrajectorySource,
80
- EntireTrajectorySource,
81
- type EntireSynthesisOptions,
73
+ SessionTrajectorySource,
74
+ type SessionSynthesisOptions,
82
75
  DataclawTrajectorySource,
83
76
  type DataclawSourceOptions,
84
77
  } from './trajectory-sources/index.js';
85
78
 
79
+ // Instant (hot-path) learning
80
+ export {
81
+ InstantLoop,
82
+ createInstantLoop,
83
+ type InstantLoopResult,
84
+ type InstantLoopConfig,
85
+ } from './instant-loop.js';
86
+
87
+ // Reflexion generation
88
+ export {
89
+ ReflexionGenerator,
90
+ createReflexionGenerator,
91
+ type ReflexionGeneratorConfig,
92
+ } from './reflexion-generator.js';
93
+
86
94
  // Effectiveness tracking
87
95
  export {
88
96
  LearningEffectivenessTracker,
@@ -91,3 +99,51 @@ export {
91
99
  type EffectivenessMetrics,
92
100
  type PlaybookEffectivenessEntry,
93
101
  } from './effectiveness.js';
102
+
103
+ // Unified learning pipeline (three-speed: immediate + batch + maintenance)
104
+ export {
105
+ UnifiedLearningPipeline,
106
+ createUnifiedPipeline,
107
+ type UnifiedPipelineConfig,
108
+ type UnifiedPipelineFeatures,
109
+ type ImmediateResult,
110
+ type UnifiedBatchResult,
111
+ type UnifiedPipelineStats,
112
+ type EnergyEvaluation,
113
+ type EnergySignal,
114
+ type EscalationReason,
115
+ type MaintenanceCycleResult,
116
+ type MaintenanceTask,
117
+ type HealingCycleResult,
118
+ type HealthContext,
119
+ type AnomalyDetector,
120
+ type RepairStrategy,
121
+ } from './unified-pipeline.js';
122
+
123
+ // Energy evaluator (ruvector-inspired batch trigger)
124
+ export {
125
+ EnergyEvaluator,
126
+ createEnergyEvaluator,
127
+ type EnergyEvaluatorConfig,
128
+ type LaneTransition,
129
+ } from './energy-evaluator.js';
130
+
131
+ // Maintenance scheduler (circadian-style duty-gated)
132
+ export {
133
+ MaintenanceScheduler,
134
+ createMaintenanceScheduler,
135
+ type MaintenanceSchedulerConfig,
136
+ type MaintenanceMode,
137
+ type MaintenanceTaskResult,
138
+ } from './maintenance-scheduler.js';
139
+
140
+ // Healing orchestrator (plug-in detector/repair)
141
+ export {
142
+ HealingOrchestrator,
143
+ createHealingOrchestrator,
144
+ PlaybookDriftDetector,
145
+ MemoryBloatDetector,
146
+ MetricDriftDetector,
147
+ type Anomaly,
148
+ type RepairResult,
149
+ } from './healing-orchestrator.js';