squish-memory 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/bin/squish-mcp.mjs +40 -42
  2. package/core/scheduler/cron-scheduler.ts +10 -1
  3. package/core/worker.ts +10 -1
  4. package/package.json +119 -119
  5. package/packages/mcp/src/index.ts +99 -36
  6. package/dist/config.d.ts +0 -106
  7. package/dist/config.js +0 -194
  8. package/dist/core/adapters/config/claude-code.d.ts +0 -45
  9. package/dist/core/adapters/config/claude-code.js +0 -113
  10. package/dist/core/adapters/config/cursor.d.ts +0 -26
  11. package/dist/core/adapters/config/cursor.js +0 -74
  12. package/dist/core/adapters/config/opencode.d.ts +0 -23
  13. package/dist/core/adapters/config/opencode.js +0 -73
  14. package/dist/core/adapters/config/windsurf.d.ts +0 -26
  15. package/dist/core/adapters/config/windsurf.js +0 -74
  16. package/dist/core/adapters/index.d.ts +0 -45
  17. package/dist/core/adapters/index.js +0 -84
  18. package/dist/core/adapters/scripts/install-adapter.d.ts +0 -19
  19. package/dist/core/adapters/scripts/install-adapter.js +0 -149
  20. package/dist/core/adapters/timeline.d.ts +0 -23
  21. package/dist/core/adapters/timeline.js +0 -88
  22. package/dist/core/adapters/types.d.ts +0 -137
  23. package/dist/core/adapters/types.js +0 -50
  24. package/dist/core/agent-preferences.d.ts +0 -16
  25. package/dist/core/agent-preferences.js +0 -124
  26. package/dist/core/algorithms/analytics/token-estimator.d.ts +0 -50
  27. package/dist/core/algorithms/analytics/token-estimator.js +0 -154
  28. package/dist/core/algorithms/detection/hash-filters.d.ts +0 -47
  29. package/dist/core/algorithms/detection/hash-filters.js +0 -190
  30. package/dist/core/algorithms/detection/semantic-ranker.d.ts +0 -32
  31. package/dist/core/algorithms/detection/semantic-ranker.js +0 -118
  32. package/dist/core/algorithms/detection/two-stage-detector.d.ts +0 -52
  33. package/dist/core/algorithms/detection/two-stage-detector.js +0 -299
  34. package/dist/core/algorithms/handlers/approve-merge.d.ts +0 -22
  35. package/dist/core/algorithms/handlers/approve-merge.js +0 -179
  36. package/dist/core/algorithms/handlers/detect-duplicates.d.ts +0 -47
  37. package/dist/core/algorithms/handlers/detect-duplicates.js +0 -145
  38. package/dist/core/algorithms/handlers/get-stats.d.ts +0 -39
  39. package/dist/core/algorithms/handlers/get-stats.js +0 -88
  40. package/dist/core/algorithms/handlers/list-proposals.d.ts +0 -45
  41. package/dist/core/algorithms/handlers/list-proposals.js +0 -83
  42. package/dist/core/algorithms/handlers/preview-merge.d.ts +0 -39
  43. package/dist/core/algorithms/handlers/preview-merge.js +0 -93
  44. package/dist/core/algorithms/handlers/reject-merge.d.ts +0 -28
  45. package/dist/core/algorithms/handlers/reject-merge.js +0 -69
  46. package/dist/core/algorithms/handlers/reverse-merge.d.ts +0 -21
  47. package/dist/core/algorithms/handlers/reverse-merge.js +0 -121
  48. package/dist/core/algorithms/index.d.ts +0 -21
  49. package/dist/core/algorithms/index.js +0 -26
  50. package/dist/core/algorithms/operations/cache-maintenance.d.ts +0 -12
  51. package/dist/core/algorithms/operations/cache-maintenance.js +0 -157
  52. package/dist/core/algorithms/safety/safety-checks.d.ts +0 -18
  53. package/dist/core/algorithms/safety/safety-checks.js +0 -179
  54. package/dist/core/algorithms/strategies/merge-strategies.d.ts +0 -50
  55. package/dist/core/algorithms/strategies/merge-strategies.js +0 -288
  56. package/dist/core/algorithms/types.d.ts +0 -125
  57. package/dist/core/algorithms/types.js +0 -5
  58. package/dist/core/algorithms/utils/response-builder.d.ts +0 -28
  59. package/dist/core/algorithms/utils/response-builder.js +0 -37
  60. package/dist/core/associations.d.ts +0 -33
  61. package/dist/core/associations.js +0 -284
  62. package/dist/core/autosave.d.ts +0 -19
  63. package/dist/core/autosave.js +0 -16
  64. package/dist/core/beliefs/decay.d.ts +0 -27
  65. package/dist/core/beliefs/decay.js +0 -217
  66. package/dist/core/beliefs/extractor.d.ts +0 -9
  67. package/dist/core/beliefs/extractor.js +0 -113
  68. package/dist/core/beliefs/store.d.ts +0 -46
  69. package/dist/core/beliefs/store.js +0 -466
  70. package/dist/core/beliefs/types.d.ts +0 -28
  71. package/dist/core/beliefs/types.js +0 -2
  72. package/dist/core/commands/mcp-server.d.ts +0 -2
  73. package/dist/core/commands/mcp-server.js +0 -6
  74. package/dist/core/commands/remember.d.ts +0 -24
  75. package/dist/core/commands/remember.js +0 -144
  76. package/dist/core/compression.d.ts +0 -45
  77. package/dist/core/compression.js +0 -160
  78. package/dist/core/consolidation.d.ts +0 -37
  79. package/dist/core/consolidation.js +0 -248
  80. package/dist/core/context/agent-context.d.ts +0 -106
  81. package/dist/core/context/agent-context.js +0 -274
  82. package/dist/core/context/context-paging.d.ts +0 -80
  83. package/dist/core/context/context-paging.js +0 -328
  84. package/dist/core/context/context-window.d.ts +0 -40
  85. package/dist/core/context/context-window.js +0 -177
  86. package/dist/core/context/context.d.ts +0 -7
  87. package/dist/core/context/context.js +0 -22
  88. package/dist/core/embeddings/embeddings.d.ts +0 -29
  89. package/dist/core/embeddings/embeddings.js +0 -546
  90. package/dist/core/embeddings/google-multimodal.d.ts +0 -14
  91. package/dist/core/embeddings/google-multimodal.js +0 -146
  92. package/dist/core/embeddings/local-embeddings.d.ts +0 -11
  93. package/dist/core/embeddings/local-embeddings.js +0 -11
  94. package/dist/core/embeddings/qmd-client.d.ts +0 -136
  95. package/dist/core/embeddings/qmd-client.js +0 -403
  96. package/dist/core/embeddings/transformers-local.d.ts +0 -64
  97. package/dist/core/embeddings/transformers-local.js +0 -213
  98. package/dist/core/embeddings.d.ts +0 -2
  99. package/dist/core/embeddings.js +0 -3
  100. package/dist/core/error-handling.d.ts +0 -63
  101. package/dist/core/error-handling.js +0 -173
  102. package/dist/core/graph/entity-deduplicator.d.ts +0 -24
  103. package/dist/core/graph/entity-deduplicator.js +0 -183
  104. package/dist/core/graph/graph-builder.d.ts +0 -46
  105. package/dist/core/graph/graph-builder.js +0 -174
  106. package/dist/core/graph/graph-traversal.d.ts +0 -80
  107. package/dist/core/graph/graph-traversal.js +0 -315
  108. package/dist/core/graph/index.d.ts +0 -19
  109. package/dist/core/graph/index.js +0 -13
  110. package/dist/core/graph/llm-entity-extractor.d.ts +0 -49
  111. package/dist/core/graph/llm-entity-extractor.js +0 -313
  112. package/dist/core/graph/multi-hop-retrieval.d.ts +0 -48
  113. package/dist/core/graph/multi-hop-retrieval.js +0 -215
  114. package/dist/core/graph/relationship-extractor.d.ts +0 -48
  115. package/dist/core/graph/relationship-extractor.js +0 -351
  116. package/dist/core/hooks/agent-hooks.d.ts +0 -83
  117. package/dist/core/hooks/agent-hooks.js +0 -521
  118. package/dist/core/hooks/auto-tagger.d.ts +0 -19
  119. package/dist/core/hooks/auto-tagger.js +0 -155
  120. package/dist/core/hooks/capture-filter.d.ts +0 -41
  121. package/dist/core/hooks/capture-filter.js +0 -128
  122. package/dist/core/hot-cache.d.ts +0 -86
  123. package/dist/core/hot-cache.js +0 -285
  124. package/dist/core/index.d.ts +0 -10
  125. package/dist/core/index.js +0 -11
  126. package/dist/core/ingestion/agent-memory.d.ts +0 -22
  127. package/dist/core/ingestion/agent-memory.js +0 -109
  128. package/dist/core/ingestion/core-memory.d.ts +0 -78
  129. package/dist/core/ingestion/core-memory.js +0 -226
  130. package/dist/core/ingestion/learnings.d.ts +0 -57
  131. package/dist/core/ingestion/learnings.js +0 -205
  132. package/dist/core/ingestion/signal-engine.d.ts +0 -41
  133. package/dist/core/ingestion/signal-engine.js +0 -201
  134. package/dist/core/integrations/obsidian-vault.d.ts +0 -31
  135. package/dist/core/integrations/obsidian-vault.js +0 -156
  136. package/dist/core/layers/generator.d.ts +0 -25
  137. package/dist/core/layers/generator.js +0 -76
  138. package/dist/core/lib/db-client.d.ts +0 -114
  139. package/dist/core/lib/db-client.js +0 -130
  140. package/dist/core/lib/parse-embedding.d.ts +0 -9
  141. package/dist/core/lib/parse-embedding.js +0 -58
  142. package/dist/core/lib/schemas.d.ts +0 -132
  143. package/dist/core/lib/schemas.js +0 -87
  144. package/dist/core/lib/types.d.ts +0 -45
  145. package/dist/core/lib/types.js +0 -6
  146. package/dist/core/lib/utils.d.ts +0 -18
  147. package/dist/core/lib/utils.js +0 -145
  148. package/dist/core/lib/validation.d.ts +0 -38
  149. package/dist/core/lib/validation.js +0 -151
  150. package/dist/core/lifecycle.d.ts +0 -25
  151. package/dist/core/lifecycle.js +0 -292
  152. package/dist/core/logger.d.ts +0 -17
  153. package/dist/core/logger.js +0 -46
  154. package/dist/core/mcp/client.d.ts +0 -17
  155. package/dist/core/mcp/client.js +0 -101
  156. package/dist/core/mcp/index.d.ts +0 -6
  157. package/dist/core/mcp/index.js +0 -6
  158. package/dist/core/mcp/server.d.ts +0 -18
  159. package/dist/core/mcp/server.js +0 -157
  160. package/dist/core/mcp/standalone-server.d.ts +0 -13
  161. package/dist/core/mcp/standalone-server.js +0 -46
  162. package/dist/core/mcp/tools.d.ts +0 -7
  163. package/dist/core/mcp/tools.js +0 -278
  164. package/dist/core/mcp/types.d.ts +0 -87
  165. package/dist/core/mcp/types.js +0 -48
  166. package/dist/core/memory/bridge-discovery.d.ts +0 -50
  167. package/dist/core/memory/bridge-discovery.js +0 -291
  168. package/dist/core/memory/categorizer.d.ts +0 -27
  169. package/dist/core/memory/categorizer.js +0 -306
  170. package/dist/core/memory/conflict-detector.d.ts +0 -7
  171. package/dist/core/memory/conflict-detector.js +0 -43
  172. package/dist/core/memory/consolidation.d.ts +0 -42
  173. package/dist/core/memory/consolidation.js +0 -277
  174. package/dist/core/memory/context-collector.d.ts +0 -10
  175. package/dist/core/memory/context-collector.js +0 -56
  176. package/dist/core/memory/contradiction-resolver.d.ts +0 -40
  177. package/dist/core/memory/contradiction-resolver.js +0 -368
  178. package/dist/core/memory/edit-workflow.d.ts +0 -19
  179. package/dist/core/memory/edit-workflow.js +0 -120
  180. package/dist/core/memory/entity-extractor.d.ts +0 -37
  181. package/dist/core/memory/entity-extractor.js +0 -350
  182. package/dist/core/memory/entity-resolver.d.ts +0 -23
  183. package/dist/core/memory/entity-resolver.js +0 -64
  184. package/dist/core/memory/explain.d.ts +0 -18
  185. package/dist/core/memory/explain.js +0 -92
  186. package/dist/core/memory/fact-deriver.d.ts +0 -31
  187. package/dist/core/memory/fact-deriver.js +0 -236
  188. package/dist/core/memory/fact-extractor.d.ts +0 -24
  189. package/dist/core/memory/fact-extractor.js +0 -89
  190. package/dist/core/memory/feedback-tracker.d.ts +0 -12
  191. package/dist/core/memory/feedback-tracker.js +0 -155
  192. package/dist/core/memory/hooks.d.ts +0 -88
  193. package/dist/core/memory/hooks.js +0 -174
  194. package/dist/core/memory/hybrid-retrieval.d.ts +0 -27
  195. package/dist/core/memory/hybrid-retrieval.js +0 -37
  196. package/dist/core/memory/hybrid-scorer.d.ts +0 -40
  197. package/dist/core/memory/hybrid-scorer.js +0 -267
  198. package/dist/core/memory/hybrid-search.d.ts +0 -23
  199. package/dist/core/memory/hybrid-search.js +0 -596
  200. package/dist/core/memory/importance.d.ts +0 -46
  201. package/dist/core/memory/importance.js +0 -241
  202. package/dist/core/memory/index.d.ts +0 -9
  203. package/dist/core/memory/index.js +0 -11
  204. package/dist/core/memory/loader.d.ts +0 -31
  205. package/dist/core/memory/loader.js +0 -141
  206. package/dist/core/memory/markdown/markdown-storage.d.ts +0 -72
  207. package/dist/core/memory/markdown/markdown-storage.js +0 -243
  208. package/dist/core/memory/memories.d.ts +0 -43
  209. package/dist/core/memory/memories.js +0 -452
  210. package/dist/core/memory/memory-lifecycle.d.ts +0 -8
  211. package/dist/core/memory/memory-lifecycle.js +0 -47
  212. package/dist/core/memory/memory-manager.d.ts +0 -15
  213. package/dist/core/memory/memory-manager.js +0 -46
  214. package/dist/core/memory/migrate.d.ts +0 -21
  215. package/dist/core/memory/migrate.js +0 -134
  216. package/dist/core/memory/normalization.d.ts +0 -7
  217. package/dist/core/memory/normalization.js +0 -26
  218. package/dist/core/memory/path-strengthener.d.ts +0 -39
  219. package/dist/core/memory/path-strengthener.js +0 -150
  220. package/dist/core/memory/progressive-disclosure.d.ts +0 -43
  221. package/dist/core/memory/progressive-disclosure.js +0 -280
  222. package/dist/core/memory/query-processor.d.ts +0 -21
  223. package/dist/core/memory/query-processor.js +0 -106
  224. package/dist/core/memory/query-rewriter.d.ts +0 -13
  225. package/dist/core/memory/query-rewriter.js +0 -118
  226. package/dist/core/memory/response-analyzer.d.ts +0 -9
  227. package/dist/core/memory/response-analyzer.js +0 -61
  228. package/dist/core/memory/retrieval-feedback.d.ts +0 -70
  229. package/dist/core/memory/retrieval-feedback.js +0 -213
  230. package/dist/core/memory/serialization.d.ts +0 -10
  231. package/dist/core/memory/serialization.js +0 -84
  232. package/dist/core/memory/stale-cleaner.d.ts +0 -26
  233. package/dist/core/memory/stale-cleaner.js +0 -97
  234. package/dist/core/memory/stats.d.ts +0 -32
  235. package/dist/core/memory/stats.js +0 -143
  236. package/dist/core/memory/telemetry.d.ts +0 -69
  237. package/dist/core/memory/telemetry.js +0 -313
  238. package/dist/core/memory/temporal-facts.d.ts +0 -41
  239. package/dist/core/memory/temporal-facts.js +0 -283
  240. package/dist/core/memory/temporal-parser.d.ts +0 -32
  241. package/dist/core/memory/temporal-parser.js +0 -385
  242. package/dist/core/memory/trigger-detector.d.ts +0 -21
  243. package/dist/core/memory/trigger-detector.js +0 -79
  244. package/dist/core/memory/write-gate.d.ts +0 -54
  245. package/dist/core/memory/write-gate.js +0 -210
  246. package/dist/core/places/index.d.ts +0 -14
  247. package/dist/core/places/index.js +0 -14
  248. package/dist/core/places/memory-places.d.ts +0 -68
  249. package/dist/core/places/memory-places.js +0 -261
  250. package/dist/core/places/places.d.ts +0 -88
  251. package/dist/core/places/places.js +0 -314
  252. package/dist/core/places/rules.d.ts +0 -74
  253. package/dist/core/places/rules.js +0 -240
  254. package/dist/core/places/walking.d.ts +0 -56
  255. package/dist/core/places/walking.js +0 -121
  256. package/dist/core/projects.d.ts +0 -17
  257. package/dist/core/projects.js +0 -116
  258. package/dist/core/redis.d.ts +0 -11
  259. package/dist/core/redis.js +0 -69
  260. package/dist/core/responses.d.ts +0 -96
  261. package/dist/core/responses.js +0 -122
  262. package/dist/core/runtime/trust-report.d.ts +0 -102
  263. package/dist/core/runtime/trust-report.js +0 -107
  264. package/dist/core/runtime/trust-state.d.ts +0 -12
  265. package/dist/core/runtime/trust-state.js +0 -309
  266. package/dist/core/scheduler/cron-scheduler.d.ts +0 -32
  267. package/dist/core/scheduler/cron-scheduler.js +0 -493
  268. package/dist/core/scheduler/heartbeat.d.ts +0 -11
  269. package/dist/core/scheduler/heartbeat.js +0 -73
  270. package/dist/core/scheduler/index.d.ts +0 -8
  271. package/dist/core/scheduler/index.js +0 -8
  272. package/dist/core/scheduler/job-runner.d.ts +0 -11
  273. package/dist/core/scheduler/job-runner.js +0 -164
  274. package/dist/core/search/conversations.d.ts +0 -25
  275. package/dist/core/search/conversations.js +0 -110
  276. package/dist/core/search/entities.d.ts +0 -12
  277. package/dist/core/search/entities.js +0 -31
  278. package/dist/core/search/folder-context.d.ts +0 -25
  279. package/dist/core/search/folder-context.js +0 -119
  280. package/dist/core/search/graph-boost.d.ts +0 -7
  281. package/dist/core/search/graph-boost.js +0 -23
  282. package/dist/core/search/index.d.ts +0 -4
  283. package/dist/core/search/index.js +0 -5
  284. package/dist/core/search/qmd-wrapper.d.ts +0 -36
  285. package/dist/core/search/qmd-wrapper.js +0 -58
  286. package/dist/core/security/encrypt.d.ts +0 -6
  287. package/dist/core/security/encrypt.js +0 -47
  288. package/dist/core/security/governance.d.ts +0 -26
  289. package/dist/core/security/governance.js +0 -79
  290. package/dist/core/security/privacy.d.ts +0 -23
  291. package/dist/core/security/privacy.js +0 -82
  292. package/dist/core/security/secret-detector.d.ts +0 -32
  293. package/dist/core/security/secret-detector.js +0 -88
  294. package/dist/core/session/auto-load.d.ts +0 -6
  295. package/dist/core/session/auto-load.js +0 -144
  296. package/dist/core/session/entity-tracker.d.ts +0 -62
  297. package/dist/core/session/entity-tracker.js +0 -287
  298. package/dist/core/session/index.d.ts +0 -7
  299. package/dist/core/session/index.js +0 -7
  300. package/dist/core/session/reference-resolver.d.ts +0 -26
  301. package/dist/core/session/reference-resolver.js +0 -121
  302. package/dist/core/session/self-iteration-job.d.ts +0 -35
  303. package/dist/core/session/self-iteration-job.js +0 -387
  304. package/dist/core/session/session-hooks.d.ts +0 -18
  305. package/dist/core/session/session-hooks.js +0 -58
  306. package/dist/core/session/types.d.ts +0 -26
  307. package/dist/core/session/types.js +0 -10
  308. package/dist/core/session/working-set.d.ts +0 -50
  309. package/dist/core/session/working-set.js +0 -212
  310. package/dist/core/snapshots/cleanup.d.ts +0 -9
  311. package/dist/core/snapshots/cleanup.js +0 -12
  312. package/dist/core/snapshots/comparison.d.ts +0 -19
  313. package/dist/core/snapshots/comparison.js +0 -43
  314. package/dist/core/snapshots/creation.d.ts +0 -13
  315. package/dist/core/snapshots/creation.js +0 -117
  316. package/dist/core/snapshots/retrieval.d.ts +0 -7
  317. package/dist/core/snapshots/retrieval.js +0 -41
  318. package/dist/core/snapshots/stats.d.ts +0 -11
  319. package/dist/core/snapshots/stats.js +0 -52
  320. package/dist/core/storage/cache.d.ts +0 -13
  321. package/dist/core/storage/cache.js +0 -202
  322. package/dist/core/storage/database.d.ts +0 -12
  323. package/dist/core/storage/database.js +0 -12
  324. package/dist/core/summarization/cleanup.d.ts +0 -9
  325. package/dist/core/summarization/cleanup.js +0 -12
  326. package/dist/core/summarization/queries.d.ts +0 -9
  327. package/dist/core/summarization/queries.js +0 -28
  328. package/dist/core/summarization/stats.d.ts +0 -14
  329. package/dist/core/summarization/stats.js +0 -52
  330. package/dist/core/summarization/strategies.d.ts +0 -24
  331. package/dist/core/summarization/strategies.js +0 -28
  332. package/dist/core/summarization.d.ts +0 -37
  333. package/dist/core/summarization.js +0 -188
  334. package/dist/core/temporal-facts.d.ts +0 -54
  335. package/dist/core/temporal-facts.js +0 -193
  336. package/dist/core/tracing/collector.d.ts +0 -111
  337. package/dist/core/tracing/collector.js +0 -350
  338. package/dist/core/tracing/visualizer.d.ts +0 -32
  339. package/dist/core/tracing/visualizer.js +0 -165
  340. package/dist/core/utils/cleanup-operations.d.ts +0 -13
  341. package/dist/core/utils/cleanup-operations.js +0 -44
  342. package/dist/core/utils/content-extraction.d.ts +0 -19
  343. package/dist/core/utils/content-extraction.js +0 -75
  344. package/dist/core/utils/filter-builder.d.ts +0 -13
  345. package/dist/core/utils/filter-builder.js +0 -44
  346. package/dist/core/utils/history-traversal.d.ts +0 -13
  347. package/dist/core/utils/history-traversal.js +0 -50
  348. package/dist/core/utils/memory-operations.d.ts +0 -17
  349. package/dist/core/utils/memory-operations.js +0 -43
  350. package/dist/core/utils/query-operations.d.ts +0 -18
  351. package/dist/core/utils/query-operations.js +0 -65
  352. package/dist/core/utils/summarization-helpers.d.ts +0 -17
  353. package/dist/core/utils/summarization-helpers.js +0 -33
  354. package/dist/core/utils/temporal-queries.d.ts +0 -13
  355. package/dist/core/utils/temporal-queries.js +0 -27
  356. package/dist/core/utils/vector-operations.d.ts +0 -71
  357. package/dist/core/utils/vector-operations.js +0 -129
  358. package/dist/core/utils/version-management.d.ts +0 -9
  359. package/dist/core/utils/version-management.js +0 -61
  360. package/dist/core/worker.d.ts +0 -82
  361. package/dist/core/worker.js +0 -272
  362. package/dist/db/adapter.d.ts +0 -7
  363. package/dist/db/adapter.js +0 -175
  364. package/dist/db/bootstrap.d.ts +0 -11
  365. package/dist/db/bootstrap.js +0 -1034
  366. package/dist/db/drizzle/schema-sqlite.d.ts +0 -5538
  367. package/dist/db/drizzle/schema-sqlite.js +0 -763
  368. package/dist/db/drizzle/schema.d.ts +0 -4734
  369. package/dist/db/drizzle/schema.js +0 -859
  370. package/dist/db/drizzle.config.d.ts +0 -3
  371. package/dist/db/drizzle.config.js +0 -12
  372. package/dist/db/index.d.ts +0 -7
  373. package/dist/db/index.js +0 -89
  374. package/dist/db/migrations/associations.d.ts +0 -6
  375. package/dist/db/migrations/associations.js +0 -29
  376. package/dist/db/migrations/beliefs.d.ts +0 -10
  377. package/dist/db/migrations/beliefs.js +0 -76
  378. package/dist/db/migrations/core-memory.d.ts +0 -6
  379. package/dist/db/migrations/core-memory.js +0 -29
  380. package/dist/db/migrations/fts.d.ts +0 -6
  381. package/dist/db/migrations/fts.js +0 -52
  382. package/dist/db/migrations/index.d.ts +0 -25
  383. package/dist/db/migrations/index.js +0 -51
  384. package/dist/db/migrations/indexes.d.ts +0 -6
  385. package/dist/db/migrations/indexes.js +0 -30
  386. package/dist/db/migrations/learnings.d.ts +0 -7
  387. package/dist/db/migrations/learnings.js +0 -26
  388. package/dist/db/migrations/maintenance.d.ts +0 -6
  389. package/dist/db/migrations/maintenance.js +0 -61
  390. package/dist/db/migrations/memories.d.ts +0 -7
  391. package/dist/db/migrations/memories.js +0 -16
  392. package/dist/db/migrations/memory-places.d.ts +0 -6
  393. package/dist/db/migrations/memory-places.js +0 -29
  394. package/dist/db/migrations/places.d.ts +0 -6
  395. package/dist/db/migrations/places.js +0 -43
  396. package/dist/db/migrations/projects.d.ts +0 -3
  397. package/dist/db/migrations/projects.js +0 -13
  398. package/dist/db/migrations/tier-conversion.d.ts +0 -7
  399. package/dist/db/migrations/tier-conversion.js +0 -20
  400. package/dist/db/neon.d.ts +0 -8
  401. package/dist/db/neon.js +0 -20
  402. package/dist/db/schema/beliefs.d.ts +0 -9
  403. package/dist/db/schema/beliefs.js +0 -46
  404. package/dist/db/schema/generator.d.ts +0 -38
  405. package/dist/db/schema/generator.js +0 -108
  406. package/dist/db/schema/index.d.ts +0 -39
  407. package/dist/db/schema/index.js +0 -51
  408. package/dist/db/schema/learnings.d.ts +0 -7
  409. package/dist/db/schema/learnings.js +0 -30
  410. package/dist/db/schema/memories.d.ts +0 -7
  411. package/dist/db/schema/memories.js +0 -81
  412. package/dist/db/schema/projects.d.ts +0 -4
  413. package/dist/db/schema/projects.js +0 -31
  414. package/dist/db/schema/tables/context-sessions.d.ts +0 -9
  415. package/dist/db/schema/tables/context-sessions.js +0 -37
  416. package/dist/db/schema/tables/conversations.d.ts +0 -9
  417. package/dist/db/schema/tables/conversations.js +0 -47
  418. package/dist/db/schema/tables/core-memory.d.ts +0 -9
  419. package/dist/db/schema/tables/core-memory.js +0 -41
  420. package/dist/db/schema/tables/entities.d.ts +0 -9
  421. package/dist/db/schema/tables/entities.js +0 -39
  422. package/dist/db/schema/tables/entity-relations.d.ts +0 -9
  423. package/dist/db/schema/tables/entity-relations.js +0 -31
  424. package/dist/db/schema/tables/learnings.d.ts +0 -9
  425. package/dist/db/schema/tables/learnings.js +0 -66
  426. package/dist/db/schema/tables/memories.d.ts +0 -9
  427. package/dist/db/schema/tables/memories.js +0 -161
  428. package/dist/db/schema/tables/memory-associations.d.ts +0 -9
  429. package/dist/db/schema/tables/memory-associations.js +0 -39
  430. package/dist/db/schema/tables/memory-hash-cache.d.ts +0 -9
  431. package/dist/db/schema/tables/memory-hash-cache.js +0 -29
  432. package/dist/db/schema/tables/memory-merge-history.d.ts +0 -9
  433. package/dist/db/schema/tables/memory-merge-history.js +0 -33
  434. package/dist/db/schema/tables/memory-merge-proposals.d.ts +0 -9
  435. package/dist/db/schema/tables/memory-merge-proposals.js +0 -39
  436. package/dist/db/schema/tables/messages.d.ts +0 -9
  437. package/dist/db/schema/tables/messages.js +0 -41
  438. package/dist/db/schema/tables/namespaces.d.ts +0 -9
  439. package/dist/db/schema/tables/namespaces.js +0 -37
  440. package/dist/db/schema/tables/projects.d.ts +0 -9
  441. package/dist/db/schema/tables/projects.js +0 -31
  442. package/dist/db/schema/tables/users.d.ts +0 -9
  443. package/dist/db/schema/tables/users.js +0 -27
  444. package/dist/db/schema.d.ts +0 -3
  445. package/dist/db/schema.js +0 -11
  446. package/dist/db/supabase.d.ts +0 -9
  447. package/dist/db/supabase.js +0 -24
  448. package/dist/packages/mcp/src/index.d.ts +0 -3
  449. package/dist/packages/mcp/src/index.js +0 -733
@@ -1,202 +0,0 @@
1
- import { config } from '../../config.js';
2
- import { logger } from '../logger.js';
3
- let redis = null;
4
- class LRUCache {
5
- cache = new Map();
6
- maxSize;
7
- maxSizeBytes;
8
- currentSizeBytes = 0;
9
- cleanupTimer = null;
10
- constructor(maxSize = 1000, maxSizeBytes = 50 * 1024 * 1024) {
11
- this.maxSize = maxSize;
12
- this.maxSizeBytes = maxSizeBytes; // 50MB default
13
- this.startCleanupTimer();
14
- }
15
- get(key) {
16
- const entry = this.cache.get(key);
17
- if (!entry)
18
- return null;
19
- // Check expiration
20
- if (entry.expires < Date.now()) {
21
- this.delete(key);
22
- return null;
23
- }
24
- // Update LRU access time
25
- entry.lastAccessed = Date.now();
26
- return entry.value;
27
- }
28
- set(key, value, ttlMs = 3600000) {
29
- const size = this.estimateSize(value);
30
- // Evict if needed
31
- while ((this.cache.size >= this.maxSize || this.currentSizeBytes + size > this.maxSizeBytes) &&
32
- this.cache.size > 0) {
33
- this.evictLRU();
34
- }
35
- // Delete old entry if exists
36
- if (this.cache.has(key)) {
37
- this.delete(key);
38
- }
39
- // Add new entry
40
- this.cache.set(key, {
41
- value,
42
- expires: Date.now() + ttlMs,
43
- lastAccessed: Date.now(),
44
- });
45
- this.currentSizeBytes += size;
46
- }
47
- delete(key) {
48
- const entry = this.cache.get(key);
49
- if (entry) {
50
- const size = this.estimateSize(entry.value);
51
- this.currentSizeBytes = Math.max(0, this.currentSizeBytes - size);
52
- }
53
- return this.cache.delete(key);
54
- }
55
- clear() {
56
- this.cache.clear();
57
- this.currentSizeBytes = 0;
58
- }
59
- size() {
60
- return this.cache.size;
61
- }
62
- sizeBytes() {
63
- return this.currentSizeBytes;
64
- }
65
- evictLRU() {
66
- let oldestKey = null;
67
- let oldestTime = Infinity;
68
- for (const [key, entry] of this.cache.entries()) {
69
- if (entry.lastAccessed < oldestTime) {
70
- oldestTime = entry.lastAccessed;
71
- oldestKey = key;
72
- }
73
- }
74
- if (oldestKey) {
75
- logger.debug('Evicting LRU cache entry', { key: oldestKey });
76
- this.delete(oldestKey);
77
- }
78
- }
79
- estimateSize(value) {
80
- try {
81
- return JSON.stringify(value).length * 2; // UTF-16, rough estimate
82
- }
83
- catch {
84
- return 1024; // Default 1KB for non-serializable objects
85
- }
86
- }
87
- cleanup() {
88
- const now = Date.now();
89
- const toDelete = [];
90
- for (const [key, entry] of this.cache.entries()) {
91
- if (entry.expires < now) {
92
- toDelete.push(key);
93
- }
94
- }
95
- for (const key of toDelete) {
96
- this.delete(key);
97
- }
98
- if (toDelete.length > 0) {
99
- logger.debug('Cache cleanup removed expired entries', { count: toDelete.length });
100
- }
101
- }
102
- startCleanupTimer() {
103
- // Cleanup every 5 minutes
104
- this.cleanupTimer = setInterval(() => this.cleanup(), 5 * 60 * 1000);
105
- // Prevent timer from keeping process alive
106
- if (this.cleanupTimer.unref) {
107
- this.cleanupTimer.unref();
108
- }
109
- }
110
- stopCleanupTimer() {
111
- if (this.cleanupTimer) {
112
- clearInterval(this.cleanupTimer);
113
- this.cleanupTimer = null;
114
- }
115
- }
116
- getStats() {
117
- return {
118
- entries: this.cache.size,
119
- sizeBytes: this.currentSizeBytes,
120
- maxSize: this.maxSize,
121
- maxSizeBytes: this.maxSizeBytes,
122
- utilizationPercent: (this.cache.size / this.maxSize) * 100,
123
- memoryUtilizationPercent: (this.currentSizeBytes / this.maxSizeBytes) * 100,
124
- };
125
- }
126
- }
127
- // Create LRU cache with configurable limits
128
- const memoryCache = new LRUCache(parseInt(process.env.SQUISH_CACHE_MAX_ENTRIES || '1000'), parseInt(process.env.SQUISH_CACHE_MAX_BYTES || '52428800') // 50MB
129
- );
130
- async function initRedis() {
131
- if (!config.redisEnabled)
132
- return null;
133
- if (redis)
134
- return redis;
135
- try {
136
- const { createClient } = await import('redis');
137
- redis = createClient({ url: process.env.REDIS_URL });
138
- await redis.connect();
139
- logger.info('Redis connected');
140
- return redis;
141
- }
142
- catch (error) {
143
- logger.error('Failed to connect to Redis, using memory cache', error);
144
- redis = null;
145
- return null;
146
- }
147
- }
148
- export async function cacheGet(key) {
149
- try {
150
- const r = await initRedis();
151
- if (r) {
152
- const value = await r.get(key);
153
- return value ? JSON.parse(value) : null;
154
- }
155
- }
156
- catch (error) {
157
- logger.error('Redis GET failed, falling back to memory', error);
158
- }
159
- // Memory cache fallback with LRU
160
- return memoryCache.get(key);
161
- }
162
- export async function cacheSet(key, value, ttlMs = 3600000) {
163
- try {
164
- const r = await initRedis();
165
- if (r) {
166
- await r.setEx(key, Math.floor(ttlMs / 1000), JSON.stringify(value));
167
- return;
168
- }
169
- }
170
- catch (error) {
171
- logger.error('Redis SET failed, falling back to memory', error);
172
- }
173
- // Memory cache fallback with LRU
174
- memoryCache.set(key, value, ttlMs);
175
- }
176
- export function getCacheStats() {
177
- return memoryCache.getStats();
178
- }
179
- export async function closeCache() {
180
- if (redis) {
181
- await redis.quit();
182
- redis = null;
183
- }
184
- memoryCache.stopCleanupTimer();
185
- memoryCache.clear();
186
- }
187
- export async function checkRedisHealth() {
188
- if (!config.redisEnabled)
189
- return true;
190
- try {
191
- const r = await initRedis();
192
- if (!r)
193
- return false;
194
- const pong = await r.ping();
195
- return pong === 'PONG';
196
- }
197
- catch (error) {
198
- logger.error('Redis health check failed', error);
199
- return false;
200
- }
201
- }
202
- //# sourceMappingURL=cache.js.map
@@ -1,12 +0,0 @@
1
- import type { Database } from 'better-sqlite3';
2
- import type { Pool } from 'pg';
3
- export interface DatabaseClient {
4
- $client: Database | Pool;
5
- $clientType: 'sqlite' | 'postgres';
6
- select: (...args: any[]) => any;
7
- insert: (...args: any[]) => any;
8
- update: (...args: any[]) => any;
9
- delete: (...args: any[]) => any;
10
- }
11
- export declare function createDatabaseClient(db: any): DatabaseClient;
12
- //# sourceMappingURL=database.d.ts.map
@@ -1,12 +0,0 @@
1
- export function createDatabaseClient(db) {
2
- const isSqlite = typeof db.$client.prepare === 'function';
3
- return {
4
- $client: db.$client,
5
- $clientType: isSqlite ? 'sqlite' : 'postgres',
6
- select: (...args) => db.select(...args),
7
- insert: (...args) => db.insert(...args),
8
- update: (...args) => db.update(...args),
9
- delete: (...args) => db.delete(...args),
10
- };
11
- }
12
- //# sourceMappingURL=database.js.map
@@ -1,9 +0,0 @@
1
- /**
2
- * Summarization Cleanup Operations
3
- * Maintenance and cleanup for summarization data
4
- */
5
- /**
6
- * Delete old summaries to save space
7
- */
8
- export declare function pruneOldSummaries(olderThanDays?: number): Promise<number>;
9
- //# sourceMappingURL=cleanup.d.ts.map
@@ -1,12 +0,0 @@
1
- /**
2
- * Summarization Cleanup Operations
3
- * Maintenance and cleanup for summarization data
4
- */
5
- import { cleanupOldSessionSummaries } from '../utils/cleanup-operations.js';
6
- /**
7
- * Delete old summaries to save space
8
- */
9
- export async function pruneOldSummaries(olderThanDays = 30) {
10
- return cleanupOldSessionSummaries(olderThanDays);
11
- }
12
- //# sourceMappingURL=cleanup.js.map
@@ -1,9 +0,0 @@
1
- /**
2
- * Summarization Queries
3
- * Database operations for summary retrieval
4
- */
5
- /**
6
- * Get recent summaries for a conversation
7
- */
8
- export declare function getRecentSummaries(conversationId: string, limit?: number): Promise<any[]>;
9
- //# sourceMappingURL=queries.d.ts.map
@@ -1,28 +0,0 @@
1
- /**
2
- * Summarization Queries
3
- * Database operations for summary retrieval
4
- */
5
- import { eq, desc } from 'drizzle-orm';
6
- import { getDb } from '../../db/index.js';
7
- import { getSchema } from '../../db/schema.js';
8
- import { logger } from '../logger.js';
9
- /**
10
- * Get recent summaries for a conversation
11
- */
12
- export async function getRecentSummaries(conversationId, limit = 10) {
13
- try {
14
- const db = await getDb();
15
- const schema = await getSchema();
16
- return await db
17
- .select()
18
- .from(schema.sessionSummaries)
19
- .where(eq(schema.sessionSummaries.conversationId, conversationId))
20
- .orderBy(desc(schema.sessionSummaries.createdAt))
21
- .limit(limit);
22
- }
23
- catch (error) {
24
- logger.error('Error getting recent summaries', error);
25
- return [];
26
- }
27
- }
28
- //# sourceMappingURL=queries.js.map
@@ -1,14 +0,0 @@
1
- /**
2
- * Summarization Statistics
3
- * Analytics and statistics for summarization operations
4
- */
5
- /**
6
- * Get summarization statistics
7
- */
8
- export declare function getSummarizationStats(projectId?: string): Promise<{
9
- totalSummaries: number;
10
- byType: Record<string, number>;
11
- totalTokensSaved: number;
12
- avgCompressionRatio: number;
13
- }>;
14
- //# sourceMappingURL=stats.d.ts.map
@@ -1,52 +0,0 @@
1
- /**
2
- * Summarization Statistics
3
- * Analytics and statistics for summarization operations
4
- */
5
- import { eq } from 'drizzle-orm';
6
- import { getDb } from '../../db/index.js';
7
- import { getSchema } from '../../db/schema.js';
8
- import { logger } from '../logger.js';
9
- /**
10
- * Get summarization statistics
11
- */
12
- export async function getSummarizationStats(projectId) {
13
- try {
14
- const db = await getDb();
15
- const schema = await getSchema();
16
- const where = projectId ? eq(schema.sessionSummaries.projectId, projectId) : undefined;
17
- const summaries = await db.select().from(schema.sessionSummaries).where(where);
18
- const stats = {
19
- totalSummaries: summaries.length,
20
- byType: {
21
- incremental: 0,
22
- rolling: 0,
23
- final: 0,
24
- },
25
- totalTokensSaved: 0,
26
- avgCompressionRatio: 0,
27
- };
28
- for (const s of summaries) {
29
- stats.byType[s.summaryType] = (stats.byType[s.summaryType] || 0) + 1;
30
- stats.totalTokensSaved += s.tokensSaved || 0;
31
- }
32
- // Calculate average compression ratio
33
- let totalRatio = 0;
34
- for (const s of summaries) {
35
- if (s.compressedFrom && s.compressedFrom > 0) {
36
- totalRatio += s.tokensSaved / (s.compressedFrom * 100); // Rough estimate
37
- }
38
- }
39
- stats.avgCompressionRatio = summaries.length > 0 ? totalRatio / summaries.length : 0;
40
- return stats;
41
- }
42
- catch (error) {
43
- logger.error('Error getting summarization stats', error);
44
- return {
45
- totalSummaries: 0,
46
- byType: {},
47
- totalTokensSaved: 0,
48
- avgCompressionRatio: 0,
49
- };
50
- }
51
- }
52
- //# sourceMappingURL=stats.js.map
@@ -1,24 +0,0 @@
1
- /**
2
- * Summarization Strategies
3
- * Implements different summarization algorithms
4
- */
5
- export type SummaryType = 'incremental' | 'rolling' | 'final';
6
- export interface SummarizationConfig {
7
- incrementalThreshold: number;
8
- rollingWindowSize: number;
9
- compressionRatio: number;
10
- enabled: boolean;
11
- }
12
- /**
13
- * Create incremental summary (summary in chunks)
14
- */
15
- export declare function createIncrementalSummary(messages: any[], config: SummarizationConfig): Promise<string>;
16
- /**
17
- * Create rolling summary (last N messages)
18
- */
19
- export declare function createRollingSummary(messages: any[], config: SummarizationConfig): Promise<string>;
20
- /**
21
- * Create final summary (entire conversation)
22
- */
23
- export declare function createFinalSummary(messages: any[], config: SummarizationConfig): Promise<string>;
24
- //# sourceMappingURL=strategies.d.ts.map
@@ -1,28 +0,0 @@
1
- /**
2
- * Summarization Strategies
3
- * Implements different summarization algorithms
4
- */
5
- import { chunkMessages, getRollingWindow, } from '../utils/summarization-helpers.js';
6
- import { extractMessageContent, generateExtractiveSummary } from '../utils/content-extraction.js';
7
- /**
8
- * Create incremental summary (summary in chunks)
9
- */
10
- export async function createIncrementalSummary(messages, config) {
11
- const chunks = chunkMessages(messages, config.incrementalThreshold);
12
- const summaries = chunks.map(chunk => generateExtractiveSummary(extractMessageContent(chunk)));
13
- return summaries.join('\n---\n');
14
- }
15
- /**
16
- * Create rolling summary (last N messages)
17
- */
18
- export async function createRollingSummary(messages, config) {
19
- const window = getRollingWindow(messages, config.rollingWindowSize);
20
- return generateExtractiveSummary(extractMessageContent(window));
21
- }
22
- /**
23
- * Create final summary (entire conversation)
24
- */
25
- export async function createFinalSummary(messages, config) {
26
- return generateExtractiveSummary(extractMessageContent(messages));
27
- }
28
- //# sourceMappingURL=strategies.js.map
@@ -1,37 +0,0 @@
1
- /**
2
- * Aggressive Session Summarization
3
- * Implements incremental, rolling, and final summarization
4
- */
5
- export type SummaryType = 'incremental' | 'rolling' | 'final';
6
- export interface SummarizationConfig {
7
- incrementalThreshold: number;
8
- rollingWindowSize: number;
9
- compressionRatio: number;
10
- enabled: boolean;
11
- }
12
- /**
13
- * Summarize a conversation session
14
- */
15
- export declare function summarizeSession(conversationId: string, summaryType: SummaryType, customConfig?: Partial<SummarizationConfig>): Promise<{
16
- summaryId: string;
17
- tokensSaved: number;
18
- summary: string;
19
- }>;
20
- /**
21
- * Get recent summaries for a conversation
22
- */
23
- export declare function getRecentSummaries(conversationId: string, limit?: number): Promise<any[]>;
24
- /**
25
- * Get summarization statistics
26
- */
27
- export declare function getSummarizationStats(projectId?: string): Promise<{
28
- totalSummaries: number;
29
- byType: Record<string, number>;
30
- totalTokensSaved: number;
31
- avgCompressionRatio: number;
32
- }>;
33
- /**
34
- * Delete old summaries to save space
35
- */
36
- export declare function pruneOldSummaries(olderThanDays?: number): Promise<number>;
37
- //# sourceMappingURL=summarization.d.ts.map
@@ -1,188 +0,0 @@
1
- /**
2
- * Aggressive Session Summarization
3
- * Implements incremental, rolling, and final summarization
4
- */
5
- import { eq, desc } from 'drizzle-orm';
6
- import { randomUUID } from 'crypto';
7
- import { getDb } from '../db/index.js';
8
- import { getSchema } from '../db/schema.js';
9
- import { config } from '../config.js';
10
- import { getEmbedding } from './embeddings.js';
11
- import { cleanupOldSessionSummaries } from './utils/cleanup-operations.js';
12
- import { chunkMessages, getRollingWindow, calculateTokensSaved } from './utils/summarization-helpers.js';
13
- import { extractMessageContent, generateExtractiveSummary } from './utils/content-extraction.js';
14
- import { logger } from './logger.js';
15
- const DEFAULT_CONFIG = {
16
- incrementalThreshold: config.incrementalThreshold || 10,
17
- rollingWindowSize: 50,
18
- compressionRatio: 0.2, // 5:1 compression
19
- enabled: config.summarizationEnabled !== false,
20
- };
21
- /**
22
- * Summarize a conversation session
23
- */
24
- export async function summarizeSession(conversationId, summaryType, customConfig = {}) {
25
- const finalConfig = { ...DEFAULT_CONFIG, ...customConfig };
26
- if (!finalConfig.enabled) {
27
- return { summaryId: '', tokensSaved: 0, summary: '' };
28
- }
29
- try {
30
- const db = await getDb();
31
- const schema = await getSchema();
32
- // Fetch messages for this conversation
33
- const messages = await db
34
- .select()
35
- .from(schema.messages)
36
- .where(eq(schema.messages.conversationId, conversationId))
37
- .orderBy(schema.messages.createdAt);
38
- if (messages.length === 0) {
39
- return { summaryId: '', tokensSaved: 0, summary: '' };
40
- }
41
- let summary = '';
42
- switch (summaryType) {
43
- case 'incremental':
44
- summary = await createIncrementalSummary(messages, finalConfig);
45
- break;
46
- case 'rolling':
47
- summary = await createRollingSummary(messages, finalConfig);
48
- break;
49
- case 'final':
50
- summary = await createFinalSummary(messages, finalConfig);
51
- break;
52
- }
53
- if (summary) {
54
- // Store summary with embedding
55
- const embedding = await getEmbedding(summary);
56
- const conversation = await db
57
- .select()
58
- .from(schema.conversations)
59
- .where(eq(schema.conversations.id, conversationId))
60
- .limit(1);
61
- if (conversation.length > 0) {
62
- const tokensSaved = estimateTokensSaved(messages, summary);
63
- const summaryId = randomUUID();
64
- await db.insert(schema.sessionSummaries).values({
65
- id: summaryId,
66
- conversationId,
67
- projectId: conversation[0].projectId,
68
- summaryType,
69
- content: summary,
70
- compressedFrom: messages.length,
71
- tokensSaved,
72
- embedding: embedding || null,
73
- createdAt: new Date(),
74
- });
75
- return { summaryId, tokensSaved, summary };
76
- }
77
- }
78
- return { summaryId: '', tokensSaved: 0, summary };
79
- }
80
- catch (error) {
81
- logger.error('Error summarizing session', error);
82
- return { summaryId: '', tokensSaved: 0, summary: '' };
83
- }
84
- }
85
- /**
86
- * Create incremental summary (summary in chunks)
87
- */
88
- async function createIncrementalSummary(messages, config) {
89
- const chunks = chunkMessages(messages, config.incrementalThreshold);
90
- const summaries = chunks.map(chunk => generateExtractiveSummary(extractMessageContent(chunk)));
91
- return summaries.join('\n---\n');
92
- }
93
- /**
94
- * Create rolling summary (last N messages)
95
- */
96
- async function createRollingSummary(messages, config) {
97
- const window = getRollingWindow(messages, config.rollingWindowSize);
98
- return generateExtractiveSummary(extractMessageContent(window));
99
- }
100
- /**
101
- * Create final summary (entire conversation)
102
- */
103
- async function createFinalSummary(messages, config) {
104
- return generateExtractiveSummary(extractMessageContent(messages));
105
- }
106
- /**
107
- * Generate basic extractive summary of messages
108
- */
109
- function summarizeChunk(messages) {
110
- if (messages.length === 0)
111
- return '';
112
- return generateExtractiveSummary(extractMessageContent(messages));
113
- }
114
- /**
115
- * Estimate tokens saved by summarization
116
- */
117
- function estimateTokensSaved(messages, summary) {
118
- return calculateTokensSaved(messages, summary);
119
- }
120
- /**
121
- * Get recent summaries for a conversation
122
- */
123
- export async function getRecentSummaries(conversationId, limit = 10) {
124
- try {
125
- const db = await getDb();
126
- const schema = await getSchema();
127
- return await db
128
- .select()
129
- .from(schema.sessionSummaries)
130
- .where(eq(schema.sessionSummaries.conversationId, conversationId))
131
- .orderBy(desc(schema.sessionSummaries.createdAt))
132
- .limit(limit);
133
- }
134
- catch (error) {
135
- logger.error('Error getting recent summaries', error);
136
- return [];
137
- }
138
- }
139
- /**
140
- * Get summarization statistics
141
- */
142
- export async function getSummarizationStats(projectId) {
143
- try {
144
- const db = await getDb();
145
- const schema = await getSchema();
146
- const where = projectId ? eq(schema.sessionSummaries.projectId, projectId) : undefined;
147
- const summaries = await db.select().from(schema.sessionSummaries).where(where);
148
- const stats = {
149
- totalSummaries: summaries.length,
150
- byType: {
151
- incremental: 0,
152
- rolling: 0,
153
- final: 0,
154
- },
155
- totalTokensSaved: 0,
156
- avgCompressionRatio: 0,
157
- };
158
- for (const s of summaries) {
159
- stats.byType[s.summaryType] = (stats.byType[s.summaryType] || 0) + 1;
160
- stats.totalTokensSaved += s.tokensSaved || 0;
161
- }
162
- // Calculate average compression ratio
163
- let totalRatio = 0;
164
- for (const s of summaries) {
165
- if (s.compressedFrom && s.compressedFrom > 0) {
166
- totalRatio += s.tokensSaved / (s.compressedFrom * 100); // Rough estimate
167
- }
168
- }
169
- stats.avgCompressionRatio = summaries.length > 0 ? totalRatio / summaries.length : 0;
170
- return stats;
171
- }
172
- catch (error) {
173
- logger.error('Error getting summarization stats', error);
174
- return {
175
- totalSummaries: 0,
176
- byType: {},
177
- totalTokensSaved: 0,
178
- avgCompressionRatio: 0,
179
- };
180
- }
181
- }
182
- /**
183
- * Delete old summaries to save space
184
- */
185
- export async function pruneOldSummaries(olderThanDays = 30) {
186
- return cleanupOldSessionSummaries(olderThanDays);
187
- }
188
- //# sourceMappingURL=summarization.js.map