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,21 +0,0 @@
1
- /**
2
- * Reverses/undoes a completed merge and restores original memories.
3
- */
4
- interface ReverseMergeInput {
5
- mergeHistoryId: string;
6
- reason?: string;
7
- }
8
- interface ReverseMergeResponse {
9
- ok: boolean;
10
- message: string;
11
- data?: {
12
- mergeHistoryId: string;
13
- canonicalMemoryId: string;
14
- restoredMemoryIds: string[];
15
- reversedAt: string;
16
- };
17
- error?: string;
18
- }
19
- export declare function handleReverseMerge(input: ReverseMergeInput): Promise<ReverseMergeResponse>;
20
- export {};
21
- //# sourceMappingURL=reverse-merge.d.ts.map
@@ -1,121 +0,0 @@
1
- /**
2
- * Reverses/undoes a completed merge and restores original memories.
3
- */
4
- import { getDb } from '../../../db/index.js';
5
- import { getSchema } from '../../../db/schema.js';
6
- import { createDatabaseClient } from '../../../core/storage/database.js';
7
- import { eq } from 'drizzle-orm';
8
- export async function handleReverseMerge(input) {
9
- try {
10
- const { mergeHistoryId, reason } = input;
11
- if (!mergeHistoryId) {
12
- return {
13
- ok: false,
14
- message: 'mergeHistoryId is required',
15
- error: 'mergeHistoryId is required',
16
- };
17
- }
18
- const db = createDatabaseClient(await getDb());
19
- const schema = await getSchema();
20
- // Step 1: Load merge history record
21
- const [history] = await db
22
- .select()
23
- .from(schema.memoryMergeHistory)
24
- .where(eq(schema.memoryMergeHistory.id, mergeHistoryId));
25
- if (!history) {
26
- return {
27
- ok: false,
28
- message: 'Merge history record not found',
29
- error: `Merge history ${mergeHistoryId} not found`,
30
- };
31
- }
32
- // Check if already reversed
33
- if (history.isReversed) {
34
- return {
35
- ok: false,
36
- message: 'Merge already reversed',
37
- error: 'This merge has already been reversed',
38
- };
39
- }
40
- // Step 2: Load and mark canonical memory as inactive
41
- const [canonicalMemory] = await db
42
- .select()
43
- .from(schema.memories)
44
- .where(eq(schema.memories.id, history.canonicalMemoryId));
45
- if (!canonicalMemory) {
46
- return {
47
- ok: false,
48
- message: 'Canonical memory not found',
49
- error: `Canonical memory ${history.canonicalMemoryId} not found`,
50
- };
51
- }
52
- const now = new Date();
53
- // Step 3: Restore source memories from snapshot
54
- const sourceSnapshot = history.sourceMemoriesSnapshot || [];
55
- const sourceMemoryIds = history.sourceMemoryIds || [];
56
- if (sourceSnapshot.length === 0) {
57
- return {
58
- ok: false,
59
- message: 'No snapshot data to restore from',
60
- error: 'Merge history has no source memories snapshot',
61
- };
62
- }
63
- // Restore each memory from snapshot
64
- for (const snapshotData of sourceSnapshot) {
65
- const memoryId = snapshotData.id;
66
- // Load current state of the memory (should be marked as merged)
67
- const [currentMemory] = await db
68
- .select()
69
- .from(schema.memories)
70
- .where(eq(schema.memories.id, memoryId));
71
- if (currentMemory) {
72
- // Restore to original state
73
- await db
74
- .update(schema.memories)
75
- .set({
76
- isMerged: false,
77
- mergedIntoId: null,
78
- mergedAt: null,
79
- isActive: true,
80
- updatedAt: now,
81
- })
82
- .where(eq(schema.memories.id, memoryId));
83
- }
84
- }
85
- // Step 4: Deactivate canonical memory
86
- await db
87
- .update(schema.memories)
88
- .set({
89
- isActive: false,
90
- updatedAt: now,
91
- })
92
- .where(eq(schema.memories.id, history.canonicalMemoryId));
93
- // Step 5: Update merge history record
94
- await db
95
- .update(schema.memoryMergeHistory)
96
- .set({
97
- isReversed: true,
98
- reversedAt: now,
99
- reversedBy: canonicalMemory.userId,
100
- })
101
- .where(eq(schema.memoryMergeHistory.id, mergeHistoryId));
102
- return {
103
- ok: true,
104
- message: `Merge reversed successfully. Restored ${sourceMemoryIds.length} memories`,
105
- data: {
106
- mergeHistoryId,
107
- canonicalMemoryId: history.canonicalMemoryId,
108
- restoredMemoryIds: sourceMemoryIds,
109
- reversedAt: now.toISOString(),
110
- },
111
- };
112
- }
113
- catch (error) {
114
- return {
115
- ok: false,
116
- message: 'Failed to reverse merge',
117
- error: error instanceof Error ? error.message : 'Unknown error',
118
- };
119
- }
120
- }
121
- //# sourceMappingURL=reverse-merge.js.map
@@ -1,21 +0,0 @@
1
- /**
2
- * Memory Merging Feature - Barrel Exports
3
- *
4
- * Provides a clean public API for memory merging functionality
5
- */
6
- export * from './types.js';
7
- export { detectDuplicates, analyzeMergePair, getDetectionStats } from './detection/two-stage-detector.js';
8
- export { SimHashFilter, MinHashFilter, findCandidatePairs } from './detection/hash-filters.js';
9
- export { rankCandidates, analyzePair } from './detection/semantic-ranker.js';
10
- export { getMergeStrategy, mergeMemories, MERGE_STRATEGIES } from './strategies/merge-strategies.js';
11
- export type { MergeStrategy, MergedMemory } from './strategies/merge-strategies.js';
12
- export { runSafetyChecks, checkBlockers, formatSafetyResults, describeSafetyChecks } from './safety/safety-checks.js';
13
- export { estimateTokensSaved, calculateProjectTokenSavings, estimateMergeSavingsPreview, getTokenStatistics, formatTokenCount, formatSavingsReport, } from './analytics/token-estimator.js';
14
- export { handleDetectDuplicates } from './handlers/detect-duplicates.js';
15
- export { handleListProposals } from './handlers/list-proposals.js';
16
- export { handlePreviewMerge } from './handlers/preview-merge.js';
17
- export { handleApproveMerge } from './handlers/approve-merge.js';
18
- export { handleRejectMerge } from './handlers/reject-merge.js';
19
- export { handleReverseMerge } from './handlers/reverse-merge.js';
20
- export { handleGetMergeStats } from './handlers/get-stats.js';
21
- //# sourceMappingURL=index.d.ts.map
@@ -1,26 +0,0 @@
1
- /**
2
- * Memory Merging Feature - Barrel Exports
3
- *
4
- * Provides a clean public API for memory merging functionality
5
- */
6
- // Types
7
- export * from './types.js';
8
- // Detection
9
- export { detectDuplicates, analyzeMergePair, getDetectionStats } from './detection/two-stage-detector.js';
10
- export { SimHashFilter, MinHashFilter, findCandidatePairs } from './detection/hash-filters.js';
11
- export { rankCandidates, analyzePair } from './detection/semantic-ranker.js';
12
- // Merge Strategies
13
- export { getMergeStrategy, mergeMemories, MERGE_STRATEGIES } from './strategies/merge-strategies.js';
14
- // Safety
15
- export { runSafetyChecks, checkBlockers, formatSafetyResults, describeSafetyChecks } from './safety/safety-checks.js';
16
- // Analytics & Tokens
17
- export { estimateTokensSaved, calculateProjectTokenSavings, estimateMergeSavingsPreview, getTokenStatistics, formatTokenCount, formatSavingsReport, } from './analytics/token-estimator.js';
18
- // Handlers (MCP Tools)
19
- export { handleDetectDuplicates } from './handlers/detect-duplicates.js';
20
- export { handleListProposals } from './handlers/list-proposals.js';
21
- export { handlePreviewMerge } from './handlers/preview-merge.js';
22
- export { handleApproveMerge } from './handlers/approve-merge.js';
23
- export { handleRejectMerge } from './handlers/reject-merge.js';
24
- export { handleReverseMerge } from './handlers/reverse-merge.js';
25
- export { handleGetMergeStats } from './handlers/get-stats.js';
26
- //# sourceMappingURL=index.js.map
@@ -1,12 +0,0 @@
1
- /**
2
- * Hash cache maintenance - SimHash/MinHash signatures for duplicate detection
3
- */
4
- export declare function updateCache(memoryId: string): Promise<boolean>;
5
- export declare function rebuildCache(projectId: string): Promise<{
6
- processed: number;
7
- succeeded: number;
8
- failed: number;
9
- }>;
10
- export declare function isStale(memoryId: string): Promise<boolean>;
11
- export declare function cleanupOrphaned(projectId: string): Promise<number>;
12
- //# sourceMappingURL=cache-maintenance.d.ts.map
@@ -1,157 +0,0 @@
1
- /**
2
- * Hash cache maintenance - SimHash/MinHash signatures for duplicate detection
3
- */
4
- import { getDb } from '../../../db/index.js';
5
- import { getSchema } from '../../../db/schema.js';
6
- import { createDatabaseClient } from '../../../core/storage/database.js';
7
- import { eq } from 'drizzle-orm';
8
- import { SimHashFilter, MinHashFilter } from '../detection/hash-filters.js';
9
- import crypto from 'crypto';
10
- import { logger } from '../../../core/logger.js';
11
- function hashContent(content) {
12
- return crypto.createHash('md5').update(content).digest('hex');
13
- }
14
- export async function updateCache(memoryId) {
15
- try {
16
- const db = createDatabaseClient(await getDb());
17
- const schema = await getSchema();
18
- // Load the memory
19
- const [memory] = await db
20
- .select()
21
- .from(schema.memories)
22
- .where(eq(schema.memories.id, memoryId));
23
- if (!memory) {
24
- return false;
25
- }
26
- // Generate hashes
27
- const simhashFilter = new SimHashFilter();
28
- const minhashFilter = new MinHashFilter();
29
- const simhash = simhashFilter.generateHash(memory.content);
30
- const minhash = minhashFilter.generateSignature(memory.content);
31
- const contentHash = hashContent(memory.content);
32
- // Upsert cache entry
33
- const now = new Date();
34
- // Check if entry exists
35
- const [existing] = await db
36
- .select()
37
- .from(schema.memoryHashCache)
38
- .where(eq(schema.memoryHashCache.memoryId, memoryId));
39
- if (existing) {
40
- // Update existing
41
- await db
42
- .update(schema.memoryHashCache)
43
- .set({
44
- simhash,
45
- minhash: minhash,
46
- contentHash,
47
- lastUpdated: now,
48
- })
49
- .where(eq(schema.memoryHashCache.memoryId, memoryId));
50
- }
51
- else {
52
- // Create new
53
- await db.insert(schema.memoryHashCache).values({
54
- memoryId,
55
- projectId: memory.projectId,
56
- simhash,
57
- minhash: minhash,
58
- contentHash,
59
- lastUpdated: now,
60
- });
61
- }
62
- return true;
63
- }
64
- catch (error) {
65
- logger.error(`Failed to update hash cache for ${memoryId}`, error);
66
- return false;
67
- }
68
- }
69
- export async function rebuildCache(projectId) {
70
- try {
71
- const db = createDatabaseClient(await getDb());
72
- const schema = await getSchema();
73
- // Get all memories in project
74
- const memories = await db
75
- .select()
76
- .from(schema.memories)
77
- .where(eq(schema.memories.projectId, projectId));
78
- let succeeded = 0;
79
- let failed = 0;
80
- for (const memory of memories) {
81
- const ok = await updateCache(memory.id);
82
- if (ok) {
83
- succeeded++;
84
- }
85
- else {
86
- failed++;
87
- }
88
- }
89
- return {
90
- processed: memories.length,
91
- succeeded,
92
- failed,
93
- };
94
- }
95
- catch (error) {
96
- logger.error(`Failed to rebuild hash cache for project ${projectId}`, error);
97
- return { processed: 0, succeeded: 0, failed: 0 };
98
- }
99
- }
100
- export async function isStale(memoryId) {
101
- try {
102
- const db = createDatabaseClient(await getDb());
103
- const schema = await getSchema();
104
- const [memory] = await db
105
- .select()
106
- .from(schema.memories)
107
- .where(eq(schema.memories.id, memoryId));
108
- if (!memory) {
109
- return true;
110
- }
111
- const [cacheEntry] = await db
112
- .select()
113
- .from(schema.memoryHashCache)
114
- .where(eq(schema.memoryHashCache.memoryId, memoryId));
115
- if (!cacheEntry) {
116
- return true; // No cache entry = stale
117
- }
118
- const currentContentHash = hashContent(memory.content);
119
- return currentContentHash !== cacheEntry.contentHash;
120
- }
121
- catch (error) {
122
- logger.error('Failed to check hash cache staleness', error);
123
- return true; // Assume stale on error
124
- }
125
- }
126
- export async function cleanupOrphaned(projectId) {
127
- try {
128
- const db = createDatabaseClient(await getDb());
129
- const schema = await getSchema();
130
- // Get all cache entries for project
131
- const cacheEntries = await db
132
- .select()
133
- .from(schema.memoryHashCache)
134
- .where(eq(schema.memoryHashCache.projectId, projectId));
135
- let deleted = 0;
136
- for (const entry of cacheEntries) {
137
- // Check if memory exists
138
- const [memory] = await db
139
- .select()
140
- .from(schema.memories)
141
- .where(eq(schema.memories.id, entry.memoryId));
142
- if (!memory) {
143
- // Memory doesn't exist, delete cache entry
144
- await db
145
- .delete(schema.memoryHashCache)
146
- .where(eq(schema.memoryHashCache.memoryId, entry.memoryId));
147
- deleted++;
148
- }
149
- }
150
- return deleted;
151
- }
152
- catch (error) {
153
- logger.error('Failed to cleanup orphaned hash cache', error);
154
- return 0;
155
- }
156
- }
157
- //# sourceMappingURL=cache-maintenance.js.map
@@ -1,18 +0,0 @@
1
- /**
2
- * Safety checks to prevent bad merges.
3
- * Checks run before creating merge proposals and are categorized as BLOCKER or WARNING.
4
- */
5
- import type { Memory } from '../../../db/drizzle/schema.js';
6
- import type { SafetyCheckResult } from '../../lib/types.js';
7
- export interface SafetyCheck {
8
- name: string;
9
- description: string;
10
- type: 'blocker' | 'warning';
11
- check(memories: Memory[], metadata?: Record<string, unknown>): SafetyCheckResult;
12
- }
13
- export declare const SAFETY_CHECKS: SafetyCheck[];
14
- export declare function runSafetyChecks(memories: Memory[], metadata?: Record<string, unknown>): SafetyCheckResult;
15
- export declare function checkBlockers(memories: Memory[]): boolean;
16
- export declare function formatSafetyResults(result: SafetyCheckResult): string;
17
- export declare function describeSafetyChecks(): string;
18
- //# sourceMappingURL=safety-checks.d.ts.map
@@ -1,179 +0,0 @@
1
- /**
2
- * Safety checks to prevent bad merges.
3
- * Checks run before creating merge proposals and are categorized as BLOCKER or WARNING.
4
- */
5
- const PASSED_RESULT = { passed: true, warnings: [], blockers: [] };
6
- function createBlockerCheck(name, description, checkFn) {
7
- return {
8
- name,
9
- description,
10
- type: 'blocker',
11
- check: (memories, metadata) => {
12
- const result = checkFn(memories, metadata);
13
- return result.passed ? PASSED_RESULT : { passed: false, warnings: [], blockers: result.blockers };
14
- },
15
- };
16
- }
17
- function createWarningCheck(name, description, checkFn) {
18
- return {
19
- name,
20
- description,
21
- type: 'warning',
22
- check: (memories, metadata) => {
23
- const result = checkFn(memories, metadata);
24
- return { passed: true, warnings: result.warnings, blockers: [] };
25
- },
26
- };
27
- }
28
- export const SAFETY_CHECKS = [
29
- createBlockerCheck('immutability', 'Prevent merging immutable memories', (memories) => {
30
- const immutableMemories = memories.filter((m) => !m.isMergeable);
31
- if (immutableMemories.length === 0) {
32
- return { passed: true, blockers: [] };
33
- }
34
- return {
35
- passed: false,
36
- blockers: [
37
- `Cannot merge: ${immutableMemories.length} memory(ies) marked as immutable`,
38
- `IDs: ${immutableMemories.map((m) => m.id).join(', ')}`,
39
- ],
40
- };
41
- }),
42
- createBlockerCheck('type_consistency', 'Ensure all memories are same type', (memories) => {
43
- const types = new Set(memories.map((m) => m.type));
44
- if (types.size <= 1) {
45
- return { passed: true, blockers: [] };
46
- }
47
- return {
48
- passed: false,
49
- blockers: [
50
- `Cannot merge different types: ${Array.from(types).join(', ')}`,
51
- 'All memories must be same type (fact, preference, decision, etc.)',
52
- ],
53
- };
54
- }),
55
- createBlockerCheck('already_merged', 'Prevent re-merging of previously merged memories', (memories) => {
56
- const alreadyMerged = memories.filter((m) => m.isMerged);
57
- if (alreadyMerged.length === 0) {
58
- return { passed: true, blockers: [] };
59
- }
60
- return {
61
- passed: false,
62
- blockers: [
63
- `Cannot merge: ${alreadyMerged.length} memory(ies) already merged`,
64
- 'Already-merged memories should not be re-merged. Undo previous merge first.',
65
- ],
66
- };
67
- }),
68
- createBlockerCheck('min_similarity', 'Ensure similarity is above minimum threshold', (memories, metadata) => {
69
- const minThreshold = 0.70;
70
- if (!metadata || !('similarityScore' in metadata)) {
71
- return { passed: true, blockers: [] };
72
- }
73
- const similarity = metadata.similarityScore;
74
- if (similarity >= minThreshold) {
75
- return { passed: true, blockers: [] };
76
- }
77
- return {
78
- passed: false,
79
- blockers: [
80
- `Similarity too low: ${(similarity * 100).toFixed(1)}%`,
81
- `Minimum required: ${(minThreshold * 100).toFixed(0)}%`,
82
- 'Increase similarity threshold or select more similar memories',
83
- ],
84
- };
85
- }),
86
- createWarningCheck('multi_user', 'Warn about merging memories from different users', (memories) => {
87
- const users = new Set(memories.map((m) => m.userId).filter(Boolean));
88
- if (users.size <= 1) {
89
- return { warnings: [] };
90
- }
91
- return {
92
- warnings: [
93
- `Merging memories from ${users.size} different users`,
94
- 'This is usually not recommended. Ensure you want to consolidate user-specific memories.',
95
- ],
96
- };
97
- }),
98
- createWarningCheck('privacy', 'Warn about mixing private and non-private memories', (memories) => {
99
- const privacyStates = new Set(memories.map((m) => m.isPrivate));
100
- if (privacyStates.size <= 1) {
101
- return { warnings: [] };
102
- }
103
- return {
104
- warnings: [
105
- 'Merging private and non-private memories',
106
- 'The merged result will inherit the privacy setting of the canonical memory',
107
- ],
108
- };
109
- }),
110
- createWarningCheck('secrets', 'Warn about merging memories with detected secrets', (memories) => {
111
- const withSecrets = memories.filter((m) => m.hasSecrets);
112
- if (withSecrets.length === 0) {
113
- return { warnings: [] };
114
- }
115
- return {
116
- warnings: [
117
- `${withSecrets.length} memory(ies) contain detected secrets`,
118
- 'Ensure merged content does not expose sensitive information',
119
- 'Consider redacting secrets before merging',
120
- ],
121
- };
122
- }),
123
- createBlockerCheck('active_status', 'Ensure all memories are active', (memories) => {
124
- const inactive = memories.filter((m) => !m.isActive);
125
- if (inactive.length === 0) {
126
- return { passed: true, blockers: [] };
127
- }
128
- return {
129
- passed: false,
130
- blockers: [
131
- `Cannot merge: ${inactive.length} memory(ies) are inactive (archived/expired)`,
132
- 'Only active memories can be merged',
133
- ],
134
- };
135
- }),
136
- ];
137
- export function runSafetyChecks(memories, metadata) {
138
- const results = SAFETY_CHECKS.map((check) => check.check(memories, metadata));
139
- const allBlockers = results.flatMap((r) => r.blockers);
140
- const allWarnings = results.flatMap((r) => r.warnings);
141
- return {
142
- passed: allBlockers.length === 0,
143
- warnings: allWarnings,
144
- blockers: allBlockers,
145
- };
146
- }
147
- export function checkBlockers(memories) {
148
- const blockerChecks = SAFETY_CHECKS.filter((c) => c.type === 'blocker');
149
- for (const check of blockerChecks) {
150
- const result = check.check(memories);
151
- if (!result.passed) {
152
- return false;
153
- }
154
- }
155
- return true;
156
- }
157
- export function formatSafetyResults(result) {
158
- if (result.passed && result.warnings.length === 0) {
159
- return 'All safety checks passed';
160
- }
161
- const lines = [];
162
- if (!result.passed && result.blockers.length > 0) {
163
- lines.push('BLOCKERS (merge prevented):');
164
- for (const blocker of result.blockers) {
165
- lines.push(` ✗ ${blocker}`);
166
- }
167
- }
168
- if (result.warnings.length > 0) {
169
- lines.push('WARNINGS (merge allowed with caution):');
170
- for (const warning of result.warnings) {
171
- lines.push(` ⚠ ${warning}`);
172
- }
173
- }
174
- return lines.join('\n');
175
- }
176
- export function describeSafetyChecks() {
177
- return SAFETY_CHECKS.map((check) => `${check.name} [${check.type}]: ${check.description}`).join('\n');
178
- }
179
- //# sourceMappingURL=safety-checks.js.map
@@ -1,50 +0,0 @@
1
- /**
2
- * Type-specific merge strategies for different memory types.
3
- * Each type has different merge semantics to preserve meaning and prevent data loss.
4
- */
5
- import type { Memory, MemoryType } from '../../../db/drizzle/schema.js';
6
- export interface MergeStrategy {
7
- type: MemoryType;
8
- /**
9
- * Merge a set of source memories into a single canonical memory
10
- */
11
- merge(sources: Memory[]): MergedMemory;
12
- /**
13
- * Check if memories can be safely merged
14
- * Returns { ok, reason } where reason explains why merging is not allowed
15
- */
16
- canMerge(sources: Memory[]): {
17
- ok: boolean;
18
- reason?: string;
19
- };
20
- }
21
- export interface MergedMemory {
22
- content: string;
23
- summary: string | null;
24
- tags: string[];
25
- metadata: Record<string, unknown>;
26
- mergeReason: string;
27
- conflictWarnings: string[];
28
- }
29
- /**
30
- * Base implementation of MergeStrategy with common functionality.
31
- * Reduces code duplication across specific merge strategies.
32
- */
33
- export declare abstract class BaseMergeStrategy implements MergeStrategy {
34
- abstract type: MemoryType;
35
- canMerge(sources: Memory[]): {
36
- ok: boolean;
37
- reason?: string;
38
- };
39
- protected validateSources(sources: Memory[]): boolean;
40
- protected handleEmptySources(): MergedMemory;
41
- protected mergeTags(sources: Memory[]): string[];
42
- protected buildBaseMetadata(sources: Memory[], extra?: Record<string, unknown>): Record<string, unknown>;
43
- protected sortByDate(sources: Memory[], order?: 'asc' | 'desc'): Memory[];
44
- protected sortChronologically(sources: Memory[]): Memory[];
45
- abstract merge(sources: Memory[]): MergedMemory;
46
- }
47
- export declare const MERGE_STRATEGIES: Record<MemoryType, MergeStrategy>;
48
- export declare function getMergeStrategy(type: MemoryType): MergeStrategy;
49
- export declare function mergeMemories(sources: Memory[]): MergedMemory;
50
- //# sourceMappingURL=merge-strategies.d.ts.map