squish-memory 1.0.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (704) hide show
  1. package/.env.example +146 -0
  2. package/CHANGELOG.md +202 -0
  3. package/README.md +192 -287
  4. package/{scripts → bin}/dependency-manager.mjs +217 -217
  5. package/{scripts → bin}/detect-clients.mjs +78 -78
  6. package/bin/install-interactive.mjs +321 -0
  7. package/bin/squish-mcp.mjs +46 -0
  8. package/bin/squish.mjs +33 -0
  9. package/config/mcp-migration-map.json +1 -6
  10. package/config/mcp-mode-semantics.json +10 -12
  11. package/config/mcp-remote-auth.json +3 -26
  12. package/config/mcp-universal.schema.json +5 -35
  13. package/config/settings.json +78 -22
  14. package/config.js +5 -0
  15. package/config.ts +218 -0
  16. package/core/adapters/config/claude-code.ts +133 -0
  17. package/core/adapters/config/cursor.ts +90 -0
  18. package/core/adapters/config/opencode.ts +89 -0
  19. package/core/adapters/config/windsurf.ts +90 -0
  20. package/core/adapters/index.ts +102 -0
  21. package/core/adapters/timeline.ts +116 -0
  22. package/core/adapters/types.ts +166 -0
  23. package/core/agent-preferences.ts +140 -0
  24. package/core/algorithms/analytics/token-estimator.ts +216 -0
  25. package/core/algorithms/detection/hash-filters.ts +260 -0
  26. package/core/algorithms/detection/semantic-ranker.ts +194 -0
  27. package/core/algorithms/detection/two-stage-detector.ts +421 -0
  28. package/core/algorithms/handlers/approve-merge.ts +215 -0
  29. package/core/algorithms/handlers/detect-duplicates.ts +192 -0
  30. package/core/algorithms/handlers/get-stats.ts +132 -0
  31. package/core/algorithms/handlers/list-proposals.ts +130 -0
  32. package/core/algorithms/handlers/preview-merge.ts +139 -0
  33. package/core/algorithms/handlers/reject-merge.ts +93 -0
  34. package/core/algorithms/handlers/reverse-merge.ts +155 -0
  35. package/core/algorithms/index.ts +39 -0
  36. package/core/algorithms/operations/cache-maintenance.ts +182 -0
  37. package/core/algorithms/safety/safety-checks.ts +256 -0
  38. package/core/algorithms/strategies/merge-strategies.ts +381 -0
  39. package/core/algorithms/types.ts +140 -0
  40. package/core/algorithms/utils/response-builder.ts +61 -0
  41. package/core/associations.ts +363 -0
  42. package/core/beliefs/decay.ts +289 -0
  43. package/core/beliefs/extractor.ts +131 -0
  44. package/core/beliefs/store.ts +557 -0
  45. package/core/beliefs/types.ts +38 -0
  46. package/core/commands/mcp-server.ts +5 -0
  47. package/core/compression.ts +177 -0
  48. package/core/config.js +2 -0
  49. package/core/consolidation.ts +330 -0
  50. package/core/context/agent-context.ts +388 -0
  51. package/core/context/context-paging.ts +449 -0
  52. package/core/context/context-window.ts +234 -0
  53. package/core/context/context.ts +35 -0
  54. package/core/embeddings/embeddings.ts +616 -0
  55. package/core/embeddings/google-multimodal.ts +200 -0
  56. package/core/embeddings/local-embeddings.ts +12 -0
  57. package/core/embeddings/qmd-client.ts +495 -0
  58. package/core/embeddings/transformers-local.ts +261 -0
  59. package/core/embeddings.js +4 -0
  60. package/core/error-handling.ts +206 -0
  61. package/core/external +219 -0
  62. package/core/graph/entity-deduplicator.ts +232 -0
  63. package/core/graph/graph-builder.ts +257 -0
  64. package/core/graph/graph-traversal.ts +490 -0
  65. package/core/graph/index.ts +24 -0
  66. package/core/graph/llm-entity-extractor.ts +402 -0
  67. package/core/graph/multi-hop-retrieval.ts +317 -0
  68. package/core/graph/relationship-extractor.ts +465 -0
  69. package/core/hooks/agent-hooks.ts +653 -0
  70. package/core/hooks/auto-tagger.ts +149 -0
  71. package/core/hooks/capture-filter.ts +169 -0
  72. package/core/hot-cache.ts +388 -0
  73. package/core/index.ts +10 -0
  74. package/core/ingestion/agent-memory.ts +167 -0
  75. package/core/ingestion/core-memory.ts +326 -0
  76. package/core/ingestion/learnings.ts +260 -0
  77. package/core/ingestion/signal-engine.ts +266 -0
  78. package/core/integrations/obsidian-vault.ts +197 -0
  79. package/core/layers/generator.ts +115 -0
  80. package/core/lib/db-client.ts +168 -0
  81. package/core/lib/parse-embedding.ts +59 -0
  82. package/core/lib/schemas.ts +102 -0
  83. package/core/lib/types.ts +49 -0
  84. package/core/lib/utils.ts +151 -0
  85. package/core/lib/validation.ts +180 -0
  86. package/core/lifecycle.ts +353 -0
  87. package/core/logger.ts +59 -0
  88. package/core/memory/bridge-discovery.ts +395 -0
  89. package/core/memory/categorizer.ts +390 -0
  90. package/core/memory/conflict-detector.ts +62 -0
  91. package/core/memory/consolidation.ts +372 -0
  92. package/core/memory/context-collector.ts +75 -0
  93. package/core/memory/contradiction-resolver.ts +494 -0
  94. package/core/memory/edit-workflow.ts +174 -0
  95. package/core/memory/entity-extractor.ts +426 -0
  96. package/core/memory/entity-resolver.ts +89 -0
  97. package/core/memory/explain.ts +112 -0
  98. package/core/memory/fact-deriver.ts +300 -0
  99. package/core/memory/fact-extractor.ts +120 -0
  100. package/core/memory/feedback-tracker.ts +200 -0
  101. package/core/memory/hooks.ts +230 -0
  102. package/core/memory/hybrid-retrieval.ts +65 -0
  103. package/core/memory/hybrid-scorer.ts +325 -0
  104. package/core/memory/hybrid-search.ts +748 -0
  105. package/core/memory/importance.ts +319 -0
  106. package/core/memory/index.ts +11 -0
  107. package/core/memory/loader.ts +178 -0
  108. package/core/memory/markdown/markdown-storage.ts +318 -0
  109. package/core/memory/memories.ts +565 -0
  110. package/core/memory/memory-lifecycle.ts +51 -0
  111. package/core/memory/memory-manager.ts +53 -0
  112. package/core/memory/migrate.ts +173 -0
  113. package/core/memory/normalization.ts +30 -0
  114. package/core/memory/path-strengthener.ts +211 -0
  115. package/core/memory/progressive-disclosure.ts +392 -0
  116. package/core/memory/query-processor.ts +130 -0
  117. package/core/memory/query-rewriter.ts +153 -0
  118. package/core/memory/response-analyzer.ts +81 -0
  119. package/core/memory/retrieval-feedback.ts +276 -0
  120. package/core/memory/serialization.ts +83 -0
  121. package/core/memory/stale-cleaner.ts +147 -0
  122. package/core/memory/stats.ts +181 -0
  123. package/core/memory/telemetry.ts +392 -0
  124. package/core/memory/temporal-facts.ts +356 -0
  125. package/core/memory/temporal-parser.ts +477 -0
  126. package/core/memory/trigger-detector.ts +104 -0
  127. package/core/memory/write-gate.ts +288 -0
  128. package/core/places/index.ts +14 -0
  129. package/core/places/memory-places.ts +339 -0
  130. package/core/places/places.ts +406 -0
  131. package/core/places/rules.ts +308 -0
  132. package/core/places/walking.ts +192 -0
  133. package/core/projects +89 -0
  134. package/core/projects.ts +131 -0
  135. package/core/redis.ts +82 -0
  136. package/core/responses.ts +187 -0
  137. package/core/runtime/trust-report.ts +195 -0
  138. package/core/runtime/trust-state.ts +360 -0
  139. package/core/scheduler/cron-scheduler.ts +581 -0
  140. package/core/scheduler/heartbeat.ts +91 -0
  141. package/core/scheduler/index.ts +8 -0
  142. package/core/scheduler/job-runner.ts +197 -0
  143. package/core/search/conversations.ts +166 -0
  144. package/core/search/entities.ts +46 -0
  145. package/core/search/folder-context.ts +154 -0
  146. package/core/search/graph-boost.ts +22 -0
  147. package/core/search/index.ts +4 -0
  148. package/core/search/qmd-wrapper.ts +84 -0
  149. package/core/security/encrypt.ts +51 -0
  150. package/core/security/governance.ts +102 -0
  151. package/core/security/privacy.ts +108 -0
  152. package/core/security/secret-detector.ts +122 -0
  153. package/core/session/auto-load.ts +160 -0
  154. package/core/session/entity-tracker.ts +363 -0
  155. package/core/session/index.ts +7 -0
  156. package/core/session/reference-resolver.ts +158 -0
  157. package/core/session/self-iteration-job.ts +478 -0
  158. package/core/session/session-hooks.ts +69 -0
  159. package/core/session/types.ts +36 -0
  160. package/core/session/working-set.ts +275 -0
  161. package/core/snapshots/cleanup.ts +13 -0
  162. package/core/snapshots/comparison.ts +59 -0
  163. package/core/snapshots/creation.ts +139 -0
  164. package/core/snapshots/retrieval.ts +44 -0
  165. package/core/snapshots/stats.ts +63 -0
  166. package/core/storage/cache.ts +241 -0
  167. package/core/storage/database.ts +23 -0
  168. package/core/summarization/cleanup.ts +13 -0
  169. package/core/summarization/queries.ts +32 -0
  170. package/core/summarization/stats.ts +64 -0
  171. package/core/summarization/strategies.ts +52 -0
  172. package/core/summarization.ts +248 -0
  173. package/core/temporal-facts.ts +244 -0
  174. package/core/tracing/collector.ts +470 -0
  175. package/core/tracing/visualizer.ts +195 -0
  176. package/core/utils/cleanup-operations.ts +50 -0
  177. package/core/utils/content-extraction.ts +95 -0
  178. package/core/utils/filter-builder.ts +56 -0
  179. package/core/utils/history-traversal.ts +63 -0
  180. package/core/utils/memory-operations.ts +56 -0
  181. package/core/utils/query-operations.ts +83 -0
  182. package/core/utils/summarization-helpers.ts +45 -0
  183. package/core/utils/temporal-queries.ts +39 -0
  184. package/core/utils/vector-operations.ts +135 -0
  185. package/core/utils/version-management.ts +74 -0
  186. package/core/worker.ts +324 -0
  187. package/db/adapter.ts +215 -0
  188. package/db/bootstrap.ts +1055 -0
  189. package/db/drizzle/migrations/0000_needy_cerebro.sql +402 -0
  190. package/db/drizzle/migrations/meta/0000_snapshot.json +3451 -0
  191. package/db/drizzle/migrations/meta/_journal.json +13 -0
  192. package/db/drizzle/schema-sqlite.ts +1032 -0
  193. package/db/drizzle/schema.ts +1128 -0
  194. package/db/drizzle.config.ts +12 -0
  195. package/db/index.ts +83 -0
  196. package/db/init.sql +5 -0
  197. package/db/migrations/associations.ts +35 -0
  198. package/db/migrations/beliefs.ts +89 -0
  199. package/db/migrations/core-memory.ts +35 -0
  200. package/db/migrations/fts.ts +59 -0
  201. package/db/migrations/index.ts +54 -0
  202. package/db/migrations/indexes.ts +36 -0
  203. package/db/migrations/learnings.ts +34 -0
  204. package/db/migrations/maintenance.ts +68 -0
  205. package/db/migrations/memories.ts +22 -0
  206. package/db/migrations/memory-places.ts +35 -0
  207. package/db/migrations/places.ts +49 -0
  208. package/db/migrations/projects.ts +21 -0
  209. package/db/migrations/tier-conversion.ts +24 -0
  210. package/db/neon.ts +22 -0
  211. package/db/schema/beliefs.ts +50 -0
  212. package/db/schema/generator.ts +159 -0
  213. package/db/schema/index.ts +58 -0
  214. package/db/schema/learnings.ts +32 -0
  215. package/db/schema/memories.ts +83 -0
  216. package/db/schema/projects.ts +33 -0
  217. package/db/schema.ts +13 -0
  218. package/db/supabase.ts +27 -0
  219. package/dist/config.d.ts +61 -14
  220. package/dist/config.js +159 -139
  221. package/dist/core/adapters/config/claude-code.d.ts +45 -0
  222. package/dist/core/adapters/config/claude-code.js +113 -0
  223. package/dist/core/adapters/config/cursor.d.ts +26 -0
  224. package/dist/core/adapters/config/cursor.js +74 -0
  225. package/dist/core/adapters/config/opencode.d.ts +23 -0
  226. package/dist/core/adapters/config/opencode.js +73 -0
  227. package/dist/core/adapters/config/windsurf.d.ts +26 -0
  228. package/dist/core/adapters/config/windsurf.js +74 -0
  229. package/dist/core/adapters/index.d.ts +45 -0
  230. package/dist/core/adapters/index.js +84 -0
  231. package/dist/core/adapters/scripts/install-adapter.d.ts +19 -0
  232. package/dist/core/adapters/scripts/install-adapter.js +149 -0
  233. package/dist/core/adapters/timeline.d.ts +23 -0
  234. package/dist/core/adapters/timeline.js +88 -0
  235. package/dist/core/adapters/types.d.ts +137 -0
  236. package/dist/core/adapters/types.js +50 -0
  237. package/dist/core/agent-preferences.d.ts +16 -0
  238. package/dist/core/agent-preferences.js +124 -0
  239. package/dist/{algorithms → core/algorithms}/analytics/token-estimator.d.ts +1 -1
  240. package/dist/{algorithms → core/algorithms}/analytics/token-estimator.js +3 -3
  241. package/dist/{algorithms → core/algorithms}/detection/semantic-ranker.d.ts +1 -1
  242. package/dist/{algorithms → core/algorithms}/detection/semantic-ranker.js +1 -1
  243. package/dist/{algorithms → core/algorithms}/detection/two-stage-detector.d.ts +1 -1
  244. package/dist/{algorithms → core/algorithms}/detection/two-stage-detector.js +7 -10
  245. package/dist/{algorithms → core/algorithms}/handlers/approve-merge.js +4 -4
  246. package/dist/{algorithms → core/algorithms}/handlers/detect-duplicates.js +3 -3
  247. package/dist/{algorithms → core/algorithms}/handlers/get-stats.js +3 -3
  248. package/dist/{algorithms → core/algorithms}/handlers/list-proposals.js +3 -3
  249. package/dist/{algorithms → core/algorithms}/handlers/preview-merge.js +3 -3
  250. package/dist/{algorithms → core/algorithms}/handlers/reject-merge.js +3 -3
  251. package/dist/{algorithms → core/algorithms}/handlers/reverse-merge.js +3 -3
  252. package/dist/core/algorithms/index.d.ts +21 -0
  253. package/dist/core/algorithms/index.js +26 -0
  254. package/dist/core/algorithms/operations/cache-maintenance.d.ts +12 -0
  255. package/dist/core/algorithms/operations/cache-maintenance.js +157 -0
  256. package/dist/{algorithms → core/algorithms}/safety/safety-checks.d.ts +2 -6
  257. package/dist/{algorithms → core/algorithms}/strategies/merge-strategies.d.ts +19 -1
  258. package/dist/{algorithms → core/algorithms}/strategies/merge-strategies.js +74 -123
  259. package/dist/core/algorithms/types.d.ts +125 -0
  260. package/dist/core/algorithms/types.js +5 -0
  261. package/dist/core/associations.d.ts +3 -2
  262. package/dist/core/associations.js +37 -2
  263. package/dist/core/autosave.d.ts +19 -0
  264. package/dist/core/autosave.js +16 -0
  265. package/dist/core/beliefs/decay.d.ts +27 -0
  266. package/dist/core/beliefs/decay.js +217 -0
  267. package/dist/core/beliefs/extractor.d.ts +9 -0
  268. package/dist/core/beliefs/extractor.js +113 -0
  269. package/dist/core/beliefs/store.d.ts +46 -0
  270. package/dist/core/beliefs/store.js +466 -0
  271. package/dist/core/beliefs/types.d.ts +28 -0
  272. package/dist/core/beliefs/types.js +2 -0
  273. package/dist/core/commands/mcp-server.d.ts +2 -0
  274. package/dist/core/commands/mcp-server.js +6 -0
  275. package/dist/core/commands/remember.d.ts +24 -0
  276. package/dist/core/commands/remember.js +144 -0
  277. package/dist/core/compression.d.ts +45 -0
  278. package/dist/core/compression.js +160 -0
  279. package/dist/core/context/agent-context.d.ts +106 -0
  280. package/dist/core/context/agent-context.js +274 -0
  281. package/dist/core/{context-paging.d.ts → context/context-paging.d.ts} +2 -12
  282. package/dist/core/{context-paging.js → context/context-paging.js} +19 -39
  283. package/dist/core/context/context-window.d.ts +40 -0
  284. package/dist/core/context/context-window.js +177 -0
  285. package/dist/core/context/context.js +22 -0
  286. package/dist/core/embeddings/embeddings.d.ts +29 -0
  287. package/dist/core/embeddings/embeddings.js +546 -0
  288. package/dist/core/embeddings/google-multimodal.js +6 -2
  289. package/dist/core/embeddings/local-embeddings.d.ts +11 -0
  290. package/dist/core/embeddings/local-embeddings.js +11 -0
  291. package/dist/core/embeddings/qmd-client.js +1 -1
  292. package/dist/core/embeddings/transformers-local.d.ts +64 -0
  293. package/dist/core/embeddings/transformers-local.js +213 -0
  294. package/dist/core/embeddings.d.ts +1 -28
  295. package/dist/core/embeddings.js +2 -401
  296. package/dist/core/error-handling.d.ts +63 -0
  297. package/dist/core/error-handling.js +173 -0
  298. package/dist/core/graph/entity-deduplicator.d.ts +24 -0
  299. package/dist/core/graph/entity-deduplicator.js +183 -0
  300. package/dist/core/graph/graph-builder.d.ts +46 -0
  301. package/dist/core/graph/graph-builder.js +174 -0
  302. package/dist/core/graph/graph-traversal.d.ts +80 -0
  303. package/dist/core/graph/graph-traversal.js +315 -0
  304. package/dist/core/graph/index.d.ts +19 -0
  305. package/dist/core/graph/index.js +13 -0
  306. package/dist/core/graph/llm-entity-extractor.d.ts +49 -0
  307. package/dist/core/graph/llm-entity-extractor.js +313 -0
  308. package/dist/core/graph/multi-hop-retrieval.d.ts +48 -0
  309. package/dist/core/graph/multi-hop-retrieval.js +215 -0
  310. package/dist/core/graph/relationship-extractor.d.ts +48 -0
  311. package/dist/core/graph/relationship-extractor.js +351 -0
  312. package/dist/core/hooks/agent-hooks.d.ts +83 -0
  313. package/dist/core/hooks/agent-hooks.js +521 -0
  314. package/dist/core/hooks/auto-tagger.d.ts +19 -0
  315. package/dist/core/hooks/auto-tagger.js +155 -0
  316. package/dist/core/hooks/capture-filter.d.ts +41 -0
  317. package/dist/core/hooks/capture-filter.js +128 -0
  318. package/dist/core/hot-cache.d.ts +86 -0
  319. package/dist/core/hot-cache.js +285 -0
  320. package/dist/core/index.d.ts +9 -9
  321. package/dist/core/index.js +9 -12
  322. package/dist/core/{agent-memory.js → ingestion/agent-memory.js} +5 -7
  323. package/dist/core/{core-memory.d.ts → ingestion/core-memory.d.ts} +2 -2
  324. package/dist/core/{core-memory.js → ingestion/core-memory.js} +7 -7
  325. package/dist/core/ingestion/learnings.d.ts +57 -0
  326. package/dist/core/ingestion/learnings.js +205 -0
  327. package/dist/core/ingestion/signal-engine.d.ts +41 -0
  328. package/dist/core/ingestion/signal-engine.js +201 -0
  329. package/dist/core/integrations/obsidian-vault.d.ts +31 -0
  330. package/dist/core/integrations/obsidian-vault.js +156 -0
  331. package/dist/core/lib/db-client.d.ts +114 -0
  332. package/dist/core/lib/db-client.js +130 -0
  333. package/dist/core/lib/parse-embedding.d.ts +9 -0
  334. package/dist/core/lib/parse-embedding.js +58 -0
  335. package/dist/core/lib/schemas.d.ts +132 -0
  336. package/dist/core/lib/schemas.js +87 -0
  337. package/dist/core/lib/types.d.ts +45 -0
  338. package/dist/core/lib/types.js +6 -0
  339. package/dist/core/{utils.d.ts → lib/utils.d.ts} +5 -0
  340. package/dist/core/lib/utils.js +145 -0
  341. package/dist/core/lib/validation.d.ts +38 -0
  342. package/dist/core/lib/validation.js +151 -0
  343. package/dist/core/lifecycle.d.ts +7 -1
  344. package/dist/core/lifecycle.js +152 -42
  345. package/dist/core/logger.d.ts +1 -0
  346. package/dist/core/logger.js +13 -1
  347. package/dist/core/mcp/tools.d.ts +0 -2
  348. package/dist/core/mcp/tools.js +35 -90
  349. package/dist/core/mcp/types.d.ts +25 -253
  350. package/dist/core/mcp/types.js +2 -2
  351. package/dist/core/memory/categorizer.js +2 -0
  352. package/dist/core/memory/conflict-detector.js +1 -1
  353. package/dist/core/memory/consolidation.d.ts +1 -10
  354. package/dist/core/memory/consolidation.js +4 -39
  355. package/dist/core/memory/context-collector.js +1 -1
  356. package/dist/core/memory/edit-workflow.js +1 -1
  357. package/dist/core/memory/entity-extractor.d.ts +4 -0
  358. package/dist/core/memory/entity-extractor.js +30 -16
  359. package/dist/core/memory/entity-resolver.js +7 -7
  360. package/dist/core/memory/explain.d.ts +18 -0
  361. package/dist/core/memory/explain.js +92 -0
  362. package/dist/core/memory/fact-deriver.d.ts +31 -0
  363. package/dist/core/memory/fact-deriver.js +236 -0
  364. package/dist/core/memory/fact-extractor.js +12 -12
  365. package/dist/core/memory/feedback-tracker.js +1 -1
  366. package/dist/core/memory/hooks.d.ts +88 -0
  367. package/dist/core/memory/hooks.js +174 -0
  368. package/dist/core/memory/hybrid-retrieval.d.ts +14 -16
  369. package/dist/core/memory/hybrid-retrieval.js +25 -127
  370. package/dist/core/memory/hybrid-scorer.js +6 -23
  371. package/dist/core/memory/hybrid-search.d.ts +9 -11
  372. package/dist/core/memory/hybrid-search.js +496 -273
  373. package/dist/core/memory/importance.d.ts +2 -24
  374. package/dist/core/memory/importance.js +7 -91
  375. package/dist/core/memory/index.d.ts +1 -0
  376. package/dist/core/memory/index.js +1 -0
  377. package/dist/core/memory/loader.d.ts +31 -0
  378. package/dist/core/memory/loader.js +141 -0
  379. package/dist/core/memory/markdown/markdown-storage.d.ts +72 -0
  380. package/dist/core/memory/markdown/markdown-storage.js +243 -0
  381. package/dist/core/memory/memories.d.ts +23 -19
  382. package/dist/core/memory/memories.js +243 -228
  383. package/dist/core/memory/memory-lifecycle.d.ts +8 -0
  384. package/dist/core/memory/memory-lifecycle.js +47 -0
  385. package/dist/core/memory/migrate.d.ts +21 -0
  386. package/dist/core/memory/migrate.js +134 -0
  387. package/dist/core/memory/normalization.d.ts +7 -0
  388. package/dist/core/memory/normalization.js +26 -0
  389. package/dist/core/memory/path-strengthener.d.ts +39 -0
  390. package/dist/core/memory/path-strengthener.js +150 -0
  391. package/dist/core/memory/progressive-disclosure.js +1 -1
  392. package/dist/core/memory/query-processor.js +37 -3
  393. package/dist/core/memory/query-rewriter.js +9 -9
  394. package/dist/core/memory/retrieval-feedback.d.ts +70 -0
  395. package/dist/core/memory/retrieval-feedback.js +213 -0
  396. package/dist/core/memory/serialization.d.ts +4 -0
  397. package/dist/core/memory/serialization.js +49 -0
  398. package/dist/core/memory/stale-cleaner.d.ts +26 -0
  399. package/dist/core/memory/stale-cleaner.js +97 -0
  400. package/dist/core/memory/stats.d.ts +15 -0
  401. package/dist/core/memory/stats.js +69 -13
  402. package/dist/core/memory/temporal-facts.js +21 -0
  403. package/dist/core/memory/trigger-detector.d.ts +8 -1
  404. package/dist/core/memory/trigger-detector.js +42 -5
  405. package/dist/core/memory/write-gate.js +1 -1
  406. package/dist/core/places/index.d.ts +14 -0
  407. package/dist/core/places/index.js +14 -0
  408. package/dist/core/places/memory-places.d.ts +68 -0
  409. package/dist/core/places/memory-places.js +261 -0
  410. package/dist/core/places/places.d.ts +88 -0
  411. package/dist/core/places/places.js +314 -0
  412. package/dist/core/places/rules.d.ts +74 -0
  413. package/dist/core/places/rules.js +240 -0
  414. package/dist/core/places/walking.d.ts +56 -0
  415. package/dist/core/places/walking.js +121 -0
  416. package/dist/core/projects.d.ts +5 -0
  417. package/dist/core/projects.js +47 -18
  418. package/dist/core/responses.d.ts +96 -0
  419. package/dist/core/responses.js +122 -0
  420. package/dist/core/runtime/trust-report.d.ts +102 -0
  421. package/dist/core/runtime/trust-report.js +107 -0
  422. package/dist/core/runtime/trust-state.d.ts +12 -0
  423. package/dist/core/runtime/trust-state.js +309 -0
  424. package/dist/core/scheduler/cron-scheduler.d.ts +1 -1
  425. package/dist/core/scheduler/cron-scheduler.js +193 -10
  426. package/dist/core/scheduler/index.d.ts +1 -1
  427. package/dist/core/scheduler/index.js +1 -1
  428. package/dist/core/scheduler/job-runner.js +2 -2
  429. package/dist/core/search/conversations.js +40 -42
  430. package/dist/core/search/entities.js +6 -9
  431. package/dist/core/search/graph-boost.d.ts +7 -0
  432. package/dist/core/search/graph-boost.js +23 -0
  433. package/dist/core/search/qmd-wrapper.d.ts +36 -0
  434. package/dist/core/search/qmd-wrapper.js +58 -0
  435. package/dist/core/security/encrypt.d.ts +6 -0
  436. package/dist/core/security/encrypt.js +47 -0
  437. package/dist/core/{governance.d.ts → security/governance.d.ts} +6 -1
  438. package/dist/core/security/governance.js +79 -0
  439. package/dist/core/session/auto-load.js +34 -9
  440. package/dist/core/session/entity-tracker.d.ts +62 -0
  441. package/dist/core/session/entity-tracker.js +287 -0
  442. package/dist/core/session/index.d.ts +1 -1
  443. package/dist/core/session/index.js +1 -1
  444. package/dist/core/session/reference-resolver.d.ts +26 -0
  445. package/dist/core/session/reference-resolver.js +121 -0
  446. package/dist/core/{session-hooks → session}/self-iteration-job.d.ts +15 -0
  447. package/dist/core/{session-hooks → session}/self-iteration-job.js +195 -90
  448. package/dist/core/session/working-set.d.ts +50 -0
  449. package/dist/core/session/working-set.js +212 -0
  450. package/dist/core/snapshots/creation.d.ts +2 -8
  451. package/dist/core/snapshots/creation.js +3 -12
  452. package/dist/core/{cache.js → storage/cache.js} +2 -2
  453. package/dist/core/utils/memory-operations.js +1 -1
  454. package/dist/core/utils/summarization-helpers.d.ts +0 -4
  455. package/dist/core/utils/summarization-helpers.js +1 -6
  456. package/dist/core/utils/vector-operations.d.ts +71 -0
  457. package/dist/core/utils/vector-operations.js +129 -0
  458. package/dist/db/adapter.d.ts +3 -3
  459. package/dist/db/adapter.js +99 -88
  460. package/dist/db/bootstrap.d.ts +2 -0
  461. package/dist/db/bootstrap.js +921 -674
  462. package/dist/{drizzle → db/drizzle}/schema-sqlite.d.ts +775 -25
  463. package/dist/{drizzle → db/drizzle}/schema-sqlite.js +170 -24
  464. package/dist/{drizzle → db/drizzle}/schema.d.ts +731 -32
  465. package/dist/{drizzle → db/drizzle}/schema.js +192 -32
  466. package/dist/db/drizzle.config.d.ts +3 -0
  467. package/dist/db/drizzle.config.js +12 -0
  468. package/dist/db/index.d.ts +1 -5
  469. package/dist/db/index.js +51 -8
  470. package/dist/db/migrations/associations.d.ts +6 -0
  471. package/dist/db/migrations/associations.js +29 -0
  472. package/dist/db/migrations/beliefs.d.ts +10 -0
  473. package/dist/db/migrations/beliefs.js +76 -0
  474. package/dist/db/migrations/core-memory.d.ts +6 -0
  475. package/dist/db/migrations/core-memory.js +29 -0
  476. package/dist/db/migrations/fts.d.ts +6 -0
  477. package/dist/db/migrations/fts.js +52 -0
  478. package/dist/db/migrations/index.d.ts +25 -0
  479. package/dist/db/migrations/index.js +51 -0
  480. package/dist/db/migrations/indexes.d.ts +6 -0
  481. package/dist/db/migrations/indexes.js +30 -0
  482. package/dist/db/migrations/learnings.d.ts +7 -0
  483. package/dist/db/migrations/learnings.js +26 -0
  484. package/dist/db/migrations/maintenance.d.ts +6 -0
  485. package/dist/db/migrations/maintenance.js +61 -0
  486. package/dist/db/migrations/memories.d.ts +7 -0
  487. package/dist/db/migrations/memories.js +16 -0
  488. package/dist/db/migrations/memory-places.d.ts +6 -0
  489. package/dist/db/migrations/memory-places.js +29 -0
  490. package/dist/db/migrations/places.d.ts +6 -0
  491. package/dist/db/migrations/places.js +43 -0
  492. package/dist/db/migrations/projects.d.ts +3 -0
  493. package/dist/db/migrations/projects.js +13 -0
  494. package/dist/db/migrations/tier-conversion.d.ts +7 -0
  495. package/dist/db/migrations/tier-conversion.js +20 -0
  496. package/dist/db/neon.d.ts +8 -0
  497. package/dist/db/neon.js +20 -0
  498. package/dist/db/schema/beliefs.d.ts +9 -0
  499. package/dist/db/schema/beliefs.js +46 -0
  500. package/dist/db/schema/generator.d.ts +38 -0
  501. package/dist/db/schema/generator.js +108 -0
  502. package/dist/db/schema/index.d.ts +39 -0
  503. package/dist/db/schema/index.js +51 -0
  504. package/dist/db/schema/learnings.d.ts +7 -0
  505. package/dist/db/schema/learnings.js +30 -0
  506. package/dist/db/schema/memories.d.ts +7 -0
  507. package/dist/db/schema/memories.js +81 -0
  508. package/dist/db/schema/projects.d.ts +4 -0
  509. package/dist/db/schema/projects.js +31 -0
  510. package/dist/db/schema/tables/context-sessions.d.ts +9 -0
  511. package/dist/db/schema/tables/context-sessions.js +37 -0
  512. package/dist/db/schema/tables/conversations.d.ts +9 -0
  513. package/dist/db/schema/tables/conversations.js +47 -0
  514. package/dist/db/schema/tables/core-memory.d.ts +9 -0
  515. package/dist/db/schema/tables/core-memory.js +41 -0
  516. package/dist/db/schema/tables/entities.d.ts +9 -0
  517. package/dist/db/schema/tables/entities.js +39 -0
  518. package/dist/db/schema/tables/entity-relations.d.ts +9 -0
  519. package/dist/db/schema/tables/entity-relations.js +31 -0
  520. package/dist/db/schema/tables/learnings.d.ts +9 -0
  521. package/dist/db/schema/tables/learnings.js +66 -0
  522. package/dist/db/schema/tables/memories.d.ts +9 -0
  523. package/dist/db/schema/tables/memories.js +161 -0
  524. package/dist/db/schema/tables/memory-associations.d.ts +9 -0
  525. package/dist/db/schema/tables/memory-associations.js +39 -0
  526. package/dist/db/schema/tables/memory-hash-cache.d.ts +9 -0
  527. package/dist/db/schema/tables/memory-hash-cache.js +29 -0
  528. package/dist/db/schema/tables/memory-merge-history.d.ts +9 -0
  529. package/dist/db/schema/tables/memory-merge-history.js +33 -0
  530. package/dist/db/schema/tables/memory-merge-proposals.d.ts +9 -0
  531. package/dist/db/schema/tables/memory-merge-proposals.js +39 -0
  532. package/dist/db/schema/tables/messages.d.ts +9 -0
  533. package/dist/db/schema/tables/messages.js +41 -0
  534. package/dist/db/schema/tables/namespaces.d.ts +9 -0
  535. package/dist/db/schema/tables/namespaces.js +37 -0
  536. package/dist/db/schema/tables/projects.d.ts +9 -0
  537. package/dist/db/schema/tables/projects.js +31 -0
  538. package/dist/db/schema/tables/users.d.ts +9 -0
  539. package/dist/db/schema/tables/users.js +27 -0
  540. package/dist/db/schema.d.ts +1 -1
  541. package/dist/db/schema.js +2 -2
  542. package/dist/db/supabase.d.ts +9 -0
  543. package/dist/db/supabase.js +24 -0
  544. package/dist/packages/mcp/src/index.d.ts +3 -0
  545. package/dist/packages/mcp/src/index.js +733 -0
  546. package/mcp.json.example +8 -0
  547. package/package.json +132 -173
  548. package/packages/cli/package.json +22 -0
  549. package/packages/cli/src/commands/clean.ts +68 -0
  550. package/packages/cli/src/commands/context.ts +79 -0
  551. package/packages/cli/src/commands/doctor.ts +357 -0
  552. package/packages/cli/src/commands/forget.ts +72 -0
  553. package/packages/cli/src/commands/health.ts +36 -0
  554. package/packages/cli/src/commands/inspect.ts +41 -0
  555. package/packages/cli/src/commands/link.ts +50 -0
  556. package/packages/cli/src/commands/migrate.ts +93 -0
  557. package/packages/cli/src/commands/recall.ts +99 -0
  558. package/packages/cli/src/commands/recent.ts +57 -0
  559. package/packages/cli/src/commands/remember.ts +139 -0
  560. package/packages/cli/src/commands/run.ts +58 -0
  561. package/packages/cli/src/commands/stale.ts +43 -0
  562. package/packages/cli/src/commands/stats.ts +42 -0
  563. package/packages/cli/src/index.ts +57 -0
  564. package/packages/cli/tsconfig.json +24 -0
  565. package/packages/mcp/package.json +26 -0
  566. package/packages/mcp/src/index.ts +877 -0
  567. package/packages/mcp/tsconfig.json +20 -0
  568. package/skills/squish-memory/SKILL.md +107 -114
  569. package/skills/squish-memory/install.sh +3 -3
  570. package/skills/squish-memory/{claude-desktop.json → references/claude-desktop.json} +12 -12
  571. package/skills/squish-memory/{openclaw.json → references/openclaw.json} +13 -13
  572. package/skills/squish-memory/{opencode.json → references/opencode.json} +14 -14
  573. package/.claude-plugin/marketplace.json +0 -20
  574. package/.claude-plugin/plugin.json +0 -32
  575. package/.env.mcp.example +0 -60
  576. package/.mcp.json +0 -11
  577. package/QUICK-START.md +0 -71
  578. package/bin/squish-add.mjs +0 -32
  579. package/bin/squish-rm.mjs +0 -21
  580. package/commands/context-paging.md +0 -51
  581. package/commands/context-status.md +0 -22
  582. package/commands/context.md +0 -5
  583. package/commands/core-memory.md +0 -56
  584. package/commands/health.md +0 -5
  585. package/commands/init.md +0 -39
  586. package/commands/merge.md +0 -113
  587. package/commands/observe.md +0 -5
  588. package/commands/recall.md +0 -5
  589. package/commands/remember.md +0 -11
  590. package/commands/search.md +0 -10
  591. package/config/mcp-cli-fallback-policy.json +0 -22
  592. package/config/mcp.json +0 -38
  593. package/config/plugin-manifest.json +0 -152
  594. package/config/plugin-manifest.schema.json +0 -244
  595. package/config/remote-memory-policy.json +0 -32
  596. package/dist/api/web/index.d.ts +0 -3
  597. package/dist/api/web/index.js +0 -4
  598. package/dist/api/web/web-server.d.ts +0 -3
  599. package/dist/api/web/web-server.js +0 -6
  600. package/dist/api/web/web.d.ts +0 -4
  601. package/dist/api/web/web.js +0 -639
  602. package/dist/commands/managed-sync.d.ts +0 -10
  603. package/dist/commands/managed-sync.js +0 -64
  604. package/dist/commands/mcp-server.d.ts +0 -3
  605. package/dist/commands/mcp-server.js +0 -393
  606. package/dist/core/context.js +0 -24
  607. package/dist/core/governance.js +0 -64
  608. package/dist/core/local-embeddings.d.ts +0 -6
  609. package/dist/core/local-embeddings.js +0 -20
  610. package/dist/core/namespaces/index.d.ts +0 -71
  611. package/dist/core/namespaces/index.js +0 -305
  612. package/dist/core/namespaces/uri-parser.d.ts +0 -31
  613. package/dist/core/namespaces/uri-parser.js +0 -74
  614. package/dist/core/observations.d.ts +0 -26
  615. package/dist/core/observations.js +0 -110
  616. package/dist/core/requirements.d.ts +0 -20
  617. package/dist/core/requirements.js +0 -35
  618. package/dist/core/search/qmd-search.d.ts +0 -61
  619. package/dist/core/search/qmd-search.js +0 -178
  620. package/dist/core/snapshots.d.ts +0 -29
  621. package/dist/core/snapshots.js +0 -220
  622. package/dist/core/sync/qmd-sync.d.ts +0 -106
  623. package/dist/core/sync/qmd-sync.js +0 -213
  624. package/dist/core/utils.js +0 -74
  625. package/dist/index.d.ts +0 -19
  626. package/dist/index.js +0 -997
  627. package/generated/mcp/manifest.json +0 -23
  628. package/generated/mcp/mcp-servers.json +0 -25
  629. package/generated/mcp/mcporter.json +0 -34
  630. package/generated/mcp/openclaw-memory-qmd.json +0 -17
  631. package/generated/mcp/runtime.json +0 -12
  632. package/hooks/hooks.json +0 -52
  633. package/hooks/post-tool-use.js +0 -26
  634. package/hooks/session-end.js +0 -28
  635. package/hooks/session-start.js +0 -33
  636. package/hooks/user-prompt-submit.js +0 -26
  637. package/hooks/utils.js +0 -153
  638. package/npx-installer.js +0 -208
  639. package/packages/plugin-claude-code/README.md +0 -73
  640. package/packages/plugin-claude-code/dist/plugin-wrapper.d.ts +0 -35
  641. package/packages/plugin-claude-code/dist/plugin-wrapper.js +0 -191
  642. package/packages/plugin-claude-code/package.json +0 -31
  643. package/packages/plugin-openclaw/README.md +0 -70
  644. package/packages/plugin-openclaw/dist/index.d.ts +0 -49
  645. package/packages/plugin-openclaw/dist/index.js +0 -262
  646. package/packages/plugin-openclaw/openclaw.plugin.json +0 -94
  647. package/packages/plugin-openclaw/package.json +0 -31
  648. package/packages/plugin-opencode/install.mjs +0 -217
  649. package/packages/plugin-opencode/package.json +0 -21
  650. package/plugin.json +0 -32
  651. package/scripts/build-release.sh +0 -36
  652. package/scripts/check-secrets.js +0 -132
  653. package/scripts/db/check-db.mjs +0 -88
  654. package/scripts/db/fix-all-columns.mjs +0 -52
  655. package/scripts/db/fix-schema-all.mjs +0 -55
  656. package/scripts/db/fix-schema-full.mjs +0 -46
  657. package/scripts/db/fix-schema.mjs +0 -38
  658. package/scripts/db/init-db.mjs +0 -13
  659. package/scripts/db/recreate-db.mjs +0 -14
  660. package/scripts/generate-mcp.mjs +0 -264
  661. package/scripts/github-release.sh +0 -77
  662. package/scripts/init-dirs.mjs +0 -13
  663. package/scripts/install-interactive.mjs +0 -677
  664. package/scripts/install-mcp.mjs +0 -116
  665. package/scripts/install-plugin.mjs +0 -415
  666. package/scripts/install-web.sh +0 -120
  667. package/scripts/install.mjs +0 -340
  668. package/scripts/openclaw-bootstrap.mjs +0 -127
  669. package/scripts/package-release.sh +0 -71
  670. package/scripts/remote-preflight.mjs +0 -62
  671. package/scripts/squish-fallback.mjs +0 -132
  672. package/scripts/test/test-all-systems.mjs +0 -139
  673. package/scripts/test/test-memory-system.mjs +0 -139
  674. package/scripts/test/test-v0.5.0.mjs +0 -210
  675. package/scripts/test-interactive.mjs +0 -131
  676. package/scripts/verify-mcp.mjs +0 -214
  677. package/skills/memory-guide/SKILL.md +0 -332
  678. package/skills/squish-cli/SKILL.md +0 -240
  679. package/skills/squish-mcp/SKILL.md +0 -355
  680. package/skills/squish-memory/install.mjs +0 -335
  681. package/skills/squish-memory/skill.json +0 -32
  682. /package/dist/{algorithms → core/algorithms}/detection/hash-filters.d.ts +0 -0
  683. /package/dist/{algorithms → core/algorithms}/detection/hash-filters.js +0 -0
  684. /package/dist/{algorithms → core/algorithms}/handlers/approve-merge.d.ts +0 -0
  685. /package/dist/{algorithms → core/algorithms}/handlers/detect-duplicates.d.ts +0 -0
  686. /package/dist/{algorithms → core/algorithms}/handlers/get-stats.d.ts +0 -0
  687. /package/dist/{algorithms → core/algorithms}/handlers/list-proposals.d.ts +0 -0
  688. /package/dist/{algorithms → core/algorithms}/handlers/preview-merge.d.ts +0 -0
  689. /package/dist/{algorithms → core/algorithms}/handlers/reject-merge.d.ts +0 -0
  690. /package/dist/{algorithms → core/algorithms}/handlers/reverse-merge.d.ts +0 -0
  691. /package/dist/{algorithms → core/algorithms}/safety/safety-checks.js +0 -0
  692. /package/dist/{algorithms → core/algorithms}/utils/response-builder.d.ts +0 -0
  693. /package/dist/{algorithms → core/algorithms}/utils/response-builder.js +0 -0
  694. /package/dist/core/{context.d.ts → context/context.d.ts} +0 -0
  695. /package/dist/core/{agent-memory.d.ts → ingestion/agent-memory.d.ts} +0 -0
  696. /package/dist/core/{privacy.d.ts → security/privacy.d.ts} +0 -0
  697. /package/dist/core/{privacy.js → security/privacy.js} +0 -0
  698. /package/dist/core/{secret-detector.d.ts → security/secret-detector.d.ts} +0 -0
  699. /package/dist/core/{secret-detector.js → security/secret-detector.js} +0 -0
  700. /package/dist/core/{session-hooks → session}/session-hooks.d.ts +0 -0
  701. /package/dist/core/{session-hooks → session}/session-hooks.js +0 -0
  702. /package/dist/core/{cache.d.ts → storage/cache.d.ts} +0 -0
  703. /package/dist/core/{database.d.ts → storage/database.d.ts} +0 -0
  704. /package/dist/core/{database.js → storage/database.js} +0 -0
@@ -0,0 +1,20 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "ESNext",
5
+ "moduleResolution": "Bundler",
6
+ "lib": ["ES2022"],
7
+ "outDir": "./dist",
8
+ "rootDir": "./src",
9
+ "strict": true,
10
+ "esModuleInterop": true,
11
+ "skipLibCheck": true,
12
+ "forceConsistentCasingInFileNames": true,
13
+ "declaration": true,
14
+ "declarationMap": true,
15
+ "sourceMap": true,
16
+ "noEmit": false
17
+ },
18
+ "include": ["src/**/*"],
19
+ "exclude": ["node_modules", "dist"]
20
+ }
@@ -1,114 +1,107 @@
1
- ---
2
- name: squish-memory
3
- description: Squish - Persistent memory system for AI assistants. Store facts, decisions, and context with semantic search. Works with Claude Code, OpenCode, OpenClaw, and any MCP client.
4
- version: 1.0.2
5
- author: michielhdoteth
6
- tags: [memory, persistence, search, semantic-search, ai-assistant, mcp, cli]
7
- emoji: brain
8
- ---
9
-
10
- # Squish Memory v1.0.2
11
-
12
- Persistent memory system for AI coding assistants. Store facts, decisions, context, and preferences with semantic search.
13
-
14
- ## What is Squish?
15
-
16
- Squish provides persistent memory for AI agents with:
17
- - **Hybrid Search**: BM25 + vector embeddings with graph expansion
18
- - **Memory Types**: observation, fact, decision, context, preference
19
- - **Graph Associations**: Link related memories together
20
- - **Core Memory**: Always-visible context sections
21
- - **Importance Scoring**: Auto-score memories with temporal decay
22
- - **Consolidation**: Summarize old, low-importance memories
23
- - **Namespace Support**: Hierarchical organization of memories
24
- - **Maintenance Scheduling**: Automated cleanup and optimization tasks
25
-
26
- ## Install
27
-
28
- ```bash
29
- npm install -g squish-memory
30
- # or
31
- bun add -g squish-memory
32
- ```
33
-
34
- ## Quick Setup
35
-
36
- ### Interactive Wizard (Recommended)
37
- ```bash
38
- squish
39
- ```
40
- Launches the interactive installer menu.
41
-
42
- ### Direct Server Start
43
- ```bash
44
- # MCP server (for Claude Code, etc.)
45
- squish run mcp
46
-
47
- # Web UI only
48
- squish run web
49
- ```
50
-
51
- ### MCP Clients
52
- Configure in your client's MCP settings:
53
- - **Command**: `squish-mcp`
54
- - **Args**: (none needed)
55
- - **Environment**:
56
- - `SQUISH_MODE=local` or `team`
57
- - `SQUISH_DATA_DIR=~/.squish`
58
-
59
- ## Skills Available
60
-
61
- This repo contains 4 skills for different use cases:
62
-
63
- | Skill | Description | Install |
64
- |-------|-------------|---------|
65
- | `squish-memory` | Overview & quick start | `npx skills add michielhdoteth/squish --skill squish-memory` |
66
- | `squish-mcp` | MCP tools (16 tools) | `npx skills add michielhdoteth/squish --skill squish-mcp` |
67
- | `squish-cli` | CLI commands | `npx skills add michielhdoteth/squish --skill squish-cli` |
68
- | `memory-guide` | Usage guide & best practices | `npx skills add michielhdoteth/squish --skill memory-guide` |
69
-
70
- ## MCP Tools (16)
71
-
72
- - squish_remember - Store memory
73
- - squish_search - Hybrid search
74
- - squish_recall - Get by ID
75
- - squish_forget - Delete memory
76
- - squish_update - Update memory
77
- - squish_associate - Link memories
78
- - squish_related - Find related
79
- - squish_context - Project context
80
- - squish_observe - Record observation
81
- - squish_qmd_search - Search docs
82
- - squish_embed - Generate embeddings
83
- - squish_health - Check status
84
- - squish_stats - View stats
85
- - squish_projects - List projects
86
-
87
- ## CLI Commands
88
-
89
- - `squish` - Interactive wizard/menu
90
- - `squish run mcp` - Start MCP server
91
- - `squish run web` - Start Web UI only
92
- - `squish remember` - Store memory
93
- - `squish search` - Find memories
94
- - `squish recall` - Get by ID
95
- - `squish health` - Check service status
96
- - `squish stats` - View memory statistics
97
- - `squish core_memory` - Manage always-visible context
98
- - `squish add` - Interactive installer (alias)
99
- - `squish rm` - Remove memory
100
-
101
- ## Configuration
102
-
103
- | Env Variable | Description | Default |
104
- |--------------|-------------|---------|
105
- | SQUISH_MODE | local or team | local |
106
- | SQUISH_DATA_DIR | Data directory | ~/.squish |
107
- | SQUISH_EMBEDDINGS_PROVIDER | local or openai | local |
108
- | SQUISH_QMD_ENABLED | Enable QMD search | true |
109
-
110
- ## More Info
111
-
112
- - GitHub: https://github.com/michielhdoteth/squish
113
- - npm: https://www.npmjs.com/package/squish-memory
114
- - Docs: https://github.com/michielhdoteth/squish/tree/main/docs
1
+ ---
2
+ name: squish-memory
3
+ description: Squish - Persistent memory system for AI assistants. Store facts, decisions, context, and notes with CLI and MCP workflows.
4
+ version: 1.2.0
5
+ author: michielhdoteth
6
+ tags: [memory, persistence, recall, semantic-retrieval, ai-assistant, mcp, cli]
7
+ emoji: brain
8
+ ---
9
+
10
+ # Squish Memory v1.2.0
11
+
12
+ Persistent memory for AI coding assistants with local SQLite/Postgres storage, hybrid retrieval, and MCP integration.
13
+
14
+ ## Quick Setup
15
+
16
+ ```bash
17
+ npm install -g squish-memory
18
+
19
+ # Start the MCP server
20
+ squish run mcp
21
+
22
+ # Or start the web UI only
23
+ squish run web
24
+ ```
25
+
26
+ ## Skills Available
27
+
28
+ | Skill | Description | Install |
29
+ |-------|-------------|---------|
30
+ | `squish-memory` | Overview and quick start | `npx skills add michielhdoteth/squish --skill squish-memory` |
31
+ | `squish-cli` | CLI command reference | `npx skills add michielhdoteth/squish --skill squish-cli` |
32
+ | `memory-guide` | Usage patterns and best practices | `npx skills add michielhdoteth/squish --skill memory-guide` |
33
+
34
+ ## MCP Tools (12) - Unified Write Path
35
+
36
+ **THE memory write tool for agents: `squish_remember`**
37
+ - Auto-detects memory vs learning routing
38
+ - Supports hot/cold tiers
39
+ - Handles all memory types
40
+
41
+ | Tool | Purpose | Typical Input |
42
+ |------|---------|---------------|
43
+ | `squish_remember` | **RECOMMENDED** - Unified memory write with auto-detection | `content`, `project`, `tags`, `tier`, `type`, `route` |
44
+ | `squish_recall` | Recall memories by query or fetch by ID | `query`, optional `limit`, `project`, `type`, `place` |
45
+ | `squish_forget` | Delete memory | `memoryId` or bulk filters |
46
+ | `squish_update` | Update memory | `memoryId`, changed fields |
47
+ | `squish_link` | Graph operations | `action`, memory IDs |
48
+ | `squish_context` | Load project context | `project`, `limit` |
49
+ | `squish_health` | Check health | - |
50
+ | `squish_stats` | View stats | `project` |
51
+ | `squish_confidence` | Get or set confidence | `memoryId`, `level` |
52
+ | `squish_pin` | Pin or unpin memory | `memoryId`, `pinned` |
53
+ | `squish_set_passphrase` | Configure encryption | `passphrase` |
54
+ | `squish_rotate_key` | Rotate encryption key | - |
55
+ | `squish_recent` | List recent memories | `project`, `limit` |
56
+ | `squish_stale` | Show stale memories | `project` |
57
+ | `squish_tag` | Bulk tag operations | - |
58
+ | `squish_timeline` | Progressive disclosure | `query`, `depth` |
59
+
60
+ ## CLI Commands
61
+
62
+ - `squish` - Interactive wizard
63
+ - `squish run mcp` - Start MCP server
64
+ - `squish run web` - Start web UI
65
+ - `squish config` - View or update config
66
+ - `squish remember` - **RECOMMENDED** - Store memory/learning with auto-detection
67
+ - `squish recall` - Search or fetch by ID
68
+ - `squish recent` - Show recent memories
69
+ - `squish update` - Update memory
70
+ - `squish forget` - Delete memory
71
+ - `squish pin` - Pin or unpin memory
72
+ - `squish confidence` - View or set confidence
73
+ - `squish tag` - Bulk tag management
74
+ - `squish stale` - Show stale memories
75
+ - `squish link` - Graph operations
76
+ - `squish context` - Load project context
77
+ - `squish health` - Check service health
78
+ - `squish stats` - View statistics
79
+
80
+ ## Example Workflow
81
+
82
+ ```bash
83
+ # Unified remember - auto-detects routing
84
+ squish remember "Failed because the API returned 404" --project /myproject
85
+ squish remember "User prefers TypeScript over JavaScript" --type preference
86
+ squish remember "Important decision made" --tier hot --type decision
87
+
88
+ # Recall and retrieve
89
+ squish recall "coding preferences"
90
+ squish context --list-projects
91
+ squish context
92
+ ```
93
+
94
+ ## Configuration
95
+
96
+ | Env Variable | Description | Default |
97
+ |--------------|-------------|---------|
98
+ | `SQUISH_MODE` | local or team | `local` |
99
+ | `SQUISH_DATA_DIR` | Data directory | `.squish` in current workspace |
100
+ | `SQUISH_EMBEDDINGS_PROVIDER` | `local`, `openai`, `ollama`, `google`, `none`, `auto` | `local` |
101
+ | `SQUISH_QMD_ENABLED` | Enable QMD integration | `false` unless set |
102
+
103
+ ## More Info
104
+
105
+ - GitHub: https://github.com/michielhdoteth/squish
106
+ - npm: https://www.npmjs.com/package/squish-memory
107
+ - Docs: https://github.com/michielhdoteth/squish/tree/main/docs
@@ -113,11 +113,11 @@ echo ""
113
113
  echo "CLI Commands:"
114
114
  echo " squish health - Check service health"
115
115
  echo " squish remember \"text\" - Store a memory"
116
- echo " squish search \"query\" - Search memories"
116
+ echo " squish recall \"query\" - Recall memories"
117
117
  echo " squish stats - View statistics"
118
118
  echo ""
119
119
  echo "MCP Tools (via mcporter):"
120
- echo " remember, search, recall, observe"
121
- echo " context, health, core_memory, forget"
120
+ echo " remember, search, recall, learn"
121
+ echo " context, health, stats, note"
122
122
  echo ""
123
123
  echo "Documentation: $GITHUB_REPO"
@@ -1,12 +1,12 @@
1
- {
2
- "mcpServers": {
3
- "squish": {
4
- "command": "npx",
5
- "args": ["-y", "squish-memory", "mcp"],
6
- "env": {
7
- "SQUISH_MODE": "local",
8
- "SQUISH_DATA_DIR": "~/.squish"
9
- }
10
- }
11
- }
12
- }
1
+ {
2
+ "mcpServers": {
3
+ "squish": {
4
+ "command": "npx",
5
+ "args": ["-y", "squish-memory", "mcp"],
6
+ "env": {
7
+ "SQUISH_MODE": "local",
8
+ "SQUISH_DATA_DIR": "~/.squish"
9
+ }
10
+ }
11
+ }
12
+ }
@@ -1,13 +1,13 @@
1
- {
2
- "mcpServers": {
3
- "squish": {
4
- "command": "npx",
5
- "args": ["-y", "squish-memory", "mcp"],
6
- "env": {
7
- "SQUISH_MODE": "local",
8
- "SQUISH_DATA_DIR": "~/.squish"
9
- },
10
- "transport": "stdio"
11
- }
12
- }
13
- }
1
+ {
2
+ "mcpServers": {
3
+ "squish": {
4
+ "command": "npx",
5
+ "args": ["-y", "squish-memory", "mcp"],
6
+ "env": {
7
+ "SQUISH_MODE": "local",
8
+ "SQUISH_DATA_DIR": "~/.squish"
9
+ },
10
+ "transport": "stdio"
11
+ }
12
+ }
13
+ }
@@ -1,14 +1,14 @@
1
- {
2
- "$schema": "https://opencode.ai/config.json",
3
- "mcp": {
4
- "squish": {
5
- "type": "local",
6
- "command": ["npx", "-y", "squish-memory", "mcp"],
7
- "enabled": true,
8
- "environment": {
9
- "SQUISH_MODE": "local",
10
- "SQUISH_DATA_DIR": "~/.squish"
11
- }
12
- }
13
- }
14
- }
1
+ {
2
+ "$schema": "https://opencode.ai/config.json",
3
+ "mcp": {
4
+ "squish": {
5
+ "type": "local",
6
+ "command": ["npx", "-y", "squish-memory", "mcp"],
7
+ "enabled": true,
8
+ "environment": {
9
+ "SQUISH_MODE": "local",
10
+ "SQUISH_DATA_DIR": "~/.squish"
11
+ }
12
+ }
13
+ }
14
+ }
@@ -1,20 +0,0 @@
1
- {
2
- "name": "squish-memory",
3
- "owner": {
4
- "name": "michielhdoteth"
5
- },
6
- "plugins": [
7
- {
8
- "name": "squish",
9
- "version": "0.9.0",
10
- "description": "The memory layer for AI agents. Give Claude Code persistent, intelligent memory with trigger detection, contradiction resolution, and hybrid search. Works with any MCP client.",
11
- "author": {
12
- "name": "michielhdoteth"
13
- },
14
- "license": "MIT",
15
- "homepage": "https://github.com/michielhdoteth/squish",
16
- "repository": "https://github.com/michielhdoteth/squish.git",
17
- "source": "./"
18
- }
19
- ]
20
- }
@@ -1,32 +0,0 @@
1
- {
2
- "name": "squish",
3
- "version": "0.9.0",
4
- "description": "The memory layer for AI agents - persistent, intelligent memory with trigger detection, contradiction resolution, and hybrid search",
5
- "author": {
6
- "name": "michielhdoteth",
7
- "url": "https://github.com/michielhdoteth"
8
- },
9
- "license": "MIT",
10
- "homepage": "https://github.com/michielhdoteth/squish#readme",
11
- "repository": "https://github.com/michielhdoteth/squish.git",
12
- "keywords": [
13
- "claude",
14
- "claude-code",
15
- "claude-plugin",
16
- "mcp-server",
17
- "memory",
18
- "persistent-memory",
19
- "core-memory",
20
- "context-management",
21
- "semantic-search",
22
- "full-text-search",
23
- "local-first",
24
- "privacy",
25
- "agent-memory",
26
- "slash-commands",
27
- "two-tier-architecture",
28
- "model-context-protocol"
29
- ],
30
- "commands": "./commands/",
31
- "mcpServers": "./.mcp.json"
32
- }
package/.env.mcp.example DELETED
@@ -1,60 +0,0 @@
1
- # MCP Server Configuration
2
- SQUISH_MCP_PORT=8767
3
- SQUISH_MCP_SERVER_ENABLED=true
4
-
5
- # CORS Configuration (comma-separated origins, * wildcard for port)
6
- # Default: localhost and 127.0.0.1 on any port
7
- # SQUISH_CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:8080
8
-
9
- # Embeddings Provider: local | openai | ollama | google | none | auto
10
- # Default: local (TF-IDF, no API needed)
11
- SQUISH_EMBEDDINGS_PROVIDER=local
12
-
13
- # Model Selection (optional - uses defaults if not set)
14
- # SQUISH_OPENAI_EMBEDDING_MODEL=text-embedding-3-small
15
- # SQUISH_GOOGLE_EMBEDDING_MODEL=gemini-embedding-001
16
- # SQUISH_OLLAMA_EMBEDDING_MODEL=nomic-embed-text:v1.5
17
-
18
- # Google Cloud (for google provider)
19
- # Get API key from: https://console.cloud.google.com/apis/credentials
20
- # GOOGLE_CLOUD_PROJECT=your-project-id
21
- # GOOGLE_CLOUD_LOCATION=us-central1
22
- # GOOGLE_CLOUD_API_KEY=your-api-key
23
- # Or use service account:
24
- # GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
25
-
26
- # OpenAI (for openai provider or auto mode)
27
- # SQUISH_OPENAI_API_KEY=sk-...
28
- # SQUISH_OPENAI_API_URL=https://api.openai.com/v1/embeddings
29
-
30
- # Ollama (for ollama provider or auto mode)
31
- # SQUISH_OLLAMA_URL=http://localhost:11434
32
-
33
- # Embedding performance & reliability
34
- SQUISH_EMBEDDINGS_TIMEOUT_MS=30000
35
- SQUISH_EMBEDDINGS_MAX_RETRIES=3
36
- SQUISH_EMBEDDINGS_RETRY_DELAY_MS=1000
37
- # Per-provider overrides (optional)
38
- # SQUISH_OPENAI_TIMEOUT_MS=30000
39
- # SQUISH_OLLAMA_TIMEOUT_MS=30000
40
- # SQUISH_GOOGLE_TIMEOUT_MS=30000
41
-
42
- # QMD for local markdown search
43
- SQUISH_QMD_ENABLED=true
44
- SQUISH_QMD_COLLECTIONS=./qmd-collections
45
- SQUISH_QMD_FALLBACK=hybrid
46
-
47
- # Managed Mode (Squish Cloud - optional)
48
- # SQUISH_MANAGED_MODE=true
49
- # SQUISH_MANAGED_API_URL=https://api.squish.dev
50
- # SQUISH_MANAGED_API_KEY=your-api-key
51
-
52
- # Lifecycle & Summarization
53
- SQUISH_LIFECYCLE_ENABLED=true
54
- SQUISH_SUMMARIZATION_ENABLED=true
55
- SQUISH_GOVERNANCE_ENABLED=true
56
-
57
- # Core Memory Configuration (v0.9.2+)
58
- # Increase limits for daily agent usage (default: 16KB total, 4KB per section)
59
- # SQUISH_CORE_MEMORY_TOTAL_BYTES=16384
60
- # SQUISH_CORE_MEMORY_SECTION_BYTES=4096
package/.mcp.json DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "squish": {
4
- "command": "node",
5
- "args": ["dist/commands/mcp-server.js"],
6
- "env": {
7
- "NODE_ENV": "production"
8
- }
9
- }
10
- }
11
- }
package/QUICK-START.md DELETED
@@ -1,71 +0,0 @@
1
- # Squish - Quick Start
2
-
3
- Universal two-tier memory for any AI agent.
4
-
5
- ## Start in 30 seconds
6
-
7
- ```bash
8
- # 1. Install
9
- bun install
10
-
11
- # 2. Build
12
- bun run build
13
-
14
- # 3. Start MCP server (works with Claude Code, OpenClaw, or any MCP client)
15
- bun run mcp
16
-
17
- # ✓ Running on http://localhost:8767
18
- ```
19
-
20
- ## Test it
21
-
22
- ```bash
23
- # Health check
24
- curl http://localhost:8767/health
25
-
26
- # Expected output:
27
- {
28
- "status": "ok",
29
- "server": "squish-mcp",
30
- "version": "0.9.2",
31
- "tools": 6
32
- }
33
- ```
34
-
35
- ## Use it
36
-
37
- ```bash
38
- # Search memories
39
- curl -X POST http://localhost:8767/tools/call \
40
- -H "Content-Type: application/json" \
41
- -d '{
42
- "name": "squish_search",
43
- "arguments": {
44
- "query": "authentication"
45
- }
46
- }'
47
- ```
48
-
49
- ## Configure
50
-
51
- Copy `.env.mcp.example` to `.env` and customize:
52
-
53
- ```bash
54
- cp .env.mcp.example .env
55
- ```
56
-
57
- Key settings:
58
-
59
- - **SQUISH_MCP_PORT**: Server port (default: 8767)
60
- - **SQUISH_MCP_SERVER_ENABLED**: Enable/disable MCP server (default: true)
61
- - **SQUISH_EMBEDDINGS_PROVIDER**: local|openai|ollama|google-multimodal|hybrid (default: local)
62
- - **SQUISH_MULTIMODAL_EMBEDDINGS_ENABLED**: Enable Google multimodal (default: false)
63
- - **SQUISH_QMD_ENABLED**: Enable markdown search (true/false)
64
- - **SQUISH_CORE_MEMORY_TOTAL_BYTES**: Total core memory limit in bytes (default: 16384)
65
- - **SQUISH_CORE_MEMORY_SECTION_BYTES**: Per-section limit in bytes (default: 4096)
66
- - **SQUISH_EMBEDDINGS_TIMEOUT_MS**: Timeout for embedding API calls (default: 30000)
67
- - **SQUISH_EMBEDDINGS_MAX_RETRIES**: Max retries for failed embedding calls (default: 3)
68
-
69
- ## Full Docs
70
-
71
- See [docs/MCP-SERVER.md](docs/MCP-SERVER.md)
@@ -1,32 +0,0 @@
1
- #!/usr/bin/env node
2
- // Wrapper for squish commands - launches interactive mode when no args
3
- import { spawn } from 'child_process';
4
- import { fileURLToPath } from 'url';
5
- import { dirname, join } from 'path';
6
-
7
- const __filename = fileURLToPath(import.meta.url);
8
- const __dirname = dirname(__filename);
9
-
10
- const args = process.argv.slice(2);
11
-
12
- // If no args, launch interactive installer
13
- if (args.length === 0) {
14
- const interactivePath = join(__dirname, '..', 'scripts', 'install-interactive.mjs');
15
- const child = spawn('node', [interactivePath], {
16
- stdio: 'inherit',
17
- shell: false
18
- });
19
- child.on('exit', (code) => {
20
- process.exit(code ?? 0);
21
- });
22
- } else {
23
- // Pass through to install-plugin.mjs
24
- const scriptPath = join(__dirname, '..', 'scripts', 'install-plugin.mjs');
25
- const child = spawn('node', [scriptPath, ...args], {
26
- stdio: 'inherit',
27
- shell: false
28
- });
29
- child.on('exit', (code) => {
30
- process.exit(code ?? 0);
31
- });
32
- }
package/bin/squish-rm.mjs DELETED
@@ -1,21 +0,0 @@
1
- #!/usr/bin/env node
2
- // Wrapper for squish remove command
3
- import { spawn } from 'child_process';
4
- import { fileURLToPath } from 'url';
5
- import { dirname, join } from 'path';
6
-
7
- const __filename = fileURLToPath(import.meta.url);
8
- const __dirname = dirname(__filename);
9
-
10
- const args = process.argv.slice(2);
11
- const scriptPath = join(__dirname, 'scripts', 'install-plugin.mjs');
12
-
13
- // Add --uninstall flag
14
- const child = spawn('node', [scriptPath, '--uninstall', ...args], {
15
- stdio: 'inherit',
16
- shell: false
17
- });
18
-
19
- child.on('exit', (code) => {
20
- process.exit(code ?? 0);
21
- });
@@ -1,51 +0,0 @@
1
- ---
2
- description: Manage working set (load, evict, or view loaded memories)
3
- ---
4
-
5
- # Context Paging Management
6
-
7
- Manage your working set of memories for context tracking. Note: Claude manages its own context and token usage. These tools track which memories you're actively working with.
8
-
9
- ## Actions
10
-
11
- ### load
12
- Add a memory to your working set for active tracking.
13
- - Marks memory as currently relevant
14
- - Helps organize which memories are in your active consideration set
15
- - Does not affect Claude's actual context usage
16
-
17
- ### evict
18
- Remove a memory from your working set.
19
- - Removes from your active tracking set
20
- - Memory is still stored and searchable
21
- - Useful when memory is no longer actively relevant
22
-
23
- ### view
24
- View all memories currently in your working set.
25
- - Shows all memories you're actively tracking
26
- - Displays session ID and timestamp loaded
27
- - Lists memory content and metadata
28
-
29
- ## Usage Examples
30
-
31
- Load a memory to working set:
32
- ```
33
- /context-paging action=load sessionId=sess-123 memoryId=mem-uuid-456
34
- ```
35
-
36
- Evict memory from working set:
37
- ```
38
- /context-paging action=evict sessionId=sess-123 memoryId=mem-uuid-456
39
- ```
40
-
41
- View all loaded memories in session:
42
- ```
43
- /context-paging action=view sessionId=sess-123
44
- ```
45
-
46
- ## Important Notes
47
-
48
- - Working set is per-session - each Claude Code session has its own working set
49
- - Claude Code manages its own context window automatically
50
- - These tools are for your own organizational purposes
51
- - Memory removal from working set does not delete the memory permanently