squish-memory 1.1.5 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (646) hide show
  1. package/.env.example +32 -16
  2. package/CHANGELOG.md +147 -0
  3. package/README.md +120 -78
  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 +44 -0
  8. package/bin/squish.mjs +33 -0
  9. package/config/mcp-migration-map.json +1 -6
  10. package/config/mcp-mode-semantics.json +19 -23
  11. package/config/mcp-remote-auth.json +3 -26
  12. package/config/mcp-universal.schema.json +5 -35
  13. package/config/settings.json +107 -52
  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/{dist/core/algorithms/index.js → core/algorithms/index.ts} +39 -26
  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/{dist/core/local-embeddings.js → core/embeddings/local-embeddings.ts} +12 -11
  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/{dist/core/lib/db-client.d.ts → core/lib/db-client.ts} +168 -114
  81. package/core/lib/parse-embedding.ts +59 -0
  82. package/{dist/core/lib/schemas.js → core/lib/schemas.ts} +102 -87
  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/{dist/core/memory/index.js → core/memory/index.ts} +11 -10
  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/{dist/core/places/index.js → core/places/index.ts} +12 -12
  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 +590 -0
  140. package/core/scheduler/heartbeat.ts +91 -0
  141. package/{dist/core/scheduler/index.js → core/scheduler/index.ts} +8 -8
  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/{dist/core/search/index.js → core/search/index.ts} +4 -5
  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/{dist/core/session/index.js → core/session/index.ts} +7 -7
  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/{dist/core/snapshots/cleanup.js → core/snapshots/cleanup.ts} +13 -12
  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/{dist/core/summarization/cleanup.js → core/summarization/cleanup.ts} +13 -12
  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/{dist/core/utils/vector-operations.js → core/utils/vector-operations.ts} +135 -129
  185. package/core/utils/version-management.ts +74 -0
  186. package/core/worker.ts +333 -0
  187. package/db/adapter.ts +215 -0
  188. package/{dist/db/bootstrap.js → db/bootstrap.ts} +388 -418
  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/mcp.json.example +8 -11
  220. package/package.json +140 -159
  221. package/packages/cli/package.json +22 -0
  222. package/packages/cli/src/commands/clean.ts +68 -0
  223. package/packages/cli/src/commands/context.ts +79 -0
  224. package/packages/cli/src/commands/doctor.ts +357 -0
  225. package/packages/cli/src/commands/forget.ts +72 -0
  226. package/packages/cli/src/commands/health.ts +36 -0
  227. package/packages/cli/src/commands/inspect.ts +41 -0
  228. package/packages/cli/src/commands/link.ts +50 -0
  229. package/packages/cli/src/commands/migrate.ts +93 -0
  230. package/packages/cli/src/commands/recall.ts +99 -0
  231. package/packages/cli/src/commands/recent.ts +57 -0
  232. package/packages/cli/src/commands/remember.ts +139 -0
  233. package/packages/cli/src/commands/run.ts +58 -0
  234. package/packages/cli/src/commands/stale.ts +43 -0
  235. package/packages/cli/src/commands/stats.ts +42 -0
  236. package/packages/cli/src/index.ts +57 -0
  237. package/packages/cli/tsconfig.json +24 -0
  238. package/packages/mcp/package.json +26 -0
  239. package/packages/mcp/src/index.ts +940 -0
  240. package/packages/mcp/tsconfig.json +20 -0
  241. package/skills/squish-memory/SKILL.md +38 -35
  242. package/skills/squish-memory/{scripts/install.sh → install.sh} +1 -1
  243. package/skills/squish-memory/references/claude-desktop.json +12 -0
  244. package/skills/squish-memory/references/openclaw.json +13 -0
  245. package/skills/squish-memory/references/opencode.json +14 -0
  246. package/config/hooks/claude-code-hooks.json +0 -39
  247. package/config/hooks/cursor-hooks.json +0 -30
  248. package/config/hooks/opencode-hooks.json +0 -30
  249. package/config/hooks/windsurf-hooks.json +0 -30
  250. package/config/mcp-cli-fallback-policy.json +0 -22
  251. package/config/mcp.json +0 -38
  252. package/config/plugin-manifest.json +0 -101
  253. package/config/plugin-manifest.schema.json +0 -244
  254. package/config/plugin.json +0 -32
  255. package/config/remote-memory-policy.json +0 -32
  256. package/core/commands/context-paging.md +0 -51
  257. package/core/commands/context-status.md +0 -22
  258. package/core/commands/context.md +0 -5
  259. package/core/commands/core-memory.md +0 -56
  260. package/core/commands/health.md +0 -5
  261. package/core/commands/init.md +0 -39
  262. package/core/commands/merge.md +0 -113
  263. package/core/commands/recall.md +0 -5
  264. package/core/commands/remember.md +0 -11
  265. package/core/commands/search.md +0 -10
  266. package/dist/config.d.ts +0 -83
  267. package/dist/config.js +0 -242
  268. package/dist/core/adapters/config/claude-code.d.ts +0 -45
  269. package/dist/core/adapters/config/claude-code.js +0 -113
  270. package/dist/core/adapters/config/cursor.d.ts +0 -26
  271. package/dist/core/adapters/config/cursor.js +0 -74
  272. package/dist/core/adapters/config/opencode.d.ts +0 -23
  273. package/dist/core/adapters/config/opencode.js +0 -73
  274. package/dist/core/adapters/config/windsurf.d.ts +0 -26
  275. package/dist/core/adapters/config/windsurf.js +0 -74
  276. package/dist/core/adapters/index.d.ts +0 -45
  277. package/dist/core/adapters/index.js +0 -84
  278. package/dist/core/adapters/scripts/install-adapter.d.ts +0 -19
  279. package/dist/core/adapters/scripts/install-adapter.js +0 -149
  280. package/dist/core/adapters/timeline.d.ts +0 -23
  281. package/dist/core/adapters/timeline.js +0 -88
  282. package/dist/core/adapters/types.d.ts +0 -157
  283. package/dist/core/adapters/types.js +0 -50
  284. package/dist/core/algorithms/analytics/token-estimator.d.ts +0 -50
  285. package/dist/core/algorithms/analytics/token-estimator.js +0 -154
  286. package/dist/core/algorithms/detection/hash-filters.d.ts +0 -47
  287. package/dist/core/algorithms/detection/hash-filters.js +0 -190
  288. package/dist/core/algorithms/detection/semantic-ranker.d.ts +0 -32
  289. package/dist/core/algorithms/detection/semantic-ranker.js +0 -118
  290. package/dist/core/algorithms/detection/two-stage-detector.d.ts +0 -52
  291. package/dist/core/algorithms/detection/two-stage-detector.js +0 -299
  292. package/dist/core/algorithms/handlers/approve-merge.d.ts +0 -22
  293. package/dist/core/algorithms/handlers/approve-merge.js +0 -179
  294. package/dist/core/algorithms/handlers/detect-duplicates.d.ts +0 -47
  295. package/dist/core/algorithms/handlers/detect-duplicates.js +0 -145
  296. package/dist/core/algorithms/handlers/get-stats.d.ts +0 -39
  297. package/dist/core/algorithms/handlers/get-stats.js +0 -88
  298. package/dist/core/algorithms/handlers/list-proposals.d.ts +0 -45
  299. package/dist/core/algorithms/handlers/list-proposals.js +0 -83
  300. package/dist/core/algorithms/handlers/preview-merge.d.ts +0 -39
  301. package/dist/core/algorithms/handlers/preview-merge.js +0 -93
  302. package/dist/core/algorithms/handlers/reject-merge.d.ts +0 -28
  303. package/dist/core/algorithms/handlers/reject-merge.js +0 -69
  304. package/dist/core/algorithms/handlers/reverse-merge.d.ts +0 -21
  305. package/dist/core/algorithms/handlers/reverse-merge.js +0 -121
  306. package/dist/core/algorithms/index.d.ts +0 -21
  307. package/dist/core/algorithms/operations/cache-maintenance.d.ts +0 -12
  308. package/dist/core/algorithms/operations/cache-maintenance.js +0 -157
  309. package/dist/core/algorithms/safety/safety-checks.d.ts +0 -22
  310. package/dist/core/algorithms/safety/safety-checks.js +0 -179
  311. package/dist/core/algorithms/strategies/merge-strategies.d.ts +0 -50
  312. package/dist/core/algorithms/strategies/merge-strategies.js +0 -288
  313. package/dist/core/algorithms/types.d.ts +0 -133
  314. package/dist/core/algorithms/types.js +0 -5
  315. package/dist/core/algorithms/utils/response-builder.d.ts +0 -28
  316. package/dist/core/algorithms/utils/response-builder.js +0 -37
  317. package/dist/core/associations.d.ts +0 -31
  318. package/dist/core/associations.js +0 -248
  319. package/dist/core/autosave.d.ts +0 -19
  320. package/dist/core/autosave.js +0 -16
  321. package/dist/core/commands/managed-sync.d.ts +0 -10
  322. package/dist/core/commands/managed-sync.js +0 -64
  323. package/dist/core/commands/mcp-server.d.ts +0 -3
  324. package/dist/core/commands/mcp-server.js +0 -739
  325. package/dist/core/consolidation.d.ts +0 -37
  326. package/dist/core/consolidation.js +0 -248
  327. package/dist/core/context/agent-context.d.ts +0 -106
  328. package/dist/core/context/agent-context.js +0 -274
  329. package/dist/core/context/context-paging.d.ts +0 -80
  330. package/dist/core/context/context-paging.js +0 -328
  331. package/dist/core/context/context-window.d.ts +0 -40
  332. package/dist/core/context/context-window.js +0 -177
  333. package/dist/core/context/context.d.ts +0 -7
  334. package/dist/core/context/context.js +0 -22
  335. package/dist/core/embeddings/google-multimodal.d.ts +0 -14
  336. package/dist/core/embeddings/google-multimodal.js +0 -142
  337. package/dist/core/embeddings/qmd-client.d.ts +0 -136
  338. package/dist/core/embeddings/qmd-client.js +0 -403
  339. package/dist/core/embeddings.d.ts +0 -29
  340. package/dist/core/embeddings.js +0 -454
  341. package/dist/core/error-handling.d.ts +0 -63
  342. package/dist/core/error-handling.js +0 -173
  343. package/dist/core/external-folder/index.d.ts +0 -102
  344. package/dist/core/external-folder/index.js +0 -294
  345. package/dist/core/hooks/agent-hooks.d.ts +0 -74
  346. package/dist/core/hooks/agent-hooks.js +0 -244
  347. package/dist/core/hooks/auto-tagger.d.ts +0 -19
  348. package/dist/core/hooks/auto-tagger.js +0 -155
  349. package/dist/core/hooks/capture-filter.d.ts +0 -41
  350. package/dist/core/hooks/capture-filter.js +0 -128
  351. package/dist/core/index.d.ts +0 -10
  352. package/dist/core/index.js +0 -14
  353. package/dist/core/ingestion/agent-memory.d.ts +0 -22
  354. package/dist/core/ingestion/agent-memory.js +0 -109
  355. package/dist/core/ingestion/core-memory.d.ts +0 -78
  356. package/dist/core/ingestion/core-memory.js +0 -226
  357. package/dist/core/ingestion/learnings.d.ts +0 -57
  358. package/dist/core/ingestion/learnings.js +0 -202
  359. package/dist/core/layers/generator.d.ts +0 -25
  360. package/dist/core/layers/generator.js +0 -76
  361. package/dist/core/lib/db-client.js +0 -130
  362. package/dist/core/lib/schemas.d.ts +0 -129
  363. package/dist/core/lib/utils.d.ts +0 -14
  364. package/dist/core/lib/utils.js +0 -90
  365. package/dist/core/lib/validation.d.ts +0 -38
  366. package/dist/core/lib/validation.js +0 -151
  367. package/dist/core/lifecycle.d.ts +0 -26
  368. package/dist/core/lifecycle.js +0 -302
  369. package/dist/core/local-embeddings.d.ts +0 -11
  370. package/dist/core/logger.d.ts +0 -16
  371. package/dist/core/logger.js +0 -40
  372. package/dist/core/mcp/client.d.ts +0 -17
  373. package/dist/core/mcp/client.js +0 -101
  374. package/dist/core/mcp/index.d.ts +0 -6
  375. package/dist/core/mcp/index.js +0 -6
  376. package/dist/core/mcp/server.d.ts +0 -18
  377. package/dist/core/mcp/server.js +0 -157
  378. package/dist/core/mcp/standalone-server.d.ts +0 -13
  379. package/dist/core/mcp/standalone-server.js +0 -46
  380. package/dist/core/mcp/tools.d.ts +0 -9
  381. package/dist/core/mcp/tools.js +0 -365
  382. package/dist/core/mcp/types.d.ts +0 -315
  383. package/dist/core/mcp/types.js +0 -48
  384. package/dist/core/memory/bridge-discovery.d.ts +0 -50
  385. package/dist/core/memory/bridge-discovery.js +0 -291
  386. package/dist/core/memory/categorizer.d.ts +0 -27
  387. package/dist/core/memory/categorizer.js +0 -305
  388. package/dist/core/memory/conflict-detector.d.ts +0 -7
  389. package/dist/core/memory/conflict-detector.js +0 -43
  390. package/dist/core/memory/consolidation.d.ts +0 -42
  391. package/dist/core/memory/consolidation.js +0 -303
  392. package/dist/core/memory/context-collector.d.ts +0 -10
  393. package/dist/core/memory/context-collector.js +0 -56
  394. package/dist/core/memory/contradiction-resolver.d.ts +0 -40
  395. package/dist/core/memory/contradiction-resolver.js +0 -368
  396. package/dist/core/memory/edit-workflow.d.ts +0 -19
  397. package/dist/core/memory/edit-workflow.js +0 -120
  398. package/dist/core/memory/entity-extractor.d.ts +0 -33
  399. package/dist/core/memory/entity-extractor.js +0 -336
  400. package/dist/core/memory/entity-resolver.d.ts +0 -23
  401. package/dist/core/memory/entity-resolver.js +0 -64
  402. package/dist/core/memory/fact-extractor.d.ts +0 -24
  403. package/dist/core/memory/fact-extractor.js +0 -89
  404. package/dist/core/memory/feedback-tracker.d.ts +0 -12
  405. package/dist/core/memory/feedback-tracker.js +0 -155
  406. package/dist/core/memory/hooks.d.ts +0 -88
  407. package/dist/core/memory/hooks.js +0 -174
  408. package/dist/core/memory/hybrid-retrieval.d.ts +0 -29
  409. package/dist/core/memory/hybrid-retrieval.js +0 -139
  410. package/dist/core/memory/hybrid-scorer.d.ts +0 -40
  411. package/dist/core/memory/hybrid-scorer.js +0 -284
  412. package/dist/core/memory/hybrid-search.d.ts +0 -20
  413. package/dist/core/memory/hybrid-search.js +0 -359
  414. package/dist/core/memory/importance.d.ts +0 -63
  415. package/dist/core/memory/importance.js +0 -298
  416. package/dist/core/memory/index.d.ts +0 -8
  417. package/dist/core/memory/loader.d.ts +0 -31
  418. package/dist/core/memory/loader.js +0 -141
  419. package/dist/core/memory/markdown/markdown-storage.d.ts +0 -72
  420. package/dist/core/memory/markdown/markdown-storage.js +0 -243
  421. package/dist/core/memory/memories.d.ts +0 -47
  422. package/dist/core/memory/memories.js +0 -449
  423. package/dist/core/memory/memory-lifecycle.d.ts +0 -8
  424. package/dist/core/memory/memory-lifecycle.js +0 -55
  425. package/dist/core/memory/memory-manager.d.ts +0 -15
  426. package/dist/core/memory/memory-manager.js +0 -46
  427. package/dist/core/memory/migrate.d.ts +0 -21
  428. package/dist/core/memory/migrate.js +0 -134
  429. package/dist/core/memory/normalization.d.ts +0 -22
  430. package/dist/core/memory/normalization.js +0 -26
  431. package/dist/core/memory/progressive-disclosure.d.ts +0 -43
  432. package/dist/core/memory/progressive-disclosure.js +0 -280
  433. package/dist/core/memory/query-processor.d.ts +0 -21
  434. package/dist/core/memory/query-processor.js +0 -72
  435. package/dist/core/memory/query-rewriter.d.ts +0 -13
  436. package/dist/core/memory/query-rewriter.js +0 -118
  437. package/dist/core/memory/response-analyzer.d.ts +0 -9
  438. package/dist/core/memory/response-analyzer.js +0 -61
  439. package/dist/core/memory/serialization.d.ts +0 -10
  440. package/dist/core/memory/serialization.js +0 -84
  441. package/dist/core/memory/stats.d.ts +0 -22
  442. package/dist/core/memory/stats.js +0 -138
  443. package/dist/core/memory/telemetry.d.ts +0 -69
  444. package/dist/core/memory/telemetry.js +0 -313
  445. package/dist/core/memory/temporal-facts.d.ts +0 -41
  446. package/dist/core/memory/temporal-facts.js +0 -283
  447. package/dist/core/memory/temporal-parser.d.ts +0 -32
  448. package/dist/core/memory/temporal-parser.js +0 -385
  449. package/dist/core/memory/trigger-detector.d.ts +0 -14
  450. package/dist/core/memory/trigger-detector.js +0 -42
  451. package/dist/core/memory/write-gate.d.ts +0 -54
  452. package/dist/core/memory/write-gate.js +0 -210
  453. package/dist/core/namespaces/index.d.ts +0 -71
  454. package/dist/core/namespaces/index.js +0 -305
  455. package/dist/core/namespaces/uri-parser.d.ts +0 -31
  456. package/dist/core/namespaces/uri-parser.js +0 -74
  457. package/dist/core/obsidian-vault.d.ts +0 -30
  458. package/dist/core/obsidian-vault.js +0 -94
  459. package/dist/core/places/index.d.ts +0 -14
  460. package/dist/core/places/memory-places.d.ts +0 -68
  461. package/dist/core/places/memory-places.js +0 -261
  462. package/dist/core/places/places.d.ts +0 -88
  463. package/dist/core/places/places.js +0 -314
  464. package/dist/core/places/rules.d.ts +0 -74
  465. package/dist/core/places/rules.js +0 -240
  466. package/dist/core/places/walking.d.ts +0 -56
  467. package/dist/core/places/walking.js +0 -121
  468. package/dist/core/projects.d.ts +0 -17
  469. package/dist/core/projects.js +0 -108
  470. package/dist/core/redis.d.ts +0 -11
  471. package/dist/core/redis.js +0 -69
  472. package/dist/core/responses.d.ts +0 -96
  473. package/dist/core/responses.js +0 -122
  474. package/dist/core/scheduler/cron-scheduler.d.ts +0 -32
  475. package/dist/core/scheduler/cron-scheduler.js +0 -332
  476. package/dist/core/scheduler/heartbeat.d.ts +0 -11
  477. package/dist/core/scheduler/heartbeat.js +0 -73
  478. package/dist/core/scheduler/index.d.ts +0 -8
  479. package/dist/core/scheduler/job-runner.d.ts +0 -11
  480. package/dist/core/scheduler/job-runner.js +0 -164
  481. package/dist/core/search/conversations.d.ts +0 -25
  482. package/dist/core/search/conversations.js +0 -110
  483. package/dist/core/search/entities.d.ts +0 -12
  484. package/dist/core/search/entities.js +0 -31
  485. package/dist/core/search/folder-context.d.ts +0 -25
  486. package/dist/core/search/folder-context.js +0 -119
  487. package/dist/core/search/graph-boost.d.ts +0 -7
  488. package/dist/core/search/graph-boost.js +0 -23
  489. package/dist/core/search/index.d.ts +0 -4
  490. package/dist/core/search/qmd-search.d.ts +0 -61
  491. package/dist/core/search/qmd-search.js +0 -178
  492. package/dist/core/security/encrypt.d.ts +0 -6
  493. package/dist/core/security/encrypt.js +0 -47
  494. package/dist/core/security/governance.d.ts +0 -26
  495. package/dist/core/security/governance.js +0 -79
  496. package/dist/core/security/privacy.d.ts +0 -23
  497. package/dist/core/security/privacy.js +0 -82
  498. package/dist/core/security/secret-detector.d.ts +0 -32
  499. package/dist/core/security/secret-detector.js +0 -88
  500. package/dist/core/session/auto-load.d.ts +0 -6
  501. package/dist/core/session/auto-load.js +0 -119
  502. package/dist/core/session/index.d.ts +0 -7
  503. package/dist/core/session/self-iteration-job.d.ts +0 -20
  504. package/dist/core/session/self-iteration-job.js +0 -282
  505. package/dist/core/session/session-hooks.d.ts +0 -18
  506. package/dist/core/session/session-hooks.js +0 -58
  507. package/dist/core/session/types.d.ts +0 -26
  508. package/dist/core/session/types.js +0 -10
  509. package/dist/core/session-hooks/self-iteration-job.d.ts +0 -20
  510. package/dist/core/session-hooks/self-iteration-job.js +0 -282
  511. package/dist/core/session-hooks/session-hooks.d.ts +0 -18
  512. package/dist/core/session-hooks/session-hooks.js +0 -58
  513. package/dist/core/snapshots/cleanup.d.ts +0 -9
  514. package/dist/core/snapshots/comparison.d.ts +0 -19
  515. package/dist/core/snapshots/comparison.js +0 -43
  516. package/dist/core/snapshots/creation.d.ts +0 -19
  517. package/dist/core/snapshots/creation.js +0 -126
  518. package/dist/core/snapshots/retrieval.d.ts +0 -7
  519. package/dist/core/snapshots/retrieval.js +0 -41
  520. package/dist/core/snapshots/stats.d.ts +0 -11
  521. package/dist/core/snapshots/stats.js +0 -52
  522. package/dist/core/snapshots.d.ts +0 -29
  523. package/dist/core/snapshots.js +0 -220
  524. package/dist/core/storage/cache.d.ts +0 -13
  525. package/dist/core/storage/cache.js +0 -202
  526. package/dist/core/storage/database.d.ts +0 -12
  527. package/dist/core/storage/database.js +0 -12
  528. package/dist/core/summarization/cleanup.d.ts +0 -9
  529. package/dist/core/summarization/queries.d.ts +0 -9
  530. package/dist/core/summarization/queries.js +0 -28
  531. package/dist/core/summarization/stats.d.ts +0 -14
  532. package/dist/core/summarization/stats.js +0 -52
  533. package/dist/core/summarization/strategies.d.ts +0 -24
  534. package/dist/core/summarization/strategies.js +0 -28
  535. package/dist/core/summarization.d.ts +0 -37
  536. package/dist/core/summarization.js +0 -188
  537. package/dist/core/sync/qmd-sync.d.ts +0 -94
  538. package/dist/core/sync/qmd-sync.js +0 -201
  539. package/dist/core/temporal-facts.d.ts +0 -54
  540. package/dist/core/temporal-facts.js +0 -193
  541. package/dist/core/toon.d.ts +0 -43
  542. package/dist/core/toon.js +0 -160
  543. package/dist/core/tracing/collector.d.ts +0 -111
  544. package/dist/core/tracing/collector.js +0 -350
  545. package/dist/core/tracing/visualizer.d.ts +0 -32
  546. package/dist/core/tracing/visualizer.js +0 -165
  547. package/dist/core/utils/cleanup-operations.d.ts +0 -13
  548. package/dist/core/utils/cleanup-operations.js +0 -44
  549. package/dist/core/utils/content-extraction.d.ts +0 -19
  550. package/dist/core/utils/content-extraction.js +0 -75
  551. package/dist/core/utils/filter-builder.d.ts +0 -13
  552. package/dist/core/utils/filter-builder.js +0 -44
  553. package/dist/core/utils/history-traversal.d.ts +0 -13
  554. package/dist/core/utils/history-traversal.js +0 -50
  555. package/dist/core/utils/memory-operations.d.ts +0 -17
  556. package/dist/core/utils/memory-operations.js +0 -43
  557. package/dist/core/utils/query-operations.d.ts +0 -18
  558. package/dist/core/utils/query-operations.js +0 -65
  559. package/dist/core/utils/summarization-helpers.d.ts +0 -21
  560. package/dist/core/utils/summarization-helpers.js +0 -38
  561. package/dist/core/utils/temporal-queries.d.ts +0 -13
  562. package/dist/core/utils/temporal-queries.js +0 -27
  563. package/dist/core/utils/vector-operations.d.ts +0 -71
  564. package/dist/core/utils/version-management.d.ts +0 -9
  565. package/dist/core/utils/version-management.js +0 -61
  566. package/dist/core/worker.d.ts +0 -82
  567. package/dist/core/worker.js +0 -272
  568. package/dist/db/adapter.d.ts +0 -7
  569. package/dist/db/adapter.js +0 -175
  570. package/dist/db/bootstrap.d.ts +0 -9
  571. package/dist/db/drizzle/schema-sqlite.d.ts +0 -4837
  572. package/dist/db/drizzle/schema-sqlite.js +0 -684
  573. package/dist/db/drizzle/schema.d.ts +0 -4082
  574. package/dist/db/drizzle/schema.js +0 -770
  575. package/dist/db/drizzle.config.d.ts +0 -3
  576. package/dist/db/drizzle.config.js +0 -12
  577. package/dist/db/index.d.ts +0 -7
  578. package/dist/db/index.js +0 -89
  579. package/dist/db/neon.d.ts +0 -8
  580. package/dist/db/neon.js +0 -20
  581. package/dist/db/schema/index.d.ts +0 -40
  582. package/dist/db/schema/index.js +0 -105
  583. package/dist/db/schema/tables/context-sessions.d.ts +0 -9
  584. package/dist/db/schema/tables/context-sessions.js +0 -37
  585. package/dist/db/schema/tables/conversations.d.ts +0 -9
  586. package/dist/db/schema/tables/conversations.js +0 -47
  587. package/dist/db/schema/tables/core-memory.d.ts +0 -9
  588. package/dist/db/schema/tables/core-memory.js +0 -41
  589. package/dist/db/schema/tables/entities.d.ts +0 -9
  590. package/dist/db/schema/tables/entities.js +0 -39
  591. package/dist/db/schema/tables/entity-relations.d.ts +0 -9
  592. package/dist/db/schema/tables/entity-relations.js +0 -31
  593. package/dist/db/schema/tables/learnings.d.ts +0 -9
  594. package/dist/db/schema/tables/learnings.js +0 -66
  595. package/dist/db/schema/tables/memories.d.ts +0 -9
  596. package/dist/db/schema/tables/memories.js +0 -161
  597. package/dist/db/schema/tables/memory-associations.d.ts +0 -9
  598. package/dist/db/schema/tables/memory-associations.js +0 -39
  599. package/dist/db/schema/tables/memory-hash-cache.d.ts +0 -9
  600. package/dist/db/schema/tables/memory-hash-cache.js +0 -29
  601. package/dist/db/schema/tables/memory-merge-history.d.ts +0 -9
  602. package/dist/db/schema/tables/memory-merge-history.js +0 -33
  603. package/dist/db/schema/tables/memory-merge-proposals.d.ts +0 -9
  604. package/dist/db/schema/tables/memory-merge-proposals.js +0 -39
  605. package/dist/db/schema/tables/messages.d.ts +0 -9
  606. package/dist/db/schema/tables/messages.js +0 -41
  607. package/dist/db/schema/tables/namespaces.d.ts +0 -9
  608. package/dist/db/schema/tables/namespaces.js +0 -37
  609. package/dist/db/schema/tables/projects.d.ts +0 -9
  610. package/dist/db/schema/tables/projects.js +0 -31
  611. package/dist/db/schema/tables/users.d.ts +0 -9
  612. package/dist/db/schema/tables/users.js +0 -27
  613. package/dist/db/schema.d.ts +0 -3
  614. package/dist/db/schema.js +0 -11
  615. package/dist/db/supabase.d.ts +0 -9
  616. package/dist/db/supabase.js +0 -24
  617. package/dist/index.d.ts +0 -7
  618. package/dist/index.js +0 -1677
  619. package/dist/vendor/sql.js/sql-wasm.wasm +0 -0
  620. package/dist/webui/server.d.ts +0 -5
  621. package/dist/webui/server.js +0 -642
  622. package/generated/mcp/manifest.json +0 -23
  623. package/generated/mcp/mcp-servers.json +0 -25
  624. package/generated/mcp/mcporter.json +0 -34
  625. package/generated/mcp/openclaw-memory-qmd.json +0 -17
  626. package/generated/mcp/runtime.json +0 -12
  627. package/scripts/README.md +0 -60
  628. package/scripts/build-release.sh +0 -36
  629. package/scripts/check-secrets.js +0 -132
  630. package/scripts/copy-runtime-assets.mjs +0 -26
  631. package/scripts/generate-mcp.mjs +0 -264
  632. package/scripts/github-release.sh +0 -77
  633. package/scripts/init-dirs.mjs +0 -13
  634. package/scripts/install-claude-code.sh +0 -85
  635. package/scripts/install-cursor.sh +0 -56
  636. package/scripts/install-hooks.sh +0 -73
  637. package/scripts/install-interactive.mjs +0 -357
  638. package/scripts/install-opencode.sh +0 -75
  639. package/scripts/install-plugin.mjs +0 -415
  640. package/scripts/install-windsurf.sh +0 -67
  641. package/scripts/remote-preflight.mjs +0 -62
  642. package/scripts/squish-fallback.mjs +0 -132
  643. package/scripts/test-interactive.mjs +0 -131
  644. package/scripts/verify-mcp.mjs +0 -214
  645. package/skills/squish-memory/scripts/install.mjs +0 -335
  646. package/skills/squish-memory/write_skill.js +0 -2
@@ -1,77 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Squish GitHub Release Script
4
- # Run after npm publish to create GitHub release
5
-
6
- # Auto-detect version from package.json
7
- VERSION=$(node -p "require('./package.json').version")
8
- REPO="michielhdoteth/squish"
9
-
10
- echo "Creating GitHub release v$VERSION..."
11
-
12
- # Build binaries for different platforms
13
- echo "Building binaries..."
14
-
15
- # Create temporary directory for release assets
16
- mkdir -p release-assets
17
- cd release-assets
18
-
19
- # Linux x64
20
- echo "Building linux-x64..."
21
- npx pkg ../dist/index.js --targets node18-linux-x64 --output squish-linux-x64
22
- tar -czf "../squish-v${VERSION}-linux-x64.tar.gz" squish-linux-x64 ../dist/ ../config/plugin.json ../README.md ../LICENSE
23
-
24
- # Linux ARM64
25
- echo "Building linux-arm64..."
26
- npx pkg ../dist/index.js --targets node18-linux-arm64 --output squish-linux-arm64
27
- tar -czf "../squish-v${VERSION}-linux-arm64.tar.gz" squish-linux-arm64 ../dist/ ../config/plugin.json ../README.md ../LICENSE
28
-
29
- # macOS ARM64 (Apple Silicon)
30
- echo "Building macos-arm64..."
31
- npx pkg ../dist/index.js --targets node18-macos-arm64 --output squish-macos-arm64
32
- tar -czf "../squish-v${VERSION}-macos-arm64.tar.gz" squish-macos-arm64 ../dist/ ../config/plugin.json ../README.md ../LICENSE
33
-
34
- # Windows x64
35
- echo "Building windows-x64..."
36
- npx pkg ../dist/index.js --targets node18-win-x64 --output squish-windows-x64.exe
37
- zip "../squish-v${VERSION}-windows-x64.zip" squish-windows-x64.exe ../dist/ ../config/plugin.json ../README.md ../LICENSE
38
-
39
- cd ..
40
- rm -rf release-assets
41
-
42
- echo "Binaries created!"
43
-
44
- # Check if gh CLI is available and user is authenticated
45
- if ! command -v gh &> /dev/null; then
46
- echo "❌ GitHub CLI (gh) not installed. Skipping release creation."
47
- echo " Install gh CLI and run this script again to create GitHub release."
48
- echo " Alternatively, create release manually at: https://github.com/$REPO/releases/new?tag=v$VERSION"
49
- exit 1
50
- fi
51
-
52
- # Create GitHub release
53
- echo "Creating GitHub release..."
54
- gh release create "v${VERSION}" \
55
- --title "Squish v${VERSION} - Universal Memory for AI Agents" \
56
- --notes "## What's New in v${VERSION}
57
-
58
- Squish provides universal persistent memory for AI agents with support for MCP, CLI, and HTTP API.
59
-
60
- ### Key Features
61
- - Two-tier memory architecture (QMD search + SQLite/PostgreSQL storage)
62
- - Trigger detection, contradiction resolution, and temporal facts
63
- - Universal API compatible with any AI agent framework
64
- - MCP server integration for Claude Code, OpenClaw, and other MCP clients
65
-
66
- ### Installation
67
- \`\`\`bash
68
- npx squish-install
69
- \`\`\`
70
-
71
- Or visit: https://github.com/michielhdoteth/squish" \
72
- "squish-v${VERSION}-linux-x64.tar.gz" \
73
- "squish-v${VERSION}-linux-arm64.tar.gz" \
74
- "squish-v${VERSION}-macos-arm64.tar.gz" \
75
- "squish-v${VERSION}-windows-x64.zip"
76
-
77
- echo "Release v${VERSION} published!"
@@ -1,13 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { existsSync, mkdirSync } from 'node:fs';
4
- import { homedir } from 'node:os';
5
- import { join } from 'node:path';
6
-
7
- const defaultDir = join(homedir(), '.squish');
8
-
9
- if (!existsSync(defaultDir)) {
10
- mkdirSync(defaultDir, { recursive: true });
11
- }
12
-
13
- console.log(`Squish data directory: ${defaultDir}`);
@@ -1,85 +0,0 @@
1
- #!/bin/bash
2
- # Install Squish hooks for Claude Code
3
- # Run from the squish project directory
4
-
5
- set -e
6
-
7
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
- SQUISH_DIR="${SQUISH_DIR:-$HOME/.squish}"
9
- HOOKS_CONFIG="$SCRIPT_DIR/config/hooks/claude-code-hooks.json"
10
-
11
- echo "Installing Squish hooks for Claude Code..."
12
-
13
- # Create Squish config directory
14
- mkdir -p "$SQUISH_DIR"
15
-
16
- # Copy hook config
17
- if [ -f "$HOOKS_CONFIG" ]; then
18
- cp "$HOOKS_CONFIG" "$SQUISH_DIR/hooks-claude-code.json"
19
- echo "Copied hook config to $SQUISH_DIR/hooks-claude-code.json"
20
- else
21
- echo "ERROR: Hook config not found at $HOOKS_CONFIG"
22
- exit 1
23
- fi
24
-
25
- # Create hooks directory
26
- mkdir -p "$SQUISH_DIR/hooks"
27
-
28
- # Check for Claude Code settings file
29
- SETTINGS_FILE="$HOME/.claude/settings.json"
30
- HOOKS_DIR="$HOME/.claude/hooks/squish"
31
-
32
- if [ -f "$SETTINGS_FILE" ]; then
33
- echo ""
34
- echo "Found Claude Code settings at $SETTINGS_FILE"
35
- echo ""
36
- echo "To enable hooks, add this to your settings.json:"
37
- echo ""
38
- cat << 'SETTINGS_JSON'
39
- {
40
- "hooks": {
41
- "SessionStart": [
42
- { "matcher": "startup", "hooks": [{ "type": "command", "command": "squish", "args": ["hooks", "session-start", "--agent", "claude-code", "--mode", "startup"], "matcher": "startup" }] },
43
- { "matcher": "resume", "hooks": [{ "type": "command", "command": "squish", "args": ["hooks", "session-start", "--agent", "claude-code", "--mode", "resume"], "matcher": "resume" }] },
44
- { "matcher": "compact", "hooks": [{ "type": "command", "command": "squish", "args": ["hooks", "session-start", "--agent", "claude-code", "--mode", "compact"], "matcher": "compact" }] }
45
- ],
46
- "PostToolUse": [
47
- { "hooks": [{ "type": "command", "command": "squish", "args": ["hooks", "post-tool-use", "--agent", "claude-code"], "timeout": 5 }] }
48
- ],
49
- "SessionEnd": [
50
- { "hooks": [{ "type": "command", "command": "squish", "args": ["hooks", "session-end", "--agent", "claude-code"], "timeout": 10 }] }
51
- ],
52
- "PreCompact": [
53
- { "matcher": "auto", "hooks": [{ "type": "command", "command": "squish", "args": ["hooks", "pre-compact", "--agent", "claude-code"], "matcher": "auto" }] }
54
- ]
55
- }
56
- }
57
- SETTINGS_JSON
58
-
59
- echo ""
60
- echo "OR use the simplified approach - add MCP servers for memory:"
61
- echo ""
62
- cat << 'MCP_CONFIG'
63
- {
64
- "mcpServers": {
65
- "squish-memory": {
66
- "command": "squish",
67
- "args": ["run", "mcp"]
68
- }
69
- }
70
- }
71
- MCP_CONFIG
72
- else
73
- echo ""
74
- echo "WARNING: Claude Code settings file not found at $SETTINGS_FILE"
75
- echo "Install Claude Code first, then rerun this script"
76
- fi
77
-
78
- echo ""
79
- echo "Installation complete!"
80
- echo ""
81
- echo "Next steps:"
82
- echo "1. Add MCP server config to your .claude.json or settings.json"
83
- echo "2. Restart Claude Code"
84
- echo "3. Run 'squish health' to verify"
85
- echo ""
@@ -1,56 +0,0 @@
1
- #!/bin/bash
2
- # Install Squish hooks for Cursor
3
- # Run from the squish project directory
4
-
5
- set -e
6
-
7
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
- SQUISH_DIR="${SQUISH_DIR:-$HOME/.squish}"
9
- HOOKS_CONFIG="$SCRIPT_DIR/config/hooks/cursor-hooks.json"
10
-
11
- echo "Installing Squish hooks for Cursor..."
12
-
13
- # Create Squish config directory
14
- mkdir -p "$SQUISH_DIR"
15
-
16
- # Copy hook config
17
- if [ -f "$HOOKS_CONFIG" ]; then
18
- cp "$HOOKS_CONFIG" "$SQUISH_DIR/hooks-cursor.json"
19
- echo "Copied hook config to $SQUISH_DIR/hooks-cursor.json"
20
- else
21
- echo "ERROR: Hook config not found at $HOOKS_CONFIG"
22
- exit 1
23
- fi
24
-
25
- # Check for Cursor MCP config
26
- MCP_FILE="$HOME/.cursor/mcp.json"
27
-
28
- if [ -f "$MCP_FILE" ]; then
29
- echo ""
30
- echo "Found Cursor MCP config at $MCP_FILE"
31
- echo ""
32
- echo "To enable Squish, add squish to your MCP servers:"
33
- else
34
- echo ""
35
- echo "Creating Cursor MCP config..."
36
- mkdir -p "$HOME/.cursor"
37
- cat > "$MCP_FILE" << 'DEFAULT_MCP'
38
- {
39
- "mcpServers": {
40
- "squish": {
41
- "command": "squish",
42
- "args": ["run", "mcp"]
43
- }
44
- }
45
- }
46
- DEFAULT_MCP
47
- echo "Created $MCP_FILE"
48
- fi
49
-
50
- echo ""
51
- echo "Installation complete!"
52
- echo ""
53
- echo "Next steps:"
54
- echo "1. Restart Cursor"
55
- echo "2. Run 'squish health' to verify"
56
- echo ""
@@ -1,73 +0,0 @@
1
- #!/bin/bash
2
- # Install Squish hooks for Claude Code
3
- # Run from the squish project directory
4
-
5
- set -e
6
-
7
- HOOKS_DIR="$HOME/.claude/hooks/squish"
8
- SQUISH_DIR="${SQUISH_DIR:-$HOME/.squish}"
9
-
10
- echo "Installing Squish Claude Code hooks..."
11
-
12
- # Create hooks directory
13
- mkdir -p "$HOOKS_DIR"
14
-
15
- # Copy hook scripts
16
- echo "Copying hook scripts..."
17
- cp -r core/agent-adapters/claude-code/hooks/*.sh "$HOOKS_DIR/"
18
- chmod +x "$HOOKS_DIR"/*.sh
19
-
20
- # Create config file if needed
21
- if [ ! -f "$SQUISH_DIR/config.env" ]; then
22
- mkdir -p "$SQUISH_DIR"
23
- echo "SQUISH_DIR=$SQUISH_DIR" > "$SQUISH_DIR/config.env"
24
- fi
25
-
26
- # Check if squish is in PATH
27
- if ! command -v squish &> /dev/null; then
28
- echo ""
29
- echo "WARNING: squish not found in PATH"
30
- echo "Add squish to your PATH or set SQUISH_DIR explicitly"
31
- echo ""
32
- fi
33
-
34
- # Add to settings.json (merge with existing)
35
- SETTINGS_FILE="$HOME/.claude/settings.json"
36
- HOOKS_JSON='{
37
- "hooks": {
38
- "SessionStart": [
39
- { "matcher": "startup", "hooks": [{ "type": "command", "command": "'"$HOOKS_DIR"'/session-start.sh", "matcher": "startup" }] },
40
- { "matcher": "resume", "hooks": [{ "type": "command", "command": "'"$HOOKS_DIR"'/session-start.sh", "matcher": "resume" }] },
41
- { "matcher": "compact", "hooks": [{ "type": "command", "command": "'"$HOOKS_DIR"'/session-start.sh", "matcher": "compact" }] }
42
- ],
43
- "PreCompact": [
44
- { "matcher": "auto", "hooks": [{ "type": "command", "command": "'"$HOOKS_DIR"'/precompact-handover.sh", "matcher": "auto" }] }
45
- ],
46
- "PostToolUse": [
47
- { "hooks": [{ "type": "command", "command": "'"$HOOKS_DIR"'/post-tool-use.sh", "timeout": 5 }] }
48
- ],
49
- "SessionEnd": [
50
- { "hooks": [{ "type": "command", "command": "'"$HOOKS_DIR"'/session-end.sh", "timeout": 10 }] }
51
- ]
52
- }
53
- }'
54
-
55
- if [ -f "$SETTINGS_FILE" ]; then
56
- # Backup existing settings
57
- cp "$SETTINGS_FILE" "$SETTINGS_FILE.bak"
58
- echo "Backed up settings.json to settings.json.bak"
59
- # Note: Full merge would require jq, keeping it simple
60
- echo "Manual merge needed - see core/agent-adapters/claude-code/README.md"
61
- else
62
- echo "$HOOKS_JSON" > "$SETTINGS_FILE"
63
- fi
64
-
65
- echo ""
66
- echo "Installation complete!"
67
- echo ""
68
- echo "Next steps:"
69
- echo "1. Verify hooks directory: ls $HOOKS_DIR"
70
- echo "2. Update ~/.claude/settings.json with the hooks config"
71
- echo "3. Restart Claude Code"
72
- echo ""
73
- echo "For troubleshooting, see: core/agent-adapters/claude-code/README.md"
@@ -1,357 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Squish MCP Installer
5
- * Installs Squish MCP configuration for various AI clients
6
- * Supports: Claude Code, OpenCode, Codex, Cursor, VS Code, Windsurf
7
- *
8
- * Usage:
9
- * bun run install # Interactive wizard
10
- * bun run install --all # Auto-install for all detected clients
11
- * bun run install --clients=claude-code,opencode # Specific clients
12
- * bun run install --dry-run # Preview without installing
13
- */
14
-
15
- import { intro, outro, confirm, multiselect, select, isCancel, cancel, spinner, note } from '@clack/prompts';
16
- import picocolors from 'picocolors';
17
- import fs from "node:fs";
18
- import os from "node:os";
19
- import path from "node:path";
20
-
21
- const root = process.cwd();
22
- const manifestPath = path.join(root, "config", "plugin-manifest.json");
23
-
24
- const c = picocolors;
25
-
26
- const icons = {
27
- squish: "🐙",
28
- check: "✓",
29
- cross: "✗",
30
- arrow: "→",
31
- dot: "●",
32
- mcp: "🔌",
33
- settings: "⚙️"
34
- };
35
-
36
- // Client config file locations
37
- const CLIENT_CONFIGS = {
38
- "claude-code": { dir: path.join(os.homedir(), ".claude"), file: "mcp.json" },
39
- opencode: { dir: path.join(os.homedir(), ".config", "opencode"), file: "mcp-servers.json" },
40
- codex: { dir: path.join(os.homedir(), ".codex"), file: "mcp-servers.json" },
41
- cursor: { dir: path.join(os.homedir(), ".cursor"), file: "mcp.json" },
42
- vscode: { dir: path.join(os.homedir(), ".vscode", "mcp"), file: "servers.json" },
43
- windsurf: { dir: path.join(os.homedir(), ".windsurf"), file: "mcp-servers.json" }
44
- };
45
-
46
- // CLI argument parsing
47
- function parseArgs() {
48
- const args = process.argv.slice(2);
49
- const options = {
50
- all: false,
51
- clients: [],
52
- dryRun: false,
53
- help: false
54
- };
55
-
56
- for (const arg of args) {
57
- if (arg === '--all') options.all = true;
58
- else if (arg === '--dry-run') options.dryRun = true;
59
- else if (arg === '--help' || arg === '-h') options.help = true;
60
- else if (arg.startsWith('--clients=')) {
61
- options.clients = arg.slice(10).split(',').map(c => c.trim());
62
- }
63
- }
64
-
65
- return options;
66
- }
67
-
68
- function printHelp() {
69
- printLogo();
70
- console.log(c.white("Usage:"));
71
- console.log(` ${c.cyan("bun run install")} # Interactive wizard`);
72
- console.log(` ${c.cyan("bun run install --all")} # Auto-install for all detected clients`);
73
- console.log(` ${c.cyan("bun run install --clients=claude-code,opencode")} # Specific clients`);
74
- console.log(` ${c.cyan("bun run install --dry-run")} # Preview without installing\n`);
75
- console.log(c.white("Options:"));
76
- console.log(` ${c.cyan("--all")} Install for all supported clients`);
77
- console.log(` ${c.cyan("--clients=")} Comma-separated list of clients`);
78
- console.log(` ${c.cyan("--dry-run")} Preview changes without installing`);
79
- console.log(` ${c.cyan("--help")} Show this help message\n`);
80
- console.log(c.white("Supported clients:"));
81
- console.log(` claude-code, opencode, codex, cursor, vscode, windsurf`);
82
- }
83
-
84
- function printLogo() {
85
- console.log(c.cyan(`
86
- ██████╗ ██████╗ ██╗ ██╗██╗███████╗██╗ ██╗
87
- ██╔════╝██╔═══██╗██║ ██║██║██╔════╝██║ ██║
88
- ██████╗██║ ██║██║ ██║██║███████╗███████║
89
- ╚════██║██║ ██║██║ ██║██║╚════██║██╔══██║
90
- ██████║╚██████╔╝╚██████╔╝██║███████║██║ ██║
91
- ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝╚══════╝╚═╝ ╚═╝
92
- `));
93
- console.log(c.gray(" Universal Memory System for AI Agents\n"));
94
- }
95
-
96
- function loadManifest() {
97
- if (!fs.existsSync(manifestPath)) {
98
- return null;
99
- }
100
- try {
101
- return JSON.parse(fs.readFileSync(manifestPath, "utf8"));
102
- } catch {
103
- return null;
104
- }
105
- }
106
-
107
- function detectClients() {
108
- const detected = {};
109
- for (const [client, config] of Object.entries(CLIENT_CONFIGS)) {
110
- const configPath = path.join(config.dir, config.file);
111
- detected[client] = fs.existsSync(config.dir);
112
- }
113
- return detected;
114
- }
115
-
116
- function expandPath(filePath) {
117
- if (filePath.startsWith("~")) {
118
- return path.join(os.homedir(), filePath.slice(2));
119
- }
120
- return filePath;
121
- }
122
-
123
- function ensureDir(dirPath) {
124
- if (!fs.existsSync(dirPath)) {
125
- fs.mkdirSync(dirPath, { recursive: true });
126
- }
127
- }
128
-
129
- function backupFile(filePath) {
130
- if (fs.existsSync(filePath)) {
131
- const backupPath = `${filePath}.bak.${Date.now()}`;
132
- fs.copyFileSync(filePath, backupPath);
133
- console.log(c.gray(` Backed up: ${backupPath}`));
134
- }
135
- }
136
-
137
- // Generate MCP config for each client format
138
- function generateMCPConfig(client, manifest) {
139
- const target = manifest.targets[client];
140
- if (!target) return null;
141
-
142
- // OpenCode format: { "server-name": { type, command, enabled } }
143
- if (target.format === "opencode") {
144
- return {
145
- [target.serverName]: {
146
- type: target.type === "local" ? "local" : "stdio",
147
- command: Array.isArray(target.command) ? target.command : [target.command],
148
- enabled: target.enabled !== false
149
- }
150
- };
151
- }
152
-
153
- // Standard MCP format: { mcpServers: { "server-name": { type, command, args, env } } }
154
- return {
155
- mcpServers: {
156
- [target.serverName]: {
157
- command: target.command,
158
- args: target.args || ["--stdio"],
159
- env: target.env || {}
160
- }
161
- }
162
- };
163
- }
164
-
165
- // Merge MCP config with existing config
166
- function mergeMCPConfig(client, manifest, options = {}) {
167
- const target = manifest.targets[client];
168
- if (!target) return { error: `Unknown client: ${client}` };
169
-
170
- const configInfo = CLIENT_CONFIGS[client];
171
- const configPath = expandPath(path.join(configInfo.dir, configInfo.file));
172
-
173
- // Generate new config
174
- const newConfig = generateMCPConfig(client, manifest);
175
- if (!newConfig) return { error: "Failed to generate config" };
176
-
177
- ensureDir(configInfo.dir);
178
-
179
- let existingConfig = {};
180
- if (fs.existsSync(configPath)) {
181
- try {
182
- existingConfig = JSON.parse(fs.readFileSync(configPath, "utf8"));
183
- } catch {
184
- existingConfig = {};
185
- }
186
- }
187
-
188
- // Merge based on format
189
- let merged;
190
- if (target.format === "opencode") {
191
- // OpenCode format: merge at root level
192
- merged = { ...existingConfig, ...newConfig };
193
- } else {
194
- // Standard format: merge under mcpServers
195
- merged = { ...existingConfig };
196
- if (!merged.mcpServers) merged.mcpServers = {};
197
- merged.mcpServers = { ...merged.mcpServers, ...newConfig.mcpServers };
198
- }
199
-
200
- // Write config
201
- if (!options.dryRun) {
202
- backupFile(configPath);
203
- fs.writeFileSync(configPath, JSON.stringify(merged, null, 2));
204
- }
205
-
206
- return { ok: true, configPath, merged };
207
- }
208
-
209
- function getClientChoices(manifest, detected) {
210
- if (!manifest || !manifest.targets) return [];
211
-
212
- const clientNames = {
213
- "claude-code": "Claude Code",
214
- opencode: "OpenCode",
215
- codex: "Codex",
216
- cursor: "Cursor",
217
- vscode: "VS Code",
218
- windsurf: "Windsurf"
219
- };
220
-
221
- return Object.keys(manifest.targets).map(client => {
222
- const isInstalled = detected[client];
223
- const name = clientNames[client] || client;
224
- let label = name;
225
- if (isInstalled) label += ` ${c.green(icons.check)}`;
226
- return {
227
- value: client,
228
- label: label,
229
- hint: isInstalled ? "Config found" : "Not detected"
230
- };
231
- });
232
- }
233
-
234
- async function main() {
235
- const opts = parseArgs();
236
-
237
- if (opts.help) {
238
- printHelp();
239
- process.exit(0);
240
- }
241
-
242
- const manifest = loadManifest();
243
- if (!manifest) {
244
- console.log(c.red("Error: Plugin manifest not found"));
245
- process.exit(1);
246
- }
247
-
248
- const detected = detectClients();
249
- const choices = getClientChoices(manifest, detected);
250
-
251
- let clients;
252
-
253
- // Non-interactive mode
254
- if (opts.all) {
255
- // Install for all supported clients
256
- clients = choices.map(c => c.value);
257
- printLogo();
258
- console.log(c.cyan(`Auto-installing for all ${clients.length} clients...\n`));
259
- } else if (opts.clients.length > 0) {
260
- // Install for specific clients
261
- clients = opts.clients;
262
- printLogo();
263
- console.log(c.cyan(`Installing for: ${clients.join(', ')}\n`));
264
- } else if (process.stdin.isTTY) {
265
- // Interactive mode
266
- printLogo();
267
- intro(c.cyan(`${icons.squish} Squish MCP Installer`));
268
-
269
- // Select clients to install
270
- clients = await multiselect({
271
- message: 'Which AI agents do you want to install Squish MCP for?',
272
- options: choices,
273
- required: false
274
- });
275
-
276
- if (isCancel(clients) || !clients || clients.length === 0) {
277
- console.log(c.yellow("No clients selected. Exiting."));
278
- process.exit(0);
279
- }
280
- } else {
281
- // Non-interactive without flags - show help
282
- printHelp();
283
- process.exit(0);
284
- }
285
-
286
- // Dry run mode
287
- if (opts.dryRun) {
288
- console.log(c.yellow("\n--- DRY RUN MODE ---\n"));
289
- for (const client of clients) {
290
- const configInfo = CLIENT_CONFIGS[client];
291
- console.log(` Would install for ${client}:`);
292
- console.log(` Config: ${configInfo.dir}/${configInfo.file}`);
293
- }
294
- console.log("");
295
- process.exit(0);
296
- }
297
-
298
- // Non-interactive: skip review/confirm
299
- const isInteractive = opts.all || opts.clients.length === 0 && process.stdin.isTTY;
300
-
301
- if (isInteractive) {
302
- // Review
303
- let summary = `${c.white("Installation Summary:")}\n\n`;
304
- summary += `${c.cyan("Installing Squish MCP for:")}\n`;
305
- clients.forEach(client => {
306
- const configInfo = CLIENT_CONFIGS[client];
307
- summary += ` ${icons.check} ${client}\n`;
308
- summary += ` ${c.gray(configInfo.dir)}\n`;
309
- });
310
-
311
- note(summary, 'Review');
312
-
313
- const shouldInstall = await confirm({
314
- message: 'Proceed with installation?',
315
- initialValue: true
316
- });
317
-
318
- if (isCancel(shouldInstall) || !shouldInstall) {
319
- console.log(c.yellow("Installation cancelled"));
320
- process.exit(0);
321
- }
322
- }
323
-
324
- // Install
325
- const s = spinner();
326
- s.start('Installing MCP configurations...');
327
-
328
- const results = [];
329
- for (const client of clients) {
330
- const result = mergeMCPConfig(client, manifest);
331
- results.push({ client, ...result });
332
- }
333
-
334
- const errors = results.filter(r => r.error);
335
- const success = results.filter(r => r.ok);
336
-
337
- if (errors.length > 0) {
338
- s.stop(c.red(`${icons.cross} Some installations failed`));
339
- errors.forEach(e => console.log(c.red(` ${e.client}: ${e.error}`)));
340
- } else {
341
- s.stop(c.green(`${icons.check} Installed for ${success.length} client(s)`));
342
- }
343
-
344
- // Next steps
345
- console.log();
346
- console.log(c.white("What's next?"));
347
- console.log(` ${c.cyan(icons.arrow)} Restart your AI assistant(s)`);
348
- console.log(` ${c.cyan(icons.arrow)} Try: squish remember "Your first memory"`);
349
- console.log();
350
-
351
- outro(c.green(`${icons.check} Installation Complete!`));
352
- }
353
-
354
- main().catch((err) => {
355
- console.log(c.red(`Fatal error: ${err.message}`));
356
- process.exit(1);
357
- });