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,23 +0,0 @@
1
- {
2
- "mode": "universal",
3
- "generatedAt": "2026-04-13T04:19:52.236Z",
4
- "source": "config/mcp.json",
5
- "files": [
6
- {
7
- "file": "mcp-servers.json",
8
- "sha256": "2c90cc52893f55bc92cc4f29c77bfeeb635c1c73fa46038d287548caeb35ca6a"
9
- },
10
- {
11
- "file": "mcporter.json",
12
- "sha256": "af42e1c03d44f66fcbe2a9b7694f1d3a126527147c66b760236e72348e1e4573"
13
- },
14
- {
15
- "file": "openclaw-memory-qmd.json",
16
- "sha256": "8a158ff45e98e0db7a7aff41dba7be76652b72aea82443773f9efc7fb056d615"
17
- },
18
- {
19
- "file": "runtime.json",
20
- "sha256": "4afbdec03de92c6a29fc24df32f01305c2e9cf69ed2d02866a01e361492d14b6"
21
- }
22
- ]
23
- }
@@ -1,25 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "filesystem": {
4
- "args": [
5
- "-y",
6
- "@modelcontextprotocol/server-filesystem",
7
- "."
8
- ],
9
- "command": "npx",
10
- "env": {},
11
- "transport": "stdio"
12
- },
13
- "github": {
14
- "args": [
15
- "-y",
16
- "@modelcontextprotocol/server-github"
17
- ],
18
- "command": "npx",
19
- "env": {
20
- "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}"
21
- },
22
- "transport": "stdio"
23
- }
24
- }
25
- }
@@ -1,34 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "filesystem": {
4
- "args": [
5
- "-y",
6
- "@modelcontextprotocol/server-filesystem",
7
- "."
8
- ],
9
- "command": "npx",
10
- "env": {},
11
- "transport": "stdio"
12
- },
13
- "github": {
14
- "args": [
15
- "-y",
16
- "@modelcontextprotocol/server-github"
17
- ],
18
- "command": "npx",
19
- "env": {
20
- "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}"
21
- },
22
- "transport": "stdio"
23
- }
24
- },
25
- "imports": [
26
- "cursor",
27
- "claude-code",
28
- "claude-desktop",
29
- "codex",
30
- "windsurf",
31
- "opencode",
32
- "vscode"
33
- ]
34
- }
@@ -1,17 +0,0 @@
1
- {
2
- "memory": {
3
- "backend": "qmd",
4
- "qmd": {
5
- "mcporter": {
6
- "enabled": true,
7
- "serverName": "qmd",
8
- "startDaemon": true
9
- },
10
- "limits": {
11
- "timeoutMs": 60000,
12
- "maxSnippetChars": 12000,
13
- "maxResults": 12
14
- }
15
- }
16
- }
17
- }
@@ -1,12 +0,0 @@
1
- {
2
- "connectionTimeoutMs": 15000,
3
- "lazyToolDiscovery": true,
4
- "maxConcurrentToolCalls": 4,
5
- "requestTimeoutMs": 60000,
6
- "resultMaxChars": 12000,
7
- "retry": {
8
- "backoffMs": 400,
9
- "enabled": true,
10
- "maxAttempts": 3
11
- }
12
- }
package/scripts/README.md DELETED
@@ -1,60 +0,0 @@
1
- # Squish Scripts
2
-
3
- This directory contains essential build, installation, verification, and release scripts for the Squish project.
4
-
5
- ## Essential Scripts (Required for Build/Install/Release)
6
-
7
- ### Build & Runtime
8
- - **`copy-runtime-assets.mjs`** - Copies runtime assets (e.g., sqlite WASM) to dist/. Run automatically during `npm run build`.
9
- - **`init-dirs.mjs`** - Initializes required directories (~/.squish). Run automatically after `npm install` (postinstall hook).
10
-
11
- ### Installation
12
- - **`install-interactive.mjs`** - Interactive installer wizard. Run with `npm run install`.
13
- - **`install-plugin.mjs`** - Unified plugin installer for all supported clients (Claude Code, OpenCode, Codex, OpenClaw). Used by the add-mcp command and for manual installation.
14
-
15
- ### Verification & Testing
16
- - **`verify-mcp.mjs`** - Verifies MCP configuration and artifacts. Run during release and CI.
17
- - **`test-interactive.mjs`** - Interactive test runner with filtering and reporting.
18
- - **`check-secrets.js`** - Scans for accidentally committed secrets. Run as pre-commit hook.
19
-
20
- ### Dependency Management
21
- - **`dependency-manager.mjs`** - Checks and installs dependencies for different clients. Commands: `npm run deps:check`, `npm run deps:install`.
22
- - **`detect-clients.mjs`** - Detects installed AI clients and their locations. Run with `npm run detect:clients`.
23
-
24
- ### Deployment & Reliability
25
- - **`remote-preflight.mjs`** - Preflight checks for remote deployments. Run with `npm run preflight:remote`.
26
- - **`squish-fallback.mjs`** - MCP fallback mechanism for handling failures. Run with `npm run fallback:dry` for simulation.
27
-
28
- ### Release Automation
29
- - **`build-release.sh`** - Orchestrates full release build (Linux/macOS). Run with `npm run release`.
30
- - **`github-release.sh`** - Creates GitHub release with assets. Part of the release process.
31
-
32
- ## Scripts Reference
33
-
34
- | Script | Purpose | Invocation |
35
- |--------|---------|------------|
36
- | `copy-runtime-assets.mjs` | Copy WASM and other assets to dist | `npm run build` (automatic) |
37
- | `generate-mcp.mjs` | Generate MCP configuration files | `node scripts/generate-mcp.mjs` |
38
- | `verify-mcp.mjs` | Verify MCP artifacts are valid | `node scripts/verify-mcp.mjs` |
39
- | `init-dirs.mjs` | Create ~/.squish and other dirs | `npm install` (automatic) |
40
- | `install-interactive.mjs` | Interactive installation wizard | `npm run install` |
41
- | `install-plugin.mjs` | Install plugin for specific client | `node scripts/install-plugin.mjs --client=<name>` |
42
- | `dependency-manager.mjs` | Manage client dependencies | `npm run deps:check`, `npm run deps:install` |
43
- | `detect-clients.mjs` | Detect installed AI clients | `npm run detect:clients` |
44
- | `test-interactive.mjs` | Interactive test runner | `npm run test:interactive` |
45
- | `remote-preflight.mjs` | Remote deployment checks | `npm run preflight:remote` |
46
- | `squish-fallback.mjs` | MCP fallback simulation | `npm run fallback:dry` |
47
- | `check-secrets.js` | Scan for secrets in code | `npm run check:secrets` |
48
- | `build-release.sh` | Build release packages | `npm run release` (Linux/macOS) |
49
- | `github-release.sh` | Publish to GitHub Releases | `npm run release` (part of) |
50
-
51
- ## Notes
52
-
53
- - All scripts are written in JavaScript (ESM) or shell (`.sh`) for portability.
54
- - Scripts prefixed with `node` are run with Node.js. Use `bun` for faster execution if available.
55
- - Release scripts (`build-release.sh`, `github-release.sh`) are designed for CI/CD environments.
56
- - The `install-plugin.mjs` script is the unified installer that replaced legacy `install-mcp.mjs` and `openclaw-bootstrap.mjs`.
57
-
58
- ## Developer Scripts
59
-
60
- Development and debugging utilities are in scripts/ for build/dev workflows.
@@ -1,36 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Squish Release Build Script
4
- # Run this before publishing to ensure everything is ready
5
-
6
- set -e
7
-
8
- # Auto-detect version from package.json
9
- VERSION=$(node -p "require('./package.json').version")
10
- echo "Building Squish v$VERSION..."
11
-
12
- # Clean previous builds
13
- npm run clean
14
-
15
- # Build the project using standard build script
16
- echo "Building project..."
17
- npm run build
18
-
19
- # Verify MCP artifacts are generated
20
- echo "🔨 Generating MCP artifacts..."
21
- node scripts/generate-mcp.mjs
22
-
23
- # Verify MCP artifacts
24
- echo "🧪 Verifying MCP artifacts..."
25
- node scripts/verify-mcp.mjs
26
-
27
- echo "Build complete!"
28
-
29
- # Optional: Test the build (uncomment if needed)
30
- # echo "🧪 Testing build..."
31
- # timeout 5 node dist/index.js &
32
- # sleep 2
33
- # curl -s http://localhost:37777/api/health | grep -q "ok" && echo "✅ API working" || echo "❌ API failed"
34
- # pkill -f "node dist/index.js" || true
35
-
36
- echo "Ready for release!"
@@ -1,132 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Secret Scanner - Checks for accidentally committed secrets
5
- * Run this before committing or use the pre-commit hook
6
- *
7
- * Usage: node scripts/check-secrets.js
8
- */
9
-
10
- import { execSync } from 'child_process';
11
- import { existsSync, readFileSync } from 'fs';
12
-
13
- // Common secret patterns
14
- const SECRET_PATTERNS = [
15
- // API Keys
16
- { pattern: /(sk|sg)-[0-9a-zA-Z]{24,}/gi, name: 'Stripe/General API Key' },
17
- { pattern: /AIza[0-9A-Za-z\\-_]{35}/gi, name: 'Google API Key' },
18
- { pattern: /xox[baprs]-[0-9a-zA-Z-]{10,}/gi, name: 'Slack Token' },
19
- { pattern: /xox[baprs]-[0-9a-zA-Z-]{10,}/gi, name: 'Slack Token' },
20
- { pattern: /ghp_[0-9a-zA-Z]{36}/gi, name: 'GitHub Personal Access Token' },
21
- { pattern: /github_pat_[0-9a-zA-Z]{22}_[0-9a-zA-Z]{59}/gi, name: 'GitHub Fine-grained Token' },
22
- { pattern: /Bearer\s+[A-Za-z0-9\-_]+/gi, name: 'Bearer Token' },
23
- { pattern: /Authorization:\s*Bearer\s+[A-Za-z0-9\-_]+/gi, name: 'Authorization Header' },
24
- { pattern: /eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}/gi, name: 'JWT Token' },
25
-
26
- // AWS
27
- { pattern: /(?:A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}/gi, name: 'AWS Access Key' },
28
- { pattern: /(?:\")?aws_access_key_id(?:\\s*:\\s*\")([A-Z0-9]{20})(?:\"|$)/gi, name: 'AWS Access Key ID' },
29
- { pattern: /(?:\")?aws_secret_access_key(?:\\s*:\\s*\")([A-Za-z0-9/+=]{40})(?:\"|$)/gi, name: 'AWS Secret Access Key' },
30
-
31
- // Database
32
- { pattern: /(?:mongodb|mysql|postgres|postgresql|redis):\/\/[^\s]+:[^\s]+@/gi, name: 'Database Connection String' },
33
- { pattern: /(?:password|passwd|pwd)\s*[=:]\s*['"]?[^'"]{8,}['"]?/gi, name: 'Password in config' },
34
-
35
- // .env specific
36
- { pattern: /^[A-Z_]+=sk-|^[A-Z_]+=AIza/gi, name: 'API Key in .env format' },
37
- ];
38
-
39
- // File extensions to check
40
- const TEXT_EXTENSIONS = [
41
- '.ts', '.js', '.json', '.md', '.txt', '.yml', '.yaml', '.toml',
42
- '.sh', '.bash', '.zsh', '.ini', '.cfg', '.conf', '.env', '.env.local'
43
- ];
44
-
45
- function isTextFile(filePath) {
46
- return TEXT_EXTENSIONS.some(ext => filePath.endsWith(ext)) || filePath.includes('.env');
47
- }
48
-
49
- function getStagedFiles() {
50
- try {
51
- const output = execSync('git diff --cached --name-only', { encoding: 'utf-8' });
52
- return output.split('\n').filter(f => f.trim());
53
- } catch (error) {
54
- console.error('Failed to get staged files:', error.message);
55
- return [];
56
- }
57
- }
58
-
59
- function readFileContent(filePath) {
60
- try {
61
- return readFileSync(filePath, 'utf-8');
62
- } catch (error) {
63
- // File may have been removed or unreadable
64
- return '';
65
- }
66
- }
67
-
68
- function scanContent(content, filePath) {
69
- const findings = [];
70
-
71
- for (const { pattern, name } of SECRET_PATTERNS) {
72
- let match;
73
- const regex = new RegExp(pattern);
74
- while ((match = regex.exec(content)) !== null) {
75
- const lineNumber = content.substring(0, match.index).split('\n').length;
76
- findings.push({
77
- file: filePath,
78
- line: lineNumber,
79
- type: name,
80
- value: maskSecret(match[0]),
81
- });
82
- }
83
- }
84
-
85
- return findings;
86
- }
87
-
88
- function maskSecret(secret) {
89
- if (secret.length <= 8) return '***';
90
- return secret.substring(0, 6) + '...' + secret.substring(secret.length - 4);
91
- }
92
-
93
- function main() {
94
- console.log('🔍 Scanning for secrets...\n');
95
-
96
- const stagedFiles = getStagedFiles();
97
- const textFiles = stagedFiles.filter(isTextFile);
98
-
99
- if (textFiles.length === 0) {
100
- console.log('No text files to scan.');
101
- process.exit(0);
102
- }
103
-
104
- let totalFindings = 0;
105
-
106
- for (const file of textFiles) {
107
- const content = readFileContent(file);
108
- if (!content) continue;
109
-
110
- const findings = scanContent(content, file);
111
- if (findings.length > 0) {
112
- console.log(`❌ ${file}:`);
113
- for (const finding of findings) {
114
- console.log(` Line ${finding.line}: ${finding.type} - ${finding.value}`);
115
- totalFindings++;
116
- }
117
- console.log('');
118
- }
119
- }
120
-
121
- if (totalFindings > 0) {
122
- console.log(`\n🚨 Found ${totalFindings} potential secret(s).`);
123
- console.log(' Please remove these before committing!');
124
- console.log(' Use environment variables or a secret manager instead.\n');
125
- process.exit(1);
126
- } else {
127
- console.log('✅ No secrets detected.\n');
128
- process.exit(0);
129
- }
130
- }
131
-
132
- main();
@@ -1,26 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import fs from 'node:fs';
4
- import path from 'node:path';
5
- import { fileURLToPath } from 'node:url';
6
-
7
- const __filename = fileURLToPath(import.meta.url);
8
- const __dirname = path.dirname(__filename);
9
- const root = path.resolve(__dirname, '..');
10
-
11
- const copies = [
12
- {
13
- from: path.join(root, 'node_modules', 'sql.js', 'dist', 'sql-wasm.wasm'),
14
- to: path.join(root, 'dist', 'vendor', 'sql.js', 'sql-wasm.wasm'),
15
- },
16
- ];
17
-
18
- for (const asset of copies) {
19
- if (!fs.existsSync(asset.from)) {
20
- throw new Error(`Runtime asset not found: ${asset.from}`);
21
- }
22
-
23
- fs.mkdirSync(path.dirname(asset.to), { recursive: true });
24
- fs.copyFileSync(asset.from, asset.to);
25
- console.log(`[copy-runtime-assets] Copied ${path.relative(root, asset.from)} -> ${path.relative(root, asset.to)}`);
26
- }
@@ -1,264 +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
-
7
- const root = process.cwd();
8
- const defaultSourcePath = path.join(root, "config", "mcp.json");
9
- const defaultOutDir = path.join(root, "generated", "mcp");
10
- const defaultImports = [
11
- "cursor",
12
- "claude-code",
13
- "claude-desktop",
14
- "codex",
15
- "windsurf",
16
- "opencode",
17
- "vscode"
18
- ];
19
-
20
- function parseArgs(argv) {
21
- const args = {
22
- configPath: defaultSourcePath,
23
- outDir: defaultOutDir,
24
- strictEnv: false
25
- };
26
-
27
- for (let i = 2; i < argv.length; i += 1) {
28
- const token = argv[i];
29
- if (token === "--strict-env") {
30
- args.strictEnv = true;
31
- continue;
32
- }
33
- if (token === "--config") {
34
- args.configPath = path.resolve(argv[i + 1]);
35
- i += 1;
36
- continue;
37
- }
38
- if (token === "--out") {
39
- args.outDir = path.resolve(argv[i + 1]);
40
- i += 1;
41
- continue;
42
- }
43
- throw new Error(`Unknown argument: ${token}`);
44
- }
45
-
46
- return args;
47
- }
48
-
49
- function readJson(filePath) {
50
- return JSON.parse(fs.readFileSync(filePath, "utf8"));
51
- }
52
-
53
- function ensureDir(dirPath) {
54
- fs.mkdirSync(dirPath, { recursive: true });
55
- }
56
-
57
- function writeJson(filePath, data) {
58
- fs.writeFileSync(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf8");
59
- }
60
-
61
- function sha256File(filePath) {
62
- const hash = crypto.createHash("sha256");
63
- hash.update(fs.readFileSync(filePath));
64
- return hash.digest("hex");
65
- }
66
-
67
- function sortObjectKeys(input) {
68
- if (Array.isArray(input)) {
69
- return input.map(sortObjectKeys);
70
- }
71
- if (input && typeof input === "object") {
72
- const sorted = {};
73
- for (const key of Object.keys(input).sort()) {
74
- sorted[key] = sortObjectKeys(input[key]);
75
- }
76
- return sorted;
77
- }
78
- return input;
79
- }
80
-
81
- function extractEnvPlaceholders(servers) {
82
- const placeholders = [];
83
- for (const [serverName, server] of Object.entries(servers)) {
84
- const env = server?.env || {};
85
- for (const [envKey, value] of Object.entries(env)) {
86
- if (typeof value !== "string") continue;
87
- const match = value.match(/^\$\{([A-Z0-9_]+)\}$/);
88
- if (match) {
89
- placeholders.push({ serverName, envKey, variable: match[1] });
90
- }
91
- }
92
- }
93
- return placeholders;
94
- }
95
-
96
- function validateConfig(config, strictEnv) {
97
- if (!config || typeof config !== "object") {
98
- throw new Error("Invalid config: expected object");
99
- }
100
-
101
- if (!config.defaults || typeof config.defaults !== "object") {
102
- throw new Error("Invalid config: defaults must be an object");
103
- }
104
-
105
- if (!config.servers || typeof config.servers !== "object") {
106
- throw new Error("Invalid config: servers must be an object");
107
- }
108
-
109
- const serverNames = Object.keys(config.servers);
110
- if (serverNames.length === 0) {
111
- throw new Error("Invalid config: at least one server is required");
112
- }
113
-
114
- for (const [serverName, server] of Object.entries(config.servers)) {
115
- if (!server || typeof server !== "object") {
116
- throw new Error(`Invalid server ${serverName}: expected object`);
117
- }
118
- if (!server.command || typeof server.command !== "string") {
119
- throw new Error(`Invalid server ${serverName}: command is required`);
120
- }
121
- if (!Array.isArray(server.args)) {
122
- throw new Error(`Invalid server ${serverName}: args must be an array`);
123
- }
124
- if (!server.transport || typeof server.transport !== "string") {
125
- throw new Error(`Invalid server ${serverName}: transport is required`);
126
- }
127
- if (!server.env || typeof server.env !== "object") {
128
- throw new Error(`Invalid server ${serverName}: env must be an object`);
129
- }
130
- }
131
-
132
- const includeServers = config.includeServers || [];
133
- if (includeServers.length > 0) {
134
- const unique = new Set(includeServers);
135
- if (unique.size !== includeServers.length) {
136
- throw new Error("Invalid config: includeServers contains duplicates");
137
- }
138
- for (const name of includeServers) {
139
- if (!config.servers[name]) {
140
- throw new Error(`Invalid config: includeServers references unknown server ${name}`);
141
- }
142
- }
143
- }
144
-
145
- if (strictEnv) {
146
- const unresolved = extractEnvPlaceholders(config.servers)
147
- .filter((entry) => !process.env[entry.variable]);
148
- if (unresolved.length > 0) {
149
- const first = unresolved[0];
150
- throw new Error(
151
- `Missing required env for strict mode: ${first.variable} (server=${first.serverName}, key=${first.envKey})`
152
- );
153
- }
154
- }
155
- }
156
-
157
- function selectServers(config) {
158
- const include = config.includeServers || [];
159
- if (include.length === 0) {
160
- return config.servers;
161
- }
162
- const selected = {};
163
- for (const serverName of include) {
164
- selected[serverName] = config.servers[serverName];
165
- }
166
- return selected;
167
- }
168
-
169
- function toOpenClawMemoryConfig(runtime) {
170
- return {
171
- memory: {
172
- backend: "qmd",
173
- qmd: {
174
- mcporter: {
175
- enabled: true,
176
- serverName: "qmd",
177
- startDaemon: true
178
- },
179
- limits: {
180
- timeoutMs: runtime.requestTimeoutMs,
181
- maxSnippetChars: runtime.resultMaxChars,
182
- maxResults: 12
183
- }
184
- }
185
- }
186
- };
187
- }
188
-
189
- function toMcporterConfig(servers) {
190
- return {
191
- mcpServers: servers,
192
- imports: defaultImports
193
- };
194
- }
195
-
196
- function removeLegacyProfileDirectories(outDir) {
197
- const removed = [];
198
- if (!fs.existsSync(outDir)) return;
199
- const entries = fs.readdirSync(outDir, { withFileTypes: true });
200
- for (const entry of entries) {
201
- if (entry.isDirectory()) {
202
- fs.rmSync(path.join(outDir, entry.name), { recursive: true, force: true });
203
- removed.push(entry.name);
204
- }
205
- }
206
- return removed;
207
- }
208
-
209
- function main() {
210
- const args = parseArgs(process.argv);
211
- const config = readJson(args.configPath);
212
-
213
- validateConfig(config, args.strictEnv);
214
-
215
- ensureDir(args.outDir);
216
- const removedLegacyDirs = removeLegacyProfileDirectories(args.outDir) || [];
217
-
218
- if (config.profiles && typeof config.profiles === "object") {
219
- console.warn(
220
- "[mcp-migration] legacy profiles detected in config/mcp.json and ignored by universal generator"
221
- );
222
- }
223
- if (removedLegacyDirs.length > 0) {
224
- console.warn(
225
- `[mcp-migration] removed legacy profile output directories: ${removedLegacyDirs.join(", ")}`
226
- );
227
- }
228
-
229
- const runtime = sortObjectKeys(config.defaults);
230
- const selectedServers = sortObjectKeys(selectServers(config));
231
-
232
- const fileMap = {
233
- "runtime.json": runtime,
234
- "mcp-servers.json": { mcpServers: selectedServers },
235
- "mcporter.json": toMcporterConfig(selectedServers),
236
- "openclaw-memory-qmd.json": toOpenClawMemoryConfig(runtime)
237
- };
238
-
239
- for (const [fileName, json] of Object.entries(fileMap)) {
240
- writeJson(path.join(args.outDir, fileName), json);
241
- }
242
-
243
- const manifestFiles = Object.keys(fileMap)
244
- .sort()
245
- .map((fileName) => {
246
- const filePath = path.join(args.outDir, fileName);
247
- return {
248
- file: fileName,
249
- sha256: sha256File(filePath)
250
- };
251
- });
252
-
253
- const manifest = {
254
- mode: "universal",
255
- generatedAt: new Date().toISOString(),
256
- source: path.relative(root, args.configPath).replace(/\\/g, "/"),
257
- files: manifestFiles
258
- };
259
-
260
- writeJson(path.join(args.outDir, "manifest.json"), manifest);
261
- console.log(`Generated universal MCP artifacts in ${args.outDir}`);
262
- }
263
-
264
- main();