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,164 +0,0 @@
1
- /** Job Runner - Maintenance job implementations */
2
- import { logger } from '../logger.js';
3
- import { runDeduplicationJob } from '../consolidation.js';
4
- import { runLifecycleMaintenance } from '../lifecycle.js';
5
- import { pruneWeakAssociations } from '../associations.js';
6
- import { pruneOldSummaries } from '../summarization.js';
7
- import { getDb } from '../../db/index.js';
8
- import { memories, memoryFeedback } from '../../db/drizzle/schema-sqlite.js';
9
- import { eq, and, gt, lt } from 'drizzle-orm';
10
- export async function runNightlyJob(context) {
11
- const summary = {};
12
- let recordsProcessed = 0;
13
- logger.info('[NightlyJob] Starting nightly maintenance');
14
- if (context.config.applyDecay !== false || context.config.updateTiers !== false) {
15
- try {
16
- const lifecycleResult = await runLifecycleMaintenance();
17
- summary.decayApplied = lifecycleResult?.decayed || 0;
18
- // Simplified: hot/cold only (warm removed)
19
- summary.tiersUpdated = (lifecycleResult?.tierChanges?.hot || 0) +
20
- (lifecycleResult?.tierChanges?.cold || 0);
21
- recordsProcessed += summary.decayApplied;
22
- recordsProcessed += summary.tiersUpdated;
23
- logger.info(`[NightlyJob] Lifecycle: ${summary.decayApplied} decayed, ${summary.tiersUpdated} tier updates`);
24
- }
25
- catch (error) {
26
- logger.error('[NightlyJob] Lifecycle maintenance failed:', error);
27
- summary.lifecycleError = error instanceof Error ? error.message : String(error);
28
- }
29
- }
30
- if (context.config.mergeDuplicates !== false) {
31
- try {
32
- const dedupResult = await runDeduplicationJob();
33
- summary.duplicatesMerged = dedupResult?.mergedCount || 0;
34
- recordsProcessed += summary.duplicatesMerged;
35
- logger.info(`[NightlyJob] Merged ${summary.duplicatesMerged} duplicate memories`);
36
- }
37
- catch (error) {
38
- logger.error('[NightlyJob] Deduplication failed:', error);
39
- summary.dedupError = error instanceof Error ? error.message : String(error);
40
- }
41
- }
42
- if (context.config.boostAccessed !== false) {
43
- try {
44
- const boostResult = await boostFrequentlyAccessed();
45
- summary.memoriesBoosted = boostResult;
46
- recordsProcessed += boostResult;
47
- logger.info(`[NightlyJob] Boosted ${summary.memoriesBoosted} frequently accessed memories`);
48
- }
49
- catch (error) {
50
- logger.error('[NightlyJob] Boost failed:', error);
51
- summary.boostError = error instanceof Error ? error.message : String(error);
52
- }
53
- }
54
- logger.info(`[NightlyJob] Completed: ${recordsProcessed} records processed`);
55
- return { recordsProcessed, summary };
56
- }
57
- export async function runWeeklyJob(context) {
58
- const summary = {};
59
- let recordsProcessed = 0;
60
- logger.info('[WeeklyJob] Starting weekly maintenance');
61
- if (context.config.archiveStale !== false) {
62
- try {
63
- const archiveResult = await archiveStaleMemories(90);
64
- summary.memoriesArchived = archiveResult;
65
- recordsProcessed += archiveResult;
66
- logger.info(`[WeeklyJob] Archived ${summary.memoriesArchived} stale memories`);
67
- }
68
- catch (error) {
69
- logger.error('[WeeklyJob] Archive failed:', error);
70
- summary.archiveError = error instanceof Error ? error.message : String(error);
71
- }
72
- }
73
- if (context.config.pruneAssociations !== false) {
74
- try {
75
- const pruneResult = await pruneWeakAssociations();
76
- summary.associationsPruned = typeof pruneResult === 'number' ? pruneResult : 0;
77
- recordsProcessed += summary.associationsPruned;
78
- logger.info(`[WeeklyJob] Pruned ${summary.associationsPruned} weak associations`);
79
- }
80
- catch (error) {
81
- logger.error('[WeeklyJob] Association pruning failed:', error);
82
- summary.pruneError = error instanceof Error ? error.message : String(error);
83
- }
84
- }
85
- if (context.config.pruneSummaries !== false) {
86
- try {
87
- const summaryPruneResult = await pruneOldSummaries(30);
88
- summary.summariesPruned = typeof summaryPruneResult === 'number' ? summaryPruneResult : 0;
89
- recordsProcessed += summary.summariesPruned;
90
- logger.info(`[WeeklyJob] Pruned ${summary.summariesPruned} old summaries`);
91
- }
92
- catch (error) {
93
- logger.error('[WeeklyJob] Summary pruning failed:', error);
94
- summary.summaryPruneError = error instanceof Error ? error.message : String(error);
95
- }
96
- }
97
- if (context.config.cleanupFeedback !== false) {
98
- try {
99
- const feedbackCleanupResult = await cleanupOldFeedbackRecords(30);
100
- summary.feedbackRecordsCleaned = feedbackCleanupResult;
101
- recordsProcessed += feedbackCleanupResult;
102
- logger.info(`[WeeklyJob] Cleaned ${summary.feedbackRecordsCleaned} old feedback records`);
103
- }
104
- catch (error) {
105
- logger.error('[WeeklyJob] Feedback cleanup failed:', error);
106
- summary.feedbackError = error instanceof Error ? error.message : String(error);
107
- }
108
- }
109
- logger.info(`[WeeklyJob] Completed: ${recordsProcessed} records processed`);
110
- return { recordsProcessed, summary };
111
- }
112
- async function boostFrequentlyAccessed() {
113
- const db = await getDb();
114
- if (!db)
115
- return 0;
116
- const sqliteDb = db;
117
- const frequentlyAccessed = await sqliteDb
118
- .select()
119
- .from(memories)
120
- .where(gt(memories.accessCount, 3));
121
- let boosted = 0;
122
- for (const memory of frequentlyAccessed) {
123
- const currentPriority = memory.retrievalPriority ?? 50;
124
- const newPriority = Math.min(100, currentPriority + 5);
125
- await sqliteDb
126
- .update(memories)
127
- .set({ retrievalPriority: newPriority })
128
- .where(eq(memories.id, memory.id));
129
- boosted++;
130
- }
131
- return boosted;
132
- }
133
- async function archiveStaleMemories(daysOld) {
134
- const db = await getDb();
135
- if (!db)
136
- return 0;
137
- const staleThreshold = new Date(Date.now() - daysOld * 24 * 60 * 60 * 1000);
138
- const sqliteDb = db;
139
- const staleMemories = await sqliteDb
140
- .select()
141
- .from(memories)
142
- .where(and(lt(memories.lastAccessedAt, staleThreshold), lt(memories.importanceScore, 30), eq(memories.isProtected, false), eq(memories.isPinned, false)));
143
- let archived = 0;
144
- for (const memory of staleMemories) {
145
- await sqliteDb
146
- .update(memories)
147
- .set({ tier: 'cold' })
148
- .where(eq(memories.id, memory.id));
149
- archived++;
150
- }
151
- return archived;
152
- }
153
- async function cleanupOldFeedbackRecords(daysOld) {
154
- const db = await getDb();
155
- if (!db)
156
- return 0;
157
- const oldThreshold = new Date(Date.now() - daysOld * 24 * 60 * 60 * 1000);
158
- const sqliteDb = db;
159
- await sqliteDb
160
- .delete(memoryFeedback)
161
- .where(lt(memoryFeedback.createdAt, oldThreshold));
162
- return 0;
163
- }
164
- //# sourceMappingURL=job-runner.js.map
@@ -1,25 +0,0 @@
1
- export interface ConversationRecord {
2
- id: string;
3
- projectId?: string | null;
4
- sessionId: string;
5
- title?: string | null;
6
- summary?: string | null;
7
- messageCount?: number | null;
8
- tokenCount?: number | null;
9
- startedAt?: string | null;
10
- endedAt?: string | null;
11
- }
12
- export interface ConversationSearchInput {
13
- query: string;
14
- limit?: number;
15
- role?: 'user' | 'assistant';
16
- }
17
- export interface RecentConversationsInput {
18
- n?: number;
19
- before?: string;
20
- after?: string;
21
- project?: string;
22
- }
23
- export declare function searchConversations(input: ConversationSearchInput): Promise<ConversationRecord[]>;
24
- export declare function getRecentConversations(input: RecentConversationsInput): Promise<ConversationRecord[]>;
25
- //# sourceMappingURL=conversations.d.ts.map
@@ -1,110 +0,0 @@
1
- import { and, desc, eq, gte, lte } from 'drizzle-orm';
2
- import { getDb } from '../../db/index.js';
3
- import { getSchema } from '../../db/schema.js';
4
- import { config } from '../../config.js';
5
- import { requireProject } from '../../core/projects.js';
6
- import { deserializeMetadata } from '../../core/memory/serialization.js';
7
- import { createDatabaseClient } from '../storage/database.js';
8
- import { normalizeTimestamp, clampLimit } from '../lib/utils.js';
9
- export async function searchConversations(input) {
10
- const limit = clampLimit(input.limit, 5, 1, 50);
11
- if (config.isTeamMode) {
12
- return await searchConversationsPostgres(input, limit);
13
- }
14
- return await searchConversationsSqlite(input, limit);
15
- }
16
- export async function getRecentConversations(input) {
17
- const db = createDatabaseClient(await getDb());
18
- const schema = await getSchema();
19
- const limit = clampLimit(input.n, 3, 1, 50);
20
- const whereParts = [];
21
- if (input.project) {
22
- const project = await requireProject(input.project);
23
- whereParts.push(eq(schema.conversations.projectId, project.id));
24
- }
25
- if (input.before) {
26
- whereParts.push(lte(schema.conversations.startedAt, new Date(input.before)));
27
- }
28
- if (input.after) {
29
- whereParts.push(gte(schema.conversations.startedAt, new Date(input.after)));
30
- }
31
- const query = whereParts.length
32
- ? db.select().from(schema.conversations).where(and(...whereParts)).orderBy(desc(schema.conversations.startedAt)).limit(limit)
33
- : db.select().from(schema.conversations).orderBy(desc(schema.conversations.startedAt)).limit(limit);
34
- const rows = await query;
35
- return rows.map((row) => normalizeConversation(row));
36
- }
37
- async function searchConversationsSqlite(input, limit) {
38
- const db = createDatabaseClient(await getDb());
39
- const sqlite = db.$client;
40
- const params = [input.query];
41
- let where = 'messages_fts MATCH ?';
42
- if (input.role) {
43
- where += ' AND m.role = ?';
44
- params.push(input.role);
45
- }
46
- params.push(limit);
47
- const statement = sqlite.prepare(`
48
- SELECT DISTINCT
49
- c.id as id,
50
- c.project_id as projectId,
51
- c.session_id as sessionId,
52
- c.title as title,
53
- c.summary as summary,
54
- c.message_count as messageCount,
55
- c.token_count as tokenCount,
56
- c.started_at as startedAt,
57
- c.ended_at as endedAt,
58
- c.metadata as metadata
59
- FROM conversations c
60
- JOIN messages m ON m.conversation_id = c.id
61
- JOIN messages_fts ON messages_fts.rowid = m.rowid
62
- WHERE ${where}
63
- ORDER BY c.started_at DESC
64
- LIMIT ?
65
- `);
66
- const rows = statement.all(...params);
67
- return rows.map((row) => normalizeConversation(row));
68
- }
69
- async function searchConversationsPostgres(input, limit) {
70
- const db = createDatabaseClient(await getDb());
71
- const values = [`%${input.query}%`];
72
- const whereParts = [`m.content ILIKE $1`];
73
- if (input.role) {
74
- values.push(input.role);
75
- whereParts.push(`m.role = $${values.length}`);
76
- }
77
- values.push(limit);
78
- const rows = await db.$client.query(`SELECT DISTINCT ON (c.id)
79
- c.id as "id",
80
- c.project_id as "projectId",
81
- c.session_id as "sessionId",
82
- c.title as "title",
83
- c.summary as "summary",
84
- c.message_count as "messageCount",
85
- c.token_count as "tokenCount",
86
- c.started_at as "startedAt",
87
- c.ended_at as "endedAt",
88
- c.metadata as "metadata"
89
- FROM conversations c
90
- JOIN messages m ON m.conversation_id = c.id
91
- WHERE ${whereParts.join(' AND ')}
92
- ORDER BY c.id, c.started_at DESC
93
- LIMIT $${values.length}`, values);
94
- return rows.rows.map((row) => normalizeConversation(row));
95
- }
96
- function normalizeConversation(row) {
97
- const metadata = deserializeMetadata(row.metadata ?? null);
98
- return {
99
- id: row.id,
100
- projectId: row.projectId ?? row.project_id ?? null,
101
- sessionId: row.sessionId ?? row.session_id,
102
- title: row.title ?? null,
103
- summary: row.summary ?? null,
104
- messageCount: row.messageCount ?? row.message_count ?? null,
105
- tokenCount: row.tokenCount ?? row.token_count ?? null,
106
- startedAt: normalizeTimestamp(row.startedAt ?? row.started_at),
107
- endedAt: normalizeTimestamp(row.endedAt ?? row.ended_at),
108
- };
109
- }
110
- //# sourceMappingURL=conversations.js.map
@@ -1,12 +0,0 @@
1
- export interface EntityRecord {
2
- id: string;
3
- projectId?: string | null;
4
- name: string;
5
- type: string;
6
- description?: string | null;
7
- properties?: Record<string, unknown> | null;
8
- createdAt?: string | null;
9
- updatedAt?: string | null;
10
- }
11
- export declare function getEntitiesForProject(projectPath: string, limit: number): Promise<EntityRecord[]>;
12
- //# sourceMappingURL=entities.d.ts.map
@@ -1,31 +0,0 @@
1
- import { desc, eq } from 'drizzle-orm';
2
- import { getDb } from '../../db/index.js';
3
- import { getSchema } from '../../db/schema.js';
4
- import { requireProject } from '../../core/projects.js';
5
- import { deserializeMetadata } from '../../core/memory/serialization.js';
6
- import { createDatabaseClient } from '../storage/database.js';
7
- import { normalizeTimestamp } from '../lib/utils.js';
8
- export async function getEntitiesForProject(projectPath, limit) {
9
- const db = createDatabaseClient(await getDb());
10
- const schema = await getSchema();
11
- const project = await requireProject(projectPath);
12
- const rows = await db.select().from(schema.entities)
13
- .where(eq(schema.entities.projectId, project.id))
14
- .orderBy(desc(schema.entities.createdAt))
15
- .limit(limit);
16
- return rows.map((row) => normalizeEntity(row));
17
- }
18
- function normalizeEntity(row) {
19
- const properties = deserializeMetadata(row.properties ?? null);
20
- return {
21
- id: row.id,
22
- projectId: row.projectId ?? row.project_id ?? null,
23
- name: row.name,
24
- type: row.type,
25
- description: row.description ?? null,
26
- properties,
27
- createdAt: normalizeTimestamp(row.createdAt ?? row.created_at),
28
- updatedAt: normalizeTimestamp(row.updatedAt ?? row.updated_at),
29
- };
30
- }
31
- //# sourceMappingURL=entities.js.map
@@ -1,25 +0,0 @@
1
- /**
2
- * Folder Context Generation
3
- * Generates and maintains per-folder CLAUDE.md files with session summaries
4
- */
5
- interface FolderContextData {
6
- projectPath: string;
7
- projectName: string;
8
- gitRemote?: string;
9
- gitBranch?: string;
10
- recentConversations: Array<{
11
- content: string;
12
- timestamp: string;
13
- }>;
14
- keyObservations: Array<{
15
- summary: string;
16
- timestamp: string;
17
- type: string;
18
- }>;
19
- lastUpdated: string;
20
- }
21
- export declare function generateAndInjectFolderContext(projectPath: string): Promise<void>;
22
- export declare function readFolderContext(projectPath: string): Promise<FolderContextData | null>;
23
- export declare function injectFolderContextIntoSession(projectPath: string): Promise<string>;
24
- export {};
25
- //# sourceMappingURL=folder-context.d.ts.map
@@ -1,119 +0,0 @@
1
- /**
2
- * Folder Context Generation
3
- * Generates and maintains per-folder CLAUDE.md files with session summaries
4
- */
5
- import { promises as fs } from 'fs';
6
- import path from 'path';
7
- import { getRecentConversations } from './conversations.js';
8
- import { logger } from '../../core/logger.js';
9
- function formatDate(dateStr) {
10
- return new Date(dateStr).toLocaleDateString('en-US', {
11
- year: 'numeric',
12
- month: '2-digit',
13
- day: '2-digit'
14
- });
15
- }
16
- function generateClaudeMdContent(data) {
17
- const lines = [
18
- `# Squish Context - ${data.projectName}`,
19
- '',
20
- '<squish-context>',
21
- '',
22
- `**Project**: ${data.projectPath}`
23
- ];
24
- if (data.gitRemote) {
25
- const gitInfo = data.gitBranch ? `${data.gitRemote} @ ${data.gitBranch}` : data.gitRemote;
26
- lines.push(`**Git**: ${gitInfo}`);
27
- }
28
- lines.push(`**Last Updated**: ${data.lastUpdated}`, '');
29
- if (data.recentConversations.length > 0) {
30
- lines.push('## Recent Activity');
31
- for (const conv of data.recentConversations) {
32
- const date = formatDate(conv.timestamp);
33
- const preview = conv.content.substring(0, 80).replace(/\n/g, ' ');
34
- lines.push(`- [${date}] ${preview}...`);
35
- }
36
- lines.push('');
37
- }
38
- if (data.keyObservations.length > 0) {
39
- lines.push('## Key Observations');
40
- for (const obs of data.keyObservations) {
41
- lines.push(`- ${obs.summary} (${obs.type})`);
42
- }
43
- lines.push('');
44
- }
45
- lines.push('## Previous Context', '*(Managed by Squish - do not edit this section)*', '', '</squish-context>', '', '<!-- You can add custom notes and project context here -->', '');
46
- return lines.join('\n');
47
- }
48
- async function collectFolderContextData(projectPath) {
49
- const recentConversations = await getRecentConversations({ n: 5, project: projectPath })
50
- .catch(() => []);
51
- return {
52
- projectPath,
53
- projectName: path.basename(projectPath),
54
- recentConversations: (recentConversations || []).map((conv) => ({
55
- content: conv?.summary || '',
56
- timestamp: conv?.startedAt?.toISOString() || new Date().toISOString()
57
- })),
58
- keyObservations: [],
59
- lastUpdated: new Date().toISOString()
60
- };
61
- }
62
- async function preserveUserContent(claudeMdPath) {
63
- try {
64
- const existingContent = await fs.readFile(claudeMdPath, 'utf-8');
65
- const match = existingContent.match(/<\/squish-context>([\s\S]*)/);
66
- return match ? match[1] : '';
67
- }
68
- catch {
69
- return '';
70
- }
71
- }
72
- export async function generateAndInjectFolderContext(projectPath) {
73
- const claudeMdPath = path.join(projectPath, 'CLAUDE.md');
74
- const contextData = await collectFolderContextData(projectPath);
75
- const newContent = generateClaudeMdContent(contextData);
76
- const userContent = await preserveUserContent(claudeMdPath);
77
- await fs.writeFile(claudeMdPath, newContent + userContent, 'utf-8');
78
- logger.info(`Updated folder context: ${claudeMdPath}`);
79
- }
80
- export async function readFolderContext(projectPath) {
81
- try {
82
- const claudeMdPath = path.join(projectPath, 'CLAUDE.md');
83
- const content = await fs.readFile(claudeMdPath, 'utf-8');
84
- const contextMatch = content.match(/<squish-context>([\s\S]*?)<\/squish-context>/);
85
- if (!contextMatch)
86
- return null;
87
- const contextContent = contextMatch[1];
88
- const projectPathMatch = contextContent.match(/\*\*Project\*\*:\s*(.+)/);
89
- const gitMatch = contextContent.match(/\*\*Git\*\*:\s*(.+)/);
90
- const updatedMatch = contextContent.match(/\*\*Last Updated\*\*:\s*(.+)/);
91
- return {
92
- projectPath: projectPathMatch?.[1] || projectPath,
93
- projectName: path.basename(projectPath),
94
- gitRemote: gitMatch?.[1].split(' @')[0],
95
- gitBranch: gitMatch?.[1].split('@ ')[1],
96
- recentConversations: [],
97
- keyObservations: [],
98
- lastUpdated: updatedMatch?.[1] || new Date().toISOString()
99
- };
100
- }
101
- catch {
102
- return null;
103
- }
104
- }
105
- export async function injectFolderContextIntoSession(projectPath) {
106
- try {
107
- const claudeMdPath = path.join(projectPath, 'CLAUDE.md');
108
- const content = await fs.readFile(claudeMdPath, 'utf-8');
109
- const match = content.match(/<squish-context>([\s\S]*?)<\/squish-context>/);
110
- if (match) {
111
- return `\n<squish-folder-context>\n${match[1]}\n</squish-folder-context>\n`;
112
- }
113
- }
114
- catch {
115
- // File doesn't exist or can't be read
116
- }
117
- return '';
118
- }
119
- //# sourceMappingURL=folder-context.js.map
@@ -1,7 +0,0 @@
1
- /**
2
- * Compute a simple graph boost for a set of memory IDs.
3
- * For each memory, sum (weight * coactivationCount) of outgoing associations.
4
- * Returns a map from memoryId to boost value (default 0).
5
- */
6
- export declare function computeGraphBoost(memoryIds: string[]): Promise<Record<string, number>>;
7
- //# sourceMappingURL=graph-boost.d.ts.map
@@ -1,23 +0,0 @@
1
- import { getDb } from '../../db/index.js';
2
- import { memoryAssociations } from '../../db/drizzle/schema.js';
3
- import { inArray } from 'drizzle-orm';
4
- /**
5
- * Compute a simple graph boost for a set of memory IDs.
6
- * For each memory, sum (weight * coactivationCount) of outgoing associations.
7
- * Returns a map from memoryId to boost value (default 0).
8
- */
9
- export async function computeGraphBoost(memoryIds) {
10
- const boost = {};
11
- if (memoryIds.length === 0)
12
- return boost;
13
- const db = await getDb();
14
- // @ts-ignore - drizzle overload
15
- const rows = await db.select().from(memoryAssociations).where(inArray(memoryAssociations.fromMemoryId, memoryIds));
16
- for (const row of rows) {
17
- const from = row.fromMemoryId;
18
- const val = (row.weight ?? 0) * (row.coactivationCount ?? 0);
19
- boost[from] = (boost[from] ?? 0) + val;
20
- }
21
- return boost;
22
- }
23
- //# sourceMappingURL=graph-boost.js.map
@@ -1,4 +0,0 @@
1
- export * from './conversations.js';
2
- export * from './entities.js';
3
- export * from './folder-context.js';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1,5 +0,0 @@
1
- // Search feature - Search and discovery
2
- export * from './conversations.js';
3
- export * from './entities.js';
4
- export * from './folder-context.js';
5
- //# sourceMappingURL=index.js.map
@@ -1,36 +0,0 @@
1
- import { type QMDSearchResult } from '../embeddings/qmd-client.js';
2
- export type { QMDSearchResult };
3
- export interface QMDStatus {
4
- indexHealth: string;
5
- documentCount: number;
6
- collections?: Array<{
7
- name: string;
8
- path: string;
9
- documentCount: number;
10
- }>;
11
- }
12
- export declare function isAvailable(): Promise<boolean>;
13
- export declare function search(query: string, options?: {
14
- collection?: string;
15
- limit?: number;
16
- minScore?: number;
17
- }): Promise<QMDSearchResult[]>;
18
- export declare function vsearch(query: string, options?: {
19
- collection?: string;
20
- limit?: number;
21
- minScore?: number;
22
- }): Promise<QMDSearchResult[]>;
23
- export declare function query(queryText: string, options?: {
24
- collection?: string;
25
- limit?: number;
26
- minScore?: number;
27
- }): Promise<QMDSearchResult[]>;
28
- export declare function get(pathOrDocid: string, options?: {
29
- full?: boolean;
30
- maxBytes?: number;
31
- }): Promise<string>;
32
- export declare function status(): Promise<QMDStatus | null>;
33
- export declare function embed(): Promise<number[] | null>;
34
- export declare function ensureWikiDir(projectPath: string): Promise<string>;
35
- export declare function close(): Promise<void>;
36
- //# sourceMappingURL=qmd-wrapper.d.ts.map
@@ -1,58 +0,0 @@
1
- import { getQMDClient } from '../embeddings/qmd-client.js';
2
- export async function isAvailable() {
3
- const client = await getQMDClient();
4
- return client.isAvailable();
5
- }
6
- export async function search(query, options = {}) {
7
- const client = await getQMDClient();
8
- if (!(await client.isAvailable()))
9
- return [];
10
- return client.search({ query, ...options });
11
- }
12
- export async function vsearch(query, options = {}) {
13
- const client = await getQMDClient();
14
- if (!(await client.isAvailable()))
15
- return [];
16
- return client.vsearch({ query, ...options });
17
- }
18
- export async function query(queryText, options = {}) {
19
- const client = await getQMDClient();
20
- if (!(await client.isAvailable()))
21
- return [];
22
- return client.query({ query: queryText, ...options });
23
- }
24
- export async function get(pathOrDocid, options = {}) {
25
- const client = await getQMDClient();
26
- if (!(await client.isAvailable()))
27
- return '';
28
- return client.get({ pathOrDocid, ...options });
29
- }
30
- export async function status() {
31
- const client = await getQMDClient();
32
- if (!(await client.isAvailable()))
33
- return null;
34
- const result = await client.status();
35
- if (!result)
36
- return null;
37
- return {
38
- indexHealth: result.indexHealth,
39
- documentCount: result.collections.reduce((sum, collection) => sum + collection.documentCount, 0),
40
- collections: result.collections,
41
- };
42
- }
43
- export async function embed() {
44
- return null;
45
- }
46
- export async function ensureWikiDir(projectPath) {
47
- const { join } = await import('path');
48
- const { mkdirSync, existsSync } = await import('fs');
49
- const wikiDir = join(projectPath, '.squish', 'wiki');
50
- if (!existsSync(wikiDir))
51
- mkdirSync(wikiDir, { recursive: true });
52
- return wikiDir;
53
- }
54
- export async function close() {
55
- const client = await getQMDClient();
56
- await client.disconnect();
57
- }
58
- //# sourceMappingURL=qmd-wrapper.js.map
@@ -1,6 +0,0 @@
1
- export declare function encrypt(plain: string, passphrase?: string): {
2
- ciphertext: string;
3
- nonce: string;
4
- };
5
- export declare function decrypt(ciphertext: string, nonceB64: string, passphrase?: string): string;
6
- //# sourceMappingURL=encrypt.d.ts.map