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-sqlite.d.ts","sourceRoot":"","sources":["../../drizzle/schema-sqlite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,405 @@
1
+ import { sqliteTable, text, integer, blob, index } from 'drizzle-orm/sqlite-core';
2
+ import { sql } from 'drizzle-orm';
3
+ // ============================================================================
4
+ // Core Tables - SQLite compatible version
5
+ // ============================================================================
6
+ /**
7
+ * Users - represents Claude Code users
8
+ */
9
+ export const users = sqliteTable('users', {
10
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
11
+ externalId: text('external_id').unique(), // Claude user ID if available
12
+ name: text('name'),
13
+ email: text('email'),
14
+ preferences: text('preferences').$type(),
15
+ createdAt: integer('created_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
16
+ updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
17
+ });
18
+ /**
19
+ * Projects - workspaces that memories are scoped to
20
+ */
21
+ export const projects = sqliteTable('projects', {
22
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
23
+ name: text('name').notNull(),
24
+ path: text('path').notNull(),
25
+ description: text('description'),
26
+ metadata: text('metadata').$type(),
27
+ createdAt: integer('created_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
28
+ updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
29
+ }, (table) => [
30
+ index('projects_path_idx').on(table.path),
31
+ ]);
32
+ /**
33
+ * Memories - core memory storage
34
+ */
35
+ export const memories = sqliteTable('memories', {
36
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
37
+ projectId: text('project_id').references(() => projects.id, { onDelete: 'cascade' }),
38
+ userId: text('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'),
43
+ // Embeddings stored as JSON string (not for semantic search in SQLite)
44
+ embeddingJson: text('embedding_json'),
45
+ // v0.2.0: Vector embedding for local search
46
+ embedding: blob('embedding'),
47
+ // Metadata
48
+ source: text('source'),
49
+ confidence: integer('confidence').default(100),
50
+ tags: text('tags').$type(),
51
+ metadata: text('metadata').$type(),
52
+ // v0.2.0: Privacy and relevance
53
+ isPrivate: integer('is_private', { mode: 'boolean' }).default(false),
54
+ hasSecrets: integer('has_secrets', { mode: 'boolean' }).default(false),
55
+ relevanceScore: integer('relevance_score').default(50), // 0-100
56
+ // Lifecycle
57
+ isActive: integer('is_active', { mode: 'boolean' }).default(true),
58
+ expiresAt: integer('expires_at', { mode: 'timestamp' }),
59
+ accessCount: integer('access_count').default(0),
60
+ lastAccessedAt: integer('last_accessed_at', { mode: 'timestamp' }),
61
+ // Merge tracking
62
+ isMerged: integer('is_merged', { mode: 'boolean' }).default(false),
63
+ mergedIntoId: text('merged_into_id').references(() => memories.id),
64
+ mergedAt: integer('merged_at', { mode: 'timestamp' }),
65
+ isCanonical: integer('is_canonical', { mode: 'boolean' }).default(false),
66
+ mergeSourceIds: text('merge_source_ids').$type(),
67
+ isMergeable: integer('is_mergeable', { mode: 'boolean' }).default(true),
68
+ mergeVersion: integer('merge_version').default(1),
69
+ // v0.3.0: Memory Lifecycle Management
70
+ sector: text('sector').$type().default('episodic'),
71
+ tier: text('tier').$type().default('hot'),
72
+ // v0.5.0: Context Status - Track whether memory is in active context or archived
73
+ contextStatus: text('context_status').$type().default('out-of-context'),
74
+ decayRate: integer('decay_rate').default(30),
75
+ coactivationScore: integer('coactivation_score').default(0),
76
+ lastDecayAt: integer('last_decay_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`),
77
+ // v0.3.0: Agent-Aware Memory
78
+ agentId: text('agent_id'),
79
+ agentRole: text('agent_role'),
80
+ visibilityScope: text('visibility_scope').$type().default('private'),
81
+ // v0.3.0: Memory Governance
82
+ isProtected: integer('is_protected', { mode: 'boolean' }).default(false),
83
+ isPinned: integer('is_pinned', { mode: 'boolean' }).default(false),
84
+ isImmutable: integer('is_immutable', { mode: 'boolean' }).default(false),
85
+ writeScope: text('write_scope').$type(),
86
+ readScope: text('read_scope').$type(),
87
+ // v0.3.0: Provenance
88
+ triggeredBy: text('triggered_by'),
89
+ captureReason: text('capture_reason'),
90
+ lastUsedAt: integer('last_used_at', { mode: 'timestamp' }),
91
+ usageCount: integer('usage_count').default(0),
92
+ // v0.3.0: Temporal Facts
93
+ validFrom: integer('valid_from', { mode: 'timestamp' }),
94
+ validTo: integer('valid_to', { mode: 'timestamp' }),
95
+ supersededBy: text('superseded_by').references(() => memories.id),
96
+ version: integer('version').default(1),
97
+ createdAt: integer('created_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
98
+ updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
99
+ }, (table) => [
100
+ index('memories_project_idx').on(table.projectId),
101
+ index('memories_type_idx').on(table.type),
102
+ index('memories_created_idx').on(table.createdAt),
103
+ index('memories_tags_idx').on(table.tags),
104
+ index('memories_relevance_idx').on(table.relevanceScore),
105
+ index('memories_private_idx').on(table.isPrivate),
106
+ index('memories_merged_idx').on(table.isMerged),
107
+ index('memories_canonical_idx').on(table.isCanonical),
108
+ index('memories_sector_idx').on(table.sector),
109
+ index('memories_tier_idx').on(table.tier),
110
+ index('memories_agent_idx').on(table.agentId),
111
+ index('memories_visibility_idx').on(table.visibilityScope),
112
+ index('memories_protected_idx').on(table.isProtected),
113
+ index('memories_pinned_idx').on(table.isPinned),
114
+ index('memories_valid_from_idx').on(table.validFrom),
115
+ index('memories_valid_to_idx').on(table.validTo),
116
+ index('memories_context_status_idx').on(table.contextStatus),
117
+ // v0.5.0: Context status composite index for efficient filtering
118
+ index('memories_context_query_idx').on(table.projectId, table.contextStatus, table.tier),
119
+ // v0.4.2: Composite indexes for performance optimization
120
+ // Duplicate detection query optimization
121
+ index('memories_duplicate_detection_idx').on(table.projectId, table.isMerged, table.isMergeable, table.isActive),
122
+ // Eviction query optimization
123
+ index('memories_eviction_idx').on(table.projectId, table.tier, table.relevanceScore, table.createdAt),
124
+ // Decay operations optimization
125
+ index('memories_decay_idx').on(table.sector, table.lastDecayAt, table.isProtected),
126
+ // Temporal query optimization
127
+ index('memories_temporal_idx').on(table.projectId, table.validFrom, table.validTo),
128
+ // Agent-aware retrieval optimization
129
+ index('memories_agent_visibility_idx').on(table.agentId, table.visibilityScope, table.isActive),
130
+ ]);
131
+ /**
132
+ * Conversations - chat session tracking
133
+ */
134
+ export const conversations = sqliteTable('conversations', {
135
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
136
+ projectId: text('project_id').references(() => projects.id, { onDelete: 'cascade' }),
137
+ userId: text('user_id').references(() => users.id, { onDelete: 'set null' }),
138
+ sessionId: text('session_id').notNull(),
139
+ title: text('title'),
140
+ summary: text('summary'),
141
+ messageCount: integer('message_count').default(0),
142
+ tokenCount: integer('token_count').default(0),
143
+ startedAt: integer('started_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
144
+ endedAt: integer('ended_at', { mode: 'timestamp' }),
145
+ metadata: text('metadata').$type(),
146
+ createdAt: integer('created_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
147
+ updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
148
+ }, (table) => [
149
+ index('conversations_project_idx').on(table.projectId),
150
+ index('conversations_session_idx').on(table.sessionId),
151
+ index('conversations_started_idx').on(table.startedAt),
152
+ ]);
153
+ /**
154
+ * Messages - individual messages in conversations
155
+ */
156
+ export const messages = sqliteTable('messages', {
157
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
158
+ conversationId: text('conversation_id').notNull().references(() => conversations.id, { onDelete: 'cascade' }),
159
+ role: text('role').notNull().$type(),
160
+ content: text('content').notNull(),
161
+ embeddingJson: text('embedding_json'),
162
+ tokenCount: integer('token_count'),
163
+ toolCalls: text('tool_calls').$type(),
164
+ metadata: text('metadata').$type(),
165
+ createdAt: integer('created_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
166
+ }, (table) => [
167
+ index('messages_conversation_idx').on(table.conversationId),
168
+ index('messages_role_idx').on(table.role),
169
+ index('messages_created_idx').on(table.createdAt),
170
+ ]);
171
+ /**
172
+ * Observations - user observations and insights
173
+ */
174
+ export const observations = sqliteTable('observations', {
175
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
176
+ projectId: text('project_id').references(() => projects.id, { onDelete: 'cascade' }),
177
+ conversationId: text('conversation_id').references(() => conversations.id, { onDelete: 'set null' }),
178
+ type: text('type').notNull(),
179
+ action: text('action').notNull(),
180
+ target: text('target'),
181
+ summary: text('summary').notNull(),
182
+ details: text('details').$type(),
183
+ embeddingJson: text('embedding_json'),
184
+ // v0.2.0: Vector embedding for local search
185
+ embedding: blob('embedding'),
186
+ // v0.2.0: Folder-scoped observations
187
+ folderPath: text('folder_path'),
188
+ projectPath: text('project_path'),
189
+ // v0.2.0: Privacy and relevance
190
+ isPrivate: integer('is_private', { mode: 'boolean' }).default(false),
191
+ hasSecrets: integer('has_secrets', { mode: 'boolean' }).default(false),
192
+ relevanceScore: integer('relevance_score').default(50), // 0-100
193
+ category: text('category'),
194
+ importance: integer('importance').default(50),
195
+ metadata: text('metadata').$type(),
196
+ createdAt: integer('created_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).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 - named entities in the codebase
208
+ */
209
+ export const entities = sqliteTable('entities', {
210
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
211
+ projectId: text('project_id').references(() => projects.id, { onDelete: 'cascade' }),
212
+ name: text('name').notNull(),
213
+ type: text('type').notNull(),
214
+ description: text('description'),
215
+ embeddingJson: text('embedding_json'),
216
+ properties: text('properties').$type(),
217
+ createdAt: integer('created_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
218
+ updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
219
+ }, (table) => [
220
+ index('entities_project_idx').on(table.projectId),
221
+ index('entities_type_idx').on(table.type),
222
+ index('entities_name_idx').on(table.name),
223
+ ]);
224
+ // ============================================================================
225
+ // Memory Merging Tables
226
+ // ============================================================================
227
+ /**
228
+ * Memory Merge Proposals - tracks suggested merges before user approval
229
+ */
230
+ export const memoryMergeProposals = sqliteTable('memory_merge_proposals', {
231
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
232
+ projectId: text('project_id').notNull().references(() => projects.id, { onDelete: 'cascade' }),
233
+ userId: text('user_id').references(() => users.id, { onDelete: 'set null' }),
234
+ sourceMemoryIds: text('source_memory_ids').$type().notNull(),
235
+ proposedContent: text('proposed_content').notNull(),
236
+ proposedSummary: text('proposed_summary'),
237
+ proposedTags: text('proposed_tags').$type(),
238
+ proposedMetadata: text('proposed_metadata').$type(),
239
+ detectionMethod: text('detection_method').notNull().$type(),
240
+ similarityScore: text('similarity_score').notNull(),
241
+ confidenceLevel: text('confidence_level').notNull().$type(),
242
+ mergeReason: text('merge_reason').notNull(),
243
+ conflictWarnings: text('conflict_warnings').$type(),
244
+ status: text('status').$type().default('pending').notNull(),
245
+ reviewedAt: integer('reviewed_at', { mode: 'timestamp' }),
246
+ reviewNotes: text('review_notes'),
247
+ createdAt: integer('created_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
248
+ expiresAt: integer('expires_at', { mode: 'timestamp' }),
249
+ }, (table) => [
250
+ index('memory_merge_proposals_project_status_idx').on(table.projectId, table.status),
251
+ index('memory_merge_proposals_created_at_idx').on(table.createdAt),
252
+ ]);
253
+ /**
254
+ * Memory Merge History - audit trail of completed merges
255
+ */
256
+ export const memoryMergeHistory = sqliteTable('memory_merge_history', {
257
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
258
+ projectId: text('project_id').notNull().references(() => projects.id, { onDelete: 'cascade' }),
259
+ userId: text('user_id').references(() => users.id, { onDelete: 'set null' }),
260
+ proposalId: text('proposal_id').references(() => memoryMergeProposals.id, { onDelete: 'set null' }),
261
+ sourceMemoryIds: text('source_memory_ids').$type().notNull(),
262
+ canonicalMemoryId: text('canonical_memory_id').notNull().references(() => memories.id, { onDelete: 'cascade' }),
263
+ sourceMemoriesSnapshot: text('source_memories_snapshot').$type().notNull(),
264
+ mergeStrategy: text('merge_strategy').notNull().$type(),
265
+ tokensSaved: integer('tokens_saved'),
266
+ isReversed: integer('is_reversed', { mode: 'boolean' }).default(false),
267
+ reversedAt: integer('reversed_at', { mode: 'timestamp' }),
268
+ reversedBy: text('reversed_by'),
269
+ mergedAt: integer('merged_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
270
+ });
271
+ /**
272
+ * Memory Hash Cache - cached hash signatures for efficient duplicate detection
273
+ */
274
+ export const memoryHashCache = sqliteTable('memory_hash_cache', {
275
+ memoryId: text('memory_id').primaryKey().references(() => memories.id, { onDelete: 'cascade' }),
276
+ projectId: text('project_id').notNull().references(() => projects.id, { onDelete: 'cascade' }),
277
+ simhash: text('simhash'),
278
+ minhash: text('minhash').$type(),
279
+ contentHash: text('content_hash').notNull(),
280
+ lastUpdated: integer('last_updated', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
281
+ }, (table) => [
282
+ index('memory_hash_cache_project_id_idx').on(table.projectId),
283
+ index('memory_hash_cache_simhash_idx').on(table.simhash),
284
+ ]);
285
+ /**
286
+ * Entity Relations - relationships between entities
287
+ */
288
+ export const entityRelations = sqliteTable('entity_relations', {
289
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
290
+ fromEntityId: text('from_entity_id').notNull().references(() => entities.id, { onDelete: 'cascade' }),
291
+ toEntityId: text('to_entity_id').notNull().references(() => entities.id, { onDelete: 'cascade' }),
292
+ type: text('type').notNull(),
293
+ weight: integer('weight').default(1),
294
+ properties: text('properties').$type(),
295
+ createdAt: integer('created_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
296
+ }, (table) => [
297
+ index('relations_from_idx').on(table.fromEntityId),
298
+ index('relations_to_idx').on(table.toEntityId),
299
+ index('relations_type_idx').on(table.type),
300
+ ]);
301
+ // ============================================================================
302
+ // v0.3.0: Lifecycle Features - Associations, Summarization, Snapshots
303
+ // ============================================================================
304
+ /**
305
+ * Memory Associations - waypoint graph for co-activation tracking
306
+ */
307
+ export const memoryAssociations = sqliteTable('memory_associations', {
308
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
309
+ fromMemoryId: text('from_memory_id').notNull().references(() => memories.id, { onDelete: 'cascade' }),
310
+ toMemoryId: text('to_memory_id').notNull().references(() => memories.id, { onDelete: 'cascade' }),
311
+ associationType: text('association_type').notNull().$type(),
312
+ weight: integer('weight').default(1),
313
+ coactivationCount: integer('coactivation_count').default(0),
314
+ metadata: text('metadata').$type(),
315
+ createdAt: integer('created_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
316
+ lastCoactivatedAt: integer('last_coactivated_at', { mode: 'timestamp' }),
317
+ }, (table) => [
318
+ index('memory_associations_from_idx').on(table.fromMemoryId),
319
+ index('memory_associations_to_idx').on(table.toMemoryId),
320
+ index('memory_associations_type_idx').on(table.associationType),
321
+ index('memory_associations_weight_idx').on(table.weight),
322
+ // v0.4.2: Composite index for graph traversal optimization
323
+ index('memory_associations_graph_traversal_idx').on(table.fromMemoryId, table.toMemoryId, table.weight, table.associationType),
324
+ ]);
325
+ /**
326
+ * Session Summaries - incremental and rolling session summaries
327
+ */
328
+ export const sessionSummaries = sqliteTable('session_summaries', {
329
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
330
+ conversationId: text('conversation_id').notNull().references(() => conversations.id, { onDelete: 'cascade' }),
331
+ projectId: text('project_id').references(() => projects.id, { onDelete: 'cascade' }),
332
+ summaryType: text('summary_type').notNull().$type(),
333
+ content: text('content').notNull(),
334
+ compressedFrom: integer('compressed_from'),
335
+ tokensSaved: integer('tokens_saved'),
336
+ embedding: blob('embedding'),
337
+ createdAt: integer('created_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
338
+ }, (table) => [
339
+ index('session_summaries_conversation_idx').on(table.conversationId),
340
+ index('session_summaries_project_idx').on(table.projectId),
341
+ index('session_summaries_type_idx').on(table.summaryType),
342
+ index('session_summaries_created_idx').on(table.createdAt),
343
+ ]);
344
+ /**
345
+ * Memory Snapshots - before/after diffs for auditability
346
+ */
347
+ export const memorySnapshots = sqliteTable('memory_snapshots', {
348
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
349
+ memoryId: text('memory_id').notNull().references(() => memories.id, { onDelete: 'cascade' }),
350
+ snapshotType: text('snapshot_type').notNull().$type(),
351
+ content: text('content').notNull(),
352
+ metadata: text('metadata').$type(),
353
+ diff: text('diff').$type(),
354
+ createdAt: integer('created_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
355
+ }, (table) => [
356
+ index('memory_snapshots_memory_idx').on(table.memoryId),
357
+ index('memory_snapshots_type_idx').on(table.snapshotType),
358
+ index('memory_snapshots_created_idx').on(table.createdAt),
359
+ ]);
360
+ /**
361
+ * Core Memory - Always-in-context memory (Tier 1)
362
+ * Small, persistent, always-visible memory block (< 2KB total)
363
+ */
364
+ export const coreMemory = sqliteTable('core_memory', {
365
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
366
+ projectId: text('project_id').references(() => projects.id, { onDelete: 'cascade' }),
367
+ userId: text('user_id').references(() => users.id, { onDelete: 'set null' }),
368
+ // Core memory sections
369
+ section: text('section').notNull().$type(),
370
+ content: text('content').notNull().default(''),
371
+ sizeBytes: integer('size_bytes').default(0).notNull(),
372
+ // Version tracking
373
+ version: integer('version').default(1).notNull(),
374
+ createdAt: integer('created_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
375
+ updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
376
+ }, (table) => [
377
+ index('core_memory_project_idx').on(table.projectId),
378
+ index('core_memory_user_idx').on(table.userId),
379
+ index('core_memory_section_idx').on(table.section),
380
+ ]);
381
+ /**
382
+ * Context Sessions - Track loaded memories and context window usage
383
+ */
384
+ export const contextSessions = sqliteTable('context_sessions', {
385
+ id: text('id').primaryKey().$default(() => crypto.randomUUID()),
386
+ sessionId: text('session_id').notNull().unique(),
387
+ projectId: text('project_id').references(() => projects.id, { onDelete: 'cascade' }),
388
+ userId: text('user_id').references(() => users.id, { onDelete: 'set null' }),
389
+ // Loaded memories (paging system)
390
+ loadedMemoryIds: text('loaded_memory_ids').$type().default([]),
391
+ // Token tracking
392
+ tokenBudget: integer('token_budget').default(8000).notNull(),
393
+ tokensUsed: integer('tokens_used').default(0).notNull(),
394
+ coreMemoryTokens: integer('core_memory_tokens').default(0).notNull(),
395
+ loadedMemoriesTokens: integer('loaded_memories_tokens').default(0).notNull(),
396
+ // Session metadata
397
+ metadata: text('metadata').$type(),
398
+ createdAt: integer('created_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
399
+ updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql `CURRENT_TIMESTAMP`).notNull(),
400
+ }, (table) => [
401
+ index('context_sessions_session_idx').on(table.sessionId),
402
+ index('context_sessions_project_idx').on(table.projectId),
403
+ index('context_sessions_created_idx').on(table.createdAt),
404
+ ]);
405
+ //# sourceMappingURL=schema-sqlite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-sqlite.js","sourceRoot":"","sources":["../../drizzle/schema-sqlite.ts"],"names":[],"mappings":"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"}