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
@@ -1,15 +1,16 @@
1
1
  # skill-tree
2
2
 
3
- A TypeScript library for managing agent skill versions and evolution. Extract, iterate, and adapt skills from agent trajectories.
3
+ A TypeScript library for managing agent skill versions and evolution. Store, version, serve, sync, and federate reusable skills for AI agents.
4
4
 
5
5
  ## Overview
6
6
 
7
7
  skill-tree helps you build and maintain a library of reusable skills for AI agents by:
8
8
 
9
- - **Extracting skills** from agent sessions/trajectories (manual or automatic)
10
9
  - **Storing skills** in a versioned, searchable format (OpenSkills-compatible)
11
10
  - **Evolving skills** through versioning, forking, and merging
12
- - **Quality gates** to ensure extracted skills are reusable and non-trivial
11
+ - **Serving skills** via dynamic loadouts with expand/collapse, profiles, and token budgeting
12
+ - **Syncing skills** across agents with git-based multi-agent collaboration
13
+ - **Federating skills** across repositories for cross-organization sharing
13
14
 
14
15
  Inspired by research on skill libraries ([arXiv:2512.17102](https://arxiv.org/abs/2512.17102)), [Claudeception](https://github.com/blader/Claudeception), and [OpenSkills](https://github.com/numman-ali/openskills).
15
16
 
@@ -22,139 +23,81 @@ npm install skill-tree
22
23
  ## Quick Start
23
24
 
24
25
  ```typescript
25
- import { createSkillBank } from 'skill-tree';
26
+ import { createSkillBank, type Skill } from 'skill-tree';
26
27
 
27
28
  // Create a skill bank with filesystem storage
28
- const skillBank = createSkillBank({
29
- storage: {
30
- type: 'filesystem',
31
- basePath: './skills',
32
- openSkillsCompatible: true,
33
- },
29
+ const bank = createSkillBank({
30
+ storage: { basePath: './skills' },
34
31
  });
35
32
 
36
- await skillBank.initialize();
37
-
38
- // Parse a Claude Code session
39
- const trajectory = await skillBank.parseSession(sessionContent);
33
+ await bank.initialize();
40
34
 
41
- // Extract a skill manually
42
- const result = await skillBank.extractManual(trajectory, {
43
- suggestedName: 'typescript-import-fix',
35
+ // Save a skill
36
+ await bank.saveSkill({
37
+ id: 'typescript-esm-import-fix',
38
+ name: 'TypeScript ESM Import Fix',
39
+ version: '1.0.0',
44
40
  description: 'Fix TypeScript ES module import errors',
45
- tags: ['typescript', 'imports'],
46
- });
47
-
48
- if (result.success) {
49
- console.log('Extracted skill:', result.skill.name);
50
- }
41
+ problem: 'TypeScript with ES modules requires explicit .js extensions',
42
+ triggerConditions: [{ type: 'error', value: "Cannot find module './utils'" }],
43
+ solution: 'Add .js extension to all relative imports.',
44
+ verification: 'Run tsc --noEmit to verify no import errors',
45
+ examples: [],
46
+ author: 'me',
47
+ tags: ['typescript', 'esm'],
48
+ createdAt: new Date(),
49
+ updatedAt: new Date(),
50
+ status: 'active',
51
+ metrics: { usageCount: 0, successRate: 0, feedbackScores: [] },
52
+ } as Skill);
51
53
 
52
54
  // Search for skills
53
- const skills = await skillBank.searchSkills('typescript error');
55
+ const skills = await bank.searchSkills('typescript');
54
56
 
55
57
  // Create a new version
56
- const updated = await skillBank.createVersion('typescript-import-fix', {
57
- solution: 'Updated solution...',
58
+ const updated = await bank.createVersion('typescript-esm-import-fix', {
59
+ solution: 'Add .js extension, or use "moduleResolution": "bundler".',
58
60
  }, { bumpType: 'minor' });
61
+
62
+ await bank.shutdown();
59
63
  ```
60
64
 
61
65
  ## Core Concepts
62
66
 
63
67
  ### Skills
64
68
 
65
- A skill represents a reusable piece of knowledge extracted from agent interactions:
69
+ A skill represents a reusable piece of knowledge:
66
70
 
67
71
  ```typescript
68
72
  interface Skill {
69
73
  id: string; // Unique identifier
70
74
  name: string; // Human-readable name
71
75
  version: string; // Semantic version
72
- description: string; // For semantic matching
76
+ description: string; // For search and matching
73
77
  problem: string; // What problem this solves
74
78
  triggerConditions: TriggerCondition[]; // When to apply
75
79
  solution: string; // Step-by-step solution
76
80
  verification: string; // How to verify it worked
77
81
  examples: SkillExample[]; // Usage examples
78
- // ... metadata, metrics, lineage
82
+ tags: string[]; // Categorization
83
+ status: SkillStatus; // 'draft' | 'active' | 'deprecated' | 'experimental'
84
+ metrics: SkillMetrics; // Usage tracking
85
+ // ... namespace, taxonomy, lineage
79
86
  }
80
87
  ```
81
88
 
82
- ### Trajectories
83
-
84
- Agent sessions are parsed into trajectories:
85
-
86
- ```typescript
87
- interface Trajectory {
88
- sessionId: string;
89
- turns: Turn[]; // User/assistant/tool interactions
90
- metadata: TrajectoryMetadata;
91
- outcome?: TrajectoryOutcome;
92
- }
93
- ```
94
-
95
- ### Quality Gates
96
-
97
- Extraction includes quality gates (inspired by Claudeception) to ensure skills are:
98
-
99
- - **Reusable**: Applicable across multiple future tasks
100
- - **Non-trivial**: Involves discovery beyond documentation lookup
101
- - **Specific**: Has clear trigger conditions
102
- - **Verified**: Solution demonstrably works
103
-
104
- ## Features
105
-
106
- ### Session Adapters
107
-
108
- Parse different agent session formats:
109
-
110
- ```typescript
111
- // Built-in: Claude Code JSONL
112
- const trajectory = await skillBank.parseSession(jsonlContent);
113
-
114
- // Register custom adapters
115
- skillBank.registerAdapter(myCustomAdapter);
116
- ```
117
-
118
- ### Extraction Modes
119
-
120
- **Manual extraction** with user guidance:
121
-
122
- ```typescript
123
- const result = await skillBank.extractManual(trajectory, {
124
- turnRange: [5, 15], // Extract specific turns
125
- suggestedName: 'my-skill',
126
- tags: ['debugging'],
127
- });
128
- ```
129
-
130
- **Automatic extraction** using LLM:
131
-
132
- ```typescript
133
- skillBank.setLLMProvider(myLLMProvider);
134
-
135
- const results = await skillBank.extractAutomatic(trajectory, {
136
- minConfidence: 0.7,
137
- });
138
- ```
139
-
140
89
  ### Storage
141
90
 
142
- **Filesystem storage** (OpenSkills-compatible):
91
+ Two backends:
143
92
 
144
93
  ```typescript
145
- const skillBank = createSkillBank({
146
- storage: {
147
- type: 'filesystem',
148
- basePath: '~/.skills',
149
- openSkillsCompatible: true, // YAML frontmatter + Markdown
150
- },
94
+ // Filesystem (JSON source of truth + SQLite cache)
95
+ const bank = createSkillBank({
96
+ storage: { basePath: './skills' },
151
97
  });
152
- ```
153
-
154
- **Memory storage** (for testing):
155
98
 
156
- ```typescript
157
- const skillBank = createSkillBank({
99
+ // Memory (for testing)
100
+ const bank = createSkillBank({
158
101
  storage: { type: 'memory' },
159
102
  });
160
103
  ```
@@ -172,45 +115,111 @@ skills/
172
115
  └── 1.1.0.json
173
116
  ```
174
117
 
118
+ ## Features
119
+
175
120
  ### Versioning
176
121
 
177
122
  Semantic versioning with full lineage tracking:
178
123
 
179
124
  ```typescript
180
125
  // Create new version
181
- const v2 = await skillBank.createVersion('my-skill', updates, {
126
+ const v2 = await bank.createVersion('my-skill', updates, {
182
127
  bumpType: 'minor',
183
128
  changelog: 'Added alternative solution',
184
129
  });
185
130
 
186
131
  // Get version history
187
- const history = await skillBank.getVersionHistory('my-skill');
132
+ const history = await bank.getVersionHistory('my-skill');
188
133
 
189
134
  // Rollback to previous version
190
- const restored = await skillBank.rollbackSkill('my-skill', '1.0.0');
135
+ const restored = await bank.rollbackSkill('my-skill', '1.0.0');
191
136
 
192
137
  // Compare versions
193
- const diff = await skillBank.compareVersions('my-skill', '1.0.0', '2.0.0');
194
- ```
195
-
196
- ### Skill Evolution
197
-
198
- Fork and merge skills:
138
+ const diff = await bank.compareVersions('my-skill', '1.0.0', '2.0.0');
199
139
 
200
- ```typescript
201
140
  // Fork for a specialized use case
202
- const forked = await skillBank.forkSkill('my-skill', {
141
+ const forked = await bank.forkSkill('my-skill', {
203
142
  newId: 'my-skill-react',
204
143
  newName: 'My Skill (React variant)',
205
144
  reason: 'Specialized for React projects',
206
145
  });
146
+ ```
147
+
148
+ ### Serving Layer
149
+
150
+ Dynamic skill loadouts for agent context windows:
151
+
152
+ ```typescript
153
+ const { server } = await bank.createServingLayer({
154
+ maxExpanded: 5,
155
+ });
156
+
157
+ // Orchestrator sets loadout based on task
158
+ await server.setLoadoutForTask('Fix authentication bug');
159
+
160
+ // Or use a built-in profile
161
+ await server.setLoadoutFromProfile('debugging');
162
+
163
+ // Render skills into system prompt
164
+ const prompt = server.renderSystemPrompt();
207
165
 
208
- // Merge improvements back
209
- const merged = await skillBank.lineageTracker.mergeSkill(
210
- 'my-skill',
211
- 'my-skill-react',
212
- { fields: ['solution', 'examples'] }
213
- );
166
+ // Agent-side API
167
+ const view = server.agentListLoadout();
168
+ const skill = server.agentExpandSkill('some-skill-id');
169
+ server.agentCollapseSkill('some-skill-id');
170
+ await server.agentRequestSkills(['another-skill']);
171
+ ```
172
+
173
+ ### Multi-Agent Sync
174
+
175
+ Git-based skill synchronization:
176
+
177
+ ```typescript
178
+ import { createDefaultSyncConfig } from 'skill-tree';
179
+
180
+ const bank = createSkillBank({
181
+ storage: { basePath: './skills' },
182
+ sync: {
183
+ config: createDefaultSyncConfig({
184
+ repoUrl: 'git@github.com:org/skills.git',
185
+ agentId: 'agent-1',
186
+ }),
187
+ pullOnInit: true,
188
+ },
189
+ });
190
+
191
+ await bank.initialize(); // auto-pulls remote changes
192
+
193
+ // Manual sync
194
+ await bank.sync.push();
195
+ await bank.sync.pull();
196
+ const status = await bank.sync.status();
197
+
198
+ await bank.shutdown(); // flushes pending sync
199
+ ```
200
+
201
+ ### Federation
202
+
203
+ Connect independent skill repositories:
204
+
205
+ ```typescript
206
+ // Add a remote
207
+ await bank.federation.addRemote('team', {
208
+ url: 'git@github.com:org/team-skills.git',
209
+ access: 'read-write',
210
+ });
211
+
212
+ // Browse remote skills
213
+ const remoteSkills = await bank.federation.browse('team');
214
+
215
+ // Import a skill
216
+ const result = await bank.federation.import('team', 'useful-pattern');
217
+
218
+ // Share a skill
219
+ await bank.federation.share('my-skill', 'team');
220
+
221
+ // Check for upstream updates
222
+ const updates = await bank.federation.checkUpstream();
214
223
  ```
215
224
 
216
225
  ### Events
@@ -218,40 +227,93 @@ const merged = await skillBank.lineageTracker.mergeSkill(
218
227
  Subscribe to skill bank events:
219
228
 
220
229
  ```typescript
221
- const unsubscribe = skillBank.on((event) => {
230
+ // Simple synchronous listeners
231
+ const unsubscribe = bank.on((event) => {
222
232
  switch (event.type) {
223
233
  case 'skill:created':
224
234
  console.log('New skill:', event.skill.name);
225
235
  break;
226
- case 'extraction:completed':
227
- console.log('Extraction confidence:', event.result.confidence);
236
+ case 'skill:updated':
237
+ console.log('Updated:', event.skill.name, 'from', event.previousVersion);
228
238
  break;
229
239
  }
230
240
  });
241
+
242
+ // Advanced: async hooks with priority and filtering
243
+ bank.getHookRegistry().register({
244
+ event: 'storage:after-save',
245
+ handler: async (context) => {
246
+ console.log('Skill saved to storage');
247
+ },
248
+ priority: 'normal',
249
+ });
250
+ ```
251
+
252
+ ### AGENTS.md Integration
253
+
254
+ Bidirectional sync between skill bank and AGENTS.md files:
255
+
256
+ ```typescript
257
+ import { createAgentsSync } from 'skill-tree';
258
+
259
+ const sync = createAgentsSync(bank.getStorage());
260
+ const result = await sync.sync('./AGENTS.md', {
261
+ direction: 'bidirectional',
262
+ });
263
+ ```
264
+
265
+ ### Namespace Support
266
+
267
+ Multi-tier skill trees for team environments:
268
+
269
+ ```typescript
270
+ const bank = createSkillBank({
271
+ storage: { basePath: './skills' },
272
+ namespace: {
273
+ agentId: 'agent-1',
274
+ team: 'frontend',
275
+ defaultScope: 'personal',
276
+ defaultVisibility: 'private',
277
+ },
278
+ });
279
+
280
+ // List skills by scope
281
+ const personal = await bank.listSkills({ scope: 'personal', owner: 'agent-1' });
282
+ const teamSkills = await bank.listSkills({ scope: 'team', team: 'frontend' });
231
283
  ```
232
284
 
233
285
  ## API Reference
234
286
 
235
287
  ### SkillBank
236
288
 
237
- Main orchestrator class.
289
+ Main orchestrator class, created via `createSkillBank(config)`.
238
290
 
239
291
  | Method | Description |
240
292
  |--------|-------------|
241
- | `initialize()` | Initialize storage (required before use) |
242
- | `parseSession(content, adapter?)` | Parse session into trajectory |
243
- | `extractManual(trajectory, options?)` | Extract skill with guidance |
244
- | `extractAutomatic(trajectory, options?)` | Extract skills using LLM |
293
+ | `initialize()` | Initialize storage, federation, and sync |
294
+ | `shutdown()` | Clean shutdown (flushes sync) |
245
295
  | `getSkill(id, version?)` | Get skill by ID |
246
296
  | `listSkills(filter?)` | List skills with optional filter |
247
- | `searchSkills(query)` | Search skills by text |
297
+ | `searchSkills(query)` | Full-text search |
248
298
  | `saveSkill(skill)` | Save or update a skill |
249
299
  | `deleteSkill(id, version?)` | Delete a skill |
300
+ | `deprecateSkill(id)` | Mark skill as deprecated |
250
301
  | `createVersion(id, updates, options?)` | Create new version |
251
302
  | `forkSkill(id, options)` | Fork a skill |
252
303
  | `getVersionHistory(id)` | Get version history |
304
+ | `getLineage(id)` | Get full lineage |
253
305
  | `rollbackSkill(id, version)` | Rollback to version |
254
- | `on(handler)` | Subscribe to events |
306
+ | `compareVersions(id, vA, vB)` | Diff two versions |
307
+ | `on(handler)` | Subscribe to events (returns unsubscribe fn) |
308
+ | `off(handler)` | Unsubscribe from events |
309
+ | `getStats()` | Get skill bank statistics |
310
+ | `exportAll()` | Export all skills |
311
+ | `importSkills(skills)` | Bulk import skills |
312
+ | `createServingLayer(config?)` | Create a SkillGraphServer |
313
+ | `getStorage()` | Access underlying storage adapter |
314
+ | `getHookRegistry()` | Access hook registry |
315
+ | `sync` | SyncManager accessor (throws if not configured) |
316
+ | `federation` | FederationManager accessor (requires basePath) |
255
317
 
256
318
  ### Versioning Utilities
257
319
 
@@ -303,20 +365,6 @@ TypeScript with ES modules requires explicit .js extensions in imports.
303
365
  ## Verification
304
366
 
305
367
  Run `tsc` and verify no module resolution errors.
306
-
307
- ## Examples
308
-
309
- ### Basic import fix
310
-
311
- **Before:**
312
- ```typescript
313
- import { helper } from './utils'
314
- ```
315
-
316
- **After:**
317
- ```typescript
318
- import { helper } from './utils.js'
319
- ```
320
368
  ```
321
369
 
322
370
  ## License