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,20 @@
1
+ {
2
+ "name": "squish-memory",
3
+ "owner": {
4
+ "name": "michielhdoteth"
5
+ },
6
+ "plugins": [
7
+ {
8
+ "name": "squish",
9
+ "version": "0.6.0",
10
+ "description": "Production-ready two-tier memory system for Claude Code with 11 consolidated MCP tools. Always-visible core memory (persona, user info, project context, notes) + intelligent context paging. Advanced features: merge detection, semantic search, lifecycle management, bridge discovery. Features: 30-100x performance gains, automatic session hooks, privacy-first encryption, PostgreSQL team collaboration. Major consolidation: 39% fewer tools with same functionality.",
11
+ "author": {
12
+ "name": "michielhdoteth"
13
+ },
14
+ "license": "MIT",
15
+ "homepage": "https://github.com/michielhdoteth/squish",
16
+ "repository": "https://github.com/michielhdoteth/squish.git",
17
+ "source": "./"
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "squish",
3
+ "version": "0.6.0",
4
+ "description": "11 consolidated MCP tools for persistent two-tier memory system: core_memory, context_paging, merge, plus semantic search, lifecycle management, and intelligent context paging",
5
+ "author": {
6
+ "name": "michielhdoteth",
7
+ "url": "https://github.com/michielhdoteth"
8
+ },
9
+ "license": "MIT",
10
+ "homepage": "https://github.com/michielhdoteth/squish#readme",
11
+ "repository": "https://github.com/michielhdoteth/squish.git",
12
+ "keywords": [
13
+ "claude",
14
+ "claude-code",
15
+ "claude-plugin",
16
+ "mcp-server",
17
+ "memory",
18
+ "persistent-memory",
19
+ "core-memory",
20
+ "context-management",
21
+ "semantic-search",
22
+ "full-text-search",
23
+ "local-first",
24
+ "privacy",
25
+ "agent-memory",
26
+ "slash-commands",
27
+ "two-tier-architecture",
28
+ "model-context-protocol"
29
+ ],
30
+ "commands": "./commands/",
31
+ "mcpServers": "./.mcp.json"
32
+ }
package/.mcp.json ADDED
@@ -0,0 +1,14 @@
1
+ {
2
+ "mcpServers": {
3
+ "squish": {
4
+ "command": "node",
5
+ "args": ["./dist/index.js"],
6
+ "cwd": "${CLAUDE_PLUGIN_ROOT}",
7
+ "env": {
8
+ "SQUISH_MODE": "local",
9
+ "NODE_ENV": "production",
10
+ "SQUISH_DATA_DIR": "${CLAUDE_WORKING_DIRECTORY}/.squish"
11
+ }
12
+ }
13
+ }
14
+ }
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 michielhdoteth
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,556 @@
1
+ # Squish - Two-Tier Memory System for Claude Code
2
+
3
+ A persistent, context-aware memory plugin for Claude Code (v0.7.0) that provides intelligent memory management with a two-tier architecture: always-in-context core memory (2KB) plus context paging for selective memory loading.
4
+
5
+ **What's New in v0.7.0:**
6
+ - **OpenClaw Gateway**: WebSocket API for OpenClaw AI assistant integration
7
+ - **Enhanced Search**: Improved semantic search with better ranking
8
+ - **Memory Tools**: Expanded toolkit for memory management
9
+
10
+ ## Features
11
+
12
+ ### Memory Architecture
13
+
14
+ - **Core Memory (Tier 1)**: 2KB always-visible persistent memory divided into 4 sections
15
+ - `persona`: AI assistant personality and role definition
16
+ - `user_info`: Information about the user and their preferences
17
+ - `project_context`: Current project architecture and patterns
18
+ - `working_notes`: Transient notes during active work sessions
19
+
20
+ - **Context Paging (Tier 2)**: Agent-controlled memory loading with token budgeting
21
+ - Dynamically load/evict memories based on relevance
22
+ - Token-aware context management (8KB default budget)
23
+ - Automatic memory decay and lifecycle management
24
+
25
+ ### MCP Tools
26
+
27
+ **Core Memory Management:**
28
+ - `/core_memory` - View, edit, or append to always-in-context memory sections
29
+
30
+ **Context & Search:**
31
+ - `/context_paging` - Load/evict/view loaded memories in current session
32
+ - `/context` - Get project context with semantically relevant memories
33
+ - `/search` - Full-text + semantic search across memories
34
+ - `/context_status` - Check context window usage and loaded memories
35
+
36
+ **Memory Operations:**
37
+ - `/remember` - Store new observations, facts, decisions, and preferences
38
+ - `/recall` - Retrieve specific memories by ID with metadata
39
+ - `/observe` - Record tool usage and patterns observed during execution
40
+
41
+ **Memory Management:**
42
+ - `/merge` - Detect duplicates, preview/approve/reject merges
43
+
44
+ **System:**
45
+ - `/health` - Check MCP server and database connectivity
46
+
47
+ ### Storage
48
+
49
+ - **SQLite** (local mode): Local-first, zero setup required
50
+ - **PostgreSQL** (team mode): Shared memory across users
51
+ - Smart embeddings: Local TF-IDF (offline) for SQLite, OpenAI/Ollama for PostgreSQL
52
+
53
+ ### OpenClaw Gateway (v0.7.0)
54
+
55
+ Squish provides a **WebSocket gateway** for OpenClaw AI assistant integration, enabling OpenClaw agents to access Squish's memory system.
56
+
57
+ **Gateway Details:**
58
+ - **Protocol**: WebSocket
59
+ - **Port**: 18789
60
+ - **Messages**: search, remember, recall, status
61
+
62
+ **Enable Gateway:**
63
+ ```bash
64
+ export OPENCLAW_GATEWAY_ENABLED=true
65
+ ```
66
+
67
+ **Message Format:**
68
+ ```json
69
+ {
70
+ "type": "search",
71
+ "id": "unique-request-id",
72
+ "payload": {
73
+ "query": "authentication flow",
74
+ "limit": 10
75
+ }
76
+ }
77
+ ```
78
+
79
+ **Response Format:**
80
+ ```json
81
+ {
82
+ "type": "search",
83
+ "id": "unique-request-id",
84
+ "success": true,
85
+ "data": {
86
+ "results": [...],
87
+ "count": 10
88
+ }
89
+ }
90
+ ```
91
+
92
+ ## Installation
93
+
94
+ ### Install via Claude Code Marketplace (Recommended)
95
+
96
+ ```bash
97
+ # Step 1: Add the Squish marketplace
98
+ /plugin marketplace add https://github.com/michielhdoteth/squish.git
99
+
100
+ # Step 2: Install Squish
101
+ /plugin install squish@michielhdoteth-squish
102
+ ```
103
+
104
+ ### For Local Development Testing
105
+
106
+ Load the plugin directly without installation:
107
+
108
+ ```bash
109
+ claude --plugin-dir "C:\Users\michi\Desktop\squish-cc\squish"
110
+ ```
111
+
112
+ Or on macOS/Linux:
113
+
114
+ ```bash
115
+ claude --plugin-dir "/path/to/squish"
116
+ ```
117
+
118
+ This loads the plugin from your development directory and allows immediate testing of changes.
119
+
120
+ ### For Production Installation
121
+
122
+ 1. Build the plugin:
123
+ ```bash
124
+ npm install
125
+ npm run build
126
+ ```
127
+
128
+ 2. Package as npm module:
129
+ ```bash
130
+ npm pack
131
+ ```
132
+
133
+ 3. Install the `.tgz` file:
134
+ ```bash
135
+ npm install -g squish-memory-0.7.0.tgz
136
+ ```
137
+
138
+ ## Configuration
139
+
140
+ ### Environment Variables
141
+
142
+ **Required (SQLite mode - default):**
143
+ - None! Works out-of-the-box with local TF-IDF embeddings
144
+
145
+ **Optional (SQLite mode):**
146
+ - `SQUISH_DATA_DIR`: Custom data directory (default: `./.squish` in project root)
147
+ - `SQUISH_EMBEDDINGS_PROVIDER`: Force embedding provider (`none`, `local`, `openai`, `ollama`)
148
+
149
+ **Team Mode (PostgreSQL):**
150
+ - `DATABASE_URL`: PostgreSQL connection string (activates team mode)
151
+ - `SQUISH_OPENAI_API_KEY`: OpenAI API key for embeddings (optional in team mode)
152
+ - `SQUISH_OLLAMA_URL`: Ollama server URL for local LLM embeddings
153
+
154
+ **OpenClaw Gateway (v0.7.0):**
155
+ ```bash
156
+ # Enable OpenClaw WebSocket gateway
157
+ OPENCLAW_GATEWAY_ENABLED=true
158
+ ```
159
+
160
+ **Advanced Options:**
161
+ ```bash
162
+ # Lifecycle management
163
+ SQUISH_LIFECYCLE_ENABLED=true
164
+ SQUISH_LIFECYCLE_INTERVAL=3600000 # ms
165
+
166
+ # Session summarization
167
+ SQUISH_SUMMARIZATION_ENABLED=true
168
+ SQUISH_INCREMENTAL_THRESHOLD=10
169
+ SQUISH_ROLLING_WINDOW_SIZE=50
170
+
171
+ # Agent isolation
172
+ SQUISH_AGENT_ISOLATION_ENABLED=true
173
+ SQUISH_DEFAULT_VISIBILITY=private # private|project|team|global
174
+ ```
175
+
176
+ ## Quick Start
177
+
178
+ ### 1. Initialize Core Memory
179
+
180
+ Store basic information that will always be available:
181
+
182
+ ```bash
183
+ /core_memory action=edit projectId=my-project section=persona content="I am a helpful assistant specialized in cloud infrastructure and DevOps."
184
+ ```
185
+
186
+ ### 2. Store Session Observations
187
+
188
+ Record what you learn during work:
189
+
190
+ ```bash
191
+ /remember projectId=my-project type=observation action=discovered target=kubernetes_pattern summary="Found the team uses GitOps with ArgoCD" tags=["kubernetes","gitops","devops"]
192
+ ```
193
+
194
+ ### 3. Search Your Memory
195
+
196
+ Find relevant past learnings:
197
+
198
+ ```bash
199
+ /search projectId=my-project query="kubernetes deployment" limit=5
200
+ ```
201
+
202
+ ### 4. Load Context for an Agent
203
+
204
+ Load relevant memories for agent use:
205
+
206
+ ```bash
207
+ /context_paging action=load sessionId=session-123 projectId=my-project memoryId=mem-456
208
+ ```
209
+
210
+ ## Architecture
211
+
212
+ ### Database Schema
213
+
214
+ **Core Tables:**
215
+ - `core_memory` - Always-in-context 2KB persistent memory
216
+ - `memories` - Main memory storage with lifecycle tracking
217
+ - `context_sessions` - Per-session context window tracking
218
+ - `conversations` - Chat session records
219
+ - `messages` - Message history with embeddings
220
+
221
+ **Lifecycle Tables:**
222
+ - `memory_associations` - Semantic relationships between memories
223
+ - `memory_merge_proposals` - Duplicate detection proposals
224
+ - `memory_merge_history` - Audit trail of merges
225
+ - `memory_snapshots` - Before/after diffs for auditability
226
+ - `session_summaries` - Incremental and rolling summaries
227
+
228
+ **Search & Discovery:**
229
+ - `entities` - Named entities (functions, files, patterns, people)
230
+ - `entity_relations` - Relationships between entities
231
+ - `memory_hash_cache` - Hash signatures for duplicate detection
232
+
233
+ ### Memory Lifecycle States
234
+
235
+ Each memory has:
236
+ - **Sector**: episodic, semantic, procedural, autobiographical, working
237
+ - **Tier**: hot (recent/relevant), warm (accessible), cold (archived)
238
+ - **Status**: active, merged, superseded, expired
239
+ - **Visibility**: private (user), project, team, global
240
+
241
+ ### Hooks
242
+
243
+ 4 lifecycle hooks automatically trigger:
244
+
245
+ | Hook | Trigger | Purpose |
246
+ |------|---------|---------|
247
+ | `SessionStart` | Session begins | Initialize session memory, load core memory |
248
+ | `UserPromptSubmit` | User sends message | Enhance prompt with relevant memories |
249
+ | `PostToolUse` | Tool completes | Record tool usage observations |
250
+ | `SessionEnd` | Session closes | Persist discoveries, summarize session |
251
+
252
+ ## API Reference
253
+
254
+ ### Core Memory Operations
255
+
256
+ ```bash
257
+ # View all sections
258
+ /core_memory action=view projectId=PROJECT_ID
259
+
260
+ # Edit a section
261
+ /core_memory action=edit projectId=PROJECT_ID section=persona content="..."
262
+
263
+ # Append to a section
264
+ /core_memory action=append projectId=PROJECT_ID section=working_notes content="New observation"
265
+ ```
266
+
267
+ ### Memory Management
268
+
269
+ ```bash
270
+ # Store a memory
271
+ /remember projectId=PROJECT_ID type=fact content="..." tags=["tag1","tag2"]
272
+
273
+ # Search memories
274
+ /search projectId=PROJECT_ID query="search term" type=fact limit=10
275
+
276
+ # Retrieve by ID
277
+ /recall memoryId=MEMORY_ID
278
+
279
+ # Get merged view
280
+ /context projectId=PROJECT_ID include=memories include=observations limit=20
281
+ ```
282
+
283
+ ### Context Paging
284
+
285
+ ```bash
286
+ # Load memory into session context
287
+ /context_paging action=load sessionId=SESSION_ID projectId=PROJECT_ID memoryId=MEMORY_ID
288
+
289
+ # Unload memory from session
290
+ /context_paging action=evict sessionId=SESSION_ID memoryId=MEMORY_ID
291
+
292
+ # View loaded memories
293
+ /context_paging action=view sessionId=SESSION_ID
294
+
295
+ # Check context usage
296
+ /context_status projectId=PROJECT_ID sessionId=SESSION_ID
297
+ ```
298
+
299
+ ### Memory Merging
300
+
301
+ ```bash
302
+ # Detect duplicate memories
303
+ /merge projectId=PROJECT_ID action=detect
304
+
305
+ # List merge proposals
306
+ /merge projectId=PROJECT_ID action=list status=pending
307
+
308
+ # Preview a merge
309
+ /merge projectId=PROJECT_ID action=preview proposalId=PROPOSAL_ID
310
+
311
+ # Approve merge
312
+ /merge projectId=PROJECT_ID action=approve proposalId=PROPOSAL_ID reviewNotes="Approved because..."
313
+
314
+ # Reject merge
315
+ /merge projectId=PROJECT_ID action=reject proposalId=PROPOSAL_ID reviewNotes="Keep separate because..."
316
+
317
+ # Get merge statistics
318
+ /merge projectId=PROJECT_ID action=stats
319
+ ```
320
+
321
+ ## Database Modes
322
+
323
+ ### SQLite Mode (Default - Local Development)
324
+
325
+ - **Storage**: `~/.squish/squish.db` (local SQLite database)
326
+ - **Embeddings**: Local TF-IDF (no API calls, works offline)
327
+ - **Performance**: Fast, suitable for single-user development
328
+ - **Setup**: Zero configuration required
329
+ - **Data**: Stored locally on machine
330
+
331
+ ### PostgreSQL Mode (Team - Enterprise)
332
+
333
+ - **Storage**: Shared PostgreSQL database
334
+ - **Embeddings**: Optional OpenAI or Ollama for better semantic search
335
+ - **Performance**: Optimized for multi-user teams
336
+ - **Setup**: Requires DATABASE_URL configuration
337
+ - **Data**: Shared across team members with access control
338
+
339
+ ```bash
340
+ # Enable PostgreSQL mode
341
+ DATABASE_URL=postgresql://user:password@host/dbname
342
+ SQUISH_OPENAI_API_KEY=sk-... # optional
343
+ ```
344
+
345
+ ## Benchmarks
346
+
347
+ Squish has been tested against industry-standard datasets for memory systems.
348
+
349
+ ### LongMemEval Dataset
350
+
351
+ | Metric | Value |
352
+ |--------|-------|
353
+ | **Accuracy** | 80% (16/20 correct) |
354
+ | **Embeddings** | Nomic (nomic-embed-text) |
355
+ | **Generation** | Claude Haiku |
356
+ | **Judge** | Claude Haiku |
357
+ | **Avg Latency** | ~1.2s per question |
358
+
359
+ ### Key Strengths
360
+
361
+ - **Strong accuracy**: 80% on LongMemEval benchmark
362
+ - **Flexible deployment**: Local embeddings with quality generation
363
+ - **Privacy-first**: Local embeddings option available
364
+ - **Consistent retrieval**: Successfully finds entities like names, locations, and relationships
365
+
366
+ ### Test Coverage
367
+
368
+ The benchmark tests memory retrieval across:
369
+ - Long-term conversational memory
370
+ - Entity resolution (people, places, organizations)
371
+ - Temporal reasoning (events, dates, timelines)
372
+ - Relationship tracking (family, professional, social)
373
+
374
+ ### Running Benchmarks
375
+
376
+ ```bash
377
+ cd ../squish-benchmarks
378
+
379
+ # Pull Nomic embeddings
380
+ ollama pull nomic-embed-text
381
+
382
+ # Run LongMemEval benchmark
383
+ bun run src/index.ts run -e nomic-embed-text -b longmemeval
384
+ ```
385
+
386
+ For detailed benchmark results and methodology, see [squish-benchmarks](../squish-benchmarks/).
387
+
388
+ ## Development
389
+
390
+ ### Project Structure
391
+
392
+ ```
393
+ squish/
394
+ ├── .claude-plugin/
395
+ │ ├── plugin.json # Plugin manifest
396
+ │ └── marketplace.json # Marketplace metadata
397
+ ├── .mcp.json # MCP server configuration
398
+ ├── api/
399
+ │ └── openclaw/
400
+ │ └── gateway.ts # OpenClaw WebSocket gateway (v0.7.0)
401
+ ├── core/
402
+ │ ├── core-memory.ts # Core memory operations
403
+ │ ├── context-paging.ts # Memory loading system
404
+ │ ├── local-embeddings.ts # TF-IDF embeddings
405
+ │ ├── embeddings.ts # Embedding providers
406
+ │ └── logger.ts
407
+ ├── db/
408
+ │ ├── index.ts # Database adapter
409
+ │ ├── bootstrap.ts # Schema initialization
410
+ │ └── adapter.ts # SQLite/PostgreSQL abstraction
411
+ ├── drizzle/
412
+ │ ├── schema.ts # PostgreSQL schema
413
+ │ └── schema-sqlite.ts # SQLite schema
414
+ ├── skills/
415
+ │ └── squish-memory/
416
+ │ └── SKILL.md # OpenClaw skill definition (v0.7.0)
417
+ ├── commands/ # Slash commands
418
+ ├── hooks/ # Lifecycle hooks
419
+ ├── index.ts # MCP server entry point
420
+ ├── config.ts # Configuration management
421
+ ├── package.json
422
+ ├── tsconfig.json
423
+ └── README.md
424
+ ```
425
+
426
+ ### Building
427
+
428
+ ```bash
429
+ # Install dependencies
430
+ npm install
431
+
432
+ # Build TypeScript
433
+ npm run build
434
+
435
+ # Run tests
436
+ npm run test
437
+
438
+ # Pack for distribution
439
+ npm pack
440
+ ```
441
+
442
+ ### Testing
443
+
444
+ ```bash
445
+ # Run comprehensive system test
446
+ node test-v0.5.0.mjs
447
+
448
+ # Start development with watch mode
449
+ npm run dev
450
+ ```
451
+
452
+ ## Troubleshooting
453
+
454
+ ### Database Issues
455
+
456
+ **Error: "database disk image is malformed"**
457
+ - SQLite database corrupted - delete `~/.squish/squish.db` and restart
458
+
459
+ **Error: "Connection refused"** (PostgreSQL mode)
460
+ - Verify DATABASE_URL is correct: `postgresql://user:pass@host:5432/dbname`
461
+ - Ensure PostgreSQL server is running
462
+
463
+ ### MCP Server Issues
464
+
465
+ **Error: "Hook error: ERR_UNSUPPORTED_ESM_URL_SCHEME"**
466
+ - Use relative paths in hooks.json instead of absolute Windows paths
467
+ - Use `./hooks/file.js` instead of `C:\path\to\hooks.js`
468
+
469
+ **Error: "Plugin not found in marketplace"**
470
+ - Using `--plugin-dir` flag? This is expected - not installed from marketplace
471
+ - For local development, this is normal behavior
472
+
473
+ ### Performance Issues
474
+
475
+ **Memory is growing unbounded**
476
+ - Enable lifecycle management: `SQUISH_LIFECYCLE_ENABLED=true`
477
+ - Review memory decay rates in configuration
478
+
479
+ ### OpenClaw Gateway Issues (v0.7.0)
480
+
481
+ **Gateway not starting on port 18789**
482
+ - Check if port is already in use: `lsof -i :18789` (macOS/Linux) or `netstat -ano | findstr :18789` (Windows)
483
+ - Verify gateway is enabled: `echo $OPENCLAW_GATEWAY_ENABLED`
484
+ - Check logs for connection errors
485
+
486
+ **OpenClaw client cannot connect**
487
+ - Ensure gateway is running: Check Squish logs for "OpenClaw gateway listening on port 18789"
488
+ - Verify firewall allows connections on port 18789
489
+ - Check WebSocket client is using correct protocol (ws:// or wss://)
490
+
491
+ ## Contributing
492
+
493
+ 1. Fork the repository
494
+ 2. Create a feature branch: `git checkout -b feature/my-feature`
495
+ 3. Commit changes: `git commit -am 'Add feature'`
496
+ 4. Push to branch: `git push origin feature/my-feature`
497
+ 5. Submit a pull request
498
+
499
+ ## License
500
+
501
+ MIT - See LICENSE file for details
502
+
503
+ ## Support
504
+
505
+ - GitHub Issues: https://github.com/michielhdoteth/squish/issues
506
+ - Documentation: https://github.com/michielhdoteth/squish#readme
507
+ - OpenClaw: https://github.com/openclaw/openclaw - Personal AI assistant platform
508
+
509
+ ## Changelog
510
+
511
+ ### v0.7.0 (Latest)
512
+ - **OpenClaw Gateway**: WebSocket API for OpenClaw AI assistant integration
513
+ - **Enhanced Search**: Improved semantic search with better ranking
514
+ - **Memory Tools**: Expanded toolkit for memory management
515
+ - **OpenClaw Skill**: Ready-to-use skill for OpenClaw installation
516
+
517
+ ### v0.6.0
518
+ - Implemented hybrid memory retrieval with multi-factor scoring (semantic, recency, coactivation, importance)
519
+ - Added fact extraction for structured knowledge discovery
520
+ - Added entity resolver for tracking and deduplicating entities across sessions
521
+ - Refactored capture.ts for better type safety
522
+ - Updated plugin-wrapper to use smart search config (50 candidates → top 3)
523
+ - Added utility functions for hook error handling
524
+ - Reorganized test scripts into scripts/db/ and scripts/test/
525
+ - Updated .gitignore to exclude references/ and opencode/
526
+ - Cleaned up project for distribution
527
+
528
+ ### v0.5.0
529
+ - Implemented smart embeddings strategy (local TF-IDF for SQLite, OpenAI/Ollama for PostgreSQL)
530
+ - Added missing core_memory and context_sessions tables to bootstrap
531
+ - Fixed plugin manifest validation for Claude Code compatibility
532
+ - Fixed hooks path resolution for Windows compatibility
533
+ - Consolidated 18 MCP tools to 11 with action-based API
534
+ - Core memory fully functional with 4-section architecture
535
+
536
+ ### v0.4.1
537
+ - Consolidated 25 command files to 15
538
+ - Removed 4 phantom commands
539
+ - Fixed validation order in MCP request handlers
540
+
541
+ ### v0.3.0
542
+ - Lifecycle management with memory decay
543
+ - Session summarization (incremental and rolling)
544
+ - Agent-aware memory isolation
545
+ - Memory governance and protection
546
+ - Memory associations and graph traversal
547
+
548
+ ### v0.2.0
549
+ - Vector embeddings for semantic search
550
+ - Memory snapshots for auditability
551
+ - Folder-scoped observations
552
+
553
+ ### v0.1.0
554
+ - Initial release with core memory and context paging
555
+ - Full-text search (FTS5)
556
+ - Two-tier architecture
@@ -0,0 +1,51 @@
1
+ ---
2
+ description: Manage working set (load, evict, or view loaded memories)
3
+ ---
4
+
5
+ # Context Paging Management
6
+
7
+ Manage your working set of memories for context tracking. Note: Claude manages its own context and token usage. These tools track which memories you're actively working with.
8
+
9
+ ## Actions
10
+
11
+ ### load
12
+ Add a memory to your working set for active tracking.
13
+ - Marks memory as currently relevant
14
+ - Helps organize which memories are in your active consideration set
15
+ - Does not affect Claude's actual context usage
16
+
17
+ ### evict
18
+ Remove a memory from your working set.
19
+ - Removes from your active tracking set
20
+ - Memory is still stored and searchable
21
+ - Useful when memory is no longer actively relevant
22
+
23
+ ### view
24
+ View all memories currently in your working set.
25
+ - Shows all memories you're actively tracking
26
+ - Displays session ID and timestamp loaded
27
+ - Lists memory content and metadata
28
+
29
+ ## Usage Examples
30
+
31
+ Load a memory to working set:
32
+ ```
33
+ /context-paging action=load sessionId=sess-123 memoryId=mem-uuid-456
34
+ ```
35
+
36
+ Evict memory from working set:
37
+ ```
38
+ /context-paging action=evict sessionId=sess-123 memoryId=mem-uuid-456
39
+ ```
40
+
41
+ View all loaded memories in session:
42
+ ```
43
+ /context-paging action=view sessionId=sess-123
44
+ ```
45
+
46
+ ## Important Notes
47
+
48
+ - Working set is per-session - each Claude Code session has its own working set
49
+ - Claude Code manages its own context window automatically
50
+ - These tools are for your own organizational purposes
51
+ - Memory removal from working set does not delete the memory permanently