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,30 +0,0 @@
1
- /** Obsidian Vault Integration
2
- *
3
- * Appends hot memories to Obsidian daily notes
4
- * Format: YYYY-MM-DD.md with memory blocks
5
- */
6
- export interface ObsidianMemoryInput {
7
- content: string;
8
- id: string;
9
- type: string;
10
- tags: string[];
11
- reasoning?: string;
12
- memoryContext?: string;
13
- examples?: string;
14
- exceptions?: string;
15
- source?: string;
16
- }
17
- /**
18
- * Append a memory to the daily note in Obsidian vault
19
- * Creates YYYY-MM-DD.md file if it doesn't exist
20
- */
21
- export declare function appendToObsidianVault(memory: ObsidianMemoryInput, vaultPath: string): Promise<void>;
22
- /**
23
- * Check if Obsidian vault is connected and accessible
24
- */
25
- export declare function isObsidianConnected(vaultPath: string): boolean;
26
- /**
27
- * Read existing memories from Obsidian vault (for future import feature)
28
- */
29
- export declare function readFromVault(vaultPath: string): Promise<ObsidianMemoryInput[]>;
30
- //# sourceMappingURL=obsidian-vault.d.ts.map
@@ -1,94 +0,0 @@
1
- /** Obsidian Vault Integration
2
- *
3
- * Appends hot memories to Obsidian daily notes
4
- * Format: YYYY-MM-DD.md with memory blocks
5
- */
6
- import { existsSync, mkdirSync, appendFileSync } from 'fs';
7
- import { join } from 'path';
8
- import { logger } from './logger.js';
9
- /**
10
- * Append a memory to the daily note in Obsidian vault
11
- * Creates YYYY-MM-DD.md file if it doesn't exist
12
- */
13
- export async function appendToObsidianVault(memory, vaultPath) {
14
- const today = new Date();
15
- const year = today.getFullYear();
16
- const month = String(today.getMonth() + 1).padStart(2, '0');
17
- const day = String(today.getDate()).padStart(2, '0');
18
- const dateStr = `${year}-${month}-${day}`;
19
- const dailyNotePath = join(vaultPath, `${dateStr}.md`);
20
- // Ensure vault directory exists
21
- if (!existsSync(vaultPath)) {
22
- mkdirSync(vaultPath, { recursive: true });
23
- logger.info(`[Obsidian] Created vault directory: ${vaultPath}`);
24
- }
25
- // Build memory block content
26
- const memoryBlock = formatMemoryAsBlock(memory);
27
- // Check if daily note exists, if not create with header
28
- if (!existsSync(dailyNotePath)) {
29
- const header = `# ${dateStr}\n\n## Squish Memories\n\n`;
30
- appendFileSync(dailyNotePath, header, 'utf-8');
31
- logger.info(`[Obsidian] Created daily note: ${dailyNotePath}`);
32
- }
33
- // Append memory block
34
- appendFileSync(dailyNotePath, memoryBlock + '\n\n', 'utf-8');
35
- logger.info(`[Obsidian] Appended memory to ${dateStr}.md`);
36
- }
37
- /**
38
- * Format memory as Obsidian-compatible block
39
- */
40
- function formatMemoryAsBlock(memory) {
41
- const lines = [];
42
- // Memory content as checkbox (can be toggled in Obsidian)
43
- lines.push(`- [ ] "${memory.content}"`);
44
- // Add ID reference for linking
45
- lines.push(` - **id:** \`${memory.id}\``);
46
- // Type and tags
47
- if (memory.type) {
48
- lines.push(` - **type:** ${memory.type}`);
49
- }
50
- if (memory.tags && memory.tags.length > 0) {
51
- const tagList = memory.tags.map(t => `#${t.replace(/\s+/g, '-')}`).join(' ');
52
- lines.push(` - **tags:** ${tagList}`);
53
- }
54
- // Rich context fields
55
- if (memory.source) {
56
- lines.push(` - **source:** ${memory.source}`);
57
- }
58
- if (memory.reasoning) {
59
- lines.push(` - **reasoning:** ${memory.reasoning}`);
60
- }
61
- if (memory.memoryContext) {
62
- lines.push(` - **context:** ${memory.memoryContext}`);
63
- }
64
- if (memory.examples) {
65
- lines.push(` - **examples:** ${memory.examples}`);
66
- }
67
- if (memory.exceptions) {
68
- lines.push(` - **exceptions:** ${memory.exceptions}`);
69
- }
70
- return lines.join('\n');
71
- }
72
- /**
73
- * Check if Obsidian vault is connected and accessible
74
- */
75
- export function isObsidianConnected(vaultPath) {
76
- if (!vaultPath || vaultPath === '') {
77
- return false;
78
- }
79
- // Check if path exists or can be created
80
- const parentDir = vaultPath.includes('/')
81
- ? vaultPath.split('/').slice(0, -1).join('/')
82
- : vaultPath.split('\\').slice(0, -1).join('\\');
83
- return existsSync(parentDir) || true; // Assume creatable if parent exists
84
- }
85
- /**
86
- * Read existing memories from Obsidian vault (for future import feature)
87
- */
88
- export async function readFromVault(vaultPath) {
89
- // Future: Read .md files and parse memory blocks
90
- // For MVP, this is placeholder
91
- logger.info(`[Obsidian] readFromVault called for: ${vaultPath}`);
92
- return [];
93
- }
94
- //# sourceMappingURL=obsidian-vault.js.map
@@ -1,14 +0,0 @@
1
- /**
2
- * Places Module - Spatial memory organization (Method of Loci)
3
- *
4
- * Exports:
5
- * - places.ts: CRUD operations for places
6
- * - rules.ts: Auto-assignment rules engine
7
- * - memory-places.ts: Memory-to-place assignments
8
- * - walking.ts: Sequential walking through places
9
- */
10
- export * from './places.js';
11
- export * from './rules.js';
12
- export * from './memory-places.js';
13
- export * from './walking.js';
14
- //# sourceMappingURL=index.d.ts.map
@@ -1,68 +0,0 @@
1
- /**
2
- * Memory-Place Assignments - Assign memories to places
3
- *
4
- * Handles the assignment of memories to places, both:
5
- * - Auto-assignment via rules
6
- * - Manual assignment by users
7
- */
8
- import type { PlaceType } from './places.js';
9
- /**
10
- * Assign a memory to a place (auto or manual)
11
- */
12
- export declare function assignMemoryToPlace(params: {
13
- memoryId: string;
14
- placeId: string;
15
- isManual?: boolean;
16
- ruleId?: string;
17
- }): Promise<boolean>;
18
- /**
19
- * Auto-assign a memory based on rules
20
- */
21
- export declare function autoAssignMemory(params: {
22
- memoryId: string;
23
- projectId: string;
24
- toolName?: string;
25
- content?: string;
26
- tags?: string[];
27
- memoryType?: string;
28
- }): Promise<{
29
- assigned: boolean;
30
- placeId?: string;
31
- placeType?: PlaceType;
32
- }>;
33
- /**
34
- * Manually assign a memory to a place
35
- */
36
- export declare function manualAssignMemory(params: {
37
- memoryId: string;
38
- projectId: string;
39
- placeType: PlaceType;
40
- }): Promise<boolean>;
41
- /**
42
- * Get place for a memory
43
- */
44
- export declare function getMemoryPlace(memoryId: string): Promise<string | null>;
45
- /**
46
- * Get memories for a place
47
- */
48
- export declare function getPlaceMemories(placeId: string, limit?: number): Promise<string[]>;
49
- /**
50
- * Remove memory from place
51
- */
52
- export declare function removeMemoryFromPlace(memoryId: string): Promise<boolean>;
53
- /**
54
- * Initialize memory-place for a project (ensures all memories without places get assigned)
55
- */
56
- export declare function initializeProjectPlaces(projectId: string): Promise<{
57
- initialized: number;
58
- assigned: number;
59
- }>;
60
- /**
61
- * Auto-archive old memories - move memories > 30 days from active places to Archive
62
- * Keeps active places lean and organized
63
- */
64
- export declare function autoArchiveOldMemories(projectId: string, daysOld?: number): Promise<{
65
- archived: number;
66
- failed: number;
67
- }>;
68
- //# sourceMappingURL=memory-places.d.ts.map
@@ -1,261 +0,0 @@
1
- /**
2
- * Memory-Place Assignments - Assign memories to places
3
- *
4
- * Handles the assignment of memories to places, both:
5
- * - Auto-assignment via rules
6
- * - Manual assignment by users
7
- */
8
- import { randomUUID } from 'crypto';
9
- import { eq, and } from 'drizzle-orm';
10
- import { getDb } from '../../db/index.js';
11
- import { getSchema } from '../../db/schema.js';
12
- import { logger } from '../logger.js';
13
- import { getPlaceByType, updatePlaceMemoryCount } from './places.js';
14
- import { findMatchingPlace } from './rules.js';
15
- /**
16
- * Assign a memory to a place (auto or manual)
17
- */
18
- export async function assignMemoryToPlace(params) {
19
- const db = await getDb();
20
- if (!db)
21
- return false;
22
- const schema = await getSchema();
23
- const sqliteDb = db;
24
- const id = randomUUID();
25
- // Check if already assigned
26
- const existing = await sqliteDb.select()
27
- .from(schema.memoryPlaces)
28
- .where(eq(schema.memoryPlaces.memoryId, params.memoryId))
29
- .limit(1);
30
- if (existing.length > 0) {
31
- // Update existing
32
- await sqliteDb.update(schema.memoryPlaces)
33
- .set({
34
- placeId: params.placeId,
35
- isManual: params.isManual ? 1 : 0,
36
- ruleId: params.ruleId || null,
37
- })
38
- .where(eq(schema.memoryPlaces.memoryId, params.memoryId));
39
- }
40
- else {
41
- // Insert new
42
- await sqliteDb.insert(schema.memoryPlaces).values({
43
- id,
44
- memoryId: params.memoryId,
45
- placeId: params.placeId,
46
- isManual: params.isManual ? 1 : 0,
47
- ruleId: params.ruleId || null,
48
- });
49
- }
50
- // Update memory's place reference
51
- await sqliteDb.update(schema.memories)
52
- .set({ placeId: params.placeId })
53
- .where(eq(schema.memories.id, params.memoryId));
54
- // Update place memory count
55
- await updatePlaceMemoryCount(params.placeId);
56
- logger.info(`[MemoryPlaces] Assigned memory ${params.memoryId} to place ${params.placeId}`);
57
- return true;
58
- }
59
- /**
60
- * Auto-assign a memory based on rules
61
- */
62
- export async function autoAssignMemory(params) {
63
- const { memoryId, projectId, toolName, content, tags, memoryType } = params;
64
- // Find matching place via rules
65
- const placeType = await findMatchingPlace(projectId, {
66
- toolName,
67
- content,
68
- tags,
69
- memoryType,
70
- });
71
- if (!placeType) {
72
- logger.info(`[MemoryPlaces] No matching rule for memory ${memoryId}`);
73
- return { assigned: false };
74
- }
75
- // Get the place
76
- const place = await getPlaceByType(projectId, placeType);
77
- if (!place) {
78
- logger.warn(`[MemoryPlaces] Place not found: ${placeType}`);
79
- return { assigned: false };
80
- }
81
- // Assign
82
- const success = await assignMemoryToPlace({
83
- memoryId,
84
- placeId: place.id,
85
- isManual: false,
86
- });
87
- return {
88
- assigned: success,
89
- placeId: place.id,
90
- placeType,
91
- };
92
- }
93
- /**
94
- * Manually assign a memory to a place
95
- */
96
- export async function manualAssignMemory(params) {
97
- const { memoryId, projectId, placeType } = params;
98
- // Get the place by type
99
- const place = await getPlaceByType(projectId, placeType);
100
- if (!place) {
101
- logger.warn(`[MemoryPlaces] Place not found: ${placeType}`);
102
- return false;
103
- }
104
- return assignMemoryToPlace({
105
- memoryId,
106
- placeId: place.id,
107
- isManual: true,
108
- });
109
- }
110
- /**
111
- * Get place for a memory
112
- */
113
- export async function getMemoryPlace(memoryId) {
114
- const db = await getDb();
115
- if (!db)
116
- return null;
117
- const schema = await getSchema();
118
- const sqliteDb = db;
119
- const result = await sqliteDb.select()
120
- .from(schema.memoryPlaces)
121
- .where(eq(schema.memoryPlaces.memoryId, memoryId))
122
- .limit(1);
123
- return result.length > 0 ? result[0].place_id : null;
124
- }
125
- /**
126
- * Get memories for a place
127
- */
128
- export async function getPlaceMemories(placeId, limit = 50) {
129
- const db = await getDb();
130
- if (!db)
131
- return [];
132
- const schema = await getSchema();
133
- const sqliteDb = db;
134
- const results = await sqliteDb.select({ memoryId: schema.memoryPlaces.memoryId })
135
- .from(schema.memoryPlaces)
136
- .where(eq(schema.memoryPlaces.placeId, placeId))
137
- .limit(limit);
138
- return results.map((r) => r.memoryId);
139
- }
140
- /**
141
- * Remove memory from place
142
- */
143
- export async function removeMemoryFromPlace(memoryId) {
144
- const db = await getDb();
145
- if (!db)
146
- return false;
147
- const schema = await getSchema();
148
- const sqliteDb = db;
149
- // Get the place before deleting
150
- const existing = await sqliteDb.select()
151
- .from(schema.memoryPlaces)
152
- .where(eq(schema.memoryPlaces.memoryId, memoryId))
153
- .limit(1);
154
- if (existing.length > 0) {
155
- const oldPlaceId = existing[0].place_id;
156
- // Delete assignment
157
- await sqliteDb.delete(schema.memoryPlaces)
158
- .where(eq(schema.memoryPlaces.memoryId, memoryId));
159
- // Clear memory's place reference
160
- await sqliteDb.update(schema.memories)
161
- .set({ placeId: null })
162
- .where(eq(schema.memories.id, memoryId));
163
- // Update old place memory count
164
- await updatePlaceMemoryCount(oldPlaceId);
165
- logger.info(`[MemoryPlaces] Removed memory ${memoryId} from place ${oldPlaceId}`);
166
- }
167
- return true;
168
- }
169
- /**
170
- * Initialize memory-place for a project (ensures all memories without places get assigned)
171
- */
172
- export async function initializeProjectPlaces(projectId) {
173
- const db = await getDb();
174
- if (!db)
175
- return { initialized: 0, assigned: 0 };
176
- const schema = await getSchema();
177
- const sqliteDb = db;
178
- // Get all memories without a place_id
179
- const memoriesWithoutPlace = await sqliteDb.select({ id: schema.memories.id })
180
- .from(schema.memories)
181
- .where(and(eq(schema.memories.projectId, projectId)));
182
- let assigned = 0;
183
- for (const mem of memoriesWithoutPlace) {
184
- const result = await autoAssignMemory({
185
- memoryId: mem.id,
186
- projectId,
187
- memoryType: 'observation',
188
- });
189
- if (result.assigned)
190
- assigned++;
191
- }
192
- logger.info(`[MemoryPlaces] Initialized places for project ${projectId}: ${assigned} assigned`);
193
- return { initialized: memoriesWithoutPlace.length, assigned };
194
- }
195
- /**
196
- * Auto-archive old memories - move memories > 30 days from active places to Archive
197
- * Keeps active places lean and organized
198
- */
199
- export async function autoArchiveOldMemories(projectId, daysOld = 30) {
200
- const db = await getDb();
201
- if (!db)
202
- return { archived: 0, failed: 0 };
203
- const schema = await getSchema();
204
- const sqliteDb = db;
205
- // Get the Archive place
206
- const archivePlace = await getPlaceByType(projectId, 'archive');
207
- if (!archivePlace) {
208
- logger.warn(`[MemoryPlaces] Archive place not found for project ${projectId}`);
209
- return { archived: 0, failed: 0 };
210
- }
211
- // Calculate cutoff date (Unix timestamp for SQLite)
212
- const cutoffDate = new Date();
213
- cutoffDate.setDate(cutoffDate.getDate() - daysOld);
214
- const cutoffTimestamp = Math.floor(cutoffDate.getTime() / 1000);
215
- // Get all active place IDs (not archive)
216
- const allPlaces = await sqliteDb.select()
217
- .from(schema.places)
218
- .where(eq(schema.places.projectId, projectId));
219
- const activePlaceIds = allPlaces
220
- .filter((p) => p.place_type !== 'archive')
221
- .map((p) => p.id);
222
- if (activePlaceIds.length === 0) {
223
- return { archived: 0, failed: 0 };
224
- }
225
- // Find memories in active places that are older than cutoff
226
- // Use raw SQL for complex date comparison
227
- const oldMemories = await sqliteDb.select({
228
- memoryId: schema.memories.id,
229
- placeId: schema.memoryPlaces.placeId,
230
- createdAt: schema.memories.createdAt,
231
- })
232
- .from(schema.memories)
233
- .innerJoin(schema.memoryPlaces, eq(schema.memories.id, schema.memoryPlaces.memoryId))
234
- .where(and(eq(schema.memories.projectId, projectId)));
235
- // Actually filter in JS for simplicity
236
- const memoriesToArchive = oldMemories.filter((m) => activePlaceIds.includes(m.placeId) && m.createdAt < cutoffTimestamp);
237
- let archived = 0;
238
- let failed = 0;
239
- for (const mem of memoriesToArchive) {
240
- try {
241
- // Move to archive place
242
- await sqliteDb.update(schema.memoryPlaces)
243
- .set({ placeId: archivePlace.id })
244
- .where(eq(schema.memoryPlaces.memoryId, mem.memoryId));
245
- // Update the old place's memory count
246
- await updatePlaceMemoryCount(mem.placeId);
247
- archived++;
248
- }
249
- catch (e) {
250
- logger.warn(`[MemoryPlaces] Failed to archive memory ${mem.memoryId}: ${e}`);
251
- failed++;
252
- }
253
- }
254
- // Update archive place memory count
255
- if (archived > 0) {
256
- await updatePlaceMemoryCount(archivePlace.id);
257
- logger.info(`[MemoryPlaces] Archived ${archived} old memories to Archive place`);
258
- }
259
- return { archived, failed };
260
- }
261
- //# sourceMappingURL=memory-places.js.map
@@ -1,88 +0,0 @@
1
- /**
2
- * Places Module - Spatial memory organization (Method of Loci)
3
- *
4
- * Provides spatial "places" for memory organization:
5
- * - Entry Hall: Project overview, goals
6
- * - Library: Research, patterns, discoveries
7
- * - Workshop: Implementation, code, fixes
8
- * - Lab: Experiments, tests, trials
9
- * - Office: Decisions, planning, roadmap
10
- * - Garden: Ideas, future concepts
11
- * - Archive: Completed, historical
12
- */
13
- export type PlaceType = 'entry_hall' | 'library' | 'workshop' | 'lab' | 'office' | 'garden' | 'archive';
14
- export interface Place {
15
- id: string;
16
- projectId: string;
17
- name: string;
18
- placeType: PlaceType;
19
- parentId: string | null;
20
- lociIndex: number;
21
- positionX: number;
22
- positionY: number;
23
- description: string | null;
24
- purpose: string | null;
25
- memoryCount: number;
26
- createdAt: Date;
27
- updatedAt: Date;
28
- }
29
- export interface PlaceCreateInput {
30
- projectId: string;
31
- name: string;
32
- placeType: PlaceType;
33
- parentId?: string | null;
34
- lociIndex?: number;
35
- description?: string;
36
- purpose?: string;
37
- }
38
- export interface PlaceUpdateInput {
39
- name?: string;
40
- description?: string;
41
- purpose?: string;
42
- lociIndex?: number;
43
- positionX?: number;
44
- positionY?: number;
45
- }
46
- export declare const DEFAULT_PLACES: Omit<PlaceCreateInput, 'projectId'>[];
47
- /**
48
- * Create a new place
49
- */
50
- export declare function createPlace(input: PlaceCreateInput): Promise<Place>;
51
- /**
52
- * Get a place by ID
53
- */
54
- export declare function getPlace(id: string): Promise<Place | null>;
55
- /**
56
- * Get places for a project, ordered by loci_index
57
- */
58
- export declare function getProjectPlaces(projectId: string): Promise<Place[]>;
59
- /**
60
- * Get place by type for a project
61
- */
62
- export declare function getPlaceByType(projectId: string, placeType: PlaceType): Promise<Place | null>;
63
- /**
64
- * Update a place
65
- */
66
- export declare function updatePlace(id: string, input: PlaceUpdateInput): Promise<Place | null>;
67
- /**
68
- * Delete a place
69
- */
70
- export declare function deletePlace(id: string): Promise<boolean>;
71
- /**
72
- * Initialize default 7 places for a project
73
- */
74
- export declare function initializeDefaultPlaces(projectId: string): Promise<Place[]>;
75
- /**
76
- * Get place by loci index
77
- */
78
- export declare function getPlaceByLociIndex(projectId: string, lociIndex: number): Promise<Place | null>;
79
- /**
80
- * Update memory count for a place
81
- */
82
- export declare function updatePlaceMemoryCount(placeId: string): Promise<void>;
83
- /**
84
- * Sync all place memory counts - recalculate counts for all places in a project
85
- * Useful for fixing counts after bulk operations or data recovery
86
- */
87
- export declare function syncAllPlaceMemoryCounts(projectId: string): Promise<void>;
88
- //# sourceMappingURL=places.d.ts.map