cognitive-core 0.1.0 → 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 (972) hide show
  1. package/.claude/settings.json +88 -0
  2. package/.claude/settings.local.json +11 -0
  3. package/.entire/settings.json +4 -0
  4. package/CLAUDE.md +233 -0
  5. package/README.md +841 -255
  6. package/dist/atlas.d.ts +150 -12
  7. package/dist/atlas.d.ts.map +1 -1
  8. package/dist/atlas.js +391 -31
  9. package/dist/atlas.js.map +1 -1
  10. package/dist/bin/cli-utils.d.ts +37 -0
  11. package/dist/bin/cli-utils.d.ts.map +1 -0
  12. package/dist/bin/cli-utils.js +176 -0
  13. package/dist/bin/cli-utils.js.map +1 -0
  14. package/dist/bin/cognitive-core.d.ts +2 -12
  15. package/dist/bin/cognitive-core.d.ts.map +1 -1
  16. package/dist/bin/cognitive-core.js +76 -351
  17. package/dist/bin/cognitive-core.js.map +1 -1
  18. package/dist/bin/commands/kb.d.ts +6 -0
  19. package/dist/bin/commands/kb.d.ts.map +1 -0
  20. package/dist/bin/commands/kb.js +240 -0
  21. package/dist/bin/commands/kb.js.map +1 -0
  22. package/dist/bin/commands/learn.d.ts +6 -0
  23. package/dist/bin/commands/learn.d.ts.map +1 -0
  24. package/dist/bin/commands/learn.js +91 -0
  25. package/dist/bin/commands/learn.js.map +1 -0
  26. package/dist/bin/commands/legacy.d.ts +12 -0
  27. package/dist/bin/commands/legacy.d.ts.map +1 -0
  28. package/dist/bin/commands/legacy.js +142 -0
  29. package/dist/bin/commands/legacy.js.map +1 -0
  30. package/dist/bin/commands/run.d.ts +3 -0
  31. package/dist/bin/commands/run.d.ts.map +1 -0
  32. package/dist/bin/commands/run.js +99 -0
  33. package/dist/bin/commands/run.js.map +1 -0
  34. package/dist/bin/commands/sessions.d.ts +9 -0
  35. package/dist/bin/commands/sessions.d.ts.map +1 -0
  36. package/dist/bin/commands/sessions.js +183 -0
  37. package/dist/bin/commands/sessions.js.map +1 -0
  38. package/dist/bin/commands/skills.d.ts +6 -0
  39. package/dist/bin/commands/skills.d.ts.map +1 -0
  40. package/dist/bin/commands/skills.js +135 -0
  41. package/dist/bin/commands/skills.js.map +1 -0
  42. package/dist/embeddings/index.d.ts +1 -0
  43. package/dist/embeddings/index.d.ts.map +1 -1
  44. package/dist/embeddings/index.js +2 -0
  45. package/dist/embeddings/index.js.map +1 -1
  46. package/dist/embeddings/inverted-index.d.ts +47 -0
  47. package/dist/embeddings/inverted-index.d.ts.map +1 -0
  48. package/dist/embeddings/inverted-index.js +122 -0
  49. package/dist/embeddings/inverted-index.js.map +1 -0
  50. package/dist/embeddings/manager.d.ts +3 -1
  51. package/dist/embeddings/manager.d.ts.map +1 -1
  52. package/dist/embeddings/manager.js +12 -7
  53. package/dist/embeddings/manager.js.map +1 -1
  54. package/dist/embeddings/provider.d.ts.map +1 -1
  55. package/dist/embeddings/provider.js +6 -3
  56. package/dist/embeddings/provider.js.map +1 -1
  57. package/dist/embeddings/vector-store.d.ts +7 -3
  58. package/dist/embeddings/vector-store.d.ts.map +1 -1
  59. package/dist/embeddings/vector-store.js +22 -6
  60. package/dist/embeddings/vector-store.js.map +1 -1
  61. package/dist/factory.d.ts +11 -12
  62. package/dist/factory.d.ts.map +1 -1
  63. package/dist/factory.js +20 -7
  64. package/dist/factory.js.map +1 -1
  65. package/dist/index.d.ts +11 -8
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +71 -8
  68. package/dist/index.js.map +1 -1
  69. package/dist/learning/analyzer.d.ts.map +1 -1
  70. package/dist/learning/analyzer.js +17 -35
  71. package/dist/learning/analyzer.js.map +1 -1
  72. package/dist/learning/energy-evaluator.d.ts +128 -0
  73. package/dist/learning/energy-evaluator.d.ts.map +1 -0
  74. package/dist/learning/energy-evaluator.js +175 -0
  75. package/dist/learning/energy-evaluator.js.map +1 -0
  76. package/dist/learning/healing-orchestrator.d.ts +182 -0
  77. package/dist/learning/healing-orchestrator.d.ts.map +1 -0
  78. package/dist/learning/healing-orchestrator.js +250 -0
  79. package/dist/learning/healing-orchestrator.js.map +1 -0
  80. package/dist/learning/index.d.ts +11 -2
  81. package/dist/learning/index.d.ts.map +1 -1
  82. package/dist/learning/index.js +20 -3
  83. package/dist/learning/index.js.map +1 -1
  84. package/dist/learning/instant-loop.d.ts +87 -0
  85. package/dist/learning/instant-loop.d.ts.map +1 -0
  86. package/dist/learning/instant-loop.js +264 -0
  87. package/dist/learning/instant-loop.js.map +1 -0
  88. package/dist/learning/knowledge-extractor.d.ts +56 -0
  89. package/dist/learning/knowledge-extractor.d.ts.map +1 -0
  90. package/dist/learning/knowledge-extractor.js +336 -0
  91. package/dist/learning/knowledge-extractor.js.map +1 -0
  92. package/dist/learning/loop-coordinator.d.ts +61 -0
  93. package/dist/learning/loop-coordinator.d.ts.map +1 -0
  94. package/dist/learning/loop-coordinator.js +96 -0
  95. package/dist/learning/loop-coordinator.js.map +1 -0
  96. package/dist/learning/maintenance-scheduler.d.ts +141 -0
  97. package/dist/learning/maintenance-scheduler.d.ts.map +1 -0
  98. package/dist/learning/maintenance-scheduler.js +186 -0
  99. package/dist/learning/maintenance-scheduler.js.map +1 -0
  100. package/dist/learning/meta-learner.d.ts +7 -0
  101. package/dist/learning/meta-learner.d.ts.map +1 -1
  102. package/dist/learning/meta-learner.js +47 -21
  103. package/dist/learning/meta-learner.js.map +1 -1
  104. package/dist/learning/pipeline.d.ts +55 -4
  105. package/dist/learning/pipeline.d.ts.map +1 -1
  106. package/dist/learning/pipeline.js +134 -16
  107. package/dist/learning/pipeline.js.map +1 -1
  108. package/dist/learning/reflexion-generator.d.ts +64 -0
  109. package/dist/learning/reflexion-generator.d.ts.map +1 -0
  110. package/dist/learning/reflexion-generator.js +194 -0
  111. package/dist/learning/reflexion-generator.js.map +1 -0
  112. package/dist/learning/team-ingester.d.ts +152 -0
  113. package/dist/learning/team-ingester.d.ts.map +1 -0
  114. package/dist/learning/team-ingester.js +333 -0
  115. package/dist/learning/team-ingester.js.map +1 -0
  116. package/dist/learning/team-meta-learner.d.ts +50 -0
  117. package/dist/learning/team-meta-learner.d.ts.map +1 -0
  118. package/dist/learning/team-meta-learner.js +417 -0
  119. package/dist/learning/team-meta-learner.js.map +1 -0
  120. package/dist/learning/team-pipeline.d.ts +76 -0
  121. package/dist/learning/team-pipeline.d.ts.map +1 -0
  122. package/dist/learning/team-pipeline.js +266 -0
  123. package/dist/learning/team-pipeline.js.map +1 -0
  124. package/dist/learning/trajectory-sources/dataclaw.d.ts +41 -0
  125. package/dist/learning/trajectory-sources/dataclaw.d.ts.map +1 -0
  126. package/dist/learning/trajectory-sources/dataclaw.js +330 -0
  127. package/dist/learning/trajectory-sources/dataclaw.js.map +1 -0
  128. package/dist/learning/trajectory-sources/entire.d.ts +31 -0
  129. package/dist/learning/trajectory-sources/entire.d.ts.map +1 -0
  130. package/dist/learning/trajectory-sources/entire.js +189 -0
  131. package/dist/learning/trajectory-sources/entire.js.map +1 -0
  132. package/dist/learning/trajectory-sources/file.d.ts +23 -0
  133. package/dist/learning/trajectory-sources/file.d.ts.map +1 -0
  134. package/dist/learning/trajectory-sources/file.js +101 -0
  135. package/dist/learning/trajectory-sources/file.js.map +1 -0
  136. package/dist/learning/trajectory-sources/huggingface.d.ts +36 -0
  137. package/dist/learning/trajectory-sources/huggingface.d.ts.map +1 -0
  138. package/dist/learning/trajectory-sources/huggingface.js +157 -0
  139. package/dist/learning/trajectory-sources/huggingface.js.map +1 -0
  140. package/dist/learning/trajectory-sources/in-memory.d.ts +21 -0
  141. package/dist/learning/trajectory-sources/in-memory.d.ts.map +1 -0
  142. package/dist/learning/trajectory-sources/in-memory.js +43 -0
  143. package/dist/learning/trajectory-sources/in-memory.js.map +1 -0
  144. package/dist/learning/trajectory-sources/index.d.ts +7 -0
  145. package/dist/learning/trajectory-sources/index.d.ts.map +1 -0
  146. package/dist/learning/trajectory-sources/index.js +7 -0
  147. package/dist/learning/trajectory-sources/index.js.map +1 -0
  148. package/dist/learning/trajectory-sources/pipeline.d.ts +24 -0
  149. package/dist/learning/trajectory-sources/pipeline.d.ts.map +1 -0
  150. package/dist/learning/trajectory-sources/pipeline.js +47 -0
  151. package/dist/learning/trajectory-sources/pipeline.js.map +1 -0
  152. package/dist/learning/unified-pipeline.d.ts +281 -0
  153. package/dist/learning/unified-pipeline.d.ts.map +1 -0
  154. package/dist/learning/unified-pipeline.js +637 -0
  155. package/dist/learning/unified-pipeline.js.map +1 -0
  156. package/dist/memory/candidate-retrieval.d.ts +43 -0
  157. package/dist/memory/candidate-retrieval.d.ts.map +1 -0
  158. package/dist/memory/candidate-retrieval.js +41 -0
  159. package/dist/memory/candidate-retrieval.js.map +1 -0
  160. package/dist/memory/causal-store.d.ts +97 -0
  161. package/dist/memory/causal-store.d.ts.map +1 -0
  162. package/dist/memory/causal-store.js +209 -0
  163. package/dist/memory/causal-store.js.map +1 -0
  164. package/dist/memory/coherence.d.ts +71 -0
  165. package/dist/memory/coherence.d.ts.map +1 -0
  166. package/dist/memory/coherence.js +176 -0
  167. package/dist/memory/coherence.js.map +1 -0
  168. package/dist/memory/experience.d.ts +39 -6
  169. package/dist/memory/experience.d.ts.map +1 -1
  170. package/dist/memory/experience.js +193 -49
  171. package/dist/memory/experience.js.map +1 -1
  172. package/dist/memory/graph-layers/base.d.ts +29 -0
  173. package/dist/memory/graph-layers/base.d.ts.map +1 -0
  174. package/dist/memory/graph-layers/base.js +143 -0
  175. package/dist/memory/graph-layers/base.js.map +1 -0
  176. package/dist/memory/graph-layers/causal.d.ts +14 -0
  177. package/dist/memory/graph-layers/causal.d.ts.map +1 -0
  178. package/dist/memory/graph-layers/causal.js +14 -0
  179. package/dist/memory/graph-layers/causal.js.map +1 -0
  180. package/dist/memory/graph-layers/entity.d.ts +14 -0
  181. package/dist/memory/graph-layers/entity.d.ts.map +1 -0
  182. package/dist/memory/graph-layers/entity.js +14 -0
  183. package/dist/memory/graph-layers/entity.js.map +1 -0
  184. package/dist/memory/graph-layers/index.d.ts +6 -0
  185. package/dist/memory/graph-layers/index.d.ts.map +1 -0
  186. package/dist/memory/graph-layers/index.js +6 -0
  187. package/dist/memory/graph-layers/index.js.map +1 -0
  188. package/dist/memory/graph-layers/semantic.d.ts +14 -0
  189. package/dist/memory/graph-layers/semantic.d.ts.map +1 -0
  190. package/dist/memory/graph-layers/semantic.js +14 -0
  191. package/dist/memory/graph-layers/semantic.js.map +1 -0
  192. package/dist/memory/graph-layers/temporal.d.ts +14 -0
  193. package/dist/memory/graph-layers/temporal.d.ts.map +1 -0
  194. package/dist/memory/graph-layers/temporal.js +14 -0
  195. package/dist/memory/graph-layers/temporal.js.map +1 -0
  196. package/dist/memory/index.d.ts +15 -0
  197. package/dist/memory/index.d.ts.map +1 -1
  198. package/dist/memory/index.js +22 -0
  199. package/dist/memory/index.js.map +1 -1
  200. package/dist/memory/knowledge-bank.d.ts +234 -0
  201. package/dist/memory/knowledge-bank.d.ts.map +1 -0
  202. package/dist/memory/knowledge-bank.js +1048 -0
  203. package/dist/memory/knowledge-bank.js.map +1 -0
  204. package/dist/memory/knowledge-defrag.d.ts +49 -0
  205. package/dist/memory/knowledge-defrag.d.ts.map +1 -0
  206. package/dist/memory/knowledge-defrag.js +257 -0
  207. package/dist/memory/knowledge-defrag.js.map +1 -0
  208. package/dist/memory/knowledge-graph.d.ts +41 -0
  209. package/dist/memory/knowledge-graph.d.ts.map +1 -0
  210. package/dist/memory/knowledge-graph.js +273 -0
  211. package/dist/memory/knowledge-graph.js.map +1 -0
  212. package/dist/memory/meta.d.ts +7 -8
  213. package/dist/memory/meta.d.ts.map +1 -1
  214. package/dist/memory/meta.js +73 -79
  215. package/dist/memory/meta.js.map +1 -1
  216. package/dist/memory/playbook.d.ts +26 -9
  217. package/dist/memory/playbook.d.ts.map +1 -1
  218. package/dist/memory/playbook.js +198 -74
  219. package/dist/memory/playbook.js.map +1 -1
  220. package/dist/memory/reasoning-bank.d.ts +130 -0
  221. package/dist/memory/reasoning-bank.d.ts.map +1 -0
  222. package/dist/memory/reasoning-bank.js +342 -0
  223. package/dist/memory/reasoning-bank.js.map +1 -0
  224. package/dist/memory/reflexion.d.ts +59 -0
  225. package/dist/memory/reflexion.d.ts.map +1 -0
  226. package/dist/memory/reflexion.js +96 -0
  227. package/dist/memory/reflexion.js.map +1 -0
  228. package/dist/memory/search-provider.d.ts +31 -0
  229. package/dist/memory/search-provider.d.ts.map +1 -0
  230. package/dist/memory/search-provider.js +2 -0
  231. package/dist/memory/search-provider.js.map +1 -0
  232. package/dist/memory/search-providers/index.d.ts +3 -0
  233. package/dist/memory/search-providers/index.d.ts.map +1 -0
  234. package/dist/memory/search-providers/index.js +3 -0
  235. package/dist/memory/search-providers/index.js.map +1 -0
  236. package/dist/memory/search-providers/minimem.d.ts +43 -0
  237. package/dist/memory/search-providers/minimem.d.ts.map +1 -0
  238. package/dist/memory/search-providers/minimem.js +56 -0
  239. package/dist/memory/search-providers/minimem.js.map +1 -0
  240. package/dist/memory/search-providers/text-similarity.d.ts +15 -0
  241. package/dist/memory/search-providers/text-similarity.d.ts.map +1 -0
  242. package/dist/memory/search-providers/text-similarity.js +21 -0
  243. package/dist/memory/search-providers/text-similarity.js.map +1 -0
  244. package/dist/memory/skill-exporter.d.ts +75 -0
  245. package/dist/memory/skill-exporter.d.ts.map +1 -0
  246. package/dist/memory/skill-exporter.js +248 -0
  247. package/dist/memory/skill-exporter.js.map +1 -0
  248. package/dist/memory/system.d.ts +20 -3
  249. package/dist/memory/system.d.ts.map +1 -1
  250. package/dist/memory/system.js +61 -11
  251. package/dist/memory/system.js.map +1 -1
  252. package/dist/memory/team-experience.d.ts +298 -0
  253. package/dist/memory/team-experience.d.ts.map +1 -0
  254. package/dist/memory/team-experience.js +355 -0
  255. package/dist/memory/team-experience.js.map +1 -0
  256. package/dist/memory/temporal-compressor.d.ts +126 -0
  257. package/dist/memory/temporal-compressor.d.ts.map +1 -0
  258. package/dist/memory/temporal-compressor.js +335 -0
  259. package/dist/memory/temporal-compressor.js.map +1 -0
  260. package/dist/persistence/index.d.ts +11 -0
  261. package/dist/persistence/index.d.ts.map +1 -0
  262. package/dist/persistence/index.js +11 -0
  263. package/dist/persistence/index.js.map +1 -0
  264. package/dist/persistence/migrator.d.ts +40 -0
  265. package/dist/persistence/migrator.d.ts.map +1 -0
  266. package/dist/persistence/migrator.js +238 -0
  267. package/dist/persistence/migrator.js.map +1 -0
  268. package/dist/persistence/serializers.d.ts +45 -0
  269. package/dist/persistence/serializers.d.ts.map +1 -0
  270. package/dist/persistence/serializers.js +80 -0
  271. package/dist/persistence/serializers.js.map +1 -0
  272. package/dist/persistence/sqlite-persistence.d.ts +228 -0
  273. package/dist/persistence/sqlite-persistence.d.ts.map +1 -0
  274. package/dist/persistence/sqlite-persistence.js +588 -0
  275. package/dist/persistence/sqlite-persistence.js.map +1 -0
  276. package/dist/runtime/backends/acp-protocol.d.ts +49 -0
  277. package/dist/runtime/backends/acp-protocol.d.ts.map +1 -0
  278. package/dist/runtime/backends/acp-protocol.js +166 -0
  279. package/dist/runtime/backends/acp-protocol.js.map +1 -0
  280. package/dist/runtime/backends/acp.d.ts +26 -26
  281. package/dist/runtime/backends/acp.d.ts.map +1 -1
  282. package/dist/runtime/backends/acp.js +32 -156
  283. package/dist/runtime/backends/acp.js.map +1 -1
  284. package/dist/runtime/backends/index.d.ts +3 -1
  285. package/dist/runtime/backends/index.d.ts.map +1 -1
  286. package/dist/runtime/backends/index.js +3 -1
  287. package/dist/runtime/backends/index.js.map +1 -1
  288. package/dist/runtime/backends/macro-agent.d.ts +104 -0
  289. package/dist/runtime/backends/macro-agent.d.ts.map +1 -0
  290. package/dist/runtime/backends/macro-agent.js +107 -0
  291. package/dist/runtime/backends/macro-agent.js.map +1 -0
  292. package/dist/runtime/compute-provider.d.ts +87 -0
  293. package/dist/runtime/compute-provider.d.ts.map +1 -0
  294. package/dist/runtime/compute-provider.js +87 -0
  295. package/dist/runtime/compute-provider.js.map +1 -0
  296. package/dist/runtime/flows/learning.d.ts +10 -12
  297. package/dist/runtime/flows/learning.d.ts.map +1 -1
  298. package/dist/runtime/flows/learning.js +10 -23
  299. package/dist/runtime/flows/learning.js.map +1 -1
  300. package/dist/runtime/index.d.ts +3 -2
  301. package/dist/runtime/index.d.ts.map +1 -1
  302. package/dist/runtime/index.js +3 -1
  303. package/dist/runtime/index.js.map +1 -1
  304. package/dist/runtime/manager.d.ts +37 -4
  305. package/dist/runtime/manager.d.ts.map +1 -1
  306. package/dist/runtime/manager.js +139 -20
  307. package/dist/runtime/manager.js.map +1 -1
  308. package/dist/runtime/types.d.ts +38 -0
  309. package/dist/runtime/types.d.ts.map +1 -1
  310. package/dist/search/evaluator.d.ts +7 -0
  311. package/dist/search/evaluator.d.ts.map +1 -1
  312. package/dist/search/evaluator.js +24 -4
  313. package/dist/search/evaluator.js.map +1 -1
  314. package/dist/search/index.d.ts +2 -0
  315. package/dist/search/index.d.ts.map +1 -1
  316. package/dist/search/index.js +4 -0
  317. package/dist/search/index.js.map +1 -1
  318. package/dist/search/moe-gate.d.ts +124 -0
  319. package/dist/search/moe-gate.d.ts.map +1 -0
  320. package/dist/search/moe-gate.js +234 -0
  321. package/dist/search/moe-gate.js.map +1 -0
  322. package/dist/search/refinement-loop.d.ts +17 -0
  323. package/dist/search/refinement-loop.d.ts.map +1 -1
  324. package/dist/search/refinement-loop.js +77 -6
  325. package/dist/search/refinement-loop.js.map +1 -1
  326. package/dist/search/refinement-types.d.ts +2 -2
  327. package/dist/search/router.d.ts +32 -2
  328. package/dist/search/router.d.ts.map +1 -1
  329. package/dist/search/router.js +87 -4
  330. package/dist/search/router.js.map +1 -1
  331. package/dist/search/team-router.d.ts +91 -0
  332. package/dist/search/team-router.d.ts.map +1 -0
  333. package/dist/search/team-router.js +315 -0
  334. package/dist/search/team-router.js.map +1 -0
  335. package/dist/session-bank/git-reader.d.ts +44 -0
  336. package/dist/session-bank/git-reader.d.ts.map +1 -0
  337. package/dist/session-bank/git-reader.js +172 -0
  338. package/dist/session-bank/git-reader.js.map +1 -0
  339. package/dist/session-bank/index.d.ts +5 -0
  340. package/dist/session-bank/index.d.ts.map +1 -0
  341. package/dist/session-bank/index.js +4 -0
  342. package/dist/session-bank/index.js.map +1 -0
  343. package/dist/session-bank/parser.d.ts +50 -0
  344. package/dist/session-bank/parser.d.ts.map +1 -0
  345. package/dist/session-bank/parser.js +338 -0
  346. package/dist/session-bank/parser.js.map +1 -0
  347. package/dist/session-bank/session-bank.d.ts +40 -0
  348. package/dist/session-bank/session-bank.d.ts.map +1 -0
  349. package/dist/session-bank/session-bank.js +347 -0
  350. package/dist/session-bank/session-bank.js.map +1 -0
  351. package/dist/session-bank/types.d.ts +132 -0
  352. package/dist/session-bank/types.d.ts.map +1 -0
  353. package/dist/session-bank/types.js +7 -0
  354. package/dist/session-bank/types.js.map +1 -0
  355. package/dist/surfacing/index.d.ts +4 -0
  356. package/dist/surfacing/index.d.ts.map +1 -1
  357. package/dist/surfacing/index.js +3 -0
  358. package/dist/surfacing/index.js.map +1 -1
  359. package/dist/surfacing/publisher.d.ts +22 -0
  360. package/dist/surfacing/publisher.d.ts.map +1 -0
  361. package/dist/surfacing/publisher.js +9 -0
  362. package/dist/surfacing/publisher.js.map +1 -0
  363. package/dist/surfacing/skill-library.d.ts +12 -0
  364. package/dist/surfacing/skill-library.d.ts.map +1 -1
  365. package/dist/surfacing/skill-library.js +26 -0
  366. package/dist/surfacing/skill-library.js.map +1 -1
  367. package/dist/surfacing/skill-publisher.d.ts +43 -0
  368. package/dist/surfacing/skill-publisher.d.ts.map +1 -0
  369. package/dist/surfacing/skill-publisher.js +169 -0
  370. package/dist/surfacing/skill-publisher.js.map +1 -0
  371. package/dist/surfacing/sqlite-storage-adapter.d.ts +42 -0
  372. package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -0
  373. package/dist/surfacing/sqlite-storage-adapter.js +199 -0
  374. package/dist/surfacing/sqlite-storage-adapter.js.map +1 -0
  375. package/dist/surfacing/team-skill-library.d.ts +180 -0
  376. package/dist/surfacing/team-skill-library.d.ts.map +1 -0
  377. package/dist/surfacing/team-skill-library.js +384 -0
  378. package/dist/surfacing/team-skill-library.js.map +1 -0
  379. package/dist/types/config.d.ts +1318 -44
  380. package/dist/types/config.d.ts.map +1 -1
  381. package/dist/types/config.js +243 -0
  382. package/dist/types/config.js.map +1 -1
  383. package/dist/types/dataclaw.d.ts +286 -0
  384. package/dist/types/dataclaw.d.ts.map +1 -0
  385. package/dist/types/dataclaw.js +84 -0
  386. package/dist/types/dataclaw.js.map +1 -0
  387. package/dist/types/index.d.ts +9 -2
  388. package/dist/types/index.d.ts.map +1 -1
  389. package/dist/types/index.js +13 -1
  390. package/dist/types/index.js.map +1 -1
  391. package/dist/types/knowledge-graph.d.ts +148 -0
  392. package/dist/types/knowledge-graph.d.ts.map +1 -0
  393. package/dist/types/knowledge-graph.js +40 -0
  394. package/dist/types/knowledge-graph.js.map +1 -0
  395. package/dist/types/knowledge.d.ts +280 -0
  396. package/dist/types/knowledge.d.ts.map +1 -0
  397. package/dist/types/knowledge.js +191 -0
  398. package/dist/types/knowledge.js.map +1 -0
  399. package/dist/types/memory.d.ts +52 -0
  400. package/dist/types/memory.d.ts.map +1 -1
  401. package/dist/types/memory.js +13 -0
  402. package/dist/types/memory.js.map +1 -1
  403. package/dist/types/playbook.d.ts +4 -0
  404. package/dist/types/playbook.d.ts.map +1 -1
  405. package/dist/types/playbook.js.map +1 -1
  406. package/dist/types/team-meta.d.ts +160 -0
  407. package/dist/types/team-meta.d.ts.map +1 -0
  408. package/dist/types/team-meta.js +42 -0
  409. package/dist/types/team-meta.js.map +1 -0
  410. package/dist/types/team-playbook.d.ts +276 -0
  411. package/dist/types/team-playbook.d.ts.map +1 -0
  412. package/dist/types/team-playbook.js +85 -0
  413. package/dist/types/team-playbook.js.map +1 -0
  414. package/dist/types/team-trajectory.d.ts +305 -0
  415. package/dist/types/team-trajectory.d.ts.map +1 -0
  416. package/dist/types/team-trajectory.js +304 -0
  417. package/dist/types/team-trajectory.js.map +1 -0
  418. package/dist/types/trajectory-source.d.ts +39 -0
  419. package/dist/types/trajectory-source.d.ts.map +1 -0
  420. package/dist/types/trajectory-source.js +2 -0
  421. package/dist/types/trajectory-source.js.map +1 -0
  422. package/dist/utils/error-classifier.d.ts +30 -0
  423. package/dist/utils/error-classifier.d.ts.map +1 -0
  424. package/dist/utils/error-classifier.js +85 -0
  425. package/dist/utils/error-classifier.js.map +1 -0
  426. package/dist/utils/frontmatter.d.ts +34 -0
  427. package/dist/utils/frontmatter.d.ts.map +1 -0
  428. package/dist/utils/frontmatter.js +93 -0
  429. package/dist/utils/frontmatter.js.map +1 -0
  430. package/dist/utils/index.d.ts +4 -0
  431. package/dist/utils/index.d.ts.map +1 -1
  432. package/dist/utils/index.js +4 -0
  433. package/dist/utils/index.js.map +1 -1
  434. package/dist/utils/partitioned-store.d.ts +93 -0
  435. package/dist/utils/partitioned-store.d.ts.map +1 -0
  436. package/dist/utils/partitioned-store.js +251 -0
  437. package/dist/utils/partitioned-store.js.map +1 -0
  438. package/dist/utils/trajectory-helpers.d.ts +39 -0
  439. package/dist/utils/trajectory-helpers.d.ts.map +1 -0
  440. package/dist/utils/trajectory-helpers.js +57 -0
  441. package/dist/utils/trajectory-helpers.js.map +1 -0
  442. package/dist/workspace/index.d.ts +6 -0
  443. package/dist/workspace/index.d.ts.map +1 -0
  444. package/dist/workspace/index.js +11 -0
  445. package/dist/workspace/index.js.map +1 -0
  446. package/dist/workspace/runner.d.ts +49 -0
  447. package/dist/workspace/runner.d.ts.map +1 -0
  448. package/dist/workspace/runner.js +219 -0
  449. package/dist/workspace/runner.js.map +1 -0
  450. package/dist/workspace/skill-converter.d.ts +18 -0
  451. package/dist/workspace/skill-converter.d.ts.map +1 -0
  452. package/dist/workspace/skill-converter.js +257 -0
  453. package/dist/workspace/skill-converter.js.map +1 -0
  454. package/dist/workspace/templates/index.d.ts +11 -0
  455. package/dist/workspace/templates/index.d.ts.map +1 -0
  456. package/dist/workspace/templates/index.js +21 -0
  457. package/dist/workspace/templates/index.js.map +1 -0
  458. package/dist/workspace/templates/knowledge-defrag.d.ts +25 -0
  459. package/dist/workspace/templates/knowledge-defrag.d.ts.map +1 -0
  460. package/dist/workspace/templates/knowledge-defrag.js +154 -0
  461. package/dist/workspace/templates/knowledge-defrag.js.map +1 -0
  462. package/dist/workspace/templates/knowledge-extraction.d.ts +25 -0
  463. package/dist/workspace/templates/knowledge-extraction.d.ts.map +1 -0
  464. package/dist/workspace/templates/knowledge-extraction.js +246 -0
  465. package/dist/workspace/templates/knowledge-extraction.js.map +1 -0
  466. package/dist/workspace/templates/meta-reflection.d.ts +47 -0
  467. package/dist/workspace/templates/meta-reflection.d.ts.map +1 -0
  468. package/dist/workspace/templates/meta-reflection.js +135 -0
  469. package/dist/workspace/templates/meta-reflection.js.map +1 -0
  470. package/dist/workspace/templates/playbook-extraction.d.ts +20 -0
  471. package/dist/workspace/templates/playbook-extraction.d.ts.map +1 -0
  472. package/dist/workspace/templates/playbook-extraction.js +189 -0
  473. package/dist/workspace/templates/playbook-extraction.js.map +1 -0
  474. package/dist/workspace/templates/refinement-analysis.d.ts +31 -0
  475. package/dist/workspace/templates/refinement-analysis.d.ts.map +1 -0
  476. package/dist/workspace/templates/refinement-analysis.js +107 -0
  477. package/dist/workspace/templates/refinement-analysis.js.map +1 -0
  478. package/dist/workspace/templates/solution-evaluation.d.ts +21 -0
  479. package/dist/workspace/templates/solution-evaluation.d.ts.map +1 -0
  480. package/dist/workspace/templates/solution-evaluation.js +131 -0
  481. package/dist/workspace/templates/solution-evaluation.js.map +1 -0
  482. package/dist/workspace/templates/team-playbook-extraction.d.ts +44 -0
  483. package/dist/workspace/templates/team-playbook-extraction.d.ts.map +1 -0
  484. package/dist/workspace/templates/team-playbook-extraction.js +497 -0
  485. package/dist/workspace/templates/team-playbook-extraction.js.map +1 -0
  486. package/dist/workspace/templates/team-trajectory-analysis.d.ts +19 -0
  487. package/dist/workspace/templates/team-trajectory-analysis.d.ts.map +1 -0
  488. package/dist/workspace/templates/team-trajectory-analysis.js +442 -0
  489. package/dist/workspace/templates/team-trajectory-analysis.js.map +1 -0
  490. package/dist/workspace/templates/trajectory-analysis.d.ts +19 -0
  491. package/dist/workspace/templates/trajectory-analysis.d.ts.map +1 -0
  492. package/dist/workspace/templates/trajectory-analysis.js +170 -0
  493. package/dist/workspace/templates/trajectory-analysis.js.map +1 -0
  494. package/dist/workspace/templates/usage-inference.d.ts +19 -0
  495. package/dist/workspace/templates/usage-inference.d.ts.map +1 -0
  496. package/dist/workspace/templates/usage-inference.js +125 -0
  497. package/dist/workspace/templates/usage-inference.js.map +1 -0
  498. package/dist/workspace/types.d.ts +152 -0
  499. package/dist/workspace/types.d.ts.map +1 -0
  500. package/dist/workspace/types.js +17 -0
  501. package/dist/workspace/types.js.map +1 -0
  502. package/docs/DESIGN-agentic-workspace.md +2057 -0
  503. package/docs/DESIGN-semantic-memory-knowledge-bank.md +1789 -0
  504. package/docs/DESIGN-session-bank.md +1134 -0
  505. package/docs/DESIGN-team-extraction-pipeline.md +1369 -0
  506. package/docs/PROPOSAL-team-aware-learning.md +1080 -0
  507. package/docs/RESEARCH-semantic-memory-knowledge-structures.md +517 -0
  508. package/docs/RESEARCH-team-trajectory-learning.md +553 -0
  509. package/gaps.md +204 -0
  510. package/package.json +27 -7
  511. package/references/agent-workspace/CLAUDE.md +74 -0
  512. package/references/agent-workspace/README.md +587 -0
  513. package/references/agent-workspace/media/banner.png +0 -0
  514. package/references/agent-workspace/package-lock.json +2061 -0
  515. package/references/agent-workspace/package.json +54 -0
  516. package/references/agent-workspace/src/handle.ts +122 -0
  517. package/references/agent-workspace/src/index.ts +32 -0
  518. package/references/agent-workspace/src/manager.ts +102 -0
  519. package/references/agent-workspace/src/readers/json.ts +71 -0
  520. package/references/agent-workspace/src/readers/markdown.ts +37 -0
  521. package/references/agent-workspace/src/readers/raw.ts +27 -0
  522. package/references/agent-workspace/src/types.ts +68 -0
  523. package/references/agent-workspace/src/validation.ts +93 -0
  524. package/references/agent-workspace/src/writers/json.ts +17 -0
  525. package/references/agent-workspace/src/writers/markdown.ts +27 -0
  526. package/references/agent-workspace/src/writers/raw.ts +22 -0
  527. package/references/agent-workspace/tests/errors.test.ts +652 -0
  528. package/references/agent-workspace/tests/handle.test.ts +144 -0
  529. package/references/agent-workspace/tests/manager.test.ts +124 -0
  530. package/references/agent-workspace/tests/readers.test.ts +205 -0
  531. package/references/agent-workspace/tests/validation.test.ts +196 -0
  532. package/references/agent-workspace/tests/writers.test.ts +108 -0
  533. package/references/agent-workspace/tsconfig.json +20 -0
  534. package/references/agent-workspace/tsup.config.ts +9 -0
  535. package/references/minimem/.claude/settings.json +7 -0
  536. package/references/minimem/.sudocode/issues.jsonl +18 -0
  537. package/references/minimem/.sudocode/specs.jsonl +1 -0
  538. package/references/minimem/CLAUDE.md +310 -0
  539. package/references/minimem/README.md +556 -0
  540. package/references/minimem/claude-plugin/.claude-plugin/plugin.json +10 -0
  541. package/references/minimem/claude-plugin/.mcp.json +7 -0
  542. package/references/minimem/claude-plugin/README.md +158 -0
  543. package/references/minimem/claude-plugin/commands/recall.md +47 -0
  544. package/references/minimem/claude-plugin/commands/remember.md +41 -0
  545. package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +272 -0
  546. package/references/minimem/claude-plugin/hooks/hooks.json +27 -0
  547. package/references/minimem/claude-plugin/hooks/session-end.sh +86 -0
  548. package/references/minimem/claude-plugin/hooks/session-start.sh +85 -0
  549. package/references/minimem/claude-plugin/skills/memory/SKILL.md +108 -0
  550. package/references/minimem/package-lock.json +5373 -0
  551. package/references/minimem/package.json +60 -0
  552. package/references/minimem/scripts/postbuild.js +35 -0
  553. package/references/minimem/src/__tests__/edge-cases.test.ts +371 -0
  554. package/references/minimem/src/__tests__/errors.test.ts +265 -0
  555. package/references/minimem/src/__tests__/helpers.ts +199 -0
  556. package/references/minimem/src/__tests__/internal.test.ts +407 -0
  557. package/references/minimem/src/__tests__/knowledge.test.ts +287 -0
  558. package/references/minimem/src/__tests__/minimem.integration.test.ts +1127 -0
  559. package/references/minimem/src/__tests__/session.test.ts +190 -0
  560. package/references/minimem/src/cli/__tests__/commands.test.ts +759 -0
  561. package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +141 -0
  562. package/references/minimem/src/cli/commands/append.ts +76 -0
  563. package/references/minimem/src/cli/commands/config.ts +262 -0
  564. package/references/minimem/src/cli/commands/conflicts.ts +413 -0
  565. package/references/minimem/src/cli/commands/daemon.ts +169 -0
  566. package/references/minimem/src/cli/commands/index.ts +12 -0
  567. package/references/minimem/src/cli/commands/init.ts +88 -0
  568. package/references/minimem/src/cli/commands/mcp.ts +177 -0
  569. package/references/minimem/src/cli/commands/push-pull.ts +213 -0
  570. package/references/minimem/src/cli/commands/search.ts +158 -0
  571. package/references/minimem/src/cli/commands/status.ts +84 -0
  572. package/references/minimem/src/cli/commands/sync-init.ts +290 -0
  573. package/references/minimem/src/cli/commands/sync.ts +70 -0
  574. package/references/minimem/src/cli/commands/upsert.ts +197 -0
  575. package/references/minimem/src/cli/config.ts +584 -0
  576. package/references/minimem/src/cli/index.ts +264 -0
  577. package/references/minimem/src/cli/shared.ts +161 -0
  578. package/references/minimem/src/cli/sync/__tests__/central.test.ts +152 -0
  579. package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +209 -0
  580. package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +118 -0
  581. package/references/minimem/src/cli/sync/__tests__/detection.test.ts +207 -0
  582. package/references/minimem/src/cli/sync/__tests__/integration.test.ts +476 -0
  583. package/references/minimem/src/cli/sync/__tests__/registry.test.ts +363 -0
  584. package/references/minimem/src/cli/sync/__tests__/state.test.ts +255 -0
  585. package/references/minimem/src/cli/sync/__tests__/validation.test.ts +193 -0
  586. package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +178 -0
  587. package/references/minimem/src/cli/sync/central.ts +292 -0
  588. package/references/minimem/src/cli/sync/conflicts.ts +204 -0
  589. package/references/minimem/src/cli/sync/daemon.ts +407 -0
  590. package/references/minimem/src/cli/sync/detection.ts +138 -0
  591. package/references/minimem/src/cli/sync/index.ts +107 -0
  592. package/references/minimem/src/cli/sync/operations.ts +373 -0
  593. package/references/minimem/src/cli/sync/registry.ts +279 -0
  594. package/references/minimem/src/cli/sync/state.ts +355 -0
  595. package/references/minimem/src/cli/sync/validation.ts +206 -0
  596. package/references/minimem/src/cli/sync/watcher.ts +234 -0
  597. package/references/minimem/src/cli/version.ts +34 -0
  598. package/references/minimem/src/core/index.ts +9 -0
  599. package/references/minimem/src/core/indexer.ts +628 -0
  600. package/references/minimem/src/core/searcher.ts +221 -0
  601. package/references/minimem/src/db/schema.ts +183 -0
  602. package/references/minimem/src/db/sqlite-vec.ts +24 -0
  603. package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +431 -0
  604. package/references/minimem/src/embeddings/batch-gemini.ts +392 -0
  605. package/references/minimem/src/embeddings/batch-openai.ts +409 -0
  606. package/references/minimem/src/embeddings/embeddings.ts +434 -0
  607. package/references/minimem/src/index.ts +109 -0
  608. package/references/minimem/src/internal.ts +299 -0
  609. package/references/minimem/src/minimem.ts +1276 -0
  610. package/references/minimem/src/search/__tests__/hybrid.test.ts +247 -0
  611. package/references/minimem/src/search/graph.ts +234 -0
  612. package/references/minimem/src/search/hybrid.ts +151 -0
  613. package/references/minimem/src/search/search.ts +256 -0
  614. package/references/minimem/src/server/__tests__/mcp.test.ts +341 -0
  615. package/references/minimem/src/server/__tests__/tools.test.ts +364 -0
  616. package/references/minimem/src/server/mcp.ts +326 -0
  617. package/references/minimem/src/server/tools.ts +720 -0
  618. package/references/minimem/src/session.ts +460 -0
  619. package/references/minimem/tsconfig.json +19 -0
  620. package/references/minimem/tsup.config.ts +26 -0
  621. package/references/minimem/vitest.config.ts +24 -0
  622. package/references/sessionlog/.husky/pre-commit +1 -0
  623. package/references/sessionlog/.lintstagedrc.json +4 -0
  624. package/references/sessionlog/.prettierignore +4 -0
  625. package/references/sessionlog/.prettierrc.json +11 -0
  626. package/references/sessionlog/LICENSE +21 -0
  627. package/references/sessionlog/README.md +453 -0
  628. package/references/sessionlog/eslint.config.js +58 -0
  629. package/references/sessionlog/package-lock.json +3672 -0
  630. package/references/sessionlog/package.json +65 -0
  631. package/references/sessionlog/src/__tests__/agent-hooks.test.ts +570 -0
  632. package/references/sessionlog/src/__tests__/agent-registry.test.ts +127 -0
  633. package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +225 -0
  634. package/references/sessionlog/src/__tests__/claude-generator.test.ts +46 -0
  635. package/references/sessionlog/src/__tests__/commit-msg.test.ts +86 -0
  636. package/references/sessionlog/src/__tests__/cursor-agent.test.ts +224 -0
  637. package/references/sessionlog/src/__tests__/e2e-live.test.ts +890 -0
  638. package/references/sessionlog/src/__tests__/event-log.test.ts +183 -0
  639. package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +105 -0
  640. package/references/sessionlog/src/__tests__/gemini-agent.test.ts +375 -0
  641. package/references/sessionlog/src/__tests__/git-hooks.test.ts +78 -0
  642. package/references/sessionlog/src/__tests__/hook-managers.test.ts +121 -0
  643. package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +759 -0
  644. package/references/sessionlog/src/__tests__/opencode-agent.test.ts +338 -0
  645. package/references/sessionlog/src/__tests__/redaction.test.ts +136 -0
  646. package/references/sessionlog/src/__tests__/session-repo.test.ts +353 -0
  647. package/references/sessionlog/src/__tests__/session-store.test.ts +166 -0
  648. package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +466 -0
  649. package/references/sessionlog/src/__tests__/skill-live.test.ts +461 -0
  650. package/references/sessionlog/src/__tests__/summarize.test.ts +348 -0
  651. package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +610 -0
  652. package/references/sessionlog/src/__tests__/task-plan-live.test.ts +632 -0
  653. package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +121 -0
  654. package/references/sessionlog/src/__tests__/types.test.ts +166 -0
  655. package/references/sessionlog/src/__tests__/utils.test.ts +333 -0
  656. package/references/sessionlog/src/__tests__/validation.test.ts +103 -0
  657. package/references/sessionlog/src/__tests__/worktree.test.ts +57 -0
  658. package/references/sessionlog/src/agent/agents/claude-code.ts +1089 -0
  659. package/references/sessionlog/src/agent/agents/cursor.ts +361 -0
  660. package/references/sessionlog/src/agent/agents/gemini-cli.ts +632 -0
  661. package/references/sessionlog/src/agent/agents/opencode.ts +540 -0
  662. package/references/sessionlog/src/agent/registry.ts +143 -0
  663. package/references/sessionlog/src/agent/session-types.ts +113 -0
  664. package/references/sessionlog/src/agent/types.ts +220 -0
  665. package/references/sessionlog/src/cli.ts +597 -0
  666. package/references/sessionlog/src/commands/clean.ts +133 -0
  667. package/references/sessionlog/src/commands/disable.ts +84 -0
  668. package/references/sessionlog/src/commands/doctor.ts +145 -0
  669. package/references/sessionlog/src/commands/enable.ts +202 -0
  670. package/references/sessionlog/src/commands/explain.ts +261 -0
  671. package/references/sessionlog/src/commands/reset.ts +105 -0
  672. package/references/sessionlog/src/commands/resume.ts +180 -0
  673. package/references/sessionlog/src/commands/rewind.ts +195 -0
  674. package/references/sessionlog/src/commands/setup-ccweb.ts +275 -0
  675. package/references/sessionlog/src/commands/status.ts +172 -0
  676. package/references/sessionlog/src/config.ts +165 -0
  677. package/references/sessionlog/src/events/event-log.ts +126 -0
  678. package/references/sessionlog/src/git-operations.ts +558 -0
  679. package/references/sessionlog/src/hooks/git-hooks.ts +165 -0
  680. package/references/sessionlog/src/hooks/lifecycle.ts +391 -0
  681. package/references/sessionlog/src/index.ts +650 -0
  682. package/references/sessionlog/src/security/redaction.ts +283 -0
  683. package/references/sessionlog/src/session/state-machine.ts +452 -0
  684. package/references/sessionlog/src/store/checkpoint-store.ts +509 -0
  685. package/references/sessionlog/src/store/native-store.ts +173 -0
  686. package/references/sessionlog/src/store/provider-types.ts +99 -0
  687. package/references/sessionlog/src/store/session-store.ts +266 -0
  688. package/references/sessionlog/src/strategy/attribution.ts +296 -0
  689. package/references/sessionlog/src/strategy/common.ts +207 -0
  690. package/references/sessionlog/src/strategy/content-overlap.ts +228 -0
  691. package/references/sessionlog/src/strategy/manual-commit.ts +988 -0
  692. package/references/sessionlog/src/strategy/types.ts +279 -0
  693. package/references/sessionlog/src/summarize/claude-generator.ts +115 -0
  694. package/references/sessionlog/src/summarize/summarize.ts +432 -0
  695. package/references/sessionlog/src/types.ts +508 -0
  696. package/references/sessionlog/src/utils/chunk-files.ts +49 -0
  697. package/references/sessionlog/src/utils/commit-message.ts +65 -0
  698. package/references/sessionlog/src/utils/detect-agent.ts +36 -0
  699. package/references/sessionlog/src/utils/hook-managers.ts +125 -0
  700. package/references/sessionlog/src/utils/ide-tags.ts +32 -0
  701. package/references/sessionlog/src/utils/paths.ts +79 -0
  702. package/references/sessionlog/src/utils/preview-rewind.ts +80 -0
  703. package/references/sessionlog/src/utils/rewind-conflict.ts +121 -0
  704. package/references/sessionlog/src/utils/shadow-branch.ts +109 -0
  705. package/references/sessionlog/src/utils/string-utils.ts +46 -0
  706. package/references/sessionlog/src/utils/todo-extract.ts +188 -0
  707. package/references/sessionlog/src/utils/trailers.ts +187 -0
  708. package/references/sessionlog/src/utils/transcript-parse.ts +177 -0
  709. package/references/sessionlog/src/utils/transcript-timestamp.ts +59 -0
  710. package/references/sessionlog/src/utils/tree-ops.ts +219 -0
  711. package/references/sessionlog/src/utils/tty.ts +72 -0
  712. package/references/sessionlog/src/utils/validation.ts +65 -0
  713. package/references/sessionlog/src/utils/worktree.ts +58 -0
  714. package/references/sessionlog/src/wire-types.ts +59 -0
  715. package/references/sessionlog/templates/setup-env.sh +153 -0
  716. package/references/sessionlog/tsconfig.json +18 -0
  717. package/references/sessionlog/vitest.config.ts +12 -0
  718. package/references/skill-tree/.claude/settings.json +6 -0
  719. package/references/skill-tree/.sudocode/issues.jsonl +19 -0
  720. package/references/skill-tree/.sudocode/specs.jsonl +3 -0
  721. package/references/skill-tree/CLAUDE.md +126 -0
  722. package/references/skill-tree/README.md +372 -0
  723. package/references/skill-tree/docs/GAPS_v1.md +221 -0
  724. package/references/skill-tree/docs/INTEGRATION_PLAN.md +467 -0
  725. package/references/skill-tree/docs/TODOS.md +91 -0
  726. package/references/skill-tree/docs/anthropic_skill_guide.md +1364 -0
  727. package/references/skill-tree/docs/design/federated-skill-trees.md +524 -0
  728. package/references/skill-tree/docs/design/multi-agent-sync.md +759 -0
  729. package/references/skill-tree/docs/scraper/BRAINSTORM.md +583 -0
  730. package/references/skill-tree/docs/scraper/POC_PLAN.md +420 -0
  731. package/references/skill-tree/docs/scraper/README.md +170 -0
  732. package/references/skill-tree/examples/basic-usage.ts +164 -0
  733. package/references/skill-tree/package-lock.json +1852 -0
  734. package/references/skill-tree/package.json +66 -0
  735. package/references/skill-tree/scraper/README.md +123 -0
  736. package/references/skill-tree/scraper/docs/DESIGN.md +683 -0
  737. package/references/skill-tree/scraper/docs/PLAN.md +336 -0
  738. package/references/skill-tree/scraper/drizzle.config.ts +10 -0
  739. package/references/skill-tree/scraper/package-lock.json +6329 -0
  740. package/references/skill-tree/scraper/package.json +68 -0
  741. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +7 -0
  742. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +7 -0
  743. package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +27 -0
  744. package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +21 -0
  745. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +54 -0
  746. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +24 -0
  747. package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +93 -0
  748. package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +22 -0
  749. package/references/skill-tree/scraper/tsup.config.ts +14 -0
  750. package/references/skill-tree/scraper/vitest.config.ts +17 -0
  751. package/references/skill-tree/scripts/convert-to-vitest.ts +166 -0
  752. package/references/skill-tree/skills/skill-writer/SKILL.md +339 -0
  753. package/references/skill-tree/skills/skill-writer/references/examples.md +326 -0
  754. package/references/skill-tree/skills/skill-writer/references/patterns.md +210 -0
  755. package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +123 -0
  756. package/references/skill-tree/test/run-all.ts +106 -0
  757. package/references/skill-tree/test/utils.ts +128 -0
  758. package/references/skill-tree/vitest.config.ts +16 -0
  759. package/src/atlas.ts +583 -41
  760. package/src/bin/cli-utils.ts +220 -0
  761. package/src/bin/cognitive-core.ts +84 -392
  762. package/src/bin/commands/kb.ts +266 -0
  763. package/src/bin/commands/learn.ts +100 -0
  764. package/src/bin/commands/legacy.ts +182 -0
  765. package/src/bin/commands/run.ts +113 -0
  766. package/src/bin/commands/sessions.ts +221 -0
  767. package/src/bin/commands/skills.ts +146 -0
  768. package/src/embeddings/index.ts +3 -0
  769. package/src/embeddings/inverted-index.ts +134 -0
  770. package/src/embeddings/manager.ts +13 -8
  771. package/src/embeddings/provider.ts +10 -3
  772. package/src/embeddings/vector-store.ts +21 -9
  773. package/src/factory.ts +33 -16
  774. package/src/index.ts +231 -9
  775. package/src/learning/analyzer.ts +21 -37
  776. package/src/learning/energy-evaluator.ts +282 -0
  777. package/src/learning/healing-orchestrator.ts +383 -0
  778. package/src/learning/index.ts +104 -13
  779. package/src/learning/instant-loop.ts +357 -0
  780. package/src/learning/knowledge-extractor.ts +470 -0
  781. package/src/learning/maintenance-scheduler.ts +271 -0
  782. package/src/learning/meta-learner.ts +59 -23
  783. package/src/learning/reflexion-generator.ts +273 -0
  784. package/src/learning/team-ingester.ts +499 -0
  785. package/src/learning/team-meta-learner.ts +558 -0
  786. package/src/learning/team-pipeline.ts +364 -0
  787. package/src/learning/trajectory-sources/dataclaw.ts +403 -0
  788. package/src/learning/trajectory-sources/entire.ts +251 -0
  789. package/src/learning/trajectory-sources/file.ts +136 -0
  790. package/src/learning/trajectory-sources/huggingface.ts +248 -0
  791. package/src/learning/trajectory-sources/in-memory.ts +61 -0
  792. package/src/learning/trajectory-sources/index.ts +15 -0
  793. package/src/learning/trajectory-sources/pipeline.ts +69 -0
  794. package/src/learning/unified-pipeline.ts +921 -0
  795. package/src/memory/candidate-retrieval.ts +71 -0
  796. package/src/memory/causal-store.ts +273 -0
  797. package/src/memory/coherence.ts +252 -0
  798. package/src/memory/experience.ts +217 -50
  799. package/src/memory/graph-layers/base.ts +184 -0
  800. package/src/memory/graph-layers/causal.ts +16 -0
  801. package/src/memory/graph-layers/entity.ts +16 -0
  802. package/src/memory/graph-layers/index.ts +5 -0
  803. package/src/memory/graph-layers/semantic.ts +16 -0
  804. package/src/memory/graph-layers/temporal.ts +16 -0
  805. package/src/memory/index.ts +88 -0
  806. package/src/memory/knowledge-bank.ts +1317 -0
  807. package/src/memory/knowledge-defrag.ts +329 -0
  808. package/src/memory/knowledge-graph.ts +361 -0
  809. package/src/memory/meta.ts +78 -96
  810. package/src/memory/playbook.ts +239 -75
  811. package/src/memory/reasoning-bank.ts +458 -0
  812. package/src/memory/reflexion.ts +122 -0
  813. package/src/memory/search-provider.ts +35 -0
  814. package/src/memory/search-providers/index.ts +3 -0
  815. package/src/memory/search-providers/minimem.ts +84 -0
  816. package/src/memory/search-providers/text-similarity.ts +35 -0
  817. package/src/memory/skill-exporter.ts +357 -0
  818. package/src/memory/system.ts +80 -11
  819. package/src/memory/team-experience.ts +604 -0
  820. package/src/memory/temporal-compressor.ts +409 -0
  821. package/src/persistence/index.ts +37 -0
  822. package/src/persistence/migrator.ts +298 -0
  823. package/src/persistence/serializers.ts +79 -0
  824. package/src/persistence/sqlite-persistence.ts +925 -0
  825. package/src/runtime/backends/acp-protocol.ts +231 -0
  826. package/src/runtime/backends/acp.ts +57 -196
  827. package/src/runtime/backends/index.ts +14 -0
  828. package/src/runtime/backends/macro-agent.ts +177 -0
  829. package/src/runtime/compute-provider.ts +206 -0
  830. package/src/runtime/flows/learning.ts +25 -42
  831. package/src/runtime/index.ts +22 -0
  832. package/src/runtime/manager.ts +167 -23
  833. package/src/runtime/types.ts +41 -0
  834. package/src/search/evaluator.ts +29 -4
  835. package/src/search/index.ts +19 -0
  836. package/src/search/moe-gate.ts +304 -0
  837. package/src/search/refinement-loop.ts +106 -12
  838. package/src/search/router.ts +111 -4
  839. package/src/search/team-router.ts +459 -0
  840. package/src/session-bank/git-reader.ts +200 -0
  841. package/src/session-bank/index.ts +26 -0
  842. package/src/session-bank/parser.ts +548 -0
  843. package/src/session-bank/session-bank.ts +485 -0
  844. package/src/session-bank/types.ts +176 -0
  845. package/src/surfacing/index.ts +23 -0
  846. package/src/surfacing/publisher.ts +23 -0
  847. package/src/surfacing/skill-library.ts +31 -0
  848. package/src/surfacing/skill-publisher.ts +191 -0
  849. package/src/surfacing/sqlite-storage-adapter.ts +285 -0
  850. package/src/surfacing/team-skill-library.ts +610 -0
  851. package/src/types/config.ts +282 -0
  852. package/src/types/dataclaw.ts +99 -0
  853. package/src/types/huggingface-transformers.d.ts +12 -0
  854. package/src/types/index.ts +159 -0
  855. package/src/types/knowledge-graph.ts +246 -0
  856. package/src/types/knowledge.ts +388 -0
  857. package/src/types/memory.ts +30 -0
  858. package/src/types/playbook.ts +4 -0
  859. package/src/types/team-meta.ts +212 -0
  860. package/src/types/team-playbook.ts +384 -0
  861. package/src/types/team-trajectory.ts +673 -0
  862. package/src/types/trajectory-source.ts +47 -0
  863. package/src/utils/error-classifier.ts +113 -0
  864. package/src/utils/frontmatter.ts +118 -0
  865. package/src/utils/index.ts +25 -0
  866. package/src/utils/partitioned-store.ts +299 -0
  867. package/src/utils/trajectory-helpers.ts +79 -0
  868. package/src/workspace/index.ts +48 -0
  869. package/src/workspace/runner.ts +281 -0
  870. package/src/workspace/skill-converter.ts +288 -0
  871. package/src/workspace/templates/index.ts +64 -0
  872. package/src/workspace/templates/knowledge-defrag.ts +223 -0
  873. package/src/workspace/templates/knowledge-extraction.ts +337 -0
  874. package/src/workspace/templates/meta-reflection.ts +208 -0
  875. package/src/workspace/templates/playbook-extraction.ts +240 -0
  876. package/src/workspace/templates/refinement-analysis.ts +162 -0
  877. package/src/workspace/templates/solution-evaluation.ts +199 -0
  878. package/src/workspace/templates/team-playbook-extraction.ts +631 -0
  879. package/src/workspace/templates/team-trajectory-analysis.ts +564 -0
  880. package/src/workspace/templates/trajectory-analysis.ts +234 -0
  881. package/src/workspace/templates/usage-inference.ts +163 -0
  882. package/src/workspace/types.ts +241 -0
  883. package/tests/atlas-knowledge.test.ts +165 -0
  884. package/tests/embeddings/inverted-index.test.ts +138 -0
  885. package/tests/feature-toggles.test.ts +275 -0
  886. package/tests/gap-fixes.test.ts +1116 -0
  887. package/tests/integration/cli-e2e.test.ts +621 -0
  888. package/tests/integration/dataclaw-e2e.test.ts +559 -0
  889. package/tests/integration/e2e.test.ts +412 -4
  890. package/tests/integration/entire-e2e.test.ts +376 -0
  891. package/tests/integration/huggingface-e2e.test.ts +627 -0
  892. package/tests/integration/persistence-e2e.test.ts +741 -0
  893. package/tests/integration/phase-e2e.test.ts +1143 -0
  894. package/tests/integration/session-bank.test.ts +231 -0
  895. package/tests/integration/sessionlog-e2e.test.ts +329 -0
  896. package/tests/integration/skill-tree-wiring.test.ts +152 -0
  897. package/tests/integration/unified-pipeline-e2e.test.ts +634 -0
  898. package/tests/learning/analyzer.test.ts +1 -1
  899. package/tests/learning/dataclaw-trajectory-source.test.ts +642 -0
  900. package/tests/learning/energy-evaluator.test.ts +180 -0
  901. package/tests/learning/entire-trajectory-source.test.ts +380 -0
  902. package/tests/learning/healing-orchestrator.test.ts +269 -0
  903. package/tests/learning/huggingface-trajectory-source.test.ts +817 -0
  904. package/tests/learning/instant-loop.test.ts +243 -0
  905. package/tests/learning/knowledge-extractor.test.ts +491 -0
  906. package/tests/learning/maintenance-scheduler.test.ts +191 -0
  907. package/tests/learning/reflexion-generator.test.ts +411 -0
  908. package/tests/learning/team-ingester.test.ts +349 -0
  909. package/tests/learning/team-meta-learner.test.ts +618 -0
  910. package/tests/learning/team-pipeline.test.ts +334 -0
  911. package/tests/learning/trajectory-sources.test.ts +320 -0
  912. package/tests/learning/unified-pipeline.test.ts +322 -0
  913. package/tests/mcp/playbook-server.test.ts +6 -1
  914. package/tests/memory/causal-store.test.ts +276 -0
  915. package/tests/memory/coherence.test.ts +232 -0
  916. package/tests/memory/experience.test.ts +8 -3
  917. package/tests/memory/graph-layers/semantic.test.ts +219 -0
  918. package/tests/memory/knowledge-bank-extraction.test.ts +558 -0
  919. package/tests/memory/knowledge-bank.test.ts +705 -0
  920. package/tests/memory/knowledge-defrag.test.ts +366 -0
  921. package/tests/memory/knowledge-evolution.test.ts +563 -0
  922. package/tests/memory/knowledge-graph.test.ts +492 -0
  923. package/tests/memory/knowledge-inbox.test.ts +258 -0
  924. package/tests/memory/knowledge-minimem.test.ts +251 -0
  925. package/tests/memory/playbook.test.ts +307 -1
  926. package/tests/memory/provenance.test.ts +11 -2
  927. package/tests/memory/reasoning-bank.test.ts +239 -0
  928. package/tests/memory/reflexion.test.ts +166 -0
  929. package/tests/memory/skill-exporter.test.ts +475 -0
  930. package/tests/memory/system.test.ts +6 -1
  931. package/tests/memory/team-experience.test.ts +411 -0
  932. package/tests/memory/temporal-compressor.test.ts +318 -0
  933. package/tests/persistence/migrator.test.ts +1009 -0
  934. package/tests/persistence/sqlite-persistence.test.ts +635 -0
  935. package/tests/runtime/agent-manager.test.ts +7 -2
  936. package/tests/runtime/compute-provider.test.ts +288 -0
  937. package/tests/runtime/delegate.test.ts +354 -0
  938. package/tests/runtime/macro-agent-backend.test.ts +266 -0
  939. package/tests/search/moe-gate.test.ts +250 -0
  940. package/tests/search/refinement-loop.test.ts +11 -2
  941. package/tests/search/router.test.ts +81 -2
  942. package/tests/search/team-router.test.ts +376 -0
  943. package/tests/session-bank/fixtures/multi-tool-session/full.jsonl +12 -0
  944. package/tests/session-bank/fixtures/multi-tool-session/metadata.json +28 -0
  945. package/tests/session-bank/fixtures/root-metadata.json +18 -0
  946. package/tests/session-bank/fixtures/sessionlog-root-metadata.json +16 -0
  947. package/tests/session-bank/fixtures/sessionlog-session/full.jsonl +6 -0
  948. package/tests/session-bank/fixtures/sessionlog-session/metadata.json +55 -0
  949. package/tests/session-bank/fixtures/simple-session/full.jsonl +6 -0
  950. package/tests/session-bank/fixtures/simple-session/metadata.json +38 -0
  951. package/tests/session-bank/git-reader.test.ts +232 -0
  952. package/tests/session-bank/parser.test.ts +453 -0
  953. package/tests/session-bank/session-bank.test.ts +546 -0
  954. package/tests/surfacing/skill-library.test.ts +6 -1
  955. package/tests/surfacing/skill-publisher.test.ts +364 -0
  956. package/tests/surfacing/sqlite-storage-adapter.test.ts +206 -0
  957. package/tests/surfacing/team-skill-library.test.ts +444 -0
  958. package/tests/types/team-meta.test.ts +147 -0
  959. package/tests/types/team-playbook.test.ts +246 -0
  960. package/tests/types/team-trajectory.test.ts +557 -0
  961. package/tests/utils/frontmatter.test.ts +208 -0
  962. package/tests/utils/partitioned-store.test.ts +230 -0
  963. package/tests/workspace/full-flow.test.ts +845 -0
  964. package/tests/workspace/manager.test.ts +215 -0
  965. package/tests/workspace/runner.test.ts +336 -0
  966. package/tests/workspace/skill-converter.test.ts +205 -0
  967. package/tests/workspace/templates/knowledge-extraction.test.ts +235 -0
  968. package/tests/workspace/templates/team-playbook-extraction.test.ts +341 -0
  969. package/tests/workspace/templates/team-trajectory-analysis.test.ts +417 -0
  970. package/src/learning/llm-extractor.ts +0 -542
  971. package/src/learning/pipeline.ts +0 -244
  972. package/tests/learning/pipeline.test.ts +0 -176
@@ -0,0 +1,1134 @@
1
+ # Design: Session Bank (Entire-backed)
2
+
3
+ > **Status**: Proposed
4
+ > **Authors**: Alex Ngai, Claude
5
+ > **Date**: 2026-02-24
6
+ > **Related**: [Entire CLI](https://github.com/entireio/cli), [ReMem](https://arxiv.org/abs/2501.00662)
7
+
8
+ ## 1. Motivation
9
+
10
+ cognitive-core's learning pipeline operates on **Trajectory** objects — structured sequences of thought/action/observation steps with an outcome. Today, trajectories are constructed synthetically (tests, manual creation) or extracted in-memory from `AgentSession` objects that are discarded after execution.
11
+
12
+ This creates three problems:
13
+
14
+ 1. **No durable session capture** — When an agent runs outside cognitive-core (e.g. Claude Code sessions, standalone CLI agents), there is no mechanism to ingest those sessions as trajectories. The richest source of learning data — real developer interactions — is lost.
15
+
16
+ 2. **No raw transcript preservation** — The `Trajectory` type is a lossy abstraction. It discards conversational context, partial reasoning, tool call timing, and multi-turn structure. Once converted, the original session is gone.
17
+
18
+ 3. **No session-level queries** — The existing `ExperienceMemory` stores compressed experience tuples. There is no way to ask "show me all sessions where the agent debugged a TypeScript error" at the raw session level, before lossy compression.
19
+
20
+ ### The Entire Opportunity
21
+
22
+ [Entire](https://github.com/entireio/cli) is a Go CLI tool that captures full agent session transcripts via Claude Code (and Gemini CLI) hooks. It stores data on an orphan git branch (`entire/checkpoints/v1`), providing:
23
+
24
+ - **Automatic capture** — 7 hook events: session-start, session-end, stop, user-prompt-submit, pre-task, post-task, post-todo
25
+ - **Full fidelity** — JSONL transcripts preserve every message, tool call, and observation in the agent's native format
26
+ - **Rich metadata** — token usage, file attribution, AI-generated summaries (intent, outcome, learnings, friction points)
27
+ - **Git-native storage** — checkpoint-sharded orphan branch, pushed alongside your code
28
+ - **Commit linking** — git trailers (`Entire-Checkpoint`, `Entire-Session`) bidirectionally link code commits to session data
29
+
30
+ By using Entire as the capture and storage layer, cognitive-core gains a durable session archive without building its own capture infrastructure.
31
+
32
+ ### Standalone Package Philosophy
33
+
34
+ The session bank is designed as a **standalone TypeScript package** (`@entire-sessions/reader` or similar) that can be used independently of cognitive-core. It reads from Entire's orphan branch and exposes a generic session query API. cognitive-core then adapts it via a thin `EntireTrajectorySource` implementing the existing `TrajectorySource` interface.
35
+
36
+ This keeps the boundary clean:
37
+ - **session-bank** knows about Entire's data format, not about Trajectories
38
+ - **cognitive-core** knows about Trajectories, not about Entire's internals
39
+ - The adapter is the only code that bridges the two
40
+
41
+ ## 2. Architecture Overview
42
+
43
+ ```
44
+ ┌─────────────────────────────────────────────────────────────────┐
45
+ │ cognitive-core │
46
+ │ │
47
+ │ ┌─────────────┐ ┌──────────────┐ ┌──────────────────┐ │
48
+ │ │ Playbook │ │ Experience │ │ Knowledge Bank │ │
49
+ │ │ Library │ │ Memory │ │ (semantic) │ │
50
+ │ └──────┬──────┘ └──────┬───────┘ └───────┬───────────┘ │
51
+ │ │ │ │ │
52
+ │ │ ┌──────────┴──────────┐ │ │
53
+ │ └─────┤ Learning Pipeline ├────────┘ │
54
+ │ └─────────┬───────────┘ │
55
+ │ │ │
56
+ │ ┌─────────┴───────────┐ │
57
+ │ │ EntireTrajectory │ ← adapter (in cognitive- │
58
+ │ │ Source │ core, implements │
59
+ │ │ │ TrajectorySource) │
60
+ │ └─────────┬───────────┘ │
61
+ │ │ │
62
+ └─────────────────────────┼────────────────────────────────────────┘
63
+ │ uses
64
+ ┌─────────────────────────▼────────────────────────────────────────┐
65
+ │ session-bank (standalone package) │
66
+ │ │
67
+ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
68
+ │ │ EntireGit │ │ Transcript │ │ SessionBank │ │
69
+ │ │ Reader │ │ Parser │ │ (facade: discover, │ │
70
+ │ │ (git plumb) │ │ (JSONL→types)│ │ query, get, count) │ │
71
+ │ └──────┬───────┘ └──────┬───────┘ └──────────┬────────────┘ │
72
+ │ │ │ │ │
73
+ │ └────────┬────────┘ │ │
74
+ │ │ reads │ exposes │
75
+ │ ▼ ▼ │
76
+ │ git show / ls-tree SessionRecord[] │
77
+ └──────────────────┬───────────────────────────────────────────────┘
78
+
79
+ reads from
80
+
81
+ ┌───────────▼─────────────┐
82
+ │ entire/checkpoints/v1 │ (orphan branch)
83
+ │ │
84
+ │ <id[:2]>/<id[2:]>/ │ checkpoint-sharded
85
+ │ ├── metadata.json │ root summary
86
+ │ ├── 0/ │ session subdirectory
87
+ │ │ ├── metadata.json │ committed metadata
88
+ │ │ ├── full.jsonl │ raw transcript
89
+ │ │ ├── prompt.txt │ user prompts
90
+ │ │ └── context.md │ generated context
91
+ │ └── tasks/ │ subagent checkpoints
92
+ └─────────────────────────┘
93
+ ```
94
+
95
+ ### Data Flow
96
+
97
+ ```
98
+ 1. Developer uses Claude Code (Entire hooks installed)
99
+
100
+
101
+ 2. Entire hooks fire on session events → capture to shadow branch
102
+
103
+
104
+ 3. Developer commits → post-commit hook condenses to entire/checkpoints/v1
105
+
106
+
107
+ 4. session-bank: SessionBank.discover() reads orphan branch via git plumbing
108
+
109
+
110
+ 5. session-bank: Parser converts JSONL → SessionRecord (with metadata, events, summary)
111
+
112
+
113
+ 6. cognitive-core: EntireTrajectorySource.load() calls SessionBank, synthesizes Trajectories
114
+
115
+
116
+ 7. cognitive-core: LearningPipeline.processTrajectory() → playbooks, experiences, knowledge
117
+ ```
118
+
119
+ ## 3. Entire's Real Storage Format
120
+
121
+ Based on analysis of [`entireio/cli`](https://github.com/entireio/cli) source code.
122
+
123
+ ### Branch Structure
124
+
125
+ Entire uses the `entire/checkpoints/v1` orphan branch. Checkpoints are **sharded by the first 2 hex chars** of the checkpoint ID (256 possible buckets):
126
+
127
+ ```
128
+ entire/checkpoints/v1 branch tree:
129
+ <checkpointId[:2]>/<checkpointId[2:]>/
130
+ ├── metadata.json # CheckpointSummary (root-level, aggregated)
131
+ ├── 0/ # First session subdirectory
132
+ │ ├── metadata.json # CommittedMetadata for this session
133
+ │ ├── full.jsonl # Complete transcript (Claude native JSONL)
134
+ │ ├── prompt.txt # Concatenated user prompts
135
+ │ ├── context.md # Generated context document
136
+ │ └── content_hash.txt # Deduplication hash
137
+ ├── 1/ # Second session (if concurrent)
138
+ │ └── ...
139
+ └── tasks/ # Task/subagent checkpoints (optional)
140
+ └── <tool-use-id>/
141
+ ├── checkpoint.json # Task checkpoint metadata
142
+ ├── agent-<id>.jsonl # Subagent transcript
143
+ └── checkpoints/
144
+ └── NNN-<id>.json # Incremental checkpoints
145
+ ```
146
+
147
+ ### ID Formats
148
+
149
+ - **Checkpoint ID**: 12 lowercase hex chars (e.g. `a3b2c4d5e6f7`), generated from 6 random bytes
150
+ - **Session ID**: `YYYY-MM-DD-<UUID>` (e.g. `2026-01-08-abc123de-f456-7890-abcd-ef1234567890`)
151
+
152
+ ### Transcript Format (full.jsonl)
153
+
154
+ Each line is Claude's native JSONL format:
155
+
156
+ ```jsonl
157
+ {"type":"user","uuid":"abc123","message":{"content":"Fix the bug in auth.ts"}}
158
+ {"type":"assistant","uuid":"def456","message":{"content":[{"type":"text","text":"I'll fix that..."},{"type":"tool_use","name":"Edit","input":{"file_path":"/src/auth.ts","old_string":"...","new_string":"..."}}]}}
159
+ {"type":"user","uuid":"ghi789","message":{"content":[{"type":"tool_result","tool_use_id":"...","content":"File edited successfully"}]}}
160
+ ```
161
+
162
+ The `message.content` is either:
163
+ - A string (user text messages)
164
+ - An array of `ContentBlock` objects (assistant responses with text + tool_use, or user messages with tool_results)
165
+
166
+ Transcripts exceeding 50MB are chunked: `full.jsonl.001`, `full.jsonl.002`, etc.
167
+
168
+ ### Session Metadata (per-session metadata.json)
169
+
170
+ ```typescript
171
+ // Entire's CommittedMetadata (Go struct → TypeScript equivalent)
172
+ interface EntireCommittedMetadata {
173
+ cli_version: string;
174
+ checkpoint_id: string; // 12-hex-char
175
+ session_id: string; // YYYY-MM-DD-<UUID>
176
+ strategy: 'manual-commit' | 'auto-commit';
177
+ created_at: string; // RFC3339
178
+ branch: string; // source code branch
179
+ files_touched: string[]; // files modified during session
180
+ agent: string; // "Claude Code", "Gemini CLI", etc.
181
+ is_task: boolean;
182
+ tool_use_id?: string; // for task checkpoints
183
+ checkpoint_transcript_start: number; // line offset into JSONL
184
+ token_usage: EntireTokenUsage;
185
+ summary?: EntireSummary; // AI-generated (optional)
186
+ initial_attribution?: EntireAttribution;
187
+ }
188
+
189
+ interface EntireTokenUsage {
190
+ input_tokens: number;
191
+ cache_creation_tokens: number;
192
+ cache_read_tokens: number;
193
+ output_tokens: number;
194
+ api_call_count: number;
195
+ subagent_usage?: EntireTokenUsage[];
196
+ }
197
+
198
+ interface EntireSummary {
199
+ intent: string; // What the user was trying to do
200
+ outcome: string; // What happened
201
+ learnings: {
202
+ repo_patterns: string[]; // Repository-specific patterns
203
+ code_findings: string[]; // Code-specific findings
204
+ workflow_practices: string[]; // Workflow learnings
205
+ };
206
+ friction_points: string[]; // Where things went wrong
207
+ open_items: string[]; // Unfinished work
208
+ }
209
+
210
+ interface EntireAttribution {
211
+ agent_lines_added: number;
212
+ human_additions: number;
213
+ human_modifications: number;
214
+ human_removals: number;
215
+ total_committed_lines: number;
216
+ agent_contribution: number; // 0-1 percentage
217
+ }
218
+ ```
219
+
220
+ ### Root Checkpoint Summary (root metadata.json)
221
+
222
+ ```typescript
223
+ interface EntireCheckpointSummary {
224
+ sessions: Array<{
225
+ metadata: string; // path: "0/metadata.json"
226
+ transcript: string; // path: "0/full.jsonl"
227
+ context: string; // path: "0/context.md"
228
+ content_hash: string; // path: "0/content_hash.txt"
229
+ prompt: string; // path: "0/prompt.txt"
230
+ }>;
231
+ }
232
+ ```
233
+
234
+ ### Commit Trailers
235
+
236
+ Entire writes trailers into user git commits for bidirectional linking:
237
+
238
+ ```
239
+ Entire-Checkpoint: a3b2c4d5e6f7
240
+ Entire-Session: 2026-01-08-abc123de-f456-7890-abcd-ef1234567890
241
+ Entire-Strategy: manual-commit
242
+ ```
243
+
244
+ ## 4. Standalone Package: Type Definitions
245
+
246
+ These types are defined by the session-bank package — they represent parsed, normalized Entire data. They are deliberately **not** cognitive-core types.
247
+
248
+ ### SessionRecord — The Core Type
249
+
250
+ ```typescript
251
+ /**
252
+ * A parsed Entire checkpoint session — the primary data type exposed
253
+ * by the session bank. Contains the full transcript, metadata, and
254
+ * Entire's AI-generated summary.
255
+ *
256
+ * This is the intermediate representation between Entire's raw files
257
+ * on the orphan branch and any downstream consumer (cognitive-core,
258
+ * analytics, UI, etc.).
259
+ */
260
+ export interface SessionRecord {
261
+ /** Entire session ID (YYYY-MM-DD-<UUID>) */
262
+ sessionId: string;
263
+
264
+ /** Entire checkpoint ID (12-hex-char) */
265
+ checkpointId: string;
266
+
267
+ /** Parsed metadata from per-session metadata.json */
268
+ metadata: SessionMetadata;
269
+
270
+ /** Parsed transcript events from full.jsonl */
271
+ transcript: TranscriptMessage[];
272
+
273
+ /** AI-generated summary (from Entire's summarize feature, if enabled) */
274
+ summary?: SessionSummary;
275
+
276
+ /** Token usage statistics */
277
+ tokenUsage: TokenUsage;
278
+
279
+ /** Line-level code attribution */
280
+ attribution?: Attribution;
281
+
282
+ /** Provenance: where this data came from on the orphan branch */
283
+ source: SessionSource;
284
+ }
285
+
286
+ export interface SessionMetadata {
287
+ /** Entire CLI version that captured this */
288
+ cliVersion: string;
289
+ /** Checkpoint strategy used */
290
+ strategy: 'manual-commit' | 'auto-commit';
291
+ /** When the checkpoint was created */
292
+ createdAt: Date;
293
+ /** Source code branch the session was on */
294
+ branch: string;
295
+ /** Agent that ran the session */
296
+ agent: string;
297
+ /** Working directory (if available from context) */
298
+ cwd?: string;
299
+ /** Files modified during the session */
300
+ filesTouched: string[];
301
+ /** Whether this is a task (subagent) checkpoint */
302
+ isTask: boolean;
303
+ /** Tool use ID (for task checkpoints) */
304
+ toolUseId?: string;
305
+ }
306
+
307
+ export interface TranscriptMessage {
308
+ /** Message role */
309
+ role: 'user' | 'assistant';
310
+ /** Unique message identifier */
311
+ uuid: string;
312
+ /** Content blocks */
313
+ content: ContentBlock[];
314
+ /** Computed: index in original JSONL */
315
+ lineIndex: number;
316
+ }
317
+
318
+ export type ContentBlock =
319
+ | TextBlock
320
+ | ToolUseBlock
321
+ | ToolResultBlock;
322
+
323
+ export interface TextBlock {
324
+ type: 'text';
325
+ text: string;
326
+ }
327
+
328
+ export interface ToolUseBlock {
329
+ type: 'tool_use';
330
+ id: string;
331
+ name: string;
332
+ input: Record<string, unknown>;
333
+ }
334
+
335
+ export interface ToolResultBlock {
336
+ type: 'tool_result';
337
+ toolUseId: string;
338
+ content: string;
339
+ isError?: boolean;
340
+ }
341
+
342
+ export interface SessionSummary {
343
+ /** What the user was trying to accomplish */
344
+ intent: string;
345
+ /** What actually happened */
346
+ outcome: string;
347
+ /** Learnings from the session */
348
+ learnings: {
349
+ repoPatterns: string[];
350
+ codeFindings: string[];
351
+ workflowPractices: string[];
352
+ };
353
+ /** Where things went wrong or caused friction */
354
+ frictionPoints: string[];
355
+ /** Unfinished work or follow-ups */
356
+ openItems: string[];
357
+ }
358
+
359
+ export interface TokenUsage {
360
+ inputTokens: number;
361
+ cacheCreationTokens: number;
362
+ cacheReadTokens: number;
363
+ outputTokens: number;
364
+ apiCallCount: number;
365
+ subagentUsage?: TokenUsage[];
366
+ /** Computed: total tokens across all categories */
367
+ total: number;
368
+ }
369
+
370
+ export interface Attribution {
371
+ agentLinesAdded: number;
372
+ humanAdditions: number;
373
+ humanModifications: number;
374
+ humanRemovals: number;
375
+ totalCommittedLines: number;
376
+ /** 0-1 percentage of agent contribution */
377
+ agentContribution: number;
378
+ }
379
+
380
+ export interface SessionSource {
381
+ /** Orphan branch name */
382
+ branch: string;
383
+ /** Path on branch: "<id[:2]>/<id[2:]>" */
384
+ checkpointPath: string;
385
+ /** Session subdirectory index: "0", "1", etc. */
386
+ sessionIndex: string;
387
+ /** Git commit SHA on the orphan branch containing this data */
388
+ commitSha?: string;
389
+ /** Git commit SHA on the source branch linked via Entire-Checkpoint trailer */
390
+ linkedCommitSha?: string;
391
+ }
392
+ ```
393
+
394
+ ### SessionQuery — Query Interface
395
+
396
+ ```typescript
397
+ /**
398
+ * Query options for filtering sessions in the bank.
399
+ */
400
+ export interface SessionQuery {
401
+ /** Only checkpoints created after this date */
402
+ since?: Date;
403
+ /** Only checkpoints created before this date */
404
+ before?: Date;
405
+ /** Filter by source code branch (exact match) */
406
+ branch?: string;
407
+ /** Filter by agent type (e.g. "Claude Code") */
408
+ agent?: string;
409
+ /** Full-text search across user messages */
410
+ search?: string;
411
+ /** Filter by checkpoint strategy */
412
+ strategy?: 'manual-commit' | 'auto-commit';
413
+ /** Only include sessions with/without summaries */
414
+ hasSummary?: boolean;
415
+ /** Maximum number of sessions to return */
416
+ limit?: number;
417
+ /** Sort order (default: newest first) */
418
+ sort?: 'newest' | 'oldest';
419
+ /** Only sessions not yet marked as processed */
420
+ unprocessedOnly?: boolean;
421
+ }
422
+
423
+ export interface SessionQueryResult {
424
+ sessions: SessionRecord[];
425
+ total: number;
426
+ }
427
+ ```
428
+
429
+ ### CheckpointRef — Lightweight Reference
430
+
431
+ ```typescript
432
+ /**
433
+ * Lightweight reference to a checkpoint, for enumeration without
434
+ * loading full transcripts.
435
+ */
436
+ export interface CheckpointRef {
437
+ checkpointId: string;
438
+ sessionIds: string[];
439
+ path: string;
440
+ /** Available without loading full metadata */
441
+ sessionCount: number;
442
+ }
443
+ ```
444
+
445
+ ## 5. Standalone Package: Core Components
446
+
447
+ ### 5.1 EntireGitReader
448
+
449
+ Low-level git plumbing for reading from the orphan branch without checkout.
450
+
451
+ ```typescript
452
+ export class EntireGitReader {
453
+ constructor(options: { repoPath: string; branch?: string });
454
+
455
+ /** Check if the orphan branch exists in this repo */
456
+ async branchExists(): Promise<boolean>;
457
+
458
+ /**
459
+ * List all checkpoint directories (top-level shard + inner dirs).
460
+ * Returns paths like ["a3/b2c4d5e6f7", "f1/0a9b8c7d6e5f", ...]
461
+ */
462
+ async listCheckpoints(): Promise<string[]>;
463
+
464
+ /**
465
+ * List session subdirectories within a checkpoint.
466
+ * Returns ["0", "1", ...] (numeric session indices)
467
+ */
468
+ async listSessions(checkpointPath: string): Promise<string[]>;
469
+
470
+ /** Read a single file from the orphan branch */
471
+ async readFile(path: string): Promise<string>;
472
+
473
+ /**
474
+ * Read multiple files in batch (minimizes git process spawns).
475
+ * Returns Map<path, content>. Missing files are omitted.
476
+ */
477
+ async readFiles(paths: string[]): Promise<Map<string, string>>;
478
+
479
+ /**
480
+ * Read a file, returning null if it doesn't exist (no throw).
481
+ */
482
+ async readFileOrNull(path: string): Promise<string | null>;
483
+
484
+ /**
485
+ * Get the HEAD commit SHA of the orphan branch.
486
+ * Useful for cache invalidation.
487
+ */
488
+ async getBranchHead(): Promise<string | null>;
489
+ }
490
+ ```
491
+
492
+ **Implementation:**
493
+
494
+ ```bash
495
+ # Branch existence
496
+ git rev-parse --verify entire/checkpoints/v1
497
+
498
+ # List shard directories (top-level: "a3", "f1", etc.)
499
+ git ls-tree --name-only entire/checkpoints/v1
500
+
501
+ # List checkpoints within a shard
502
+ git ls-tree --name-only entire/checkpoints/v1 a3/
503
+
504
+ # List session subdirs within a checkpoint
505
+ git ls-tree --name-only entire/checkpoints/v1 a3/b2c4d5e6f7/
506
+
507
+ # Read a file
508
+ git show entire/checkpoints/v1:a3/b2c4d5e6f7/0/metadata.json
509
+
510
+ # Batch read (single git process via cat-file --batch)
511
+ echo "entire/checkpoints/v1:a3/b2c4d5e6f7/0/metadata.json" | git cat-file --batch
512
+ ```
513
+
514
+ ### 5.2 EntireTranscriptParser
515
+
516
+ Parses Entire's raw files into `SessionRecord` objects.
517
+
518
+ ```typescript
519
+ export class EntireTranscriptParser {
520
+ /**
521
+ * Parse a full session from its component files.
522
+ */
523
+ parseSession(
524
+ metadataJson: string,
525
+ transcriptJsonl: string,
526
+ checkpointPath: string,
527
+ sessionIndex: string
528
+ ): SessionRecord;
529
+
530
+ /**
531
+ * Parse just the per-session metadata (fast path for listing).
532
+ */
533
+ parseMetadata(metadataJson: string): SessionMetadata & {
534
+ sessionId: string;
535
+ checkpointId: string;
536
+ summary?: SessionSummary;
537
+ tokenUsage: TokenUsage;
538
+ attribution?: Attribution;
539
+ };
540
+
541
+ /**
542
+ * Parse a JSONL transcript into structured messages.
543
+ * Handles Claude's native JSONL format:
544
+ * {"type":"user"|"assistant", "uuid":"...", "message":{...}}
545
+ *
546
+ * Tolerant of malformed lines (skips with warning).
547
+ */
548
+ parseTranscript(jsonlContent: string): TranscriptMessage[];
549
+
550
+ /**
551
+ * Parse chunked transcripts (full.jsonl.001, .002, etc.)
552
+ * by concatenating chunks before parsing.
553
+ */
554
+ parseChunkedTranscript(chunks: string[]): TranscriptMessage[];
555
+
556
+ /**
557
+ * Parse the root checkpoint summary to discover session subdirectories.
558
+ */
559
+ parseCheckpointSummary(metadataJson: string): CheckpointRef;
560
+ }
561
+ ```
562
+
563
+ **JSONL parsing details:**
564
+
565
+ Each line in Entire's transcript follows Claude's format:
566
+
567
+ ```typescript
568
+ // Raw JSONL line shape
569
+ interface RawTranscriptLine {
570
+ type: 'user' | 'assistant';
571
+ uuid: string;
572
+ message: {
573
+ content: string | RawContentBlock[];
574
+ };
575
+ }
576
+
577
+ interface RawContentBlock {
578
+ type: 'text' | 'tool_use' | 'tool_result';
579
+ text?: string; // for type === 'text'
580
+ name?: string; // for type === 'tool_use'
581
+ input?: Record<string, unknown>; // for type === 'tool_use'
582
+ tool_use_id?: string; // for type === 'tool_result'
583
+ content?: string; // for type === 'tool_result'
584
+ }
585
+ ```
586
+
587
+ The parser normalizes this into `TranscriptMessage` with typed `ContentBlock` discriminated union. String content is wrapped into `[{ type: 'text', text: content }]` for consistency.
588
+
589
+ ### 5.3 SessionBank — Main Facade
590
+
591
+ ```typescript
592
+ export class SessionBank {
593
+ constructor(options?: SessionBankOptions);
594
+
595
+ /**
596
+ * Initialize: verify orphan branch exists, optionally build index.
597
+ * @throws if repoPath is not a git repository
598
+ */
599
+ async init(): Promise<void>;
600
+
601
+ /** Whether the Entire orphan branch exists in this repo */
602
+ isAvailable(): boolean;
603
+
604
+ // ── Discovery ──────────────────────────────────────────────
605
+
606
+ /**
607
+ * List all checkpoint references without loading transcripts.
608
+ * Fast: only reads directory listings and root metadata.json files.
609
+ */
610
+ async listCheckpoints(): Promise<CheckpointRef[]>;
611
+
612
+ /**
613
+ * Discover all sessions across all checkpoints.
614
+ * Loads metadata but NOT transcripts (lazy loading).
615
+ */
616
+ async discover(): Promise<SessionRecord[]>;
617
+
618
+ /**
619
+ * Count sessions matching a query.
620
+ */
621
+ async count(query?: SessionQuery): Promise<number>;
622
+
623
+ // ── Querying ───────────────────────────────────────────────
624
+
625
+ /**
626
+ * Query sessions with filtering and sorting.
627
+ * Loads full transcripts only for matching sessions.
628
+ */
629
+ async query(query?: SessionQuery): Promise<SessionQueryResult>;
630
+
631
+ /**
632
+ * Get a single session by session ID.
633
+ * Searches across all checkpoints.
634
+ */
635
+ async getBySessionId(sessionId: string): Promise<SessionRecord | undefined>;
636
+
637
+ /**
638
+ * Get all sessions within a specific checkpoint.
639
+ */
640
+ async getByCheckpointId(checkpointId: string): Promise<SessionRecord[]>;
641
+
642
+ /**
643
+ * Find the session(s) linked to a specific git commit.
644
+ * Uses git log to find Entire-Checkpoint trailers.
645
+ */
646
+ async getByCommit(commitSha: string): Promise<SessionRecord[]>;
647
+
648
+ // ── Processing Tracking ────────────────────────────────────
649
+
650
+ /**
651
+ * Mark a session as processed by an external consumer.
652
+ * Tracked in a local state file to avoid re-processing.
653
+ */
654
+ async markProcessed(
655
+ sessionId: string,
656
+ metadata?: Record<string, unknown>
657
+ ): Promise<void>;
658
+
659
+ /** Check if a session has been marked as processed */
660
+ isProcessed(sessionId: string): boolean;
661
+
662
+ /** Get all processing log entries */
663
+ getProcessingLog(): ProcessingLogEntry[];
664
+
665
+ // ── Cache Management ───────────────────────────────────────
666
+
667
+ /**
668
+ * Invalidate cached data (forces re-read from git on next query).
669
+ * Called automatically when orphan branch HEAD changes.
670
+ */
671
+ invalidateCache(): void;
672
+
673
+ // ── Lifecycle ──────────────────────────────────────────────
674
+
675
+ async close(): Promise<void>;
676
+ }
677
+
678
+ export interface SessionBankOptions {
679
+ /** Git repository path (default: process.cwd()) */
680
+ repoPath?: string;
681
+ /** Orphan branch name (default: 'entire/checkpoints/v1') */
682
+ branch?: string;
683
+ /** Directory to store processing state (default: '.atlas/session-bank') */
684
+ stateDir?: string;
685
+ /** Enable in-memory caching of parsed sessions */
686
+ cache?: boolean;
687
+ }
688
+
689
+ export interface ProcessingLogEntry {
690
+ sessionId: string;
691
+ processedAt: Date;
692
+ metadata?: Record<string, unknown>;
693
+ }
694
+ ```
695
+
696
+ ### Lazy Loading Strategy
697
+
698
+ The session bank uses a two-tier loading approach:
699
+
700
+ 1. **Metadata-only (fast)**: `listCheckpoints()` and `discover()` read only `metadata.json` files. This is fast because it avoids parsing potentially large JSONL transcripts.
701
+
702
+ 2. **Full load (on demand)**: `query()`, `getBySessionId()`, `getByCheckpointId()` load the full `full.jsonl` transcript. The transcript is parsed lazily — only when a query actually matches.
703
+
704
+ This matters because JSONL transcripts can be large (Entire chunks at 50MB).
705
+
706
+ ## 6. cognitive-core Adapter: EntireTrajectorySource
707
+
708
+ This lives in cognitive-core, not in the standalone package. It adapts `SessionRecord` into `Trajectory`.
709
+
710
+ ```typescript
711
+ // src/learning/trajectory-sources/entire.ts
712
+
713
+ import type { SessionRecord, SessionBank } from '@entire-sessions/reader';
714
+ import type {
715
+ TrajectorySource,
716
+ TrajectoryWithAnalysis,
717
+ TrajectoryLoadOptions,
718
+ } from '../../types/trajectory-source.js';
719
+ import type { Trajectory, Step, Task, Outcome } from '../../types/index.js';
720
+
721
+ export interface EntireSynthesisOptions {
722
+ /** Domain to assign (default: inferred from branch/files) */
723
+ domain?: string;
724
+ /** How to determine success/failure (default: 'summary') */
725
+ outcomeStrategy?: 'summary' | 'heuristic' | 'llm';
726
+ }
727
+
728
+ export class EntireTrajectorySource implements TrajectorySource {
729
+ readonly name = 'entire';
730
+
731
+ constructor(
732
+ private sessionBank: SessionBank,
733
+ private options?: EntireSynthesisOptions
734
+ ) {}
735
+
736
+ async load(options?: TrajectoryLoadOptions): Promise<TrajectoryWithAnalysis[]> {
737
+ const result = await this.sessionBank.query({
738
+ since: options?.since,
739
+ limit: options?.limit,
740
+ unprocessedOnly: false,
741
+ });
742
+
743
+ return result.sessions
744
+ .map(session => {
745
+ try {
746
+ return {
747
+ trajectory: this.synthesize(session),
748
+ analysis: undefined, // consumer computes this
749
+ };
750
+ } catch {
751
+ return null;
752
+ }
753
+ })
754
+ .filter((t): t is TrajectoryWithAnalysis => t !== null)
755
+ .filter(t => {
756
+ if (options?.domain && t.trajectory.task.domain !== options.domain) return false;
757
+ if (options?.successOnly && !t.trajectory.outcome.success) return false;
758
+ return true;
759
+ });
760
+ }
761
+
762
+ async count(options?: TrajectoryLoadOptions): Promise<number> {
763
+ return this.sessionBank.count({
764
+ since: options?.since,
765
+ limit: options?.limit,
766
+ });
767
+ }
768
+
769
+ /**
770
+ * Convert an Entire SessionRecord into a cognitive-core Trajectory.
771
+ */
772
+ synthesize(session: SessionRecord): Trajectory {
773
+ return {
774
+ id: `entire-${session.checkpointId}-${session.sessionId}`,
775
+ task: this.extractTask(session),
776
+ steps: this.extractSteps(session),
777
+ outcome: this.inferOutcome(session),
778
+ agentId: session.metadata.agent,
779
+ timestamp: session.metadata.createdAt,
780
+ llmCalls: session.tokenUsage.apiCallCount,
781
+ totalTokens: session.tokenUsage.total,
782
+ wallTimeSeconds: 0, // not available from metadata alone
783
+ metadata: {
784
+ source: 'entire',
785
+ checkpointId: session.checkpointId,
786
+ sessionId: session.sessionId,
787
+ branch: session.metadata.branch,
788
+ filesTouched: session.metadata.filesTouched,
789
+ strategy: session.metadata.strategy,
790
+ attribution: session.attribution,
791
+ },
792
+ };
793
+ }
794
+
795
+ // ── Private helpers ──────────────────────────────────────
796
+
797
+ private extractTask(session: SessionRecord): Task {
798
+ // Prefer Entire's summary intent over raw first message
799
+ const description = session.summary?.intent
800
+ ?? this.getFirstUserMessage(session)
801
+ ?? 'Unknown task';
802
+
803
+ return {
804
+ id: `task-${session.sessionId}`,
805
+ domain: this.options?.domain ?? this.inferDomain(session),
806
+ description,
807
+ context: {
808
+ filesTouched: session.metadata.filesTouched,
809
+ branch: session.metadata.branch,
810
+ },
811
+ metadata: {},
812
+ createdAt: session.metadata.createdAt,
813
+ };
814
+ }
815
+
816
+ private extractSteps(session: SessionRecord): Step[] {
817
+ const steps: Step[] = [];
818
+
819
+ for (const msg of session.transcript) {
820
+ if (msg.role !== 'assistant') continue;
821
+
822
+ // Extract text blocks as thought
823
+ const textBlocks = msg.content.filter(b => b.type === 'text');
824
+ const thought = textBlocks.map(b => (b as { text: string }).text).join('\n');
825
+
826
+ // Extract tool_use blocks as actions
827
+ const toolBlocks = msg.content.filter(b => b.type === 'tool_use');
828
+
829
+ if (toolBlocks.length === 0) {
830
+ // Pure reasoning step (no tool calls)
831
+ if (thought) {
832
+ steps.push({
833
+ thought,
834
+ action: '',
835
+ observation: '',
836
+ timestamp: session.metadata.createdAt, // approximation
837
+ metadata: { messageUuid: msg.uuid },
838
+ });
839
+ }
840
+ } else {
841
+ // One step per tool call, sharing the thought
842
+ for (const tool of toolBlocks) {
843
+ const t = tool as { name: string; id: string; input: Record<string, unknown> };
844
+ const observation = this.findToolResult(session.transcript, t.id);
845
+
846
+ steps.push({
847
+ thought: steps.length === 0 || thought ? thought : undefined,
848
+ action: `${t.name}(${JSON.stringify(t.input)})`,
849
+ observation: observation ?? '',
850
+ timestamp: session.metadata.createdAt,
851
+ metadata: {
852
+ messageUuid: msg.uuid,
853
+ toolName: t.name,
854
+ toolUseId: t.id,
855
+ },
856
+ });
857
+ }
858
+ }
859
+ }
860
+
861
+ return steps;
862
+ }
863
+
864
+ private inferOutcome(session: SessionRecord): Outcome {
865
+ const strategy = this.options?.outcomeStrategy ?? 'summary';
866
+
867
+ if (strategy === 'summary' && session.summary) {
868
+ // Use Entire's AI-generated outcome
869
+ const outcome = session.summary.outcome.toLowerCase();
870
+ const success = !outcome.includes('fail') &&
871
+ !outcome.includes('error') &&
872
+ !outcome.includes('unable') &&
873
+ !outcome.includes('could not');
874
+ return {
875
+ success,
876
+ partialScore: success ? 1.0 : 0.0,
877
+ verificationDetails: {
878
+ entireOutcome: session.summary.outcome,
879
+ frictionPoints: session.summary.frictionPoints,
880
+ openItems: session.summary.openItems,
881
+ },
882
+ };
883
+ }
884
+
885
+ // Heuristic fallback
886
+ const hasFiles = session.metadata.filesTouched.length > 0;
887
+ return {
888
+ success: hasFiles, // if files were touched, something was accomplished
889
+ partialScore: hasFiles ? 0.7 : 0.3,
890
+ verificationDetails: { strategy: 'heuristic' },
891
+ };
892
+ }
893
+
894
+ private inferDomain(session: SessionRecord): string {
895
+ const files = session.metadata.filesTouched;
896
+ if (files.some(f => f.match(/\.(test|spec)\.(ts|js|tsx|jsx)$/))) return 'testing';
897
+ if (files.some(f => f.match(/\.(ts|tsx)$/))) return 'typescript';
898
+ if (files.some(f => f.match(/\.(py)$/))) return 'python';
899
+ if (files.some(f => f.match(/\.(go)$/))) return 'go';
900
+ if (files.some(f => f.match(/\.(rs)$/))) return 'rust';
901
+ return 'code';
902
+ }
903
+
904
+ private getFirstUserMessage(session: SessionRecord): string | undefined {
905
+ const firstUser = session.transcript.find(m => m.role === 'user');
906
+ if (!firstUser) return undefined;
907
+ const textBlock = firstUser.content.find(b => b.type === 'text');
908
+ return textBlock ? (textBlock as { text: string }).text : undefined;
909
+ }
910
+
911
+ private findToolResult(
912
+ messages: SessionRecord['transcript'],
913
+ toolUseId: string
914
+ ): string | undefined {
915
+ for (const msg of messages) {
916
+ if (msg.role !== 'user') continue;
917
+ for (const block of msg.content) {
918
+ if (block.type === 'tool_result' && (block as { toolUseId: string }).toolUseId === toolUseId) {
919
+ return (block as { content: string }).content;
920
+ }
921
+ }
922
+ }
923
+ return undefined;
924
+ }
925
+ }
926
+ ```
927
+
928
+ ### Key Synthesis Decisions
929
+
930
+ | Decision | Approach | Rationale |
931
+ |----------|----------|-----------|
932
+ | Task description | Use `summary.intent` (prefer) or first user message | Entire's AI summary produces cleaner task descriptions than raw prompts |
933
+ | Outcome | Use `summary.outcome` keywords | Entire already runs outcome analysis; avoids duplicate LLM call |
934
+ | Domain | Infer from `filesTouched` extensions | Simple heuristic; can be overridden via options |
935
+ | Step grouping | One step per tool_use, shared thought | Matches ReAct format; preserves tool-level granularity |
936
+ | Token count | Use `tokenUsage.total` directly | Entire captures real API usage, no need to estimate |
937
+ | Trajectory ID | `entire-{checkpointId}-{sessionId}` | Globally unique, traceable back to source |
938
+
939
+ ## 7. cognitive-core Integration
940
+
941
+ ### Config Addition
942
+
943
+ ```typescript
944
+ // Add to AtlasConfigSchema
945
+ const SessionBankConfigSchema = z.object({
946
+ /** Enable session bank integration */
947
+ enabled: z.boolean().default(false),
948
+ /** Orphan branch name */
949
+ branch: z.string().default('entire/checkpoints/v1'),
950
+ /** State directory (relative to storage.baseDir) */
951
+ stateDir: z.string().default('session-bank'),
952
+ /** Default outcome strategy for synthesis */
953
+ outcomeStrategy: z.enum(['summary', 'heuristic', 'llm']).default('summary'),
954
+ /** Auto-ingest unprocessed sessions on init */
955
+ autoIngest: z.boolean().default(false),
956
+ /** Maximum sessions per auto-ingest batch */
957
+ maxIngestBatch: z.number().default(20),
958
+ });
959
+ ```
960
+
961
+ ### Atlas Integration
962
+
963
+ ```typescript
964
+ class Atlas {
965
+ // Existing...
966
+
967
+ getSessionBank(): SessionBank | null;
968
+
969
+ /**
970
+ * Ingest unprocessed Entire sessions into the learning pipeline.
971
+ * Each session is: parsed → synthesized to Trajectory → processTrajectory()
972
+ */
973
+ async ingestEntireSessions(options?: {
974
+ limit?: number;
975
+ domain?: string;
976
+ outcomeStrategy?: 'summary' | 'heuristic' | 'llm';
977
+ }): Promise<IngestResult>;
978
+ }
979
+ ```
980
+
981
+ ### Ingestion Flow (inside Atlas)
982
+
983
+ ```typescript
984
+ async ingestEntireSessions(options) {
985
+ const bank = this.getSessionBank();
986
+ if (!bank) throw new Error('Session bank not enabled');
987
+
988
+ const source = new EntireTrajectorySource(bank, {
989
+ domain: options?.domain,
990
+ outcomeStrategy: options?.outcomeStrategy,
991
+ });
992
+
993
+ const sessions = await bank.query({
994
+ unprocessedOnly: true,
995
+ limit: options?.limit ?? this.config.sessionBank.maxIngestBatch,
996
+ });
997
+
998
+ const results = [];
999
+ for (const session of sessions.sessions) {
1000
+ try {
1001
+ const trajectory = source.synthesize(session);
1002
+ const processResult = await this.processTrajectory(trajectory);
1003
+ await bank.markProcessed(session.sessionId, {
1004
+ trajectoryId: trajectory.id,
1005
+ });
1006
+ results.push({ sessionId: session.sessionId, trajectoryId: trajectory.id, success: true });
1007
+ } catch (error) {
1008
+ results.push({ sessionId: session.sessionId, success: false, error: String(error) });
1009
+ }
1010
+ }
1011
+
1012
+ return { discovered: sessions.total, ingested: results.filter(r => r.success).length, ... };
1013
+ }
1014
+ ```
1015
+
1016
+ ## 8. Package Structure
1017
+
1018
+ ### Standalone Package
1019
+
1020
+ ```
1021
+ session-bank/ # standalone npm package
1022
+ ├── package.json # @entire-sessions/reader (or similar)
1023
+ ├── tsconfig.json
1024
+ ├── src/
1025
+ │ ├── index.ts # Barrel: SessionBank, types, parser
1026
+ │ ├── session-bank.ts # SessionBank class
1027
+ │ ├── git-reader.ts # EntireGitReader
1028
+ │ ├── parser.ts # EntireTranscriptParser
1029
+ │ └── types.ts # SessionRecord, SessionQuery, etc.
1030
+ └── tests/
1031
+ ├── fixtures/ # Sample JSONL + metadata files
1032
+ │ ├── simple-session/
1033
+ │ │ ├── metadata.json
1034
+ │ │ └── full.jsonl
1035
+ │ └── multi-tool-session/
1036
+ │ ├── metadata.json
1037
+ │ └── full.jsonl
1038
+ ├── parser.test.ts
1039
+ ├── git-reader.test.ts
1040
+ └── session-bank.test.ts
1041
+ ```
1042
+
1043
+ ### cognitive-core Additions
1044
+
1045
+ ```
1046
+ src/
1047
+ ├── learning/
1048
+ │ └── trajectory-sources/
1049
+ │ ├── entire.ts # EntireTrajectorySource (NEW)
1050
+ │ └── index.ts # Updated barrel
1051
+ └── types/
1052
+ └── config.ts # SessionBankConfigSchema addition
1053
+ ```
1054
+
1055
+ ## 9. Implementation Plan
1056
+
1057
+ ### Phase 1: Standalone Reader (session-bank package)
1058
+ - `EntireGitReader` — git plumbing, branch existence, file reading
1059
+ - `EntireTranscriptParser` — JSONL parsing, metadata parsing, chunked transcripts
1060
+ - Types (`SessionRecord`, `TranscriptMessage`, `ContentBlock`, etc.)
1061
+ - Unit tests with real Entire fixture data
1062
+
1063
+ ### Phase 2: Session Bank Facade
1064
+ - `SessionBank` class — discover, query, get, count
1065
+ - Lazy loading (metadata-first, transcript-on-demand)
1066
+ - Processing log persistence
1067
+ - Cache invalidation via orphan branch HEAD comparison
1068
+
1069
+ ### Phase 3: cognitive-core Adapter
1070
+ - `EntireTrajectorySource` implementing `TrajectorySource`
1071
+ - `synthesize()` — SessionRecord → Trajectory conversion
1072
+ - ReAct step grouping, outcome inference (summary-based + heuristic)
1073
+ - `SessionBankConfigSchema` addition to `AtlasConfig`
1074
+ - `Atlas.ingestEntireSessions()` integration
1075
+
1076
+ ### Phase 4: Polish
1077
+ - Commit-linked queries (`getByCommit()` via trailer parsing)
1078
+ - `search` filter (full-text across user messages)
1079
+ - Task/subagent checkpoint support
1080
+ - Error tolerance for corrupt/partial data
1081
+ - Integration test against a real Entire-enabled repo
1082
+
1083
+ ## 10. Design Decisions
1084
+
1085
+ ### Why a standalone package?
1086
+
1087
+ The session bank reads Entire's data format — it doesn't need cognitive-core's Trajectory type, learning pipeline, or memory system. Keeping it standalone means:
1088
+ - Entire's data can be consumed by other tools (analytics, dashboards, review UIs)
1089
+ - The package has zero dependencies beyond Node.js built-ins
1090
+ - Testing is simpler (no cognitive-core setup needed)
1091
+ - cognitive-core's `EntireTrajectorySource` adapter is a thin 100-line bridge
1092
+
1093
+ ### Why `summary.intent` over first user message for task description?
1094
+
1095
+ Entire's AI-generated summaries distill multi-turn sessions into coherent task descriptions. The first user message might be "fix this" with no context. The summary's `intent` field is "Fix the authentication token refresh bug in the middleware" — much better for learning.
1096
+
1097
+ ### Why `summary`-based outcome inference by default?
1098
+
1099
+ Entire already runs an LLM to generate session summaries with an `outcome` field. Using this avoids a duplicate LLM call during ingestion. The summary-based strategy examines the outcome text for failure indicators — this is nearly as accurate as a dedicated outcome classifier, at zero additional cost.
1100
+
1101
+ ### Why checkpoint-indexed, not session-indexed?
1102
+
1103
+ Entire's storage is organized by checkpoint ID, not session ID. A single checkpoint can contain multiple concurrent sessions. The session bank follows this structure rather than fighting it — `getByCheckpointId()` returns all sessions in a checkpoint, while `getBySessionId()` searches across checkpoints.
1104
+
1105
+ ### Why processing log rather than modifying Entire's data?
1106
+
1107
+ The session bank never writes to the orphan branch. Processing state is kept in a local file (`.atlas/session-bank/processed.json`). This means:
1108
+ - Multiple consumers can independently track their own processing state
1109
+ - Entire's data stays immutable and authoritative
1110
+ - No risk of corrupting the orphan branch
1111
+
1112
+ ## 11. Entire Features We Leverage
1113
+
1114
+ | Entire Feature | How We Use It |
1115
+ |---|---|
1116
+ | `summary.intent` | Task description for Trajectory |
1117
+ | `summary.outcome` | Outcome inference (success/failure) |
1118
+ | `summary.learnings` | Candidate knowledge notes for KnowledgeBank |
1119
+ | `summary.friction_points` | Anti-pattern identification for playbooks |
1120
+ | `files_touched` | Domain inference, file-level context |
1121
+ | `token_usage` | Direct `totalTokens` on Trajectory (no estimation) |
1122
+ | `initial_attribution` | Code contribution metrics for meta-learning |
1123
+ | `Entire-Checkpoint` trailers | Commit↔session linking |
1124
+ | Checkpoint sharding | Efficient git tree enumeration |
1125
+ | Transcript chunking | Handle large sessions (>50MB) gracefully |
1126
+
1127
+ ## 12. Future Extensions
1128
+
1129
+ - **Learnings → KnowledgeBank pipeline** — `summary.learnings` maps directly to KnowledgeBank observations; auto-extract without re-analyzing the transcript
1130
+ - **Friction → anti-pattern extraction** — `summary.friction_points` can seed `playbook.applicability.antiPatterns`
1131
+ - **Attribution-weighted learning** — weight trajectory importance by `agentContribution` score; sessions where the human did most of the work may be less useful for agent learning
1132
+ - **Cross-repo federation** — aggregate session banks from multiple repos into a shared learning corpus
1133
+ - **Incremental sync** — track orphan branch commit SHA; only re-scan checkpoints added since last sync
1134
+ - **Gemini CLI support** — Entire captures Gemini sessions too; parser can be extended to handle Gemini's JSON format alongside Claude's JSONL