squish-memory 1.2.0 → 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 (449) hide show
  1. package/bin/squish-mcp.mjs +40 -42
  2. package/core/scheduler/cron-scheduler.ts +10 -1
  3. package/core/worker.ts +10 -1
  4. package/package.json +119 -119
  5. package/packages/mcp/src/index.ts +99 -36
  6. package/dist/config.d.ts +0 -106
  7. package/dist/config.js +0 -194
  8. package/dist/core/adapters/config/claude-code.d.ts +0 -45
  9. package/dist/core/adapters/config/claude-code.js +0 -113
  10. package/dist/core/adapters/config/cursor.d.ts +0 -26
  11. package/dist/core/adapters/config/cursor.js +0 -74
  12. package/dist/core/adapters/config/opencode.d.ts +0 -23
  13. package/dist/core/adapters/config/opencode.js +0 -73
  14. package/dist/core/adapters/config/windsurf.d.ts +0 -26
  15. package/dist/core/adapters/config/windsurf.js +0 -74
  16. package/dist/core/adapters/index.d.ts +0 -45
  17. package/dist/core/adapters/index.js +0 -84
  18. package/dist/core/adapters/scripts/install-adapter.d.ts +0 -19
  19. package/dist/core/adapters/scripts/install-adapter.js +0 -149
  20. package/dist/core/adapters/timeline.d.ts +0 -23
  21. package/dist/core/adapters/timeline.js +0 -88
  22. package/dist/core/adapters/types.d.ts +0 -137
  23. package/dist/core/adapters/types.js +0 -50
  24. package/dist/core/agent-preferences.d.ts +0 -16
  25. package/dist/core/agent-preferences.js +0 -124
  26. package/dist/core/algorithms/analytics/token-estimator.d.ts +0 -50
  27. package/dist/core/algorithms/analytics/token-estimator.js +0 -154
  28. package/dist/core/algorithms/detection/hash-filters.d.ts +0 -47
  29. package/dist/core/algorithms/detection/hash-filters.js +0 -190
  30. package/dist/core/algorithms/detection/semantic-ranker.d.ts +0 -32
  31. package/dist/core/algorithms/detection/semantic-ranker.js +0 -118
  32. package/dist/core/algorithms/detection/two-stage-detector.d.ts +0 -52
  33. package/dist/core/algorithms/detection/two-stage-detector.js +0 -299
  34. package/dist/core/algorithms/handlers/approve-merge.d.ts +0 -22
  35. package/dist/core/algorithms/handlers/approve-merge.js +0 -179
  36. package/dist/core/algorithms/handlers/detect-duplicates.d.ts +0 -47
  37. package/dist/core/algorithms/handlers/detect-duplicates.js +0 -145
  38. package/dist/core/algorithms/handlers/get-stats.d.ts +0 -39
  39. package/dist/core/algorithms/handlers/get-stats.js +0 -88
  40. package/dist/core/algorithms/handlers/list-proposals.d.ts +0 -45
  41. package/dist/core/algorithms/handlers/list-proposals.js +0 -83
  42. package/dist/core/algorithms/handlers/preview-merge.d.ts +0 -39
  43. package/dist/core/algorithms/handlers/preview-merge.js +0 -93
  44. package/dist/core/algorithms/handlers/reject-merge.d.ts +0 -28
  45. package/dist/core/algorithms/handlers/reject-merge.js +0 -69
  46. package/dist/core/algorithms/handlers/reverse-merge.d.ts +0 -21
  47. package/dist/core/algorithms/handlers/reverse-merge.js +0 -121
  48. package/dist/core/algorithms/index.d.ts +0 -21
  49. package/dist/core/algorithms/index.js +0 -26
  50. package/dist/core/algorithms/operations/cache-maintenance.d.ts +0 -12
  51. package/dist/core/algorithms/operations/cache-maintenance.js +0 -157
  52. package/dist/core/algorithms/safety/safety-checks.d.ts +0 -18
  53. package/dist/core/algorithms/safety/safety-checks.js +0 -179
  54. package/dist/core/algorithms/strategies/merge-strategies.d.ts +0 -50
  55. package/dist/core/algorithms/strategies/merge-strategies.js +0 -288
  56. package/dist/core/algorithms/types.d.ts +0 -125
  57. package/dist/core/algorithms/types.js +0 -5
  58. package/dist/core/algorithms/utils/response-builder.d.ts +0 -28
  59. package/dist/core/algorithms/utils/response-builder.js +0 -37
  60. package/dist/core/associations.d.ts +0 -33
  61. package/dist/core/associations.js +0 -284
  62. package/dist/core/autosave.d.ts +0 -19
  63. package/dist/core/autosave.js +0 -16
  64. package/dist/core/beliefs/decay.d.ts +0 -27
  65. package/dist/core/beliefs/decay.js +0 -217
  66. package/dist/core/beliefs/extractor.d.ts +0 -9
  67. package/dist/core/beliefs/extractor.js +0 -113
  68. package/dist/core/beliefs/store.d.ts +0 -46
  69. package/dist/core/beliefs/store.js +0 -466
  70. package/dist/core/beliefs/types.d.ts +0 -28
  71. package/dist/core/beliefs/types.js +0 -2
  72. package/dist/core/commands/mcp-server.d.ts +0 -2
  73. package/dist/core/commands/mcp-server.js +0 -6
  74. package/dist/core/commands/remember.d.ts +0 -24
  75. package/dist/core/commands/remember.js +0 -144
  76. package/dist/core/compression.d.ts +0 -45
  77. package/dist/core/compression.js +0 -160
  78. package/dist/core/consolidation.d.ts +0 -37
  79. package/dist/core/consolidation.js +0 -248
  80. package/dist/core/context/agent-context.d.ts +0 -106
  81. package/dist/core/context/agent-context.js +0 -274
  82. package/dist/core/context/context-paging.d.ts +0 -80
  83. package/dist/core/context/context-paging.js +0 -328
  84. package/dist/core/context/context-window.d.ts +0 -40
  85. package/dist/core/context/context-window.js +0 -177
  86. package/dist/core/context/context.d.ts +0 -7
  87. package/dist/core/context/context.js +0 -22
  88. package/dist/core/embeddings/embeddings.d.ts +0 -29
  89. package/dist/core/embeddings/embeddings.js +0 -546
  90. package/dist/core/embeddings/google-multimodal.d.ts +0 -14
  91. package/dist/core/embeddings/google-multimodal.js +0 -146
  92. package/dist/core/embeddings/local-embeddings.d.ts +0 -11
  93. package/dist/core/embeddings/local-embeddings.js +0 -11
  94. package/dist/core/embeddings/qmd-client.d.ts +0 -136
  95. package/dist/core/embeddings/qmd-client.js +0 -403
  96. package/dist/core/embeddings/transformers-local.d.ts +0 -64
  97. package/dist/core/embeddings/transformers-local.js +0 -213
  98. package/dist/core/embeddings.d.ts +0 -2
  99. package/dist/core/embeddings.js +0 -3
  100. package/dist/core/error-handling.d.ts +0 -63
  101. package/dist/core/error-handling.js +0 -173
  102. package/dist/core/graph/entity-deduplicator.d.ts +0 -24
  103. package/dist/core/graph/entity-deduplicator.js +0 -183
  104. package/dist/core/graph/graph-builder.d.ts +0 -46
  105. package/dist/core/graph/graph-builder.js +0 -174
  106. package/dist/core/graph/graph-traversal.d.ts +0 -80
  107. package/dist/core/graph/graph-traversal.js +0 -315
  108. package/dist/core/graph/index.d.ts +0 -19
  109. package/dist/core/graph/index.js +0 -13
  110. package/dist/core/graph/llm-entity-extractor.d.ts +0 -49
  111. package/dist/core/graph/llm-entity-extractor.js +0 -313
  112. package/dist/core/graph/multi-hop-retrieval.d.ts +0 -48
  113. package/dist/core/graph/multi-hop-retrieval.js +0 -215
  114. package/dist/core/graph/relationship-extractor.d.ts +0 -48
  115. package/dist/core/graph/relationship-extractor.js +0 -351
  116. package/dist/core/hooks/agent-hooks.d.ts +0 -83
  117. package/dist/core/hooks/agent-hooks.js +0 -521
  118. package/dist/core/hooks/auto-tagger.d.ts +0 -19
  119. package/dist/core/hooks/auto-tagger.js +0 -155
  120. package/dist/core/hooks/capture-filter.d.ts +0 -41
  121. package/dist/core/hooks/capture-filter.js +0 -128
  122. package/dist/core/hot-cache.d.ts +0 -86
  123. package/dist/core/hot-cache.js +0 -285
  124. package/dist/core/index.d.ts +0 -10
  125. package/dist/core/index.js +0 -11
  126. package/dist/core/ingestion/agent-memory.d.ts +0 -22
  127. package/dist/core/ingestion/agent-memory.js +0 -109
  128. package/dist/core/ingestion/core-memory.d.ts +0 -78
  129. package/dist/core/ingestion/core-memory.js +0 -226
  130. package/dist/core/ingestion/learnings.d.ts +0 -57
  131. package/dist/core/ingestion/learnings.js +0 -205
  132. package/dist/core/ingestion/signal-engine.d.ts +0 -41
  133. package/dist/core/ingestion/signal-engine.js +0 -201
  134. package/dist/core/integrations/obsidian-vault.d.ts +0 -31
  135. package/dist/core/integrations/obsidian-vault.js +0 -156
  136. package/dist/core/layers/generator.d.ts +0 -25
  137. package/dist/core/layers/generator.js +0 -76
  138. package/dist/core/lib/db-client.d.ts +0 -114
  139. package/dist/core/lib/db-client.js +0 -130
  140. package/dist/core/lib/parse-embedding.d.ts +0 -9
  141. package/dist/core/lib/parse-embedding.js +0 -58
  142. package/dist/core/lib/schemas.d.ts +0 -132
  143. package/dist/core/lib/schemas.js +0 -87
  144. package/dist/core/lib/types.d.ts +0 -45
  145. package/dist/core/lib/types.js +0 -6
  146. package/dist/core/lib/utils.d.ts +0 -18
  147. package/dist/core/lib/utils.js +0 -145
  148. package/dist/core/lib/validation.d.ts +0 -38
  149. package/dist/core/lib/validation.js +0 -151
  150. package/dist/core/lifecycle.d.ts +0 -25
  151. package/dist/core/lifecycle.js +0 -292
  152. package/dist/core/logger.d.ts +0 -17
  153. package/dist/core/logger.js +0 -46
  154. package/dist/core/mcp/client.d.ts +0 -17
  155. package/dist/core/mcp/client.js +0 -101
  156. package/dist/core/mcp/index.d.ts +0 -6
  157. package/dist/core/mcp/index.js +0 -6
  158. package/dist/core/mcp/server.d.ts +0 -18
  159. package/dist/core/mcp/server.js +0 -157
  160. package/dist/core/mcp/standalone-server.d.ts +0 -13
  161. package/dist/core/mcp/standalone-server.js +0 -46
  162. package/dist/core/mcp/tools.d.ts +0 -7
  163. package/dist/core/mcp/tools.js +0 -278
  164. package/dist/core/mcp/types.d.ts +0 -87
  165. package/dist/core/mcp/types.js +0 -48
  166. package/dist/core/memory/bridge-discovery.d.ts +0 -50
  167. package/dist/core/memory/bridge-discovery.js +0 -291
  168. package/dist/core/memory/categorizer.d.ts +0 -27
  169. package/dist/core/memory/categorizer.js +0 -306
  170. package/dist/core/memory/conflict-detector.d.ts +0 -7
  171. package/dist/core/memory/conflict-detector.js +0 -43
  172. package/dist/core/memory/consolidation.d.ts +0 -42
  173. package/dist/core/memory/consolidation.js +0 -277
  174. package/dist/core/memory/context-collector.d.ts +0 -10
  175. package/dist/core/memory/context-collector.js +0 -56
  176. package/dist/core/memory/contradiction-resolver.d.ts +0 -40
  177. package/dist/core/memory/contradiction-resolver.js +0 -368
  178. package/dist/core/memory/edit-workflow.d.ts +0 -19
  179. package/dist/core/memory/edit-workflow.js +0 -120
  180. package/dist/core/memory/entity-extractor.d.ts +0 -37
  181. package/dist/core/memory/entity-extractor.js +0 -350
  182. package/dist/core/memory/entity-resolver.d.ts +0 -23
  183. package/dist/core/memory/entity-resolver.js +0 -64
  184. package/dist/core/memory/explain.d.ts +0 -18
  185. package/dist/core/memory/explain.js +0 -92
  186. package/dist/core/memory/fact-deriver.d.ts +0 -31
  187. package/dist/core/memory/fact-deriver.js +0 -236
  188. package/dist/core/memory/fact-extractor.d.ts +0 -24
  189. package/dist/core/memory/fact-extractor.js +0 -89
  190. package/dist/core/memory/feedback-tracker.d.ts +0 -12
  191. package/dist/core/memory/feedback-tracker.js +0 -155
  192. package/dist/core/memory/hooks.d.ts +0 -88
  193. package/dist/core/memory/hooks.js +0 -174
  194. package/dist/core/memory/hybrid-retrieval.d.ts +0 -27
  195. package/dist/core/memory/hybrid-retrieval.js +0 -37
  196. package/dist/core/memory/hybrid-scorer.d.ts +0 -40
  197. package/dist/core/memory/hybrid-scorer.js +0 -267
  198. package/dist/core/memory/hybrid-search.d.ts +0 -23
  199. package/dist/core/memory/hybrid-search.js +0 -596
  200. package/dist/core/memory/importance.d.ts +0 -46
  201. package/dist/core/memory/importance.js +0 -241
  202. package/dist/core/memory/index.d.ts +0 -9
  203. package/dist/core/memory/index.js +0 -11
  204. package/dist/core/memory/loader.d.ts +0 -31
  205. package/dist/core/memory/loader.js +0 -141
  206. package/dist/core/memory/markdown/markdown-storage.d.ts +0 -72
  207. package/dist/core/memory/markdown/markdown-storage.js +0 -243
  208. package/dist/core/memory/memories.d.ts +0 -43
  209. package/dist/core/memory/memories.js +0 -452
  210. package/dist/core/memory/memory-lifecycle.d.ts +0 -8
  211. package/dist/core/memory/memory-lifecycle.js +0 -47
  212. package/dist/core/memory/memory-manager.d.ts +0 -15
  213. package/dist/core/memory/memory-manager.js +0 -46
  214. package/dist/core/memory/migrate.d.ts +0 -21
  215. package/dist/core/memory/migrate.js +0 -134
  216. package/dist/core/memory/normalization.d.ts +0 -7
  217. package/dist/core/memory/normalization.js +0 -26
  218. package/dist/core/memory/path-strengthener.d.ts +0 -39
  219. package/dist/core/memory/path-strengthener.js +0 -150
  220. package/dist/core/memory/progressive-disclosure.d.ts +0 -43
  221. package/dist/core/memory/progressive-disclosure.js +0 -280
  222. package/dist/core/memory/query-processor.d.ts +0 -21
  223. package/dist/core/memory/query-processor.js +0 -106
  224. package/dist/core/memory/query-rewriter.d.ts +0 -13
  225. package/dist/core/memory/query-rewriter.js +0 -118
  226. package/dist/core/memory/response-analyzer.d.ts +0 -9
  227. package/dist/core/memory/response-analyzer.js +0 -61
  228. package/dist/core/memory/retrieval-feedback.d.ts +0 -70
  229. package/dist/core/memory/retrieval-feedback.js +0 -213
  230. package/dist/core/memory/serialization.d.ts +0 -10
  231. package/dist/core/memory/serialization.js +0 -84
  232. package/dist/core/memory/stale-cleaner.d.ts +0 -26
  233. package/dist/core/memory/stale-cleaner.js +0 -97
  234. package/dist/core/memory/stats.d.ts +0 -32
  235. package/dist/core/memory/stats.js +0 -143
  236. package/dist/core/memory/telemetry.d.ts +0 -69
  237. package/dist/core/memory/telemetry.js +0 -313
  238. package/dist/core/memory/temporal-facts.d.ts +0 -41
  239. package/dist/core/memory/temporal-facts.js +0 -283
  240. package/dist/core/memory/temporal-parser.d.ts +0 -32
  241. package/dist/core/memory/temporal-parser.js +0 -385
  242. package/dist/core/memory/trigger-detector.d.ts +0 -21
  243. package/dist/core/memory/trigger-detector.js +0 -79
  244. package/dist/core/memory/write-gate.d.ts +0 -54
  245. package/dist/core/memory/write-gate.js +0 -210
  246. package/dist/core/places/index.d.ts +0 -14
  247. package/dist/core/places/index.js +0 -14
  248. package/dist/core/places/memory-places.d.ts +0 -68
  249. package/dist/core/places/memory-places.js +0 -261
  250. package/dist/core/places/places.d.ts +0 -88
  251. package/dist/core/places/places.js +0 -314
  252. package/dist/core/places/rules.d.ts +0 -74
  253. package/dist/core/places/rules.js +0 -240
  254. package/dist/core/places/walking.d.ts +0 -56
  255. package/dist/core/places/walking.js +0 -121
  256. package/dist/core/projects.d.ts +0 -17
  257. package/dist/core/projects.js +0 -116
  258. package/dist/core/redis.d.ts +0 -11
  259. package/dist/core/redis.js +0 -69
  260. package/dist/core/responses.d.ts +0 -96
  261. package/dist/core/responses.js +0 -122
  262. package/dist/core/runtime/trust-report.d.ts +0 -102
  263. package/dist/core/runtime/trust-report.js +0 -107
  264. package/dist/core/runtime/trust-state.d.ts +0 -12
  265. package/dist/core/runtime/trust-state.js +0 -309
  266. package/dist/core/scheduler/cron-scheduler.d.ts +0 -32
  267. package/dist/core/scheduler/cron-scheduler.js +0 -493
  268. package/dist/core/scheduler/heartbeat.d.ts +0 -11
  269. package/dist/core/scheduler/heartbeat.js +0 -73
  270. package/dist/core/scheduler/index.d.ts +0 -8
  271. package/dist/core/scheduler/index.js +0 -8
  272. package/dist/core/scheduler/job-runner.d.ts +0 -11
  273. package/dist/core/scheduler/job-runner.js +0 -164
  274. package/dist/core/search/conversations.d.ts +0 -25
  275. package/dist/core/search/conversations.js +0 -110
  276. package/dist/core/search/entities.d.ts +0 -12
  277. package/dist/core/search/entities.js +0 -31
  278. package/dist/core/search/folder-context.d.ts +0 -25
  279. package/dist/core/search/folder-context.js +0 -119
  280. package/dist/core/search/graph-boost.d.ts +0 -7
  281. package/dist/core/search/graph-boost.js +0 -23
  282. package/dist/core/search/index.d.ts +0 -4
  283. package/dist/core/search/index.js +0 -5
  284. package/dist/core/search/qmd-wrapper.d.ts +0 -36
  285. package/dist/core/search/qmd-wrapper.js +0 -58
  286. package/dist/core/security/encrypt.d.ts +0 -6
  287. package/dist/core/security/encrypt.js +0 -47
  288. package/dist/core/security/governance.d.ts +0 -26
  289. package/dist/core/security/governance.js +0 -79
  290. package/dist/core/security/privacy.d.ts +0 -23
  291. package/dist/core/security/privacy.js +0 -82
  292. package/dist/core/security/secret-detector.d.ts +0 -32
  293. package/dist/core/security/secret-detector.js +0 -88
  294. package/dist/core/session/auto-load.d.ts +0 -6
  295. package/dist/core/session/auto-load.js +0 -144
  296. package/dist/core/session/entity-tracker.d.ts +0 -62
  297. package/dist/core/session/entity-tracker.js +0 -287
  298. package/dist/core/session/index.d.ts +0 -7
  299. package/dist/core/session/index.js +0 -7
  300. package/dist/core/session/reference-resolver.d.ts +0 -26
  301. package/dist/core/session/reference-resolver.js +0 -121
  302. package/dist/core/session/self-iteration-job.d.ts +0 -35
  303. package/dist/core/session/self-iteration-job.js +0 -387
  304. package/dist/core/session/session-hooks.d.ts +0 -18
  305. package/dist/core/session/session-hooks.js +0 -58
  306. package/dist/core/session/types.d.ts +0 -26
  307. package/dist/core/session/types.js +0 -10
  308. package/dist/core/session/working-set.d.ts +0 -50
  309. package/dist/core/session/working-set.js +0 -212
  310. package/dist/core/snapshots/cleanup.d.ts +0 -9
  311. package/dist/core/snapshots/cleanup.js +0 -12
  312. package/dist/core/snapshots/comparison.d.ts +0 -19
  313. package/dist/core/snapshots/comparison.js +0 -43
  314. package/dist/core/snapshots/creation.d.ts +0 -13
  315. package/dist/core/snapshots/creation.js +0 -117
  316. package/dist/core/snapshots/retrieval.d.ts +0 -7
  317. package/dist/core/snapshots/retrieval.js +0 -41
  318. package/dist/core/snapshots/stats.d.ts +0 -11
  319. package/dist/core/snapshots/stats.js +0 -52
  320. package/dist/core/storage/cache.d.ts +0 -13
  321. package/dist/core/storage/cache.js +0 -202
  322. package/dist/core/storage/database.d.ts +0 -12
  323. package/dist/core/storage/database.js +0 -12
  324. package/dist/core/summarization/cleanup.d.ts +0 -9
  325. package/dist/core/summarization/cleanup.js +0 -12
  326. package/dist/core/summarization/queries.d.ts +0 -9
  327. package/dist/core/summarization/queries.js +0 -28
  328. package/dist/core/summarization/stats.d.ts +0 -14
  329. package/dist/core/summarization/stats.js +0 -52
  330. package/dist/core/summarization/strategies.d.ts +0 -24
  331. package/dist/core/summarization/strategies.js +0 -28
  332. package/dist/core/summarization.d.ts +0 -37
  333. package/dist/core/summarization.js +0 -188
  334. package/dist/core/temporal-facts.d.ts +0 -54
  335. package/dist/core/temporal-facts.js +0 -193
  336. package/dist/core/tracing/collector.d.ts +0 -111
  337. package/dist/core/tracing/collector.js +0 -350
  338. package/dist/core/tracing/visualizer.d.ts +0 -32
  339. package/dist/core/tracing/visualizer.js +0 -165
  340. package/dist/core/utils/cleanup-operations.d.ts +0 -13
  341. package/dist/core/utils/cleanup-operations.js +0 -44
  342. package/dist/core/utils/content-extraction.d.ts +0 -19
  343. package/dist/core/utils/content-extraction.js +0 -75
  344. package/dist/core/utils/filter-builder.d.ts +0 -13
  345. package/dist/core/utils/filter-builder.js +0 -44
  346. package/dist/core/utils/history-traversal.d.ts +0 -13
  347. package/dist/core/utils/history-traversal.js +0 -50
  348. package/dist/core/utils/memory-operations.d.ts +0 -17
  349. package/dist/core/utils/memory-operations.js +0 -43
  350. package/dist/core/utils/query-operations.d.ts +0 -18
  351. package/dist/core/utils/query-operations.js +0 -65
  352. package/dist/core/utils/summarization-helpers.d.ts +0 -17
  353. package/dist/core/utils/summarization-helpers.js +0 -33
  354. package/dist/core/utils/temporal-queries.d.ts +0 -13
  355. package/dist/core/utils/temporal-queries.js +0 -27
  356. package/dist/core/utils/vector-operations.d.ts +0 -71
  357. package/dist/core/utils/vector-operations.js +0 -129
  358. package/dist/core/utils/version-management.d.ts +0 -9
  359. package/dist/core/utils/version-management.js +0 -61
  360. package/dist/core/worker.d.ts +0 -82
  361. package/dist/core/worker.js +0 -272
  362. package/dist/db/adapter.d.ts +0 -7
  363. package/dist/db/adapter.js +0 -175
  364. package/dist/db/bootstrap.d.ts +0 -11
  365. package/dist/db/bootstrap.js +0 -1034
  366. package/dist/db/drizzle/schema-sqlite.d.ts +0 -5538
  367. package/dist/db/drizzle/schema-sqlite.js +0 -763
  368. package/dist/db/drizzle/schema.d.ts +0 -4734
  369. package/dist/db/drizzle/schema.js +0 -859
  370. package/dist/db/drizzle.config.d.ts +0 -3
  371. package/dist/db/drizzle.config.js +0 -12
  372. package/dist/db/index.d.ts +0 -7
  373. package/dist/db/index.js +0 -89
  374. package/dist/db/migrations/associations.d.ts +0 -6
  375. package/dist/db/migrations/associations.js +0 -29
  376. package/dist/db/migrations/beliefs.d.ts +0 -10
  377. package/dist/db/migrations/beliefs.js +0 -76
  378. package/dist/db/migrations/core-memory.d.ts +0 -6
  379. package/dist/db/migrations/core-memory.js +0 -29
  380. package/dist/db/migrations/fts.d.ts +0 -6
  381. package/dist/db/migrations/fts.js +0 -52
  382. package/dist/db/migrations/index.d.ts +0 -25
  383. package/dist/db/migrations/index.js +0 -51
  384. package/dist/db/migrations/indexes.d.ts +0 -6
  385. package/dist/db/migrations/indexes.js +0 -30
  386. package/dist/db/migrations/learnings.d.ts +0 -7
  387. package/dist/db/migrations/learnings.js +0 -26
  388. package/dist/db/migrations/maintenance.d.ts +0 -6
  389. package/dist/db/migrations/maintenance.js +0 -61
  390. package/dist/db/migrations/memories.d.ts +0 -7
  391. package/dist/db/migrations/memories.js +0 -16
  392. package/dist/db/migrations/memory-places.d.ts +0 -6
  393. package/dist/db/migrations/memory-places.js +0 -29
  394. package/dist/db/migrations/places.d.ts +0 -6
  395. package/dist/db/migrations/places.js +0 -43
  396. package/dist/db/migrations/projects.d.ts +0 -3
  397. package/dist/db/migrations/projects.js +0 -13
  398. package/dist/db/migrations/tier-conversion.d.ts +0 -7
  399. package/dist/db/migrations/tier-conversion.js +0 -20
  400. package/dist/db/neon.d.ts +0 -8
  401. package/dist/db/neon.js +0 -20
  402. package/dist/db/schema/beliefs.d.ts +0 -9
  403. package/dist/db/schema/beliefs.js +0 -46
  404. package/dist/db/schema/generator.d.ts +0 -38
  405. package/dist/db/schema/generator.js +0 -108
  406. package/dist/db/schema/index.d.ts +0 -39
  407. package/dist/db/schema/index.js +0 -51
  408. package/dist/db/schema/learnings.d.ts +0 -7
  409. package/dist/db/schema/learnings.js +0 -30
  410. package/dist/db/schema/memories.d.ts +0 -7
  411. package/dist/db/schema/memories.js +0 -81
  412. package/dist/db/schema/projects.d.ts +0 -4
  413. package/dist/db/schema/projects.js +0 -31
  414. package/dist/db/schema/tables/context-sessions.d.ts +0 -9
  415. package/dist/db/schema/tables/context-sessions.js +0 -37
  416. package/dist/db/schema/tables/conversations.d.ts +0 -9
  417. package/dist/db/schema/tables/conversations.js +0 -47
  418. package/dist/db/schema/tables/core-memory.d.ts +0 -9
  419. package/dist/db/schema/tables/core-memory.js +0 -41
  420. package/dist/db/schema/tables/entities.d.ts +0 -9
  421. package/dist/db/schema/tables/entities.js +0 -39
  422. package/dist/db/schema/tables/entity-relations.d.ts +0 -9
  423. package/dist/db/schema/tables/entity-relations.js +0 -31
  424. package/dist/db/schema/tables/learnings.d.ts +0 -9
  425. package/dist/db/schema/tables/learnings.js +0 -66
  426. package/dist/db/schema/tables/memories.d.ts +0 -9
  427. package/dist/db/schema/tables/memories.js +0 -161
  428. package/dist/db/schema/tables/memory-associations.d.ts +0 -9
  429. package/dist/db/schema/tables/memory-associations.js +0 -39
  430. package/dist/db/schema/tables/memory-hash-cache.d.ts +0 -9
  431. package/dist/db/schema/tables/memory-hash-cache.js +0 -29
  432. package/dist/db/schema/tables/memory-merge-history.d.ts +0 -9
  433. package/dist/db/schema/tables/memory-merge-history.js +0 -33
  434. package/dist/db/schema/tables/memory-merge-proposals.d.ts +0 -9
  435. package/dist/db/schema/tables/memory-merge-proposals.js +0 -39
  436. package/dist/db/schema/tables/messages.d.ts +0 -9
  437. package/dist/db/schema/tables/messages.js +0 -41
  438. package/dist/db/schema/tables/namespaces.d.ts +0 -9
  439. package/dist/db/schema/tables/namespaces.js +0 -37
  440. package/dist/db/schema/tables/projects.d.ts +0 -9
  441. package/dist/db/schema/tables/projects.js +0 -31
  442. package/dist/db/schema/tables/users.d.ts +0 -9
  443. package/dist/db/schema/tables/users.js +0 -27
  444. package/dist/db/schema.d.ts +0 -3
  445. package/dist/db/schema.js +0 -11
  446. package/dist/db/supabase.d.ts +0 -9
  447. package/dist/db/supabase.js +0 -24
  448. package/dist/packages/mcp/src/index.d.ts +0 -3
  449. package/dist/packages/mcp/src/index.js +0 -733
@@ -1,314 +0,0 @@
1
- /**
2
- * Places Module - Spatial memory organization
3
- *
4
- * Provides spatial "places" for memory organization:
5
- * - Inbox: New memories, unprocessed
6
- * - Ref: Reference, patterns, research
7
- * - WIP: Active work, implementations
8
- * - Sandbox: Experiments, tests
9
- * - Board: Decisions, planning, roadmap
10
- * - Sparks: Ideas, future concepts
11
- * - Archive: Completed, historical
12
- */
13
- import { randomUUID } from 'crypto';
14
- import { eq, and, isNull } from 'drizzle-orm';
15
- import { getDb } from '../../db/index.js';
16
- import { getSchema } from '../../db/schema.js';
17
- import { logger } from '../logger.js';
18
- // Default places configuration
19
- export const DEFAULT_PLACES = [
20
- { name: 'Inbox', placeType: 'inbox', sortOrder: 0, description: 'New memories, unprocessed', purpose: 'Quick inbox for incoming memories' },
21
- { name: 'Ref', placeType: 'ref', sortOrder: 1, description: 'Reference, patterns, research', purpose: 'Reference knowledge and learned patterns' },
22
- { name: 'WIP', placeType: 'wip', sortOrder: 2, description: 'Active work, implementations', purpose: 'Active development and recent changes' },
23
- { name: 'Sandbox', placeType: 'sandbox', sortOrder: 3, description: 'Experiments, tests', purpose: 'Testing and exploration results' },
24
- { name: 'Board', placeType: 'board', sortOrder: 4, description: 'Decisions, planning, roadmap', purpose: 'Project direction and decisions' },
25
- { name: 'Sparks', placeType: 'sparks', sortOrder: 5, description: 'Ideas, future concepts', purpose: 'Brainstorming and upcoming plans' },
26
- { name: 'Archive', placeType: 'archive', sortOrder: 6, description: 'Completed, historical', purpose: 'Reference for completed work' },
27
- ];
28
- /**
29
- * Create a new place
30
- */
31
- export async function createPlace(input) {
32
- const db = await getDb();
33
- if (!db) {
34
- throw new Error('Database unavailable');
35
- }
36
- const schema = await getSchema();
37
- const sqliteDb = db;
38
- const id = randomUUID();
39
- // Check for duplicate
40
- const existing = await sqliteDb.select()
41
- .from(schema.places)
42
- .where(and(eq(schema.places.projectId, input.projectId), eq(schema.places.name, input.name), input.parentId
43
- ? eq(schema.places.parentId, input.parentId)
44
- : isNull(schema.places.parentId)))
45
- .limit(1);
46
- if (existing.length > 0) {
47
- throw new Error(`Place "${input.name}" already exists`);
48
- }
49
- await sqliteDb.insert(schema.places).values({
50
- id,
51
- projectId: input.projectId,
52
- name: input.name,
53
- placeType: input.placeType,
54
- parentId: input.parentId || null,
55
- sortOrder: input.sortOrder ?? 0,
56
- positionX: 0,
57
- positionY: 0,
58
- description: input.description || null,
59
- purpose: input.purpose || null,
60
- memoryCount: 0,
61
- });
62
- logger.info(`[Places] Created place: ${input.name} (${input.placeType})`);
63
- return {
64
- id,
65
- projectId: input.projectId,
66
- name: input.name,
67
- placeType: input.placeType,
68
- parentId: input.parentId || null,
69
- sortOrder: input.sortOrder ?? 0,
70
- positionX: 0,
71
- positionY: 0,
72
- description: input.description || null,
73
- purpose: input.purpose || null,
74
- memoryCount: 0,
75
- createdAt: new Date(),
76
- updatedAt: new Date(),
77
- };
78
- }
79
- /**
80
- * Get a place by ID
81
- */
82
- export async function getPlace(id) {
83
- const db = await getDb();
84
- if (!db)
85
- return null;
86
- const schema = await getSchema();
87
- const sqliteDb = db;
88
- const result = await sqliteDb.select()
89
- .from(schema.places)
90
- .where(eq(schema.places.id, id))
91
- .limit(1);
92
- if (result.length === 0)
93
- return null;
94
- const row = result[0];
95
- return {
96
- id: row.id,
97
- projectId: row.project_id,
98
- name: row.name,
99
- placeType: (row.place_type || row.placeType || 'custom'),
100
- parentId: row.parent_id || row.parentId || null,
101
- sortOrder: row.sort_order ?? row.sortOrder ?? 0,
102
- positionX: row.position_x ?? row.positionX ?? 0,
103
- positionY: row.position_y ?? row.positionY ?? 0,
104
- description: row.description,
105
- purpose: row.purpose,
106
- memoryCount: row.memory_count ?? row.memoryCount ?? 0,
107
- createdAt: new Date(row.created_at || row.createdAt || Date.now()),
108
- updatedAt: new Date(row.updated_at || row.updatedAt || Date.now()),
109
- };
110
- }
111
- /**
112
- * Get places for a project, ordered by sort_order
113
- */
114
- export async function getProjectPlaces(projectId) {
115
- const db = await getDb();
116
- if (!db)
117
- return [];
118
- const schema = await getSchema();
119
- const sqliteDb = db;
120
- const results = await sqliteDb.select()
121
- .from(schema.places)
122
- .where(eq(schema.places.projectId, projectId))
123
- .orderBy(schema.places.sortOrder);
124
- return results.map((row) => ({
125
- id: row.id,
126
- projectId: row.project_id,
127
- name: row.name,
128
- placeType: (row.place_type || row.placeType),
129
- parentId: row.parent_id || row.parentId,
130
- sortOrder: row.sort_order ?? row.sortOrder ?? 0,
131
- positionX: row.position_x ?? row.positionX ?? 0,
132
- positionY: row.position_y ?? row.positionY ?? 0,
133
- description: row.description,
134
- purpose: row.purpose,
135
- memoryCount: row.memory_count ?? row.memoryCount ?? 0,
136
- createdAt: new Date(row.created_at || row.createdAt),
137
- updatedAt: new Date(row.updated_at || row.updatedAt),
138
- }));
139
- }
140
- /**
141
- * Get place by type for a project
142
- */
143
- export async function getPlaceByType(projectId, placeType) {
144
- const db = await getDb();
145
- if (!db)
146
- return null;
147
- const schema = await getSchema();
148
- const sqliteDb = db;
149
- const result = await sqliteDb.select()
150
- .from(schema.places)
151
- .where(and(eq(schema.places.projectId, projectId), eq(schema.places.placeType, placeType)))
152
- .limit(1);
153
- if (result.length === 0)
154
- return null;
155
- const row = result[0];
156
- return {
157
- id: row.id,
158
- projectId: row.project_id,
159
- name: row.name,
160
- placeType: (row.place_type || row.placeType || 'custom'),
161
- parentId: row.parent_id || row.parentId || null,
162
- sortOrder: row.sort_order ?? row.sortOrder ?? 0,
163
- positionX: row.position_x ?? row.positionX ?? 0,
164
- positionY: row.position_y ?? row.positionY ?? 0,
165
- description: row.description,
166
- purpose: row.purpose,
167
- memoryCount: row.memory_count ?? row.memoryCount ?? 0,
168
- createdAt: new Date(row.created_at || row.createdAt || Date.now()),
169
- updatedAt: new Date(row.updated_at || row.updatedAt || Date.now()),
170
- };
171
- }
172
- /**
173
- * Update a place
174
- */
175
- export async function updatePlace(id, input) {
176
- const db = await getDb();
177
- if (!db)
178
- return null;
179
- const schema = await getSchema();
180
- const sqliteDb = db;
181
- const updateData = {};
182
- if (input.name !== undefined)
183
- updateData.name = input.name;
184
- if (input.description !== undefined)
185
- updateData.description = input.description;
186
- if (input.purpose !== undefined)
187
- updateData.purpose = input.purpose;
188
- if (input.sortOrder !== undefined)
189
- updateData.sortOrder = input.sortOrder;
190
- if (input.positionX !== undefined)
191
- updateData.positionX = input.positionX;
192
- if (input.positionY !== undefined)
193
- updateData.positionY = input.positionY;
194
- if (Object.keys(updateData).length === 0) {
195
- return getPlace(id);
196
- }
197
- await sqliteDb.update(schema.places)
198
- .set(updateData)
199
- .where(eq(schema.places.id, id));
200
- return getPlace(id);
201
- }
202
- /**
203
- * Delete a place
204
- */
205
- export async function deletePlace(id) {
206
- const db = await getDb();
207
- if (!db)
208
- return false;
209
- const schema = await getSchema();
210
- const sqliteDb = db;
211
- await sqliteDb.delete(schema.places).where(eq(schema.places.id, id));
212
- logger.info(`[Places] Deleted place: ${id}`);
213
- return true;
214
- }
215
- /**
216
- * Initialize default 7 places for a project
217
- */
218
- export async function initializeDefaultPlaces(projectId) {
219
- const created = [];
220
- for (const placeConfig of DEFAULT_PLACES) {
221
- // Check if place of this type already exists
222
- const existing = await getPlaceByType(projectId, placeConfig.placeType);
223
- if (existing) {
224
- created.push(existing);
225
- continue;
226
- }
227
- const place = await createPlace({
228
- projectId,
229
- name: placeConfig.name,
230
- placeType: placeConfig.placeType,
231
- parentId: null,
232
- sortOrder: placeConfig.sortOrder,
233
- description: placeConfig.description,
234
- purpose: placeConfig.purpose,
235
- });
236
- created.push(place);
237
- }
238
- // Also initialize default rules if none exist
239
- const { initializeDefaultRules } = await import('./rules.js');
240
- await initializeDefaultRules(projectId);
241
- logger.info(`[Places] Initialized ${created.length} default places for project: ${projectId}`);
242
- return created;
243
- }
244
- /**
245
- * Get place by loci index
246
- */
247
- export async function getPlaceByLociIndex(projectId, sortOrder) {
248
- const db = await getDb();
249
- if (!db)
250
- return null;
251
- const schema = await getSchema();
252
- const sqliteDb = db;
253
- const result = await sqliteDb.select()
254
- .from(schema.places)
255
- .where(and(eq(schema.places.projectId, projectId), eq(schema.places.sortOrder, sortOrder)))
256
- .limit(1);
257
- if (result.length === 0)
258
- return null;
259
- const row = result[0];
260
- return {
261
- id: row.id,
262
- projectId: row.project_id,
263
- name: row.name,
264
- placeType: (row.place_type || row.placeType || 'custom'),
265
- parentId: row.parent_id || row.parentId || null,
266
- sortOrder: row.sort_order ?? row.sortOrder ?? 0,
267
- positionX: row.position_x ?? row.positionX ?? 0,
268
- positionY: row.position_y ?? row.positionY ?? 0,
269
- description: row.description,
270
- purpose: row.purpose,
271
- memoryCount: row.memory_count ?? row.memoryCount ?? 0,
272
- createdAt: new Date(row.created_at || row.createdAt || Date.now()),
273
- updatedAt: new Date(row.updated_at || row.updatedAt || Date.now()),
274
- };
275
- }
276
- /**
277
- * Update memory count for a place
278
- */
279
- export async function updatePlaceMemoryCount(placeId) {
280
- const db = await getDb();
281
- if (!db)
282
- return;
283
- const schema = await getSchema();
284
- const sqliteDb = db;
285
- // Count memories in this place
286
- const countResult = await sqliteDb.select({ count: schema.memoryPlaces.id })
287
- .from(schema.memoryPlaces)
288
- .where(eq(schema.memoryPlaces.placeId, placeId));
289
- const count = countResult.length;
290
- await sqliteDb.update(schema.places)
291
- .set({ memoryCount: count })
292
- .where(eq(schema.places.id, placeId));
293
- }
294
- /**
295
- * Sync all place memory counts - recalculate counts for all places in a project
296
- * Useful for fixing counts after bulk operations or data recovery
297
- */
298
- export async function syncAllPlaceMemoryCounts(projectId) {
299
- const db = await getDb();
300
- if (!db)
301
- return;
302
- const schema = await getSchema();
303
- const sqliteDb = db;
304
- // Get all places for this project
305
- const allPlaces = await sqliteDb.select()
306
- .from(schema.places)
307
- .where(eq(schema.places.projectId, projectId));
308
- // Update each place's memory count
309
- for (const place of allPlaces) {
310
- await updatePlaceMemoryCount(place.id);
311
- }
312
- logger.info(`[Places] Synced memory counts for ${allPlaces.length} places`);
313
- }
314
- //# sourceMappingURL=places.js.map
@@ -1,74 +0,0 @@
1
- /**
2
- * Places Rules Engine - Auto-assignment logic
3
- *
4
- * Evaluates which place a memory should be assigned to based on:
5
- * - Tool used (Write, Edit, Task, etc.)
6
- * - Content keywords
7
- * - Tags
8
- * - Memory type
9
- */
10
- import type { PlaceType } from './places.js';
11
- export interface PlaceRule {
12
- id: string;
13
- projectId: string;
14
- name: string;
15
- placeType: PlaceType;
16
- matchTool: string | null;
17
- matchKeyword: string | null;
18
- matchTag: string | null;
19
- matchMemoryType: string | null;
20
- priority: number;
21
- enabled: boolean;
22
- createdAt: Date;
23
- updatedAt: Date;
24
- }
25
- export interface PlaceRuleCreateInput {
26
- projectId: string;
27
- name: string;
28
- placeType: PlaceType;
29
- matchTool?: string;
30
- matchKeyword?: string;
31
- matchTag?: string;
32
- matchMemoryType?: string;
33
- priority?: number;
34
- enabled?: boolean;
35
- }
36
- export interface RuleMatchInput {
37
- toolName?: string;
38
- content?: string;
39
- tags?: string[];
40
- memoryType?: string;
41
- }
42
- /**
43
- * Default auto-assignment rules
44
- */
45
- export declare const DEFAULT_RULES: Omit<PlaceRuleCreateInput, 'projectId'>[];
46
- /**
47
- * Create a place rule
48
- */
49
- export declare function createPlaceRule(input: PlaceRuleCreateInput): Promise<PlaceRule>;
50
- /**
51
- * Get rules for a project
52
- */
53
- export declare function getProjectRules(projectId: string): Promise<PlaceRule[]>;
54
- /**
55
- * Check if a rule matches the input
56
- */
57
- export declare function matchesRule(rule: PlaceRule, input: RuleMatchInput): boolean;
58
- /**
59
- * Find matching place for a memory based on rules
60
- */
61
- export declare function findMatchingPlace(projectId: string, input: RuleMatchInput): Promise<PlaceType | null>;
62
- /**
63
- * Initialize default rules for a project
64
- */
65
- export declare function initializeDefaultRules(projectId: string): Promise<PlaceRule[]>;
66
- /**
67
- * Delete a rule
68
- */
69
- export declare function deletePlaceRule(id: string): Promise<boolean>;
70
- /**
71
- * Update a rule
72
- */
73
- export declare function updatePlaceRule(id: string, updates: Partial<PlaceRuleCreateInput>): Promise<PlaceRule | null>;
74
- //# sourceMappingURL=rules.d.ts.map
@@ -1,240 +0,0 @@
1
- /**
2
- * Places Rules Engine - Auto-assignment logic
3
- *
4
- * Evaluates which place a memory should be assigned to based on:
5
- * - Tool used (Write, Edit, Task, etc.)
6
- * - Content keywords
7
- * - Tags
8
- * - Memory type
9
- */
10
- import { randomUUID } from 'crypto';
11
- import { eq, desc } from 'drizzle-orm';
12
- import { getDb } from '../../db/index.js';
13
- import { getSchema } from '../../db/schema.js';
14
- import { logger } from '../logger.js';
15
- /**
16
- * Default auto-assignment rules
17
- */
18
- export const DEFAULT_RULES = [
19
- // WIP - Implementation, code, fixes
20
- { name: 'Write to WIP', placeType: 'wip', matchTool: 'Write', priority: 100 },
21
- { name: 'Edit to WIP', placeType: 'wip', matchTool: 'Edit', priority: 100 },
22
- { name: 'MultiEdit to WIP', placeType: 'wip', matchTool: 'MultiEdit', priority: 100 },
23
- { name: 'Fix keyword to WIP', placeType: 'wip', matchKeyword: 'fix', priority: 80 },
24
- { name: 'Bug keyword to WIP', placeType: 'wip', matchKeyword: 'bug', priority: 80 },
25
- // Sandbox - Experiments, tests
26
- { name: 'Test to Sandbox', placeType: 'sandbox', matchTool: 'Bash', matchKeyword: 'test', priority: 90 },
27
- { name: 'Test tag to Sandbox', placeType: 'sandbox', matchTag: 'test', priority: 85 },
28
- // Board - Decisions, planning
29
- { name: 'Task to Board', placeType: 'board', matchTool: 'Task', priority: 100 },
30
- { name: 'TodoWrite to Board', placeType: 'board', matchTool: 'TodoWrite', priority: 100 },
31
- { name: 'Decision keyword to Board', placeType: 'board', matchKeyword: 'decided', priority: 70 },
32
- { name: 'Planning keyword to Board', placeType: 'board', matchKeyword: 'will implement', priority: 70 },
33
- // Ref - Research, patterns
34
- { name: 'Search to Ref', placeType: 'ref', matchTool: 'grep', priority: 90 },
35
- { name: 'WebFetch to Ref', placeType: 'ref', matchTool: 'WebFetch', priority: 85 },
36
- { name: 'Research keyword to Ref', placeType: 'ref', matchKeyword: 'research', priority: 80 },
37
- { name: 'Pattern keyword to Ref', placeType: 'ref', matchKeyword: 'pattern', priority: 75 },
38
- // Sparks - Ideas, future
39
- { name: 'Idea keyword to Sparks', placeType: 'sparks', matchKeyword: 'idea', priority: 80 },
40
- { name: 'Explore keyword to Sparks', placeType: 'sparks', matchKeyword: 'explore', priority: 75 },
41
- { name: 'Future keyword to Sparks', placeType: 'sparks', matchKeyword: 'will add', priority: 70 },
42
- ];
43
- /**
44
- * Create a place rule
45
- */
46
- export async function createPlaceRule(input) {
47
- const db = await getDb();
48
- if (!db) {
49
- throw new Error('Database unavailable');
50
- }
51
- const schema = await getSchema();
52
- const sqliteDb = db;
53
- const id = randomUUID();
54
- await sqliteDb.insert(schema.placeRules).values({
55
- id,
56
- projectId: input.projectId,
57
- name: input.name,
58
- placeType: input.placeType,
59
- matchTool: input.matchTool || null,
60
- matchKeyword: input.matchKeyword || null,
61
- matchTag: input.matchTag || null,
62
- matchMemoryType: input.matchMemoryType || null,
63
- priority: input.priority ?? 0,
64
- enabled: input.enabled !== false ? 1 : 0,
65
- });
66
- logger.info(`[PlaceRules] Created rule: ${input.name} -> ${input.placeType}`);
67
- return {
68
- id,
69
- projectId: input.projectId,
70
- name: input.name,
71
- placeType: input.placeType,
72
- matchTool: input.matchTool || null,
73
- matchKeyword: input.matchKeyword || null,
74
- matchTag: input.matchTag || null,
75
- matchMemoryType: input.matchMemoryType || null,
76
- priority: input.priority ?? 0,
77
- enabled: input.enabled ?? true,
78
- createdAt: new Date(),
79
- updatedAt: new Date(),
80
- };
81
- }
82
- /**
83
- * Get rules for a project
84
- */
85
- export async function getProjectRules(projectId) {
86
- const db = await getDb();
87
- if (!db)
88
- return [];
89
- const schema = await getSchema();
90
- const sqliteDb = db;
91
- const results = await sqliteDb.select()
92
- .from(schema.placeRules)
93
- .where(eq(schema.placeRules.projectId, projectId))
94
- .orderBy(desc(schema.placeRules.priority));
95
- return results.map((row) => ({
96
- id: row.id,
97
- projectId: row.project_id,
98
- name: row.name,
99
- placeType: (row.place_type || row.placeType || 'custom'),
100
- matchTool: row.match_tool || row.matchTool,
101
- matchKeyword: row.match_keyword || row.matchKeyword,
102
- matchTag: row.match_tag || row.matchTag,
103
- matchMemoryType: row.match_memory_type || row.matchMemoryType,
104
- priority: row.priority ?? 0,
105
- enabled: row.enabled === 1 || row.enabled === true,
106
- createdAt: new Date(row.created_at || Date.now()),
107
- updatedAt: new Date(row.updated_at || Date.now()),
108
- }));
109
- }
110
- /**
111
- * Check if a rule matches the input
112
- */
113
- export function matchesRule(rule, input) {
114
- // Check tool match
115
- if (rule.matchTool && input.toolName) {
116
- if (input.toolName.toLowerCase() !== rule.matchTool.toLowerCase()) {
117
- return false;
118
- }
119
- }
120
- // Check keyword match
121
- if (rule.matchKeyword && input.content) {
122
- const contentLower = input.content.toLowerCase();
123
- if (!contentLower.includes(rule.matchKeyword.toLowerCase())) {
124
- return false;
125
- }
126
- }
127
- // Check tag match
128
- if (rule.matchTag && input.tags) {
129
- const hasTag = input.tags.some(t => t.toLowerCase() === rule.matchTag.toLowerCase());
130
- if (!hasTag) {
131
- return false;
132
- }
133
- }
134
- // Check memory type match
135
- if (rule.matchMemoryType && input.memoryType) {
136
- if (input.memoryType.toLowerCase() !== rule.matchMemoryType.toLowerCase()) {
137
- return false;
138
- }
139
- }
140
- return true;
141
- }
142
- /**
143
- * Find matching place for a memory based on rules
144
- */
145
- export async function findMatchingPlace(projectId, input) {
146
- const rules = await getProjectRules(projectId);
147
- // Sort by priority (highest first)
148
- const sortedRules = rules
149
- .filter(r => r.enabled)
150
- .sort((a, b) => b.priority - a.priority);
151
- for (const rule of sortedRules) {
152
- if (matchesRule(rule, input)) {
153
- logger.info(`[PlaceRules] Matched rule "${rule.name}" -> ${rule.placeType}`);
154
- return rule.placeType;
155
- }
156
- }
157
- return null;
158
- }
159
- /**
160
- * Initialize default rules for a project
161
- */
162
- export async function initializeDefaultRules(projectId) {
163
- const created = [];
164
- for (const ruleConfig of DEFAULT_RULES) {
165
- const rule = await createPlaceRule({
166
- projectId,
167
- ...ruleConfig,
168
- });
169
- created.push(rule);
170
- }
171
- logger.info(`[PlaceRules] Initialized ${created.length} default rules for project: ${projectId}`);
172
- return created;
173
- }
174
- /**
175
- * Delete a rule
176
- */
177
- export async function deletePlaceRule(id) {
178
- const db = await getDb();
179
- if (!db)
180
- return false;
181
- const schema = await getSchema();
182
- const sqliteDb = db;
183
- await sqliteDb.delete(schema.placeRules).where(eq(schema.placeRules.id, id));
184
- logger.info(`[PlaceRules] Deleted rule: ${id}`);
185
- return true;
186
- }
187
- /**
188
- * Update a rule
189
- */
190
- export async function updatePlaceRule(id, updates) {
191
- const db = await getDb();
192
- if (!db)
193
- return null;
194
- const schema = await getSchema();
195
- const sqliteDb = db;
196
- const updateData = {};
197
- if (updates.name !== undefined)
198
- updateData.name = updates.name;
199
- if (updates.placeType !== undefined)
200
- updateData.placeType = updates.placeType;
201
- if (updates.matchTool !== undefined)
202
- updateData.matchTool = updates.matchTool;
203
- if (updates.matchKeyword !== undefined)
204
- updateData.matchKeyword = updates.matchKeyword;
205
- if (updates.matchTag !== undefined)
206
- updateData.matchTag = updates.matchTag;
207
- if (updates.matchMemoryType !== undefined)
208
- updateData.matchMemoryType = updates.matchMemoryType;
209
- if (updates.priority !== undefined)
210
- updateData.priority = updates.priority;
211
- if (updates.enabled !== undefined)
212
- updateData.enabled = updates.enabled;
213
- if (Object.keys(updateData).length === 0)
214
- return null;
215
- await sqliteDb.update(schema.placeRules)
216
- .set(updateData)
217
- .where(eq(schema.placeRules.id, id));
218
- const result = await sqliteDb.select()
219
- .from(schema.placeRules)
220
- .where(eq(schema.placeRules.id, id))
221
- .limit(1);
222
- if (result.length === 0)
223
- return null;
224
- const row = result[0];
225
- return {
226
- id: row.id,
227
- projectId: row.project_id,
228
- name: row.name,
229
- placeType: row.place_type,
230
- matchTool: row.match_tool,
231
- matchKeyword: row.match_keyword,
232
- matchTag: row.match_tag,
233
- matchMemoryType: row.match_memory_type,
234
- priority: row.priority,
235
- enabled: row.enabled === 1 || row.enabled === true,
236
- createdAt: new Date(row.created_at),
237
- updatedAt: new Date(row.updated_at),
238
- };
239
- }
240
- //# sourceMappingURL=rules.js.map
@@ -1,56 +0,0 @@
1
- /**
2
- * Walking Interface - Sequential memory retrieval through places
3
- *
4
- * Implements place walking through memory places:
5
- * - Walk single place to get memories in order
6
- * - Walk all places for full tour
7
- * - Token budget handling with TOON compression
8
- */
9
- import { type Place } from './places.js';
10
- export interface WalkOptions {
11
- tokenBudget?: number;
12
- maxMemoriesPerPlace?: number;
13
- includePurpose?: boolean;
14
- compressWithCompression?: boolean;
15
- }
16
- export interface WalkResult {
17
- place: Place;
18
- memories: MemorySummary[];
19
- totalTokens: number;
20
- truncated: boolean;
21
- }
22
- export interface MemorySummary {
23
- id: string;
24
- content: string;
25
- type: string;
26
- tags: string[];
27
- createdAt: string;
28
- }
29
- /**
30
- * Walk through a single place
31
- */
32
- export declare function walkPlace(projectId: string, placeType: string, options?: WalkOptions): Promise<WalkResult | null>;
33
- /**
34
- * Walk through all places in sort order
35
- */
36
- export declare function walkAllPlaces(projectId: string, options?: WalkOptions): Promise<WalkResult[]>;
37
- /**
38
- * Quick tour - just place names and purposes (minimal tokens)
39
- */
40
- export declare function quickTour(projectId: string): Promise<{
41
- places: {
42
- name: string;
43
- purpose: string;
44
- memoryCount: number;
45
- }[];
46
- totalMemories: number;
47
- }>;
48
- /**
49
- * Get context summary for a place (for injection)
50
- */
51
- export declare function getPlaceContext(projectId: string, placeType: string, maxTokens?: number): Promise<string>;
52
- /**
53
- * Full context for session start (all places)
54
- */
55
- export declare function getFullWalkingContext(projectId: string, maxTokens?: number): Promise<string>;
56
- //# sourceMappingURL=walking.d.ts.map