cognitive-core 0.1.2 → 0.2.1

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 (528) hide show
  1. package/.claude/settings.json +111 -2
  2. package/.sessionlog/settings.json +4 -0
  3. package/CLAUDE.md +233 -0
  4. package/README.md +370 -54
  5. package/dist/atlas.d.ts +10 -10
  6. package/dist/atlas.d.ts.map +1 -1
  7. package/dist/atlas.js +79 -48
  8. package/dist/atlas.js.map +1 -1
  9. package/dist/bin/cli-utils.d.ts +37 -0
  10. package/dist/bin/cli-utils.d.ts.map +1 -0
  11. package/dist/bin/cli-utils.js +176 -0
  12. package/dist/bin/cli-utils.js.map +1 -0
  13. package/dist/bin/cognitive-core.d.ts +2 -12
  14. package/dist/bin/cognitive-core.d.ts.map +1 -1
  15. package/dist/bin/cognitive-core.js +76 -351
  16. package/dist/bin/cognitive-core.js.map +1 -1
  17. package/dist/bin/commands/kb.d.ts +6 -0
  18. package/dist/bin/commands/kb.d.ts.map +1 -0
  19. package/dist/bin/commands/kb.js +240 -0
  20. package/dist/bin/commands/kb.js.map +1 -0
  21. package/dist/bin/commands/learn.d.ts +6 -0
  22. package/dist/bin/commands/learn.d.ts.map +1 -0
  23. package/dist/bin/commands/learn.js +91 -0
  24. package/dist/bin/commands/learn.js.map +1 -0
  25. package/dist/bin/commands/legacy.d.ts +12 -0
  26. package/dist/bin/commands/legacy.d.ts.map +1 -0
  27. package/dist/bin/commands/legacy.js +142 -0
  28. package/dist/bin/commands/legacy.js.map +1 -0
  29. package/dist/bin/commands/run.d.ts +3 -0
  30. package/dist/bin/commands/run.d.ts.map +1 -0
  31. package/dist/bin/commands/run.js +99 -0
  32. package/dist/bin/commands/run.js.map +1 -0
  33. package/dist/bin/commands/sessions.d.ts +9 -0
  34. package/dist/bin/commands/sessions.d.ts.map +1 -0
  35. package/dist/bin/commands/sessions.js +183 -0
  36. package/dist/bin/commands/sessions.js.map +1 -0
  37. package/dist/bin/commands/skills.d.ts +6 -0
  38. package/dist/bin/commands/skills.d.ts.map +1 -0
  39. package/dist/bin/commands/skills.js +135 -0
  40. package/dist/bin/commands/skills.js.map +1 -0
  41. package/dist/embeddings/index.d.ts +1 -0
  42. package/dist/embeddings/index.d.ts.map +1 -1
  43. package/dist/embeddings/index.js +2 -0
  44. package/dist/embeddings/index.js.map +1 -1
  45. package/dist/embeddings/inverted-index.d.ts +47 -0
  46. package/dist/embeddings/inverted-index.d.ts.map +1 -0
  47. package/dist/embeddings/inverted-index.js +122 -0
  48. package/dist/embeddings/inverted-index.js.map +1 -0
  49. package/dist/embeddings/manager.d.ts +3 -1
  50. package/dist/embeddings/manager.d.ts.map +1 -1
  51. package/dist/embeddings/manager.js +12 -7
  52. package/dist/embeddings/manager.js.map +1 -1
  53. package/dist/embeddings/vector-store.d.ts +7 -3
  54. package/dist/embeddings/vector-store.d.ts.map +1 -1
  55. package/dist/embeddings/vector-store.js +22 -6
  56. package/dist/embeddings/vector-store.js.map +1 -1
  57. package/dist/factory.d.ts +11 -12
  58. package/dist/factory.d.ts.map +1 -1
  59. package/dist/factory.js +20 -7
  60. package/dist/factory.js.map +1 -1
  61. package/dist/index.d.ts +8 -7
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +42 -6
  64. package/dist/index.js.map +1 -1
  65. package/dist/learning/analyzer.d.ts.map +1 -1
  66. package/dist/learning/analyzer.js +17 -35
  67. package/dist/learning/analyzer.js.map +1 -1
  68. package/dist/learning/energy-evaluator.d.ts +128 -0
  69. package/dist/learning/energy-evaluator.d.ts.map +1 -0
  70. package/dist/learning/energy-evaluator.js +175 -0
  71. package/dist/learning/energy-evaluator.js.map +1 -0
  72. package/dist/learning/healing-orchestrator.d.ts +182 -0
  73. package/dist/learning/healing-orchestrator.d.ts.map +1 -0
  74. package/dist/learning/healing-orchestrator.js +250 -0
  75. package/dist/learning/healing-orchestrator.js.map +1 -0
  76. package/dist/learning/index.d.ts +7 -2
  77. package/dist/learning/index.d.ts.map +1 -1
  78. package/dist/learning/index.js +13 -2
  79. package/dist/learning/index.js.map +1 -1
  80. package/dist/learning/instant-loop.d.ts +87 -0
  81. package/dist/learning/instant-loop.d.ts.map +1 -0
  82. package/dist/learning/instant-loop.js +264 -0
  83. package/dist/learning/instant-loop.js.map +1 -0
  84. package/dist/learning/loop-coordinator.d.ts +61 -0
  85. package/dist/learning/loop-coordinator.d.ts.map +1 -0
  86. package/dist/learning/loop-coordinator.js +96 -0
  87. package/dist/learning/loop-coordinator.js.map +1 -0
  88. package/dist/learning/maintenance-scheduler.d.ts +141 -0
  89. package/dist/learning/maintenance-scheduler.d.ts.map +1 -0
  90. package/dist/learning/maintenance-scheduler.js +186 -0
  91. package/dist/learning/maintenance-scheduler.js.map +1 -0
  92. package/dist/learning/meta-learner.d.ts.map +1 -1
  93. package/dist/learning/meta-learner.js +4 -21
  94. package/dist/learning/meta-learner.js.map +1 -1
  95. package/dist/learning/pipeline.d.ts +31 -4
  96. package/dist/learning/pipeline.d.ts.map +1 -1
  97. package/dist/learning/pipeline.js +64 -12
  98. package/dist/learning/pipeline.js.map +1 -1
  99. package/dist/learning/reflexion-generator.d.ts +64 -0
  100. package/dist/learning/reflexion-generator.d.ts.map +1 -0
  101. package/dist/learning/reflexion-generator.js +194 -0
  102. package/dist/learning/reflexion-generator.js.map +1 -0
  103. package/dist/learning/trajectory-sources/entire.d.ts +8 -5
  104. package/dist/learning/trajectory-sources/entire.d.ts.map +1 -1
  105. package/dist/learning/trajectory-sources/entire.js +13 -6
  106. package/dist/learning/trajectory-sources/entire.js.map +1 -1
  107. package/dist/learning/trajectory-sources/index.d.ts +1 -1
  108. package/dist/learning/trajectory-sources/index.d.ts.map +1 -1
  109. package/dist/learning/trajectory-sources/index.js +1 -1
  110. package/dist/learning/trajectory-sources/index.js.map +1 -1
  111. package/dist/learning/trajectory-sources/pipeline.d.ts +4 -4
  112. package/dist/learning/trajectory-sources/pipeline.d.ts.map +1 -1
  113. package/dist/learning/trajectory-sources/pipeline.js +2 -2
  114. package/dist/learning/trajectory-sources/pipeline.js.map +1 -1
  115. package/dist/learning/unified-pipeline.d.ts +311 -0
  116. package/dist/learning/unified-pipeline.d.ts.map +1 -0
  117. package/dist/learning/unified-pipeline.js +844 -0
  118. package/dist/learning/unified-pipeline.js.map +1 -0
  119. package/dist/memory/candidate-retrieval.d.ts +43 -0
  120. package/dist/memory/candidate-retrieval.d.ts.map +1 -0
  121. package/dist/memory/candidate-retrieval.js +43 -0
  122. package/dist/memory/candidate-retrieval.js.map +1 -0
  123. package/dist/memory/causal-store.d.ts +97 -0
  124. package/dist/memory/causal-store.d.ts.map +1 -0
  125. package/dist/memory/causal-store.js +209 -0
  126. package/dist/memory/causal-store.js.map +1 -0
  127. package/dist/memory/coherence.d.ts +71 -0
  128. package/dist/memory/coherence.d.ts.map +1 -0
  129. package/dist/memory/coherence.js +176 -0
  130. package/dist/memory/coherence.js.map +1 -0
  131. package/dist/memory/experience.d.ts +39 -6
  132. package/dist/memory/experience.d.ts.map +1 -1
  133. package/dist/memory/experience.js +193 -49
  134. package/dist/memory/experience.js.map +1 -1
  135. package/dist/memory/index.d.ts +7 -0
  136. package/dist/memory/index.d.ts.map +1 -1
  137. package/dist/memory/index.js +12 -0
  138. package/dist/memory/index.js.map +1 -1
  139. package/dist/memory/knowledge-bank.d.ts +14 -0
  140. package/dist/memory/knowledge-bank.d.ts.map +1 -1
  141. package/dist/memory/knowledge-bank.js +45 -0
  142. package/dist/memory/knowledge-bank.js.map +1 -1
  143. package/dist/memory/meta.d.ts +7 -8
  144. package/dist/memory/meta.d.ts.map +1 -1
  145. package/dist/memory/meta.js +73 -79
  146. package/dist/memory/meta.js.map +1 -1
  147. package/dist/memory/playbook.d.ts +26 -9
  148. package/dist/memory/playbook.d.ts.map +1 -1
  149. package/dist/memory/playbook.js +198 -74
  150. package/dist/memory/playbook.js.map +1 -1
  151. package/dist/memory/reasoning-bank.d.ts +130 -0
  152. package/dist/memory/reasoning-bank.d.ts.map +1 -0
  153. package/dist/memory/reasoning-bank.js +342 -0
  154. package/dist/memory/reasoning-bank.js.map +1 -0
  155. package/dist/memory/reflexion.d.ts +59 -0
  156. package/dist/memory/reflexion.d.ts.map +1 -0
  157. package/dist/memory/reflexion.js +96 -0
  158. package/dist/memory/reflexion.js.map +1 -0
  159. package/dist/memory/system.d.ts +7 -2
  160. package/dist/memory/system.d.ts.map +1 -1
  161. package/dist/memory/system.js +19 -7
  162. package/dist/memory/system.js.map +1 -1
  163. package/dist/memory/temporal-compressor.d.ts +126 -0
  164. package/dist/memory/temporal-compressor.d.ts.map +1 -0
  165. package/dist/memory/temporal-compressor.js +335 -0
  166. package/dist/memory/temporal-compressor.js.map +1 -0
  167. package/dist/persistence/index.d.ts +11 -0
  168. package/dist/persistence/index.d.ts.map +1 -0
  169. package/dist/persistence/index.js +11 -0
  170. package/dist/persistence/index.js.map +1 -0
  171. package/dist/persistence/migrator.d.ts +40 -0
  172. package/dist/persistence/migrator.d.ts.map +1 -0
  173. package/dist/persistence/migrator.js +238 -0
  174. package/dist/persistence/migrator.js.map +1 -0
  175. package/dist/persistence/serializers.d.ts +45 -0
  176. package/dist/persistence/serializers.d.ts.map +1 -0
  177. package/dist/persistence/serializers.js +80 -0
  178. package/dist/persistence/serializers.js.map +1 -0
  179. package/dist/persistence/sqlite-persistence.d.ts +228 -0
  180. package/dist/persistence/sqlite-persistence.d.ts.map +1 -0
  181. package/dist/persistence/sqlite-persistence.js +588 -0
  182. package/dist/persistence/sqlite-persistence.js.map +1 -0
  183. package/dist/runtime/flows/learning.d.ts +10 -12
  184. package/dist/runtime/flows/learning.d.ts.map +1 -1
  185. package/dist/runtime/flows/learning.js +10 -23
  186. package/dist/runtime/flows/learning.js.map +1 -1
  187. package/dist/search/index.d.ts +1 -0
  188. package/dist/search/index.d.ts.map +1 -1
  189. package/dist/search/index.js +2 -0
  190. package/dist/search/index.js.map +1 -1
  191. package/dist/search/moe-gate.d.ts +124 -0
  192. package/dist/search/moe-gate.d.ts.map +1 -0
  193. package/dist/search/moe-gate.js +234 -0
  194. package/dist/search/moe-gate.js.map +1 -0
  195. package/dist/search/router.d.ts +32 -2
  196. package/dist/search/router.d.ts.map +1 -1
  197. package/dist/search/router.js +87 -4
  198. package/dist/search/router.js.map +1 -1
  199. package/dist/session-bank/git-reader.d.ts +9 -4
  200. package/dist/session-bank/git-reader.d.ts.map +1 -1
  201. package/dist/session-bank/git-reader.js +22 -15
  202. package/dist/session-bank/git-reader.js.map +1 -1
  203. package/dist/session-bank/index.d.ts +2 -2
  204. package/dist/session-bank/index.d.ts.map +1 -1
  205. package/dist/session-bank/index.js +2 -2
  206. package/dist/session-bank/index.js.map +1 -1
  207. package/dist/session-bank/parser.d.ts +16 -5
  208. package/dist/session-bank/parser.d.ts.map +1 -1
  209. package/dist/session-bank/parser.js +187 -80
  210. package/dist/session-bank/parser.js.map +1 -1
  211. package/dist/session-bank/session-bank.d.ts +5 -0
  212. package/dist/session-bank/session-bank.d.ts.map +1 -1
  213. package/dist/session-bank/session-bank.js +30 -9
  214. package/dist/session-bank/session-bank.js.map +1 -1
  215. package/dist/session-bank/types.d.ts +4 -1
  216. package/dist/session-bank/types.d.ts.map +1 -1
  217. package/dist/session-bank/types.js +3 -3
  218. package/dist/session-bank/types.js.map +1 -1
  219. package/dist/surfacing/skill-publisher.d.ts.map +1 -1
  220. package/dist/surfacing/skill-publisher.js +15 -43
  221. package/dist/surfacing/skill-publisher.js.map +1 -1
  222. package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -1
  223. package/dist/surfacing/sqlite-storage-adapter.js +13 -21
  224. package/dist/surfacing/sqlite-storage-adapter.js.map +1 -1
  225. package/dist/types/config.d.ts +100 -0
  226. package/dist/types/config.d.ts.map +1 -1
  227. package/dist/types/config.js +27 -0
  228. package/dist/types/config.js.map +1 -1
  229. package/dist/types/index.d.ts +2 -2
  230. package/dist/types/index.d.ts.map +1 -1
  231. package/dist/types/index.js +1 -1
  232. package/dist/types/index.js.map +1 -1
  233. package/dist/types/memory.d.ts +52 -0
  234. package/dist/types/memory.d.ts.map +1 -1
  235. package/dist/types/memory.js +13 -0
  236. package/dist/types/memory.js.map +1 -1
  237. package/dist/types/playbook.d.ts +4 -0
  238. package/dist/types/playbook.d.ts.map +1 -1
  239. package/dist/types/playbook.js.map +1 -1
  240. package/dist/utils/error-classifier.d.ts +30 -0
  241. package/dist/utils/error-classifier.d.ts.map +1 -0
  242. package/dist/utils/error-classifier.js +85 -0
  243. package/dist/utils/error-classifier.js.map +1 -0
  244. package/dist/utils/index.d.ts +3 -0
  245. package/dist/utils/index.d.ts.map +1 -1
  246. package/dist/utils/index.js +3 -0
  247. package/dist/utils/index.js.map +1 -1
  248. package/dist/utils/partitioned-store.d.ts +93 -0
  249. package/dist/utils/partitioned-store.d.ts.map +1 -0
  250. package/dist/utils/partitioned-store.js +251 -0
  251. package/dist/utils/partitioned-store.js.map +1 -0
  252. package/dist/utils/trajectory-helpers.d.ts +39 -0
  253. package/dist/utils/trajectory-helpers.d.ts.map +1 -0
  254. package/dist/utils/trajectory-helpers.js +57 -0
  255. package/dist/utils/trajectory-helpers.js.map +1 -0
  256. package/dist/workspace/efficacy-toolkit.d.ts +164 -0
  257. package/dist/workspace/efficacy-toolkit.d.ts.map +1 -0
  258. package/dist/workspace/efficacy-toolkit.js +281 -0
  259. package/dist/workspace/efficacy-toolkit.js.map +1 -0
  260. package/dist/workspace/index.d.ts +2 -1
  261. package/dist/workspace/index.d.ts.map +1 -1
  262. package/dist/workspace/index.js +3 -1
  263. package/dist/workspace/index.js.map +1 -1
  264. package/dist/workspace/runner.d.ts +3 -4
  265. package/dist/workspace/runner.d.ts.map +1 -1
  266. package/dist/workspace/runner.js.map +1 -1
  267. package/dist/workspace/templates/index.d.ts +3 -0
  268. package/dist/workspace/templates/index.d.ts.map +1 -1
  269. package/dist/workspace/templates/index.js +6 -0
  270. package/dist/workspace/templates/index.js.map +1 -1
  271. package/dist/workspace/templates/playbook-decay-detection.d.ts +46 -0
  272. package/dist/workspace/templates/playbook-decay-detection.d.ts.map +1 -0
  273. package/dist/workspace/templates/playbook-decay-detection.js +197 -0
  274. package/dist/workspace/templates/playbook-decay-detection.js.map +1 -0
  275. package/dist/workspace/templates/playbook-efficacy-audit.d.ts +46 -0
  276. package/dist/workspace/templates/playbook-efficacy-audit.d.ts.map +1 -0
  277. package/dist/workspace/templates/playbook-efficacy-audit.js +160 -0
  278. package/dist/workspace/templates/playbook-efficacy-audit.js.map +1 -0
  279. package/dist/workspace/templates/playbook-lifecycle-review.d.ts +51 -0
  280. package/dist/workspace/templates/playbook-lifecycle-review.d.ts.map +1 -0
  281. package/dist/workspace/templates/playbook-lifecycle-review.js +187 -0
  282. package/dist/workspace/templates/playbook-lifecycle-review.js.map +1 -0
  283. package/dist/workspace/types.d.ts +9 -2
  284. package/dist/workspace/types.d.ts.map +1 -1
  285. package/dist/workspace/types.js.map +1 -1
  286. package/package.json +12 -4
  287. package/references/sessionlog/.husky/pre-commit +1 -0
  288. package/references/sessionlog/.lintstagedrc.json +4 -0
  289. package/references/sessionlog/.prettierignore +4 -0
  290. package/references/sessionlog/.prettierrc.json +11 -0
  291. package/references/sessionlog/LICENSE +21 -0
  292. package/references/sessionlog/README.md +453 -0
  293. package/references/sessionlog/eslint.config.js +58 -0
  294. package/references/sessionlog/package-lock.json +3672 -0
  295. package/references/sessionlog/package.json +65 -0
  296. package/references/sessionlog/src/__tests__/agent-hooks.test.ts +570 -0
  297. package/references/sessionlog/src/__tests__/agent-registry.test.ts +127 -0
  298. package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +225 -0
  299. package/references/sessionlog/src/__tests__/claude-generator.test.ts +46 -0
  300. package/references/sessionlog/src/__tests__/commit-msg.test.ts +86 -0
  301. package/references/sessionlog/src/__tests__/cursor-agent.test.ts +224 -0
  302. package/references/sessionlog/src/__tests__/e2e-live.test.ts +890 -0
  303. package/references/sessionlog/src/__tests__/event-log.test.ts +183 -0
  304. package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +105 -0
  305. package/references/sessionlog/src/__tests__/gemini-agent.test.ts +375 -0
  306. package/references/sessionlog/src/__tests__/git-hooks.test.ts +78 -0
  307. package/references/sessionlog/src/__tests__/hook-managers.test.ts +121 -0
  308. package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +759 -0
  309. package/references/sessionlog/src/__tests__/opencode-agent.test.ts +338 -0
  310. package/references/sessionlog/src/__tests__/redaction.test.ts +136 -0
  311. package/references/sessionlog/src/__tests__/session-repo.test.ts +353 -0
  312. package/references/sessionlog/src/__tests__/session-store.test.ts +166 -0
  313. package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +466 -0
  314. package/references/sessionlog/src/__tests__/skill-live.test.ts +461 -0
  315. package/references/sessionlog/src/__tests__/summarize.test.ts +348 -0
  316. package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +610 -0
  317. package/references/sessionlog/src/__tests__/task-plan-live.test.ts +632 -0
  318. package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +121 -0
  319. package/references/sessionlog/src/__tests__/types.test.ts +166 -0
  320. package/references/sessionlog/src/__tests__/utils.test.ts +333 -0
  321. package/references/sessionlog/src/__tests__/validation.test.ts +103 -0
  322. package/references/sessionlog/src/__tests__/worktree.test.ts +57 -0
  323. package/references/sessionlog/src/agent/agents/claude-code.ts +1089 -0
  324. package/references/sessionlog/src/agent/agents/cursor.ts +361 -0
  325. package/references/sessionlog/src/agent/agents/gemini-cli.ts +632 -0
  326. package/references/sessionlog/src/agent/agents/opencode.ts +540 -0
  327. package/references/sessionlog/src/agent/registry.ts +143 -0
  328. package/references/sessionlog/src/agent/session-types.ts +113 -0
  329. package/references/sessionlog/src/agent/types.ts +220 -0
  330. package/references/sessionlog/src/cli.ts +597 -0
  331. package/references/sessionlog/src/commands/clean.ts +133 -0
  332. package/references/sessionlog/src/commands/disable.ts +84 -0
  333. package/references/sessionlog/src/commands/doctor.ts +145 -0
  334. package/references/sessionlog/src/commands/enable.ts +202 -0
  335. package/references/sessionlog/src/commands/explain.ts +261 -0
  336. package/references/sessionlog/src/commands/reset.ts +105 -0
  337. package/references/sessionlog/src/commands/resume.ts +180 -0
  338. package/references/sessionlog/src/commands/rewind.ts +195 -0
  339. package/references/sessionlog/src/commands/setup-ccweb.ts +275 -0
  340. package/references/sessionlog/src/commands/status.ts +172 -0
  341. package/references/sessionlog/src/config.ts +165 -0
  342. package/references/sessionlog/src/events/event-log.ts +126 -0
  343. package/references/sessionlog/src/git-operations.ts +558 -0
  344. package/references/sessionlog/src/hooks/git-hooks.ts +165 -0
  345. package/references/sessionlog/src/hooks/lifecycle.ts +391 -0
  346. package/references/sessionlog/src/index.ts +650 -0
  347. package/references/sessionlog/src/security/redaction.ts +283 -0
  348. package/references/sessionlog/src/session/state-machine.ts +452 -0
  349. package/references/sessionlog/src/store/checkpoint-store.ts +509 -0
  350. package/references/sessionlog/src/store/native-store.ts +173 -0
  351. package/references/sessionlog/src/store/provider-types.ts +99 -0
  352. package/references/sessionlog/src/store/session-store.ts +266 -0
  353. package/references/sessionlog/src/strategy/attribution.ts +296 -0
  354. package/references/sessionlog/src/strategy/common.ts +207 -0
  355. package/references/sessionlog/src/strategy/content-overlap.ts +228 -0
  356. package/references/sessionlog/src/strategy/manual-commit.ts +988 -0
  357. package/references/sessionlog/src/strategy/types.ts +279 -0
  358. package/references/sessionlog/src/summarize/claude-generator.ts +115 -0
  359. package/references/sessionlog/src/summarize/summarize.ts +432 -0
  360. package/references/sessionlog/src/types.ts +508 -0
  361. package/references/sessionlog/src/utils/chunk-files.ts +49 -0
  362. package/references/sessionlog/src/utils/commit-message.ts +65 -0
  363. package/references/sessionlog/src/utils/detect-agent.ts +36 -0
  364. package/references/sessionlog/src/utils/hook-managers.ts +125 -0
  365. package/references/sessionlog/src/utils/ide-tags.ts +32 -0
  366. package/references/sessionlog/src/utils/paths.ts +79 -0
  367. package/references/sessionlog/src/utils/preview-rewind.ts +80 -0
  368. package/references/sessionlog/src/utils/rewind-conflict.ts +121 -0
  369. package/references/sessionlog/src/utils/shadow-branch.ts +109 -0
  370. package/references/sessionlog/src/utils/string-utils.ts +46 -0
  371. package/references/sessionlog/src/utils/todo-extract.ts +188 -0
  372. package/references/sessionlog/src/utils/trailers.ts +187 -0
  373. package/references/sessionlog/src/utils/transcript-parse.ts +177 -0
  374. package/references/sessionlog/src/utils/transcript-timestamp.ts +59 -0
  375. package/references/sessionlog/src/utils/tree-ops.ts +219 -0
  376. package/references/sessionlog/src/utils/tty.ts +72 -0
  377. package/references/sessionlog/src/utils/validation.ts +65 -0
  378. package/references/sessionlog/src/utils/worktree.ts +58 -0
  379. package/references/sessionlog/src/wire-types.ts +59 -0
  380. package/references/sessionlog/templates/setup-env.sh +153 -0
  381. package/references/sessionlog/tsconfig.json +18 -0
  382. package/references/sessionlog/vitest.config.ts +12 -0
  383. package/references/skill-tree/.sudocode/issues.jsonl +8 -0
  384. package/references/skill-tree/.sudocode/specs.jsonl +2 -0
  385. package/references/skill-tree/CLAUDE.md +56 -80
  386. package/references/skill-tree/README.md +188 -140
  387. package/references/skill-tree/examples/basic-usage.ts +95 -121
  388. package/references/skill-tree/package-lock.json +369 -26
  389. package/references/skill-tree/package.json +1 -1
  390. package/src/atlas.ts +97 -67
  391. package/src/bin/cli-utils.ts +220 -0
  392. package/src/bin/cognitive-core.ts +84 -392
  393. package/src/bin/commands/kb.ts +266 -0
  394. package/src/bin/commands/learn.ts +100 -0
  395. package/src/bin/commands/legacy.ts +182 -0
  396. package/src/bin/commands/run.ts +113 -0
  397. package/src/bin/commands/sessions.ts +221 -0
  398. package/src/bin/commands/skills.ts +146 -0
  399. package/src/embeddings/index.ts +3 -0
  400. package/src/embeddings/inverted-index.ts +134 -0
  401. package/src/embeddings/manager.ts +13 -8
  402. package/src/embeddings/vector-store.ts +21 -9
  403. package/src/factory.ts +33 -16
  404. package/src/index.ts +136 -9
  405. package/src/learning/analyzer.ts +21 -37
  406. package/src/learning/energy-evaluator.ts +282 -0
  407. package/src/learning/healing-orchestrator.ts +383 -0
  408. package/src/learning/index.ts +66 -9
  409. package/src/learning/instant-loop.ts +357 -0
  410. package/src/learning/maintenance-scheduler.ts +271 -0
  411. package/src/learning/meta-learner.ts +5 -23
  412. package/src/learning/reflexion-generator.ts +273 -0
  413. package/src/learning/trajectory-sources/entire.ts +24 -13
  414. package/src/learning/trajectory-sources/index.ts +2 -2
  415. package/src/learning/trajectory-sources/pipeline.ts +5 -5
  416. package/src/learning/unified-pipeline.ts +1191 -0
  417. package/src/memory/candidate-retrieval.ts +72 -0
  418. package/src/memory/causal-store.ts +273 -0
  419. package/src/memory/coherence.ts +252 -0
  420. package/src/memory/experience.ts +217 -50
  421. package/src/memory/index.ts +43 -0
  422. package/src/memory/knowledge-bank.ts +57 -0
  423. package/src/memory/meta.ts +78 -96
  424. package/src/memory/playbook.ts +239 -75
  425. package/src/memory/reasoning-bank.ts +458 -0
  426. package/src/memory/reflexion.ts +122 -0
  427. package/src/memory/system.ts +21 -5
  428. package/src/memory/temporal-compressor.ts +409 -0
  429. package/src/persistence/index.ts +37 -0
  430. package/src/persistence/migrator.ts +298 -0
  431. package/src/persistence/serializers.ts +79 -0
  432. package/src/persistence/sqlite-persistence.ts +925 -0
  433. package/src/runtime/flows/learning.ts +25 -42
  434. package/src/search/index.ts +10 -0
  435. package/src/search/moe-gate.ts +304 -0
  436. package/src/search/router.ts +111 -4
  437. package/src/session-bank/git-reader.ts +29 -19
  438. package/src/session-bank/index.ts +4 -2
  439. package/src/session-bank/parser.ts +280 -98
  440. package/src/session-bank/session-bank.ts +33 -12
  441. package/src/session-bank/types.ts +8 -5
  442. package/src/surfacing/skill-publisher.ts +17 -49
  443. package/src/surfacing/sqlite-storage-adapter.ts +16 -32
  444. package/src/types/config.ts +30 -0
  445. package/src/types/index.ts +3 -0
  446. package/src/types/memory.ts +30 -0
  447. package/src/types/playbook.ts +4 -0
  448. package/src/utils/error-classifier.ts +113 -0
  449. package/src/utils/index.ts +18 -0
  450. package/src/utils/partitioned-store.ts +299 -0
  451. package/src/utils/trajectory-helpers.ts +79 -0
  452. package/src/workspace/efficacy-toolkit.ts +496 -0
  453. package/src/workspace/index.ts +29 -0
  454. package/src/workspace/runner.ts +3 -3
  455. package/src/workspace/templates/index.ts +24 -0
  456. package/src/workspace/templates/playbook-decay-detection.ts +272 -0
  457. package/src/workspace/templates/playbook-efficacy-audit.ts +246 -0
  458. package/src/workspace/templates/playbook-lifecycle-review.ts +274 -0
  459. package/src/workspace/types.ts +10 -2
  460. package/tests/embeddings/inverted-index.test.ts +138 -0
  461. package/tests/feature-toggles.test.ts +275 -0
  462. package/tests/fixtures/behavioral-trajectories.ts +210 -0
  463. package/tests/gap-fixes.test.ts +17 -4
  464. package/tests/integration/cli-e2e.test.ts +621 -0
  465. package/tests/integration/e2e.test.ts +6 -5
  466. package/tests/integration/entire-e2e.test.ts +314 -125
  467. package/tests/integration/persistence-e2e.test.ts +741 -0
  468. package/tests/integration/phase-e2e.test.ts +1143 -0
  469. package/tests/integration/pipeline-data-correctness.test.ts +794 -0
  470. package/tests/integration/session-bank.test.ts +20 -14
  471. package/tests/integration/sessionlog-e2e.test.ts +329 -0
  472. package/tests/integration/unified-pipeline-e2e.test.ts +634 -0
  473. package/tests/learning/analyzer.test.ts +1 -1
  474. package/tests/learning/energy-evaluator.test.ts +180 -0
  475. package/tests/learning/entire-trajectory-source.test.ts +25 -25
  476. package/tests/learning/healing-orchestrator.test.ts +269 -0
  477. package/tests/learning/instant-loop.test.ts +243 -0
  478. package/tests/learning/maintenance-scheduler.test.ts +191 -0
  479. package/tests/learning/meta-learner.test.ts +418 -0
  480. package/tests/learning/pipeline-memory-updates.test.ts +721 -0
  481. package/tests/learning/reflexion-generator.test.ts +411 -0
  482. package/tests/learning/trajectory-sources.test.ts +12 -4
  483. package/tests/learning/unified-pipeline-efficacy.test.ts +232 -0
  484. package/tests/learning/unified-pipeline.test.ts +322 -0
  485. package/tests/mcp/playbook-server.test.ts +6 -1
  486. package/tests/memory/candidate-retrieval.test.ts +167 -0
  487. package/tests/memory/causal-store.test.ts +276 -0
  488. package/tests/memory/coherence.test.ts +232 -0
  489. package/tests/memory/experience.test.ts +8 -3
  490. package/tests/memory/meta.test.ts +399 -0
  491. package/tests/memory/playbook.test.ts +307 -1
  492. package/tests/memory/provenance.test.ts +11 -2
  493. package/tests/memory/reasoning-bank.test.ts +239 -0
  494. package/tests/memory/reflexion.test.ts +166 -0
  495. package/tests/memory/skill-exporter.test.ts +6 -1
  496. package/tests/memory/system.test.ts +6 -1
  497. package/tests/memory/temporal-compressor.test.ts +318 -0
  498. package/tests/persistence/migrator.test.ts +1009 -0
  499. package/tests/persistence/sqlite-persistence.test.ts +635 -0
  500. package/tests/runtime/agent-manager.test.ts +6 -1
  501. package/tests/runtime/delegate.test.ts +6 -1
  502. package/tests/search/evaluator.test.ts +257 -0
  503. package/tests/search/moe-gate.test.ts +250 -0
  504. package/tests/search/refinement-loop.test.ts +11 -2
  505. package/tests/search/router.test.ts +81 -2
  506. package/tests/search/verification-runner.test.ts +357 -0
  507. package/tests/session-bank/fixtures/sessionlog-root-metadata.json +16 -0
  508. package/tests/session-bank/fixtures/sessionlog-session/full.jsonl +6 -0
  509. package/tests/session-bank/fixtures/sessionlog-session/metadata.json +55 -0
  510. package/tests/session-bank/git-reader.test.ts +13 -13
  511. package/tests/session-bank/parser.test.ts +135 -3
  512. package/tests/session-bank/session-bank.test.ts +1 -1
  513. package/tests/surfacing/skill-library.test.ts +6 -1
  514. package/tests/surfacing/skill-publisher.test.ts +24 -58
  515. package/tests/surfacing/sqlite-storage-adapter.test.ts +11 -23
  516. package/tests/utils/error-classifier.test.ts +149 -0
  517. package/tests/utils/partitioned-store.test.ts +230 -0
  518. package/tests/utils/trajectory-helpers.test.ts +163 -0
  519. package/tests/workspace/efficacy-toolkit.test.ts +404 -0
  520. package/tests/workspace/full-flow.test.ts +10 -4
  521. package/tests/workspace/runner.test.ts +10 -4
  522. package/tests/workspace/templates/playbook-efficacy.test.ts +377 -0
  523. package/docs/DESIGN-workspace-migration.md +0 -1079
  524. package/docs/PLAN-agentic-workspace-implementation.md +0 -717
  525. package/docs/PLAN-graph-migration.md +0 -299
  526. package/docs/PLAN-session-bank-implementation.md +0 -474
  527. package/src/learning/pipeline.ts +0 -323
  528. package/tests/learning/pipeline.test.ts +0 -176
@@ -0,0 +1,453 @@
1
+ # sessionlog
2
+
3
+ Unofficial TypeScript reimplementation of the [Entire CLI](https://github.com/entireio/cli) — a Git-integrated tool that captures AI agent sessions as searchable records within your repository.
4
+
5
+ This package provides the core library used to build session tracking, checkpoint management, and agent integrations for AI coding tools.
6
+
7
+ ## Features
8
+
9
+ - **Multi-agent support** — Claude Code, Cursor, Gemini CLI, and OpenCode
10
+ - **Session lifecycle tracking** — automatic capture of prompts, responses, files modified, and token usage
11
+ - **Git-native checkpoints** — temporary snapshots on shadow branches, permanent records on `sessionlog/checkpoints/v1`
12
+ - **Rewind** — restore code to any previous checkpoint
13
+ - **Resume** — pick up agent sessions from any branch
14
+ - **Secret redaction** — multi-layer detection (entropy analysis + 30+ patterns) before storing transcripts
15
+ - **AI summarization** — generate structured summaries of agent sessions
16
+ - **Zero production dependencies** — only Node.js and Git required
17
+
18
+ ## Installation
19
+
20
+ **Global CLI (recommended for standalone use):**
21
+
22
+ ```bash
23
+ npm install -g sessionlog
24
+ ```
25
+
26
+ Then use the `sessionlog` command directly:
27
+
28
+ ```bash
29
+ cd your-project
30
+ sessionlog enable
31
+ sessionlog status
32
+ ```
33
+
34
+ **As a project dependency:**
35
+
36
+ ```bash
37
+ npm install sessionlog
38
+ ```
39
+
40
+ **As a dev dependency (for tools/plugins that integrate with Sessionlog):**
41
+
42
+ ```bash
43
+ npm install --save-dev sessionlog
44
+ ```
45
+
46
+ Requires Node.js >= 18 and Git.
47
+
48
+ ## Quick Start
49
+
50
+ ```typescript
51
+ import {
52
+ enable,
53
+ disable,
54
+ status,
55
+ listRewindPoints,
56
+ rewindTo,
57
+ } from 'sessionlog';
58
+
59
+ // Enable Sessionlog in a repository
60
+ const result = await enable({ cwd: '/path/to/repo' });
61
+ console.log(result.enabled); // true
62
+
63
+ // Check status
64
+ const info = await status('/path/to/repo');
65
+ console.log(info.sessions); // active sessions
66
+ console.log(info.agents); // installed agents
67
+
68
+ // List rewind points
69
+ const points = await listRewindPoints({ cwd: '/path/to/repo' });
70
+
71
+ // Rewind to a checkpoint
72
+ await rewindTo(points[0].id, { cwd: '/path/to/repo' });
73
+
74
+ // Disable
75
+ await disable({ cwd: '/path/to/repo' });
76
+ ```
77
+
78
+ ## Architecture
79
+
80
+ ```
81
+ Your Branch sessionlog/checkpoints/v1
82
+ │ │
83
+ ▼ │
84
+ [Base Commit] │
85
+ │ │
86
+ │ ┌─── Agent works ───┐ │
87
+ │ │ Step 1 │ │
88
+ │ │ Step 2 │ │
89
+ │ │ Step 3 │ │
90
+ │ └───────────────────┘ │
91
+ │ │
92
+ ▼ ▼
93
+ [Your Commit] ─────────────────► [Session Metadata]
94
+ │ (transcript, prompts,
95
+ │ files touched)
96
+
97
+ ```
98
+
99
+ Your active branch stays clean — all metadata is stored on the separate `sessionlog/checkpoints/v1` branch.
100
+
101
+ ## Key Concepts
102
+
103
+ **Sessions** represent complete AI agent interactions, capturing all prompts, responses, modified files, and timestamps. Session identifiers follow the format: `YYYY-MM-DD-<UUID>`.
104
+
105
+ **Checkpoints** are save points within sessions — snapshots you can rewind to when commits occur. Checkpoint identifiers are 12-character hexadecimal strings.
106
+
107
+ ## Commands
108
+
109
+ All commands are exposed as async functions that return structured results:
110
+
111
+ | Function | Purpose |
112
+ |----------|---------|
113
+ | `enable(options)` | Activate Sessionlog in a repository |
114
+ | `disable(options)` | Deactivate Sessionlog hooks |
115
+ | `status(cwd)` | Get current session information |
116
+ | `listRewindPoints(options)` | List available checkpoints |
117
+ | `rewindTo(pointID, options)` | Restore to a previous checkpoint |
118
+ | `doctor(options)` | Diagnose and fix stuck sessions |
119
+ | `clean(options)` | Remove orphaned data artifacts |
120
+ | `reset(options)` | Clear shadow branch and session state |
121
+ | `explainCommit(ref, options)` | Get session details for a commit |
122
+ | `discoverResumeInfo(branch)` | Find resumable sessions on a branch |
123
+ | `setupCcweb(options)` | Configure for Claude Code Web sessions |
124
+
125
+ ### Enable
126
+
127
+ ```typescript
128
+ import { enable } from 'sessionlog';
129
+
130
+ const result = await enable({
131
+ cwd: '/path/to/repo',
132
+ agent: 'claude-code', // or auto-detect
133
+ force: true, // reinstall hooks
134
+ local: false, // save to project settings
135
+ });
136
+ // result: { enabled, agent, agentHooksInstalled, gitHooksInstalled, errors }
137
+ ```
138
+
139
+ ### Status
140
+
141
+ ```typescript
142
+ import { status, formatTokens } from 'sessionlog';
143
+
144
+ const info = await status('/path/to/repo');
145
+ console.log(`Strategy: ${info.strategy}`);
146
+ console.log(`Sessions: ${info.sessions.length}`);
147
+ for (const s of info.sessions) {
148
+ console.log(` ${s.sessionID} (${s.agentType}) - ${s.phase}`);
149
+ if (s.tokenUsage) {
150
+ console.log(` Tokens: ${formatTokens(s.tokenUsage.input)} in / ${formatTokens(s.tokenUsage.output)} out`);
151
+ }
152
+ }
153
+ ```
154
+
155
+ ### Rewind
156
+
157
+ ```typescript
158
+ import { listRewindPoints, rewindTo } from 'sessionlog';
159
+
160
+ const points = await listRewindPoints({ cwd: '.', limit: 10 });
161
+ for (const p of points) {
162
+ console.log(`${p.id} - ${p.message} (${p.date})`);
163
+ }
164
+
165
+ const result = await rewindTo(points[0].id);
166
+ // result: { success, message, rewindPoint }
167
+ ```
168
+
169
+ ### Explain
170
+
171
+ ```typescript
172
+ import { explainCommit, getCheckpointDetail } from 'sessionlog';
173
+
174
+ // Explain a specific commit
175
+ const info = await explainCommit('HEAD');
176
+ if (info?.detail) {
177
+ console.log(`Checkpoint: ${info.detail.checkpointID}`);
178
+ console.log(`Agent: ${info.detail.agent}`);
179
+ console.log(`Files: ${info.detail.filesTouched.join(', ')}`);
180
+ }
181
+
182
+ // Get checkpoint details by ID
183
+ const detail = await getCheckpointDetail('a3b2c4d5e6f7');
184
+ ```
185
+
186
+ ### Resume
187
+
188
+ ```typescript
189
+ import { discoverResumeInfo, listResumableBranches } from 'sessionlog';
190
+
191
+ // List branches with resumable sessions
192
+ const branches = await listResumableBranches();
193
+ for (const b of branches) {
194
+ console.log(`${b.branch}: session ${b.sessionID}`);
195
+ }
196
+
197
+ // Get resume info for a specific branch
198
+ const info = await discoverResumeInfo('feature/my-branch');
199
+ if (info.success && info.info) {
200
+ console.log(`Resume command: ${info.info.resumeCommand}`);
201
+ }
202
+ ```
203
+
204
+ ### Claude Code Web
205
+
206
+ Configure a repository for automatic sessionlog setup in [Claude Code Web](https://claude.ai/code) sessions.
207
+
208
+ **The problem:** Claude Code Web (ccweb) sessions start with a fresh environment — sessionlog isn't installed, and the ccweb proxy restricts git pushes to only the current working branch, preventing sessionlog from pushing to its `sessionlog/checkpoints/v1` shadow branch.
209
+
210
+ **The solution:** `setup-ccweb` creates a `SessionStart` hook that automatically installs and configures sessionlog on every ccweb session.
211
+
212
+ **CLI usage:**
213
+
214
+ ```bash
215
+ # Run locally in your repository
216
+ sessionlog setup-ccweb
217
+
218
+ # Commit and push the generated .claude/ directory
219
+ git add .claude/
220
+ git commit -m "Add sessionlog ccweb integration"
221
+ git push
222
+ ```
223
+
224
+ This creates two files:
225
+
226
+ - `.claude/settings.json` — registers a `SessionStart` hook that runs on every ccweb session
227
+ - `.claude/scripts/setup-env.sh` — installs sessionlog, enables it, configures GitHub direct-push access, and installs a branch push filter
228
+
229
+ **Options:**
230
+
231
+ ```bash
232
+ # Force overwrite existing setup
233
+ sessionlog setup-ccweb --force
234
+
235
+ # Customize allowed push branch prefixes
236
+ sessionlog setup-ccweb --push-prefixes "sessionlog/ my-prefix/"
237
+ ```
238
+
239
+ **Programmatic usage:**
240
+
241
+ ```typescript
242
+ import { setupCcweb } from 'sessionlog';
243
+
244
+ const result = await setupCcweb({
245
+ cwd: '/path/to/repo',
246
+ force: true,
247
+ pushPrefixes: 'sessionlog/ claude/',
248
+ });
249
+ // result: { success, settingsCreated, scriptCreated, errors }
250
+ ```
251
+
252
+ **Requirements:**
253
+
254
+ - Set `GITHUB_TOKEN` as an environment variable in your ccweb settings (needed for pushing session data to GitHub)
255
+ - Enable **Trusted** network access level in ccweb (needed to download the sessionlog npm package)
256
+
257
+ **What the SessionStart hook does on each ccweb session:**
258
+
259
+ 1. Installs sessionlog via `npm install -g sessionlog`
260
+ 2. Runs `sessionlog enable --agent claude-code --local`
261
+ 3. Configures git to push directly to GitHub using `GITHUB_TOKEN` (bypassing the ccweb proxy)
262
+ 4. Installs a `pre-push` filter that only allows pushes to `sessionlog/` and `claude/` prefixed branches (safety guardrail)
263
+
264
+ **Customizing push prefixes:**
265
+
266
+ The setup script restricts direct pushes to branches matching allowed prefixes. To modify which prefixes are allowed, either pass `--push-prefixes` during setup or edit `ALLOWED_PUSH_PREFIXES` in `.claude/scripts/setup-env.sh` directly.
267
+
268
+ ## Agent System
269
+
270
+ Register and use AI agent integrations:
271
+
272
+ ```typescript
273
+ import {
274
+ registerAgent,
275
+ getAgent,
276
+ detectAgents,
277
+ createClaudeCodeAgent,
278
+ } from 'sessionlog';
279
+
280
+ // Agents auto-register on import. Detect installed agents:
281
+ const agents = await detectAgents('/path/to/repo');
282
+
283
+ // Or get a specific agent:
284
+ const claude = getAgent('claude-code');
285
+ if (claude) {
286
+ const present = await claude.detectPresence('/path/to/repo');
287
+ const transcript = await claude.readTranscript(sessionRef);
288
+ }
289
+ ```
290
+
291
+ ### Supported Agents
292
+
293
+ | Agent | Name | Hook Location |
294
+ |-------|------|---------------|
295
+ | Claude Code | `claude-code` | `.claude/settings.json` |
296
+ | Cursor | `cursor` | `.cursor/hooks.json` |
297
+ | Gemini CLI | `gemini` | `.gemini/settings.json` |
298
+ | OpenCode | `opencode` | `.opencode/plugins/sessionlog.ts` |
299
+
300
+ ## Strategy Engine
301
+
302
+ The manual-commit strategy orchestrates the full checkpoint lifecycle:
303
+
304
+ ```typescript
305
+ import {
306
+ createManualCommitStrategy,
307
+ createSessionStore,
308
+ createCheckpointStore,
309
+ } from 'sessionlog';
310
+
311
+ const strategy = createManualCommitStrategy({
312
+ sessionStore: createSessionStore('/path/to/repo'),
313
+ checkpointStore: createCheckpointStore('/path/to/repo'),
314
+ cwd: '/path/to/repo',
315
+ });
316
+
317
+ // Git hook integration
318
+ await strategy.prepareCommitMsg(msgFile, source, sha);
319
+ await strategy.commitMsg(msgFile);
320
+ await strategy.postCommit();
321
+ await strategy.prePush('origin');
322
+
323
+ // Session management
324
+ await strategy.saveStep(stepContext);
325
+ await strategy.saveTaskStep(taskStepContext);
326
+ ```
327
+
328
+ ## Lifecycle Handler
329
+
330
+ Process agent events through the session state machine:
331
+
332
+ ```typescript
333
+ import {
334
+ createLifecycleHandler,
335
+ createSessionStore,
336
+ createCheckpointStore,
337
+ } from 'sessionlog';
338
+
339
+ const handler = createLifecycleHandler({
340
+ sessionStore: createSessionStore(),
341
+ checkpointStore: createCheckpointStore(),
342
+ });
343
+
344
+ // Dispatch events from agent hooks
345
+ await handler.dispatch(agent, event);
346
+ ```
347
+
348
+ ## Security
349
+
350
+ Redact secrets before storing transcripts:
351
+
352
+ ```typescript
353
+ import { redactJSONL, detectSecrets, shannonEntropy } from 'sessionlog';
354
+
355
+ // Redact a JSONL transcript buffer
356
+ const safe = redactJSONL(transcriptBuffer);
357
+
358
+ // Detect secrets in text
359
+ const secrets = detectSecrets(content);
360
+
361
+ // Check entropy of a string
362
+ const entropy = shannonEntropy('AKIAIOSFODNN7EXAMPLE');
363
+ ```
364
+
365
+ ## Configuration
366
+
367
+ Settings stored in `.sessionlog/`:
368
+
369
+ | File | Purpose |
370
+ |------|---------|
371
+ | `.sessionlog/settings.json` | Team-shared, version-controlled |
372
+ | `.sessionlog/settings.local.json` | Personal overrides, gitignored |
373
+
374
+ ```typescript
375
+ import { loadSettings, saveProjectSettings, isEnabled } from 'sessionlog';
376
+
377
+ const settings = await loadSettings('/path/to/repo');
378
+ // { enabled, strategy, logLevel, skipPushSessions, telemetryEnabled, summarizationEnabled }
379
+
380
+ await saveProjectSettings({ enabled: true, strategy: 'manual-commit' });
381
+
382
+ const enabled = await isEnabled('/path/to/repo');
383
+ ```
384
+
385
+ ### Configuration Options
386
+
387
+ | Option | Type | Default | Purpose |
388
+ |--------|------|---------|---------|
389
+ | `enabled` | boolean | `false` | Toggle Sessionlog functionality |
390
+ | `strategy` | string | `'manual-commit'` | Checkpoint strategy |
391
+ | `logLevel` | string | `'warn'` | Log verbosity (debug/info/warn/error) |
392
+ | `skipPushSessions` | boolean | `false` | Disable auto-push of checkpoints branch |
393
+ | `telemetryEnabled` | boolean | `false` | Anonymous usage analytics |
394
+ | `summarizationEnabled` | boolean | `false` | AI-generated summaries on commit |
395
+
396
+ ## Summarization
397
+
398
+ Generate AI-powered session summaries:
399
+
400
+ ```typescript
401
+ import {
402
+ buildCondensedTranscript,
403
+ buildSummarizationPrompt,
404
+ createClaudeGenerator,
405
+ } from 'sessionlog';
406
+
407
+ // Build a condensed transcript from raw agent output
408
+ const condensed = buildCondensedTranscript(entries);
409
+
410
+ // Generate a summary using Claude
411
+ const generator = createClaudeGenerator({ model: 'claude-sonnet-4-6' });
412
+ const summary = await generator.generate({ condensed, prompt: 'Summarize this session' });
413
+ // { intent, outcome, learnings, friction, openItems }
414
+ ```
415
+
416
+ ## Git Worktrees
417
+
418
+ Sessionlog integrates with git worktrees, providing independent session tracking per worktree without conflicts.
419
+
420
+ ## Development
421
+
422
+ ```bash
423
+ # Install dependencies
424
+ npm install
425
+
426
+ # Build
427
+ npm run build
428
+
429
+ # Run tests
430
+ npm test
431
+
432
+ # Watch mode
433
+ npm run test:watch
434
+
435
+ # Lint
436
+ npm run lint
437
+
438
+ # Format
439
+ npm run format
440
+ ```
441
+
442
+ ## Troubleshooting
443
+
444
+ | Problem | Fix |
445
+ |---------|-----|
446
+ | "Not a git repository" | Navigate to a Git repository first |
447
+ | "Sessionlog is disabled" | Run `enable()` |
448
+ | "No rewind points found" | Work with your agent and commit changes |
449
+ | "shadow branch conflict" | Run `reset({ force: true })` |
450
+
451
+ ## License
452
+
453
+ MIT
@@ -0,0 +1,58 @@
1
+ import js from '@eslint/js';
2
+ import tseslint from 'typescript-eslint';
3
+ import eslintConfigPrettier from 'eslint-config-prettier';
4
+
5
+ export default tseslint.config(
6
+ // Global ignores
7
+ {
8
+ ignores: ['dist/', 'node_modules/', 'references/', '*.config.ts', '*.config.js'],
9
+ },
10
+
11
+ // Base JS recommended rules
12
+ js.configs.recommended,
13
+
14
+ // TypeScript recommended rules
15
+ ...tseslint.configs.recommended,
16
+
17
+ // Project-specific TypeScript settings
18
+ {
19
+ languageOptions: {
20
+ parserOptions: {
21
+ projectService: true,
22
+ tsconfigRootDir: import.meta.dirname,
23
+ },
24
+ },
25
+ rules: {
26
+ '@typescript-eslint/no-unused-vars': [
27
+ 'error',
28
+ {
29
+ argsIgnorePattern: '^_',
30
+ varsIgnorePattern: '^_',
31
+ caughtErrorsIgnorePattern: '^_',
32
+ },
33
+ ],
34
+ '@typescript-eslint/no-explicit-any': 'warn',
35
+ '@typescript-eslint/consistent-type-imports': [
36
+ 'error',
37
+ { prefer: 'type-imports', fixStyle: 'inline-type-imports' },
38
+ ],
39
+ },
40
+ },
41
+
42
+ // Test file overrides — disable projectService since tsconfig excludes __tests__
43
+ {
44
+ files: ['**/__tests__/**/*.ts', '**/*.test.ts', 'tests/**/*.ts'],
45
+ languageOptions: {
46
+ parserOptions: {
47
+ projectService: false,
48
+ },
49
+ },
50
+ rules: {
51
+ '@typescript-eslint/no-explicit-any': 'off',
52
+ '@typescript-eslint/no-non-null-assertion': 'off',
53
+ },
54
+ },
55
+
56
+ // Prettier must be last — disables conflicting formatting rules
57
+ eslintConfigPrettier,
58
+ );