squish-memory 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/.claude-plugin/marketplace.json +20 -0
  2. package/.claude-plugin/plugin.json +32 -0
  3. package/.mcp.json +14 -0
  4. package/LICENSE +21 -0
  5. package/README.md +556 -0
  6. package/commands/context-paging.md +51 -0
  7. package/commands/context-status.md +22 -0
  8. package/commands/context.md +5 -0
  9. package/commands/core-memory.md +56 -0
  10. package/commands/health.md +5 -0
  11. package/commands/init.md +39 -0
  12. package/commands/merge.md +113 -0
  13. package/commands/observe.md +5 -0
  14. package/commands/recall.md +5 -0
  15. package/commands/remember.md +11 -0
  16. package/commands/search.md +10 -0
  17. package/dist/adapters/claude-code/capture.d.ts +11 -0
  18. package/dist/adapters/claude-code/capture.d.ts.map +1 -0
  19. package/dist/adapters/claude-code/capture.js +100 -0
  20. package/dist/adapters/claude-code/capture.js.map +1 -0
  21. package/dist/adapters/claude-code/index.d.ts +5 -0
  22. package/dist/adapters/claude-code/index.d.ts.map +1 -0
  23. package/dist/adapters/claude-code/index.js +6 -0
  24. package/dist/adapters/claude-code/index.js.map +1 -0
  25. package/dist/adapters/claude-code/injection.d.ts +34 -0
  26. package/dist/adapters/claude-code/injection.d.ts.map +1 -0
  27. package/dist/adapters/claude-code/injection.js +127 -0
  28. package/dist/adapters/claude-code/injection.js.map +1 -0
  29. package/dist/adapters/claude-code/plugin-wrapper.d.ts +21 -0
  30. package/dist/adapters/claude-code/plugin-wrapper.d.ts.map +1 -0
  31. package/dist/adapters/claude-code/plugin-wrapper.js +239 -0
  32. package/dist/adapters/claude-code/plugin-wrapper.js.map +1 -0
  33. package/dist/adapters/claude-code/types.d.ts +46 -0
  34. package/dist/adapters/claude-code/types.d.ts.map +1 -0
  35. package/dist/adapters/claude-code/types.js +6 -0
  36. package/dist/adapters/claude-code/types.js.map +1 -0
  37. package/dist/algorithms/merge/analytics/token-estimator.d.ts +50 -0
  38. package/dist/algorithms/merge/analytics/token-estimator.d.ts.map +1 -0
  39. package/dist/algorithms/merge/analytics/token-estimator.js +154 -0
  40. package/dist/algorithms/merge/analytics/token-estimator.js.map +1 -0
  41. package/dist/algorithms/merge/detection/hash-filters.d.ts +47 -0
  42. package/dist/algorithms/merge/detection/hash-filters.d.ts.map +1 -0
  43. package/dist/algorithms/merge/detection/hash-filters.js +190 -0
  44. package/dist/algorithms/merge/detection/hash-filters.js.map +1 -0
  45. package/dist/algorithms/merge/detection/semantic-ranker.d.ts +32 -0
  46. package/dist/algorithms/merge/detection/semantic-ranker.d.ts.map +1 -0
  47. package/dist/algorithms/merge/detection/semantic-ranker.js +118 -0
  48. package/dist/algorithms/merge/detection/semantic-ranker.js.map +1 -0
  49. package/dist/algorithms/merge/detection/two-stage-detector.d.ts +49 -0
  50. package/dist/algorithms/merge/detection/two-stage-detector.d.ts.map +1 -0
  51. package/dist/algorithms/merge/detection/two-stage-detector.js +185 -0
  52. package/dist/algorithms/merge/detection/two-stage-detector.js.map +1 -0
  53. package/dist/algorithms/merge/handlers/approve-merge.d.ts +22 -0
  54. package/dist/algorithms/merge/handlers/approve-merge.d.ts.map +1 -0
  55. package/dist/algorithms/merge/handlers/approve-merge.js +179 -0
  56. package/dist/algorithms/merge/handlers/approve-merge.js.map +1 -0
  57. package/dist/algorithms/merge/handlers/detect-duplicates.d.ts +47 -0
  58. package/dist/algorithms/merge/handlers/detect-duplicates.d.ts.map +1 -0
  59. package/dist/algorithms/merge/handlers/detect-duplicates.js +165 -0
  60. package/dist/algorithms/merge/handlers/detect-duplicates.js.map +1 -0
  61. package/dist/algorithms/merge/handlers/get-stats.d.ts +39 -0
  62. package/dist/algorithms/merge/handlers/get-stats.d.ts.map +1 -0
  63. package/dist/algorithms/merge/handlers/get-stats.js +88 -0
  64. package/dist/algorithms/merge/handlers/get-stats.js.map +1 -0
  65. package/dist/algorithms/merge/handlers/list-proposals.d.ts +45 -0
  66. package/dist/algorithms/merge/handlers/list-proposals.d.ts.map +1 -0
  67. package/dist/algorithms/merge/handlers/list-proposals.js +83 -0
  68. package/dist/algorithms/merge/handlers/list-proposals.js.map +1 -0
  69. package/dist/algorithms/merge/handlers/preview-merge.d.ts +39 -0
  70. package/dist/algorithms/merge/handlers/preview-merge.d.ts.map +1 -0
  71. package/dist/algorithms/merge/handlers/preview-merge.js +93 -0
  72. package/dist/algorithms/merge/handlers/preview-merge.js.map +1 -0
  73. package/dist/algorithms/merge/handlers/reject-merge.d.ts +28 -0
  74. package/dist/algorithms/merge/handlers/reject-merge.d.ts.map +1 -0
  75. package/dist/algorithms/merge/handlers/reject-merge.js +69 -0
  76. package/dist/algorithms/merge/handlers/reject-merge.js.map +1 -0
  77. package/dist/algorithms/merge/handlers/reverse-merge.d.ts +21 -0
  78. package/dist/algorithms/merge/handlers/reverse-merge.d.ts.map +1 -0
  79. package/dist/algorithms/merge/handlers/reverse-merge.js +121 -0
  80. package/dist/algorithms/merge/handlers/reverse-merge.js.map +1 -0
  81. package/dist/algorithms/merge/safety/safety-checks.d.ts +22 -0
  82. package/dist/algorithms/merge/safety/safety-checks.d.ts.map +1 -0
  83. package/dist/algorithms/merge/safety/safety-checks.js +215 -0
  84. package/dist/algorithms/merge/safety/safety-checks.js.map +1 -0
  85. package/dist/algorithms/merge/strategies/merge-strategies.d.ts +32 -0
  86. package/dist/algorithms/merge/strategies/merge-strategies.d.ts.map +1 -0
  87. package/dist/algorithms/merge/strategies/merge-strategies.js +337 -0
  88. package/dist/algorithms/merge/strategies/merge-strategies.js.map +1 -0
  89. package/dist/api/web/web.d.ts +4 -0
  90. package/dist/api/web/web.d.ts.map +1 -0
  91. package/dist/api/web/web.js +484 -0
  92. package/dist/api/web/web.js.map +1 -0
  93. package/dist/config.d.ts +28 -0
  94. package/dist/config.d.ts.map +1 -0
  95. package/dist/config.js +83 -0
  96. package/dist/config.js.map +1 -0
  97. package/dist/core/agent-memory.d.ts +22 -0
  98. package/dist/core/agent-memory.d.ts.map +1 -0
  99. package/dist/core/agent-memory.js +111 -0
  100. package/dist/core/agent-memory.js.map +1 -0
  101. package/dist/core/associations.d.ts +32 -0
  102. package/dist/core/associations.d.ts.map +1 -0
  103. package/dist/core/associations.js +249 -0
  104. package/dist/core/associations.js.map +1 -0
  105. package/dist/core/cache.d.ts +13 -0
  106. package/dist/core/cache.d.ts.map +1 -0
  107. package/dist/core/cache.js +202 -0
  108. package/dist/core/cache.js.map +1 -0
  109. package/dist/core/consolidation.d.ts +6 -0
  110. package/dist/core/consolidation.d.ts.map +1 -0
  111. package/dist/core/consolidation.js +40 -0
  112. package/dist/core/consolidation.js.map +1 -0
  113. package/dist/core/context-paging.d.ts +90 -0
  114. package/dist/core/context-paging.d.ts.map +1 -0
  115. package/dist/core/context-paging.js +348 -0
  116. package/dist/core/context-paging.js.map +1 -0
  117. package/dist/core/context.d.ts +7 -0
  118. package/dist/core/context.d.ts.map +1 -0
  119. package/dist/core/context.js +24 -0
  120. package/dist/core/context.js.map +1 -0
  121. package/dist/core/core-memory.d.ts +73 -0
  122. package/dist/core/core-memory.d.ts.map +1 -0
  123. package/dist/core/core-memory.js +214 -0
  124. package/dist/core/core-memory.js.map +1 -0
  125. package/dist/core/database.d.ts +12 -0
  126. package/dist/core/database.d.ts.map +1 -0
  127. package/dist/core/database.js +12 -0
  128. package/dist/core/database.js.map +1 -0
  129. package/dist/core/embeddings/qmd-client.d.ts +136 -0
  130. package/dist/core/embeddings/qmd-client.d.ts.map +1 -0
  131. package/dist/core/embeddings/qmd-client.js +403 -0
  132. package/dist/core/embeddings/qmd-client.js.map +1 -0
  133. package/dist/core/embeddings/qmd-provider.d.ts +65 -0
  134. package/dist/core/embeddings/qmd-provider.d.ts.map +1 -0
  135. package/dist/core/embeddings/qmd-provider.js +133 -0
  136. package/dist/core/embeddings/qmd-provider.js.map +1 -0
  137. package/dist/core/embeddings.d.ts +19 -0
  138. package/dist/core/embeddings.d.ts.map +1 -0
  139. package/dist/core/embeddings.js +297 -0
  140. package/dist/core/embeddings.js.map +1 -0
  141. package/dist/core/governance.d.ts +21 -0
  142. package/dist/core/governance.d.ts.map +1 -0
  143. package/dist/core/governance.js +64 -0
  144. package/dist/core/governance.js.map +1 -0
  145. package/dist/core/index.d.ts +10 -0
  146. package/dist/core/index.d.ts.map +1 -0
  147. package/dist/core/index.js +14 -0
  148. package/dist/core/index.js.map +1 -0
  149. package/dist/core/lifecycle.d.ts +19 -0
  150. package/dist/core/lifecycle.d.ts.map +1 -0
  151. package/dist/core/lifecycle.js +182 -0
  152. package/dist/core/lifecycle.js.map +1 -0
  153. package/dist/core/local-embeddings.d.ts +14 -0
  154. package/dist/core/local-embeddings.d.ts.map +1 -0
  155. package/dist/core/local-embeddings.js +94 -0
  156. package/dist/core/local-embeddings.js.map +1 -0
  157. package/dist/core/logger.d.ts +16 -0
  158. package/dist/core/logger.d.ts.map +1 -0
  159. package/dist/core/logger.js +34 -0
  160. package/dist/core/logger.js.map +1 -0
  161. package/dist/core/memory/bridge-discovery.d.ts +50 -0
  162. package/dist/core/memory/bridge-discovery.d.ts.map +1 -0
  163. package/dist/core/memory/bridge-discovery.js +291 -0
  164. package/dist/core/memory/bridge-discovery.js.map +1 -0
  165. package/dist/core/memory/entity-extractor.d.ts +33 -0
  166. package/dist/core/memory/entity-extractor.d.ts.map +1 -0
  167. package/dist/core/memory/entity-extractor.js +336 -0
  168. package/dist/core/memory/entity-extractor.js.map +1 -0
  169. package/dist/core/memory/entity-resolver.d.ts +23 -0
  170. package/dist/core/memory/entity-resolver.d.ts.map +1 -0
  171. package/dist/core/memory/entity-resolver.js +64 -0
  172. package/dist/core/memory/entity-resolver.js.map +1 -0
  173. package/dist/core/memory/fact-extractor.d.ts +24 -0
  174. package/dist/core/memory/fact-extractor.d.ts.map +1 -0
  175. package/dist/core/memory/fact-extractor.js +89 -0
  176. package/dist/core/memory/fact-extractor.js.map +1 -0
  177. package/dist/core/memory/hybrid-retrieval.d.ts +30 -0
  178. package/dist/core/memory/hybrid-retrieval.d.ts.map +1 -0
  179. package/dist/core/memory/hybrid-retrieval.js +63 -0
  180. package/dist/core/memory/hybrid-retrieval.js.map +1 -0
  181. package/dist/core/memory/hybrid-scorer.d.ts +51 -0
  182. package/dist/core/memory/hybrid-scorer.d.ts.map +1 -0
  183. package/dist/core/memory/hybrid-scorer.js +248 -0
  184. package/dist/core/memory/hybrid-scorer.js.map +1 -0
  185. package/dist/core/memory/index.d.ts +8 -0
  186. package/dist/core/memory/index.d.ts.map +1 -0
  187. package/dist/core/memory/index.js +10 -0
  188. package/dist/core/memory/index.js.map +1 -0
  189. package/dist/core/memory/memories.d.ts +35 -0
  190. package/dist/core/memory/memories.d.ts.map +1 -0
  191. package/dist/core/memory/memories.js +338 -0
  192. package/dist/core/memory/memories.js.map +1 -0
  193. package/dist/core/memory/memory-manager.d.ts +15 -0
  194. package/dist/core/memory/memory-manager.d.ts.map +1 -0
  195. package/dist/core/memory/memory-manager.js +46 -0
  196. package/dist/core/memory/memory-manager.js.map +1 -0
  197. package/dist/core/memory/query-processor.d.ts +21 -0
  198. package/dist/core/memory/query-processor.d.ts.map +1 -0
  199. package/dist/core/memory/query-processor.js +72 -0
  200. package/dist/core/memory/query-processor.js.map +1 -0
  201. package/dist/core/memory/serialization.d.ts +6 -0
  202. package/dist/core/memory/serialization.d.ts.map +1 -0
  203. package/dist/core/memory/serialization.js +35 -0
  204. package/dist/core/memory/serialization.js.map +1 -0
  205. package/dist/core/memory/temporal-parser.d.ts +32 -0
  206. package/dist/core/memory/temporal-parser.d.ts.map +1 -0
  207. package/dist/core/memory/temporal-parser.js +385 -0
  208. package/dist/core/memory/temporal-parser.js.map +1 -0
  209. package/dist/core/observations.d.ts +26 -0
  210. package/dist/core/observations.d.ts.map +1 -0
  211. package/dist/core/observations.js +118 -0
  212. package/dist/core/observations.js.map +1 -0
  213. package/dist/core/privacy.d.ts +23 -0
  214. package/dist/core/privacy.d.ts.map +1 -0
  215. package/dist/core/privacy.js +82 -0
  216. package/dist/core/privacy.js.map +1 -0
  217. package/dist/core/projects.d.ts +10 -0
  218. package/dist/core/projects.d.ts.map +1 -0
  219. package/dist/core/projects.js +66 -0
  220. package/dist/core/projects.js.map +1 -0
  221. package/dist/core/redis.d.ts +11 -0
  222. package/dist/core/redis.d.ts.map +1 -0
  223. package/dist/core/redis.js +69 -0
  224. package/dist/core/redis.js.map +1 -0
  225. package/dist/core/requirements.d.ts +20 -0
  226. package/dist/core/requirements.d.ts.map +1 -0
  227. package/dist/core/requirements.js +35 -0
  228. package/dist/core/requirements.js.map +1 -0
  229. package/dist/core/search/conversations.d.ts +25 -0
  230. package/dist/core/search/conversations.d.ts.map +1 -0
  231. package/dist/core/search/conversations.js +112 -0
  232. package/dist/core/search/conversations.js.map +1 -0
  233. package/dist/core/search/entities.d.ts +12 -0
  234. package/dist/core/search/entities.d.ts.map +1 -0
  235. package/dist/core/search/entities.js +34 -0
  236. package/dist/core/search/entities.js.map +1 -0
  237. package/dist/core/search/folder-context.d.ts +25 -0
  238. package/dist/core/search/folder-context.d.ts.map +1 -0
  239. package/dist/core/search/folder-context.js +119 -0
  240. package/dist/core/search/folder-context.js.map +1 -0
  241. package/dist/core/search/index.d.ts +4 -0
  242. package/dist/core/search/index.d.ts.map +1 -0
  243. package/dist/core/search/index.js +5 -0
  244. package/dist/core/search/index.js.map +1 -0
  245. package/dist/core/search/qmd-search.d.ts +61 -0
  246. package/dist/core/search/qmd-search.d.ts.map +1 -0
  247. package/dist/core/search/qmd-search.js +178 -0
  248. package/dist/core/search/qmd-search.js.map +1 -0
  249. package/dist/core/secret-detector.d.ts +32 -0
  250. package/dist/core/secret-detector.d.ts.map +1 -0
  251. package/dist/core/secret-detector.js +88 -0
  252. package/dist/core/secret-detector.js.map +1 -0
  253. package/dist/core/snapshots/cleanup.d.ts +9 -0
  254. package/dist/core/snapshots/cleanup.d.ts.map +1 -0
  255. package/dist/core/snapshots/cleanup.js +12 -0
  256. package/dist/core/snapshots/cleanup.js.map +1 -0
  257. package/dist/core/snapshots/comparison.d.ts +19 -0
  258. package/dist/core/snapshots/comparison.d.ts.map +1 -0
  259. package/dist/core/snapshots/comparison.js +37 -0
  260. package/dist/core/snapshots/comparison.js.map +1 -0
  261. package/dist/core/snapshots/creation.d.ts +19 -0
  262. package/dist/core/snapshots/creation.d.ts.map +1 -0
  263. package/dist/core/snapshots/creation.js +126 -0
  264. package/dist/core/snapshots/creation.js.map +1 -0
  265. package/dist/core/snapshots/retrieval.d.ts +7 -0
  266. package/dist/core/snapshots/retrieval.d.ts.map +1 -0
  267. package/dist/core/snapshots/retrieval.js +41 -0
  268. package/dist/core/snapshots/retrieval.js.map +1 -0
  269. package/dist/core/snapshots/stats.d.ts +11 -0
  270. package/dist/core/snapshots/stats.d.ts.map +1 -0
  271. package/dist/core/snapshots/stats.js +52 -0
  272. package/dist/core/snapshots/stats.js.map +1 -0
  273. package/dist/core/snapshots.d.ts +29 -0
  274. package/dist/core/snapshots.d.ts.map +1 -0
  275. package/dist/core/snapshots.js +220 -0
  276. package/dist/core/snapshots.js.map +1 -0
  277. package/dist/core/summarization/cleanup.d.ts +9 -0
  278. package/dist/core/summarization/cleanup.d.ts.map +1 -0
  279. package/dist/core/summarization/cleanup.js +12 -0
  280. package/dist/core/summarization/cleanup.js.map +1 -0
  281. package/dist/core/summarization/queries.d.ts +9 -0
  282. package/dist/core/summarization/queries.d.ts.map +1 -0
  283. package/dist/core/summarization/queries.js +28 -0
  284. package/dist/core/summarization/queries.js.map +1 -0
  285. package/dist/core/summarization/stats.d.ts +14 -0
  286. package/dist/core/summarization/stats.d.ts.map +1 -0
  287. package/dist/core/summarization/stats.js +52 -0
  288. package/dist/core/summarization/stats.js.map +1 -0
  289. package/dist/core/summarization/strategies.d.ts +24 -0
  290. package/dist/core/summarization/strategies.d.ts.map +1 -0
  291. package/dist/core/summarization/strategies.js +28 -0
  292. package/dist/core/summarization/strategies.js.map +1 -0
  293. package/dist/core/summarization.d.ts +37 -0
  294. package/dist/core/summarization.d.ts.map +1 -0
  295. package/dist/core/summarization.js +188 -0
  296. package/dist/core/summarization.js.map +1 -0
  297. package/dist/core/sync/qmd-sync.d.ts +106 -0
  298. package/dist/core/sync/qmd-sync.d.ts.map +1 -0
  299. package/dist/core/sync/qmd-sync.js +213 -0
  300. package/dist/core/sync/qmd-sync.js.map +1 -0
  301. package/dist/core/temporal-facts.d.ts +54 -0
  302. package/dist/core/temporal-facts.d.ts.map +1 -0
  303. package/dist/core/temporal-facts.js +193 -0
  304. package/dist/core/temporal-facts.js.map +1 -0
  305. package/dist/core/utils/cleanup-operations.d.ts +13 -0
  306. package/dist/core/utils/cleanup-operations.d.ts.map +1 -0
  307. package/dist/core/utils/cleanup-operations.js +44 -0
  308. package/dist/core/utils/cleanup-operations.js.map +1 -0
  309. package/dist/core/utils/content-extraction.d.ts +19 -0
  310. package/dist/core/utils/content-extraction.d.ts.map +1 -0
  311. package/dist/core/utils/content-extraction.js +65 -0
  312. package/dist/core/utils/content-extraction.js.map +1 -0
  313. package/dist/core/utils/filter-builder.d.ts +13 -0
  314. package/dist/core/utils/filter-builder.d.ts.map +1 -0
  315. package/dist/core/utils/filter-builder.js +44 -0
  316. package/dist/core/utils/filter-builder.js.map +1 -0
  317. package/dist/core/utils/history-traversal.d.ts +13 -0
  318. package/dist/core/utils/history-traversal.d.ts.map +1 -0
  319. package/dist/core/utils/history-traversal.js +50 -0
  320. package/dist/core/utils/history-traversal.js.map +1 -0
  321. package/dist/core/utils/memory-operations.d.ts +17 -0
  322. package/dist/core/utils/memory-operations.d.ts.map +1 -0
  323. package/dist/core/utils/memory-operations.js +41 -0
  324. package/dist/core/utils/memory-operations.js.map +1 -0
  325. package/dist/core/utils/query-operations.d.ts +18 -0
  326. package/dist/core/utils/query-operations.d.ts.map +1 -0
  327. package/dist/core/utils/query-operations.js +65 -0
  328. package/dist/core/utils/query-operations.js.map +1 -0
  329. package/dist/core/utils/summarization-helpers.d.ts +21 -0
  330. package/dist/core/utils/summarization-helpers.d.ts.map +1 -0
  331. package/dist/core/utils/summarization-helpers.js +35 -0
  332. package/dist/core/utils/summarization-helpers.js.map +1 -0
  333. package/dist/core/utils/temporal-queries.d.ts +13 -0
  334. package/dist/core/utils/temporal-queries.d.ts.map +1 -0
  335. package/dist/core/utils/temporal-queries.js +27 -0
  336. package/dist/core/utils/temporal-queries.js.map +1 -0
  337. package/dist/core/utils/version-management.d.ts +9 -0
  338. package/dist/core/utils/version-management.d.ts.map +1 -0
  339. package/dist/core/utils/version-management.js +61 -0
  340. package/dist/core/utils/version-management.js.map +1 -0
  341. package/dist/core/utils.d.ts +13 -0
  342. package/dist/core/utils.d.ts.map +1 -0
  343. package/dist/core/utils.js +51 -0
  344. package/dist/core/utils.js.map +1 -0
  345. package/dist/core/worker.d.ts +62 -0
  346. package/dist/core/worker.d.ts.map +1 -0
  347. package/dist/core/worker.js +186 -0
  348. package/dist/core/worker.js.map +1 -0
  349. package/dist/db/adapter.d.ts +6 -0
  350. package/dist/db/adapter.d.ts.map +1 -0
  351. package/dist/db/adapter.js +43 -0
  352. package/dist/db/adapter.js.map +1 -0
  353. package/dist/db/bootstrap.d.ts +9 -0
  354. package/dist/db/bootstrap.d.ts.map +1 -0
  355. package/dist/db/bootstrap.js +444 -0
  356. package/dist/db/bootstrap.js.map +1 -0
  357. package/dist/db/index.d.ts +11 -0
  358. package/dist/db/index.d.ts.map +1 -0
  359. package/dist/db/index.js +43 -0
  360. package/dist/db/index.js.map +1 -0
  361. package/dist/db/schema.d.ts +3 -0
  362. package/dist/db/schema.d.ts.map +1 -0
  363. package/dist/db/schema.js +11 -0
  364. package/dist/db/schema.js.map +1 -0
  365. package/dist/drizzle/schema-sqlite.d.ts +3046 -0
  366. package/dist/drizzle/schema-sqlite.d.ts.map +1 -0
  367. package/dist/drizzle/schema-sqlite.js +405 -0
  368. package/dist/drizzle/schema-sqlite.js.map +1 -0
  369. package/dist/drizzle/schema.d.ts +2969 -0
  370. package/dist/drizzle/schema.d.ts.map +1 -0
  371. package/dist/drizzle/schema.js +555 -0
  372. package/dist/drizzle/schema.js.map +1 -0
  373. package/dist/index.d.ts +34 -0
  374. package/dist/index.d.ts.map +1 -0
  375. package/dist/index.js +784 -0
  376. package/dist/index.js.map +1 -0
  377. package/hooks/hooks.json +52 -0
  378. package/hooks/post-tool-use.js +26 -0
  379. package/hooks/session-end.js +28 -0
  380. package/hooks/session-start.js +33 -0
  381. package/hooks/user-prompt-submit.js +26 -0
  382. package/hooks/utils.js +153 -0
  383. package/npx-installer.js +208 -0
  384. package/package.json +101 -0
  385. package/plugin.json +32 -0
  386. package/skills/memory-guide/SKILL.md +198 -0
  387. package/skills/squish-memory/SKILL.md +87 -0
  388. package/skills/squish-memory/install.sh +91 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../drizzle/schema.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,CAAC;AAMxF;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQhB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUnB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ,EAgIhB,GAAG,CAAC;AAET;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAcgC,MAAM;sBAAQ,OAAO;yBAAW,OAAO;;;;;;;;;;;;;;sBAAvC,MAAM;sBAAQ,OAAO;yBAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ1F,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwCvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBnB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB1B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAOU,MAAM,EAAE;0BAAY,MAAM,EAAE;0BAAY,MAAM,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,OAAO,CAAC;oBAAC,EAAE,EAAE,OAAO,CAAA;iBAAE,CAAC;;;;;;;;;;;;;;wBAAtF,MAAM,EAAE;0BAAY,MAAM,EAAE;0BAAY,MAAM,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,OAAO,CAAC;oBAAC,EAAE,EAAE,OAAO,CAAA;iBAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;EAO1H,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc1B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB1B,CAAC;AAMH,eAAO,MAAM,cAAc;;;EAGxB,CAAC;AAEJ,eAAO,MAAM,iBAAiB;;;;;EAK3B,CAAC;AAEJ,eAAO,MAAM,iBAAiB;;;EAS3B,CAAC;AAEJ,eAAO,MAAM,sBAAsB;;;;;EAWhC,CAAC;AAEJ,eAAO,MAAM,iBAAiB;;EAK3B,CAAC;AAEJ,eAAO,MAAM,qBAAqB;;;EAS/B,CAAC;AAEJ,eAAO,MAAM,iBAAiB;;;;EAO3B,CAAC;AAEJ,eAAO,MAAM,wBAAwB;;;EAWlC,CAAC;AAEJ,eAAO,MAAM,2BAA2B;;;EAWrC,CAAC;AAEJ,eAAO,MAAM,yBAAyB;;;EASnC,CAAC;AAEJ,eAAO,MAAM,wBAAwB;;EAKlC,CAAC;AAEJ,eAAO,MAAM,6BAA6B;;;EASvC,CAAC;AAEJ,eAAO,MAAM,2BAA2B;;;;;EAiBrC,CAAC;AAEJ,eAAO,MAAM,wBAAwB;;;EASlC,CAAC;AAMJ,MAAM,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,YAAY,CAAC;AAC7C,MAAM,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,YAAY,CAAC;AAEhD,MAAM,MAAM,OAAO,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAC;AAEtD,MAAM,MAAM,MAAM,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAC;AAClD,MAAM,MAAM,SAAS,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAC,YAAY,CAAC;AAC7D,MAAM,MAAM,eAAe,GAAG,OAAO,aAAa,CAAC,YAAY,CAAC;AAEhE,MAAM,MAAM,OAAO,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAC;AAEtD,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAE9D,MAAM,MAAM,MAAM,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAC;AAClD,MAAM,MAAM,SAAS,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC;AACjE,MAAM,MAAM,iBAAiB,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC;AAEpE,MAAM,MAAM,mBAAmB,GAAG,OAAO,oBAAoB,CAAC,YAAY,CAAC;AAC3E,MAAM,MAAM,sBAAsB,GAAG,OAAO,oBAAoB,CAAC,YAAY,CAAC;AAE9E,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,YAAY,CAAC;AACxE,MAAM,MAAM,qBAAqB,GAAG,OAAO,kBAAkB,CAAC,YAAY,CAAC;AAE3E,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC;AAClE,MAAM,MAAM,kBAAkB,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG,OAAO,kBAAkB,CAAC,YAAY,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,OAAO,kBAAkB,CAAC,YAAY,CAAC;AAE1E,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,YAAY,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,OAAO,gBAAgB,CAAC,YAAY,CAAC;AAErE,MAAM,MAAM,cAAc,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC;AACjE,MAAM,MAAM,iBAAiB,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC;AAEpE,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,YAAY,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,OAAO,UAAU,CAAC,YAAY,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC;AACjE,MAAM,MAAM,iBAAiB,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC"}
@@ -0,0 +1,555 @@
1
+ import { pgTable, text, timestamp, uuid, integer, boolean, jsonb, index, vector, numeric } from 'drizzle-orm/pg-core';
2
+ import { relations } from 'drizzle-orm';
3
+ // ============================================================================
4
+ // Core Tables
5
+ // ============================================================================
6
+ /**
7
+ * Users - represents Claude Code users
8
+ */
9
+ export const users = pgTable('users', {
10
+ id: uuid('id').primaryKey().defaultRandom(),
11
+ externalId: text('external_id').unique(), // Claude user ID if available
12
+ name: text('name'),
13
+ email: text('email'),
14
+ preferences: jsonb('preferences').$type(),
15
+ createdAt: timestamp('created_at').defaultNow().notNull(),
16
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
17
+ });
18
+ /**
19
+ * Projects - workspaces that memories are scoped to
20
+ */
21
+ export const projects = pgTable('projects', {
22
+ id: uuid('id').primaryKey().defaultRandom(),
23
+ name: text('name').notNull(),
24
+ path: text('path').notNull(), // Absolute path to project root
25
+ description: text('description'),
26
+ metadata: jsonb('metadata').$type(),
27
+ createdAt: timestamp('created_at').defaultNow().notNull(),
28
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
29
+ }, (table) => [
30
+ index('projects_path_idx').on(table.path),
31
+ ]);
32
+ /**
33
+ * Memories - core memory storage with semantic search
34
+ */
35
+ export const memories = pgTable('memories', {
36
+ id: uuid('id').primaryKey().defaultRandom(),
37
+ projectId: uuid('project_id').references(() => projects.id, { onDelete: 'cascade' }),
38
+ userId: uuid('user_id').references(() => users.id, { onDelete: 'set null' }),
39
+ // Content
40
+ type: text('type').notNull().$type(),
41
+ content: text('content').notNull(),
42
+ summary: text('summary'), // Compressed/summarized version
43
+ // Semantic search
44
+ embedding: vector('embedding', { dimensions: 1536 }), // OpenAI ada-002 compatible
45
+ // Metadata
46
+ source: text('source'), // Where this memory came from (tool, hook, user)
47
+ confidence: integer('confidence').default(100), // 0-100 confidence score
48
+ tags: text('tags').array(),
49
+ metadata: jsonb('metadata').$type(),
50
+ // v0.2.0: Privacy and relevance
51
+ isPrivate: boolean('is_private').default(false),
52
+ hasSecrets: boolean('has_secrets').default(false),
53
+ relevanceScore: integer('relevance_score').default(50), // 0-100
54
+ // v0.3.0: Lifecycle Management
55
+ sector: text('sector').default('episodic').$type(),
56
+ tier: text('tier').default('hot').$type(),
57
+ decayRate: integer('decay_rate').default(30), // days until decay
58
+ coactivationScore: integer('coactivation_score').default(0), // 0-100
59
+ lastDecayAt: timestamp('last_decay_at').defaultNow(),
60
+ // v0.3.0: Agent-Aware
61
+ agentId: text('agent_id'), // e.g., 'main', 'research-agent'
62
+ agentRole: text('agent_role'), // e.g., 'general', 'specialist'
63
+ visibilityScope: text('visibility_scope').default('private').$type(),
64
+ // v0.3.0: Governance
65
+ isProtected: boolean('is_protected').default(false), // Cannot be evicted
66
+ isPinned: boolean('is_pinned').default(false), // Always inject
67
+ isImmutable: boolean('is_immutable').default(false), // Cannot be updated
68
+ writeScope: text('write_scope').array(), // Who can modify
69
+ readScope: text('read_scope').array(), // Who can read
70
+ // v0.3.0: Provenance
71
+ triggeredBy: text('triggered_by'), // What triggered this memory
72
+ captureReason: text('capture_reason'), // Why was this remembered
73
+ lastUsedAt: timestamp('last_used_at'),
74
+ usageCount: integer('usage_count').default(0),
75
+ // v0.3.0: Temporal Facts
76
+ validFrom: timestamp('valid_from'),
77
+ validTo: timestamp('valid_to'),
78
+ supersededBy: uuid('superseded_by').references(() => memories.id),
79
+ version: integer('version').default(1),
80
+ // Lifecycle
81
+ isActive: boolean('is_active').default(true),
82
+ expiresAt: timestamp('expires_at'),
83
+ accessCount: integer('access_count').default(0),
84
+ lastAccessedAt: timestamp('last_accessed_at'),
85
+ // Merge tracking
86
+ isMerged: boolean('is_merged').default(false), // Soft archive flag
87
+ mergedIntoId: uuid('merged_into_id').references(() => memories.id), // Points to canonical memory
88
+ mergedAt: timestamp('merged_at'),
89
+ isCanonical: boolean('is_canonical').default(false), // True if result of merge
90
+ mergeSourceIds: jsonb('merge_source_ids').$type(), // IDs merged into this one
91
+ isMergeable: boolean('is_mergeable').default(true), // Immutability flag
92
+ mergeVersion: integer('merge_version').default(1), // Incremented on each merge
93
+ createdAt: timestamp('created_at').defaultNow().notNull(),
94
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
95
+ }, (table) => [
96
+ index('memories_project_idx').on(table.projectId),
97
+ index('memories_type_idx').on(table.type),
98
+ index('memories_created_idx').on(table.createdAt),
99
+ index('memories_tags_idx').on(table.tags),
100
+ index('memories_relevance_idx').on(table.relevanceScore),
101
+ index('memories_private_idx').on(table.isPrivate),
102
+ index('memories_merged_idx').on(table.isMerged),
103
+ index('memories_canonical_idx').on(table.isCanonical),
104
+ // v0.3.0: Lifecycle indexes
105
+ index('memories_sector_idx').on(table.sector),
106
+ index('memories_tier_idx').on(table.tier),
107
+ index('memories_agent_idx').on(table.agentId),
108
+ index('memories_visibility_idx').on(table.visibilityScope),
109
+ index('memories_protected_idx').on(table.isProtected),
110
+ index('memories_pinned_idx').on(table.isPinned),
111
+ index('memories_valid_from_idx').on(table.validFrom),
112
+ index('memories_valid_to_idx').on(table.validTo),
113
+ // v0.4.2: Composite indexes for performance optimization
114
+ // Duplicate detection query optimization
115
+ index('memories_duplicate_detection_idx').on(table.projectId, table.isMerged, table.isMergeable, table.isActive),
116
+ // Eviction query optimization (lifecycle.ts line 170-183)
117
+ index('memories_eviction_idx').on(table.projectId, table.tier, table.relevanceScore, table.createdAt),
118
+ // Decay operations optimization (lifecycle.ts line 70-100)
119
+ index('memories_decay_idx').on(table.sector, table.lastDecayAt, table.isProtected),
120
+ // Temporal query optimization
121
+ index('memories_temporal_idx').on(table.projectId, table.validFrom, table.validTo),
122
+ // Agent-aware retrieval optimization
123
+ index('memories_agent_visibility_idx').on(table.agentId, table.visibilityScope, table.isActive),
124
+ ]);
125
+ /**
126
+ * Conversations - chat session tracking
127
+ */
128
+ export const conversations = pgTable('conversations', {
129
+ id: uuid('id').primaryKey().defaultRandom(),
130
+ projectId: uuid('project_id').references(() => projects.id, { onDelete: 'cascade' }),
131
+ userId: uuid('user_id').references(() => users.id, { onDelete: 'set null' }),
132
+ sessionId: text('session_id').notNull(), // Claude session ID
133
+ title: text('title'),
134
+ summary: text('summary'),
135
+ // Stats
136
+ messageCount: integer('message_count').default(0),
137
+ tokenCount: integer('token_count').default(0),
138
+ startedAt: timestamp('started_at').defaultNow().notNull(),
139
+ endedAt: timestamp('ended_at'),
140
+ metadata: jsonb('metadata').$type(),
141
+ createdAt: timestamp('created_at').defaultNow().notNull(),
142
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
143
+ }, (table) => [
144
+ index('conversations_project_idx').on(table.projectId),
145
+ index('conversations_session_idx').on(table.sessionId),
146
+ index('conversations_started_idx').on(table.startedAt),
147
+ ]);
148
+ /**
149
+ * Messages - individual messages within conversations
150
+ */
151
+ export const messages = pgTable('messages', {
152
+ id: uuid('id').primaryKey().defaultRandom(),
153
+ conversationId: uuid('conversation_id').references(() => conversations.id, { onDelete: 'cascade' }).notNull(),
154
+ role: text('role').notNull().$type(),
155
+ content: text('content').notNull(),
156
+ // Semantic search
157
+ embedding: vector('embedding', { dimensions: 1536 }),
158
+ // Token tracking
159
+ tokenCount: integer('token_count'),
160
+ // Tool usage
161
+ toolCalls: jsonb('tool_calls').$type(),
162
+ metadata: jsonb('metadata').$type(),
163
+ createdAt: timestamp('created_at').defaultNow().notNull(),
164
+ }, (table) => [
165
+ index('messages_conversation_idx').on(table.conversationId),
166
+ index('messages_role_idx').on(table.role),
167
+ index('messages_created_idx').on(table.createdAt),
168
+ ]);
169
+ /**
170
+ * Observations - auto-captured tool usage and events
171
+ */
172
+ export const observations = pgTable('observations', {
173
+ id: uuid('id').primaryKey().defaultRandom(),
174
+ projectId: uuid('project_id').references(() => projects.id, { onDelete: 'cascade' }),
175
+ conversationId: uuid('conversation_id').references(() => conversations.id, { onDelete: 'set null' }),
176
+ // What happened
177
+ type: text('type').notNull().$type(),
178
+ action: text('action').notNull(), // e.g., 'Edit', 'Read', 'Bash'
179
+ target: text('target'), // e.g., file path, command
180
+ // Details
181
+ summary: text('summary').notNull(),
182
+ details: jsonb('details').$type(),
183
+ // Semantic search
184
+ embedding: vector('embedding', { dimensions: 1536 }),
185
+ // v0.2.0: Folder-scoped observations
186
+ folderPath: text('folder_path'),
187
+ projectPath: text('project_path'),
188
+ // v0.2.0: Privacy and relevance
189
+ isPrivate: boolean('is_private').default(false),
190
+ hasSecrets: boolean('has_secrets').default(false),
191
+ relevanceScore: integer('relevance_score').default(50), // 0-100
192
+ // Classification
193
+ category: text('category'), // e.g., 'refactoring', 'debugging', 'feature'
194
+ importance: integer('importance').default(50), // 0-100
195
+ metadata: jsonb('metadata').$type(),
196
+ createdAt: timestamp('created_at').defaultNow().notNull(),
197
+ }, (table) => [
198
+ index('observations_project_idx').on(table.projectId),
199
+ index('observations_type_idx').on(table.type),
200
+ index('observations_action_idx').on(table.action),
201
+ index('observations_created_idx').on(table.createdAt),
202
+ index('observations_folder_idx').on(table.folderPath),
203
+ index('observations_relevance_idx').on(table.relevanceScore),
204
+ index('observations_private_idx').on(table.isPrivate),
205
+ ]);
206
+ /**
207
+ * Entities - knowledge graph nodes
208
+ */
209
+ export const entities = pgTable('entities', {
210
+ id: uuid('id').primaryKey().defaultRandom(),
211
+ projectId: uuid('project_id').references(() => projects.id, { onDelete: 'cascade' }),
212
+ name: text('name').notNull(),
213
+ type: text('type').notNull().$type(),
214
+ description: text('description'),
215
+ // Semantic search
216
+ embedding: vector('embedding', { dimensions: 1536 }),
217
+ properties: jsonb('properties').$type(),
218
+ createdAt: timestamp('created_at').defaultNow().notNull(),
219
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
220
+ }, (table) => [
221
+ index('entities_project_idx').on(table.projectId),
222
+ index('entities_type_idx').on(table.type),
223
+ index('entities_name_idx').on(table.name),
224
+ ]);
225
+ /**
226
+ * Relations - knowledge graph edges
227
+ */
228
+ export const entityRelations = pgTable('entity_relations', {
229
+ id: uuid('id').primaryKey().defaultRandom(),
230
+ fromEntityId: uuid('from_entity_id').references(() => entities.id, { onDelete: 'cascade' }).notNull(),
231
+ toEntityId: uuid('to_entity_id').references(() => entities.id, { onDelete: 'cascade' }).notNull(),
232
+ type: text('type').notNull(), // e.g., 'uses', 'extends', 'contains', 'depends_on'
233
+ weight: integer('weight').default(1),
234
+ properties: jsonb('properties').$type(),
235
+ createdAt: timestamp('created_at').defaultNow().notNull(),
236
+ }, (table) => [
237
+ index('relations_from_idx').on(table.fromEntityId),
238
+ index('relations_to_idx').on(table.toEntityId),
239
+ index('relations_type_idx').on(table.type),
240
+ ]);
241
+ // ============================================================================
242
+ // v0.3.0: Lifecycle & Governance Tables
243
+ // ============================================================================
244
+ /**
245
+ * Memory Associations - Waypoint graph tracking memory relationships
246
+ */
247
+ export const memoryAssociations = pgTable('memory_associations', {
248
+ id: uuid('id').primaryKey().defaultRandom(),
249
+ fromMemoryId: uuid('from_memory_id').references(() => memories.id, { onDelete: 'cascade' }).notNull(),
250
+ toMemoryId: uuid('to_memory_id').references(() => memories.id, { onDelete: 'cascade' }).notNull(),
251
+ associationType: text('association_type').notNull().$type(),
252
+ weight: integer('weight').default(1), // Association strength
253
+ coactivationCount: integer('coactivation_count').default(0),
254
+ metadata: jsonb('metadata').$type(),
255
+ createdAt: timestamp('created_at').defaultNow().notNull(),
256
+ lastCoactivatedAt: timestamp('last_coactivated_at'),
257
+ }, (table) => [
258
+ index('associations_from_idx').on(table.fromMemoryId),
259
+ index('associations_to_idx').on(table.toMemoryId),
260
+ index('associations_type_idx').on(table.associationType),
261
+ index('associations_weight_idx').on(table.weight),
262
+ // v0.4.2: Composite index for graph traversal optimization
263
+ index('associations_graph_traversal_idx').on(table.fromMemoryId, table.toMemoryId, table.weight, table.associationType),
264
+ ]);
265
+ /**
266
+ * Session Summaries - Compressed conversation snapshots
267
+ */
268
+ export const sessionSummaries = pgTable('session_summaries', {
269
+ id: uuid('id').primaryKey().defaultRandom(),
270
+ conversationId: uuid('conversation_id').references(() => conversations.id, { onDelete: 'cascade' }).notNull(),
271
+ projectId: uuid('project_id').references(() => projects.id, { onDelete: 'cascade' }),
272
+ summaryType: text('summary_type').notNull().$type(),
273
+ content: text('content').notNull(),
274
+ compressedFrom: integer('compressed_from'), // How many messages compressed
275
+ tokensSaved: integer('tokens_saved'),
276
+ embedding: vector('embedding', { dimensions: 1536 }),
277
+ createdAt: timestamp('created_at').defaultNow().notNull(),
278
+ }, (table) => [
279
+ index('session_summaries_conversation_idx').on(table.conversationId),
280
+ index('session_summaries_project_idx').on(table.projectId),
281
+ index('session_summaries_type_idx').on(table.summaryType),
282
+ ]);
283
+ /**
284
+ * Memory Snapshots - Before/after diffs for auditability
285
+ */
286
+ export const memorySnapshots = pgTable('memory_snapshots', {
287
+ id: uuid('id').primaryKey().defaultRandom(),
288
+ memoryId: uuid('memory_id').references(() => memories.id, { onDelete: 'cascade' }).notNull(),
289
+ snapshotType: text('snapshot_type').notNull().$type(),
290
+ content: text('content').notNull(),
291
+ metadata: jsonb('metadata').$type(),
292
+ diff: jsonb('diff').$type(),
293
+ createdAt: timestamp('created_at').defaultNow().notNull(),
294
+ }, (table) => [
295
+ index('snapshots_memory_idx').on(table.memoryId),
296
+ index('snapshots_type_idx').on(table.snapshotType),
297
+ index('snapshots_created_idx').on(table.createdAt),
298
+ ]);
299
+ // ============================================================================
300
+ // Memory Merging Tables
301
+ // ============================================================================
302
+ /**
303
+ * Memory Merge Proposals - tracks suggested merges before user approval
304
+ */
305
+ export const memoryMergeProposals = pgTable('memory_merge_proposals', {
306
+ id: uuid('id').primaryKey().defaultRandom(),
307
+ projectId: uuid('project_id').references(() => projects.id, { onDelete: 'cascade' }).notNull(),
308
+ userId: uuid('user_id').references(() => users.id, { onDelete: 'set null' }),
309
+ // Source memories to be merged
310
+ sourceMemoryIds: jsonb('source_memory_ids').$type().notNull(),
311
+ // Proposed merged content
312
+ proposedContent: text('proposed_content').notNull(),
313
+ proposedSummary: text('proposed_summary'),
314
+ proposedTags: jsonb('proposed_tags').$type(),
315
+ proposedMetadata: jsonb('proposed_metadata').$type(),
316
+ // Detection metadata
317
+ detectionMethod: text('detection_method').notNull().$type(),
318
+ similarityScore: numeric('similarity_score').notNull(), // 0-1
319
+ confidenceLevel: text('confidence_level').notNull().$type(),
320
+ // Merge rationale
321
+ mergeReason: text('merge_reason').notNull(),
322
+ conflictWarnings: jsonb('conflict_warnings').$type(),
323
+ // Status
324
+ status: text('status').notNull().$type().default('pending'),
325
+ reviewedAt: timestamp('reviewed_at'),
326
+ reviewNotes: text('review_notes'),
327
+ // Timestamps
328
+ createdAt: timestamp('created_at').defaultNow().notNull(),
329
+ expiresAt: timestamp('expires_at'), // Auto-expire old proposals
330
+ }, (table) => [
331
+ index('memory_merge_proposals_project_status_idx').on(table.projectId, table.status),
332
+ index('memory_merge_proposals_created_at_idx').on(table.createdAt),
333
+ ]);
334
+ /**
335
+ * Memory Merge History - audit trail of completed merges
336
+ */
337
+ export const memoryMergeHistory = pgTable('memory_merge_history', {
338
+ id: uuid('id').primaryKey().defaultRandom(),
339
+ projectId: uuid('project_id').references(() => projects.id, { onDelete: 'cascade' }).notNull(),
340
+ userId: uuid('user_id').references(() => users.id, { onDelete: 'set null' }),
341
+ // Merge details
342
+ proposalId: uuid('proposal_id').references(() => memoryMergeProposals.id, { onDelete: 'set null' }),
343
+ sourceMemoryIds: jsonb('source_memory_ids').$type().notNull(),
344
+ canonicalMemoryId: uuid('canonical_memory_id').references(() => memories.id, { onDelete: 'cascade' }).notNull(),
345
+ // Snapshot of merged memories (for reversibility)
346
+ sourceMemoriesSnapshot: jsonb('source_memories_snapshot').$type().notNull(),
347
+ // Merge metadata
348
+ mergeStrategy: text('merge_strategy').notNull().$type(),
349
+ tokensSaved: integer('tokens_saved'), // Estimated context window savings
350
+ // Reversibility
351
+ isReversed: boolean('is_reversed').default(false),
352
+ reversedAt: timestamp('reversed_at'),
353
+ reversedBy: uuid('reversed_by'),
354
+ // Timestamps
355
+ mergedAt: timestamp('merged_at').defaultNow().notNull(),
356
+ });
357
+ /**
358
+ * Memory Hash Cache - cached hash signatures for efficient duplicate detection
359
+ */
360
+ export const memoryHashCache = pgTable('memory_hash_cache', {
361
+ memoryId: uuid('memory_id').primaryKey().references(() => memories.id, { onDelete: 'cascade' }),
362
+ projectId: uuid('project_id').references(() => projects.id, { onDelete: 'cascade' }).notNull(),
363
+ // Hash signatures
364
+ simhash: text('simhash'), // 64-bit hash as hex string
365
+ minhash: jsonb('minhash').$type(), // Array of 128 hash values
366
+ // Metadata for cache invalidation
367
+ contentHash: text('content_hash').notNull(), // MD5/SHA of content for invalidation
368
+ lastUpdated: timestamp('last_updated').defaultNow().notNull(),
369
+ }, (table) => [
370
+ index('memory_hash_cache_project_id_idx').on(table.projectId),
371
+ index('memory_hash_cache_simhash_idx').on(table.simhash), // For Hamming distance queries
372
+ ]);
373
+ /**
374
+ * Core Memory - Always-in-context memory (Tier 1)
375
+ * Small, persistent, always-visible memory block (< 2KB total)
376
+ */
377
+ export const coreMemory = pgTable('core_memory', {
378
+ id: uuid('id').primaryKey().defaultRandom(),
379
+ projectId: uuid('project_id').references(() => projects.id, { onDelete: 'cascade' }),
380
+ userId: uuid('user_id').references(() => users.id, { onDelete: 'set null' }),
381
+ // Core memory sections
382
+ section: text('section').notNull().$type(),
383
+ content: text('content').notNull().default(''),
384
+ sizeBytes: integer('size_bytes').default(0).notNull(),
385
+ // Version tracking
386
+ version: integer('version').default(1).notNull(),
387
+ createdAt: timestamp('created_at').defaultNow().notNull(),
388
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
389
+ }, (table) => [
390
+ index('core_memory_project_idx').on(table.projectId),
391
+ index('core_memory_user_idx').on(table.userId),
392
+ index('core_memory_section_idx').on(table.section),
393
+ ]);
394
+ /**
395
+ * Context Sessions - Track loaded memories and context window usage
396
+ */
397
+ export const contextSessions = pgTable('context_sessions', {
398
+ id: uuid('id').primaryKey().defaultRandom(),
399
+ sessionId: text('session_id').notNull().unique(),
400
+ projectId: uuid('project_id').references(() => projects.id, { onDelete: 'cascade' }),
401
+ userId: uuid('user_id').references(() => users.id, { onDelete: 'set null' }),
402
+ // Loaded memories (paging system)
403
+ loadedMemoryIds: text('loaded_memory_ids').array().default([]),
404
+ // Token tracking
405
+ tokenBudget: integer('token_budget').default(8000).notNull(),
406
+ tokensUsed: integer('tokens_used').default(0).notNull(),
407
+ coreMemoryTokens: integer('core_memory_tokens').default(0).notNull(),
408
+ loadedMemoriesTokens: integer('loaded_memories_tokens').default(0).notNull(),
409
+ // Session metadata
410
+ metadata: jsonb('metadata').$type(),
411
+ createdAt: timestamp('created_at').defaultNow().notNull(),
412
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
413
+ }, (table) => [
414
+ index('context_sessions_session_idx').on(table.sessionId),
415
+ index('context_sessions_project_idx').on(table.projectId),
416
+ index('context_sessions_created_idx').on(table.createdAt),
417
+ ]);
418
+ // ============================================================================
419
+ // Relations (Drizzle ORM)
420
+ // ============================================================================
421
+ export const usersRelations = relations(users, ({ many }) => ({
422
+ memories: many(memories),
423
+ conversations: many(conversations),
424
+ }));
425
+ export const projectsRelations = relations(projects, ({ many }) => ({
426
+ memories: many(memories),
427
+ conversations: many(conversations),
428
+ observations: many(observations),
429
+ entities: many(entities),
430
+ }));
431
+ export const memoriesRelations = relations(memories, ({ one }) => ({
432
+ project: one(projects, {
433
+ fields: [memories.projectId],
434
+ references: [projects.id],
435
+ }),
436
+ user: one(users, {
437
+ fields: [memories.userId],
438
+ references: [users.id],
439
+ }),
440
+ }));
441
+ export const conversationsRelations = relations(conversations, ({ one, many }) => ({
442
+ project: one(projects, {
443
+ fields: [conversations.projectId],
444
+ references: [projects.id],
445
+ }),
446
+ user: one(users, {
447
+ fields: [conversations.userId],
448
+ references: [users.id],
449
+ }),
450
+ messages: many(messages),
451
+ observations: many(observations),
452
+ }));
453
+ export const messagesRelations = relations(messages, ({ one }) => ({
454
+ conversation: one(conversations, {
455
+ fields: [messages.conversationId],
456
+ references: [conversations.id],
457
+ }),
458
+ }));
459
+ export const observationsRelations = relations(observations, ({ one }) => ({
460
+ project: one(projects, {
461
+ fields: [observations.projectId],
462
+ references: [projects.id],
463
+ }),
464
+ conversation: one(conversations, {
465
+ fields: [observations.conversationId],
466
+ references: [conversations.id],
467
+ }),
468
+ }));
469
+ export const entitiesRelations = relations(entities, ({ one, many }) => ({
470
+ project: one(projects, {
471
+ fields: [entities.projectId],
472
+ references: [projects.id],
473
+ }),
474
+ outgoingRelations: many(entityRelations, { relationName: 'fromEntity' }),
475
+ incomingRelations: many(entityRelations, { relationName: 'toEntity' }),
476
+ }));
477
+ export const entityRelationsRelations = relations(entityRelations, ({ one }) => ({
478
+ fromEntity: one(entities, {
479
+ fields: [entityRelations.fromEntityId],
480
+ references: [entities.id],
481
+ relationName: 'fromEntity',
482
+ }),
483
+ toEntity: one(entities, {
484
+ fields: [entityRelations.toEntityId],
485
+ references: [entities.id],
486
+ relationName: 'toEntity',
487
+ }),
488
+ }));
489
+ export const memoryAssociationsRelations = relations(memoryAssociations, ({ one }) => ({
490
+ fromMemory: one(memories, {
491
+ fields: [memoryAssociations.fromMemoryId],
492
+ references: [memories.id],
493
+ relationName: 'fromAssociations',
494
+ }),
495
+ toMemory: one(memories, {
496
+ fields: [memoryAssociations.toMemoryId],
497
+ references: [memories.id],
498
+ relationName: 'toAssociations',
499
+ }),
500
+ }));
501
+ export const sessionSummariesRelations = relations(sessionSummaries, ({ one }) => ({
502
+ conversation: one(conversations, {
503
+ fields: [sessionSummaries.conversationId],
504
+ references: [conversations.id],
505
+ }),
506
+ project: one(projects, {
507
+ fields: [sessionSummaries.projectId],
508
+ references: [projects.id],
509
+ }),
510
+ }));
511
+ export const memorySnapshotsRelations = relations(memorySnapshots, ({ one }) => ({
512
+ memory: one(memories, {
513
+ fields: [memorySnapshots.memoryId],
514
+ references: [memories.id],
515
+ }),
516
+ }));
517
+ export const memoryMergeProposalsRelations = relations(memoryMergeProposals, ({ one }) => ({
518
+ project: one(projects, {
519
+ fields: [memoryMergeProposals.projectId],
520
+ references: [projects.id],
521
+ }),
522
+ user: one(users, {
523
+ fields: [memoryMergeProposals.userId],
524
+ references: [users.id],
525
+ }),
526
+ }));
527
+ export const memoryMergeHistoryRelations = relations(memoryMergeHistory, ({ one }) => ({
528
+ project: one(projects, {
529
+ fields: [memoryMergeHistory.projectId],
530
+ references: [projects.id],
531
+ }),
532
+ user: one(users, {
533
+ fields: [memoryMergeHistory.userId],
534
+ references: [users.id],
535
+ }),
536
+ canonicalMemory: one(memories, {
537
+ fields: [memoryMergeHistory.canonicalMemoryId],
538
+ references: [memories.id],
539
+ }),
540
+ proposal: one(memoryMergeProposals, {
541
+ fields: [memoryMergeHistory.proposalId],
542
+ references: [memoryMergeProposals.id],
543
+ }),
544
+ }));
545
+ export const memoryHashCacheRelations = relations(memoryHashCache, ({ one }) => ({
546
+ memory: one(memories, {
547
+ fields: [memoryHashCache.memoryId],
548
+ references: [memories.id],
549
+ }),
550
+ project: one(projects, {
551
+ fields: [memoryHashCache.projectId],
552
+ references: [projects.id],
553
+ }),
554
+ }));
555
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../drizzle/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Squish v0.6.0 - Major tool consolidation milestone
4
+ *
5
+ * This is a significant refactor reducing MCP tools from 18 to 11 (39% reduction).
6
+ * Breaking changes in tool API - migration guide: see docs/MIGRATION-v0.6.0.md
7
+ *
8
+ * Features:
9
+ * - 11 consolidated MCP tools (from 18)
10
+ * - Local mode: SQLite with FTS5 + auto-capture + folder context
11
+ * - Team mode: PostgreSQL + pgvector + Redis
12
+ * - Plugin system: Hooks for auto-capture, context injection, privacy filtering, folder context generation
13
+ * - Privacy-first: Secret detection, <private> tag filtering, async worker pipeline
14
+ * - Pluggable embeddings: OpenAI, Ollama, or local TF-IDF
15
+ *
16
+ * Consolidated MCP Tools (v0.6.0):
17
+ * - core_memory: Unified tool for view/edit/append operations (was 3 tools)
18
+ * - context_paging: Unified tool for load/evict/view operations (was 3 tools)
19
+ * - merge: Unified tool for detect/list/preview/stats/approve/reject/reverse (was 2 tools)
20
+ * - context_status, remember, recall, search, observe, context, health (unchanged)
21
+ * - lifecycle, summarize_session, protect_memory (unchanged)
22
+ *
23
+ * Plugin hooks (registered in plugin.json):
24
+ * - onInstall: Initialize database, create config files
25
+ * - onSessionStart: Inject relevant context + generate folder context
26
+ * - onUserPromptSubmit: Auto-capture user prompts with privacy filtering
27
+ * - onPostToolUse: Auto-capture tool executions and observe patterns
28
+ * - onSessionStop: Finalize observations, summarize via async worker
29
+ *
30
+ * See src/plugin/plugin-wrapper.ts for hook implementations
31
+ * See docs/MIGRATION-v0.6.0.md for migration guide
32
+ */
33
+ import 'dotenv/config';
34
+ //# sourceMappingURL=index.d.ts.map