cognitive-core 0.2.1 → 0.2.2

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 (331) hide show
  1. package/dist/atlas.d.ts +10 -0
  2. package/dist/atlas.d.ts.map +1 -1
  3. package/dist/atlas.js +65 -0
  4. package/dist/atlas.js.map +1 -1
  5. package/dist/learning/pipeline.d.ts +4 -31
  6. package/dist/learning/pipeline.d.ts.map +1 -1
  7. package/dist/learning/pipeline.js +12 -64
  8. package/dist/learning/pipeline.js.map +1 -1
  9. package/dist/memory/curated-loader.d.ts +21 -4
  10. package/dist/memory/curated-loader.d.ts.map +1 -1
  11. package/dist/memory/curated-loader.js +53 -16
  12. package/dist/memory/curated-loader.js.map +1 -1
  13. package/dist/memory/index.d.ts +2 -1
  14. package/dist/memory/index.d.ts.map +1 -1
  15. package/dist/memory/index.js +3 -1
  16. package/dist/memory/index.js.map +1 -1
  17. package/dist/memory/playbook.d.ts +6 -0
  18. package/dist/memory/playbook.d.ts.map +1 -1
  19. package/dist/memory/playbook.js +15 -0
  20. package/dist/memory/playbook.js.map +1 -1
  21. package/dist/memory/source-resolver.d.ts +120 -0
  22. package/dist/memory/source-resolver.d.ts.map +1 -0
  23. package/dist/memory/source-resolver.js +300 -0
  24. package/dist/memory/source-resolver.js.map +1 -0
  25. package/dist/types/config.d.ts +141 -0
  26. package/dist/types/config.d.ts.map +1 -1
  27. package/dist/types/config.js +40 -0
  28. package/dist/types/config.js.map +1 -1
  29. package/dist/types/index.d.ts +1 -1
  30. package/dist/types/index.d.ts.map +1 -1
  31. package/dist/types/index.js +1 -1
  32. package/dist/types/index.js.map +1 -1
  33. package/dist/workspace/types.d.ts +12 -54
  34. package/dist/workspace/types.d.ts.map +1 -1
  35. package/dist/workspace/types.js.map +1 -1
  36. package/package.json +2 -2
  37. package/playbooks/compound-engineering/adversarial-review.json +51 -0
  38. package/playbooks/compound-engineering/agent-native-architecture.json +59 -0
  39. package/playbooks/compound-engineering/agent-native-review.json +54 -0
  40. package/playbooks/compound-engineering/api-contract-review.json +52 -0
  41. package/playbooks/compound-engineering/brainstorm-requirements.json +55 -0
  42. package/playbooks/compound-engineering/bug-reproduction.json +62 -0
  43. package/playbooks/compound-engineering/confidence-calibration.json +49 -0
  44. package/playbooks/compound-engineering/correctness-review.json +49 -0
  45. package/playbooks/compound-engineering/data-migration-safety.json +59 -0
  46. package/playbooks/compound-engineering/deployment-verification.json +63 -0
  47. package/playbooks/compound-engineering/error-recovery-patterns.json +53 -0
  48. package/playbooks/compound-engineering/implementation-planning.json +64 -0
  49. package/playbooks/compound-engineering/issue-pattern-analysis.json +53 -0
  50. package/playbooks/compound-engineering/knowledge-compounding.json +63 -0
  51. package/playbooks/compound-engineering/learnings-research.json +54 -0
  52. package/playbooks/compound-engineering/maintainability-review.json +49 -0
  53. package/playbooks/compound-engineering/performance-review.json +54 -0
  54. package/playbooks/compound-engineering/plan-adversarial-review.json +56 -0
  55. package/playbooks/compound-engineering/plan-feasibility-review.json +56 -0
  56. package/playbooks/compound-engineering/project-standards-review.json +52 -0
  57. package/playbooks/compound-engineering/reliability-review.json +53 -0
  58. package/playbooks/compound-engineering/review-orchestration.json +64 -0
  59. package/playbooks/compound-engineering/security-review.json +54 -0
  60. package/playbooks/compound-engineering/systematic-execution.json +64 -0
  61. package/playbooks/compound-engineering/testing-review.json +50 -0
  62. package/src/atlas.ts +96 -0
  63. package/src/memory/curated-loader.ts +69 -16
  64. package/src/memory/index.ts +16 -0
  65. package/src/memory/playbook.ts +19 -0
  66. package/src/memory/source-resolver.ts +422 -0
  67. package/src/types/config.ts +46 -0
  68. package/src/types/index.ts +4 -0
  69. package/src/workspace/types.ts +22 -78
  70. package/tests/integration/curated-sources-e2e.test.ts +502 -0
  71. package/tests/memory/compound-engineering-seed.test.ts +338 -0
  72. package/tests/memory/curated-loader-extended.test.ts +225 -0
  73. package/tests/memory/playbook-quality-validation.test.ts +430 -0
  74. package/tests/memory/source-resolver.test.ts +700 -0
  75. package/.claude/settings.local.json +0 -11
  76. package/dist/learning/llm-extractor.d.ts +0 -88
  77. package/dist/learning/llm-extractor.d.ts.map +0 -1
  78. package/dist/learning/llm-extractor.js +0 -372
  79. package/dist/learning/llm-extractor.js.map +0 -1
  80. package/dist/learning/loop-coordinator.d.ts +0 -61
  81. package/dist/learning/loop-coordinator.d.ts.map +0 -1
  82. package/dist/learning/loop-coordinator.js +0 -96
  83. package/dist/learning/loop-coordinator.js.map +0 -1
  84. package/references/agent-workspace/CLAUDE.md +0 -74
  85. package/references/agent-workspace/README.md +0 -587
  86. package/references/agent-workspace/media/banner.png +0 -0
  87. package/references/agent-workspace/package-lock.json +0 -2061
  88. package/references/agent-workspace/package.json +0 -54
  89. package/references/agent-workspace/src/handle.ts +0 -122
  90. package/references/agent-workspace/src/index.ts +0 -32
  91. package/references/agent-workspace/src/manager.ts +0 -102
  92. package/references/agent-workspace/src/readers/json.ts +0 -71
  93. package/references/agent-workspace/src/readers/markdown.ts +0 -37
  94. package/references/agent-workspace/src/readers/raw.ts +0 -27
  95. package/references/agent-workspace/src/types.ts +0 -68
  96. package/references/agent-workspace/src/validation.ts +0 -93
  97. package/references/agent-workspace/src/writers/json.ts +0 -17
  98. package/references/agent-workspace/src/writers/markdown.ts +0 -27
  99. package/references/agent-workspace/src/writers/raw.ts +0 -22
  100. package/references/agent-workspace/tests/errors.test.ts +0 -652
  101. package/references/agent-workspace/tests/handle.test.ts +0 -144
  102. package/references/agent-workspace/tests/manager.test.ts +0 -124
  103. package/references/agent-workspace/tests/readers.test.ts +0 -205
  104. package/references/agent-workspace/tests/validation.test.ts +0 -196
  105. package/references/agent-workspace/tests/writers.test.ts +0 -108
  106. package/references/agent-workspace/tsconfig.json +0 -20
  107. package/references/agent-workspace/tsup.config.ts +0 -9
  108. package/references/minimem/.claude/settings.json +0 -7
  109. package/references/minimem/.sudocode/issues.jsonl +0 -18
  110. package/references/minimem/.sudocode/specs.jsonl +0 -1
  111. package/references/minimem/CLAUDE.md +0 -310
  112. package/references/minimem/README.md +0 -556
  113. package/references/minimem/claude-plugin/.claude-plugin/plugin.json +0 -10
  114. package/references/minimem/claude-plugin/.mcp.json +0 -7
  115. package/references/minimem/claude-plugin/README.md +0 -158
  116. package/references/minimem/claude-plugin/commands/recall.md +0 -47
  117. package/references/minimem/claude-plugin/commands/remember.md +0 -41
  118. package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +0 -272
  119. package/references/minimem/claude-plugin/hooks/hooks.json +0 -27
  120. package/references/minimem/claude-plugin/hooks/session-end.sh +0 -86
  121. package/references/minimem/claude-plugin/hooks/session-start.sh +0 -85
  122. package/references/minimem/claude-plugin/skills/memory/SKILL.md +0 -108
  123. package/references/minimem/package-lock.json +0 -5373
  124. package/references/minimem/package.json +0 -60
  125. package/references/minimem/scripts/postbuild.js +0 -35
  126. package/references/minimem/src/__tests__/edge-cases.test.ts +0 -371
  127. package/references/minimem/src/__tests__/errors.test.ts +0 -265
  128. package/references/minimem/src/__tests__/helpers.ts +0 -199
  129. package/references/minimem/src/__tests__/internal.test.ts +0 -407
  130. package/references/minimem/src/__tests__/knowledge.test.ts +0 -287
  131. package/references/minimem/src/__tests__/minimem.integration.test.ts +0 -1127
  132. package/references/minimem/src/__tests__/session.test.ts +0 -190
  133. package/references/minimem/src/cli/__tests__/commands.test.ts +0 -759
  134. package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +0 -141
  135. package/references/minimem/src/cli/commands/append.ts +0 -76
  136. package/references/minimem/src/cli/commands/config.ts +0 -262
  137. package/references/minimem/src/cli/commands/conflicts.ts +0 -413
  138. package/references/minimem/src/cli/commands/daemon.ts +0 -169
  139. package/references/minimem/src/cli/commands/index.ts +0 -12
  140. package/references/minimem/src/cli/commands/init.ts +0 -88
  141. package/references/minimem/src/cli/commands/mcp.ts +0 -177
  142. package/references/minimem/src/cli/commands/push-pull.ts +0 -213
  143. package/references/minimem/src/cli/commands/search.ts +0 -158
  144. package/references/minimem/src/cli/commands/status.ts +0 -84
  145. package/references/minimem/src/cli/commands/sync-init.ts +0 -290
  146. package/references/minimem/src/cli/commands/sync.ts +0 -70
  147. package/references/minimem/src/cli/commands/upsert.ts +0 -197
  148. package/references/minimem/src/cli/config.ts +0 -584
  149. package/references/minimem/src/cli/index.ts +0 -264
  150. package/references/minimem/src/cli/shared.ts +0 -161
  151. package/references/minimem/src/cli/sync/__tests__/central.test.ts +0 -152
  152. package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +0 -209
  153. package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +0 -118
  154. package/references/minimem/src/cli/sync/__tests__/detection.test.ts +0 -207
  155. package/references/minimem/src/cli/sync/__tests__/integration.test.ts +0 -476
  156. package/references/minimem/src/cli/sync/__tests__/registry.test.ts +0 -363
  157. package/references/minimem/src/cli/sync/__tests__/state.test.ts +0 -255
  158. package/references/minimem/src/cli/sync/__tests__/validation.test.ts +0 -193
  159. package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +0 -178
  160. package/references/minimem/src/cli/sync/central.ts +0 -292
  161. package/references/minimem/src/cli/sync/conflicts.ts +0 -204
  162. package/references/minimem/src/cli/sync/daemon.ts +0 -407
  163. package/references/minimem/src/cli/sync/detection.ts +0 -138
  164. package/references/minimem/src/cli/sync/index.ts +0 -107
  165. package/references/minimem/src/cli/sync/operations.ts +0 -373
  166. package/references/minimem/src/cli/sync/registry.ts +0 -279
  167. package/references/minimem/src/cli/sync/state.ts +0 -355
  168. package/references/minimem/src/cli/sync/validation.ts +0 -206
  169. package/references/minimem/src/cli/sync/watcher.ts +0 -234
  170. package/references/minimem/src/cli/version.ts +0 -34
  171. package/references/minimem/src/core/index.ts +0 -9
  172. package/references/minimem/src/core/indexer.ts +0 -628
  173. package/references/minimem/src/core/searcher.ts +0 -221
  174. package/references/minimem/src/db/schema.ts +0 -183
  175. package/references/minimem/src/db/sqlite-vec.ts +0 -24
  176. package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +0 -431
  177. package/references/minimem/src/embeddings/batch-gemini.ts +0 -392
  178. package/references/minimem/src/embeddings/batch-openai.ts +0 -409
  179. package/references/minimem/src/embeddings/embeddings.ts +0 -434
  180. package/references/minimem/src/index.ts +0 -109
  181. package/references/minimem/src/internal.ts +0 -299
  182. package/references/minimem/src/minimem.ts +0 -1276
  183. package/references/minimem/src/search/__tests__/hybrid.test.ts +0 -247
  184. package/references/minimem/src/search/graph.ts +0 -234
  185. package/references/minimem/src/search/hybrid.ts +0 -151
  186. package/references/minimem/src/search/search.ts +0 -256
  187. package/references/minimem/src/server/__tests__/mcp.test.ts +0 -341
  188. package/references/minimem/src/server/__tests__/tools.test.ts +0 -364
  189. package/references/minimem/src/server/mcp.ts +0 -326
  190. package/references/minimem/src/server/tools.ts +0 -720
  191. package/references/minimem/src/session.ts +0 -460
  192. package/references/minimem/tsconfig.json +0 -19
  193. package/references/minimem/tsup.config.ts +0 -26
  194. package/references/minimem/vitest.config.ts +0 -24
  195. package/references/sessionlog/.husky/pre-commit +0 -1
  196. package/references/sessionlog/.lintstagedrc.json +0 -4
  197. package/references/sessionlog/.prettierignore +0 -4
  198. package/references/sessionlog/.prettierrc.json +0 -11
  199. package/references/sessionlog/LICENSE +0 -21
  200. package/references/sessionlog/README.md +0 -453
  201. package/references/sessionlog/eslint.config.js +0 -58
  202. package/references/sessionlog/package-lock.json +0 -3672
  203. package/references/sessionlog/package.json +0 -65
  204. package/references/sessionlog/src/__tests__/agent-hooks.test.ts +0 -570
  205. package/references/sessionlog/src/__tests__/agent-registry.test.ts +0 -127
  206. package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +0 -225
  207. package/references/sessionlog/src/__tests__/claude-generator.test.ts +0 -46
  208. package/references/sessionlog/src/__tests__/commit-msg.test.ts +0 -86
  209. package/references/sessionlog/src/__tests__/cursor-agent.test.ts +0 -224
  210. package/references/sessionlog/src/__tests__/e2e-live.test.ts +0 -890
  211. package/references/sessionlog/src/__tests__/event-log.test.ts +0 -183
  212. package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +0 -105
  213. package/references/sessionlog/src/__tests__/gemini-agent.test.ts +0 -375
  214. package/references/sessionlog/src/__tests__/git-hooks.test.ts +0 -78
  215. package/references/sessionlog/src/__tests__/hook-managers.test.ts +0 -121
  216. package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +0 -759
  217. package/references/sessionlog/src/__tests__/opencode-agent.test.ts +0 -338
  218. package/references/sessionlog/src/__tests__/redaction.test.ts +0 -136
  219. package/references/sessionlog/src/__tests__/session-repo.test.ts +0 -353
  220. package/references/sessionlog/src/__tests__/session-store.test.ts +0 -166
  221. package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +0 -466
  222. package/references/sessionlog/src/__tests__/skill-live.test.ts +0 -461
  223. package/references/sessionlog/src/__tests__/summarize.test.ts +0 -348
  224. package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +0 -610
  225. package/references/sessionlog/src/__tests__/task-plan-live.test.ts +0 -632
  226. package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +0 -121
  227. package/references/sessionlog/src/__tests__/types.test.ts +0 -166
  228. package/references/sessionlog/src/__tests__/utils.test.ts +0 -333
  229. package/references/sessionlog/src/__tests__/validation.test.ts +0 -103
  230. package/references/sessionlog/src/__tests__/worktree.test.ts +0 -57
  231. package/references/sessionlog/src/agent/agents/claude-code.ts +0 -1089
  232. package/references/sessionlog/src/agent/agents/cursor.ts +0 -361
  233. package/references/sessionlog/src/agent/agents/gemini-cli.ts +0 -632
  234. package/references/sessionlog/src/agent/agents/opencode.ts +0 -540
  235. package/references/sessionlog/src/agent/registry.ts +0 -143
  236. package/references/sessionlog/src/agent/session-types.ts +0 -113
  237. package/references/sessionlog/src/agent/types.ts +0 -220
  238. package/references/sessionlog/src/cli.ts +0 -597
  239. package/references/sessionlog/src/commands/clean.ts +0 -133
  240. package/references/sessionlog/src/commands/disable.ts +0 -84
  241. package/references/sessionlog/src/commands/doctor.ts +0 -145
  242. package/references/sessionlog/src/commands/enable.ts +0 -202
  243. package/references/sessionlog/src/commands/explain.ts +0 -261
  244. package/references/sessionlog/src/commands/reset.ts +0 -105
  245. package/references/sessionlog/src/commands/resume.ts +0 -180
  246. package/references/sessionlog/src/commands/rewind.ts +0 -195
  247. package/references/sessionlog/src/commands/setup-ccweb.ts +0 -275
  248. package/references/sessionlog/src/commands/status.ts +0 -172
  249. package/references/sessionlog/src/config.ts +0 -165
  250. package/references/sessionlog/src/events/event-log.ts +0 -126
  251. package/references/sessionlog/src/git-operations.ts +0 -558
  252. package/references/sessionlog/src/hooks/git-hooks.ts +0 -165
  253. package/references/sessionlog/src/hooks/lifecycle.ts +0 -391
  254. package/references/sessionlog/src/index.ts +0 -650
  255. package/references/sessionlog/src/security/redaction.ts +0 -283
  256. package/references/sessionlog/src/session/state-machine.ts +0 -452
  257. package/references/sessionlog/src/store/checkpoint-store.ts +0 -509
  258. package/references/sessionlog/src/store/native-store.ts +0 -173
  259. package/references/sessionlog/src/store/provider-types.ts +0 -99
  260. package/references/sessionlog/src/store/session-store.ts +0 -266
  261. package/references/sessionlog/src/strategy/attribution.ts +0 -296
  262. package/references/sessionlog/src/strategy/common.ts +0 -207
  263. package/references/sessionlog/src/strategy/content-overlap.ts +0 -228
  264. package/references/sessionlog/src/strategy/manual-commit.ts +0 -988
  265. package/references/sessionlog/src/strategy/types.ts +0 -279
  266. package/references/sessionlog/src/summarize/claude-generator.ts +0 -115
  267. package/references/sessionlog/src/summarize/summarize.ts +0 -432
  268. package/references/sessionlog/src/types.ts +0 -508
  269. package/references/sessionlog/src/utils/chunk-files.ts +0 -49
  270. package/references/sessionlog/src/utils/commit-message.ts +0 -65
  271. package/references/sessionlog/src/utils/detect-agent.ts +0 -36
  272. package/references/sessionlog/src/utils/hook-managers.ts +0 -125
  273. package/references/sessionlog/src/utils/ide-tags.ts +0 -32
  274. package/references/sessionlog/src/utils/paths.ts +0 -79
  275. package/references/sessionlog/src/utils/preview-rewind.ts +0 -80
  276. package/references/sessionlog/src/utils/rewind-conflict.ts +0 -121
  277. package/references/sessionlog/src/utils/shadow-branch.ts +0 -109
  278. package/references/sessionlog/src/utils/string-utils.ts +0 -46
  279. package/references/sessionlog/src/utils/todo-extract.ts +0 -188
  280. package/references/sessionlog/src/utils/trailers.ts +0 -187
  281. package/references/sessionlog/src/utils/transcript-parse.ts +0 -177
  282. package/references/sessionlog/src/utils/transcript-timestamp.ts +0 -59
  283. package/references/sessionlog/src/utils/tree-ops.ts +0 -219
  284. package/references/sessionlog/src/utils/tty.ts +0 -72
  285. package/references/sessionlog/src/utils/validation.ts +0 -65
  286. package/references/sessionlog/src/utils/worktree.ts +0 -58
  287. package/references/sessionlog/src/wire-types.ts +0 -59
  288. package/references/sessionlog/templates/setup-env.sh +0 -153
  289. package/references/sessionlog/tsconfig.json +0 -18
  290. package/references/sessionlog/vitest.config.ts +0 -12
  291. package/references/skill-tree/.claude/settings.json +0 -6
  292. package/references/skill-tree/.sudocode/issues.jsonl +0 -19
  293. package/references/skill-tree/.sudocode/specs.jsonl +0 -3
  294. package/references/skill-tree/CLAUDE.md +0 -126
  295. package/references/skill-tree/README.md +0 -372
  296. package/references/skill-tree/docs/GAPS_v1.md +0 -221
  297. package/references/skill-tree/docs/INTEGRATION_PLAN.md +0 -467
  298. package/references/skill-tree/docs/TODOS.md +0 -91
  299. package/references/skill-tree/docs/anthropic_skill_guide.md +0 -1364
  300. package/references/skill-tree/docs/design/federated-skill-trees.md +0 -524
  301. package/references/skill-tree/docs/design/multi-agent-sync.md +0 -759
  302. package/references/skill-tree/docs/scraper/BRAINSTORM.md +0 -583
  303. package/references/skill-tree/docs/scraper/POC_PLAN.md +0 -420
  304. package/references/skill-tree/docs/scraper/README.md +0 -170
  305. package/references/skill-tree/examples/basic-usage.ts +0 -164
  306. package/references/skill-tree/package-lock.json +0 -1852
  307. package/references/skill-tree/package.json +0 -66
  308. package/references/skill-tree/scraper/README.md +0 -123
  309. package/references/skill-tree/scraper/docs/DESIGN.md +0 -683
  310. package/references/skill-tree/scraper/docs/PLAN.md +0 -336
  311. package/references/skill-tree/scraper/drizzle.config.ts +0 -10
  312. package/references/skill-tree/scraper/package-lock.json +0 -6329
  313. package/references/skill-tree/scraper/package.json +0 -68
  314. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +0 -7
  315. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +0 -7
  316. package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +0 -27
  317. package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +0 -21
  318. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +0 -54
  319. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +0 -24
  320. package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +0 -93
  321. package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +0 -22
  322. package/references/skill-tree/scraper/tsup.config.ts +0 -14
  323. package/references/skill-tree/scraper/vitest.config.ts +0 -17
  324. package/references/skill-tree/scripts/convert-to-vitest.ts +0 -166
  325. package/references/skill-tree/skills/skill-writer/SKILL.md +0 -339
  326. package/references/skill-tree/skills/skill-writer/references/examples.md +0 -326
  327. package/references/skill-tree/skills/skill-writer/references/patterns.md +0 -210
  328. package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +0 -123
  329. package/references/skill-tree/test/run-all.ts +0 -106
  330. package/references/skill-tree/test/utils.ts +0 -128
  331. package/references/skill-tree/vitest.config.ts +0 -16
@@ -1,453 +0,0 @@
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
@@ -1,58 +0,0 @@
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
- );