cognitive-core 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/CLAUDE.md +233 -0
  2. package/README.md +370 -54
  3. package/dist/atlas.d.ts +10 -10
  4. package/dist/atlas.d.ts.map +1 -1
  5. package/dist/atlas.js +79 -48
  6. package/dist/atlas.js.map +1 -1
  7. package/dist/bin/cli-utils.d.ts +37 -0
  8. package/dist/bin/cli-utils.d.ts.map +1 -0
  9. package/dist/bin/cli-utils.js +176 -0
  10. package/dist/bin/cli-utils.js.map +1 -0
  11. package/dist/bin/cognitive-core.d.ts +2 -12
  12. package/dist/bin/cognitive-core.d.ts.map +1 -1
  13. package/dist/bin/cognitive-core.js +76 -351
  14. package/dist/bin/cognitive-core.js.map +1 -1
  15. package/dist/bin/commands/kb.d.ts +6 -0
  16. package/dist/bin/commands/kb.d.ts.map +1 -0
  17. package/dist/bin/commands/kb.js +240 -0
  18. package/dist/bin/commands/kb.js.map +1 -0
  19. package/dist/bin/commands/learn.d.ts +6 -0
  20. package/dist/bin/commands/learn.d.ts.map +1 -0
  21. package/dist/bin/commands/learn.js +91 -0
  22. package/dist/bin/commands/learn.js.map +1 -0
  23. package/dist/bin/commands/legacy.d.ts +12 -0
  24. package/dist/bin/commands/legacy.d.ts.map +1 -0
  25. package/dist/bin/commands/legacy.js +142 -0
  26. package/dist/bin/commands/legacy.js.map +1 -0
  27. package/dist/bin/commands/run.d.ts +3 -0
  28. package/dist/bin/commands/run.d.ts.map +1 -0
  29. package/dist/bin/commands/run.js +99 -0
  30. package/dist/bin/commands/run.js.map +1 -0
  31. package/dist/bin/commands/sessions.d.ts +9 -0
  32. package/dist/bin/commands/sessions.d.ts.map +1 -0
  33. package/dist/bin/commands/sessions.js +183 -0
  34. package/dist/bin/commands/sessions.js.map +1 -0
  35. package/dist/bin/commands/skills.d.ts +6 -0
  36. package/dist/bin/commands/skills.d.ts.map +1 -0
  37. package/dist/bin/commands/skills.js +135 -0
  38. package/dist/bin/commands/skills.js.map +1 -0
  39. package/dist/embeddings/index.d.ts +1 -0
  40. package/dist/embeddings/index.d.ts.map +1 -1
  41. package/dist/embeddings/index.js +2 -0
  42. package/dist/embeddings/index.js.map +1 -1
  43. package/dist/embeddings/inverted-index.d.ts +47 -0
  44. package/dist/embeddings/inverted-index.d.ts.map +1 -0
  45. package/dist/embeddings/inverted-index.js +122 -0
  46. package/dist/embeddings/inverted-index.js.map +1 -0
  47. package/dist/embeddings/manager.d.ts +3 -1
  48. package/dist/embeddings/manager.d.ts.map +1 -1
  49. package/dist/embeddings/manager.js +12 -7
  50. package/dist/embeddings/manager.js.map +1 -1
  51. package/dist/embeddings/vector-store.d.ts +7 -3
  52. package/dist/embeddings/vector-store.d.ts.map +1 -1
  53. package/dist/embeddings/vector-store.js +22 -6
  54. package/dist/embeddings/vector-store.js.map +1 -1
  55. package/dist/factory.d.ts +11 -12
  56. package/dist/factory.d.ts.map +1 -1
  57. package/dist/factory.js +20 -7
  58. package/dist/factory.js.map +1 -1
  59. package/dist/index.d.ts +7 -6
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +37 -5
  62. package/dist/index.js.map +1 -1
  63. package/dist/learning/analyzer.d.ts.map +1 -1
  64. package/dist/learning/analyzer.js +17 -35
  65. package/dist/learning/analyzer.js.map +1 -1
  66. package/dist/learning/energy-evaluator.d.ts +128 -0
  67. package/dist/learning/energy-evaluator.d.ts.map +1 -0
  68. package/dist/learning/energy-evaluator.js +175 -0
  69. package/dist/learning/energy-evaluator.js.map +1 -0
  70. package/dist/learning/healing-orchestrator.d.ts +182 -0
  71. package/dist/learning/healing-orchestrator.d.ts.map +1 -0
  72. package/dist/learning/healing-orchestrator.js +250 -0
  73. package/dist/learning/healing-orchestrator.js.map +1 -0
  74. package/dist/learning/index.d.ts +7 -2
  75. package/dist/learning/index.d.ts.map +1 -1
  76. package/dist/learning/index.js +13 -2
  77. package/dist/learning/index.js.map +1 -1
  78. package/dist/learning/instant-loop.d.ts +87 -0
  79. package/dist/learning/instant-loop.d.ts.map +1 -0
  80. package/dist/learning/instant-loop.js +264 -0
  81. package/dist/learning/instant-loop.js.map +1 -0
  82. package/dist/learning/loop-coordinator.d.ts +61 -0
  83. package/dist/learning/loop-coordinator.d.ts.map +1 -0
  84. package/dist/learning/loop-coordinator.js +96 -0
  85. package/dist/learning/loop-coordinator.js.map +1 -0
  86. package/dist/learning/maintenance-scheduler.d.ts +141 -0
  87. package/dist/learning/maintenance-scheduler.d.ts.map +1 -0
  88. package/dist/learning/maintenance-scheduler.js +186 -0
  89. package/dist/learning/maintenance-scheduler.js.map +1 -0
  90. package/dist/learning/meta-learner.d.ts.map +1 -1
  91. package/dist/learning/meta-learner.js +4 -21
  92. package/dist/learning/meta-learner.js.map +1 -1
  93. package/dist/learning/pipeline.d.ts +31 -4
  94. package/dist/learning/pipeline.d.ts.map +1 -1
  95. package/dist/learning/pipeline.js +64 -12
  96. package/dist/learning/pipeline.js.map +1 -1
  97. package/dist/learning/reflexion-generator.d.ts +64 -0
  98. package/dist/learning/reflexion-generator.d.ts.map +1 -0
  99. package/dist/learning/reflexion-generator.js +194 -0
  100. package/dist/learning/reflexion-generator.js.map +1 -0
  101. package/dist/learning/trajectory-sources/entire.d.ts +8 -5
  102. package/dist/learning/trajectory-sources/entire.d.ts.map +1 -1
  103. package/dist/learning/trajectory-sources/entire.js +13 -6
  104. package/dist/learning/trajectory-sources/entire.js.map +1 -1
  105. package/dist/learning/trajectory-sources/index.d.ts +1 -1
  106. package/dist/learning/trajectory-sources/index.d.ts.map +1 -1
  107. package/dist/learning/trajectory-sources/index.js +1 -1
  108. package/dist/learning/trajectory-sources/index.js.map +1 -1
  109. package/dist/learning/trajectory-sources/pipeline.d.ts +4 -4
  110. package/dist/learning/trajectory-sources/pipeline.d.ts.map +1 -1
  111. package/dist/learning/trajectory-sources/pipeline.js +2 -2
  112. package/dist/learning/trajectory-sources/pipeline.js.map +1 -1
  113. package/dist/learning/unified-pipeline.d.ts +281 -0
  114. package/dist/learning/unified-pipeline.d.ts.map +1 -0
  115. package/dist/learning/unified-pipeline.js +637 -0
  116. package/dist/learning/unified-pipeline.js.map +1 -0
  117. package/dist/memory/candidate-retrieval.d.ts +43 -0
  118. package/dist/memory/candidate-retrieval.d.ts.map +1 -0
  119. package/dist/memory/candidate-retrieval.js +41 -0
  120. package/dist/memory/candidate-retrieval.js.map +1 -0
  121. package/dist/memory/causal-store.d.ts +97 -0
  122. package/dist/memory/causal-store.d.ts.map +1 -0
  123. package/dist/memory/causal-store.js +209 -0
  124. package/dist/memory/causal-store.js.map +1 -0
  125. package/dist/memory/coherence.d.ts +71 -0
  126. package/dist/memory/coherence.d.ts.map +1 -0
  127. package/dist/memory/coherence.js +176 -0
  128. package/dist/memory/coherence.js.map +1 -0
  129. package/dist/memory/experience.d.ts +39 -6
  130. package/dist/memory/experience.d.ts.map +1 -1
  131. package/dist/memory/experience.js +193 -49
  132. package/dist/memory/experience.js.map +1 -1
  133. package/dist/memory/index.d.ts +7 -0
  134. package/dist/memory/index.d.ts.map +1 -1
  135. package/dist/memory/index.js +12 -0
  136. package/dist/memory/index.js.map +1 -1
  137. package/dist/memory/knowledge-bank.d.ts +14 -0
  138. package/dist/memory/knowledge-bank.d.ts.map +1 -1
  139. package/dist/memory/knowledge-bank.js +45 -0
  140. package/dist/memory/knowledge-bank.js.map +1 -1
  141. package/dist/memory/meta.d.ts +7 -8
  142. package/dist/memory/meta.d.ts.map +1 -1
  143. package/dist/memory/meta.js +73 -79
  144. package/dist/memory/meta.js.map +1 -1
  145. package/dist/memory/playbook.d.ts +26 -9
  146. package/dist/memory/playbook.d.ts.map +1 -1
  147. package/dist/memory/playbook.js +198 -74
  148. package/dist/memory/playbook.js.map +1 -1
  149. package/dist/memory/reasoning-bank.d.ts +130 -0
  150. package/dist/memory/reasoning-bank.d.ts.map +1 -0
  151. package/dist/memory/reasoning-bank.js +342 -0
  152. package/dist/memory/reasoning-bank.js.map +1 -0
  153. package/dist/memory/reflexion.d.ts +59 -0
  154. package/dist/memory/reflexion.d.ts.map +1 -0
  155. package/dist/memory/reflexion.js +96 -0
  156. package/dist/memory/reflexion.js.map +1 -0
  157. package/dist/memory/system.d.ts +7 -2
  158. package/dist/memory/system.d.ts.map +1 -1
  159. package/dist/memory/system.js +19 -7
  160. package/dist/memory/system.js.map +1 -1
  161. package/dist/memory/temporal-compressor.d.ts +126 -0
  162. package/dist/memory/temporal-compressor.d.ts.map +1 -0
  163. package/dist/memory/temporal-compressor.js +335 -0
  164. package/dist/memory/temporal-compressor.js.map +1 -0
  165. package/dist/persistence/index.d.ts +11 -0
  166. package/dist/persistence/index.d.ts.map +1 -0
  167. package/dist/persistence/index.js +11 -0
  168. package/dist/persistence/index.js.map +1 -0
  169. package/dist/persistence/migrator.d.ts +40 -0
  170. package/dist/persistence/migrator.d.ts.map +1 -0
  171. package/dist/persistence/migrator.js +238 -0
  172. package/dist/persistence/migrator.js.map +1 -0
  173. package/dist/persistence/serializers.d.ts +45 -0
  174. package/dist/persistence/serializers.d.ts.map +1 -0
  175. package/dist/persistence/serializers.js +80 -0
  176. package/dist/persistence/serializers.js.map +1 -0
  177. package/dist/persistence/sqlite-persistence.d.ts +228 -0
  178. package/dist/persistence/sqlite-persistence.d.ts.map +1 -0
  179. package/dist/persistence/sqlite-persistence.js +588 -0
  180. package/dist/persistence/sqlite-persistence.js.map +1 -0
  181. package/dist/runtime/flows/learning.d.ts +10 -12
  182. package/dist/runtime/flows/learning.d.ts.map +1 -1
  183. package/dist/runtime/flows/learning.js +10 -23
  184. package/dist/runtime/flows/learning.js.map +1 -1
  185. package/dist/search/index.d.ts +1 -0
  186. package/dist/search/index.d.ts.map +1 -1
  187. package/dist/search/index.js +2 -0
  188. package/dist/search/index.js.map +1 -1
  189. package/dist/search/moe-gate.d.ts +124 -0
  190. package/dist/search/moe-gate.d.ts.map +1 -0
  191. package/dist/search/moe-gate.js +234 -0
  192. package/dist/search/moe-gate.js.map +1 -0
  193. package/dist/search/router.d.ts +32 -2
  194. package/dist/search/router.d.ts.map +1 -1
  195. package/dist/search/router.js +87 -4
  196. package/dist/search/router.js.map +1 -1
  197. package/dist/session-bank/git-reader.d.ts +9 -4
  198. package/dist/session-bank/git-reader.d.ts.map +1 -1
  199. package/dist/session-bank/git-reader.js +22 -15
  200. package/dist/session-bank/git-reader.js.map +1 -1
  201. package/dist/session-bank/index.d.ts +2 -2
  202. package/dist/session-bank/index.d.ts.map +1 -1
  203. package/dist/session-bank/index.js +2 -2
  204. package/dist/session-bank/index.js.map +1 -1
  205. package/dist/session-bank/parser.d.ts +16 -5
  206. package/dist/session-bank/parser.d.ts.map +1 -1
  207. package/dist/session-bank/parser.js +187 -80
  208. package/dist/session-bank/parser.js.map +1 -1
  209. package/dist/session-bank/session-bank.d.ts +5 -0
  210. package/dist/session-bank/session-bank.d.ts.map +1 -1
  211. package/dist/session-bank/session-bank.js +30 -9
  212. package/dist/session-bank/session-bank.js.map +1 -1
  213. package/dist/session-bank/types.d.ts +4 -1
  214. package/dist/session-bank/types.d.ts.map +1 -1
  215. package/dist/session-bank/types.js +3 -3
  216. package/dist/session-bank/types.js.map +1 -1
  217. package/dist/surfacing/skill-publisher.d.ts.map +1 -1
  218. package/dist/surfacing/skill-publisher.js +15 -43
  219. package/dist/surfacing/skill-publisher.js.map +1 -1
  220. package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -1
  221. package/dist/surfacing/sqlite-storage-adapter.js +13 -21
  222. package/dist/surfacing/sqlite-storage-adapter.js.map +1 -1
  223. package/dist/types/config.d.ts +100 -0
  224. package/dist/types/config.d.ts.map +1 -1
  225. package/dist/types/config.js +27 -0
  226. package/dist/types/config.js.map +1 -1
  227. package/dist/types/index.d.ts +2 -2
  228. package/dist/types/index.d.ts.map +1 -1
  229. package/dist/types/index.js +1 -1
  230. package/dist/types/index.js.map +1 -1
  231. package/dist/types/memory.d.ts +52 -0
  232. package/dist/types/memory.d.ts.map +1 -1
  233. package/dist/types/memory.js +13 -0
  234. package/dist/types/memory.js.map +1 -1
  235. package/dist/types/playbook.d.ts +4 -0
  236. package/dist/types/playbook.d.ts.map +1 -1
  237. package/dist/types/playbook.js.map +1 -1
  238. package/dist/utils/error-classifier.d.ts +30 -0
  239. package/dist/utils/error-classifier.d.ts.map +1 -0
  240. package/dist/utils/error-classifier.js +85 -0
  241. package/dist/utils/error-classifier.js.map +1 -0
  242. package/dist/utils/index.d.ts +3 -0
  243. package/dist/utils/index.d.ts.map +1 -1
  244. package/dist/utils/index.js +3 -0
  245. package/dist/utils/index.js.map +1 -1
  246. package/dist/utils/partitioned-store.d.ts +93 -0
  247. package/dist/utils/partitioned-store.d.ts.map +1 -0
  248. package/dist/utils/partitioned-store.js +251 -0
  249. package/dist/utils/partitioned-store.js.map +1 -0
  250. package/dist/utils/trajectory-helpers.d.ts +39 -0
  251. package/dist/utils/trajectory-helpers.d.ts.map +1 -0
  252. package/dist/utils/trajectory-helpers.js +57 -0
  253. package/dist/utils/trajectory-helpers.js.map +1 -0
  254. package/dist/workspace/runner.d.ts +3 -4
  255. package/dist/workspace/runner.d.ts.map +1 -1
  256. package/dist/workspace/runner.js.map +1 -1
  257. package/dist/workspace/types.d.ts +9 -2
  258. package/dist/workspace/types.d.ts.map +1 -1
  259. package/dist/workspace/types.js.map +1 -1
  260. package/package.json +6 -4
  261. package/references/sessionlog/.husky/pre-commit +1 -0
  262. package/references/sessionlog/.lintstagedrc.json +4 -0
  263. package/references/sessionlog/.prettierignore +4 -0
  264. package/references/sessionlog/.prettierrc.json +11 -0
  265. package/references/sessionlog/LICENSE +21 -0
  266. package/references/sessionlog/README.md +453 -0
  267. package/references/sessionlog/eslint.config.js +58 -0
  268. package/references/sessionlog/package-lock.json +3672 -0
  269. package/references/sessionlog/package.json +65 -0
  270. package/references/sessionlog/src/__tests__/agent-hooks.test.ts +570 -0
  271. package/references/sessionlog/src/__tests__/agent-registry.test.ts +127 -0
  272. package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +225 -0
  273. package/references/sessionlog/src/__tests__/claude-generator.test.ts +46 -0
  274. package/references/sessionlog/src/__tests__/commit-msg.test.ts +86 -0
  275. package/references/sessionlog/src/__tests__/cursor-agent.test.ts +224 -0
  276. package/references/sessionlog/src/__tests__/e2e-live.test.ts +890 -0
  277. package/references/sessionlog/src/__tests__/event-log.test.ts +183 -0
  278. package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +105 -0
  279. package/references/sessionlog/src/__tests__/gemini-agent.test.ts +375 -0
  280. package/references/sessionlog/src/__tests__/git-hooks.test.ts +78 -0
  281. package/references/sessionlog/src/__tests__/hook-managers.test.ts +121 -0
  282. package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +759 -0
  283. package/references/sessionlog/src/__tests__/opencode-agent.test.ts +338 -0
  284. package/references/sessionlog/src/__tests__/redaction.test.ts +136 -0
  285. package/references/sessionlog/src/__tests__/session-repo.test.ts +353 -0
  286. package/references/sessionlog/src/__tests__/session-store.test.ts +166 -0
  287. package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +466 -0
  288. package/references/sessionlog/src/__tests__/skill-live.test.ts +461 -0
  289. package/references/sessionlog/src/__tests__/summarize.test.ts +348 -0
  290. package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +610 -0
  291. package/references/sessionlog/src/__tests__/task-plan-live.test.ts +632 -0
  292. package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +121 -0
  293. package/references/sessionlog/src/__tests__/types.test.ts +166 -0
  294. package/references/sessionlog/src/__tests__/utils.test.ts +333 -0
  295. package/references/sessionlog/src/__tests__/validation.test.ts +103 -0
  296. package/references/sessionlog/src/__tests__/worktree.test.ts +57 -0
  297. package/references/sessionlog/src/agent/agents/claude-code.ts +1089 -0
  298. package/references/sessionlog/src/agent/agents/cursor.ts +361 -0
  299. package/references/sessionlog/src/agent/agents/gemini-cli.ts +632 -0
  300. package/references/sessionlog/src/agent/agents/opencode.ts +540 -0
  301. package/references/sessionlog/src/agent/registry.ts +143 -0
  302. package/references/sessionlog/src/agent/session-types.ts +113 -0
  303. package/references/sessionlog/src/agent/types.ts +220 -0
  304. package/references/sessionlog/src/cli.ts +597 -0
  305. package/references/sessionlog/src/commands/clean.ts +133 -0
  306. package/references/sessionlog/src/commands/disable.ts +84 -0
  307. package/references/sessionlog/src/commands/doctor.ts +145 -0
  308. package/references/sessionlog/src/commands/enable.ts +202 -0
  309. package/references/sessionlog/src/commands/explain.ts +261 -0
  310. package/references/sessionlog/src/commands/reset.ts +105 -0
  311. package/references/sessionlog/src/commands/resume.ts +180 -0
  312. package/references/sessionlog/src/commands/rewind.ts +195 -0
  313. package/references/sessionlog/src/commands/setup-ccweb.ts +275 -0
  314. package/references/sessionlog/src/commands/status.ts +172 -0
  315. package/references/sessionlog/src/config.ts +165 -0
  316. package/references/sessionlog/src/events/event-log.ts +126 -0
  317. package/references/sessionlog/src/git-operations.ts +558 -0
  318. package/references/sessionlog/src/hooks/git-hooks.ts +165 -0
  319. package/references/sessionlog/src/hooks/lifecycle.ts +391 -0
  320. package/references/sessionlog/src/index.ts +650 -0
  321. package/references/sessionlog/src/security/redaction.ts +283 -0
  322. package/references/sessionlog/src/session/state-machine.ts +452 -0
  323. package/references/sessionlog/src/store/checkpoint-store.ts +509 -0
  324. package/references/sessionlog/src/store/native-store.ts +173 -0
  325. package/references/sessionlog/src/store/provider-types.ts +99 -0
  326. package/references/sessionlog/src/store/session-store.ts +266 -0
  327. package/references/sessionlog/src/strategy/attribution.ts +296 -0
  328. package/references/sessionlog/src/strategy/common.ts +207 -0
  329. package/references/sessionlog/src/strategy/content-overlap.ts +228 -0
  330. package/references/sessionlog/src/strategy/manual-commit.ts +988 -0
  331. package/references/sessionlog/src/strategy/types.ts +279 -0
  332. package/references/sessionlog/src/summarize/claude-generator.ts +115 -0
  333. package/references/sessionlog/src/summarize/summarize.ts +432 -0
  334. package/references/sessionlog/src/types.ts +508 -0
  335. package/references/sessionlog/src/utils/chunk-files.ts +49 -0
  336. package/references/sessionlog/src/utils/commit-message.ts +65 -0
  337. package/references/sessionlog/src/utils/detect-agent.ts +36 -0
  338. package/references/sessionlog/src/utils/hook-managers.ts +125 -0
  339. package/references/sessionlog/src/utils/ide-tags.ts +32 -0
  340. package/references/sessionlog/src/utils/paths.ts +79 -0
  341. package/references/sessionlog/src/utils/preview-rewind.ts +80 -0
  342. package/references/sessionlog/src/utils/rewind-conflict.ts +121 -0
  343. package/references/sessionlog/src/utils/shadow-branch.ts +109 -0
  344. package/references/sessionlog/src/utils/string-utils.ts +46 -0
  345. package/references/sessionlog/src/utils/todo-extract.ts +188 -0
  346. package/references/sessionlog/src/utils/trailers.ts +187 -0
  347. package/references/sessionlog/src/utils/transcript-parse.ts +177 -0
  348. package/references/sessionlog/src/utils/transcript-timestamp.ts +59 -0
  349. package/references/sessionlog/src/utils/tree-ops.ts +219 -0
  350. package/references/sessionlog/src/utils/tty.ts +72 -0
  351. package/references/sessionlog/src/utils/validation.ts +65 -0
  352. package/references/sessionlog/src/utils/worktree.ts +58 -0
  353. package/references/sessionlog/src/wire-types.ts +59 -0
  354. package/references/sessionlog/templates/setup-env.sh +153 -0
  355. package/references/sessionlog/tsconfig.json +18 -0
  356. package/references/sessionlog/vitest.config.ts +12 -0
  357. package/references/skill-tree/.sudocode/issues.jsonl +8 -0
  358. package/references/skill-tree/.sudocode/specs.jsonl +2 -0
  359. package/references/skill-tree/CLAUDE.md +56 -80
  360. package/references/skill-tree/README.md +188 -140
  361. package/references/skill-tree/examples/basic-usage.ts +95 -121
  362. package/references/skill-tree/package-lock.json +369 -26
  363. package/references/skill-tree/package.json +1 -1
  364. package/src/atlas.ts +97 -67
  365. package/src/bin/cli-utils.ts +220 -0
  366. package/src/bin/cognitive-core.ts +84 -392
  367. package/src/bin/commands/kb.ts +266 -0
  368. package/src/bin/commands/learn.ts +100 -0
  369. package/src/bin/commands/legacy.ts +182 -0
  370. package/src/bin/commands/run.ts +113 -0
  371. package/src/bin/commands/sessions.ts +221 -0
  372. package/src/bin/commands/skills.ts +146 -0
  373. package/src/embeddings/index.ts +3 -0
  374. package/src/embeddings/inverted-index.ts +134 -0
  375. package/src/embeddings/manager.ts +13 -8
  376. package/src/embeddings/vector-store.ts +21 -9
  377. package/src/factory.ts +33 -16
  378. package/src/index.ts +109 -9
  379. package/src/learning/analyzer.ts +21 -37
  380. package/src/learning/energy-evaluator.ts +282 -0
  381. package/src/learning/healing-orchestrator.ts +383 -0
  382. package/src/learning/index.ts +65 -9
  383. package/src/learning/instant-loop.ts +357 -0
  384. package/src/learning/maintenance-scheduler.ts +271 -0
  385. package/src/learning/meta-learner.ts +5 -23
  386. package/src/learning/reflexion-generator.ts +273 -0
  387. package/src/learning/trajectory-sources/entire.ts +24 -13
  388. package/src/learning/trajectory-sources/index.ts +2 -2
  389. package/src/learning/trajectory-sources/pipeline.ts +5 -5
  390. package/src/learning/unified-pipeline.ts +921 -0
  391. package/src/memory/candidate-retrieval.ts +71 -0
  392. package/src/memory/causal-store.ts +273 -0
  393. package/src/memory/coherence.ts +252 -0
  394. package/src/memory/experience.ts +217 -50
  395. package/src/memory/index.ts +43 -0
  396. package/src/memory/knowledge-bank.ts +57 -0
  397. package/src/memory/meta.ts +78 -96
  398. package/src/memory/playbook.ts +239 -75
  399. package/src/memory/reasoning-bank.ts +458 -0
  400. package/src/memory/reflexion.ts +122 -0
  401. package/src/memory/system.ts +21 -5
  402. package/src/memory/temporal-compressor.ts +409 -0
  403. package/src/persistence/index.ts +37 -0
  404. package/src/persistence/migrator.ts +298 -0
  405. package/src/persistence/serializers.ts +79 -0
  406. package/src/persistence/sqlite-persistence.ts +925 -0
  407. package/src/runtime/flows/learning.ts +25 -42
  408. package/src/search/index.ts +10 -0
  409. package/src/search/moe-gate.ts +304 -0
  410. package/src/search/router.ts +111 -4
  411. package/src/session-bank/git-reader.ts +29 -19
  412. package/src/session-bank/index.ts +4 -2
  413. package/src/session-bank/parser.ts +280 -98
  414. package/src/session-bank/session-bank.ts +33 -12
  415. package/src/session-bank/types.ts +8 -5
  416. package/src/surfacing/skill-publisher.ts +17 -49
  417. package/src/surfacing/sqlite-storage-adapter.ts +16 -32
  418. package/src/types/config.ts +30 -0
  419. package/src/types/index.ts +3 -0
  420. package/src/types/memory.ts +30 -0
  421. package/src/types/playbook.ts +4 -0
  422. package/src/utils/error-classifier.ts +113 -0
  423. package/src/utils/index.ts +18 -0
  424. package/src/utils/partitioned-store.ts +299 -0
  425. package/src/utils/trajectory-helpers.ts +79 -0
  426. package/src/workspace/runner.ts +3 -3
  427. package/src/workspace/types.ts +10 -2
  428. package/tests/embeddings/inverted-index.test.ts +138 -0
  429. package/tests/feature-toggles.test.ts +275 -0
  430. package/tests/gap-fixes.test.ts +17 -4
  431. package/tests/integration/cli-e2e.test.ts +621 -0
  432. package/tests/integration/e2e.test.ts +6 -5
  433. package/tests/integration/entire-e2e.test.ts +314 -125
  434. package/tests/integration/persistence-e2e.test.ts +741 -0
  435. package/tests/integration/phase-e2e.test.ts +1143 -0
  436. package/tests/integration/session-bank.test.ts +20 -14
  437. package/tests/integration/sessionlog-e2e.test.ts +329 -0
  438. package/tests/integration/unified-pipeline-e2e.test.ts +634 -0
  439. package/tests/learning/analyzer.test.ts +1 -1
  440. package/tests/learning/energy-evaluator.test.ts +180 -0
  441. package/tests/learning/entire-trajectory-source.test.ts +25 -25
  442. package/tests/learning/healing-orchestrator.test.ts +269 -0
  443. package/tests/learning/instant-loop.test.ts +243 -0
  444. package/tests/learning/maintenance-scheduler.test.ts +191 -0
  445. package/tests/learning/reflexion-generator.test.ts +411 -0
  446. package/tests/learning/trajectory-sources.test.ts +12 -4
  447. package/tests/learning/unified-pipeline.test.ts +322 -0
  448. package/tests/mcp/playbook-server.test.ts +6 -1
  449. package/tests/memory/causal-store.test.ts +276 -0
  450. package/tests/memory/coherence.test.ts +232 -0
  451. package/tests/memory/experience.test.ts +8 -3
  452. package/tests/memory/playbook.test.ts +307 -1
  453. package/tests/memory/provenance.test.ts +11 -2
  454. package/tests/memory/reasoning-bank.test.ts +239 -0
  455. package/tests/memory/reflexion.test.ts +166 -0
  456. package/tests/memory/skill-exporter.test.ts +6 -1
  457. package/tests/memory/system.test.ts +6 -1
  458. package/tests/memory/temporal-compressor.test.ts +318 -0
  459. package/tests/persistence/migrator.test.ts +1009 -0
  460. package/tests/persistence/sqlite-persistence.test.ts +635 -0
  461. package/tests/runtime/agent-manager.test.ts +6 -1
  462. package/tests/runtime/delegate.test.ts +6 -1
  463. package/tests/search/moe-gate.test.ts +250 -0
  464. package/tests/search/refinement-loop.test.ts +11 -2
  465. package/tests/search/router.test.ts +81 -2
  466. package/tests/session-bank/fixtures/sessionlog-root-metadata.json +16 -0
  467. package/tests/session-bank/fixtures/sessionlog-session/full.jsonl +6 -0
  468. package/tests/session-bank/fixtures/sessionlog-session/metadata.json +55 -0
  469. package/tests/session-bank/git-reader.test.ts +13 -13
  470. package/tests/session-bank/parser.test.ts +135 -3
  471. package/tests/session-bank/session-bank.test.ts +1 -1
  472. package/tests/surfacing/skill-library.test.ts +6 -1
  473. package/tests/surfacing/skill-publisher.test.ts +24 -58
  474. package/tests/surfacing/sqlite-storage-adapter.test.ts +11 -23
  475. package/tests/utils/partitioned-store.test.ts +230 -0
  476. package/tests/workspace/full-flow.test.ts +10 -4
  477. package/tests/workspace/runner.test.ts +10 -4
  478. package/docs/DESIGN-workspace-migration.md +0 -1079
  479. package/docs/PLAN-agentic-workspace-implementation.md +0 -717
  480. package/docs/PLAN-graph-migration.md +0 -299
  481. package/docs/PLAN-session-bank-implementation.md +0 -474
  482. package/src/learning/pipeline.ts +0 -323
  483. package/tests/learning/pipeline.test.ts +0 -176
@@ -1,412 +1,110 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Cognitive Core CLI
3
+ * Cognitive Core CLI — learning system for AI agents.
4
4
  *
5
- * Command-line interface for interacting with the cognitive-core learning system.
6
- * This replaces the MCP server approach, providing a simpler interface for agents
7
- * to query playbooks and store trajectories.
8
- *
9
- * Usage:
10
- * cognitive-core search <query> [--domain <domain>] [--limit <n>]
11
- * cognitive-core get <playbook-id>
12
- * cognitive-core domains
13
- * cognitive-core stats
14
- * cognitive-core store <trajectory-file>
15
- * cognitive-core init [--dir <directory>]
5
+ * Entry point: parses args, routes to command groups.
16
6
  */
17
7
 
18
- import * as fs from 'node:fs/promises';
19
- import * as path from 'node:path';
8
+ import { parseArgs, outputError } from './cli-utils.js';
20
9
  import {
21
- createMemorySystem,
22
- createLearningPipeline,
23
- type MemorySystem,
24
- type Playbook,
25
- type Trajectory,
26
- } from '../index.js';
27
-
28
- // Default storage directory
29
- const DEFAULT_STORAGE_DIR = path.join(process.cwd(), '.cognitive-core');
30
-
31
- interface CLIOptions {
32
- dir?: string;
33
- domain?: string;
34
- limit?: number;
35
- format?: 'json' | 'text';
36
- }
37
-
38
- /**
39
- * Parse command line arguments
40
- */
41
- function parseArgs(args: string[]): { command: string; positional: string[]; options: CLIOptions } {
42
- const options: CLIOptions = {};
43
- const positional: string[] = [];
44
- let command = '';
45
-
46
- for (let i = 0; i < args.length; i++) {
47
- const arg = args[i];
48
-
49
- if (arg === '--dir' && args[i + 1]) {
50
- options.dir = args[++i];
51
- } else if (arg === '--domain' && args[i + 1]) {
52
- options.domain = args[++i];
53
- } else if (arg === '--limit' && args[i + 1]) {
54
- options.limit = parseInt(args[++i], 10);
55
- } else if (arg === '--format' && args[i + 1]) {
56
- options.format = args[++i] as 'json' | 'text';
57
- } else if (arg === '--json') {
58
- options.format = 'json';
59
- } else if (!arg.startsWith('-')) {
60
- if (!command) {
61
- command = arg;
62
- } else {
63
- positional.push(arg);
64
- }
65
- }
66
- }
67
-
68
- return { command, positional, options };
69
- }
70
-
71
- /**
72
- * Initialize and get memory system
73
- */
74
- async function getMemorySystem(options: CLIOptions): Promise<MemorySystem> {
75
- const dir = options.dir || DEFAULT_STORAGE_DIR;
76
- const memory = createMemorySystem(dir);
77
- await memory.init();
78
- return memory;
79
- }
80
-
81
- /**
82
- * Format playbook for display
83
- */
84
- function formatPlaybook(playbook: Playbook, verbose = false): string {
85
- const lines: string[] = [];
86
- const { successCount, failureCount } = playbook.evolution;
87
- const totalUses = successCount + failureCount;
88
- const successRate = totalUses > 0 ? Math.round((successCount / totalUses) * 100) : 0;
89
-
90
- lines.push(`## ${playbook.name}`);
91
- lines.push(`ID: ${playbook.id}`);
92
- lines.push(`Confidence: ${Math.round(playbook.confidence * 100)}%`);
93
- lines.push(`Success Rate: ${successRate}% (${totalUses} uses)`);
94
- lines.push(`Domains: ${playbook.applicability.domains.join(', ')}`);
95
- lines.push('');
96
- lines.push(`**Strategy**: ${playbook.guidance.strategy}`);
10
+ initCommand,
11
+ searchCommand,
12
+ getCommand,
13
+ domainsCommand,
14
+ statsCommand,
15
+ storeCommand,
16
+ } from './commands/legacy.js';
17
+ import { kbCommand } from './commands/kb.js';
18
+ import { sessionsCommand } from './commands/sessions.js';
19
+ import { learnCommand } from './commands/learn.js';
20
+ import { skillsCommand } from './commands/skills.js';
21
+ import { runCommand } from './commands/run.js';
97
22
 
98
- if (playbook.guidance.tactics.length > 0) {
99
- lines.push('**Tactics**:');
100
- for (const tactic of playbook.guidance.tactics) {
101
- lines.push(` - ${tactic}`);
102
- }
103
- }
104
-
105
- if (verbose) {
106
- if (playbook.guidance.steps && playbook.guidance.steps.length > 0) {
107
- lines.push('**Steps**:');
108
- for (let i = 0; i < playbook.guidance.steps.length; i++) {
109
- lines.push(` ${i + 1}. ${playbook.guidance.steps[i]}`);
110
- }
111
- }
112
-
113
- if (playbook.applicability.situations.length > 0) {
114
- lines.push('**When to use**:');
115
- for (const sit of playbook.applicability.situations) {
116
- lines.push(` - ${sit}`);
117
- }
118
- }
23
+ function showHelp(): void {
24
+ console.log(`
25
+ Cognitive Core CLI - Learning system for AI agents
119
26
 
120
- if (playbook.applicability.antiPatterns.length > 0) {
121
- lines.push('**Avoid when**:');
122
- for (const anti of playbook.applicability.antiPatterns) {
123
- lines.push(` - ${anti}`);
124
- }
125
- }
27
+ Usage:
28
+ cogcore <command> [options]
126
29
 
127
- if (playbook.verification.successIndicators.length > 0) {
128
- lines.push('**Success indicators**:');
129
- for (const ind of playbook.verification.successIndicators) {
130
- lines.push(` - ${ind}`);
131
- }
132
- }
133
- }
30
+ Daemon:
31
+ run Continuously process sessions from SessionLog
32
+ --interval <seconds> Poll interval (default: 30)
33
+ --repo <path> Git repository path (default: cwd)
34
+ --once Process all unprocessed sessions and exit
134
35
 
135
- return lines.join('\n');
36
+ Commands:
37
+ search <query> Search for playbooks
38
+ get <playbook-id> Get playbook details
39
+ domains List domains
40
+ stats Show system statistics
41
+ store <file> Store a trajectory from JSON file
42
+ init Initialize storage directory
43
+
44
+ Knowledge Bank:
45
+ kb search <query> Search knowledge notes
46
+ kb list [--type <t>] List notes (entities|domains|all)
47
+ kb get <id> Get a knowledge note
48
+ kb stats Knowledge bank statistics
49
+ kb defrag Run knowledge defragmentation
50
+
51
+ Sessions:
52
+ sessions list List discovered sessions
53
+ sessions get <id> Get session details
54
+ sessions query Query sessions with filters
55
+
56
+ Learning Pipeline:
57
+ learn batch Force batch learning
58
+ learn maintenance Force maintenance cycle
59
+ learn stats Pipeline statistics
60
+
61
+ Skills:
62
+ skills list [--tier <t>] List skills (core|domain)
63
+ skills stats Skill library statistics
64
+ skills refresh Refresh skill tiers
65
+
66
+ Global Options:
67
+ --dir <directory> Storage directory (default: .cognitive-core)
68
+ --json Output in JSON format
69
+ --limit <n> Maximum results
70
+ --domain <domain> Filter by domain
71
+ `);
136
72
  }
137
73
 
138
- /**
139
- * Search playbooks command
140
- */
141
- async function searchCommand(
142
- query: string,
143
- options: CLIOptions
144
- ): Promise<void> {
145
- const memory = await getMemorySystem(options);
74
+ async function main(): Promise<void> {
75
+ const args = process.argv.slice(2);
76
+ const parsed = parseArgs(args);
77
+ const { group, command, positional, options } = parsed;
146
78
 
147
79
  try {
148
- const matches = await memory.playbooks.findMatching(query, {
149
- k: options.limit || 5,
150
- domains: options.domain ? [options.domain] : undefined,
151
- minConfidence: 0.3,
152
- });
153
-
154
- if (matches.length === 0) {
155
- if (options.format === 'json') {
156
- console.log(JSON.stringify({ results: [], message: 'No playbooks found' }));
157
- } else {
158
- console.log('No playbooks found matching your query.');
159
- console.log('Try different search terms or check available domains with: cognitive-core domains');
160
- }
80
+ // Command groups
81
+ if (group === 'kb') {
82
+ await kbCommand(command, positional, options);
161
83
  return;
162
84
  }
163
-
164
- if (options.format === 'json') {
165
- const results = matches.map((m) => ({
166
- id: m.playbook.id,
167
- name: m.playbook.name,
168
- score: m.score,
169
- matchType: m.matchType,
170
- confidence: m.playbook.confidence,
171
- strategy: m.playbook.guidance.strategy,
172
- tactics: m.playbook.guidance.tactics,
173
- domains: m.playbook.applicability.domains,
174
- }));
175
- console.log(JSON.stringify({ results }, null, 2));
176
- } else {
177
- console.log(`Found ${matches.length} playbook(s) matching "${query}":\n`);
178
- for (const match of matches) {
179
- console.log(`Match: ${Math.round(match.score * 100)}% (${match.matchType})`);
180
- console.log(formatPlaybook(match.playbook));
181
- console.log('\n---\n');
182
- }
183
- }
184
- } finally {
185
- await memory.close();
186
- }
187
- }
188
-
189
- /**
190
- * Get playbook details command
191
- */
192
- async function getCommand(
193
- playbookId: string,
194
- options: CLIOptions
195
- ): Promise<void> {
196
- const memory = await getMemorySystem(options);
197
-
198
- try {
199
- const playbook = await memory.playbooks.get(playbookId);
200
-
201
- if (!playbook) {
202
- if (options.format === 'json') {
203
- console.log(JSON.stringify({ error: `Playbook not found: ${playbookId}` }));
204
- } else {
205
- console.error(`Playbook not found: ${playbookId}`);
206
- }
207
- process.exit(1);
208
- }
209
-
210
- if (options.format === 'json') {
211
- console.log(JSON.stringify(playbook, null, 2));
212
- } else {
213
- console.log(formatPlaybook(playbook, true));
214
- }
215
- } finally {
216
- await memory.close();
217
- }
218
- }
219
-
220
- /**
221
- * List domains command
222
- */
223
- async function domainsCommand(options: CLIOptions): Promise<void> {
224
- const memory = await getMemorySystem(options);
225
-
226
- try {
227
- const allPlaybooks = await memory.playbooks.getAll();
228
- const domains = new Map<string, number>();
229
-
230
- for (const playbook of allPlaybooks) {
231
- for (const domain of playbook.applicability.domains) {
232
- domains.set(domain, (domains.get(domain) || 0) + 1);
233
- }
234
- }
235
-
236
- const sortedDomains = Array.from(domains.entries())
237
- .sort((a, b) => b[1] - a[1]);
238
-
239
- if (sortedDomains.length === 0) {
240
- if (options.format === 'json') {
241
- console.log(JSON.stringify({ domains: [] }));
242
- } else {
243
- console.log('No domains found. Add playbooks first.');
244
- }
85
+ if (group === 'sessions') {
86
+ await sessionsCommand(command, positional, options);
245
87
  return;
246
88
  }
247
-
248
- if (options.format === 'json') {
249
- console.log(JSON.stringify({
250
- domains: sortedDomains.map(([name, count]) => ({ name, playbookCount: count })),
251
- }, null, 2));
252
- } else {
253
- console.log('Available domains:\n');
254
- for (const [domain, count] of sortedDomains) {
255
- console.log(` ${domain}: ${count} playbook(s)`);
256
- }
89
+ if (group === 'learn') {
90
+ await learnCommand(command, positional, options);
91
+ return;
257
92
  }
258
- } finally {
259
- await memory.close();
260
- }
261
- }
262
-
263
- /**
264
- * Show stats command
265
- */
266
- async function statsCommand(options: CLIOptions): Promise<void> {
267
- const memory = await getMemorySystem(options);
268
-
269
- try {
270
- const stats = await memory.getStats();
271
- const capacity = await memory.getCapacityStatus();
272
-
273
- if (options.format === 'json') {
274
- console.log(JSON.stringify({ stats, capacity }, null, 2));
275
- } else {
276
- console.log('Cognitive Core Statistics\n');
277
- console.log(`Experiences: ${stats.experienceCount}`);
278
- console.log(`Playbooks: ${stats.playbookCount}`);
279
- console.log(`Meta-observations: ${stats.metaObservationCount}`);
280
- console.log('');
281
- console.log('Capacity:');
282
- console.log(` Experiences: ${capacity.experiences.current}/${capacity.experiences.limit}`);
283
- console.log(` Playbooks: ${capacity.playbooks.current}/${capacity.playbooks.limit}`);
284
- console.log(` Pruning enabled: ${capacity.pruningEnabled}`);
93
+ if (group === 'skills') {
94
+ await skillsCommand(command, positional, options);
95
+ return;
285
96
  }
286
- } finally {
287
- await memory.close();
288
- }
289
- }
290
-
291
- /**
292
- * Store trajectory command
293
- */
294
- async function storeCommand(
295
- trajectoryFile: string,
296
- options: CLIOptions
297
- ): Promise<void> {
298
- const memory = await getMemorySystem(options);
299
- const pipeline = createLearningPipeline(memory);
300
-
301
- try {
302
- // Read and parse trajectory file
303
- const content = await fs.readFile(trajectoryFile, 'utf-8');
304
- const trajectory: Trajectory = JSON.parse(content);
305
-
306
- // Process the trajectory
307
- const result = await pipeline.processTrajectory(trajectory);
308
-
309
- if (options.format === 'json') {
310
- console.log(JSON.stringify({
311
- stored: result.stored,
312
- trajectoryId: result.trajectoryId,
313
- analysis: {
314
- success: result.analysis.success,
315
- keySteps: result.analysis.keySteps.length,
316
- errorPatterns: result.analysis.errorPatterns.length,
317
- abstractable: result.analysis.abstractable,
318
- },
319
- }, null, 2));
320
- } else {
321
- console.log(`Trajectory stored: ${result.trajectoryId}`);
322
- console.log(`Success: ${result.analysis.success}`);
323
- console.log(`Key steps: ${result.analysis.keySteps.length}`);
324
- console.log(`Abstractable: ${result.analysis.abstractable}`);
325
-
326
- if (result.analysis.errorPatterns.length > 0) {
327
- console.log(`Error patterns detected: ${result.analysis.errorPatterns.map((p) => p.type).join(', ')}`);
328
- }
97
+ if (group === 'run') {
98
+ await runCommand(options);
99
+ return;
329
100
  }
330
- } finally {
331
- await memory.close();
332
- }
333
- }
334
101
 
335
- /**
336
- * Initialize command
337
- */
338
- async function initCommand(options: CLIOptions): Promise<void> {
339
- const dir = options.dir || DEFAULT_STORAGE_DIR;
340
-
341
- // Create directory if it doesn't exist
342
- await fs.mkdir(dir, { recursive: true });
343
-
344
- // Initialize memory system
345
- const memory = createMemorySystem(dir);
346
- await memory.init();
347
- await memory.close();
348
-
349
- if (options.format === 'json') {
350
- console.log(JSON.stringify({ initialized: true, directory: dir }));
351
- } else {
352
- console.log(`Cognitive Core initialized at: ${dir}`);
353
- console.log('');
354
- console.log('Next steps:');
355
- console.log(' 1. Store trajectories: cognitive-core store <trajectory.json>');
356
- console.log(' 2. Search playbooks: cognitive-core search "your query"');
357
- console.log(' 3. View stats: cognitive-core stats');
358
- }
359
- }
360
-
361
- /**
362
- * Show help
363
- */
364
- function showHelp(): void {
365
- console.log(`
366
- Cognitive Core CLI - Learning system for AI agents
367
-
368
- Usage:
369
- cognitive-core <command> [options]
370
-
371
- Commands:
372
- search <query> Search for playbooks matching a query
373
- get <playbook-id> Get detailed information about a specific playbook
374
- domains List all available domains
375
- stats Show memory statistics
376
- store <file> Store a trajectory from a JSON file
377
- init Initialize the storage directory
378
-
379
- Options:
380
- --dir <directory> Storage directory (default: .cognitive-core)
381
- --domain <domain> Filter search by domain
382
- --limit <n> Maximum results for search (default: 5)
383
- --format json Output in JSON format
384
- --json Shorthand for --format json
385
-
386
- Examples:
387
- cognitive-core search "fix typescript errors"
388
- cognitive-core search "write tests" --domain testing --limit 3
389
- cognitive-core get playbook-abc123
390
- cognitive-core domains
391
- cognitive-core stats --json
392
- cognitive-core store ./trajectory.json
393
- cognitive-core init --dir ./my-memory
394
- `);
395
- }
396
-
397
- /**
398
- * Main entry point
399
- */
400
- async function main(): Promise<void> {
401
- const args = process.argv.slice(2);
402
- const { command, positional, options } = parseArgs(args);
403
-
404
- try {
102
+ // Legacy commands (group is empty)
405
103
  switch (command) {
406
104
  case 'search':
407
105
  if (!positional[0]) {
408
106
  console.error('Error: search requires a query');
409
- console.error('Usage: cognitive-core search <query>');
107
+ console.error('Usage: cogcore search <query>');
410
108
  process.exit(1);
411
109
  }
412
110
  await searchCommand(positional[0], options);
@@ -415,7 +113,7 @@ async function main(): Promise<void> {
415
113
  case 'get':
416
114
  if (!positional[0]) {
417
115
  console.error('Error: get requires a playbook ID');
418
- console.error('Usage: cognitive-core get <playbook-id>');
116
+ console.error('Usage: cogcore get <playbook-id>');
419
117
  process.exit(1);
420
118
  }
421
119
  await getCommand(positional[0], options);
@@ -432,7 +130,7 @@ async function main(): Promise<void> {
432
130
  case 'store':
433
131
  if (!positional[0]) {
434
132
  console.error('Error: store requires a trajectory file');
435
- console.error('Usage: cognitive-core store <trajectory.json>');
133
+ console.error('Usage: cogcore store <trajectory.json>');
436
134
  process.exit(1);
437
135
  }
438
136
  await storeCommand(positional[0], options);
@@ -456,13 +154,7 @@ async function main(): Promise<void> {
456
154
  process.exit(command ? 1 : 0);
457
155
  }
458
156
  } catch (error) {
459
- if (options.format === 'json') {
460
- console.log(JSON.stringify({
461
- error: error instanceof Error ? error.message : String(error),
462
- }));
463
- } else {
464
- console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
465
- }
157
+ outputError(error, options);
466
158
  process.exit(1);
467
159
  }
468
160
  }