squish-memory 1.0.2 → 1.1.5

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 (341) hide show
  1. package/.env.example +130 -0
  2. package/CHANGELOG.md +55 -0
  3. package/README.md +150 -287
  4. package/config/hooks/claude-code-hooks.json +39 -0
  5. package/config/hooks/cursor-hooks.json +30 -0
  6. package/config/hooks/opencode-hooks.json +30 -0
  7. package/config/hooks/windsurf-hooks.json +30 -0
  8. package/config/mcp-mode-semantics.json +23 -21
  9. package/config/plugin-manifest.json +101 -152
  10. package/{plugin.json → config/plugin.json} +2 -2
  11. package/config/settings.json +52 -51
  12. package/{commands → core/commands}/init.md +39 -39
  13. package/dist/config.d.ts +28 -4
  14. package/dist/config.js +97 -29
  15. package/dist/core/adapters/config/claude-code.d.ts +45 -0
  16. package/dist/core/adapters/config/claude-code.js +113 -0
  17. package/dist/core/adapters/config/cursor.d.ts +26 -0
  18. package/dist/core/adapters/config/cursor.js +74 -0
  19. package/dist/core/adapters/config/opencode.d.ts +23 -0
  20. package/dist/core/adapters/config/opencode.js +73 -0
  21. package/dist/core/adapters/config/windsurf.d.ts +26 -0
  22. package/dist/core/adapters/config/windsurf.js +74 -0
  23. package/dist/core/adapters/index.d.ts +45 -0
  24. package/dist/core/adapters/index.js +84 -0
  25. package/dist/core/adapters/scripts/install-adapter.d.ts +19 -0
  26. package/dist/core/adapters/scripts/install-adapter.js +149 -0
  27. package/dist/core/adapters/timeline.d.ts +23 -0
  28. package/dist/core/adapters/timeline.js +88 -0
  29. package/dist/core/adapters/types.d.ts +157 -0
  30. package/dist/core/adapters/types.js +50 -0
  31. package/dist/{algorithms → core/algorithms}/analytics/token-estimator.d.ts +1 -1
  32. package/dist/{algorithms → core/algorithms}/analytics/token-estimator.js +3 -3
  33. package/dist/{algorithms → core/algorithms}/detection/semantic-ranker.d.ts +1 -1
  34. package/dist/{algorithms → core/algorithms}/detection/semantic-ranker.js +1 -1
  35. package/dist/{algorithms → core/algorithms}/detection/two-stage-detector.d.ts +1 -1
  36. package/dist/{algorithms → core/algorithms}/detection/two-stage-detector.js +7 -10
  37. package/dist/{algorithms → core/algorithms}/handlers/approve-merge.js +4 -4
  38. package/dist/{algorithms → core/algorithms}/handlers/detect-duplicates.js +3 -3
  39. package/dist/{algorithms → core/algorithms}/handlers/get-stats.js +3 -3
  40. package/dist/{algorithms → core/algorithms}/handlers/list-proposals.js +3 -3
  41. package/dist/{algorithms → core/algorithms}/handlers/preview-merge.js +3 -3
  42. package/dist/{algorithms → core/algorithms}/handlers/reject-merge.js +3 -3
  43. package/dist/{algorithms → core/algorithms}/handlers/reverse-merge.js +3 -3
  44. package/dist/core/algorithms/index.d.ts +21 -0
  45. package/dist/core/algorithms/index.js +26 -0
  46. package/dist/core/algorithms/operations/cache-maintenance.d.ts +12 -0
  47. package/dist/core/algorithms/operations/cache-maintenance.js +157 -0
  48. package/dist/{algorithms → core/algorithms}/safety/safety-checks.d.ts +1 -1
  49. package/dist/{algorithms → core/algorithms}/strategies/merge-strategies.d.ts +19 -1
  50. package/dist/{algorithms → core/algorithms}/strategies/merge-strategies.js +74 -123
  51. package/dist/core/algorithms/types.d.ts +133 -0
  52. package/dist/core/algorithms/types.js +5 -0
  53. package/dist/core/associations.d.ts +1 -2
  54. package/dist/core/associations.js +1 -2
  55. package/dist/core/autosave.d.ts +19 -0
  56. package/dist/core/autosave.js +16 -0
  57. package/dist/{commands → core/commands}/managed-sync.js +5 -5
  58. package/dist/core/commands/mcp-server.js +739 -0
  59. package/dist/core/context/agent-context.d.ts +106 -0
  60. package/dist/core/context/agent-context.js +274 -0
  61. package/dist/core/{context-paging.d.ts → context/context-paging.d.ts} +2 -12
  62. package/dist/core/{context-paging.js → context/context-paging.js} +19 -39
  63. package/dist/core/context/context-window.d.ts +40 -0
  64. package/dist/core/context/context-window.js +177 -0
  65. package/dist/core/context/context.js +22 -0
  66. package/dist/core/embeddings.d.ts +1 -1
  67. package/dist/core/embeddings.js +54 -2
  68. package/dist/core/error-handling.d.ts +63 -0
  69. package/dist/core/error-handling.js +173 -0
  70. package/dist/core/external-folder/index.d.ts +102 -0
  71. package/dist/core/external-folder/index.js +294 -0
  72. package/dist/core/hooks/agent-hooks.d.ts +74 -0
  73. package/dist/core/hooks/agent-hooks.js +244 -0
  74. package/dist/core/hooks/auto-tagger.d.ts +19 -0
  75. package/dist/core/hooks/auto-tagger.js +155 -0
  76. package/dist/core/hooks/capture-filter.d.ts +41 -0
  77. package/dist/core/hooks/capture-filter.js +128 -0
  78. package/dist/core/index.d.ts +6 -6
  79. package/dist/core/index.js +6 -6
  80. package/dist/core/{agent-memory.js → ingestion/agent-memory.js} +5 -7
  81. package/dist/core/{core-memory.js → ingestion/core-memory.js} +4 -4
  82. package/dist/core/ingestion/learnings.d.ts +57 -0
  83. package/dist/core/ingestion/learnings.js +202 -0
  84. package/dist/core/lib/db-client.d.ts +114 -0
  85. package/dist/core/lib/db-client.js +130 -0
  86. package/dist/core/lib/schemas.d.ts +129 -0
  87. package/dist/core/lib/schemas.js +87 -0
  88. package/dist/core/{utils.d.ts → lib/utils.d.ts} +1 -0
  89. package/dist/core/{utils.js → lib/utils.js} +31 -15
  90. package/dist/core/lib/validation.d.ts +38 -0
  91. package/dist/core/lib/validation.js +151 -0
  92. package/dist/core/lifecycle.d.ts +7 -0
  93. package/dist/core/lifecycle.js +140 -20
  94. package/dist/core/local-embeddings.d.ts +6 -1
  95. package/dist/core/local-embeddings.js +6 -15
  96. package/dist/core/logger.js +7 -1
  97. package/dist/core/mcp/tools.js +35 -3
  98. package/dist/core/memory/categorizer.js +1 -0
  99. package/dist/core/memory/conflict-detector.js +1 -1
  100. package/dist/core/memory/consolidation.d.ts +1 -10
  101. package/dist/core/memory/consolidation.js +2 -11
  102. package/dist/core/memory/context-collector.js +1 -1
  103. package/dist/core/memory/edit-workflow.js +1 -1
  104. package/dist/core/memory/entity-resolver.js +7 -7
  105. package/dist/core/memory/fact-extractor.js +12 -12
  106. package/dist/core/memory/feedback-tracker.js +1 -1
  107. package/dist/core/memory/hooks.d.ts +88 -0
  108. package/dist/core/memory/hooks.js +174 -0
  109. package/dist/core/memory/hybrid-retrieval.js +2 -2
  110. package/dist/core/memory/hybrid-search.d.ts +1 -6
  111. package/dist/core/memory/hybrid-search.js +70 -84
  112. package/dist/core/memory/importance.d.ts +8 -13
  113. package/dist/core/memory/importance.js +47 -74
  114. package/dist/core/memory/loader.d.ts +31 -0
  115. package/dist/core/memory/loader.js +141 -0
  116. package/dist/core/memory/markdown/markdown-storage.d.ts +72 -0
  117. package/dist/core/memory/markdown/markdown-storage.js +243 -0
  118. package/dist/core/memory/memories.d.ts +12 -4
  119. package/dist/core/memory/memories.js +192 -180
  120. package/dist/core/memory/memory-lifecycle.d.ts +8 -0
  121. package/dist/core/memory/memory-lifecycle.js +55 -0
  122. package/dist/core/memory/migrate.d.ts +21 -0
  123. package/dist/core/memory/migrate.js +134 -0
  124. package/dist/core/memory/normalization.d.ts +22 -0
  125. package/dist/core/memory/normalization.js +26 -0
  126. package/dist/core/memory/progressive-disclosure.js +1 -1
  127. package/dist/core/memory/query-rewriter.js +9 -9
  128. package/dist/core/memory/serialization.d.ts +4 -0
  129. package/dist/core/memory/serialization.js +49 -0
  130. package/dist/core/memory/stats.d.ts +5 -0
  131. package/dist/core/memory/stats.js +63 -12
  132. package/dist/core/memory/temporal-facts.js +21 -0
  133. package/dist/core/memory/write-gate.js +1 -1
  134. package/dist/core/obsidian-vault.d.ts +30 -0
  135. package/dist/core/obsidian-vault.js +94 -0
  136. package/dist/core/places/index.d.ts +14 -0
  137. package/dist/core/places/index.js +14 -0
  138. package/dist/core/places/memory-places.d.ts +68 -0
  139. package/dist/core/places/memory-places.js +261 -0
  140. package/dist/core/places/places.d.ts +88 -0
  141. package/dist/core/places/places.js +314 -0
  142. package/dist/core/places/rules.d.ts +74 -0
  143. package/dist/core/places/rules.js +240 -0
  144. package/dist/core/places/walking.d.ts +56 -0
  145. package/dist/core/places/walking.js +121 -0
  146. package/dist/core/projects.d.ts +5 -0
  147. package/dist/core/projects.js +39 -18
  148. package/dist/core/responses.d.ts +96 -0
  149. package/dist/core/responses.js +122 -0
  150. package/dist/core/scheduler/cron-scheduler.js +29 -7
  151. package/dist/core/scheduler/index.d.ts +1 -1
  152. package/dist/core/scheduler/index.js +1 -1
  153. package/dist/core/scheduler/job-runner.js +1 -1
  154. package/dist/core/search/conversations.js +40 -42
  155. package/dist/core/search/entities.js +6 -9
  156. package/dist/core/search/graph-boost.d.ts +7 -0
  157. package/dist/core/search/graph-boost.js +23 -0
  158. package/dist/core/search/qmd-search.js +4 -4
  159. package/dist/core/security/encrypt.d.ts +6 -0
  160. package/dist/core/security/encrypt.js +47 -0
  161. package/dist/core/{governance.d.ts → security/governance.d.ts} +6 -1
  162. package/dist/core/security/governance.js +79 -0
  163. package/dist/core/session/auto-load.js +6 -6
  164. package/dist/core/session/index.d.ts +1 -1
  165. package/dist/core/session/index.js +1 -1
  166. package/dist/core/session/self-iteration-job.d.ts +20 -0
  167. package/dist/core/session/self-iteration-job.js +282 -0
  168. package/dist/core/session/session-hooks.d.ts +18 -0
  169. package/dist/core/session/session-hooks.js +58 -0
  170. package/dist/core/session-hooks/self-iteration-job.js +35 -35
  171. package/dist/core/{cache.js → storage/cache.js} +2 -2
  172. package/dist/core/sync/qmd-sync.d.ts +1 -13
  173. package/dist/core/sync/qmd-sync.js +1 -13
  174. package/dist/core/toon.d.ts +43 -0
  175. package/dist/core/toon.js +160 -0
  176. package/dist/core/utils/memory-operations.js +1 -1
  177. package/dist/core/utils/vector-operations.d.ts +71 -0
  178. package/dist/core/utils/vector-operations.js +129 -0
  179. package/dist/db/adapter.d.ts +3 -3
  180. package/dist/db/adapter.js +99 -88
  181. package/dist/db/bootstrap.js +820 -522
  182. package/dist/{drizzle → db/drizzle}/schema-sqlite.d.ts +74 -25
  183. package/dist/{drizzle → db/drizzle}/schema-sqlite.js +91 -24
  184. package/dist/{drizzle → db/drizzle}/schema.d.ts +79 -32
  185. package/dist/{drizzle → db/drizzle}/schema.js +106 -35
  186. package/dist/db/drizzle.config.d.ts +3 -0
  187. package/dist/db/drizzle.config.js +12 -0
  188. package/dist/db/index.d.ts +1 -5
  189. package/dist/db/index.js +51 -8
  190. package/dist/db/neon.d.ts +8 -0
  191. package/dist/db/neon.js +20 -0
  192. package/dist/db/schema/index.d.ts +40 -0
  193. package/dist/db/schema/index.js +105 -0
  194. package/dist/db/schema/tables/context-sessions.d.ts +9 -0
  195. package/dist/db/schema/tables/context-sessions.js +37 -0
  196. package/dist/db/schema/tables/conversations.d.ts +9 -0
  197. package/dist/db/schema/tables/conversations.js +47 -0
  198. package/dist/db/schema/tables/core-memory.d.ts +9 -0
  199. package/dist/db/schema/tables/core-memory.js +41 -0
  200. package/dist/db/schema/tables/entities.d.ts +9 -0
  201. package/dist/db/schema/tables/entities.js +39 -0
  202. package/dist/db/schema/tables/entity-relations.d.ts +9 -0
  203. package/dist/db/schema/tables/entity-relations.js +31 -0
  204. package/dist/db/schema/tables/learnings.d.ts +9 -0
  205. package/dist/db/schema/tables/learnings.js +66 -0
  206. package/dist/db/schema/tables/memories.d.ts +9 -0
  207. package/dist/db/schema/tables/memories.js +161 -0
  208. package/dist/db/schema/tables/memory-associations.d.ts +9 -0
  209. package/dist/db/schema/tables/memory-associations.js +39 -0
  210. package/dist/db/schema/tables/memory-hash-cache.d.ts +9 -0
  211. package/dist/db/schema/tables/memory-hash-cache.js +29 -0
  212. package/dist/db/schema/tables/memory-merge-history.d.ts +9 -0
  213. package/dist/db/schema/tables/memory-merge-history.js +33 -0
  214. package/dist/db/schema/tables/memory-merge-proposals.d.ts +9 -0
  215. package/dist/db/schema/tables/memory-merge-proposals.js +39 -0
  216. package/dist/db/schema/tables/messages.d.ts +9 -0
  217. package/dist/db/schema/tables/messages.js +41 -0
  218. package/dist/db/schema/tables/namespaces.d.ts +9 -0
  219. package/dist/db/schema/tables/namespaces.js +37 -0
  220. package/dist/db/schema/tables/projects.d.ts +9 -0
  221. package/dist/db/schema/tables/projects.js +31 -0
  222. package/dist/db/schema/tables/users.d.ts +9 -0
  223. package/dist/db/schema/tables/users.js +27 -0
  224. package/dist/db/schema.d.ts +1 -1
  225. package/dist/db/schema.js +2 -2
  226. package/dist/db/supabase.d.ts +9 -0
  227. package/dist/db/supabase.js +24 -0
  228. package/dist/index.d.ts +2 -14
  229. package/dist/index.js +1320 -640
  230. package/dist/vendor/sql.js/sql-wasm.wasm +0 -0
  231. package/dist/webui/server.d.ts +5 -0
  232. package/dist/{api/web/web.js → webui/server.js} +511 -508
  233. package/generated/mcp/manifest.json +1 -1
  234. package/{.mcp.json → mcp.json.example} +1 -1
  235. package/package.json +159 -181
  236. package/scripts/README.md +60 -0
  237. package/scripts/copy-runtime-assets.mjs +26 -0
  238. package/scripts/generate-mcp.mjs +264 -264
  239. package/scripts/github-release.sh +4 -4
  240. package/scripts/install-claude-code.sh +85 -0
  241. package/scripts/install-cursor.sh +56 -0
  242. package/scripts/install-hooks.sh +73 -0
  243. package/scripts/install-interactive.mjs +357 -677
  244. package/scripts/install-opencode.sh +75 -0
  245. package/scripts/install-windsurf.sh +67 -0
  246. package/skills/squish-memory/SKILL.md +104 -114
  247. package/skills/squish-memory/{install.mjs → scripts/install.mjs} +2 -2
  248. package/skills/squish-memory/{install.sh → scripts/install.sh} +2 -2
  249. package/skills/squish-memory/write_skill.js +2 -0
  250. package/.claude-plugin/marketplace.json +0 -20
  251. package/.claude-plugin/plugin.json +0 -32
  252. package/.env.mcp.example +0 -60
  253. package/QUICK-START.md +0 -71
  254. package/bin/squish-add.mjs +0 -32
  255. package/bin/squish-rm.mjs +0 -21
  256. package/commands/observe.md +0 -5
  257. package/dist/api/web/index.d.ts +0 -3
  258. package/dist/api/web/index.js +0 -4
  259. package/dist/api/web/web-server.d.ts +0 -3
  260. package/dist/api/web/web-server.js +0 -6
  261. package/dist/api/web/web.d.ts +0 -4
  262. package/dist/commands/mcp-server.js +0 -393
  263. package/dist/core/context.js +0 -24
  264. package/dist/core/governance.js +0 -64
  265. package/dist/core/observations.d.ts +0 -26
  266. package/dist/core/observations.js +0 -110
  267. package/dist/core/requirements.d.ts +0 -20
  268. package/dist/core/requirements.js +0 -35
  269. package/hooks/hooks.json +0 -52
  270. package/hooks/post-tool-use.js +0 -26
  271. package/hooks/session-end.js +0 -28
  272. package/hooks/session-start.js +0 -33
  273. package/hooks/user-prompt-submit.js +0 -26
  274. package/hooks/utils.js +0 -153
  275. package/npx-installer.js +0 -208
  276. package/packages/plugin-claude-code/README.md +0 -73
  277. package/packages/plugin-claude-code/dist/plugin-wrapper.d.ts +0 -35
  278. package/packages/plugin-claude-code/dist/plugin-wrapper.js +0 -191
  279. package/packages/plugin-claude-code/package.json +0 -31
  280. package/packages/plugin-openclaw/README.md +0 -70
  281. package/packages/plugin-openclaw/dist/index.d.ts +0 -49
  282. package/packages/plugin-openclaw/dist/index.js +0 -262
  283. package/packages/plugin-openclaw/openclaw.plugin.json +0 -94
  284. package/packages/plugin-openclaw/package.json +0 -31
  285. package/packages/plugin-opencode/install.mjs +0 -217
  286. package/packages/plugin-opencode/package.json +0 -21
  287. package/scripts/db/check-db.mjs +0 -88
  288. package/scripts/db/fix-all-columns.mjs +0 -52
  289. package/scripts/db/fix-schema-all.mjs +0 -55
  290. package/scripts/db/fix-schema-full.mjs +0 -46
  291. package/scripts/db/fix-schema.mjs +0 -38
  292. package/scripts/db/init-db.mjs +0 -13
  293. package/scripts/db/recreate-db.mjs +0 -14
  294. package/scripts/install-mcp.mjs +0 -116
  295. package/scripts/install-web.sh +0 -120
  296. package/scripts/install.mjs +0 -340
  297. package/scripts/openclaw-bootstrap.mjs +0 -127
  298. package/scripts/package-release.sh +0 -71
  299. package/scripts/test/test-all-systems.mjs +0 -139
  300. package/scripts/test/test-memory-system.mjs +0 -139
  301. package/scripts/test/test-v0.5.0.mjs +0 -210
  302. package/skills/memory-guide/SKILL.md +0 -332
  303. package/skills/squish-cli/SKILL.md +0 -240
  304. package/skills/squish-mcp/SKILL.md +0 -355
  305. package/skills/squish-memory/claude-desktop.json +0 -12
  306. package/skills/squish-memory/openclaw.json +0 -13
  307. package/skills/squish-memory/opencode.json +0 -14
  308. package/skills/squish-memory/skill.json +0 -32
  309. /package/{commands → core/commands}/context-paging.md +0 -0
  310. /package/{commands → core/commands}/context-status.md +0 -0
  311. /package/{commands → core/commands}/context.md +0 -0
  312. /package/{commands → core/commands}/core-memory.md +0 -0
  313. /package/{commands → core/commands}/health.md +0 -0
  314. /package/{commands → core/commands}/merge.md +0 -0
  315. /package/{commands → core/commands}/recall.md +0 -0
  316. /package/{commands → core/commands}/remember.md +0 -0
  317. /package/{commands → core/commands}/search.md +0 -0
  318. /package/dist/{algorithms → core/algorithms}/detection/hash-filters.d.ts +0 -0
  319. /package/dist/{algorithms → core/algorithms}/detection/hash-filters.js +0 -0
  320. /package/dist/{algorithms → core/algorithms}/handlers/approve-merge.d.ts +0 -0
  321. /package/dist/{algorithms → core/algorithms}/handlers/detect-duplicates.d.ts +0 -0
  322. /package/dist/{algorithms → core/algorithms}/handlers/get-stats.d.ts +0 -0
  323. /package/dist/{algorithms → core/algorithms}/handlers/list-proposals.d.ts +0 -0
  324. /package/dist/{algorithms → core/algorithms}/handlers/preview-merge.d.ts +0 -0
  325. /package/dist/{algorithms → core/algorithms}/handlers/reject-merge.d.ts +0 -0
  326. /package/dist/{algorithms → core/algorithms}/handlers/reverse-merge.d.ts +0 -0
  327. /package/dist/{algorithms → core/algorithms}/safety/safety-checks.js +0 -0
  328. /package/dist/{algorithms → core/algorithms}/utils/response-builder.d.ts +0 -0
  329. /package/dist/{algorithms → core/algorithms}/utils/response-builder.js +0 -0
  330. /package/dist/{commands → core/commands}/managed-sync.d.ts +0 -0
  331. /package/dist/{commands → core/commands}/mcp-server.d.ts +0 -0
  332. /package/dist/core/{context.d.ts → context/context.d.ts} +0 -0
  333. /package/dist/core/{agent-memory.d.ts → ingestion/agent-memory.d.ts} +0 -0
  334. /package/dist/core/{core-memory.d.ts → ingestion/core-memory.d.ts} +0 -0
  335. /package/dist/core/{privacy.d.ts → security/privacy.d.ts} +0 -0
  336. /package/dist/core/{privacy.js → security/privacy.js} +0 -0
  337. /package/dist/core/{secret-detector.d.ts → security/secret-detector.d.ts} +0 -0
  338. /package/dist/core/{secret-detector.js → security/secret-detector.js} +0 -0
  339. /package/dist/core/{cache.d.ts → storage/cache.d.ts} +0 -0
  340. /package/dist/core/{database.d.ts → storage/database.d.ts} +0 -0
  341. /package/dist/core/{database.js → storage/database.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "mode": "universal",
3
- "generatedAt": "2026-03-18T18:13:29.152Z",
3
+ "generatedAt": "2026-04-13T04:19:52.236Z",
4
4
  "source": "config/mcp.json",
5
5
  "files": [
6
6
  {
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "squish": {
4
4
  "command": "node",
5
- "args": ["dist/commands/mcp-server.js"],
5
+ "args": ["dist/core/commands/mcp-server.js"],
6
6
  "env": {
7
7
  "NODE_ENV": "production"
8
8
  }
package/package.json CHANGED
@@ -1,181 +1,159 @@
1
- {
2
- "name": "squish-memory",
3
- "version": "1.0.2",
4
- "description": "Two-tier memory for AI agents: QMD-based fast file search (short-term) + SQLite/Postgres (long-term). Works out-of-the-box, no setup required.",
5
- "main": "dist/index.js",
6
- "type": "module",
7
- "bin": {
8
- "squish": "dist/index.js",
9
- "squish-mcp": "dist/commands/mcp-server.js",
10
- "squish-add": "bin/squish-add.mjs",
11
- "squish-rm": "bin/squish-rm.mjs",
12
- "squish-install": "npx-installer.js",
13
- "squish-install-plugin": "scripts/install-plugin.mjs"
14
- },
15
- "scripts": {
16
- "build": "tsc",
17
- "build:plugins": "npm run build && npm run build:claude && npm run build:openclaw",
18
- "build:claude": "cp -r .claude-plugin packages/plugin-claude-code/",
19
- "build:openclaw": "mkdir -p packages/plugin-openclaw/dist && cp -r plugins/openclaw/* packages/plugin-openclaw/ && (cd packages/plugin-openclaw && npm run build 2>/dev/null || true)",
20
- "start": "node dist/index.js",
21
- "mcp": "node dist/commands/mcp-server.js",
22
- "web": "node dist/api/web/web-server.js",
23
- "web:bun": "bun run dist/api/web/web-server.js",
24
- "dev": "bun --hot index.ts",
25
- "dev:mcp": "bun --hot commands/mcp-server.ts",
26
- "verify:mcp": "node scripts/verify-mcp.mjs",
27
- "preflight:remote": "node scripts/remote-preflight.mjs",
28
- "fallback:dry": "node scripts/squish-fallback.mjs --op health --simulate-mcp-failure --dry-run",
29
- "deps:check": "node scripts/dependency-manager.mjs",
30
- "deps:install": "node scripts/dependency-manager.mjs",
31
- "detect:clients": "node scripts/detect-clients.mjs",
32
- "install:plugin": "node scripts/install-plugin.mjs",
33
- "install:interactive": "node scripts/install-interactive.mjs",
34
- "test:interactive": "node scripts/test-interactive.mjs",
35
- "test": "node --test dist/tests/**/*.test.js",
36
- "clean": "rm -rf dist && rm -f *.log",
37
- "bench": "bun benchmark/memory.ts",
38
- "bench:db": "bun benchmark/run.ts",
39
- "db:generate": "drizzle-kit generate",
40
- "db:migrate": "drizzle-kit migrate",
41
- "db:push": "drizzle-kit push",
42
- "db:studio": "drizzle-kit studio",
43
- "prepublishOnly": "npm run clean && npm run build",
44
- "prepare": "npm run build",
45
- "postinstall": "node scripts/init-dirs.mjs",
46
- "release": "./scripts/build-release.sh && ./scripts/github-release.sh",
47
- "check:secrets": "node scripts/check-secrets.js"
48
- },
49
- "repository": {
50
- "type": "git",
51
- "url": "https://github.com/michielhdoteth/squish.git"
52
- },
53
- "homepage": "https://github.com/michielhdoteth/squish#readme",
54
- "funding": {
55
- "type": "github",
56
- "url": "https://github.com/sponsors/michielhdoteth"
57
- },
58
- "bugs": {
59
- "url": "https://github.com/michielhdoteth/squish/issues"
60
- },
61
- "keywords": [
62
- "ai-agent",
63
- "memory",
64
- "persistent-memory",
65
- "universal-memory",
66
- "mcp-server",
67
- "mcp-client",
68
- "model-context-protocol",
69
- "claude-code",
70
- "openclaw",
71
- "opencode",
72
- "codex",
73
- "cursor",
74
- "windsurf",
75
- "vscode",
76
- "plugin",
77
- "plugin-architecture",
78
- "qmd",
79
- "sqlite",
80
- "postgres",
81
- "hybrid-search",
82
- "context-management",
83
- "semantic-search",
84
- "local-first",
85
- "privacy",
86
- "agent-framework",
87
- "agent-memory",
88
- "ai-memory",
89
- "agentic",
90
- "context-window",
91
- "long-term-memory",
92
- "rag",
93
- "vector-embeddings",
94
- "session-persistence"
95
- ],
96
- "files": [
97
- "dist/**/*.js",
98
- "dist/**/*.d.ts",
99
- "dist/**/*.cjs",
100
- "scripts",
101
- "!scripts/init-dirs.ts",
102
- "skills",
103
- "hooks",
104
- "config",
105
- "bin",
106
- "generated",
107
- "packages/plugin-claude-code/dist/*.js",
108
- "packages/plugin-claude-code/dist/*.d.ts",
109
- "packages/plugin-claude-code/package.json",
110
- "packages/plugin-claude-code/README.md",
111
- "packages/plugin-openclaw/dist/*.js",
112
- "packages/plugin-openclaw/dist/*.d.ts",
113
- "packages/plugin-openclaw/package.json",
114
- "packages/plugin-openclaw/README.md",
115
- "packages/plugin-openclaw/openclaw.plugin.json",
116
- "packages/plugin-opencode/package.json",
117
- "packages/plugin-opencode/install.mjs",
118
- "plugin.json",
119
- ".claude-plugin",
120
- ".mcp.json",
121
- ".env.mcp.example",
122
- "LICENSE",
123
- "README.md",
124
- "CHANGELOG.md",
125
- "QUICK-START.md",
126
- "commands/context-paging.md",
127
- "commands/context-status.md",
128
- "commands/context.md",
129
- "commands/core-memory.md",
130
- "commands/health.md",
131
- "commands/init.md",
132
- "commands/merge.md",
133
- "commands/observe.md",
134
- "commands/recall.md",
135
- "commands/remember.md",
136
- "commands/search.md"
137
- ],
138
- "author": "michielhdoteth <michiel@4mlabs.io>",
139
- "license": "MIT",
140
- "engines": {
141
- "node": ">=18.0.0"
142
- },
143
- "dependencies": {
144
- "@clack/prompts": "^0.7.0",
145
- "@modelcontextprotocol/sdk": "^1.27.1",
146
- "better-sqlite3": "12.6.2",
147
- "bull": "^4.16.0",
148
- "commander": "^12.0.0",
149
- "cors": "2.8.6",
150
- "dotenv": "^16.4.0",
151
- "drizzle-orm": "^0.38.0",
152
- "express": "^5.2.1",
153
- "express-rate-limit": "^8.3.1",
154
- "hono": "^4.12.8",
155
- "node-cron": "^3.0.0",
156
- "pg": "^8.20.0",
157
- "pgvector": "^0.2.0",
158
- "picocolors": "^1.0.0",
159
- "redis": "^5.11.0",
160
- "sql.js": "^1.14.1",
161
- "tree-sitter": "^0.22.0",
162
- "tree-sitter-javascript": "^0.23.0",
163
- "tree-sitter-python": "^0.23.0",
164
- "tree-sitter-typescript": "^0.23.0",
165
- "uuid": "^13.0.0",
166
- "ws": "^8.18.0",
167
- "zod": "^3.24.0"
168
- },
169
- "devDependencies": {
170
- "@types/better-sqlite3": "^7.6.13",
171
- "@types/cors": "^2.8.17",
172
- "@types/express": "^5.0.0",
173
- "@types/node": "^22.0.0",
174
- "@types/node-cron": "^3.0.11",
175
- "@types/pg": "^8.11.10",
176
- "@types/ws": "^8.5.13",
177
- "drizzle-kit": "^0.30.0",
178
- "pkg": "^5.8.1",
179
- "typescript": "^5.7.0"
180
- }
181
- }
1
+ {
2
+ "name": "squish-memory",
3
+ "version": "1.1.5",
4
+ "description": "Two-tier memory for AI agents: QMD-based fast file search (short-term) + SQLite/Postgres (long-term). Works out-of-the-box, no setup required.",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "squish": "dist/index.js",
9
+ "squish-mcp": "dist/core/commands/mcp-server.js",
10
+ "squish-add": "bin/squish-add.mjs",
11
+ "squish-rm": "bin/squish-rm.mjs"
12
+ },
13
+ "scripts": {
14
+ "build": "tsc && node scripts/copy-runtime-assets.mjs",
15
+ "start": "node dist/index.js",
16
+ "mcp": "node dist/core/commands/mcp-server.js",
17
+ "dev": "bun --hot index.ts",
18
+ "dev:mcp": "bun --hot core/commands/mcp-server.ts",
19
+ "verify:mcp": "node scripts/verify-mcp.mjs",
20
+ "preflight:remote": "node scripts/remote-preflight.mjs",
21
+ "fallback:dry": "node scripts/squish-fallback.mjs --op health --simulate-mcp-failure --dry-run",
22
+ "deps:check": "node scripts/dependency-manager.mjs",
23
+ "deps:install": "node scripts/dependency-manager.mjs",
24
+ "detect:clients": "node scripts/detect-clients.mjs",
25
+ "install": "node scripts/install-interactive.mjs",
26
+ "test:interactive": "node scripts/test-interactive.mjs",
27
+ "test": "node --test dist/tests/**/*.test.js",
28
+ "clean": "rm -rf dist && rm -f *.log",
29
+ "bench": "bun benchmark/memory.ts",
30
+ "bench:db": "bun benchmark/run.ts",
31
+ "db:generate": "drizzle-kit generate",
32
+ "db:migrate": "drizzle-kit migrate",
33
+ "db:push": "drizzle-kit push",
34
+ "db:studio": "drizzle-kit studio",
35
+ "prepublishOnly": "npm run clean && npm run build",
36
+ "prepare": "husky",
37
+ "postinstall": "node scripts/init-dirs.mjs",
38
+ "release": "./scripts/build-release.sh && ./scripts/github-release.sh",
39
+ "check:secrets": "node scripts/check-secrets.js",
40
+ "dev:db:init": "node scripts/init-db.mjs",
41
+ "dev:db:check": "node scripts/check-db.mjs",
42
+ "dev:db:recreate": "node scripts/recreate-db.mjs"
43
+ },
44
+ "repository": {
45
+ "type": "git",
46
+ "url": "https://github.com/michielhdoteth/squish.git"
47
+ },
48
+ "homepage": "https://github.com/michielhdoteth/squish#readme",
49
+ "funding": {
50
+ "type": "github",
51
+ "url": "https://github.com/sponsors/michielhdoteth"
52
+ },
53
+ "bugs": {
54
+ "url": "https://github.com/michielhdoteth/squish/issues"
55
+ },
56
+ "keywords": [
57
+ "ai-agent",
58
+ "memory",
59
+ "persistent-memory",
60
+ "universal-memory",
61
+ "mcp-server",
62
+ "mcp-client",
63
+ "model-context-protocol",
64
+ "claude-code",
65
+ "openclaw",
66
+ "opencode",
67
+ "codex",
68
+ "cursor",
69
+ "windsurf",
70
+ "vscode",
71
+ "plugin",
72
+ "plugin-architecture",
73
+ "qmd",
74
+ "sqlite",
75
+ "postgres",
76
+ "hybrid-search",
77
+ "context-management",
78
+ "semantic-search",
79
+ "local-first",
80
+ "privacy",
81
+ "agent-framework",
82
+ "agent-memory",
83
+ "ai-memory",
84
+ "agentic",
85
+ "context-window",
86
+ "long-term-memory",
87
+ "rag",
88
+ "vector-embeddings",
89
+ "session-persistence"
90
+ ],
91
+ "files": [
92
+ "dist/**/*.js",
93
+ "dist/**/*.d.ts",
94
+ "dist/**/*.cjs",
95
+ "dist/**/*.wasm",
96
+ "scripts",
97
+ "!scripts/init-dirs.ts",
98
+ "skills",
99
+ "hooks",
100
+ "config",
101
+ "bin",
102
+ "generated",
103
+ "mcp.json.example",
104
+ ".env.example",
105
+ "LICENSE",
106
+ "README.md",
107
+ "CHANGELOG.md",
108
+ "core/commands/context-paging.md",
109
+ "core/commands/context-status.md",
110
+ "core/commands/context.md",
111
+ "core/commands/core-memory.md",
112
+ "core/commands/health.md",
113
+ "core/commands/init.md",
114
+ "core/commands/merge.md",
115
+ "core/commands/recall.md",
116
+ "core/commands/remember.md",
117
+ "core/commands/search.md"
118
+ ],
119
+ "author": "michielhdoteth <michiel@4mlabs.io>",
120
+ "license": "MIT",
121
+ "engines": {
122
+ "node": ">=18.0.0"
123
+ },
124
+ "dependencies": {
125
+ "@clack/prompts": "^0.7.0",
126
+ "@modelcontextprotocol/sdk": "^1.27.1",
127
+ "@neondatabase/serverless": "^1.0.2",
128
+ "better-sqlite3": "12.6.2",
129
+ "bull": "^4.16.0",
130
+ "commander": "^12.0.0",
131
+ "cors": "2.8.6",
132
+ "dotenv": "^16.4.0",
133
+ "drizzle-orm": "^0.38.0",
134
+ "express": "^5.2.1",
135
+ "express-rate-limit": "^8.3.1",
136
+ "hono": "^4.12.8",
137
+ "node-cron": "^3.0.0",
138
+ "pg": "^8.20.0",
139
+ "pgvector": "^0.2.0",
140
+ "picocolors": "^1.0.0",
141
+ "redis": "^5.11.0",
142
+ "sql.js": "^1.14.1",
143
+ "uuid": "^13.0.0",
144
+ "ws": "^8.18.0",
145
+ "zod": "^3.24.0"
146
+ },
147
+ "devDependencies": {
148
+ "@types/better-sqlite3": "^7.6.13",
149
+ "@types/cors": "^2.8.17",
150
+ "@types/express": "^5.0.0",
151
+ "@types/node": "^22.0.0",
152
+ "@types/node-cron": "^3.0.11",
153
+ "@types/pg": "^8.11.10",
154
+ "@types/ws": "^8.5.13",
155
+ "drizzle-kit": "^0.30.0",
156
+ "pkg": "^5.8.1",
157
+ "typescript": "^5.7.0"
158
+ }
159
+ }
@@ -0,0 +1,60 @@
1
+ # Squish Scripts
2
+
3
+ This directory contains essential build, installation, verification, and release scripts for the Squish project.
4
+
5
+ ## Essential Scripts (Required for Build/Install/Release)
6
+
7
+ ### Build & Runtime
8
+ - **`copy-runtime-assets.mjs`** - Copies runtime assets (e.g., sqlite WASM) to dist/. Run automatically during `npm run build`.
9
+ - **`init-dirs.mjs`** - Initializes required directories (~/.squish). Run automatically after `npm install` (postinstall hook).
10
+
11
+ ### Installation
12
+ - **`install-interactive.mjs`** - Interactive installer wizard. Run with `npm run install`.
13
+ - **`install-plugin.mjs`** - Unified plugin installer for all supported clients (Claude Code, OpenCode, Codex, OpenClaw). Used by the add-mcp command and for manual installation.
14
+
15
+ ### Verification & Testing
16
+ - **`verify-mcp.mjs`** - Verifies MCP configuration and artifacts. Run during release and CI.
17
+ - **`test-interactive.mjs`** - Interactive test runner with filtering and reporting.
18
+ - **`check-secrets.js`** - Scans for accidentally committed secrets. Run as pre-commit hook.
19
+
20
+ ### Dependency Management
21
+ - **`dependency-manager.mjs`** - Checks and installs dependencies for different clients. Commands: `npm run deps:check`, `npm run deps:install`.
22
+ - **`detect-clients.mjs`** - Detects installed AI clients and their locations. Run with `npm run detect:clients`.
23
+
24
+ ### Deployment & Reliability
25
+ - **`remote-preflight.mjs`** - Preflight checks for remote deployments. Run with `npm run preflight:remote`.
26
+ - **`squish-fallback.mjs`** - MCP fallback mechanism for handling failures. Run with `npm run fallback:dry` for simulation.
27
+
28
+ ### Release Automation
29
+ - **`build-release.sh`** - Orchestrates full release build (Linux/macOS). Run with `npm run release`.
30
+ - **`github-release.sh`** - Creates GitHub release with assets. Part of the release process.
31
+
32
+ ## Scripts Reference
33
+
34
+ | Script | Purpose | Invocation |
35
+ |--------|---------|------------|
36
+ | `copy-runtime-assets.mjs` | Copy WASM and other assets to dist | `npm run build` (automatic) |
37
+ | `generate-mcp.mjs` | Generate MCP configuration files | `node scripts/generate-mcp.mjs` |
38
+ | `verify-mcp.mjs` | Verify MCP artifacts are valid | `node scripts/verify-mcp.mjs` |
39
+ | `init-dirs.mjs` | Create ~/.squish and other dirs | `npm install` (automatic) |
40
+ | `install-interactive.mjs` | Interactive installation wizard | `npm run install` |
41
+ | `install-plugin.mjs` | Install plugin for specific client | `node scripts/install-plugin.mjs --client=<name>` |
42
+ | `dependency-manager.mjs` | Manage client dependencies | `npm run deps:check`, `npm run deps:install` |
43
+ | `detect-clients.mjs` | Detect installed AI clients | `npm run detect:clients` |
44
+ | `test-interactive.mjs` | Interactive test runner | `npm run test:interactive` |
45
+ | `remote-preflight.mjs` | Remote deployment checks | `npm run preflight:remote` |
46
+ | `squish-fallback.mjs` | MCP fallback simulation | `npm run fallback:dry` |
47
+ | `check-secrets.js` | Scan for secrets in code | `npm run check:secrets` |
48
+ | `build-release.sh` | Build release packages | `npm run release` (Linux/macOS) |
49
+ | `github-release.sh` | Publish to GitHub Releases | `npm run release` (part of) |
50
+
51
+ ## Notes
52
+
53
+ - All scripts are written in JavaScript (ESM) or shell (`.sh`) for portability.
54
+ - Scripts prefixed with `node` are run with Node.js. Use `bun` for faster execution if available.
55
+ - Release scripts (`build-release.sh`, `github-release.sh`) are designed for CI/CD environments.
56
+ - The `install-plugin.mjs` script is the unified installer that replaced legacy `install-mcp.mjs` and `openclaw-bootstrap.mjs`.
57
+
58
+ ## Developer Scripts
59
+
60
+ Development and debugging utilities are in scripts/ for build/dev workflows.
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+
3
+ import fs from 'node:fs';
4
+ import path from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = path.dirname(__filename);
9
+ const root = path.resolve(__dirname, '..');
10
+
11
+ const copies = [
12
+ {
13
+ from: path.join(root, 'node_modules', 'sql.js', 'dist', 'sql-wasm.wasm'),
14
+ to: path.join(root, 'dist', 'vendor', 'sql.js', 'sql-wasm.wasm'),
15
+ },
16
+ ];
17
+
18
+ for (const asset of copies) {
19
+ if (!fs.existsSync(asset.from)) {
20
+ throw new Error(`Runtime asset not found: ${asset.from}`);
21
+ }
22
+
23
+ fs.mkdirSync(path.dirname(asset.to), { recursive: true });
24
+ fs.copyFileSync(asset.from, asset.to);
25
+ console.log(`[copy-runtime-assets] Copied ${path.relative(root, asset.from)} -> ${path.relative(root, asset.to)}`);
26
+ }