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,37 +0,0 @@
1
- export interface ConsolidationStats {
2
- clustered: number;
3
- merged: number;
4
- tokensRecovered: number;
5
- deduped: number;
6
- consolidated: number;
7
- }
8
- export interface DeduplicationResult {
9
- duplicatesFound: number;
10
- mergedCount: number;
11
- tokensRecovered: number;
12
- groups: DuplicateGroup[];
13
- }
14
- export interface DuplicateGroup {
15
- canonicalId: string;
16
- duplicateIds: string[];
17
- similarity: number;
18
- reason: string;
19
- }
20
- /**
21
- * Run automated deduplication job
22
- * Finds and marks duplicates for review or auto-merges high-confidence duplicates
23
- */
24
- export declare function runDeduplicationJob(projectId?: string): Promise<DeduplicationResult>;
25
- /**
26
- * Run full consolidation job (dedup + memory consolidation)
27
- */
28
- export declare function runFullConsolidationJob(projectId?: string): Promise<ConsolidationStats>;
29
- /**
30
- * Get deduplication statistics
31
- */
32
- export declare function getDeduplicationStats(projectId?: string): Promise<{
33
- totalMemories: number;
34
- mergedMemories: number;
35
- pendingDuplicates: number;
36
- }>;
37
- //# sourceMappingURL=consolidation.d.ts.map
@@ -1,248 +0,0 @@
1
- // Memory Consolidation & Deduplication
2
- import { eq, inArray, and } from 'drizzle-orm';
3
- import { getDb } from '../db/index.js';
4
- import { getSchema } from '../db/schema.js';
5
- import { createAssociation } from './associations.js';
6
- import { logger } from './logger.js';
7
- import { consolidateMemories } from './memory/consolidation.js';
8
- /**
9
- * Run automated deduplication job
10
- * Finds and marks duplicates for review or auto-merges high-confidence duplicates
11
- */
12
- export async function runDeduplicationJob(projectId) {
13
- const result = {
14
- duplicatesFound: 0,
15
- mergedCount: 0,
16
- tokensRecovered: 0,
17
- groups: [],
18
- };
19
- try {
20
- const db = await getDb();
21
- const schema = await getSchema();
22
- // Get active memories for deduplication check
23
- const whereClause = projectId
24
- ? and(eq(schema.memories.projectId, projectId), eq(schema.memories.status, 'active'))
25
- : eq(schema.memories.status, 'active');
26
- const memories = await db
27
- .select()
28
- .from(schema.memories)
29
- .where(whereClause)
30
- .limit(500);
31
- if (memories.length < 2) {
32
- return result;
33
- }
34
- // Find duplicate groups using SimHash
35
- const duplicateGroups = await findDuplicatesBySimHash(memories);
36
- result.duplicatesFound = duplicateGroups.reduce((sum, g) => sum + g.duplicateIds.length, 0);
37
- // Auto-merge high-confidence duplicates (>0.95 similarity)
38
- for (const group of duplicateGroups) {
39
- if (group.similarity >= 0.95) {
40
- const tokensSaved = await autoMergeDuplicates(group.canonicalId, group.duplicateIds);
41
- result.mergedCount += group.duplicateIds.length;
42
- result.tokensRecovered += tokensSaved;
43
- }
44
- else {
45
- // Lower confidence - just create association for review
46
- for (const dupId of group.duplicateIds) {
47
- await createAssociation(group.canonicalId, dupId, 'duplicate', group.similarity);
48
- }
49
- }
50
- result.groups.push(group);
51
- }
52
- logger.info('Deduplication job completed', {
53
- duplicatesFound: result.duplicatesFound,
54
- mergedCount: result.mergedCount,
55
- tokensRecovered: result.tokensRecovered,
56
- });
57
- }
58
- catch (error) {
59
- logger.error('Deduplication job error', error);
60
- }
61
- return result;
62
- }
63
- /**
64
- * Find duplicates using SimHash (efficient near-duplicate detection)
65
- */
66
- async function findDuplicatesBySimHash(memories) {
67
- const groups = [];
68
- const processed = new Set();
69
- // Compute SimHash for each memory
70
- const hashes = memories.map(m => ({
71
- id: m.id,
72
- hash: computeSimHash(m.content),
73
- content: m.content,
74
- createdAt: m.createdAt,
75
- }));
76
- // Compare hashes to find similar content
77
- for (let i = 0; i < hashes.length; i++) {
78
- if (processed.has(hashes[i].id))
79
- continue;
80
- const duplicates = [];
81
- let maxSimilarity = 0;
82
- for (let j = i + 1; j < hashes.length; j++) {
83
- if (processed.has(hashes[j].id))
84
- continue;
85
- const hammingDistance = computeHammingDistance(hashes[i].hash, hashes[j].hash);
86
- const similarity = 1 - (hammingDistance / 64); // 64-bit hash
87
- if (similarity >= 0.85) {
88
- duplicates.push(hashes[j].id);
89
- maxSimilarity = Math.max(maxSimilarity, similarity);
90
- processed.add(hashes[j].id);
91
- }
92
- }
93
- if (duplicates.length > 0) {
94
- processed.add(hashes[i].id);
95
- groups.push({
96
- canonicalId: hashes[i].id, // Keep oldest as canonical
97
- duplicateIds: duplicates,
98
- similarity: maxSimilarity,
99
- reason: 'content-similarity',
100
- });
101
- }
102
- }
103
- return groups;
104
- }
105
- /**
106
- * Compute SimHash for text (64-bit fingerprint)
107
- */
108
- function computeSimHash(text) {
109
- const tokens = text.toLowerCase().split(/\s+/).filter(t => t.length > 2);
110
- const weights = new Array(64).fill(0);
111
- for (const token of tokens) {
112
- const hash = simpleHash(token);
113
- for (let i = 0; i < 64; i++) {
114
- if ((hash >> BigInt(i)) & 1n) {
115
- weights[i] += 1;
116
- }
117
- else {
118
- weights[i] -= 1;
119
- }
120
- }
121
- }
122
- let simHash = 0n;
123
- for (let i = 0; i < 64; i++) {
124
- if (weights[i] > 0) {
125
- simHash |= (1n << BigInt(i));
126
- }
127
- }
128
- return simHash;
129
- }
130
- /**
131
- * Simple hash function for strings
132
- */
133
- function simpleHash(str) {
134
- let hash = 0n;
135
- for (let i = 0; i < str.length; i++) {
136
- const char = BigInt(str.charCodeAt(i));
137
- hash = ((hash << 5n) - hash) + char;
138
- hash = hash & hash; // Convert to 64bit integer
139
- }
140
- return hash;
141
- }
142
- /**
143
- * Compute Hamming distance between two hashes
144
- */
145
- function computeHammingDistance(a, b) {
146
- let xor = a ^ b;
147
- let distance = 0;
148
- while (xor !== 0n) {
149
- distance += Number(xor & 1n);
150
- xor >>= 1n;
151
- }
152
- return distance;
153
- }
154
- /**
155
- * Auto-merge duplicates into canonical memory
156
- */
157
- async function autoMergeDuplicates(canonicalId, duplicateIds) {
158
- try {
159
- const db = await getDb();
160
- const schema = await getSchema();
161
- const now = new Date();
162
- // Calculate tokens recovered
163
- const duplicates = await db
164
- .select()
165
- .from(schema.memories)
166
- .where(inArray(schema.memories.id, duplicateIds));
167
- let tokensRecovered = 0;
168
- for (const dup of duplicates) {
169
- tokensRecovered += Math.ceil((dup.content?.length || 0) / 4);
170
- }
171
- // Mark duplicates as merged
172
- await db
173
- .update(schema.memories)
174
- .set({
175
- status: 'merged',
176
- mergedInto: canonicalId,
177
- mergedAt: now,
178
- updatedAt: now,
179
- })
180
- .where(inArray(schema.memories.id, duplicateIds));
181
- // Create associations for traceability
182
- for (const dupId of duplicateIds) {
183
- await createAssociation(canonicalId, dupId, 'merged', 0.95);
184
- }
185
- return tokensRecovered;
186
- }
187
- catch (error) {
188
- logger.error('Error auto-merging duplicates', error);
189
- return 0;
190
- }
191
- }
192
- /**
193
- * Run full consolidation job (dedup + memory consolidation)
194
- */
195
- export async function runFullConsolidationJob(projectId) {
196
- const stats = {
197
- clustered: 0,
198
- merged: 0,
199
- tokensRecovered: 0,
200
- deduped: 0,
201
- consolidated: 0,
202
- };
203
- // Run deduplication first
204
- const dedupResult = await runDeduplicationJob(projectId);
205
- stats.deduped = dedupResult.duplicatesFound;
206
- stats.merged = dedupResult.mergedCount;
207
- stats.tokensRecovered += dedupResult.tokensRecovered;
208
- // Run memory consolidation for each project
209
- if (projectId) {
210
- const consolidationResults = await consolidateMemories({
211
- projectId,
212
- minAge: 60,
213
- maxImportance: 25,
214
- minClusterSize: 3,
215
- limit: 100,
216
- });
217
- stats.consolidated = consolidationResults.length;
218
- stats.clustered = consolidationResults.reduce((sum, r) => sum + r.clusterSize, 0);
219
- }
220
- logger.info('Full consolidation job completed', stats);
221
- return stats;
222
- }
223
- /**
224
- * Get deduplication statistics
225
- */
226
- export async function getDeduplicationStats(projectId) {
227
- try {
228
- const db = await getDb();
229
- const schema = await getSchema();
230
- const whereClause = projectId
231
- ? eq(schema.memories.projectId, projectId)
232
- : undefined;
233
- const memories = await db
234
- .select()
235
- .from(schema.memories)
236
- .where(whereClause);
237
- return {
238
- totalMemories: memories.length,
239
- mergedMemories: memories.filter((m) => m.status === 'merged').length,
240
- pendingDuplicates: 0, // Would need to query associations
241
- };
242
- }
243
- catch (error) {
244
- logger.error('Error getting deduplication stats', error);
245
- return { totalMemories: 0, mergedMemories: 0, pendingDuplicates: 0 };
246
- }
247
- }
248
- //# sourceMappingURL=consolidation.js.map
@@ -1,106 +0,0 @@
1
- /**
2
- * Agent Context API - Direct access for agents
3
- *
4
- * Provides a simple API for agents to get context without CLI calls.
5
- * Use this instead of spawning squish CLI processes.
6
- *
7
- * Usage:
8
- * import { getAgentContext, searchWithPlace } from './core/context/agent-context.js';
9
- *
10
- * const context = await getAgentContext(projectPath, { task: "fix bug" });
11
- * const results = await searchWithPlace(projectPath, "error fix", { limit: 5 });
12
- */
13
- export interface AgentContextOptions {
14
- /** Current task or action (helps auto-detect relevant place) */
15
- task?: string;
16
- /** Preferred tier: quick (50 tokens), medium (170), full (500) */
17
- tier?: 'quick' | 'medium' | 'full';
18
- /** Max memories to return */
19
- limit?: number;
20
- /** Include place context */
21
- includePlaces?: boolean;
22
- }
23
- export interface SearchOptions {
24
- /** Query string */
25
- query: string;
26
- /** Optional place filter */
27
- place?: string;
28
- /** Max results */
29
- limit?: number;
30
- /** Memory type filter */
31
- type?: string;
32
- }
33
- /**
34
- * Get agent context - the main function I can call directly
35
- *
36
- * Instead of: squish context --tier medium --has-memories
37
- * Use: const ctx = await getAgentContext(projectPath, { task: "fix bug", tier: "medium" })
38
- */
39
- export declare function getAgentContext(projectPath: string, options?: AgentContextOptions): Promise<{
40
- ok: boolean;
41
- memories: Array<{
42
- id: string;
43
- type: string;
44
- content: string;
45
- place?: string;
46
- placeType?: string;
47
- }>;
48
- places: Array<{
49
- name: string;
50
- type: string;
51
- purpose?: string;
52
- memories: number;
53
- preview?: string[];
54
- }>;
55
- sessionId?: string;
56
- tokens?: number;
57
- }>;
58
- /**
59
- * Search memories with automatic place detection
60
- *
61
- * If query contains keywords associated with a place (e.g., "fix" -> Workshop),
62
- * it will automatically include that place in results or boost those results.
63
- */
64
- export declare function searchWithPlace(projectPath: string, query: string, options?: SearchOptions): Promise<{
65
- ok: boolean;
66
- query: string;
67
- autoDetectedPlace?: string;
68
- count: number;
69
- results: Array<{
70
- id: string;
71
- type: string;
72
- content: string;
73
- score: number;
74
- place?: string;
75
- placeType?: string;
76
- }>;
77
- }>;
78
- /**
79
- * Get single memory with place info
80
- */
81
- export declare function getMemoryWithPlace(projectPath: string, memoryId: string): Promise<{
82
- ok: boolean;
83
- memory?: {
84
- id: string;
85
- type: string;
86
- content: string;
87
- tags: string[];
88
- createdAt: Date;
89
- place?: string;
90
- placeType?: string;
91
- };
92
- }>;
93
- /**
94
- * Quick context for session start - lightweight version
95
- * Use this when you just need the basics without full context
96
- */
97
- export declare function getQuickContext(projectPath: string, limit?: number): Promise<{
98
- ok: boolean;
99
- memories: Array<{
100
- id: string;
101
- type: string;
102
- content: string;
103
- }>;
104
- activePlaces: string[];
105
- }>;
106
- //# sourceMappingURL=agent-context.d.ts.map
@@ -1,274 +0,0 @@
1
- /**
2
- * Agent Context API - Direct access for agents
3
- *
4
- * Provides a simple API for agents to get context without CLI calls.
5
- * Use this instead of spawning squish CLI processes.
6
- *
7
- * Usage:
8
- * import { getAgentContext, searchWithPlace } from './core/context/agent-context.js';
9
- *
10
- * const context = await getAgentContext(projectPath, { task: "fix bug" });
11
- * const results = await searchWithPlace(projectPath, "error fix", { limit: 5 });
12
- */
13
- import { getRecent, search } from '../memory/memories.js';
14
- import { getProjectByPath } from '../projects.js';
15
- import { ensureProject } from '../projects.js';
16
- import { initializeDefaultPlaces, getProjectPlaces, getMemoryPlace, getPlace, walkPlace } from '../places/index.js';
17
- import { logger } from '../logger.js';
18
- /**
19
- * Get agent context - the main function I can call directly
20
- *
21
- * Instead of: squish context --tier medium --has-memories
22
- * Use: const ctx = await getAgentContext(projectPath, { task: "fix bug", tier: "medium" })
23
- */
24
- export async function getAgentContext(projectPath, options = {}) {
25
- try {
26
- await ensureProject(projectPath);
27
- const project = await getProjectByPath(projectPath);
28
- if (!project) {
29
- return { ok: false, memories: [], places: [] };
30
- }
31
- const tier = options.tier || 'medium';
32
- const limit = options.limit || 5;
33
- const includePlaces = options.includePlaces !== false;
34
- // Get recent memories
35
- const memories = await getRecent(projectPath, limit);
36
- // Add place info to each memory
37
- const memoriesWithPlace = await Promise.all(memories.map(async (m) => {
38
- const placeId = await getMemoryPlace(m.id);
39
- let placeInfo = {};
40
- if (placeId) {
41
- const place = await getPlace(placeId);
42
- placeInfo = { place: place?.name || null, placeType: place?.placeType || null };
43
- }
44
- return {
45
- id: m.id,
46
- type: m.type,
47
- content: m.content || m.content,
48
- ...placeInfo,
49
- };
50
- }));
51
- // Get places context
52
- let places = [];
53
- if (includePlaces) {
54
- await initializeDefaultPlaces(project.id);
55
- const projectPlaces = await getProjectPlaces(project.id);
56
- // Filter to populated places only
57
- const populatedPlaces = projectPlaces.filter(p => p.memoryCount > 0);
58
- if (tier === 'quick') {
59
- // Just names
60
- places = populatedPlaces.map(p => ({
61
- name: p.name,
62
- type: p.placeType,
63
- memories: p.memoryCount,
64
- }));
65
- }
66
- else if (tier === 'medium') {
67
- // Top 3 per place
68
- const mediumPlaces = [];
69
- for (const p of populatedPlaces.slice(0, 5)) {
70
- const walkResult = await walkPlace(project.id, p.placeType, {
71
- tokenBudget: 170,
72
- maxMemoriesPerPlace: 3,
73
- compressWithToon: false,
74
- });
75
- mediumPlaces.push({
76
- name: p.name,
77
- type: p.placeType,
78
- purpose: p.purpose,
79
- memories: p.memoryCount,
80
- preview: walkResult?.memories.slice(0, 3).map((m) => m.content?.substring(0, 80)) || [],
81
- });
82
- }
83
- places = mediumPlaces;
84
- }
85
- else {
86
- // Full
87
- places = populatedPlaces.map(p => ({
88
- name: p.name,
89
- type: p.placeType,
90
- purpose: p.purpose,
91
- memories: p.memoryCount,
92
- }));
93
- }
94
- }
95
- // Estimate token count
96
- const tokens = tier === 'quick' ? 50 : tier === 'medium' ? 170 : 500;
97
- return {
98
- ok: true,
99
- memories: memoriesWithPlace,
100
- places,
101
- tokens,
102
- };
103
- }
104
- catch (error) {
105
- logger.error('[AgentContext] Error getting context:', error);
106
- return { ok: false, memories: [], places: [] };
107
- }
108
- }
109
- /**
110
- * Search memories with automatic place detection
111
- *
112
- * If query contains keywords associated with a place (e.g., "fix" -> Workshop),
113
- * it will automatically include that place in results or boost those results.
114
- */
115
- export async function searchWithPlace(projectPath, query, options = { query, limit: 10 }) {
116
- try {
117
- await ensureProject(projectPath);
118
- const project = await getProjectByPath(projectPath);
119
- if (!project) {
120
- return { ok: false, query, count: 0, results: [] };
121
- }
122
- // Search
123
- const results = await search({
124
- query,
125
- type: options.type,
126
- limit: (options.limit || 10) * 2,
127
- project: projectPath,
128
- });
129
- const limited = results.slice(0, options.limit || 10);
130
- // Auto-detect place from query keywords
131
- const autoPlace = detectPlaceFromQuery(query);
132
- // Add place info to results
133
- const resultsWithPlace = await Promise.all(limited.map(async (r) => {
134
- const placeId = await getMemoryPlace(r.id);
135
- let placeInfo = { place: null, placeType: null };
136
- if (placeId) {
137
- const place = await getPlace(placeId);
138
- placeInfo = {
139
- place: place?.name || null,
140
- placeType: place?.placeType || null,
141
- };
142
- }
143
- return {
144
- id: r.id,
145
- type: r.type,
146
- content: r.content,
147
- score: r.similarity ?? 0,
148
- ...placeInfo,
149
- };
150
- }));
151
- // Filter by place if specified or auto-detected
152
- let filtered = resultsWithPlace;
153
- const placeFilter = options.place || autoPlace;
154
- if (placeFilter) {
155
- filtered = resultsWithPlace.filter((r) => r.placeType === placeFilter);
156
- }
157
- return {
158
- ok: true,
159
- query,
160
- autoDetectedPlace: autoPlace || undefined,
161
- count: filtered.length,
162
- results: filtered,
163
- };
164
- }
165
- catch (error) {
166
- logger.error('[AgentContext] Error searching:', error);
167
- return { ok: false, query, count: 0, results: [] };
168
- }
169
- }
170
- /**
171
- * Detect place type from query keywords
172
- *
173
- * Maps common terms to place types:
174
- * - fix, bug, error, issue -> workshop (fixing stuff)
175
- * - design, plan, architecture, api -> library (learning/docs)
176
- * - task, todo, manage, organize -> office (work management)
177
- * - code, implement, feature -> workshop
178
- * - research, learn, study -> library
179
- * - experiment, test, try -> lab
180
- * - review, archive -> archive
181
- */
182
- function detectPlaceFromQuery(query) {
183
- const q = query.toLowerCase();
184
- // Map keywords to places
185
- const keywords = {
186
- workshop: ['fix', 'bug', 'error', 'issue', 'code', 'implement', 'feature', 'refactor', 'debug'],
187
- library: ['design', 'plan', 'architecture', 'api', 'learn', 'research', 'study', 'documentation', 'docs'],
188
- office: ['task', 'todo', 'manage', 'organize', 'schedule', 'meeting', 'project'],
189
- lab: ['test', 'experiment', 'try', 'verify', 'prototype', 'poc'],
190
- garden: ['idea', 'brainstorm', 'create', 'design', 'concept'],
191
- archive: ['review', 'archive', 'old', 'past', 'historical'],
192
- };
193
- // Check each place's keywords
194
- for (const [placeType, words] of Object.entries(keywords)) {
195
- for (const word of words) {
196
- if (q.includes(word)) {
197
- return placeType;
198
- }
199
- }
200
- }
201
- return null;
202
- }
203
- /**
204
- * Get single memory with place info
205
- */
206
- export async function getMemoryWithPlace(projectPath, memoryId) {
207
- try {
208
- const { getMemory } = await import('../memory/memories.js');
209
- const memory = await getMemory(memoryId);
210
- if (!memory) {
211
- return { ok: false };
212
- }
213
- // Get place info
214
- const placeId = await getMemoryPlace(memoryId);
215
- let placeInfo = {};
216
- if (placeId) {
217
- const place = await getPlace(placeId);
218
- placeInfo = {
219
- place: place?.name || null,
220
- placeType: place?.placeType || null,
221
- };
222
- }
223
- return {
224
- ok: true,
225
- memory: {
226
- id: memory.id,
227
- type: memory.type,
228
- content: memory.content || '',
229
- tags: memory.tags || [],
230
- createdAt: memory.createdAt,
231
- ...placeInfo,
232
- },
233
- };
234
- }
235
- catch (error) {
236
- logger.error('[AgentContext] Error getting memory:', error);
237
- return { ok: false };
238
- }
239
- }
240
- /**
241
- * Quick context for session start - lightweight version
242
- * Use this when you just need the basics without full context
243
- */
244
- export async function getQuickContext(projectPath, limit = 3) {
245
- try {
246
- await ensureProject(projectPath);
247
- const project = await getProjectByPath(projectPath);
248
- if (!project) {
249
- return { ok: false, memories: [], activePlaces: [] };
250
- }
251
- // Get recent memories
252
- const memories = await getRecent(projectPath, limit);
253
- // Get places with memories
254
- await initializeDefaultPlaces(project.id);
255
- const places = await getProjectPlaces(project.id);
256
- const activePlaces = places
257
- .filter(p => p.memoryCount > 0)
258
- .map(p => p.name);
259
- return {
260
- ok: true,
261
- memories: memories.map((m) => ({
262
- id: m.id,
263
- type: m.type,
264
- content: m.content?.substring(0, 100) || '',
265
- })),
266
- activePlaces,
267
- };
268
- }
269
- catch (error) {
270
- logger.error('[AgentContext] Error getting quick context:', error);
271
- return { ok: false, memories: [], activePlaces: [] };
272
- }
273
- }
274
- //# sourceMappingURL=agent-context.js.map