squish-memory 1.0.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (704) hide show
  1. package/.env.example +146 -0
  2. package/CHANGELOG.md +202 -0
  3. package/README.md +192 -287
  4. package/{scripts → bin}/dependency-manager.mjs +217 -217
  5. package/{scripts → bin}/detect-clients.mjs +78 -78
  6. package/bin/install-interactive.mjs +321 -0
  7. package/bin/squish-mcp.mjs +46 -0
  8. package/bin/squish.mjs +33 -0
  9. package/config/mcp-migration-map.json +1 -6
  10. package/config/mcp-mode-semantics.json +10 -12
  11. package/config/mcp-remote-auth.json +3 -26
  12. package/config/mcp-universal.schema.json +5 -35
  13. package/config/settings.json +78 -22
  14. package/config.js +5 -0
  15. package/config.ts +218 -0
  16. package/core/adapters/config/claude-code.ts +133 -0
  17. package/core/adapters/config/cursor.ts +90 -0
  18. package/core/adapters/config/opencode.ts +89 -0
  19. package/core/adapters/config/windsurf.ts +90 -0
  20. package/core/adapters/index.ts +102 -0
  21. package/core/adapters/timeline.ts +116 -0
  22. package/core/adapters/types.ts +166 -0
  23. package/core/agent-preferences.ts +140 -0
  24. package/core/algorithms/analytics/token-estimator.ts +216 -0
  25. package/core/algorithms/detection/hash-filters.ts +260 -0
  26. package/core/algorithms/detection/semantic-ranker.ts +194 -0
  27. package/core/algorithms/detection/two-stage-detector.ts +421 -0
  28. package/core/algorithms/handlers/approve-merge.ts +215 -0
  29. package/core/algorithms/handlers/detect-duplicates.ts +192 -0
  30. package/core/algorithms/handlers/get-stats.ts +132 -0
  31. package/core/algorithms/handlers/list-proposals.ts +130 -0
  32. package/core/algorithms/handlers/preview-merge.ts +139 -0
  33. package/core/algorithms/handlers/reject-merge.ts +93 -0
  34. package/core/algorithms/handlers/reverse-merge.ts +155 -0
  35. package/core/algorithms/index.ts +39 -0
  36. package/core/algorithms/operations/cache-maintenance.ts +182 -0
  37. package/core/algorithms/safety/safety-checks.ts +256 -0
  38. package/core/algorithms/strategies/merge-strategies.ts +381 -0
  39. package/core/algorithms/types.ts +140 -0
  40. package/core/algorithms/utils/response-builder.ts +61 -0
  41. package/core/associations.ts +363 -0
  42. package/core/beliefs/decay.ts +289 -0
  43. package/core/beliefs/extractor.ts +131 -0
  44. package/core/beliefs/store.ts +557 -0
  45. package/core/beliefs/types.ts +38 -0
  46. package/core/commands/mcp-server.ts +5 -0
  47. package/core/compression.ts +177 -0
  48. package/core/config.js +2 -0
  49. package/core/consolidation.ts +330 -0
  50. package/core/context/agent-context.ts +388 -0
  51. package/core/context/context-paging.ts +449 -0
  52. package/core/context/context-window.ts +234 -0
  53. package/core/context/context.ts +35 -0
  54. package/core/embeddings/embeddings.ts +616 -0
  55. package/core/embeddings/google-multimodal.ts +200 -0
  56. package/core/embeddings/local-embeddings.ts +12 -0
  57. package/core/embeddings/qmd-client.ts +495 -0
  58. package/core/embeddings/transformers-local.ts +261 -0
  59. package/core/embeddings.js +4 -0
  60. package/core/error-handling.ts +206 -0
  61. package/core/external +219 -0
  62. package/core/graph/entity-deduplicator.ts +232 -0
  63. package/core/graph/graph-builder.ts +257 -0
  64. package/core/graph/graph-traversal.ts +490 -0
  65. package/core/graph/index.ts +24 -0
  66. package/core/graph/llm-entity-extractor.ts +402 -0
  67. package/core/graph/multi-hop-retrieval.ts +317 -0
  68. package/core/graph/relationship-extractor.ts +465 -0
  69. package/core/hooks/agent-hooks.ts +653 -0
  70. package/core/hooks/auto-tagger.ts +149 -0
  71. package/core/hooks/capture-filter.ts +169 -0
  72. package/core/hot-cache.ts +388 -0
  73. package/core/index.ts +10 -0
  74. package/core/ingestion/agent-memory.ts +167 -0
  75. package/core/ingestion/core-memory.ts +326 -0
  76. package/core/ingestion/learnings.ts +260 -0
  77. package/core/ingestion/signal-engine.ts +266 -0
  78. package/core/integrations/obsidian-vault.ts +197 -0
  79. package/core/layers/generator.ts +115 -0
  80. package/core/lib/db-client.ts +168 -0
  81. package/core/lib/parse-embedding.ts +59 -0
  82. package/core/lib/schemas.ts +102 -0
  83. package/core/lib/types.ts +49 -0
  84. package/core/lib/utils.ts +151 -0
  85. package/core/lib/validation.ts +180 -0
  86. package/core/lifecycle.ts +353 -0
  87. package/core/logger.ts +59 -0
  88. package/core/memory/bridge-discovery.ts +395 -0
  89. package/core/memory/categorizer.ts +390 -0
  90. package/core/memory/conflict-detector.ts +62 -0
  91. package/core/memory/consolidation.ts +372 -0
  92. package/core/memory/context-collector.ts +75 -0
  93. package/core/memory/contradiction-resolver.ts +494 -0
  94. package/core/memory/edit-workflow.ts +174 -0
  95. package/core/memory/entity-extractor.ts +426 -0
  96. package/core/memory/entity-resolver.ts +89 -0
  97. package/core/memory/explain.ts +112 -0
  98. package/core/memory/fact-deriver.ts +300 -0
  99. package/core/memory/fact-extractor.ts +120 -0
  100. package/core/memory/feedback-tracker.ts +200 -0
  101. package/core/memory/hooks.ts +230 -0
  102. package/core/memory/hybrid-retrieval.ts +65 -0
  103. package/core/memory/hybrid-scorer.ts +325 -0
  104. package/core/memory/hybrid-search.ts +748 -0
  105. package/core/memory/importance.ts +319 -0
  106. package/core/memory/index.ts +11 -0
  107. package/core/memory/loader.ts +178 -0
  108. package/core/memory/markdown/markdown-storage.ts +318 -0
  109. package/core/memory/memories.ts +565 -0
  110. package/core/memory/memory-lifecycle.ts +51 -0
  111. package/core/memory/memory-manager.ts +53 -0
  112. package/core/memory/migrate.ts +173 -0
  113. package/core/memory/normalization.ts +30 -0
  114. package/core/memory/path-strengthener.ts +211 -0
  115. package/core/memory/progressive-disclosure.ts +392 -0
  116. package/core/memory/query-processor.ts +130 -0
  117. package/core/memory/query-rewriter.ts +153 -0
  118. package/core/memory/response-analyzer.ts +81 -0
  119. package/core/memory/retrieval-feedback.ts +276 -0
  120. package/core/memory/serialization.ts +83 -0
  121. package/core/memory/stale-cleaner.ts +147 -0
  122. package/core/memory/stats.ts +181 -0
  123. package/core/memory/telemetry.ts +392 -0
  124. package/core/memory/temporal-facts.ts +356 -0
  125. package/core/memory/temporal-parser.ts +477 -0
  126. package/core/memory/trigger-detector.ts +104 -0
  127. package/core/memory/write-gate.ts +288 -0
  128. package/core/places/index.ts +14 -0
  129. package/core/places/memory-places.ts +339 -0
  130. package/core/places/places.ts +406 -0
  131. package/core/places/rules.ts +308 -0
  132. package/core/places/walking.ts +192 -0
  133. package/core/projects +89 -0
  134. package/core/projects.ts +131 -0
  135. package/core/redis.ts +82 -0
  136. package/core/responses.ts +187 -0
  137. package/core/runtime/trust-report.ts +195 -0
  138. package/core/runtime/trust-state.ts +360 -0
  139. package/core/scheduler/cron-scheduler.ts +581 -0
  140. package/core/scheduler/heartbeat.ts +91 -0
  141. package/core/scheduler/index.ts +8 -0
  142. package/core/scheduler/job-runner.ts +197 -0
  143. package/core/search/conversations.ts +166 -0
  144. package/core/search/entities.ts +46 -0
  145. package/core/search/folder-context.ts +154 -0
  146. package/core/search/graph-boost.ts +22 -0
  147. package/core/search/index.ts +4 -0
  148. package/core/search/qmd-wrapper.ts +84 -0
  149. package/core/security/encrypt.ts +51 -0
  150. package/core/security/governance.ts +102 -0
  151. package/core/security/privacy.ts +108 -0
  152. package/core/security/secret-detector.ts +122 -0
  153. package/core/session/auto-load.ts +160 -0
  154. package/core/session/entity-tracker.ts +363 -0
  155. package/core/session/index.ts +7 -0
  156. package/core/session/reference-resolver.ts +158 -0
  157. package/core/session/self-iteration-job.ts +478 -0
  158. package/core/session/session-hooks.ts +69 -0
  159. package/core/session/types.ts +36 -0
  160. package/core/session/working-set.ts +275 -0
  161. package/core/snapshots/cleanup.ts +13 -0
  162. package/core/snapshots/comparison.ts +59 -0
  163. package/core/snapshots/creation.ts +139 -0
  164. package/core/snapshots/retrieval.ts +44 -0
  165. package/core/snapshots/stats.ts +63 -0
  166. package/core/storage/cache.ts +241 -0
  167. package/core/storage/database.ts +23 -0
  168. package/core/summarization/cleanup.ts +13 -0
  169. package/core/summarization/queries.ts +32 -0
  170. package/core/summarization/stats.ts +64 -0
  171. package/core/summarization/strategies.ts +52 -0
  172. package/core/summarization.ts +248 -0
  173. package/core/temporal-facts.ts +244 -0
  174. package/core/tracing/collector.ts +470 -0
  175. package/core/tracing/visualizer.ts +195 -0
  176. package/core/utils/cleanup-operations.ts +50 -0
  177. package/core/utils/content-extraction.ts +95 -0
  178. package/core/utils/filter-builder.ts +56 -0
  179. package/core/utils/history-traversal.ts +63 -0
  180. package/core/utils/memory-operations.ts +56 -0
  181. package/core/utils/query-operations.ts +83 -0
  182. package/core/utils/summarization-helpers.ts +45 -0
  183. package/core/utils/temporal-queries.ts +39 -0
  184. package/core/utils/vector-operations.ts +135 -0
  185. package/core/utils/version-management.ts +74 -0
  186. package/core/worker.ts +324 -0
  187. package/db/adapter.ts +215 -0
  188. package/db/bootstrap.ts +1055 -0
  189. package/db/drizzle/migrations/0000_needy_cerebro.sql +402 -0
  190. package/db/drizzle/migrations/meta/0000_snapshot.json +3451 -0
  191. package/db/drizzle/migrations/meta/_journal.json +13 -0
  192. package/db/drizzle/schema-sqlite.ts +1032 -0
  193. package/db/drizzle/schema.ts +1128 -0
  194. package/db/drizzle.config.ts +12 -0
  195. package/db/index.ts +83 -0
  196. package/db/init.sql +5 -0
  197. package/db/migrations/associations.ts +35 -0
  198. package/db/migrations/beliefs.ts +89 -0
  199. package/db/migrations/core-memory.ts +35 -0
  200. package/db/migrations/fts.ts +59 -0
  201. package/db/migrations/index.ts +54 -0
  202. package/db/migrations/indexes.ts +36 -0
  203. package/db/migrations/learnings.ts +34 -0
  204. package/db/migrations/maintenance.ts +68 -0
  205. package/db/migrations/memories.ts +22 -0
  206. package/db/migrations/memory-places.ts +35 -0
  207. package/db/migrations/places.ts +49 -0
  208. package/db/migrations/projects.ts +21 -0
  209. package/db/migrations/tier-conversion.ts +24 -0
  210. package/db/neon.ts +22 -0
  211. package/db/schema/beliefs.ts +50 -0
  212. package/db/schema/generator.ts +159 -0
  213. package/db/schema/index.ts +58 -0
  214. package/db/schema/learnings.ts +32 -0
  215. package/db/schema/memories.ts +83 -0
  216. package/db/schema/projects.ts +33 -0
  217. package/db/schema.ts +13 -0
  218. package/db/supabase.ts +27 -0
  219. package/dist/config.d.ts +61 -14
  220. package/dist/config.js +159 -139
  221. package/dist/core/adapters/config/claude-code.d.ts +45 -0
  222. package/dist/core/adapters/config/claude-code.js +113 -0
  223. package/dist/core/adapters/config/cursor.d.ts +26 -0
  224. package/dist/core/adapters/config/cursor.js +74 -0
  225. package/dist/core/adapters/config/opencode.d.ts +23 -0
  226. package/dist/core/adapters/config/opencode.js +73 -0
  227. package/dist/core/adapters/config/windsurf.d.ts +26 -0
  228. package/dist/core/adapters/config/windsurf.js +74 -0
  229. package/dist/core/adapters/index.d.ts +45 -0
  230. package/dist/core/adapters/index.js +84 -0
  231. package/dist/core/adapters/scripts/install-adapter.d.ts +19 -0
  232. package/dist/core/adapters/scripts/install-adapter.js +149 -0
  233. package/dist/core/adapters/timeline.d.ts +23 -0
  234. package/dist/core/adapters/timeline.js +88 -0
  235. package/dist/core/adapters/types.d.ts +137 -0
  236. package/dist/core/adapters/types.js +50 -0
  237. package/dist/core/agent-preferences.d.ts +16 -0
  238. package/dist/core/agent-preferences.js +124 -0
  239. package/dist/{algorithms → core/algorithms}/analytics/token-estimator.d.ts +1 -1
  240. package/dist/{algorithms → core/algorithms}/analytics/token-estimator.js +3 -3
  241. package/dist/{algorithms → core/algorithms}/detection/semantic-ranker.d.ts +1 -1
  242. package/dist/{algorithms → core/algorithms}/detection/semantic-ranker.js +1 -1
  243. package/dist/{algorithms → core/algorithms}/detection/two-stage-detector.d.ts +1 -1
  244. package/dist/{algorithms → core/algorithms}/detection/two-stage-detector.js +7 -10
  245. package/dist/{algorithms → core/algorithms}/handlers/approve-merge.js +4 -4
  246. package/dist/{algorithms → core/algorithms}/handlers/detect-duplicates.js +3 -3
  247. package/dist/{algorithms → core/algorithms}/handlers/get-stats.js +3 -3
  248. package/dist/{algorithms → core/algorithms}/handlers/list-proposals.js +3 -3
  249. package/dist/{algorithms → core/algorithms}/handlers/preview-merge.js +3 -3
  250. package/dist/{algorithms → core/algorithms}/handlers/reject-merge.js +3 -3
  251. package/dist/{algorithms → core/algorithms}/handlers/reverse-merge.js +3 -3
  252. package/dist/core/algorithms/index.d.ts +21 -0
  253. package/dist/core/algorithms/index.js +26 -0
  254. package/dist/core/algorithms/operations/cache-maintenance.d.ts +12 -0
  255. package/dist/core/algorithms/operations/cache-maintenance.js +157 -0
  256. package/dist/{algorithms → core/algorithms}/safety/safety-checks.d.ts +2 -6
  257. package/dist/{algorithms → core/algorithms}/strategies/merge-strategies.d.ts +19 -1
  258. package/dist/{algorithms → core/algorithms}/strategies/merge-strategies.js +74 -123
  259. package/dist/core/algorithms/types.d.ts +125 -0
  260. package/dist/core/algorithms/types.js +5 -0
  261. package/dist/core/associations.d.ts +3 -2
  262. package/dist/core/associations.js +37 -2
  263. package/dist/core/autosave.d.ts +19 -0
  264. package/dist/core/autosave.js +16 -0
  265. package/dist/core/beliefs/decay.d.ts +27 -0
  266. package/dist/core/beliefs/decay.js +217 -0
  267. package/dist/core/beliefs/extractor.d.ts +9 -0
  268. package/dist/core/beliefs/extractor.js +113 -0
  269. package/dist/core/beliefs/store.d.ts +46 -0
  270. package/dist/core/beliefs/store.js +466 -0
  271. package/dist/core/beliefs/types.d.ts +28 -0
  272. package/dist/core/beliefs/types.js +2 -0
  273. package/dist/core/commands/mcp-server.d.ts +2 -0
  274. package/dist/core/commands/mcp-server.js +6 -0
  275. package/dist/core/commands/remember.d.ts +24 -0
  276. package/dist/core/commands/remember.js +144 -0
  277. package/dist/core/compression.d.ts +45 -0
  278. package/dist/core/compression.js +160 -0
  279. package/dist/core/context/agent-context.d.ts +106 -0
  280. package/dist/core/context/agent-context.js +274 -0
  281. package/dist/core/{context-paging.d.ts → context/context-paging.d.ts} +2 -12
  282. package/dist/core/{context-paging.js → context/context-paging.js} +19 -39
  283. package/dist/core/context/context-window.d.ts +40 -0
  284. package/dist/core/context/context-window.js +177 -0
  285. package/dist/core/context/context.js +22 -0
  286. package/dist/core/embeddings/embeddings.d.ts +29 -0
  287. package/dist/core/embeddings/embeddings.js +546 -0
  288. package/dist/core/embeddings/google-multimodal.js +6 -2
  289. package/dist/core/embeddings/local-embeddings.d.ts +11 -0
  290. package/dist/core/embeddings/local-embeddings.js +11 -0
  291. package/dist/core/embeddings/qmd-client.js +1 -1
  292. package/dist/core/embeddings/transformers-local.d.ts +64 -0
  293. package/dist/core/embeddings/transformers-local.js +213 -0
  294. package/dist/core/embeddings.d.ts +1 -28
  295. package/dist/core/embeddings.js +2 -401
  296. package/dist/core/error-handling.d.ts +63 -0
  297. package/dist/core/error-handling.js +173 -0
  298. package/dist/core/graph/entity-deduplicator.d.ts +24 -0
  299. package/dist/core/graph/entity-deduplicator.js +183 -0
  300. package/dist/core/graph/graph-builder.d.ts +46 -0
  301. package/dist/core/graph/graph-builder.js +174 -0
  302. package/dist/core/graph/graph-traversal.d.ts +80 -0
  303. package/dist/core/graph/graph-traversal.js +315 -0
  304. package/dist/core/graph/index.d.ts +19 -0
  305. package/dist/core/graph/index.js +13 -0
  306. package/dist/core/graph/llm-entity-extractor.d.ts +49 -0
  307. package/dist/core/graph/llm-entity-extractor.js +313 -0
  308. package/dist/core/graph/multi-hop-retrieval.d.ts +48 -0
  309. package/dist/core/graph/multi-hop-retrieval.js +215 -0
  310. package/dist/core/graph/relationship-extractor.d.ts +48 -0
  311. package/dist/core/graph/relationship-extractor.js +351 -0
  312. package/dist/core/hooks/agent-hooks.d.ts +83 -0
  313. package/dist/core/hooks/agent-hooks.js +521 -0
  314. package/dist/core/hooks/auto-tagger.d.ts +19 -0
  315. package/dist/core/hooks/auto-tagger.js +155 -0
  316. package/dist/core/hooks/capture-filter.d.ts +41 -0
  317. package/dist/core/hooks/capture-filter.js +128 -0
  318. package/dist/core/hot-cache.d.ts +86 -0
  319. package/dist/core/hot-cache.js +285 -0
  320. package/dist/core/index.d.ts +9 -9
  321. package/dist/core/index.js +9 -12
  322. package/dist/core/{agent-memory.js → ingestion/agent-memory.js} +5 -7
  323. package/dist/core/{core-memory.d.ts → ingestion/core-memory.d.ts} +2 -2
  324. package/dist/core/{core-memory.js → ingestion/core-memory.js} +7 -7
  325. package/dist/core/ingestion/learnings.d.ts +57 -0
  326. package/dist/core/ingestion/learnings.js +205 -0
  327. package/dist/core/ingestion/signal-engine.d.ts +41 -0
  328. package/dist/core/ingestion/signal-engine.js +201 -0
  329. package/dist/core/integrations/obsidian-vault.d.ts +31 -0
  330. package/dist/core/integrations/obsidian-vault.js +156 -0
  331. package/dist/core/lib/db-client.d.ts +114 -0
  332. package/dist/core/lib/db-client.js +130 -0
  333. package/dist/core/lib/parse-embedding.d.ts +9 -0
  334. package/dist/core/lib/parse-embedding.js +58 -0
  335. package/dist/core/lib/schemas.d.ts +132 -0
  336. package/dist/core/lib/schemas.js +87 -0
  337. package/dist/core/lib/types.d.ts +45 -0
  338. package/dist/core/lib/types.js +6 -0
  339. package/dist/core/{utils.d.ts → lib/utils.d.ts} +5 -0
  340. package/dist/core/lib/utils.js +145 -0
  341. package/dist/core/lib/validation.d.ts +38 -0
  342. package/dist/core/lib/validation.js +151 -0
  343. package/dist/core/lifecycle.d.ts +7 -1
  344. package/dist/core/lifecycle.js +152 -42
  345. package/dist/core/logger.d.ts +1 -0
  346. package/dist/core/logger.js +13 -1
  347. package/dist/core/mcp/tools.d.ts +0 -2
  348. package/dist/core/mcp/tools.js +35 -90
  349. package/dist/core/mcp/types.d.ts +25 -253
  350. package/dist/core/mcp/types.js +2 -2
  351. package/dist/core/memory/categorizer.js +2 -0
  352. package/dist/core/memory/conflict-detector.js +1 -1
  353. package/dist/core/memory/consolidation.d.ts +1 -10
  354. package/dist/core/memory/consolidation.js +4 -39
  355. package/dist/core/memory/context-collector.js +1 -1
  356. package/dist/core/memory/edit-workflow.js +1 -1
  357. package/dist/core/memory/entity-extractor.d.ts +4 -0
  358. package/dist/core/memory/entity-extractor.js +30 -16
  359. package/dist/core/memory/entity-resolver.js +7 -7
  360. package/dist/core/memory/explain.d.ts +18 -0
  361. package/dist/core/memory/explain.js +92 -0
  362. package/dist/core/memory/fact-deriver.d.ts +31 -0
  363. package/dist/core/memory/fact-deriver.js +236 -0
  364. package/dist/core/memory/fact-extractor.js +12 -12
  365. package/dist/core/memory/feedback-tracker.js +1 -1
  366. package/dist/core/memory/hooks.d.ts +88 -0
  367. package/dist/core/memory/hooks.js +174 -0
  368. package/dist/core/memory/hybrid-retrieval.d.ts +14 -16
  369. package/dist/core/memory/hybrid-retrieval.js +25 -127
  370. package/dist/core/memory/hybrid-scorer.js +6 -23
  371. package/dist/core/memory/hybrid-search.d.ts +9 -11
  372. package/dist/core/memory/hybrid-search.js +496 -273
  373. package/dist/core/memory/importance.d.ts +2 -24
  374. package/dist/core/memory/importance.js +7 -91
  375. package/dist/core/memory/index.d.ts +1 -0
  376. package/dist/core/memory/index.js +1 -0
  377. package/dist/core/memory/loader.d.ts +31 -0
  378. package/dist/core/memory/loader.js +141 -0
  379. package/dist/core/memory/markdown/markdown-storage.d.ts +72 -0
  380. package/dist/core/memory/markdown/markdown-storage.js +243 -0
  381. package/dist/core/memory/memories.d.ts +23 -19
  382. package/dist/core/memory/memories.js +243 -228
  383. package/dist/core/memory/memory-lifecycle.d.ts +8 -0
  384. package/dist/core/memory/memory-lifecycle.js +47 -0
  385. package/dist/core/memory/migrate.d.ts +21 -0
  386. package/dist/core/memory/migrate.js +134 -0
  387. package/dist/core/memory/normalization.d.ts +7 -0
  388. package/dist/core/memory/normalization.js +26 -0
  389. package/dist/core/memory/path-strengthener.d.ts +39 -0
  390. package/dist/core/memory/path-strengthener.js +150 -0
  391. package/dist/core/memory/progressive-disclosure.js +1 -1
  392. package/dist/core/memory/query-processor.js +37 -3
  393. package/dist/core/memory/query-rewriter.js +9 -9
  394. package/dist/core/memory/retrieval-feedback.d.ts +70 -0
  395. package/dist/core/memory/retrieval-feedback.js +213 -0
  396. package/dist/core/memory/serialization.d.ts +4 -0
  397. package/dist/core/memory/serialization.js +49 -0
  398. package/dist/core/memory/stale-cleaner.d.ts +26 -0
  399. package/dist/core/memory/stale-cleaner.js +97 -0
  400. package/dist/core/memory/stats.d.ts +15 -0
  401. package/dist/core/memory/stats.js +69 -13
  402. package/dist/core/memory/temporal-facts.js +21 -0
  403. package/dist/core/memory/trigger-detector.d.ts +8 -1
  404. package/dist/core/memory/trigger-detector.js +42 -5
  405. package/dist/core/memory/write-gate.js +1 -1
  406. package/dist/core/places/index.d.ts +14 -0
  407. package/dist/core/places/index.js +14 -0
  408. package/dist/core/places/memory-places.d.ts +68 -0
  409. package/dist/core/places/memory-places.js +261 -0
  410. package/dist/core/places/places.d.ts +88 -0
  411. package/dist/core/places/places.js +314 -0
  412. package/dist/core/places/rules.d.ts +74 -0
  413. package/dist/core/places/rules.js +240 -0
  414. package/dist/core/places/walking.d.ts +56 -0
  415. package/dist/core/places/walking.js +121 -0
  416. package/dist/core/projects.d.ts +5 -0
  417. package/dist/core/projects.js +47 -18
  418. package/dist/core/responses.d.ts +96 -0
  419. package/dist/core/responses.js +122 -0
  420. package/dist/core/runtime/trust-report.d.ts +102 -0
  421. package/dist/core/runtime/trust-report.js +107 -0
  422. package/dist/core/runtime/trust-state.d.ts +12 -0
  423. package/dist/core/runtime/trust-state.js +309 -0
  424. package/dist/core/scheduler/cron-scheduler.d.ts +1 -1
  425. package/dist/core/scheduler/cron-scheduler.js +193 -10
  426. package/dist/core/scheduler/index.d.ts +1 -1
  427. package/dist/core/scheduler/index.js +1 -1
  428. package/dist/core/scheduler/job-runner.js +2 -2
  429. package/dist/core/search/conversations.js +40 -42
  430. package/dist/core/search/entities.js +6 -9
  431. package/dist/core/search/graph-boost.d.ts +7 -0
  432. package/dist/core/search/graph-boost.js +23 -0
  433. package/dist/core/search/qmd-wrapper.d.ts +36 -0
  434. package/dist/core/search/qmd-wrapper.js +58 -0
  435. package/dist/core/security/encrypt.d.ts +6 -0
  436. package/dist/core/security/encrypt.js +47 -0
  437. package/dist/core/{governance.d.ts → security/governance.d.ts} +6 -1
  438. package/dist/core/security/governance.js +79 -0
  439. package/dist/core/session/auto-load.js +34 -9
  440. package/dist/core/session/entity-tracker.d.ts +62 -0
  441. package/dist/core/session/entity-tracker.js +287 -0
  442. package/dist/core/session/index.d.ts +1 -1
  443. package/dist/core/session/index.js +1 -1
  444. package/dist/core/session/reference-resolver.d.ts +26 -0
  445. package/dist/core/session/reference-resolver.js +121 -0
  446. package/dist/core/{session-hooks → session}/self-iteration-job.d.ts +15 -0
  447. package/dist/core/{session-hooks → session}/self-iteration-job.js +195 -90
  448. package/dist/core/session/working-set.d.ts +50 -0
  449. package/dist/core/session/working-set.js +212 -0
  450. package/dist/core/snapshots/creation.d.ts +2 -8
  451. package/dist/core/snapshots/creation.js +3 -12
  452. package/dist/core/{cache.js → storage/cache.js} +2 -2
  453. package/dist/core/utils/memory-operations.js +1 -1
  454. package/dist/core/utils/summarization-helpers.d.ts +0 -4
  455. package/dist/core/utils/summarization-helpers.js +1 -6
  456. package/dist/core/utils/vector-operations.d.ts +71 -0
  457. package/dist/core/utils/vector-operations.js +129 -0
  458. package/dist/db/adapter.d.ts +3 -3
  459. package/dist/db/adapter.js +99 -88
  460. package/dist/db/bootstrap.d.ts +2 -0
  461. package/dist/db/bootstrap.js +921 -674
  462. package/dist/{drizzle → db/drizzle}/schema-sqlite.d.ts +775 -25
  463. package/dist/{drizzle → db/drizzle}/schema-sqlite.js +170 -24
  464. package/dist/{drizzle → db/drizzle}/schema.d.ts +731 -32
  465. package/dist/{drizzle → db/drizzle}/schema.js +192 -32
  466. package/dist/db/drizzle.config.d.ts +3 -0
  467. package/dist/db/drizzle.config.js +12 -0
  468. package/dist/db/index.d.ts +1 -5
  469. package/dist/db/index.js +51 -8
  470. package/dist/db/migrations/associations.d.ts +6 -0
  471. package/dist/db/migrations/associations.js +29 -0
  472. package/dist/db/migrations/beliefs.d.ts +10 -0
  473. package/dist/db/migrations/beliefs.js +76 -0
  474. package/dist/db/migrations/core-memory.d.ts +6 -0
  475. package/dist/db/migrations/core-memory.js +29 -0
  476. package/dist/db/migrations/fts.d.ts +6 -0
  477. package/dist/db/migrations/fts.js +52 -0
  478. package/dist/db/migrations/index.d.ts +25 -0
  479. package/dist/db/migrations/index.js +51 -0
  480. package/dist/db/migrations/indexes.d.ts +6 -0
  481. package/dist/db/migrations/indexes.js +30 -0
  482. package/dist/db/migrations/learnings.d.ts +7 -0
  483. package/dist/db/migrations/learnings.js +26 -0
  484. package/dist/db/migrations/maintenance.d.ts +6 -0
  485. package/dist/db/migrations/maintenance.js +61 -0
  486. package/dist/db/migrations/memories.d.ts +7 -0
  487. package/dist/db/migrations/memories.js +16 -0
  488. package/dist/db/migrations/memory-places.d.ts +6 -0
  489. package/dist/db/migrations/memory-places.js +29 -0
  490. package/dist/db/migrations/places.d.ts +6 -0
  491. package/dist/db/migrations/places.js +43 -0
  492. package/dist/db/migrations/projects.d.ts +3 -0
  493. package/dist/db/migrations/projects.js +13 -0
  494. package/dist/db/migrations/tier-conversion.d.ts +7 -0
  495. package/dist/db/migrations/tier-conversion.js +20 -0
  496. package/dist/db/neon.d.ts +8 -0
  497. package/dist/db/neon.js +20 -0
  498. package/dist/db/schema/beliefs.d.ts +9 -0
  499. package/dist/db/schema/beliefs.js +46 -0
  500. package/dist/db/schema/generator.d.ts +38 -0
  501. package/dist/db/schema/generator.js +108 -0
  502. package/dist/db/schema/index.d.ts +39 -0
  503. package/dist/db/schema/index.js +51 -0
  504. package/dist/db/schema/learnings.d.ts +7 -0
  505. package/dist/db/schema/learnings.js +30 -0
  506. package/dist/db/schema/memories.d.ts +7 -0
  507. package/dist/db/schema/memories.js +81 -0
  508. package/dist/db/schema/projects.d.ts +4 -0
  509. package/dist/db/schema/projects.js +31 -0
  510. package/dist/db/schema/tables/context-sessions.d.ts +9 -0
  511. package/dist/db/schema/tables/context-sessions.js +37 -0
  512. package/dist/db/schema/tables/conversations.d.ts +9 -0
  513. package/dist/db/schema/tables/conversations.js +47 -0
  514. package/dist/db/schema/tables/core-memory.d.ts +9 -0
  515. package/dist/db/schema/tables/core-memory.js +41 -0
  516. package/dist/db/schema/tables/entities.d.ts +9 -0
  517. package/dist/db/schema/tables/entities.js +39 -0
  518. package/dist/db/schema/tables/entity-relations.d.ts +9 -0
  519. package/dist/db/schema/tables/entity-relations.js +31 -0
  520. package/dist/db/schema/tables/learnings.d.ts +9 -0
  521. package/dist/db/schema/tables/learnings.js +66 -0
  522. package/dist/db/schema/tables/memories.d.ts +9 -0
  523. package/dist/db/schema/tables/memories.js +161 -0
  524. package/dist/db/schema/tables/memory-associations.d.ts +9 -0
  525. package/dist/db/schema/tables/memory-associations.js +39 -0
  526. package/dist/db/schema/tables/memory-hash-cache.d.ts +9 -0
  527. package/dist/db/schema/tables/memory-hash-cache.js +29 -0
  528. package/dist/db/schema/tables/memory-merge-history.d.ts +9 -0
  529. package/dist/db/schema/tables/memory-merge-history.js +33 -0
  530. package/dist/db/schema/tables/memory-merge-proposals.d.ts +9 -0
  531. package/dist/db/schema/tables/memory-merge-proposals.js +39 -0
  532. package/dist/db/schema/tables/messages.d.ts +9 -0
  533. package/dist/db/schema/tables/messages.js +41 -0
  534. package/dist/db/schema/tables/namespaces.d.ts +9 -0
  535. package/dist/db/schema/tables/namespaces.js +37 -0
  536. package/dist/db/schema/tables/projects.d.ts +9 -0
  537. package/dist/db/schema/tables/projects.js +31 -0
  538. package/dist/db/schema/tables/users.d.ts +9 -0
  539. package/dist/db/schema/tables/users.js +27 -0
  540. package/dist/db/schema.d.ts +1 -1
  541. package/dist/db/schema.js +2 -2
  542. package/dist/db/supabase.d.ts +9 -0
  543. package/dist/db/supabase.js +24 -0
  544. package/dist/packages/mcp/src/index.d.ts +3 -0
  545. package/dist/packages/mcp/src/index.js +733 -0
  546. package/mcp.json.example +8 -0
  547. package/package.json +132 -173
  548. package/packages/cli/package.json +22 -0
  549. package/packages/cli/src/commands/clean.ts +68 -0
  550. package/packages/cli/src/commands/context.ts +79 -0
  551. package/packages/cli/src/commands/doctor.ts +357 -0
  552. package/packages/cli/src/commands/forget.ts +72 -0
  553. package/packages/cli/src/commands/health.ts +36 -0
  554. package/packages/cli/src/commands/inspect.ts +41 -0
  555. package/packages/cli/src/commands/link.ts +50 -0
  556. package/packages/cli/src/commands/migrate.ts +93 -0
  557. package/packages/cli/src/commands/recall.ts +99 -0
  558. package/packages/cli/src/commands/recent.ts +57 -0
  559. package/packages/cli/src/commands/remember.ts +139 -0
  560. package/packages/cli/src/commands/run.ts +58 -0
  561. package/packages/cli/src/commands/stale.ts +43 -0
  562. package/packages/cli/src/commands/stats.ts +42 -0
  563. package/packages/cli/src/index.ts +57 -0
  564. package/packages/cli/tsconfig.json +24 -0
  565. package/packages/mcp/package.json +26 -0
  566. package/packages/mcp/src/index.ts +877 -0
  567. package/packages/mcp/tsconfig.json +20 -0
  568. package/skills/squish-memory/SKILL.md +107 -114
  569. package/skills/squish-memory/install.sh +3 -3
  570. package/skills/squish-memory/{claude-desktop.json → references/claude-desktop.json} +12 -12
  571. package/skills/squish-memory/{openclaw.json → references/openclaw.json} +13 -13
  572. package/skills/squish-memory/{opencode.json → references/opencode.json} +14 -14
  573. package/.claude-plugin/marketplace.json +0 -20
  574. package/.claude-plugin/plugin.json +0 -32
  575. package/.env.mcp.example +0 -60
  576. package/.mcp.json +0 -11
  577. package/QUICK-START.md +0 -71
  578. package/bin/squish-add.mjs +0 -32
  579. package/bin/squish-rm.mjs +0 -21
  580. package/commands/context-paging.md +0 -51
  581. package/commands/context-status.md +0 -22
  582. package/commands/context.md +0 -5
  583. package/commands/core-memory.md +0 -56
  584. package/commands/health.md +0 -5
  585. package/commands/init.md +0 -39
  586. package/commands/merge.md +0 -113
  587. package/commands/observe.md +0 -5
  588. package/commands/recall.md +0 -5
  589. package/commands/remember.md +0 -11
  590. package/commands/search.md +0 -10
  591. package/config/mcp-cli-fallback-policy.json +0 -22
  592. package/config/mcp.json +0 -38
  593. package/config/plugin-manifest.json +0 -152
  594. package/config/plugin-manifest.schema.json +0 -244
  595. package/config/remote-memory-policy.json +0 -32
  596. package/dist/api/web/index.d.ts +0 -3
  597. package/dist/api/web/index.js +0 -4
  598. package/dist/api/web/web-server.d.ts +0 -3
  599. package/dist/api/web/web-server.js +0 -6
  600. package/dist/api/web/web.d.ts +0 -4
  601. package/dist/api/web/web.js +0 -639
  602. package/dist/commands/managed-sync.d.ts +0 -10
  603. package/dist/commands/managed-sync.js +0 -64
  604. package/dist/commands/mcp-server.d.ts +0 -3
  605. package/dist/commands/mcp-server.js +0 -393
  606. package/dist/core/context.js +0 -24
  607. package/dist/core/governance.js +0 -64
  608. package/dist/core/local-embeddings.d.ts +0 -6
  609. package/dist/core/local-embeddings.js +0 -20
  610. package/dist/core/namespaces/index.d.ts +0 -71
  611. package/dist/core/namespaces/index.js +0 -305
  612. package/dist/core/namespaces/uri-parser.d.ts +0 -31
  613. package/dist/core/namespaces/uri-parser.js +0 -74
  614. package/dist/core/observations.d.ts +0 -26
  615. package/dist/core/observations.js +0 -110
  616. package/dist/core/requirements.d.ts +0 -20
  617. package/dist/core/requirements.js +0 -35
  618. package/dist/core/search/qmd-search.d.ts +0 -61
  619. package/dist/core/search/qmd-search.js +0 -178
  620. package/dist/core/snapshots.d.ts +0 -29
  621. package/dist/core/snapshots.js +0 -220
  622. package/dist/core/sync/qmd-sync.d.ts +0 -106
  623. package/dist/core/sync/qmd-sync.js +0 -213
  624. package/dist/core/utils.js +0 -74
  625. package/dist/index.d.ts +0 -19
  626. package/dist/index.js +0 -997
  627. package/generated/mcp/manifest.json +0 -23
  628. package/generated/mcp/mcp-servers.json +0 -25
  629. package/generated/mcp/mcporter.json +0 -34
  630. package/generated/mcp/openclaw-memory-qmd.json +0 -17
  631. package/generated/mcp/runtime.json +0 -12
  632. package/hooks/hooks.json +0 -52
  633. package/hooks/post-tool-use.js +0 -26
  634. package/hooks/session-end.js +0 -28
  635. package/hooks/session-start.js +0 -33
  636. package/hooks/user-prompt-submit.js +0 -26
  637. package/hooks/utils.js +0 -153
  638. package/npx-installer.js +0 -208
  639. package/packages/plugin-claude-code/README.md +0 -73
  640. package/packages/plugin-claude-code/dist/plugin-wrapper.d.ts +0 -35
  641. package/packages/plugin-claude-code/dist/plugin-wrapper.js +0 -191
  642. package/packages/plugin-claude-code/package.json +0 -31
  643. package/packages/plugin-openclaw/README.md +0 -70
  644. package/packages/plugin-openclaw/dist/index.d.ts +0 -49
  645. package/packages/plugin-openclaw/dist/index.js +0 -262
  646. package/packages/plugin-openclaw/openclaw.plugin.json +0 -94
  647. package/packages/plugin-openclaw/package.json +0 -31
  648. package/packages/plugin-opencode/install.mjs +0 -217
  649. package/packages/plugin-opencode/package.json +0 -21
  650. package/plugin.json +0 -32
  651. package/scripts/build-release.sh +0 -36
  652. package/scripts/check-secrets.js +0 -132
  653. package/scripts/db/check-db.mjs +0 -88
  654. package/scripts/db/fix-all-columns.mjs +0 -52
  655. package/scripts/db/fix-schema-all.mjs +0 -55
  656. package/scripts/db/fix-schema-full.mjs +0 -46
  657. package/scripts/db/fix-schema.mjs +0 -38
  658. package/scripts/db/init-db.mjs +0 -13
  659. package/scripts/db/recreate-db.mjs +0 -14
  660. package/scripts/generate-mcp.mjs +0 -264
  661. package/scripts/github-release.sh +0 -77
  662. package/scripts/init-dirs.mjs +0 -13
  663. package/scripts/install-interactive.mjs +0 -677
  664. package/scripts/install-mcp.mjs +0 -116
  665. package/scripts/install-plugin.mjs +0 -415
  666. package/scripts/install-web.sh +0 -120
  667. package/scripts/install.mjs +0 -340
  668. package/scripts/openclaw-bootstrap.mjs +0 -127
  669. package/scripts/package-release.sh +0 -71
  670. package/scripts/remote-preflight.mjs +0 -62
  671. package/scripts/squish-fallback.mjs +0 -132
  672. package/scripts/test/test-all-systems.mjs +0 -139
  673. package/scripts/test/test-memory-system.mjs +0 -139
  674. package/scripts/test/test-v0.5.0.mjs +0 -210
  675. package/scripts/test-interactive.mjs +0 -131
  676. package/scripts/verify-mcp.mjs +0 -214
  677. package/skills/memory-guide/SKILL.md +0 -332
  678. package/skills/squish-cli/SKILL.md +0 -240
  679. package/skills/squish-mcp/SKILL.md +0 -355
  680. package/skills/squish-memory/install.mjs +0 -335
  681. package/skills/squish-memory/skill.json +0 -32
  682. /package/dist/{algorithms → core/algorithms}/detection/hash-filters.d.ts +0 -0
  683. /package/dist/{algorithms → core/algorithms}/detection/hash-filters.js +0 -0
  684. /package/dist/{algorithms → core/algorithms}/handlers/approve-merge.d.ts +0 -0
  685. /package/dist/{algorithms → core/algorithms}/handlers/detect-duplicates.d.ts +0 -0
  686. /package/dist/{algorithms → core/algorithms}/handlers/get-stats.d.ts +0 -0
  687. /package/dist/{algorithms → core/algorithms}/handlers/list-proposals.d.ts +0 -0
  688. /package/dist/{algorithms → core/algorithms}/handlers/preview-merge.d.ts +0 -0
  689. /package/dist/{algorithms → core/algorithms}/handlers/reject-merge.d.ts +0 -0
  690. /package/dist/{algorithms → core/algorithms}/handlers/reverse-merge.d.ts +0 -0
  691. /package/dist/{algorithms → core/algorithms}/safety/safety-checks.js +0 -0
  692. /package/dist/{algorithms → core/algorithms}/utils/response-builder.d.ts +0 -0
  693. /package/dist/{algorithms → core/algorithms}/utils/response-builder.js +0 -0
  694. /package/dist/core/{context.d.ts → context/context.d.ts} +0 -0
  695. /package/dist/core/{agent-memory.d.ts → ingestion/agent-memory.d.ts} +0 -0
  696. /package/dist/core/{privacy.d.ts → security/privacy.d.ts} +0 -0
  697. /package/dist/core/{privacy.js → security/privacy.js} +0 -0
  698. /package/dist/core/{secret-detector.d.ts → security/secret-detector.d.ts} +0 -0
  699. /package/dist/core/{secret-detector.js → security/secret-detector.js} +0 -0
  700. /package/dist/core/{session-hooks → session}/session-hooks.d.ts +0 -0
  701. /package/dist/core/{session-hooks → session}/session-hooks.js +0 -0
  702. /package/dist/core/{cache.d.ts → storage/cache.d.ts} +0 -0
  703. /package/dist/core/{database.d.ts → storage/database.d.ts} +0 -0
  704. /package/dist/core/{database.js → storage/database.js} +0 -0
@@ -1,131 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { spawn } from "node:child_process";
4
- import path from "node:path";
5
-
6
- const colors = {
7
- green: "\x1b[32m",
8
- yellow: "\x1b[33m",
9
- cyan: "\x1b[36m",
10
- red: "\x1b[31m",
11
- reset: "\x1b[0m",
12
- gray: "\x1b[90m"
13
- };
14
-
15
- const root = process.cwd();
16
- const testScriptPath = path.join(root, "scripts", "install-interactive.mjs");
17
-
18
- let testsRun = 0;
19
- let testsPassed = 0;
20
- let testsFailed = 0;
21
-
22
- function logTest(testName) {
23
- testsRun++;
24
- console.log(`\n${colors.cyan}TEST ${testsRun}:${colors.reset} ${testName}`);
25
- }
26
-
27
- function logPass(message) {
28
- testsPassed++;
29
- console.log(` ${colors.green}✓${colors.reset} ${message}`);
30
- }
31
-
32
- function logFail(message, error) {
33
- testsFailed++;
34
- console.log(` ${colors.red}✗${colors.reset} ${message}`);
35
- if (error) {
36
- console.log(` ${colors.gray}${error}${colors.reset}`);
37
- }
38
- }
39
-
40
- function logSkip(message) {
41
- console.log(` ${colors.yellow}○${colors.reset} ${message}`);
42
- }
43
-
44
- function runTest(description, args, envVars = {}, expectedExitCode = 0) {
45
- logTest(description);
46
-
47
- return new Promise((resolve) => {
48
- const child = spawn(process.execPath, [testScriptPath, ...args], {
49
- stdio: ["inherit", "pipe", "pipe"],
50
- timeout: 5000,
51
- env: { ...process.env, ...envVars }
52
- });
53
-
54
- let stdout = "";
55
- let stderr = "";
56
-
57
- child.stdout?.on("data", (data) => {
58
- stdout += data.toString();
59
- });
60
-
61
- child.stderr?.on("data", (data) => {
62
- stderr += data.toString();
63
- });
64
-
65
- child.on("close", (code) => {
66
- if (code === expectedExitCode) {
67
- logPass(`Exit code: ${code}`);
68
- } else {
69
- logFail(`Expected exit code ${expectedExitCode}, got ${code}`, stderr);
70
- }
71
- resolve({ code, stdout, stderr });
72
- });
73
-
74
- child.on("error", (err) => {
75
- logFail("Spawn failed", err.message);
76
- resolve({ code: -1, stderr: err.message });
77
- });
78
- });
79
- }
80
-
81
- async function runTests() {
82
- console.log(`${colors.cyan}═════════════════════════════════════════════${colors.reset}`);
83
- console.log(`${colors.cyan}Interactive Installer Test Suite${colors.reset}`);
84
- console.log(`${colors.cyan}═══════════════════════════════════════════${colors.reset}`);
85
- console.log("");
86
-
87
- await runTest("Syntax check (no syntax errors)", ["--help"]);
88
-
89
- await runTest("Help flag displays usage", ["--help"]);
90
-
91
- await runTest("List flag shows available plugins", ["--list"]);
92
-
93
- await runTest("Auto mode with --all flag", ["--all", "--dry-run"]);
94
-
95
- await runTest("Auto mode with --select flag", ["--select=claude-code", "--dry-run"]);
96
-
97
- await runTest("Environment detection - CI mode", ["--list"], { CI: "true" });
98
-
99
- await runTest("Environment detection - NON_INTERACTIVE mode", ["--list"], { NON_INTERACTIVE: "1" });
100
-
101
- await runTest("Dry-run preview mode", ["--list", "--dry-run"]);
102
-
103
- await runTest("Multiple flag combination", ["--select=claude-code,openclaw", "--verbose", "--dry-run"]);
104
-
105
- await runTest("Invalid flag handling", ["--invalid-flag"], {}, 1);
106
-
107
- await runTest("Invalid plugin in --select", ["--select=nonexistent"], {}, 1);
108
-
109
- console.log("");
110
- console.log(`${colors.cyan}═════════════════════════════════════════════${colors.reset}`);
111
- console.log(`${colors.cyan}Test Summary${colors.reset}`);
112
- console.log(`${colors.cyan}═══════════════════════════════════════════${colors.reset}`);
113
- console.log("");
114
- console.log(` ${colors.gray}Total tests:${colors.reset} ${testsRun}`);
115
- console.log(` ${colors.green}Passed:${colors.reset} ${testsPassed}`);
116
- console.log(` ${colors.red}Failed:${colors.reset} ${testsFailed}`);
117
- console.log("");
118
-
119
- if (testsFailed === 0) {
120
- console.log(`${colors.green}All tests passed!${colors.reset}`);
121
- } else {
122
- console.log(`${colors.yellow}${testsFailed} test(s) failed${colors.reset}`);
123
- }
124
- }
125
-
126
- runTests().then(() => {
127
- process.exit(testsFailed > 0 ? 1 : 0);
128
- }).catch((err) => {
129
- console.log(`${colors.red}Fatal test error:${colors.reset} ${err.message}`);
130
- process.exit(1);
131
- });
@@ -1,214 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import fs from "node:fs";
4
- import path from "node:path";
5
- import crypto from "node:crypto";
6
- import { spawnSync } from "node:child_process";
7
-
8
- const root = process.cwd();
9
- const defaultConfigPath = path.join(root, "config", "mcp.json");
10
- const defaultGeneratedDir = path.join(root, "generated", "mcp");
11
- const requiredFiles = [
12
- "runtime.json",
13
- "mcp-servers.json",
14
- "mcporter.json",
15
- "openclaw-memory-qmd.json",
16
- "manifest.json"
17
- ];
18
-
19
- function parseArgs(argv) {
20
- const args = {
21
- configPath: defaultConfigPath,
22
- generatedDir: defaultGeneratedDir,
23
- checkReproducibility: true
24
- };
25
-
26
- for (let i = 2; i < argv.length; i += 1) {
27
- const token = argv[i];
28
- if (token === "--config") {
29
- args.configPath = path.resolve(argv[i + 1]);
30
- i += 1;
31
- continue;
32
- }
33
- if (token === "--generated") {
34
- args.generatedDir = path.resolve(argv[i + 1]);
35
- i += 1;
36
- continue;
37
- }
38
- if (token === "--no-repro") {
39
- args.checkReproducibility = false;
40
- continue;
41
- }
42
- throw new Error(`Unknown argument: ${token}`);
43
- }
44
-
45
- return args;
46
- }
47
-
48
- function fail(message) {
49
- throw new Error(message);
50
- }
51
-
52
- function readJson(filePath) {
53
- try {
54
- return JSON.parse(fs.readFileSync(filePath, "utf8"));
55
- } catch (error) {
56
- fail(`Invalid JSON at ${filePath}: ${String(error)}`);
57
- }
58
- }
59
-
60
- function checksum(filePath) {
61
- const hash = crypto.createHash("sha256");
62
- hash.update(fs.readFileSync(filePath));
63
- return hash.digest("hex");
64
- }
65
-
66
- function assertServerShape(serverName, server) {
67
- if (!server || typeof server !== "object") {
68
- fail(`Server ${serverName} must be an object`);
69
- }
70
- if (typeof server.command !== "string" || server.command.length === 0) {
71
- fail(`Server ${serverName} must include command`);
72
- }
73
- if (!Array.isArray(server.args)) {
74
- fail(`Server ${serverName} must include args array`);
75
- }
76
- if (typeof server.transport !== "string" || server.transport.length === 0) {
77
- fail(`Server ${serverName} must include transport`);
78
- }
79
- if (!server.env || typeof server.env !== "object") {
80
- fail(`Server ${serverName} must include env object`);
81
- }
82
- }
83
-
84
- function verifyGeneratedFiles(dirPath) {
85
- for (const fileName of requiredFiles) {
86
- const filePath = path.join(dirPath, fileName);
87
- if (!fs.existsSync(filePath)) {
88
- fail(`Missing generated file: ${fileName}`);
89
- }
90
- }
91
- }
92
-
93
- function verifyRuntime(runtime) {
94
- const requiredKeys = [
95
- "connectionTimeoutMs",
96
- "requestTimeoutMs",
97
- "maxConcurrentToolCalls",
98
- "lazyToolDiscovery",
99
- "resultMaxChars",
100
- "retry"
101
- ];
102
- for (const key of requiredKeys) {
103
- if (!(key in runtime)) {
104
- fail(`runtime.json missing required key: ${key}`);
105
- }
106
- }
107
- }
108
-
109
- function verifyManifest(manifest, dirPath) {
110
- if (manifest.mode !== "universal") {
111
- fail("manifest mode must be universal");
112
- }
113
- if (!Array.isArray(manifest.files) || manifest.files.length === 0) {
114
- fail("manifest files must be a non-empty array");
115
- }
116
-
117
- const expectedManifestEntries = [
118
- "runtime.json",
119
- "mcp-servers.json",
120
- "mcporter.json",
121
- "openclaw-memory-qmd.json"
122
- ];
123
-
124
- for (const fileName of expectedManifestEntries) {
125
- const entry = manifest.files.find((item) => item.file === fileName);
126
- if (!entry) {
127
- fail(`manifest missing entry for ${fileName}`);
128
- }
129
- const actualHash = checksum(path.join(dirPath, fileName));
130
- if (entry.sha256 !== actualHash) {
131
- fail(`manifest checksum mismatch for ${fileName}`);
132
- }
133
- }
134
- }
135
-
136
- function verifyReproducibility(configPath, dirPath) {
137
- const first = readJson(path.join(dirPath, "manifest.json"));
138
- const firstChecksums = new Map(first.files.map((item) => [item.file, item.sha256]));
139
-
140
- const run = spawnSync(
141
- process.execPath,
142
- ["scripts/generate-mcp.mjs", "--config", configPath, "--out", dirPath],
143
- { cwd: root, encoding: "utf8" }
144
- );
145
-
146
- if (run.status !== 0) {
147
- fail(`Reproducibility generation failed: ${run.stderr || run.stdout}`);
148
- }
149
-
150
- const second = readJson(path.join(dirPath, "manifest.json"));
151
- const secondChecksums = new Map(second.files.map((item) => [item.file, item.sha256]));
152
-
153
- for (const [fileName, firstHash] of firstChecksums.entries()) {
154
- const secondHash = secondChecksums.get(fileName);
155
- if (!secondHash) {
156
- fail(`Reproducibility check missing ${fileName} in second manifest`);
157
- }
158
- if (firstHash !== secondHash) {
159
- fail(`Reproducibility mismatch for ${fileName}`);
160
- }
161
- }
162
- }
163
-
164
- function main() {
165
- const args = parseArgs(process.argv);
166
-
167
- if (!fs.existsSync(args.configPath)) {
168
- fail(`Config file not found: ${args.configPath}`);
169
- }
170
- if (!fs.existsSync(args.generatedDir)) {
171
- fail(`Generated directory not found: ${args.generatedDir}`);
172
- }
173
-
174
- verifyGeneratedFiles(args.generatedDir);
175
-
176
- const runtime = readJson(path.join(args.generatedDir, "runtime.json"));
177
- verifyRuntime(runtime);
178
-
179
- const mcpServers = readJson(path.join(args.generatedDir, "mcp-servers.json"));
180
- if (!mcpServers.mcpServers || typeof mcpServers.mcpServers !== "object") {
181
- fail("mcp-servers.json must include mcpServers object");
182
- }
183
- const serverEntries = Object.entries(mcpServers.mcpServers);
184
- if (serverEntries.length === 0) {
185
- fail("mcp-servers.json must include at least one server");
186
- }
187
- for (const [name, server] of serverEntries) {
188
- assertServerShape(name, server);
189
- }
190
-
191
- const mcporter = readJson(path.join(args.generatedDir, "mcporter.json"));
192
- if (!Array.isArray(mcporter.imports) || mcporter.imports.length === 0) {
193
- fail("mcporter.json must include imports array");
194
- }
195
- if (!mcporter.mcpServers || typeof mcporter.mcpServers !== "object") {
196
- fail("mcporter.json must include mcpServers object");
197
- }
198
-
199
- const openclaw = readJson(path.join(args.generatedDir, "openclaw-memory-qmd.json"));
200
- if (openclaw?.memory?.backend !== "qmd") {
201
- fail("openclaw-memory-qmd.json must set memory.backend=qmd");
202
- }
203
-
204
- const manifest = readJson(path.join(args.generatedDir, "manifest.json"));
205
- verifyManifest(manifest, args.generatedDir);
206
-
207
- if (args.checkReproducibility) {
208
- verifyReproducibility(args.configPath, args.generatedDir);
209
- }
210
-
211
- console.log("MCP verification passed");
212
- }
213
-
214
- main();
@@ -1,332 +0,0 @@
1
- ---
2
- name: memory-guide
3
- description: Expert guide for using Squish memory system v1.0.2. Use when managing persistent memory, storing context, recalling information, or optimizing memory usage across MCP clients.
4
- version: 1.0.2
5
- author: michielhdoteth
6
- tags: [memory, persistence, squish, guide, mcp, ai-assistant]
7
- emoji: book
8
- ---
9
-
10
- # Squish Memory System Guide v1.0.2
11
-
12
- You are an expert at using the Squish persistent memory system for AI coding assistants.
13
-
14
- ## When to Use Squish Memory
15
-
16
- Use Squish memory tools proactively for:
17
-
18
- ### 1. Storing Important Information
19
- - User preferences, project context, decisions made
20
- - Technical specifications, API patterns, architecture notes
21
- - Ongoing work, TODOs, blockers encountered
22
-
23
- ### 2. Recalling Past Context
24
- - Previous conversations and decisions
25
- - Code patterns used in this project
26
- - User's coding style preferences
27
-
28
- ### 3. Managing Session Context
29
- - Load relevant memories before starting complex tasks
30
- - Inject project-specific context
31
- - Maintain working memory across sessions
32
-
33
- ## MCP Tools Reference
34
-
35
- ### Storing Memories
36
-
37
- **Tool:** `squish_remember`
38
-
39
- Store new memories with automatic embedding.
40
-
41
- ```typescript
42
- // Store a preference
43
- squish_remember({
44
- content: "User prefers functional components with hooks over class components",
45
- type: "preference",
46
- tags: ["react", "preferences"]
47
- })
48
-
49
- // Store a fact
50
- squish_remember({
51
- content: "API uses JWT tokens with 1-hour expiration",
52
- type: "fact",
53
- tags: ["auth", "api"]
54
- })
55
-
56
- // Store a decision
57
- squish_remember({
58
- content: "Chose PostgreSQL over MongoDB for better relational data",
59
- type: "decision",
60
- tags: ["database", "architecture"]
61
- })
62
- ```
63
-
64
- ### Searching Memories
65
-
66
- **Tool:** `squish_search`
67
-
68
- Hybrid search across all memory types.
69
-
70
- ```typescript
71
- // Basic search
72
- squish_search({ query: "authentication patterns", limit: 5 })
73
-
74
- // Search with project filter
75
- squish_search({ query: "database schema", project: "/path/to/project", limit: 10 })
76
-
77
- // Search specific memory type
78
- squish_search({ query: "user preferences", type: "preference" })
79
- ```
80
-
81
- ### Retrieving Memories
82
-
83
- **Tool:** `squish_recall`
84
-
85
- Retrieve a specific memory by ID.
86
-
87
- ```typescript
88
- squish_recall({ memoryId: "uuid-here" })
89
- ```
90
-
91
- ### Deleting Memories
92
-
93
- **Tool:** `squish_forget`
94
-
95
- Delete a memory by ID.
96
-
97
- ```typescript
98
- squish_forget({ memoryId: "uuid-here" })
99
- ```
100
-
101
- ### Updating Memories
102
-
103
- **Tool:** `squish_update`
104
-
105
- Update existing memory content, tags, or type.
106
-
107
- ```typescript
108
- squish_update({
109
- memoryId: "uuid-here",
110
- content: "Updated content",
111
- tags: ["new", "tags"],
112
- type: "fact"
113
- })
114
- ```
115
-
116
- ### Graph Associations
117
-
118
- **Tool:** `squish_associate`
119
-
120
- Link related memories together.
121
-
122
- ```typescript
123
- squish_associate({
124
- fromMemoryId: "uuid-1",
125
- toMemoryId: "uuid-2",
126
- type: "relates_to",
127
- weight: 0.8
128
- })
129
- ```
130
-
131
- **Tool:** `squish_related`
132
-
133
- Find related memories via graph traversal.
134
-
135
- ```typescript
136
- squish_related({
137
- memoryId: "uuid-here",
138
- depth: 2,
139
- minWeight: 0.3
140
- })
141
- ```
142
-
143
- ### Context & Observations
144
-
145
- **Tool:** `squish_context`
146
-
147
- Get project context with relevant memories.
148
-
149
- ```typescript
150
- squish_context({ project: "/path/to/project", limit: 10 })
151
- ```
152
-
153
- **Tool:** `squish_observe`
154
-
155
- Record observations about your work.
156
-
157
- ```typescript
158
- squish_observe({
159
- type: "tool_use",
160
- action: "Created new API endpoint",
161
- summary: "Implemented POST /users endpoint",
162
- target: "api/users.ts"
163
- })
164
-
165
- squish_observe({
166
- type: "error",
167
- action: "Database connection failed",
168
- summary: "PostgreSQL timeout after 30s",
169
- target: "db/index.ts"
170
- })
171
- ```
172
-
173
- ### QMD Search
174
-
175
- **Tool:** `squish_qmd_search`
176
-
177
- Search local markdown files using QMD.
178
-
179
- ```typescript
180
- squish_qmd_search({ query: "authentication", limit: 10 })
181
- squish_qmd_search({ query: "react hooks", collection: "docs" })
182
- ```
183
-
184
- ### Utilities
185
-
186
- **Tool:** `squish_embed`
187
-
188
- Generate embeddings for text.
189
-
190
- ```typescript
191
- squish_embed({ text: "Text to embed" })
192
- ```
193
-
194
- **Tool:** `squish_health`
195
-
196
- Check system health.
197
-
198
- ```typescript
199
- squish_health({})
200
- ```
201
-
202
- **Tool:** `squish_stats`
203
-
204
- Get memory statistics.
205
-
206
- ```typescript
207
- squish_stats({ project: "/path/to/project" })
208
- ```
209
-
210
- **Tool:** `squish_projects`
211
-
212
- List all projects.
213
-
214
- ```typescript
215
- squish_projects({})
216
- ```
217
-
218
- ## CLI Reference
219
-
220
- ### Interactive Mode (Default)
221
-
222
- ```bash
223
- squish
224
- ```
225
-
226
- Shows menu:
227
- ```
228
- [1] Start MCP Server (for Claude Code, etc.)
229
- [2] Start Web UI Only
230
- [3] Check Health Status
231
- [4] View Memory Stats
232
- [5] Open Installer Wizard
233
- [6] Show Help
234
- [0] Exit
235
- ```
236
-
237
- ### Server Commands
238
-
239
- ```bash
240
- # Start MCP server (also starts Web UI)
241
- squish run mcp
242
-
243
- # Start Web UI only
244
- squish run web
245
- ```
246
-
247
- ### CLI Commands (for agents and scripting)
248
-
249
- ```bash
250
- # Store a memory
251
- squish remember "User prefers TypeScript" --type preference
252
-
253
- # Search memories
254
- squish search "database schema" --limit 10
255
-
256
- # Get a memory by ID
257
- squish recall <uuid>
258
-
259
- # Check health
260
- squish health
261
-
262
- # View statistics
263
- squish stats
264
-
265
- # Manage core memory
266
- squish core_memory view
267
- squish core_memory edit persona --content "I am a helpful coding assistant"
268
-
269
- # Set importance
270
- squish set-importance <memory-id> --importance 80
271
-
272
- # Pin/unpin memory
273
- squish pin <memory-id>
274
- squish unpin <memory-id>
275
-
276
- # Consolidate old memories
277
- squish consolidate
278
- ```
279
-
280
- ## Best Practices
281
-
282
- 1. **Store proactively**: Don't wait until end of session
283
- 2. **Be specific**: Include context, timestamps, rationale
284
- 3. **Use appropriate types**: Choose correct memory type and sector
285
- 4. **Use associations**: Link related memories for better retrieval
286
- 5. **Record observations**: Use `squish_observe` for tool usage patterns
287
- 6. **Set importance**: Mark critical memories with high importance
288
- 7. **Use namespaces**: Organize memories hierarchically for large projects
289
-
290
- ## Memory Types
291
-
292
- - **observation**: Facts observed, patterns noticed, tool usage
293
- - **fact**: Technical facts, specifications
294
- - **decision**: Decisions made with rationale
295
- - **context**: Project/domain context
296
- - **preference**: User preferences
297
-
298
- ## When to Use Each Tool
299
-
300
- | Task | Use |
301
- |------|-----|
302
- | Remember something important | `squish_remember` |
303
- | Find relevant past info | `squish_search` |
304
- | Get specific memory | `squish_recall` |
305
- | Delete incorrect memory | `squish_forget` |
306
- | Update stored info | `squish_update` |
307
- | Link related memories | `squish_associate` |
308
- | Find connected info | `squish_related` |
309
- | Get project overview | `squish_context` |
310
- | Record work observations | `squish_observe` |
311
- | Search local docs | `squish_qmd_search` |
312
- | Check system status | `squish_health` |
313
- | View memory stats | `squish_stats` |
314
- | Manage core memory | `squish core_memory` |
315
- | Set importance | `squish set-importance` |
316
- | Pin/unpin memory | `squish pin/unpin` |
317
- | Consolidate old memories | `squish consolidate` |
318
-
319
- ## v1.0.1 Features
320
-
321
- **New in v1.0.1:**
322
- - Interactive wizard/menu as default (`squish`)
323
- - `squish run mcp` - Start MCP server
324
- - `squish run web` - Start Web UI only
325
- - Namespace support for hierarchical memory organization
326
- - Maintenance job scheduling system
327
- - Improved migration system for zero-downtime upgrades
328
- - Token estimation for memory content
329
-
330
- **All tools use consistent input schema patterns.**
331
-
332
- Remember: Squish is your persistent memory. Use it actively to maintain continuity across sessions and provide better assistance.