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,22 @@
1
+ # Context Status
2
+
3
+ View working set status and core memory usage.
4
+
5
+ ## Usage
6
+ ```
7
+ /context-status
8
+ ```
9
+
10
+ ## What it shows
11
+ - **Core Memory**: Size usage and percentage
12
+ - **Working Set**: How many memories you've loaded
13
+ - **Available**: Total memories and observations in the database
14
+
15
+ **Note**: Claude manages its own context and token limits intelligently. This shows what memories you've loaded into your working set for organization.
16
+
17
+ ## Example
18
+ ```
19
+ /context-status
20
+ ```
21
+
22
+ Provides a comprehensive view of your memory system state.
@@ -0,0 +1,5 @@
1
+ ---
2
+ description: Get project context with relevant memories
3
+ ---
4
+
5
+ Retrieve project context by fetching relevant memories and observations. Automatically finds memories associated with the current project and task.
@@ -0,0 +1,56 @@
1
+ ---
2
+ description: Manage core memory (view, edit, or append to always-in-context sections)
3
+ ---
4
+
5
+ # Core Memory Management
6
+
7
+ Manage always-in-context core memory sections: view all sections, edit a specific section, or append text to a section.
8
+
9
+ ## Actions
10
+
11
+ ### view
12
+ View all core memory sections and statistics.
13
+ - Displays all 4 sections: persona, user_info, project_context, working_notes
14
+ - Shows section sizes and modification timestamps
15
+ - No additional parameters required
16
+
17
+ ### edit
18
+ Replace the entire content of a core memory section.
19
+ - Completely replaces the section content
20
+ - Use when you want to rewrite an entire section
21
+ - Includes before/after comparison in response
22
+
23
+ ### append
24
+ Append text to an existing core memory section.
25
+ - Adds text to the end of a section
26
+ - Useful for incremental updates
27
+ - Preserves existing content
28
+
29
+ ## Usage Examples
30
+
31
+ View all core memory:
32
+ ```
33
+ /core-memory action=view projectId=my-project
34
+ ```
35
+
36
+ Edit the persona section:
37
+ ```
38
+ /core-memory action=edit projectId=my-project section=persona content="I am an expert developer who specializes in TypeScript and React..."
39
+ ```
40
+
41
+ Append to project context:
42
+ ```
43
+ /core-memory action=append projectId=my-project section=project_context text="New framework: Next.js 14 with App Router"
44
+ ```
45
+
46
+ Append working notes:
47
+ ```
48
+ /core-memory action=append projectId=my-project section=working_notes text="TODO: Implement authentication system"
49
+ ```
50
+
51
+ ## Core Memory Sections
52
+
53
+ - **persona**: Your personality, communication style, and preferences
54
+ - **user_info**: Information about you (name, experience, goals)
55
+ - **project_context**: Project structure, tech stack, and conventions
56
+ - **working_notes**: Current thoughts, TODOs, and active work items
@@ -0,0 +1,5 @@
1
+ ---
2
+ description: Check service status
3
+ ---
4
+
5
+ Check the status of the Squish memory service, including database connection, storage mode, and overall health.
@@ -0,0 +1,39 @@
1
+ ---
2
+ description: Initialize Squish memory system for the current project
3
+ ---
4
+
5
+ # Squish Initialization
6
+
7
+ Initializes the Squish memory system for your current project. This creates the necessary database structure and default settings.
8
+
9
+ ## What it does:
10
+
11
+ - Creates the `.squish/` directory in your project
12
+ - Initializes the SQLite database
13
+ - Sets up core memory sections (persona, user_info, project_context, working_notes)
14
+ - Creates project and user records
15
+
16
+ ## Usage:
17
+
18
+ Run this command once when starting to use Squish in a new project:
19
+
20
+ ```
21
+ /squish:init
22
+ ```
23
+
24
+ After initialization, Squish will automatically:
25
+ - Capture context during your session
26
+ - Store important information you share
27
+ - Enable memory search across conversations
28
+
29
+ ## Requirements:
30
+
31
+ - Node.js 18+ installed
32
+ - Write access to current directory
33
+ - No additional setup needed
34
+
35
+ ## Notes:
36
+
37
+ - Safe to run multiple times (checks if already initialized)
38
+ - All data stored locally in `.squish/` directory
39
+ - Can be deleted anytime to reset memory
@@ -0,0 +1,113 @@
1
+ ---
2
+ description: Manage memory merges (detect, list, preview, stats, approve, reject, reverse)
3
+ ---
4
+
5
+ # Memory Merge Management
6
+
7
+ Manage memory consolidation: detect duplicates, review proposals, preview merges, view statistics, and make decisions on merge proposals.
8
+
9
+ ## Actions
10
+
11
+ ### detect
12
+ Scan for similar or duplicate memories and create merge proposals.
13
+ - Uses advanced similarity detection (simhash, minhash, semantic embedding)
14
+ - Filters by optional similarity threshold and memory type
15
+ - Automatically creates proposals for similar memories
16
+ - Returns list of detected duplicates with similarity scores
17
+
18
+ ### list
19
+ View pending merge proposals for review.
20
+ - Lists all proposals in specified status (pending, approved, rejected, expired)
21
+ - Shows similarity scores and token savings estimates
22
+ - Displays memory pairs and consolidation recommendations
23
+
24
+ ### preview
25
+ See exactly what a merged memory will look like before executing.
26
+ - Shows the result of merging two memories
27
+ - Displays token savings
28
+ - Shows similarity analysis and consolidation reasoning
29
+ - Does not modify any memories
30
+
31
+ ### stats
32
+ Get merge statistics and analytics.
33
+ - Total tokens saved from merges
34
+ - Number of merges completed
35
+ - Most commonly merged memory types
36
+ - Merge trends over time
37
+
38
+ ### approve
39
+ Execute a merge proposal and consolidate similar memories.
40
+ - Combines two memories into one
41
+ - Records token savings
42
+ - Creates audit trail for reversibility
43
+ - Updates memory relationships
44
+
45
+ ### reject
46
+ Decline a merge proposal and keep memories separate.
47
+ - Marks proposal as rejected
48
+ - Prevents future suggestions for same memory pair
49
+ - No changes to original memories
50
+ - Useful when memories should remain distinct
51
+
52
+ ### reverse
53
+ Undo a previously completed merge and restore original memories.
54
+ - Restores all original memories from before merge
55
+ - Removes the merged memory
56
+ - Preserves complete audit history
57
+ - Can be called multiple times on different merged memories
58
+
59
+ ## Usage Examples
60
+
61
+ Detect duplicate memories:
62
+ ```
63
+ /merge action=detect projectId=my-project
64
+ ```
65
+
66
+ Detect with filters:
67
+ ```
68
+ /merge action=detect projectId=my-project threshold=0.8 memoryType=fact
69
+ ```
70
+
71
+ List pending proposals:
72
+ ```
73
+ /merge action=list projectId=my-project status=pending
74
+ ```
75
+
76
+ Preview a merge:
77
+ ```
78
+ /merge action=preview projectId=my-project proposalId=proposal-123
79
+ ```
80
+
81
+ View merge statistics:
82
+ ```
83
+ /merge action=stats projectId=my-project
84
+ ```
85
+
86
+ Approve a merge:
87
+ ```
88
+ /merge action=approve projectId=my-project proposalId=proposal-123 reviewNotes="Both are about API design patterns"
89
+ ```
90
+
91
+ Reject a proposal:
92
+ ```
93
+ /merge action=reject projectId=my-project proposalId=proposal-456 reviewNotes="These are separate concerns"
94
+ ```
95
+
96
+ Reverse a completed merge:
97
+ ```
98
+ /merge action=reverse projectId=my-project mergeHistoryId=merge-789
99
+ ```
100
+
101
+ ## Similarity Thresholds
102
+
103
+ - **0.5-0.6**: Very similar (recommended for detection)
104
+ - **0.7-0.8**: Highly similar (conservative threshold)
105
+ - **0.9+**: Nearly identical (very safe threshold)
106
+
107
+ ## Memory Type Filters
108
+
109
+ - fact
110
+ - preference
111
+ - decision
112
+ - observation
113
+ - context
@@ -0,0 +1,5 @@
1
+ ---
2
+ description: Store observations from tool usage
3
+ ---
4
+
5
+ Store observations about tool usage, patterns, errors, and insights discovered during work. Automatically captured tool execution data can be annotated with additional context.
@@ -0,0 +1,5 @@
1
+ ---
2
+ description: Retrieve a memory by ID
3
+ ---
4
+
5
+ Retrieve a specific memory by its ID. Get the full content and metadata of a stored memory.
@@ -0,0 +1,11 @@
1
+ ---
2
+ description: Store a memory with optional agent context and semantic embeddings
3
+ ---
4
+
5
+ Store a new memory with semantic embeddings for later retrieval. Memories are automatically indexed for full-text and semantic search.
6
+
7
+ **Optional agent context:**
8
+ - `agentId`: Store memory in an agent-specific context
9
+ - `agentRole`: Define the agent's role (assistant, analyzer, etc.)
10
+ - `visibilityScope`: Control visibility (private, project, team, or global)
11
+ - `sector`: Classify memory type (episodic, semantic, procedural, etc.)
@@ -0,0 +1,10 @@
1
+ ---
2
+ description: Search memories, conversations, or get recent items with optional scope selection
3
+ ---
4
+
5
+ Search across memories, conversations, or retrieve recent items. Use the `scope` parameter to select what to search.
6
+
7
+ **Search scopes:**
8
+ - `memories` (default): Full-text and semantic search across stored memories
9
+ - `conversations`: Search past conversation history by query
10
+ - `recent`: Get recent conversation items without requiring a query
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Auto-Capture System
3
+ * Captures tool usage and user prompts as observations
4
+ */
5
+ import type { PluginContext, CapturedObservation } from './types.js';
6
+ export declare function captureUserPrompt(projectPath: string, prompt: string, context: PluginContext): Promise<CapturedObservation | null>;
7
+ export declare function captureToolUse(projectPath: string, toolName: string, toolArgs: Record<string, unknown> | undefined, toolResult: string | Record<string, unknown> | undefined, context: PluginContext): Promise<CapturedObservation | null>;
8
+ export declare function queueForSummarization(observationId: string, projectPath?: string): Promise<void>;
9
+ export declare function captureFileChange(projectPath: string, filePath: string, changeType: 'created' | 'modified' | 'deleted', context: PluginContext): Promise<CapturedObservation | null>;
10
+ export declare function captureError(projectPath: string, error: Error, errorContext: string, pluginContext: PluginContext): Promise<CapturedObservation | null>;
11
+ //# sourceMappingURL=capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../adapters/claude-code/capture.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAsDrE,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAarC;AAED,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC7C,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACxD,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAqCrC;AAED,wBAAsB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB1G;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,EAC9C,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAYrC;AAED,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAYrC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Auto-Capture System
3
+ * Captures tool usage and user prompts as observations
4
+ */
5
+ import { createObservation, getObservationById, getRecentObservations } from '../../core/observations.js';
6
+ import { shouldStore, stripPrivateTags } from '../../core/privacy.js';
7
+ import { summarizeSession } from '../../core/summarization.js';
8
+ import { trackCoactivation } from '../../core/associations.js';
9
+ import { config } from '../../config.js';
10
+ import { logger } from '../../core/logger.js';
11
+ function truncate(text, maxLength) {
12
+ return text.length > maxLength ? text.substring(0, maxLength) + '...' : text;
13
+ }
14
+ function createObservationResult(id, type, action, target, summary, projectPath, details) {
15
+ return { id, type, action, target, summary, timestamp: new Date(), projectPath, details };
16
+ }
17
+ async function captureObservation(projectPath, type, action, target, summary, details, context) {
18
+ if (!(await shouldStore(summary, projectPath))) {
19
+ logger.info(`${type} blocked by privacy filter`);
20
+ return null;
21
+ }
22
+ const observation = await createObservation({
23
+ type: type === 'user_prompt' ? 'insight' : type,
24
+ action,
25
+ target,
26
+ summary,
27
+ details: { ...details, timestamp: new Date().toISOString() },
28
+ session: context.sessionId,
29
+ project: projectPath
30
+ });
31
+ logger.debug(`Captured ${type}: ${observation.id}`);
32
+ return createObservationResult(observation.id, type, action, target, summary, projectPath, details);
33
+ }
34
+ export async function captureUserPrompt(projectPath, prompt, context) {
35
+ const cleanPrompt = stripPrivateTags(prompt);
36
+ const summary = truncate(cleanPrompt, 500);
37
+ return captureObservation(projectPath, 'user_prompt', 'user_submitted_prompt', projectPath, summary, { fullPrompt: cleanPrompt, length: cleanPrompt.length, tags: ['auto-captured', 'user-prompt'] }, context);
38
+ }
39
+ export async function captureToolUse(projectPath, toolName, toolArgs, toolResult, context) {
40
+ const argsSummary = toolArgs ? truncate(JSON.stringify(toolArgs), 200) : 'none';
41
+ let resultSummary;
42
+ if (typeof toolResult === 'string') {
43
+ resultSummary = truncate(toolResult, 200);
44
+ }
45
+ else if (toolResult) {
46
+ resultSummary = truncate(JSON.stringify(toolResult), 200);
47
+ }
48
+ else {
49
+ resultSummary = 'no result';
50
+ }
51
+ const summary = `Tool ${toolName} executed with args: ${argsSummary}`;
52
+ const observation = await captureObservation(projectPath, 'tool_use', toolName, projectPath, summary, { toolName, arguments: toolArgs, result: toolResult, tags: ['auto-captured', 'tool-use', toolName] }, context);
53
+ if (observation) {
54
+ try {
55
+ const recentObservations = await getRecentObservations(projectPath, 5);
56
+ if (recentObservations.length > 1) {
57
+ const observationIds = recentObservations.map(o => o.id);
58
+ await trackCoactivation(observationIds);
59
+ }
60
+ }
61
+ catch (error) {
62
+ logger.error('Failed to track co-activation', error);
63
+ }
64
+ }
65
+ return observation;
66
+ }
67
+ export async function queueForSummarization(observationId, projectPath = '') {
68
+ try {
69
+ if (!config.summarizationEnabled) {
70
+ return;
71
+ }
72
+ const observation = await getObservationById(observationId);
73
+ if (!observation || !observation.conversationId) {
74
+ return;
75
+ }
76
+ try {
77
+ const recentObservations = await getRecentObservations(projectPath, 100);
78
+ const messageCount = recentObservations.length;
79
+ if (messageCount > 0 && messageCount % config.incrementalThreshold === 0) {
80
+ await summarizeSession(observation.conversationId, 'incremental');
81
+ logger.info(`Session summarized (incremental) after ${messageCount} observations`);
82
+ }
83
+ }
84
+ catch (error) {
85
+ logger.error('Failed to queue summarization', error);
86
+ }
87
+ }
88
+ catch (error) {
89
+ logger.error('Error in queueForSummarization', error);
90
+ }
91
+ }
92
+ export async function captureFileChange(projectPath, filePath, changeType, context) {
93
+ const summary = `File ${changeType}: ${filePath}`;
94
+ return captureObservation(projectPath, 'file_change', changeType, filePath, summary, { filePath, changeType, tags: ['auto-captured', 'file-change', changeType] }, context);
95
+ }
96
+ export async function captureError(projectPath, error, errorContext, pluginContext) {
97
+ const summary = `Error in ${errorContext}: ${error.message}`;
98
+ return captureObservation(projectPath, 'error', 'error_occurred', errorContext, summary, { errorMessage: error.message, errorStack: error.stack, context: errorContext, tags: ['auto-captured', 'error'] }, pluginContext);
99
+ }
100
+ //# sourceMappingURL=capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../adapters/claude-code/capture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './capture.js';
2
+ export * from './injection.js';
3
+ export * from './plugin-wrapper.js';
4
+ export * from './types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../adapters/claude-code/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Plugin feature - Claude Code plugin integration
2
+ export * from './capture.js';
3
+ export * from './injection.js';
4
+ export * from './plugin-wrapper.js';
5
+ export * from './types.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../adapters/claude-code/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Auto-Context Injection System
3
+ * Injects relevant context into sessions
4
+ */
5
+ import type { PluginContext } from './types.js';
6
+ export interface InjectionBudget {
7
+ maxItems: number;
8
+ maxTokens: number;
9
+ relevanceThreshold: number;
10
+ maxAge: number;
11
+ }
12
+ interface ContextItem {
13
+ id: string;
14
+ content: string;
15
+ score: number;
16
+ }
17
+ export interface SelectedContext {
18
+ memories: ContextItem[];
19
+ conversations: ContextItem[];
20
+ totalItems: number;
21
+ estimatedTokens: number;
22
+ injectionText: string;
23
+ }
24
+ export declare function injectContextIntoSession(context: PluginContext, projectPath: string): Promise<void>;
25
+ export declare function selectContextToInject(projectPath: string, budget: InjectionBudget): Promise<SelectedContext>;
26
+ export declare function applyAgeDecay(score: number, createdAt: Date, halfLife?: number): number;
27
+ export declare function rankByRelevance<T extends {
28
+ score: number;
29
+ createdAt?: Date;
30
+ }>(items: T[]): Array<T & {
31
+ rankedScore: number;
32
+ }>;
33
+ export {};
34
+ //# sourceMappingURL=injection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injection.d.ts","sourceRoot":"","sources":["../../../adapters/claude-code/injection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOhD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AA4BD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,eAAe,CAAC,CA+D1B;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,IAAI,EACf,QAAQ,SAA2B,GAClC,MAAM,CAGR;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,EAC3E,KAAK,EAAE,CAAC,EAAE,GACT,KAAK,CAAC,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAOpC"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Auto-Context Injection System
3
+ * Injects relevant context into sessions
4
+ */
5
+ import { searchMemories } from '../../core/memory/memories.js';
6
+ import { searchConversations } from '../../core/search/conversations.js';
7
+ import { logger } from '../../core/logger.js';
8
+ import { formatCoreMemoryForInjection } from '../../core/core-memory.js';
9
+ import { ensureProject } from '../../core/projects.js';
10
+ function estimateTokens(text) {
11
+ return Math.ceil(text.split(/\s+/).length * 1.3);
12
+ }
13
+ function truncateContent(content, maxLength = 100) {
14
+ return content.substring(0, maxLength).replace(/\n/g, ' ') + '...';
15
+ }
16
+ function formatInjectionText(memories, conversations) {
17
+ if (memories.length === 0 && conversations.length === 0)
18
+ return '';
19
+ const parts = [];
20
+ if (memories.length > 0) {
21
+ parts.push('## Recent Memory Context');
22
+ parts.push(...memories.map(m => `- ${truncateContent(m.content)}`));
23
+ }
24
+ if (conversations.length > 0) {
25
+ parts.push('\n## Recent Conversation Context');
26
+ parts.push(...conversations.map(c => `- ${truncateContent(c.content)}`));
27
+ }
28
+ return `\n<squish-context>\n${parts.join('\n')}\n</squish-context>\n`;
29
+ }
30
+ export async function injectContextIntoSession(context, projectPath) {
31
+ const budget = {
32
+ maxItems: context.config?.maxContextItems || 15,
33
+ maxTokens: context.config?.maxContextTokens || 3000,
34
+ relevanceThreshold: 0.5,
35
+ maxAge: 30 * 24 * 60 * 60 * 1000
36
+ };
37
+ // Inject core memory (always-in-context) first
38
+ try {
39
+ const project = await ensureProject(projectPath);
40
+ if (project?.id) {
41
+ const coreMemoryText = await formatCoreMemoryForInjection(project.id);
42
+ if (coreMemoryText) {
43
+ // Core memory is automatically available - Claude sees it
44
+ }
45
+ }
46
+ }
47
+ catch (error) {
48
+ logger.error('Failed to inject core memory:', error);
49
+ }
50
+ const selectedContext = await selectContextToInject(projectPath, budget);
51
+ if (selectedContext.totalItems > 0) {
52
+ logger.info(`Injected ${selectedContext.totalItems} items (${selectedContext.estimatedTokens} tokens)`);
53
+ }
54
+ else {
55
+ logger.info('No relevant context to inject');
56
+ }
57
+ }
58
+ export async function selectContextToInject(projectPath, budget) {
59
+ const memories = [];
60
+ const conversations = [];
61
+ let totalTokens = 0;
62
+ let totalItems = 0;
63
+ const memoriesResult = await searchMemories({
64
+ query: projectPath,
65
+ limit: Math.min(budget.maxItems, 10),
66
+ project: projectPath
67
+ }).catch(() => []);
68
+ for (const memory of memoriesResult || []) {
69
+ if (totalItems >= budget.maxItems || totalTokens >= budget.maxTokens)
70
+ break;
71
+ const m = memory;
72
+ const content = m?.content || '';
73
+ const tokens = estimateTokens(content);
74
+ if (totalTokens + tokens <= budget.maxTokens) {
75
+ memories.push({
76
+ id: m?.id || '',
77
+ content,
78
+ score: m?.relevanceScore || 0.5
79
+ });
80
+ totalTokens += tokens;
81
+ totalItems++;
82
+ }
83
+ }
84
+ const remainingItems = budget.maxItems - totalItems;
85
+ if (remainingItems > 0) {
86
+ const conversationsResult = await searchConversations({
87
+ query: projectPath,
88
+ limit: Math.min(remainingItems, 5)
89
+ }).catch(() => []);
90
+ for (const conversation of conversationsResult || []) {
91
+ if (totalItems >= budget.maxItems || totalTokens >= budget.maxTokens)
92
+ break;
93
+ const c = conversation;
94
+ const content = typeof c === 'string' ? c : '';
95
+ const tokens = estimateTokens(content);
96
+ if (totalTokens + tokens <= budget.maxTokens) {
97
+ conversations.push({
98
+ id: c?.id || '',
99
+ content,
100
+ score: 0.5
101
+ });
102
+ totalTokens += tokens;
103
+ totalItems++;
104
+ }
105
+ }
106
+ }
107
+ return {
108
+ memories,
109
+ conversations,
110
+ totalItems,
111
+ estimatedTokens: totalTokens,
112
+ injectionText: formatInjectionText(memories, conversations)
113
+ };
114
+ }
115
+ export function applyAgeDecay(score, createdAt, halfLife = 30 * 24 * 60 * 60 * 1000) {
116
+ const ageMs = Date.now() - createdAt.getTime();
117
+ return score * Math.pow(0.5, ageMs / halfLife);
118
+ }
119
+ export function rankByRelevance(items) {
120
+ return items
121
+ .map(item => ({
122
+ ...item,
123
+ rankedScore: item.createdAt ? applyAgeDecay(item.score, item.createdAt) : item.score
124
+ }))
125
+ .sort((a, b) => b.rankedScore - a.rankedScore);
126
+ }
127
+ //# sourceMappingURL=injection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injection.js","sourceRoot":"","sources":["../../../adapters/claude-code/injection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Squish Plugin Wrapper - Hook handlers for Claude Code integration
3
+ */
4
+ import 'dotenv/config';
5
+ import type { PluginContext } from './types.js';
6
+ export declare function onInstall(_context: PluginContext): Promise<void>;
7
+ export declare function onSessionStart(context: PluginContext): Promise<string>;
8
+ export declare function onUserPromptSubmit(context: PluginContext): Promise<string>;
9
+ export declare function onPostToolUse(context: PluginContext): Promise<void>;
10
+ export declare function onSessionStop(context: PluginContext): Promise<void>;
11
+ export declare function onUpdate(context: PluginContext): Promise<string>;
12
+ declare const _default: {
13
+ onInstall: typeof onInstall;
14
+ onUpdate: typeof onUpdate;
15
+ onSessionStart: typeof onSessionStart;
16
+ onUserPromptSubmit: typeof onUserPromptSubmit;
17
+ onPostToolUse: typeof onPostToolUse;
18
+ onSessionStop: typeof onSessionStop;
19
+ };
20
+ export default _default;
21
+ //# sourceMappingURL=plugin-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-wrapper.d.ts","sourceRoot":"","sources":["../../../adapters/claude-code/plugin-wrapper.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA+GhD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CActE;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAuD5E;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA8ChF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAczE;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BzE;AAID,wBAAsB,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtE;;;;;;;;;AAED,wBAOE"}