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,130 +0,0 @@
1
- /**
2
- * Database Client & Schema Loading Abstraction
3
- *
4
- * Provides a unified interface for accessing both the database client and schema
5
- * in a single call, eliminating repetitive patterns of:
6
- * `const db = createDatabaseClient(await getDb()); const schema = await getSchema();`
7
- *
8
- * Features:
9
- * - Single async call to get both db and schema
10
- * - Consistent error handling with clear messages
11
- * - Preserves schema caching
12
- * - Provides raw connection for special cases
13
- * - Helper `withDbClient` for functional programming patterns
14
- *
15
- * @example
16
- * ```typescript
17
- * // Old pattern (repetitive)
18
- * const db = createDatabaseClient(await getDb());
19
- * const schema = await getSchema();
20
- *
21
- * // New pattern (unified)
22
- * const { db, schema } = await getDbClient();
23
- *
24
- * // With helper
25
- * const result = await withDbClient(async (client) => {
26
- * return await client.db.select().from(client.schema.memories);
27
- * });
28
- * ```
29
- */
30
- import { getDb } from '../../db/index.js';
31
- import { getSchema } from '../../db/schema.js';
32
- import { createDatabaseClient } from '../storage/database.js';
33
- /**
34
- * Internal cached schema to preserve getSchema() caching behavior
35
- */
36
- let cachedSchema = null;
37
- /**
38
- * Get a unified database client with both db and schema.
39
- *
40
- * This function:
41
- * 1. Calls getDb() to initialize/retrieve the database connection
42
- * 2. Calls getSchema() to get the appropriate schema (with caching)
43
- * 3. Wraps the db with createDatabaseClient() for unified API
44
- * 4. Returns all three as a single DbClient object
45
- *
46
- * Error handling:
47
- * - Wraps any database initialization errors with a clear message
48
- * - Preserves the original error as `cause` property
49
- *
50
- * Schema caching:
51
- * - Uses the same caching mechanism as getSchema()
52
- * - Multiple calls to getDbClient() will return the same schema reference
53
- *
54
- * @returns Promise<DbClient> Unified client with db, schema, and raw
55
- * @throws {Error} When database initialization fails, with cause attached
56
- *
57
- * @example
58
- * ```typescript
59
- * const { db, schema, raw } = await getDbClient();
60
- *
61
- * // Use db for queries
62
- * const memories = await db.select().from(schema.memories).limit(10);
63
- *
64
- * // Use raw for special cases
65
- * const client = (raw as any).$client;
66
- * if (client && typeof client.exec === 'function') {
67
- * client.exec('VACUUM');
68
- * }
69
- * ```
70
- */
71
- export async function getDbClient() {
72
- try {
73
- // Get raw database connection
74
- const rawDb = await getDb();
75
- // Get schema (with caching)
76
- if (!cachedSchema) {
77
- cachedSchema = await getSchema();
78
- }
79
- // Create wrapped database client
80
- const db = createDatabaseClient(rawDb);
81
- return {
82
- db,
83
- schema: cachedSchema,
84
- raw: rawDb,
85
- };
86
- }
87
- catch (error) {
88
- const message = error instanceof Error
89
- ? `Database initialization failed: ${error.message}`
90
- : 'Database initialization failed';
91
- // Wrap error with clear message while preserving cause
92
- const wrappedError = new Error(message);
93
- // @ts-ignore - TypeScript doesn't allow 'cause' on Error, but it's valid
94
- wrappedError.cause = error;
95
- throw wrappedError;
96
- }
97
- }
98
- /**
99
- * Execute an operation with a unified database client.
100
- *
101
- * Convenience wrapper that:
102
- * 1. Calls getDbClient() to obtain client
103
- * 2. Executes the provided operation
104
- * 3. Ensures proper cleanup if needed (no-op currently, for future extension)
105
- *
106
- * @param operation - Async function that receives the DbClient and returns a result
107
- * @returns Promise<T> The result returned by the operation
108
- * @throws {Error} When database initialization or operation fails
109
- *
110
- * @example
111
- * ```typescript
112
- * const count = await withDbClient(async (client) => {
113
- * const result = await client.db
114
- * .select({ count: sql`count(*)` })
115
- * .from(client.schema.memories);
116
- * return result[0].count;
117
- * });
118
- * ```
119
- */
120
- export async function withDbClient(operation) {
121
- const client = await getDbClient();
122
- try {
123
- return await operation(client);
124
- }
125
- finally {
126
- // Future: Add cleanup logic if needed (connection pooling, etc.)
127
- // Currently getDb() handles connection pooling and reuse
128
- }
129
- }
130
- //# sourceMappingURL=db-client.js.map
@@ -1,9 +0,0 @@
1
- /**
2
- * Parse embedding from various storage formats.
3
- * Converted from 4 locations: hybrid-search.ts, consolidation.ts, memories.ts, entity-deduplicator.ts
4
- *
5
- * @param embeddingData - Input in Float32Array, Buffer, Uint8Array, JSON string, or Array format
6
- * @returns Array of numbers or null if parsing fails
7
- */
8
- export declare function parseEmbedding(embeddingData: unknown): number[] | null;
9
- //# sourceMappingURL=parse-embedding.d.ts.map
@@ -1,58 +0,0 @@
1
- /**
2
- * Parse embedding from various storage formats.
3
- * Converted from 4 locations: hybrid-search.ts, consolidation.ts, memories.ts, entity-deduplicator.ts
4
- *
5
- * @param embeddingData - Input in Float32Array, Buffer, Uint8Array, JSON string, or Array format
6
- * @returns Array of numbers or null if parsing fails
7
- */
8
- export function parseEmbedding(embeddingData) {
9
- if (!embeddingData)
10
- return null;
11
- // Handle Array directly (most common case)
12
- if (Array.isArray(embeddingData)) {
13
- return embeddingData;
14
- }
15
- // Handle Float32Array directly
16
- if (embeddingData instanceof Float32Array) {
17
- return Array.from(embeddingData);
18
- }
19
- // Handle Uint8Array and Buffer - try JSON first, then binary Float32
20
- if (embeddingData instanceof Uint8Array || Buffer.isBuffer(embeddingData)) {
21
- // Try to parse as JSON string first
22
- try {
23
- const json = JSON.parse(embeddingData.toString());
24
- if (Array.isArray(json)) {
25
- return json;
26
- }
27
- }
28
- catch {
29
- // Not JSON, try binary Float32
30
- }
31
- // Try to parse as binary Float32Array
32
- try {
33
- const buffer = embeddingData.buffer;
34
- const arrayBuffer = buffer instanceof ArrayBuffer
35
- ? buffer
36
- : buffer;
37
- const floatArray = new Float32Array(arrayBuffer);
38
- return Array.from(floatArray);
39
- }
40
- catch {
41
- return null;
42
- }
43
- }
44
- // Handle JSON string
45
- if (typeof embeddingData === 'string') {
46
- try {
47
- const parsed = JSON.parse(embeddingData);
48
- if (Array.isArray(parsed)) {
49
- return parsed;
50
- }
51
- }
52
- catch {
53
- return null;
54
- }
55
- }
56
- return null;
57
- }
58
- //# sourceMappingURL=parse-embedding.js.map
@@ -1,132 +0,0 @@
1
- /**
2
- * Shared Zod schemas for input validation across Squish
3
- * Provides consistent validation for common input types
4
- */
5
- import { z } from 'zod';
6
- /**
7
- * Limit schema: integer between 1 and 100, default 20
8
- */
9
- export declare const limitSchema: z.ZodDefault<z.ZodNumber>;
10
- /**
11
- * Offset schema: integer >= 0, default 0
12
- */
13
- export declare const offsetSchema: z.ZodDefault<z.ZodNumber>;
14
- /**
15
- * Project ID/path schema: non-empty string
16
- */
17
- export declare const projectIdSchema: z.ZodString;
18
- /**
19
- * Memory ID schema: valid UUID
20
- */
21
- export declare const memoryIdSchema: z.ZodString;
22
- /**
23
- * Pagination schema combining limit and offset
24
- */
25
- export declare const paginationSchema: z.ZodObject<{
26
- limit: z.ZodDefault<z.ZodNumber>;
27
- offset: z.ZodDefault<z.ZodNumber>;
28
- }, z.core.$strip>;
29
- /**
30
- * Search query schema: non-empty string
31
- */
32
- export declare const searchQuerySchema: z.ZodString;
33
- /**
34
- * Memory type schema
35
- */
36
- export declare const memoryTypeSchema: z.ZodEnum<{
37
- observation: "observation";
38
- fact: "fact";
39
- decision: "decision";
40
- context: "context";
41
- preference: "preference";
42
- note: "note";
43
- }>;
44
- /**
45
- * Association type schema
46
- */
47
- export declare const associationTypeSchema: z.ZodEnum<{
48
- supersedes: "supersedes";
49
- contradicts: "contradicts";
50
- supports: "supports";
51
- relates_to: "relates_to";
52
- duplicate: "duplicate";
53
- }>;
54
- /**
55
- * Weight schema: number between 0 and 1
56
- */
57
- export declare const weightSchema: z.ZodNumber;
58
- /**
59
- * Learning type schema
60
- */
61
- export declare const learningTypeSchema: z.ZodEnum<{
62
- observation: "observation";
63
- success: "success";
64
- failure: "failure";
65
- fix: "fix";
66
- }>;
67
- /**
68
- * Observation type schema
69
- */
70
- export declare const observationTypeSchema: z.ZodEnum<{
71
- error: "error";
72
- insight: "insight";
73
- pattern: "pattern";
74
- tool_use: "tool_use";
75
- file_change: "file_change";
76
- }>;
77
- /**
78
- * Confidence level schema
79
- */
80
- export declare const confidenceLevelSchema: z.ZodEnum<{
81
- certain: "certain";
82
- speculative: "speculative";
83
- outdated: "outdated";
84
- }>;
85
- /**
86
- * Search input schema (common for search operations)
87
- */
88
- export declare const searchInputSchema: z.ZodObject<{
89
- query: z.ZodString;
90
- limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
91
- offset: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
92
- project: z.ZodOptional<z.ZodString>;
93
- type: z.ZodOptional<z.ZodEnum<{
94
- observation: "observation";
95
- fact: "fact";
96
- decision: "decision";
97
- context: "context";
98
- preference: "preference";
99
- note: "note";
100
- }>>;
101
- }, z.core.$strip>;
102
- /**
103
- * Memory recall schema
104
- */
105
- export declare const recallInputSchema: z.ZodObject<{
106
- memoryId: z.ZodString;
107
- limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
108
- project: z.ZodOptional<z.ZodString>;
109
- }, z.core.$strip>;
110
- /**
111
- * Tag operation schema
112
- */
113
- export declare const tagOperationSchema: z.ZodObject<{
114
- action: z.ZodEnum<{
115
- add: "add";
116
- remove: "remove";
117
- }>;
118
- tag: z.ZodString;
119
- search: z.ZodOptional<z.ZodString>;
120
- olderThan: z.ZodOptional<z.ZodString>;
121
- type: z.ZodOptional<z.ZodEnum<{
122
- observation: "observation";
123
- fact: "fact";
124
- decision: "decision";
125
- context: "context";
126
- preference: "preference";
127
- note: "note";
128
- }>>;
129
- limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
130
- project: z.ZodOptional<z.ZodString>;
131
- }, z.core.$strip>;
132
- //# sourceMappingURL=schemas.d.ts.map
@@ -1,87 +0,0 @@
1
- /**
2
- * Shared Zod schemas for input validation across Squish
3
- * Provides consistent validation for common input types
4
- */
5
- import { z } from 'zod';
6
- /**
7
- * Limit schema: integer between 1 and 100, default 20
8
- */
9
- export const limitSchema = z.number().int().min(1).max(100).default(20);
10
- /**
11
- * Offset schema: integer >= 0, default 0
12
- */
13
- export const offsetSchema = z.number().int().min(0).default(0);
14
- /**
15
- * Project ID/path schema: non-empty string
16
- */
17
- export const projectIdSchema = z.string().min(1);
18
- /**
19
- * Memory ID schema: valid UUID
20
- */
21
- export const memoryIdSchema = z.string().uuid();
22
- /**
23
- * Pagination schema combining limit and offset
24
- */
25
- export const paginationSchema = z.object({
26
- limit: limitSchema,
27
- offset: offsetSchema,
28
- });
29
- /**
30
- * Search query schema: non-empty string
31
- */
32
- export const searchQuerySchema = z.string().min(1).trim();
33
- /**
34
- * Memory type schema
35
- */
36
- export const memoryTypeSchema = z.enum(['observation', 'fact', 'decision', 'context', 'preference', 'note']);
37
- /**
38
- * Association type schema
39
- */
40
- export const associationTypeSchema = z.enum(['relates_to', 'supports', 'contradicts', 'supersedes', 'duplicate']);
41
- /**
42
- * Weight schema: number between 0 and 1
43
- */
44
- export const weightSchema = z.number().min(0).max(1);
45
- /**
46
- * Learning type schema
47
- */
48
- export const learningTypeSchema = z.enum(['success', 'failure', 'fix', 'observation']);
49
- /**
50
- * Observation type schema
51
- */
52
- export const observationTypeSchema = z.enum(['tool_use', 'file_change', 'error', 'pattern', 'insight']);
53
- /**
54
- * Confidence level schema
55
- */
56
- export const confidenceLevelSchema = z.enum(['certain', 'speculative', 'outdated']);
57
- /**
58
- * Search input schema (common for search operations)
59
- */
60
- export const searchInputSchema = z.object({
61
- query: searchQuerySchema,
62
- limit: limitSchema.optional(),
63
- offset: offsetSchema.optional(),
64
- project: projectIdSchema.optional(),
65
- type: memoryTypeSchema.optional(),
66
- });
67
- /**
68
- * Memory recall schema
69
- */
70
- export const recallInputSchema = z.object({
71
- memoryId: memoryIdSchema,
72
- limit: limitSchema.optional(),
73
- project: projectIdSchema.optional(),
74
- });
75
- /**
76
- * Tag operation schema
77
- */
78
- export const tagOperationSchema = z.object({
79
- action: z.enum(['add', 'remove']),
80
- tag: z.string().min(1),
81
- search: z.string().optional(),
82
- olderThan: z.string().optional(),
83
- type: memoryTypeSchema.optional(),
84
- limit: limitSchema.optional(),
85
- project: projectIdSchema.optional(),
86
- });
87
- //# sourceMappingURL=schemas.js.map
@@ -1,45 +0,0 @@
1
- /**
2
- * Shared type definitions for Squish Memory system
3
- * Consolidated from core/memory/memories.ts and core/memory/normalization.ts
4
- */
5
- export type MemoryType = 'observation' | 'fact' | 'decision' | 'context' | 'preference' | 'note' | 'task';
6
- /**
7
- * Confidence level for memory records
8
- * - certain: High confidence, verified information
9
- * - speculative: Low confidence, unverified or uncertain
10
- * - outdated: Information that may no longer be accurate
11
- */
12
- export type ConfidenceLevel = 'certain' | 'speculative' | 'outdated';
13
- /**
14
- * Unified MemoryRecord interface
15
- * Used across memories.ts and normalization.ts
16
- *
17
- * Note: type is string to avoid circular dependency with memories.ts
18
- * Use MemoryType for type checking when needed
19
- */
20
- export interface MemoryRecord {
21
- id: string;
22
- projectId?: string | null;
23
- type: string;
24
- content: string;
25
- summary?: string | null;
26
- tags: string[];
27
- metadata?: Record<string, unknown> | null;
28
- createdAt?: string | null;
29
- validFrom?: string | null;
30
- validTo?: string | null;
31
- recordedAt?: string | null;
32
- similarity?: number;
33
- importance?: number;
34
- confidenceLevel?: ConfidenceLevel | null;
35
- }
36
- /**
37
- * Result of a safety check
38
- * Used to determine if a merge action can proceed
39
- */
40
- export interface SafetyCheckResult {
41
- passed: boolean;
42
- warnings: string[];
43
- blockers: string[];
44
- }
45
- //# sourceMappingURL=types.d.ts.map
@@ -1,6 +0,0 @@
1
- /**
2
- * Shared type definitions for Squish Memory system
3
- * Consolidated from core/memory/memories.ts and core/memory/normalization.ts
4
- */
5
- export {};
6
- //# sourceMappingURL=types.js.map
@@ -1,18 +0,0 @@
1
- /**
2
- * Shared utility functions for the squish codebase
3
- */
4
- export declare function normalizeTimestamp(value: any): string | null;
5
- export declare function now(): string;
6
- export declare function isDatabaseUnavailableError(error: any): boolean;
7
- export declare function withDatabaseErrorHandling<T>(operation: () => Promise<T>, errorMessage: string): Promise<T>;
8
- export declare function clampLimit(value: number | undefined, defaultValue: number, min?: number, max?: number): number;
9
- export declare function prepareEmbedding(embedding: number[] | null): {
10
- embedding?: number[] | null;
11
- embeddingJson?: string | null;
12
- };
13
- export declare function determineOverallStatus(dbStatus: string, redisOk: boolean): string;
14
- export declare function parseDate(input: string): Date | null;
15
- export declare function filterByDateRange<T extends {
16
- createdAt?: string | null;
17
- }>(items: T[], since?: string, until?: string): T[];
18
- //# sourceMappingURL=utils.d.ts.map
@@ -1,145 +0,0 @@
1
- /**
2
- * Shared utility functions for the squish codebase
3
- */
4
- import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
5
- import { config } from '../../config.js';
6
- import { toSqliteJson } from '../memory/serialization.js';
7
- export function normalizeTimestamp(value) {
8
- if (!value)
9
- return null;
10
- if (value instanceof Date)
11
- return value.toISOString();
12
- if (typeof value === 'number') {
13
- try {
14
- // Handle different timestamp formats using magnitude thresholds
15
- // Microseconds: > 100000000000000 (e.g., 1700000000000000)
16
- // Milliseconds: > 1000000000000 (e.g., 1700000000000)
17
- // Seconds: <= 1000000000000 (e.g., 1700000000)
18
- if (value > 100000000000000) {
19
- return new Date(value / 1000).toISOString();
20
- }
21
- else if (value > 1000000000000) {
22
- return new Date(value).toISOString();
23
- }
24
- else if (value >= 0) {
25
- return new Date(value * 1000).toISOString();
26
- }
27
- return null;
28
- }
29
- catch {
30
- return null;
31
- }
32
- }
33
- if (typeof value === 'string') {
34
- try {
35
- const parsed = new Date(value);
36
- if (!isNaN(parsed.getTime()))
37
- return parsed.toISOString();
38
- return null;
39
- }
40
- catch {
41
- return null;
42
- }
43
- }
44
- return null;
45
- }
46
- export function now() {
47
- return new Date().toISOString();
48
- }
49
- export function isDatabaseUnavailableError(error) {
50
- const message = error?.message || '';
51
- return [
52
- 'Database unavailable',
53
- 'not a valid Win32 application',
54
- 'invalid ELF header',
55
- 'bun:',
56
- 'sql.js wasm asset not found',
57
- 'SQLite database initialization failed',
58
- 'working local SQLite driver',
59
- ].some((pattern) => message.includes(pattern));
60
- }
61
- export async function withDatabaseErrorHandling(operation, errorMessage) {
62
- try {
63
- return await operation();
64
- }
65
- catch (dbError) {
66
- if (isDatabaseUnavailableError(dbError)) {
67
- throw new McpError(ErrorCode.InternalError, errorMessage);
68
- }
69
- throw dbError;
70
- }
71
- }
72
- export function clampLimit(value, defaultValue, min = 1, max = 100) {
73
- return Math.min(Math.max(value ?? defaultValue, min), max);
74
- }
75
- export function prepareEmbedding(embedding) {
76
- if (config.isTeamMode) {
77
- return { embedding: embedding ?? null };
78
- }
79
- return { embeddingJson: toSqliteJson(embedding ?? null) };
80
- }
81
- export function determineOverallStatus(dbStatus, redisOk) {
82
- if ((dbStatus === 'ok' || dbStatus === 'unavailable') && redisOk) {
83
- return 'ok';
84
- }
85
- if (dbStatus === 'unavailable') {
86
- return 'degraded';
87
- }
88
- return 'error';
89
- }
90
- // Date parsing utilities - shared between CLI and MCP
91
- // ============================================================================
92
- export function parseDate(input) {
93
- if (!input)
94
- return null;
95
- const now = new Date();
96
- const lower = input.toLowerCase().trim();
97
- // Direct date parse
98
- const parsed = new Date(input);
99
- if (!isNaN(parsed.getTime()))
100
- return parsed;
101
- // Relative parsing
102
- const dayMatch = lower.match(/(\d+)\s*day/i);
103
- const weekMatch = lower.match(/(\d+)\s*week/i);
104
- const monthMatch = lower.match(/(\d+)\s*month/i);
105
- if (lower === 'today') {
106
- const d = new Date(now);
107
- d.setHours(0, 0, 0, 0);
108
- return d;
109
- }
110
- if (lower === 'yesterday')
111
- return new Date(now.getTime() - 86400000);
112
- if (lower === 'thisweek' || lower === 'this week') {
113
- const d = new Date(now);
114
- d.setDate(d.getDate() - d.getDay());
115
- d.setHours(0, 0, 0, 0);
116
- return d;
117
- }
118
- if (lower === 'lastweek' || lower === 'last week') {
119
- const d = new Date(now);
120
- d.setDate(d.getDate() - d.getDay() - 7);
121
- return d;
122
- }
123
- if (dayMatch)
124
- return new Date(now.getTime() - parseInt(dayMatch[1]) * 86400000);
125
- if (weekMatch)
126
- return new Date(now.getTime() - parseInt(weekMatch[1]) * 604800000);
127
- if (monthMatch)
128
- return new Date(now.getTime() - parseInt(monthMatch[1]) * 2592000000);
129
- return null;
130
- }
131
- export function filterByDateRange(items, since, until) {
132
- const sinceDate = parseDate(since || '');
133
- const untilDate = parseDate(until || '');
134
- return items.filter(item => {
135
- if (!item.createdAt)
136
- return true;
137
- const created = new Date(item.createdAt);
138
- if (sinceDate && created < sinceDate)
139
- return false;
140
- if (untilDate && created > untilDate)
141
- return false;
142
- return true;
143
- });
144
- }
145
- //# sourceMappingURL=utils.js.map
@@ -1,38 +0,0 @@
1
- /**
2
- * Input validation utilities for Squish
3
- * Consolidates scattered validation patterns into a unified module
4
- */
5
- import { normalizeTags } from '../memory/serialization.js';
6
- /**
7
- * Validate and normalize a limit value with bounds checking
8
- */
9
- export declare function validateLimit(value: number | string | undefined, defaultValue?: number, min?: number, max?: number): number;
10
- /**
11
- * Parse an integer with bounds checking
12
- */
13
- export declare function parseIntBounded(value: number | string | undefined, defaultValue: number, min: number, max: number): number;
14
- /**
15
- * Validate a project path
16
- */
17
- export declare function validateProjectPath(path: string | undefined, options?: {
18
- createIfMissing?: boolean;
19
- require?: boolean;
20
- }): Promise<string>;
21
- /**
22
- * Validate a UUID
23
- */
24
- export declare function validateUuid(id: string): boolean;
25
- /**
26
- * Require a valid UUID, throws if invalid
27
- */
28
- export declare function requireUuid(id: string): string;
29
- /**
30
- * Validate a date value
31
- *
32
- * @param value - The date to validate (string, Date, number, or undefined)
33
- * @returns Date object if valid, null otherwise
34
- */
35
- export declare function validateDate(value: string | Date | number | undefined): Date | null;
36
- export { normalizeTags };
37
- export { clampLimit } from './utils.js';
38
- //# sourceMappingURL=validation.d.ts.map