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,75 +0,0 @@
1
- #!/bin/bash
2
- # Install Squish hooks for OpenCode
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/opencode-hooks.json"
10
-
11
- echo "Installing Squish hooks for OpenCode..."
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-opencode.json"
19
- echo "Copied hook config to $SQUISH_DIR/hooks-opencode.json"
20
- else
21
- echo "ERROR: Hook config not found at $HOOKS_CONFIG"
22
- exit 1
23
- fi
24
-
25
- # Check for OpenCode settings file
26
- SETTINGS_FILE="$HOME/.opencode/settings.json"
27
-
28
- if [ -f "$SETTINGS_FILE" ]; then
29
- echo ""
30
- echo "Found OpenCode settings at $SETTINGS_FILE"
31
- echo ""
32
- echo "To enable Squish memory, add this to your settings.json:"
33
- echo ""
34
- cat << 'SETTINGS_JSON'
35
- {
36
- "mcpServers": {
37
- "squish": {
38
- "command": "squish",
39
- "args": ["run", "mcp"]
40
- }
41
- },
42
- "memory": {
43
- "enabled": true,
44
- "autoCapture": true
45
- }
46
- }
47
- SETTINGS_JSON
48
- else
49
- echo ""
50
- echo "Creating default OpenCode settings..."
51
- mkdir -p "$HOME/.opencode"
52
- cat > "$SETTINGS_FILE" << 'DEFAULT_SETTINGS'
53
- {
54
- "mcpServers": {
55
- "squish": {
56
- "command": "squish",
57
- "args": ["run", "mcp"]
58
- }
59
- },
60
- "memory": {
61
- "enabled": true,
62
- "autoCapture": true
63
- }
64
- }
65
- DEFAULT_SETTINGS
66
- echo "Created $SETTINGS_FILE"
67
- fi
68
-
69
- echo ""
70
- echo "Installation complete!"
71
- echo ""
72
- echo "Next steps:"
73
- echo "1. Restart OpenCode"
74
- echo "2. Run 'squish health' to verify"
75
- echo ""
@@ -1,415 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import fs from "node:fs";
4
- import path from "node:path";
5
- import os from "node:os";
6
- import { spawnSync } from "node:child_process";
7
-
8
- const root = process.cwd();
9
- const manifestPath = path.join(root, "config", "plugin-manifest.json");
10
-
11
- // Client default directories
12
- const CLIENT_DIRS = {
13
- "claude-code": path.join(os.homedir(), ".claude"),
14
- opencode: path.join(os.homedir(), ".config", "opencode"),
15
- codex: path.join(os.homedir(), ".codex"),
16
- cursor: path.join(os.homedir(), ".cursor"),
17
- vscode: path.join(os.homedir(), ".vscode", "mcp"),
18
- windsurf: path.join(os.homedir(), ".windsurf"),
19
- openclaw: path.join(os.homedir(), ".openclaw")
20
- };
21
-
22
- // Must-have clients (launch priority)
23
- const MUST_HAVE = ["claude-code", "openclaw", "opencode"];
24
- const NICE_TO_HAVE = ["codex", "cursor", "vscode", "windsurf"];
25
-
26
- function loadManifest() {
27
- if (!fs.existsSync(manifestPath)) {
28
- throw new Error(`Plugin manifest not found: ${manifestPath}`);
29
- }
30
- return JSON.parse(fs.readFileSync(manifestPath, "utf8"));
31
- }
32
-
33
- function parseArgs(argv) {
34
- const args = {
35
- client: [],
36
- dryRun: false,
37
- verify: false,
38
- uninstall: false,
39
- strict: false,
40
- skipDeps: false
41
- };
42
-
43
- const argHandlers = {
44
- "--dry-run": () => args.dryRun = true,
45
- "-d": () => args.dryRun = true,
46
- "--verify": () => args.verify = true,
47
- "-v": () => args.verify = true,
48
- "--uninstall": () => args.uninstall = true,
49
- "-u": () => args.uninstall = true,
50
- "--strict": () => args.strict = true,
51
- "--skip-deps": () => args.skipDeps = true,
52
- "--client": (i) => {
53
- const clientList = argv[i + 1];
54
- args.client = clientList.split(",").map(c => c.trim());
55
- },
56
- "-c": (i) => {
57
- const clientList = argv[i + 1];
58
- args.client = clientList.split(",").map(c => c.trim());
59
- },
60
- };
61
-
62
- for (let i = 2; i < argv.length; i++) {
63
- const token = argv[i];
64
- const handler = argHandlers[token];
65
-
66
- if (handler) {
67
- if (token === "--client" || token === "-c") {
68
- handler(i);
69
- i++;
70
- } else {
71
- handler();
72
- }
73
- } else {
74
- throw new Error(`Unknown argument: ${token}`);
75
- }
76
- }
77
-
78
- return args;
79
- }
80
-
81
- function ensureDir(dirPath) {
82
- if (!fs.existsSync(dirPath)) {
83
- fs.mkdirSync(dirPath, { recursive: true });
84
- }
85
- }
86
-
87
- function expandHomePath(filePath) {
88
- if (filePath.startsWith("~")) {
89
- return path.join(os.homedir(), filePath.slice(2));
90
- }
91
- return filePath;
92
- }
93
-
94
- function backupFile(filePath) {
95
- if (fs.existsSync(filePath)) {
96
- const backupPath = `${filePath}.bak`;
97
- fs.copyFileSync(filePath, backupPath);
98
- console.log(`[INSTALL] Backed up: ${filePath} → ${backupPath}`);
99
- }
100
- }
101
-
102
- function copyFile(sourcePath, targetPath, options = {}) {
103
- if (!fs.existsSync(sourcePath)) {
104
- throw new Error(`Source file not found: ${sourcePath}`);
105
- }
106
-
107
- if (options.backup !== false) {
108
- backupFile(targetPath);
109
- }
110
-
111
- if (!options.dryRun) {
112
- ensureDir(path.dirname(targetPath));
113
- fs.copyFileSync(sourcePath, targetPath);
114
- }
115
-
116
- const mode = options.dryRun ? "DRY_RUN" : "COPIED";
117
- console.log(`[INSTALL] ${mode}: ${sourcePath} → ${targetPath}`);
118
- }
119
-
120
- function runCommand(command, args = [], options = {}) {
121
- const mode = options.dryRun ? "[DRY_RUN] Would run:" : "Running:";
122
- console.log(`[INSTALL] ${mode} ${command} ${args.join(" ")}`);
123
-
124
- if (options.dryRun) {
125
- return { status: 0, stdout: "", stderr: "" };
126
- }
127
-
128
- const result = spawnSync(command, args, {
129
- encoding: "utf8",
130
- stdio: options.silent ? "pipe" : "inherit",
131
- timeout: options.timeout || 30000
132
- });
133
-
134
- return result;
135
- }
136
-
137
- function checkDependencies(manifest, options) {
138
- console.log("\n[DEP] Checking dependencies...");
139
-
140
- if (options.skipDeps) {
141
- console.log("[DEP] Skipping dependency check (--skip-deps)");
142
- return true;
143
- }
144
-
145
- // Run dependency manager
146
- const depArgs = options.dryRun ? ["--dry-run"] : [];
147
- const depResult = runCommand(
148
- process.execPath,
149
- [path.join(root, "scripts", "dependency-manager.mjs"), ...depArgs],
150
- { ...options, silent: true }
151
- );
152
-
153
- if (depResult.status !== 0) {
154
- console.error("[DEP] Dependency check failed:");
155
- console.error(depResult.stderr);
156
- return false;
157
- }
158
-
159
- console.log(depResult.stdout);
160
- return true;
161
- }
162
-
163
- function installForClient(client, manifest, options) {
164
- const targetConfig = manifest.targets[client];
165
- if (!targetConfig) {
166
- throw new Error(`Unsupported client: ${client}. Supported: ${Object.keys(manifest.targets).join(", ")}`);
167
- }
168
-
169
- console.log(`\n[INSTALL] Installing for ${client}...`);
170
-
171
- const install = targetConfig.install;
172
- if (!install) {
173
- console.log(`[INSTALL] ⚠ No install steps defined for ${client}, skipping`);
174
- return true;
175
- }
176
-
177
- try {
178
- if (install.copy) {
179
- for (const item of install.copy) {
180
- const sourcePath = path.join(root, item.from);
181
- const targetPath = expandHomePath(item.to);
182
- copyFile(sourcePath, targetPath, options);
183
- }
184
- }
185
-
186
- if (install.command) {
187
- runCommand(install.command, [], { dryRun: options.dryRun });
188
- }
189
-
190
- console.log(`[INSTALL] ✓ ${client} installation complete`);
191
- return true;
192
-
193
- } catch (error) {
194
- console.error(`[INSTALL] ✗ Failed to install for ${client}:`, error.message);
195
- return false;
196
- }
197
- }
198
-
199
- function verifyClient(client, manifest) {
200
- const targetConfig = manifest.targets[client];
201
- if (!targetConfig || !targetConfig.verify) {
202
- console.log(`[VERIFY] ⚠ No verification steps for ${client}`);
203
- return { ok: true, message: "No verification defined" };
204
- }
205
-
206
- console.log(`[VERIFY] Verifying ${client} installation...`);
207
- const verify = targetConfig.verify;
208
-
209
- try {
210
- if (verify.fileExists) {
211
- const filePath = expandHomePath(verify.fileExists);
212
- if (!fs.existsSync(filePath)) {
213
- return { ok: false, error: `File not found: ${filePath}` };
214
- }
215
- console.log(`[VERIFY] ✓ File exists: ${filePath}`);
216
- }
217
-
218
- if (verify.toolCheck) {
219
- console.log(`[VERIFY] Testing tool: ${verify.toolCheck}`);
220
- const result = spawnSync(
221
- process.execPath,
222
- [path.join(root, "dist", "commands", "mcp-server.cjs"), "--health"],
223
- { encoding: "utf8", timeout: 10000 }
224
- );
225
-
226
- if (result.status !== 0) {
227
- return { ok: false, error: "MCP server health check failed" };
228
- }
229
- console.log(`[VERIFY] ✓ MCP server healthy`);
230
- }
231
-
232
- return { ok: true, message: "Verification passed" };
233
-
234
- } catch (error) {
235
- return { ok: false, error: error.message };
236
- }
237
- }
238
-
239
- function uninstallClient(client, manifest, options) {
240
- const targetConfig = manifest.targets[client];
241
- if (!targetConfig) {
242
- throw new Error(`Unsupported client: ${client}`);
243
- }
244
-
245
- console.log(`\n[UNINSTALL] Removing ${client} configuration...`);
246
- const install = targetConfig.install;
247
-
248
- if (!install || !install.copy) {
249
- console.log(`[UNINSTALL] ⚠ No files to remove for ${client}`);
250
- return true;
251
- }
252
-
253
- try {
254
- for (const item of install.copy) {
255
- const targetPath = expandHomePath(item.to);
256
-
257
- if (fs.existsSync(targetPath)) {
258
- if (!options.dryRun) {
259
- try {
260
- fs.unlinkSync(targetPath);
261
- } catch (e) {
262
- if (fs.statSync(targetPath).isDirectory()) {
263
- console.log(`[UNINSTALL] Skipping directory: ${targetPath} (manual removal required)`);
264
- continue;
265
- }
266
- throw e;
267
- }
268
- }
269
- console.log(`[UNINSTALL] ${options.dryRun ? "[DRY_RUN] Would remove:" : "Removed"}: ${targetPath}`);
270
- } else {
271
- console.log(`[UNINSTALL] Not found: ${targetPath}`);
272
- }
273
- }
274
-
275
- return true;
276
-
277
- } catch (error) {
278
- console.error(`[UNINSTALL] ✗ Failed to uninstall ${client}:`, error.message);
279
- return false;
280
- }
281
- }
282
-
283
- function detectInstalledClients() {
284
- const detected = {};
285
- for (const [client, dir] of Object.entries(CLIENT_DIRS)) {
286
- try {
287
- detected[client] = fs.existsSync(dir);
288
- } catch {
289
- detected[client] = false;
290
- }
291
- }
292
- return detected;
293
- }
294
-
295
- function main() {
296
- const args = parseArgs(process.argv);
297
- const manifest = loadManifest();
298
-
299
- console.log(`[INSTALL] Squish Universal Plugin Installer v${manifest.version}`);
300
- console.log(`[INSTALL] Mode: ${args.dryRun ? "DRY_RUN" : args.verify ? "VERIFY" : args.uninstall ? "UNINSTALL" : "INSTALL"}`);
301
-
302
- try {
303
- // Verify mode
304
- if (args.verify) {
305
- let allOk = true;
306
- const clientsToVerify = args.client.length > 0
307
- ? args.client
308
- : [...MUST_HAVE, ...NICE_TO_HAVE];
309
-
310
- for (const client of clientsToVerify) {
311
- const result = verifyClient(client, manifest);
312
- if (!result.ok) {
313
- console.error(`[VERIFY] ✗ ${client}: ${result.error}`);
314
- allOk = false;
315
- } else {
316
- console.log(`[VERIFY] ✓ ${client}: ${result.message}`);
317
- }
318
- }
319
-
320
- process.exit(allOk ? 0 : 1);
321
- return;
322
- }
323
-
324
- // Uninstall mode
325
- if (args.uninstall) {
326
- if (args.client.length === 0) {
327
- throw new Error("--uninstall requires --client specification");
328
- }
329
-
330
- let allOk = true;
331
- for (const client of args.client) {
332
- const ok = uninstallClient(client, manifest, args);
333
- if (!ok) allOk = false;
334
- }
335
-
336
- process.exit(allOk ? 0 : 1);
337
- return;
338
- }
339
-
340
- // Install mode
341
-
342
- // 1. Check dependencies
343
- if (!args.skipDeps && !checkDependencies(manifest, args)) {
344
- process.exit(1);
345
- return;
346
- }
347
-
348
- // 2. Determine client list
349
- let clientsToInstall = args.client;
350
- if (clientsToInstall.length === 0) {
351
- console.log("[INSTALL] No clients specified, use --client=<client> or --client=all");
352
- console.log(`[INSTALL] Supported clients: ${Object.keys(CLIENT_DIRS).join(", ")}`);
353
- console.log(`[INSTALL] Must-have: ${MUST_HAVE.join(", ")}`);
354
- console.log(`[INSTALL] Nice-to-have: ${NICE_TO_HAVE.join(", ")}`);
355
- process.exit(1);
356
- return;
357
- }
358
-
359
- if (clientsToInstall.includes("all")) {
360
- clientsToInstall = [...MUST_HAVE, ...NICE_TO_HAVE];
361
- }
362
-
363
- // 3. Validate all clients
364
- const unknown = clientsToInstall.filter(c => !manifest.targets[c]);
365
- if (unknown.length > 0) {
366
- console.error(`[INSTALL] Unknown clients: ${unknown.join(", ")}`);
367
- process.exit(1);
368
- return;
369
- }
370
-
371
- // 4. Install each client
372
- let allOk = true;
373
- for (const client of clientsToInstall) {
374
- const ok = installForClient(client, manifest, args);
375
- if (!ok) allOk = false;
376
- }
377
-
378
- // 5. Post-install summary
379
- console.log("\n[INSTALL] ================================");
380
- console.log(`[INSTALL] ${allOk ? "✓" : "✗"} Installation ${allOk ? "complete" : "completed with errors"}`);
381
-
382
- if (allOk && !args.dryRun) {
383
- console.log("\n[INSTALL] Next steps:");
384
-
385
- for (const client of clientsToInstall) {
386
- const targetConfig = manifest.targets[client];
387
- console.log(`\n ${client}:`);
388
-
389
- if (client === "claude-code") {
390
- console.log(" → Restart Claude Code if running");
391
- console.log(" → The plugin will auto-activate on next session");
392
- } else if (client === "openclaw") {
393
- console.log(" → Start OpenClaw agent");
394
- console.log(" → Memory backend is now active");
395
- console.log(" → First sync may take a minute");
396
- } else {
397
- console.log(" → Restart your MCP client");
398
- console.log(" → Tools should appear automatically");
399
- }
400
- }
401
-
402
- console.log("\n[INSTALL] Verify with:");
403
- console.log(` npx squish-memory install-plugin --client=${clientsToInstall[0]} --verify`);
404
- console.log("\n[INSTALL] Get help: npx squish-memory install-plugin --help");
405
- }
406
-
407
- process.exit(allOk ? 0 : 1);
408
-
409
- } catch (error) {
410
- console.error("[INSTALL] Fatal error:", error.message);
411
- process.exit(1);
412
- }
413
- }
414
-
415
- main();
@@ -1,67 +0,0 @@
1
- #!/bin/bash
2
- # Install Squish hooks for Windsurf
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/windsurf-hooks.json"
10
-
11
- echo "Installing Squish hooks for Windsurf..."
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-windsurf.json"
19
- echo "Copied hook config to $SQUISH_DIR/hooks-windsurf.json"
20
- else
21
- echo "ERROR: Hook config not found at $HOOKS_CONFIG"
22
- exit 1
23
- fi
24
-
25
- # Check for Windsurf config
26
- CONFIG_FILE="$HOME/.windsurf/config.json"
27
-
28
- if [ -f "$CONFIG_FILE" ]; then
29
- echo ""
30
- echo "Found Windsurf config at $CONFIG_FILE"
31
- echo ""
32
- echo "To enable Squish memory, add to your config:"
33
- echo ""
34
- cat << 'CONFIG_JSON'
35
- {
36
- "mcpServers": {
37
- "squish": {
38
- "command": "squish",
39
- "args": ["run", "mcp"]
40
- }
41
- }
42
- }
43
- CONFIG_JSON
44
- else
45
- echo ""
46
- echo "Creating default Windsurf config..."
47
- mkdir -p "$HOME/.windsurf"
48
- cat > "$CONFIG_FILE" << 'DEFAULT_CONFIG'
49
- {
50
- "mcpServers": {
51
- "squish": {
52
- "command": "squish",
53
- "args": ["run", "mcp"]
54
- }
55
- }
56
- }
57
- DEFAULT_CONFIG
58
- echo "Created $CONFIG_FILE"
59
- fi
60
-
61
- echo ""
62
- echo "Installation complete!"
63
- echo ""
64
- echo "Next steps:"
65
- echo "1. Restart Windsurf"
66
- echo "2. Run 'squish health' to verify"
67
- echo ""
@@ -1,62 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import fs from "node:fs";
4
- import path from "node:path";
5
-
6
- const root = process.cwd();
7
- const policyPath = path.join(root, "config", "remote-memory-policy.json");
8
-
9
- function fail(message) {
10
- process.stderr.write(`${message}\n`);
11
- process.exit(1);
12
- }
13
-
14
- function warn(message) {
15
- process.stderr.write(`[warn] ${message}\n`);
16
- }
17
-
18
- function readPolicy() {
19
- if (!fs.existsSync(policyPath)) {
20
- fail(`Missing policy file: ${policyPath}`);
21
- }
22
- try {
23
- return JSON.parse(fs.readFileSync(policyPath, "utf8"));
24
- } catch (error) {
25
- fail(`Invalid policy JSON: ${String(error)}`);
26
- }
27
- }
28
-
29
- function main() {
30
- const policy = readPolicy();
31
- const required = Array.isArray(policy.requiredEnv) ? policy.requiredEnv : [];
32
-
33
- const missing = required.filter((key) => {
34
- const value = process.env[key];
35
- return !value || value.trim().length === 0;
36
- });
37
-
38
- if (missing.length > 0) {
39
- fail(`Remote preflight failed: missing required env vars: ${missing.join(", ")}`);
40
- }
41
-
42
- const provider = process.env.SQUISH_EMBEDDINGS_PROVIDER || "local";
43
- if (!["local", "openai", "ollama", "none", "hybrid", "qmd"].includes(provider)) {
44
- fail(`Remote preflight failed: invalid SQUISH_EMBEDDINGS_PROVIDER='${provider}'`);
45
- }
46
-
47
- if (provider === "openai" && !process.env.SQUISH_OPENAI_API_KEY) {
48
- warn("SQUISH_EMBEDDINGS_PROVIDER=openai but SQUISH_OPENAI_API_KEY is missing");
49
- }
50
-
51
- process.stdout.write(
52
- `${JSON.stringify({
53
- success: true,
54
- mode: "remote",
55
- requiredEnvChecked: required,
56
- embeddingsProvider: provider,
57
- memoryPolicyVersion: policy.version
58
- })}\n`
59
- );
60
- }
61
-
62
- main();