squish-memory 1.0.2 → 1.2.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 (704) hide show
  1. package/.env.example +146 -0
  2. package/CHANGELOG.md +202 -0
  3. package/README.md +192 -287
  4. package/{scripts → bin}/dependency-manager.mjs +217 -217
  5. package/{scripts → bin}/detect-clients.mjs +78 -78
  6. package/bin/install-interactive.mjs +321 -0
  7. package/bin/squish-mcp.mjs +46 -0
  8. package/bin/squish.mjs +33 -0
  9. package/config/mcp-migration-map.json +1 -6
  10. package/config/mcp-mode-semantics.json +10 -12
  11. package/config/mcp-remote-auth.json +3 -26
  12. package/config/mcp-universal.schema.json +5 -35
  13. package/config/settings.json +78 -22
  14. package/config.js +5 -0
  15. package/config.ts +218 -0
  16. package/core/adapters/config/claude-code.ts +133 -0
  17. package/core/adapters/config/cursor.ts +90 -0
  18. package/core/adapters/config/opencode.ts +89 -0
  19. package/core/adapters/config/windsurf.ts +90 -0
  20. package/core/adapters/index.ts +102 -0
  21. package/core/adapters/timeline.ts +116 -0
  22. package/core/adapters/types.ts +166 -0
  23. package/core/agent-preferences.ts +140 -0
  24. package/core/algorithms/analytics/token-estimator.ts +216 -0
  25. package/core/algorithms/detection/hash-filters.ts +260 -0
  26. package/core/algorithms/detection/semantic-ranker.ts +194 -0
  27. package/core/algorithms/detection/two-stage-detector.ts +421 -0
  28. package/core/algorithms/handlers/approve-merge.ts +215 -0
  29. package/core/algorithms/handlers/detect-duplicates.ts +192 -0
  30. package/core/algorithms/handlers/get-stats.ts +132 -0
  31. package/core/algorithms/handlers/list-proposals.ts +130 -0
  32. package/core/algorithms/handlers/preview-merge.ts +139 -0
  33. package/core/algorithms/handlers/reject-merge.ts +93 -0
  34. package/core/algorithms/handlers/reverse-merge.ts +155 -0
  35. package/core/algorithms/index.ts +39 -0
  36. package/core/algorithms/operations/cache-maintenance.ts +182 -0
  37. package/core/algorithms/safety/safety-checks.ts +256 -0
  38. package/core/algorithms/strategies/merge-strategies.ts +381 -0
  39. package/core/algorithms/types.ts +140 -0
  40. package/core/algorithms/utils/response-builder.ts +61 -0
  41. package/core/associations.ts +363 -0
  42. package/core/beliefs/decay.ts +289 -0
  43. package/core/beliefs/extractor.ts +131 -0
  44. package/core/beliefs/store.ts +557 -0
  45. package/core/beliefs/types.ts +38 -0
  46. package/core/commands/mcp-server.ts +5 -0
  47. package/core/compression.ts +177 -0
  48. package/core/config.js +2 -0
  49. package/core/consolidation.ts +330 -0
  50. package/core/context/agent-context.ts +388 -0
  51. package/core/context/context-paging.ts +449 -0
  52. package/core/context/context-window.ts +234 -0
  53. package/core/context/context.ts +35 -0
  54. package/core/embeddings/embeddings.ts +616 -0
  55. package/core/embeddings/google-multimodal.ts +200 -0
  56. package/core/embeddings/local-embeddings.ts +12 -0
  57. package/core/embeddings/qmd-client.ts +495 -0
  58. package/core/embeddings/transformers-local.ts +261 -0
  59. package/core/embeddings.js +4 -0
  60. package/core/error-handling.ts +206 -0
  61. package/core/external +219 -0
  62. package/core/graph/entity-deduplicator.ts +232 -0
  63. package/core/graph/graph-builder.ts +257 -0
  64. package/core/graph/graph-traversal.ts +490 -0
  65. package/core/graph/index.ts +24 -0
  66. package/core/graph/llm-entity-extractor.ts +402 -0
  67. package/core/graph/multi-hop-retrieval.ts +317 -0
  68. package/core/graph/relationship-extractor.ts +465 -0
  69. package/core/hooks/agent-hooks.ts +653 -0
  70. package/core/hooks/auto-tagger.ts +149 -0
  71. package/core/hooks/capture-filter.ts +169 -0
  72. package/core/hot-cache.ts +388 -0
  73. package/core/index.ts +10 -0
  74. package/core/ingestion/agent-memory.ts +167 -0
  75. package/core/ingestion/core-memory.ts +326 -0
  76. package/core/ingestion/learnings.ts +260 -0
  77. package/core/ingestion/signal-engine.ts +266 -0
  78. package/core/integrations/obsidian-vault.ts +197 -0
  79. package/core/layers/generator.ts +115 -0
  80. package/core/lib/db-client.ts +168 -0
  81. package/core/lib/parse-embedding.ts +59 -0
  82. package/core/lib/schemas.ts +102 -0
  83. package/core/lib/types.ts +49 -0
  84. package/core/lib/utils.ts +151 -0
  85. package/core/lib/validation.ts +180 -0
  86. package/core/lifecycle.ts +353 -0
  87. package/core/logger.ts +59 -0
  88. package/core/memory/bridge-discovery.ts +395 -0
  89. package/core/memory/categorizer.ts +390 -0
  90. package/core/memory/conflict-detector.ts +62 -0
  91. package/core/memory/consolidation.ts +372 -0
  92. package/core/memory/context-collector.ts +75 -0
  93. package/core/memory/contradiction-resolver.ts +494 -0
  94. package/core/memory/edit-workflow.ts +174 -0
  95. package/core/memory/entity-extractor.ts +426 -0
  96. package/core/memory/entity-resolver.ts +89 -0
  97. package/core/memory/explain.ts +112 -0
  98. package/core/memory/fact-deriver.ts +300 -0
  99. package/core/memory/fact-extractor.ts +120 -0
  100. package/core/memory/feedback-tracker.ts +200 -0
  101. package/core/memory/hooks.ts +230 -0
  102. package/core/memory/hybrid-retrieval.ts +65 -0
  103. package/core/memory/hybrid-scorer.ts +325 -0
  104. package/core/memory/hybrid-search.ts +748 -0
  105. package/core/memory/importance.ts +319 -0
  106. package/core/memory/index.ts +11 -0
  107. package/core/memory/loader.ts +178 -0
  108. package/core/memory/markdown/markdown-storage.ts +318 -0
  109. package/core/memory/memories.ts +565 -0
  110. package/core/memory/memory-lifecycle.ts +51 -0
  111. package/core/memory/memory-manager.ts +53 -0
  112. package/core/memory/migrate.ts +173 -0
  113. package/core/memory/normalization.ts +30 -0
  114. package/core/memory/path-strengthener.ts +211 -0
  115. package/core/memory/progressive-disclosure.ts +392 -0
  116. package/core/memory/query-processor.ts +130 -0
  117. package/core/memory/query-rewriter.ts +153 -0
  118. package/core/memory/response-analyzer.ts +81 -0
  119. package/core/memory/retrieval-feedback.ts +276 -0
  120. package/core/memory/serialization.ts +83 -0
  121. package/core/memory/stale-cleaner.ts +147 -0
  122. package/core/memory/stats.ts +181 -0
  123. package/core/memory/telemetry.ts +392 -0
  124. package/core/memory/temporal-facts.ts +356 -0
  125. package/core/memory/temporal-parser.ts +477 -0
  126. package/core/memory/trigger-detector.ts +104 -0
  127. package/core/memory/write-gate.ts +288 -0
  128. package/core/places/index.ts +14 -0
  129. package/core/places/memory-places.ts +339 -0
  130. package/core/places/places.ts +406 -0
  131. package/core/places/rules.ts +308 -0
  132. package/core/places/walking.ts +192 -0
  133. package/core/projects +89 -0
  134. package/core/projects.ts +131 -0
  135. package/core/redis.ts +82 -0
  136. package/core/responses.ts +187 -0
  137. package/core/runtime/trust-report.ts +195 -0
  138. package/core/runtime/trust-state.ts +360 -0
  139. package/core/scheduler/cron-scheduler.ts +581 -0
  140. package/core/scheduler/heartbeat.ts +91 -0
  141. package/core/scheduler/index.ts +8 -0
  142. package/core/scheduler/job-runner.ts +197 -0
  143. package/core/search/conversations.ts +166 -0
  144. package/core/search/entities.ts +46 -0
  145. package/core/search/folder-context.ts +154 -0
  146. package/core/search/graph-boost.ts +22 -0
  147. package/core/search/index.ts +4 -0
  148. package/core/search/qmd-wrapper.ts +84 -0
  149. package/core/security/encrypt.ts +51 -0
  150. package/core/security/governance.ts +102 -0
  151. package/core/security/privacy.ts +108 -0
  152. package/core/security/secret-detector.ts +122 -0
  153. package/core/session/auto-load.ts +160 -0
  154. package/core/session/entity-tracker.ts +363 -0
  155. package/core/session/index.ts +7 -0
  156. package/core/session/reference-resolver.ts +158 -0
  157. package/core/session/self-iteration-job.ts +478 -0
  158. package/core/session/session-hooks.ts +69 -0
  159. package/core/session/types.ts +36 -0
  160. package/core/session/working-set.ts +275 -0
  161. package/core/snapshots/cleanup.ts +13 -0
  162. package/core/snapshots/comparison.ts +59 -0
  163. package/core/snapshots/creation.ts +139 -0
  164. package/core/snapshots/retrieval.ts +44 -0
  165. package/core/snapshots/stats.ts +63 -0
  166. package/core/storage/cache.ts +241 -0
  167. package/core/storage/database.ts +23 -0
  168. package/core/summarization/cleanup.ts +13 -0
  169. package/core/summarization/queries.ts +32 -0
  170. package/core/summarization/stats.ts +64 -0
  171. package/core/summarization/strategies.ts +52 -0
  172. package/core/summarization.ts +248 -0
  173. package/core/temporal-facts.ts +244 -0
  174. package/core/tracing/collector.ts +470 -0
  175. package/core/tracing/visualizer.ts +195 -0
  176. package/core/utils/cleanup-operations.ts +50 -0
  177. package/core/utils/content-extraction.ts +95 -0
  178. package/core/utils/filter-builder.ts +56 -0
  179. package/core/utils/history-traversal.ts +63 -0
  180. package/core/utils/memory-operations.ts +56 -0
  181. package/core/utils/query-operations.ts +83 -0
  182. package/core/utils/summarization-helpers.ts +45 -0
  183. package/core/utils/temporal-queries.ts +39 -0
  184. package/core/utils/vector-operations.ts +135 -0
  185. package/core/utils/version-management.ts +74 -0
  186. package/core/worker.ts +324 -0
  187. package/db/adapter.ts +215 -0
  188. package/db/bootstrap.ts +1055 -0
  189. package/db/drizzle/migrations/0000_needy_cerebro.sql +402 -0
  190. package/db/drizzle/migrations/meta/0000_snapshot.json +3451 -0
  191. package/db/drizzle/migrations/meta/_journal.json +13 -0
  192. package/db/drizzle/schema-sqlite.ts +1032 -0
  193. package/db/drizzle/schema.ts +1128 -0
  194. package/db/drizzle.config.ts +12 -0
  195. package/db/index.ts +83 -0
  196. package/db/init.sql +5 -0
  197. package/db/migrations/associations.ts +35 -0
  198. package/db/migrations/beliefs.ts +89 -0
  199. package/db/migrations/core-memory.ts +35 -0
  200. package/db/migrations/fts.ts +59 -0
  201. package/db/migrations/index.ts +54 -0
  202. package/db/migrations/indexes.ts +36 -0
  203. package/db/migrations/learnings.ts +34 -0
  204. package/db/migrations/maintenance.ts +68 -0
  205. package/db/migrations/memories.ts +22 -0
  206. package/db/migrations/memory-places.ts +35 -0
  207. package/db/migrations/places.ts +49 -0
  208. package/db/migrations/projects.ts +21 -0
  209. package/db/migrations/tier-conversion.ts +24 -0
  210. package/db/neon.ts +22 -0
  211. package/db/schema/beliefs.ts +50 -0
  212. package/db/schema/generator.ts +159 -0
  213. package/db/schema/index.ts +58 -0
  214. package/db/schema/learnings.ts +32 -0
  215. package/db/schema/memories.ts +83 -0
  216. package/db/schema/projects.ts +33 -0
  217. package/db/schema.ts +13 -0
  218. package/db/supabase.ts +27 -0
  219. package/dist/config.d.ts +61 -14
  220. package/dist/config.js +159 -139
  221. package/dist/core/adapters/config/claude-code.d.ts +45 -0
  222. package/dist/core/adapters/config/claude-code.js +113 -0
  223. package/dist/core/adapters/config/cursor.d.ts +26 -0
  224. package/dist/core/adapters/config/cursor.js +74 -0
  225. package/dist/core/adapters/config/opencode.d.ts +23 -0
  226. package/dist/core/adapters/config/opencode.js +73 -0
  227. package/dist/core/adapters/config/windsurf.d.ts +26 -0
  228. package/dist/core/adapters/config/windsurf.js +74 -0
  229. package/dist/core/adapters/index.d.ts +45 -0
  230. package/dist/core/adapters/index.js +84 -0
  231. package/dist/core/adapters/scripts/install-adapter.d.ts +19 -0
  232. package/dist/core/adapters/scripts/install-adapter.js +149 -0
  233. package/dist/core/adapters/timeline.d.ts +23 -0
  234. package/dist/core/adapters/timeline.js +88 -0
  235. package/dist/core/adapters/types.d.ts +137 -0
  236. package/dist/core/adapters/types.js +50 -0
  237. package/dist/core/agent-preferences.d.ts +16 -0
  238. package/dist/core/agent-preferences.js +124 -0
  239. package/dist/{algorithms → core/algorithms}/analytics/token-estimator.d.ts +1 -1
  240. package/dist/{algorithms → core/algorithms}/analytics/token-estimator.js +3 -3
  241. package/dist/{algorithms → core/algorithms}/detection/semantic-ranker.d.ts +1 -1
  242. package/dist/{algorithms → core/algorithms}/detection/semantic-ranker.js +1 -1
  243. package/dist/{algorithms → core/algorithms}/detection/two-stage-detector.d.ts +1 -1
  244. package/dist/{algorithms → core/algorithms}/detection/two-stage-detector.js +7 -10
  245. package/dist/{algorithms → core/algorithms}/handlers/approve-merge.js +4 -4
  246. package/dist/{algorithms → core/algorithms}/handlers/detect-duplicates.js +3 -3
  247. package/dist/{algorithms → core/algorithms}/handlers/get-stats.js +3 -3
  248. package/dist/{algorithms → core/algorithms}/handlers/list-proposals.js +3 -3
  249. package/dist/{algorithms → core/algorithms}/handlers/preview-merge.js +3 -3
  250. package/dist/{algorithms → core/algorithms}/handlers/reject-merge.js +3 -3
  251. package/dist/{algorithms → core/algorithms}/handlers/reverse-merge.js +3 -3
  252. package/dist/core/algorithms/index.d.ts +21 -0
  253. package/dist/core/algorithms/index.js +26 -0
  254. package/dist/core/algorithms/operations/cache-maintenance.d.ts +12 -0
  255. package/dist/core/algorithms/operations/cache-maintenance.js +157 -0
  256. package/dist/{algorithms → core/algorithms}/safety/safety-checks.d.ts +2 -6
  257. package/dist/{algorithms → core/algorithms}/strategies/merge-strategies.d.ts +19 -1
  258. package/dist/{algorithms → core/algorithms}/strategies/merge-strategies.js +74 -123
  259. package/dist/core/algorithms/types.d.ts +125 -0
  260. package/dist/core/algorithms/types.js +5 -0
  261. package/dist/core/associations.d.ts +3 -2
  262. package/dist/core/associations.js +37 -2
  263. package/dist/core/autosave.d.ts +19 -0
  264. package/dist/core/autosave.js +16 -0
  265. package/dist/core/beliefs/decay.d.ts +27 -0
  266. package/dist/core/beliefs/decay.js +217 -0
  267. package/dist/core/beliefs/extractor.d.ts +9 -0
  268. package/dist/core/beliefs/extractor.js +113 -0
  269. package/dist/core/beliefs/store.d.ts +46 -0
  270. package/dist/core/beliefs/store.js +466 -0
  271. package/dist/core/beliefs/types.d.ts +28 -0
  272. package/dist/core/beliefs/types.js +2 -0
  273. package/dist/core/commands/mcp-server.d.ts +2 -0
  274. package/dist/core/commands/mcp-server.js +6 -0
  275. package/dist/core/commands/remember.d.ts +24 -0
  276. package/dist/core/commands/remember.js +144 -0
  277. package/dist/core/compression.d.ts +45 -0
  278. package/dist/core/compression.js +160 -0
  279. package/dist/core/context/agent-context.d.ts +106 -0
  280. package/dist/core/context/agent-context.js +274 -0
  281. package/dist/core/{context-paging.d.ts → context/context-paging.d.ts} +2 -12
  282. package/dist/core/{context-paging.js → context/context-paging.js} +19 -39
  283. package/dist/core/context/context-window.d.ts +40 -0
  284. package/dist/core/context/context-window.js +177 -0
  285. package/dist/core/context/context.js +22 -0
  286. package/dist/core/embeddings/embeddings.d.ts +29 -0
  287. package/dist/core/embeddings/embeddings.js +546 -0
  288. package/dist/core/embeddings/google-multimodal.js +6 -2
  289. package/dist/core/embeddings/local-embeddings.d.ts +11 -0
  290. package/dist/core/embeddings/local-embeddings.js +11 -0
  291. package/dist/core/embeddings/qmd-client.js +1 -1
  292. package/dist/core/embeddings/transformers-local.d.ts +64 -0
  293. package/dist/core/embeddings/transformers-local.js +213 -0
  294. package/dist/core/embeddings.d.ts +1 -28
  295. package/dist/core/embeddings.js +2 -401
  296. package/dist/core/error-handling.d.ts +63 -0
  297. package/dist/core/error-handling.js +173 -0
  298. package/dist/core/graph/entity-deduplicator.d.ts +24 -0
  299. package/dist/core/graph/entity-deduplicator.js +183 -0
  300. package/dist/core/graph/graph-builder.d.ts +46 -0
  301. package/dist/core/graph/graph-builder.js +174 -0
  302. package/dist/core/graph/graph-traversal.d.ts +80 -0
  303. package/dist/core/graph/graph-traversal.js +315 -0
  304. package/dist/core/graph/index.d.ts +19 -0
  305. package/dist/core/graph/index.js +13 -0
  306. package/dist/core/graph/llm-entity-extractor.d.ts +49 -0
  307. package/dist/core/graph/llm-entity-extractor.js +313 -0
  308. package/dist/core/graph/multi-hop-retrieval.d.ts +48 -0
  309. package/dist/core/graph/multi-hop-retrieval.js +215 -0
  310. package/dist/core/graph/relationship-extractor.d.ts +48 -0
  311. package/dist/core/graph/relationship-extractor.js +351 -0
  312. package/dist/core/hooks/agent-hooks.d.ts +83 -0
  313. package/dist/core/hooks/agent-hooks.js +521 -0
  314. package/dist/core/hooks/auto-tagger.d.ts +19 -0
  315. package/dist/core/hooks/auto-tagger.js +155 -0
  316. package/dist/core/hooks/capture-filter.d.ts +41 -0
  317. package/dist/core/hooks/capture-filter.js +128 -0
  318. package/dist/core/hot-cache.d.ts +86 -0
  319. package/dist/core/hot-cache.js +285 -0
  320. package/dist/core/index.d.ts +9 -9
  321. package/dist/core/index.js +9 -12
  322. package/dist/core/{agent-memory.js → ingestion/agent-memory.js} +5 -7
  323. package/dist/core/{core-memory.d.ts → ingestion/core-memory.d.ts} +2 -2
  324. package/dist/core/{core-memory.js → ingestion/core-memory.js} +7 -7
  325. package/dist/core/ingestion/learnings.d.ts +57 -0
  326. package/dist/core/ingestion/learnings.js +205 -0
  327. package/dist/core/ingestion/signal-engine.d.ts +41 -0
  328. package/dist/core/ingestion/signal-engine.js +201 -0
  329. package/dist/core/integrations/obsidian-vault.d.ts +31 -0
  330. package/dist/core/integrations/obsidian-vault.js +156 -0
  331. package/dist/core/lib/db-client.d.ts +114 -0
  332. package/dist/core/lib/db-client.js +130 -0
  333. package/dist/core/lib/parse-embedding.d.ts +9 -0
  334. package/dist/core/lib/parse-embedding.js +58 -0
  335. package/dist/core/lib/schemas.d.ts +132 -0
  336. package/dist/core/lib/schemas.js +87 -0
  337. package/dist/core/lib/types.d.ts +45 -0
  338. package/dist/core/lib/types.js +6 -0
  339. package/dist/core/{utils.d.ts → lib/utils.d.ts} +5 -0
  340. package/dist/core/lib/utils.js +145 -0
  341. package/dist/core/lib/validation.d.ts +38 -0
  342. package/dist/core/lib/validation.js +151 -0
  343. package/dist/core/lifecycle.d.ts +7 -1
  344. package/dist/core/lifecycle.js +152 -42
  345. package/dist/core/logger.d.ts +1 -0
  346. package/dist/core/logger.js +13 -1
  347. package/dist/core/mcp/tools.d.ts +0 -2
  348. package/dist/core/mcp/tools.js +35 -90
  349. package/dist/core/mcp/types.d.ts +25 -253
  350. package/dist/core/mcp/types.js +2 -2
  351. package/dist/core/memory/categorizer.js +2 -0
  352. package/dist/core/memory/conflict-detector.js +1 -1
  353. package/dist/core/memory/consolidation.d.ts +1 -10
  354. package/dist/core/memory/consolidation.js +4 -39
  355. package/dist/core/memory/context-collector.js +1 -1
  356. package/dist/core/memory/edit-workflow.js +1 -1
  357. package/dist/core/memory/entity-extractor.d.ts +4 -0
  358. package/dist/core/memory/entity-extractor.js +30 -16
  359. package/dist/core/memory/entity-resolver.js +7 -7
  360. package/dist/core/memory/explain.d.ts +18 -0
  361. package/dist/core/memory/explain.js +92 -0
  362. package/dist/core/memory/fact-deriver.d.ts +31 -0
  363. package/dist/core/memory/fact-deriver.js +236 -0
  364. package/dist/core/memory/fact-extractor.js +12 -12
  365. package/dist/core/memory/feedback-tracker.js +1 -1
  366. package/dist/core/memory/hooks.d.ts +88 -0
  367. package/dist/core/memory/hooks.js +174 -0
  368. package/dist/core/memory/hybrid-retrieval.d.ts +14 -16
  369. package/dist/core/memory/hybrid-retrieval.js +25 -127
  370. package/dist/core/memory/hybrid-scorer.js +6 -23
  371. package/dist/core/memory/hybrid-search.d.ts +9 -11
  372. package/dist/core/memory/hybrid-search.js +496 -273
  373. package/dist/core/memory/importance.d.ts +2 -24
  374. package/dist/core/memory/importance.js +7 -91
  375. package/dist/core/memory/index.d.ts +1 -0
  376. package/dist/core/memory/index.js +1 -0
  377. package/dist/core/memory/loader.d.ts +31 -0
  378. package/dist/core/memory/loader.js +141 -0
  379. package/dist/core/memory/markdown/markdown-storage.d.ts +72 -0
  380. package/dist/core/memory/markdown/markdown-storage.js +243 -0
  381. package/dist/core/memory/memories.d.ts +23 -19
  382. package/dist/core/memory/memories.js +243 -228
  383. package/dist/core/memory/memory-lifecycle.d.ts +8 -0
  384. package/dist/core/memory/memory-lifecycle.js +47 -0
  385. package/dist/core/memory/migrate.d.ts +21 -0
  386. package/dist/core/memory/migrate.js +134 -0
  387. package/dist/core/memory/normalization.d.ts +7 -0
  388. package/dist/core/memory/normalization.js +26 -0
  389. package/dist/core/memory/path-strengthener.d.ts +39 -0
  390. package/dist/core/memory/path-strengthener.js +150 -0
  391. package/dist/core/memory/progressive-disclosure.js +1 -1
  392. package/dist/core/memory/query-processor.js +37 -3
  393. package/dist/core/memory/query-rewriter.js +9 -9
  394. package/dist/core/memory/retrieval-feedback.d.ts +70 -0
  395. package/dist/core/memory/retrieval-feedback.js +213 -0
  396. package/dist/core/memory/serialization.d.ts +4 -0
  397. package/dist/core/memory/serialization.js +49 -0
  398. package/dist/core/memory/stale-cleaner.d.ts +26 -0
  399. package/dist/core/memory/stale-cleaner.js +97 -0
  400. package/dist/core/memory/stats.d.ts +15 -0
  401. package/dist/core/memory/stats.js +69 -13
  402. package/dist/core/memory/temporal-facts.js +21 -0
  403. package/dist/core/memory/trigger-detector.d.ts +8 -1
  404. package/dist/core/memory/trigger-detector.js +42 -5
  405. package/dist/core/memory/write-gate.js +1 -1
  406. package/dist/core/places/index.d.ts +14 -0
  407. package/dist/core/places/index.js +14 -0
  408. package/dist/core/places/memory-places.d.ts +68 -0
  409. package/dist/core/places/memory-places.js +261 -0
  410. package/dist/core/places/places.d.ts +88 -0
  411. package/dist/core/places/places.js +314 -0
  412. package/dist/core/places/rules.d.ts +74 -0
  413. package/dist/core/places/rules.js +240 -0
  414. package/dist/core/places/walking.d.ts +56 -0
  415. package/dist/core/places/walking.js +121 -0
  416. package/dist/core/projects.d.ts +5 -0
  417. package/dist/core/projects.js +47 -18
  418. package/dist/core/responses.d.ts +96 -0
  419. package/dist/core/responses.js +122 -0
  420. package/dist/core/runtime/trust-report.d.ts +102 -0
  421. package/dist/core/runtime/trust-report.js +107 -0
  422. package/dist/core/runtime/trust-state.d.ts +12 -0
  423. package/dist/core/runtime/trust-state.js +309 -0
  424. package/dist/core/scheduler/cron-scheduler.d.ts +1 -1
  425. package/dist/core/scheduler/cron-scheduler.js +193 -10
  426. package/dist/core/scheduler/index.d.ts +1 -1
  427. package/dist/core/scheduler/index.js +1 -1
  428. package/dist/core/scheduler/job-runner.js +2 -2
  429. package/dist/core/search/conversations.js +40 -42
  430. package/dist/core/search/entities.js +6 -9
  431. package/dist/core/search/graph-boost.d.ts +7 -0
  432. package/dist/core/search/graph-boost.js +23 -0
  433. package/dist/core/search/qmd-wrapper.d.ts +36 -0
  434. package/dist/core/search/qmd-wrapper.js +58 -0
  435. package/dist/core/security/encrypt.d.ts +6 -0
  436. package/dist/core/security/encrypt.js +47 -0
  437. package/dist/core/{governance.d.ts → security/governance.d.ts} +6 -1
  438. package/dist/core/security/governance.js +79 -0
  439. package/dist/core/session/auto-load.js +34 -9
  440. package/dist/core/session/entity-tracker.d.ts +62 -0
  441. package/dist/core/session/entity-tracker.js +287 -0
  442. package/dist/core/session/index.d.ts +1 -1
  443. package/dist/core/session/index.js +1 -1
  444. package/dist/core/session/reference-resolver.d.ts +26 -0
  445. package/dist/core/session/reference-resolver.js +121 -0
  446. package/dist/core/{session-hooks → session}/self-iteration-job.d.ts +15 -0
  447. package/dist/core/{session-hooks → session}/self-iteration-job.js +195 -90
  448. package/dist/core/session/working-set.d.ts +50 -0
  449. package/dist/core/session/working-set.js +212 -0
  450. package/dist/core/snapshots/creation.d.ts +2 -8
  451. package/dist/core/snapshots/creation.js +3 -12
  452. package/dist/core/{cache.js → storage/cache.js} +2 -2
  453. package/dist/core/utils/memory-operations.js +1 -1
  454. package/dist/core/utils/summarization-helpers.d.ts +0 -4
  455. package/dist/core/utils/summarization-helpers.js +1 -6
  456. package/dist/core/utils/vector-operations.d.ts +71 -0
  457. package/dist/core/utils/vector-operations.js +129 -0
  458. package/dist/db/adapter.d.ts +3 -3
  459. package/dist/db/adapter.js +99 -88
  460. package/dist/db/bootstrap.d.ts +2 -0
  461. package/dist/db/bootstrap.js +921 -674
  462. package/dist/{drizzle → db/drizzle}/schema-sqlite.d.ts +775 -25
  463. package/dist/{drizzle → db/drizzle}/schema-sqlite.js +170 -24
  464. package/dist/{drizzle → db/drizzle}/schema.d.ts +731 -32
  465. package/dist/{drizzle → db/drizzle}/schema.js +192 -32
  466. package/dist/db/drizzle.config.d.ts +3 -0
  467. package/dist/db/drizzle.config.js +12 -0
  468. package/dist/db/index.d.ts +1 -5
  469. package/dist/db/index.js +51 -8
  470. package/dist/db/migrations/associations.d.ts +6 -0
  471. package/dist/db/migrations/associations.js +29 -0
  472. package/dist/db/migrations/beliefs.d.ts +10 -0
  473. package/dist/db/migrations/beliefs.js +76 -0
  474. package/dist/db/migrations/core-memory.d.ts +6 -0
  475. package/dist/db/migrations/core-memory.js +29 -0
  476. package/dist/db/migrations/fts.d.ts +6 -0
  477. package/dist/db/migrations/fts.js +52 -0
  478. package/dist/db/migrations/index.d.ts +25 -0
  479. package/dist/db/migrations/index.js +51 -0
  480. package/dist/db/migrations/indexes.d.ts +6 -0
  481. package/dist/db/migrations/indexes.js +30 -0
  482. package/dist/db/migrations/learnings.d.ts +7 -0
  483. package/dist/db/migrations/learnings.js +26 -0
  484. package/dist/db/migrations/maintenance.d.ts +6 -0
  485. package/dist/db/migrations/maintenance.js +61 -0
  486. package/dist/db/migrations/memories.d.ts +7 -0
  487. package/dist/db/migrations/memories.js +16 -0
  488. package/dist/db/migrations/memory-places.d.ts +6 -0
  489. package/dist/db/migrations/memory-places.js +29 -0
  490. package/dist/db/migrations/places.d.ts +6 -0
  491. package/dist/db/migrations/places.js +43 -0
  492. package/dist/db/migrations/projects.d.ts +3 -0
  493. package/dist/db/migrations/projects.js +13 -0
  494. package/dist/db/migrations/tier-conversion.d.ts +7 -0
  495. package/dist/db/migrations/tier-conversion.js +20 -0
  496. package/dist/db/neon.d.ts +8 -0
  497. package/dist/db/neon.js +20 -0
  498. package/dist/db/schema/beliefs.d.ts +9 -0
  499. package/dist/db/schema/beliefs.js +46 -0
  500. package/dist/db/schema/generator.d.ts +38 -0
  501. package/dist/db/schema/generator.js +108 -0
  502. package/dist/db/schema/index.d.ts +39 -0
  503. package/dist/db/schema/index.js +51 -0
  504. package/dist/db/schema/learnings.d.ts +7 -0
  505. package/dist/db/schema/learnings.js +30 -0
  506. package/dist/db/schema/memories.d.ts +7 -0
  507. package/dist/db/schema/memories.js +81 -0
  508. package/dist/db/schema/projects.d.ts +4 -0
  509. package/dist/db/schema/projects.js +31 -0
  510. package/dist/db/schema/tables/context-sessions.d.ts +9 -0
  511. package/dist/db/schema/tables/context-sessions.js +37 -0
  512. package/dist/db/schema/tables/conversations.d.ts +9 -0
  513. package/dist/db/schema/tables/conversations.js +47 -0
  514. package/dist/db/schema/tables/core-memory.d.ts +9 -0
  515. package/dist/db/schema/tables/core-memory.js +41 -0
  516. package/dist/db/schema/tables/entities.d.ts +9 -0
  517. package/dist/db/schema/tables/entities.js +39 -0
  518. package/dist/db/schema/tables/entity-relations.d.ts +9 -0
  519. package/dist/db/schema/tables/entity-relations.js +31 -0
  520. package/dist/db/schema/tables/learnings.d.ts +9 -0
  521. package/dist/db/schema/tables/learnings.js +66 -0
  522. package/dist/db/schema/tables/memories.d.ts +9 -0
  523. package/dist/db/schema/tables/memories.js +161 -0
  524. package/dist/db/schema/tables/memory-associations.d.ts +9 -0
  525. package/dist/db/schema/tables/memory-associations.js +39 -0
  526. package/dist/db/schema/tables/memory-hash-cache.d.ts +9 -0
  527. package/dist/db/schema/tables/memory-hash-cache.js +29 -0
  528. package/dist/db/schema/tables/memory-merge-history.d.ts +9 -0
  529. package/dist/db/schema/tables/memory-merge-history.js +33 -0
  530. package/dist/db/schema/tables/memory-merge-proposals.d.ts +9 -0
  531. package/dist/db/schema/tables/memory-merge-proposals.js +39 -0
  532. package/dist/db/schema/tables/messages.d.ts +9 -0
  533. package/dist/db/schema/tables/messages.js +41 -0
  534. package/dist/db/schema/tables/namespaces.d.ts +9 -0
  535. package/dist/db/schema/tables/namespaces.js +37 -0
  536. package/dist/db/schema/tables/projects.d.ts +9 -0
  537. package/dist/db/schema/tables/projects.js +31 -0
  538. package/dist/db/schema/tables/users.d.ts +9 -0
  539. package/dist/db/schema/tables/users.js +27 -0
  540. package/dist/db/schema.d.ts +1 -1
  541. package/dist/db/schema.js +2 -2
  542. package/dist/db/supabase.d.ts +9 -0
  543. package/dist/db/supabase.js +24 -0
  544. package/dist/packages/mcp/src/index.d.ts +3 -0
  545. package/dist/packages/mcp/src/index.js +733 -0
  546. package/mcp.json.example +8 -0
  547. package/package.json +132 -173
  548. package/packages/cli/package.json +22 -0
  549. package/packages/cli/src/commands/clean.ts +68 -0
  550. package/packages/cli/src/commands/context.ts +79 -0
  551. package/packages/cli/src/commands/doctor.ts +357 -0
  552. package/packages/cli/src/commands/forget.ts +72 -0
  553. package/packages/cli/src/commands/health.ts +36 -0
  554. package/packages/cli/src/commands/inspect.ts +41 -0
  555. package/packages/cli/src/commands/link.ts +50 -0
  556. package/packages/cli/src/commands/migrate.ts +93 -0
  557. package/packages/cli/src/commands/recall.ts +99 -0
  558. package/packages/cli/src/commands/recent.ts +57 -0
  559. package/packages/cli/src/commands/remember.ts +139 -0
  560. package/packages/cli/src/commands/run.ts +58 -0
  561. package/packages/cli/src/commands/stale.ts +43 -0
  562. package/packages/cli/src/commands/stats.ts +42 -0
  563. package/packages/cli/src/index.ts +57 -0
  564. package/packages/cli/tsconfig.json +24 -0
  565. package/packages/mcp/package.json +26 -0
  566. package/packages/mcp/src/index.ts +877 -0
  567. package/packages/mcp/tsconfig.json +20 -0
  568. package/skills/squish-memory/SKILL.md +107 -114
  569. package/skills/squish-memory/install.sh +3 -3
  570. package/skills/squish-memory/{claude-desktop.json → references/claude-desktop.json} +12 -12
  571. package/skills/squish-memory/{openclaw.json → references/openclaw.json} +13 -13
  572. package/skills/squish-memory/{opencode.json → references/opencode.json} +14 -14
  573. package/.claude-plugin/marketplace.json +0 -20
  574. package/.claude-plugin/plugin.json +0 -32
  575. package/.env.mcp.example +0 -60
  576. package/.mcp.json +0 -11
  577. package/QUICK-START.md +0 -71
  578. package/bin/squish-add.mjs +0 -32
  579. package/bin/squish-rm.mjs +0 -21
  580. package/commands/context-paging.md +0 -51
  581. package/commands/context-status.md +0 -22
  582. package/commands/context.md +0 -5
  583. package/commands/core-memory.md +0 -56
  584. package/commands/health.md +0 -5
  585. package/commands/init.md +0 -39
  586. package/commands/merge.md +0 -113
  587. package/commands/observe.md +0 -5
  588. package/commands/recall.md +0 -5
  589. package/commands/remember.md +0 -11
  590. package/commands/search.md +0 -10
  591. package/config/mcp-cli-fallback-policy.json +0 -22
  592. package/config/mcp.json +0 -38
  593. package/config/plugin-manifest.json +0 -152
  594. package/config/plugin-manifest.schema.json +0 -244
  595. package/config/remote-memory-policy.json +0 -32
  596. package/dist/api/web/index.d.ts +0 -3
  597. package/dist/api/web/index.js +0 -4
  598. package/dist/api/web/web-server.d.ts +0 -3
  599. package/dist/api/web/web-server.js +0 -6
  600. package/dist/api/web/web.d.ts +0 -4
  601. package/dist/api/web/web.js +0 -639
  602. package/dist/commands/managed-sync.d.ts +0 -10
  603. package/dist/commands/managed-sync.js +0 -64
  604. package/dist/commands/mcp-server.d.ts +0 -3
  605. package/dist/commands/mcp-server.js +0 -393
  606. package/dist/core/context.js +0 -24
  607. package/dist/core/governance.js +0 -64
  608. package/dist/core/local-embeddings.d.ts +0 -6
  609. package/dist/core/local-embeddings.js +0 -20
  610. package/dist/core/namespaces/index.d.ts +0 -71
  611. package/dist/core/namespaces/index.js +0 -305
  612. package/dist/core/namespaces/uri-parser.d.ts +0 -31
  613. package/dist/core/namespaces/uri-parser.js +0 -74
  614. package/dist/core/observations.d.ts +0 -26
  615. package/dist/core/observations.js +0 -110
  616. package/dist/core/requirements.d.ts +0 -20
  617. package/dist/core/requirements.js +0 -35
  618. package/dist/core/search/qmd-search.d.ts +0 -61
  619. package/dist/core/search/qmd-search.js +0 -178
  620. package/dist/core/snapshots.d.ts +0 -29
  621. package/dist/core/snapshots.js +0 -220
  622. package/dist/core/sync/qmd-sync.d.ts +0 -106
  623. package/dist/core/sync/qmd-sync.js +0 -213
  624. package/dist/core/utils.js +0 -74
  625. package/dist/index.d.ts +0 -19
  626. package/dist/index.js +0 -997
  627. package/generated/mcp/manifest.json +0 -23
  628. package/generated/mcp/mcp-servers.json +0 -25
  629. package/generated/mcp/mcporter.json +0 -34
  630. package/generated/mcp/openclaw-memory-qmd.json +0 -17
  631. package/generated/mcp/runtime.json +0 -12
  632. package/hooks/hooks.json +0 -52
  633. package/hooks/post-tool-use.js +0 -26
  634. package/hooks/session-end.js +0 -28
  635. package/hooks/session-start.js +0 -33
  636. package/hooks/user-prompt-submit.js +0 -26
  637. package/hooks/utils.js +0 -153
  638. package/npx-installer.js +0 -208
  639. package/packages/plugin-claude-code/README.md +0 -73
  640. package/packages/plugin-claude-code/dist/plugin-wrapper.d.ts +0 -35
  641. package/packages/plugin-claude-code/dist/plugin-wrapper.js +0 -191
  642. package/packages/plugin-claude-code/package.json +0 -31
  643. package/packages/plugin-openclaw/README.md +0 -70
  644. package/packages/plugin-openclaw/dist/index.d.ts +0 -49
  645. package/packages/plugin-openclaw/dist/index.js +0 -262
  646. package/packages/plugin-openclaw/openclaw.plugin.json +0 -94
  647. package/packages/plugin-openclaw/package.json +0 -31
  648. package/packages/plugin-opencode/install.mjs +0 -217
  649. package/packages/plugin-opencode/package.json +0 -21
  650. package/plugin.json +0 -32
  651. package/scripts/build-release.sh +0 -36
  652. package/scripts/check-secrets.js +0 -132
  653. package/scripts/db/check-db.mjs +0 -88
  654. package/scripts/db/fix-all-columns.mjs +0 -52
  655. package/scripts/db/fix-schema-all.mjs +0 -55
  656. package/scripts/db/fix-schema-full.mjs +0 -46
  657. package/scripts/db/fix-schema.mjs +0 -38
  658. package/scripts/db/init-db.mjs +0 -13
  659. package/scripts/db/recreate-db.mjs +0 -14
  660. package/scripts/generate-mcp.mjs +0 -264
  661. package/scripts/github-release.sh +0 -77
  662. package/scripts/init-dirs.mjs +0 -13
  663. package/scripts/install-interactive.mjs +0 -677
  664. package/scripts/install-mcp.mjs +0 -116
  665. package/scripts/install-plugin.mjs +0 -415
  666. package/scripts/install-web.sh +0 -120
  667. package/scripts/install.mjs +0 -340
  668. package/scripts/openclaw-bootstrap.mjs +0 -127
  669. package/scripts/package-release.sh +0 -71
  670. package/scripts/remote-preflight.mjs +0 -62
  671. package/scripts/squish-fallback.mjs +0 -132
  672. package/scripts/test/test-all-systems.mjs +0 -139
  673. package/scripts/test/test-memory-system.mjs +0 -139
  674. package/scripts/test/test-v0.5.0.mjs +0 -210
  675. package/scripts/test-interactive.mjs +0 -131
  676. package/scripts/verify-mcp.mjs +0 -214
  677. package/skills/memory-guide/SKILL.md +0 -332
  678. package/skills/squish-cli/SKILL.md +0 -240
  679. package/skills/squish-mcp/SKILL.md +0 -355
  680. package/skills/squish-memory/install.mjs +0 -335
  681. package/skills/squish-memory/skill.json +0 -32
  682. /package/dist/{algorithms → core/algorithms}/detection/hash-filters.d.ts +0 -0
  683. /package/dist/{algorithms → core/algorithms}/detection/hash-filters.js +0 -0
  684. /package/dist/{algorithms → core/algorithms}/handlers/approve-merge.d.ts +0 -0
  685. /package/dist/{algorithms → core/algorithms}/handlers/detect-duplicates.d.ts +0 -0
  686. /package/dist/{algorithms → core/algorithms}/handlers/get-stats.d.ts +0 -0
  687. /package/dist/{algorithms → core/algorithms}/handlers/list-proposals.d.ts +0 -0
  688. /package/dist/{algorithms → core/algorithms}/handlers/preview-merge.d.ts +0 -0
  689. /package/dist/{algorithms → core/algorithms}/handlers/reject-merge.d.ts +0 -0
  690. /package/dist/{algorithms → core/algorithms}/handlers/reverse-merge.d.ts +0 -0
  691. /package/dist/{algorithms → core/algorithms}/safety/safety-checks.js +0 -0
  692. /package/dist/{algorithms → core/algorithms}/utils/response-builder.d.ts +0 -0
  693. /package/dist/{algorithms → core/algorithms}/utils/response-builder.js +0 -0
  694. /package/dist/core/{context.d.ts → context/context.d.ts} +0 -0
  695. /package/dist/core/{agent-memory.d.ts → ingestion/agent-memory.d.ts} +0 -0
  696. /package/dist/core/{privacy.d.ts → security/privacy.d.ts} +0 -0
  697. /package/dist/core/{privacy.js → security/privacy.js} +0 -0
  698. /package/dist/core/{secret-detector.d.ts → security/secret-detector.d.ts} +0 -0
  699. /package/dist/core/{secret-detector.js → security/secret-detector.js} +0 -0
  700. /package/dist/core/{session-hooks → session}/session-hooks.d.ts +0 -0
  701. /package/dist/core/{session-hooks → session}/session-hooks.js +0 -0
  702. /package/dist/core/{cache.d.ts → storage/cache.d.ts} +0 -0
  703. /package/dist/core/{database.d.ts → storage/database.d.ts} +0 -0
  704. /package/dist/core/{database.js → storage/database.js} +0 -0
@@ -0,0 +1,73 @@
1
+ /**
2
+ * OpenCode Adapter Configuration
3
+ *
4
+ * Native OpenCode configuration for integrating Squish as MCP server.
5
+ * OpenCode uses similar MCP configuration to Claude Code.
6
+ */
7
+ const ADAPTER_CONFIG = {
8
+ agentId: 'opencode',
9
+ name: 'OpenCode',
10
+ type: 'opencode',
11
+ mcp: {
12
+ command: 'node',
13
+ args: ['dist/core/commands/mcp-server.js'],
14
+ env: { NODE_ENV: 'production' }
15
+ },
16
+ hooks: {},
17
+ settings: {
18
+ squish: {
19
+ autoCapture: true,
20
+ captureTools: ['Read', 'Write', 'Edit', 'Bash'],
21
+ contextLimit: 5,
22
+ }
23
+ }
24
+ };
25
+ /**
26
+ * Register OpenCode adapter
27
+ */
28
+ export function registerOpenCodeAdapter() {
29
+ const { registerAdapter } = require('../index.js');
30
+ const adapter = {
31
+ id: 'opencode',
32
+ type: 'opencode',
33
+ name: 'OpenCode',
34
+ version: 'latest',
35
+ getSessionContext: async (input) => {
36
+ const { getRecent } = await import('../../memory/memories.js');
37
+ const recent = await getRecent(input.project, 5);
38
+ const memories = recent.map((m, i) => `${i + 1}. [${m.type}] ${m.content?.substring(0, 100)}`).join('\n');
39
+ return { mode: input.mode, project: input.project, memories, count: recent.length };
40
+ },
41
+ recordObservation: async (input) => {
42
+ const { createLearning } = await import('../../ingestion/learnings.js');
43
+ const memory = await createLearning({
44
+ type: 'insight',
45
+ content: `[${input.toolName}] ${JSON.stringify(input.toolInput).substring(0, 200)}`,
46
+ action: input.toolName,
47
+ project: input.project,
48
+ autoLink: false,
49
+ });
50
+ return { memoryId: memory.id, category: 'other', content: `Recorded: ${input.toolName}` };
51
+ },
52
+ getTimeline: async (query, depth, limit) => {
53
+ const { getTimeline } = await require('../timeline.js');
54
+ return getTimeline(query, depth, limit);
55
+ },
56
+ shouldCaptureTool: (toolName) => {
57
+ return ['Read', 'Write', 'Edit', 'Bash', 'grep', 'Glob', 'Task'].includes(toolName);
58
+ },
59
+ getNativeConfig: () => ADAPTER_CONFIG,
60
+ };
61
+ registerAdapter(adapter);
62
+ }
63
+ /** OpenCode settings.json format */
64
+ export const OPENCODE_SETTINGS = {
65
+ "mcpServers": {
66
+ "squish": {
67
+ "command": "node",
68
+ "args": ["dist/core/commands/mcp-server.js"]
69
+ }
70
+ }
71
+ };
72
+ export default ADAPTER_CONFIG;
73
+ //# sourceMappingURL=opencode.js.map
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Windsurf Adapter Configuration
3
+ *
4
+ * Native Windsurf configuration for integrating Squish as MCP server.
5
+ * Windsurf uses .windsurf/config.json format.
6
+ */
7
+ import { AgentConfig } from '../types.js';
8
+ declare const ADAPTER_CONFIG: AgentConfig;
9
+ /**
10
+ * Register Windsurf adapter
11
+ */
12
+ export declare function registerWindsurfAdapter(): void;
13
+ /** Windsurf config.json format */
14
+ export declare const WINDSURF_CONFIG: {
15
+ mcpServers: {
16
+ squish: {
17
+ command: string;
18
+ args: string[];
19
+ env: {
20
+ NODE_ENV: string;
21
+ };
22
+ };
23
+ };
24
+ };
25
+ export default ADAPTER_CONFIG;
26
+ //# sourceMappingURL=windsurf.d.ts.map
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Windsurf Adapter Configuration
3
+ *
4
+ * Native Windsurf configuration for integrating Squish as MCP server.
5
+ * Windsurf uses .windsurf/config.json format.
6
+ */
7
+ const ADAPTER_CONFIG = {
8
+ agentId: 'windsurf',
9
+ name: 'Windsurf',
10
+ type: 'windsurf',
11
+ mcp: {
12
+ command: 'node',
13
+ args: ['dist/core/commands/mcp-server.js'],
14
+ env: { NODE_ENV: 'production' }
15
+ },
16
+ hooks: {},
17
+ settings: {
18
+ squish: {
19
+ autoCapture: true,
20
+ captureTools: ['Read', 'Write', 'Edit', 'Bash'],
21
+ contextLimit: 5,
22
+ }
23
+ }
24
+ };
25
+ /**
26
+ * Register Windsurf adapter
27
+ */
28
+ export function registerWindsurfAdapter() {
29
+ const { registerAdapter } = require('../index.js');
30
+ const adapter = {
31
+ id: 'windsurf',
32
+ type: 'windsurf',
33
+ name: 'Windsurf',
34
+ version: 'latest',
35
+ getSessionContext: async (input) => {
36
+ const { getRecent } = await import('../../memory/memories.js');
37
+ const recent = await getRecent(input.project, 5);
38
+ const memories = recent.map((m, i) => `${i + 1}. [${m.type}] ${m.content?.substring(0, 100)}`).join('\n');
39
+ return { mode: input.mode, project: input.project, memories, count: recent.length };
40
+ },
41
+ recordObservation: async (input) => {
42
+ const { createLearning } = await import('../../ingestion/learnings.js');
43
+ const memory = await createLearning({
44
+ type: 'insight',
45
+ content: `[${input.toolName}] ${JSON.stringify(input.toolInput).substring(0, 200)}`,
46
+ action: input.toolName,
47
+ project: input.project,
48
+ autoLink: false,
49
+ });
50
+ return { memoryId: memory.id, category: 'other', content: `Recorded: ${input.toolName}` };
51
+ },
52
+ getTimeline: async (query, depth, limit) => {
53
+ const { getTimeline } = await require('../timeline.js');
54
+ return getTimeline(query, depth, limit);
55
+ },
56
+ shouldCaptureTool: (toolName) => {
57
+ return ['Read', 'Write', 'Edit', 'Bash', 'grep', 'Glob', 'Task'].includes(toolName);
58
+ },
59
+ getNativeConfig: () => ADAPTER_CONFIG,
60
+ };
61
+ registerAdapter(adapter);
62
+ }
63
+ /** Windsurf config.json format */
64
+ export const WINDSURF_CONFIG = {
65
+ "mcpServers": {
66
+ "squish": {
67
+ "command": "node",
68
+ "args": ["dist/core/commands/mcp-server.js"],
69
+ "env": { "NODE_ENV": "production" }
70
+ }
71
+ }
72
+ };
73
+ export default ADAPTER_CONFIG;
74
+ //# sourceMappingURL=windsurf.js.map
@@ -0,0 +1,45 @@
1
+ /**
2
+ * UAM Adapter Registry
3
+ *
4
+ * Manages agent adapters for Universal Agent Memory.
5
+ * Provides functions to register, retrieve, and list adapters.
6
+ */
7
+ import { AgentAdapter, AgentType, AgentConfig } from './types.js';
8
+ /**
9
+ * Register an adapter
10
+ */
11
+ export declare function registerAdapter(adapter: AgentAdapter): void;
12
+ /**
13
+ * Get adapter by type
14
+ */
15
+ export declare function getAdapter(type: AgentType): AgentAdapter | undefined;
16
+ /**
17
+ * List all registered adapters
18
+ */
19
+ export declare function listAdapters(): AgentAdapter[];
20
+ /**
21
+ * Load all adapters from config directory
22
+ */
23
+ export declare function loadAllAdapters(dir: string): Promise<void>;
24
+ /**
25
+ * Get adapter config by type (for native integration)
26
+ */
27
+ export declare function getAdapterConfig(type: AgentType): AgentConfig | undefined;
28
+ /**
29
+ * List all adapter configs (for MCP tool)
30
+ */
31
+ export declare function listAdapterConfigs(): AgentConfig[];
32
+ /**
33
+ * Check if an adapter is registered
34
+ */
35
+ export declare function hasAdapter(type: AgentType): boolean;
36
+ /**
37
+ * Clear all adapters (mainly for testing)
38
+ */
39
+ export declare function clearAdapters(): void;
40
+ export * from './types.js';
41
+ export type { AgentAdapter, AgentType, AgentConfig };
42
+ export type { SessionContextInput, SessionContextOutput } from './types.js';
43
+ export type { ToolObservationInput, ToolObservationOutput } from './types.js';
44
+ export type { TimelineDepth } from './types.js';
45
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,84 @@
1
+ /**
2
+ * UAM Adapter Registry
3
+ *
4
+ * Manages agent adapters for Universal Agent Memory.
5
+ * Provides functions to register, retrieve, and list adapters.
6
+ */
7
+ import { logger } from '../logger.js';
8
+ /** In-memory adapter registry */
9
+ const adapters = new Map();
10
+ /** Config directory for agent configs */
11
+ let configDir = null;
12
+ /**
13
+ * Register an adapter
14
+ */
15
+ export function registerAdapter(adapter) {
16
+ if (adapters.has(adapter.type)) {
17
+ logger.warn(`[Adapters] Overriding existing adapter for type: ${adapter.type}`);
18
+ }
19
+ adapters.set(adapter.type, adapter);
20
+ logger.info(`[Adapters] Registered adapter: ${adapter.name} (${adapter.type})`);
21
+ }
22
+ /**
23
+ * Get adapter by type
24
+ */
25
+ export function getAdapter(type) {
26
+ return adapters.get(type);
27
+ }
28
+ /**
29
+ * List all registered adapters
30
+ */
31
+ export function listAdapters() {
32
+ return Array.from(adapters.values());
33
+ }
34
+ /**
35
+ * Load all adapters from config directory
36
+ */
37
+ export async function loadAllAdapters(dir) {
38
+ configDir = dir;
39
+ logger.info(`[Adapters] Loading adapters from: ${dir}`);
40
+ // Dynamic import and register adapters
41
+ try {
42
+ const { registerClaudeCodeAdapter } = await import('./config/claude-code.js');
43
+ const { registerOpenCodeAdapter } = await import('./config/opencode.js');
44
+ const { registerCursorAdapter } = await import('./config/cursor.js');
45
+ const { registerWindsurfAdapter } = await import('./config/windsurf.js');
46
+ registerClaudeCodeAdapter();
47
+ registerOpenCodeAdapter();
48
+ registerCursorAdapter();
49
+ registerWindsurfAdapter();
50
+ logger.info(`[Adapters] Loaded ${listAdapters().length} adapters`);
51
+ }
52
+ catch (error) {
53
+ logger.error(`[Adapters] Failed to load adapters:`, error);
54
+ }
55
+ }
56
+ /**
57
+ * Get adapter config by type (for native integration)
58
+ */
59
+ export function getAdapterConfig(type) {
60
+ const adapter = adapters.get(type);
61
+ return adapter?.getNativeConfig();
62
+ }
63
+ /**
64
+ * List all adapter configs (for MCP tool)
65
+ */
66
+ export function listAdapterConfigs() {
67
+ return listAdapters().map(a => a.getNativeConfig());
68
+ }
69
+ /**
70
+ * Check if an adapter is registered
71
+ */
72
+ export function hasAdapter(type) {
73
+ return adapters.has(type);
74
+ }
75
+ /**
76
+ * Clear all adapters (mainly for testing)
77
+ */
78
+ export function clearAdapters() {
79
+ adapters.clear();
80
+ logger.info('[Adapters] Cleared all adapters');
81
+ }
82
+ // Re-export types
83
+ export * from './types.js';
84
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Install Adapter Script
3
+ *
4
+ * Installs Squish MCP configuration for various AI coding agents.
5
+ * Run with: bun run core/adapters/scripts/install-adapter.ts --agent claude-code
6
+ */
7
+ interface InstallOptions {
8
+ agent: 'claude-code' | 'opencode' | 'cursor' | 'windsurf';
9
+ projectRoot?: string;
10
+ dryRun?: boolean;
11
+ }
12
+ declare const AGENT_CONFIG_PATHS: Record<string, {
13
+ dir: string;
14
+ file: string;
15
+ }>;
16
+ declare const MCP_CONFIGS: Record<string, object>;
17
+ declare function installAdapter(options: InstallOptions): void;
18
+ export { installAdapter, AGENT_CONFIG_PATHS, MCP_CONFIGS };
19
+ //# sourceMappingURL=install-adapter.d.ts.map
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Install Adapter Script
3
+ *
4
+ * Installs Squish MCP configuration for various AI coding agents.
5
+ * Run with: bun run core/adapters/scripts/install-adapter.ts --agent claude-code
6
+ */
7
+ import { writeFileSync, existsSync, mkdirSync } from 'fs';
8
+ import { join, dirname } from 'path';
9
+ import { homedir } from 'os';
10
+ // Config paths per agent
11
+ const AGENT_CONFIG_PATHS = {
12
+ 'claude-code': {
13
+ dir: '.claude',
14
+ file: 'settings.json',
15
+ },
16
+ 'opencode': {
17
+ dir: '.opencode',
18
+ file: 'settings.json',
19
+ },
20
+ 'cursor': {
21
+ dir: '.cursor',
22
+ file: 'mcp.json',
23
+ },
24
+ 'windsurf': {
25
+ dir: '.windsurf',
26
+ file: 'config.json',
27
+ },
28
+ };
29
+ // MCP config templates
30
+ const MCP_CONFIGS = {
31
+ 'claude-code': {
32
+ mcpServers: {
33
+ squish: {
34
+ command: 'node',
35
+ args: ['dist/core/commands/mcp-server.js'],
36
+ env: { NODE_ENV: 'production' }
37
+ }
38
+ }
39
+ },
40
+ 'opencode': {
41
+ mcpServers: {
42
+ squish: {
43
+ command: 'node',
44
+ args: ['dist/core/commands/mcp-server.js']
45
+ }
46
+ }
47
+ },
48
+ 'cursor': {
49
+ mcpServers: {
50
+ squish: {
51
+ command: 'node',
52
+ args: ['dist/core/commands/mcp-server.js'],
53
+ env: { NODE_ENV: 'production' }
54
+ }
55
+ }
56
+ },
57
+ 'windsurf': {
58
+ mcpServers: {
59
+ squish: {
60
+ command: 'node',
61
+ args: ['dist/core/commands/mcp-server.js'],
62
+ env: { NODE_ENV: 'production' }
63
+ }
64
+ }
65
+ }
66
+ };
67
+ function getConfigPath(agent) {
68
+ const home = homedir();
69
+ const config = AGENT_CONFIG_PATHS[agent];
70
+ return join(home, config.dir, config.file);
71
+ }
72
+ function installAdapter(options) {
73
+ const { agent, projectRoot, dryRun } = options;
74
+ const configPath = projectRoot
75
+ ? join(projectRoot, AGENT_CONFIG_PATHS[agent].dir, AGENT_CONFIG_PATHS[agent].file)
76
+ : getConfigPath(agent);
77
+ const configDir = dirname(configPath);
78
+ const config = MCP_CONFIGS[agent];
79
+ console.log(`Installing Squish MCP for ${agent}...`);
80
+ console.log(`Config path: ${configPath}`);
81
+ if (dryRun) {
82
+ console.log(`[DRY RUN] Would write:`);
83
+ console.log(JSON.stringify(config, null, 2));
84
+ return;
85
+ }
86
+ // Create directory if needed
87
+ if (!existsSync(configDir)) {
88
+ mkdirSync(configDir, { recursive: true });
89
+ console.log(`Created directory: ${configDir}`);
90
+ }
91
+ // Check if file exists and merge
92
+ let existingConfig = {};
93
+ if (existsSync(configPath)) {
94
+ try {
95
+ const existing = require('fs').readFileSync(configPath, 'utf-8');
96
+ existingConfig = JSON.parse(existing);
97
+ console.log(`Merging with existing config...`);
98
+ }
99
+ catch {
100
+ console.log(`Warning: Could not parse existing config, overwriting`);
101
+ }
102
+ }
103
+ // Merge configs - simplified
104
+ const mergedConfig = {
105
+ ...existingConfig,
106
+ mcpServers: {
107
+ ...(existingConfig.mcpServers || {}),
108
+ ...MCP_CONFIGS[agent].mcpServers
109
+ }
110
+ };
111
+ // Write config
112
+ writeFileSync(configPath, JSON.stringify(mergedConfig, null, 2));
113
+ console.log(`Config written to: ${configPath}`);
114
+ console.log(`\nTo activate:`);
115
+ console.log(` 1. Restart ${agent}`);
116
+ console.log(` 2. Or reload settings`);
117
+ }
118
+ // CLI handler
119
+ if (import.meta.url === `file://${process.argv[1]}`) {
120
+ const args = process.argv.slice(2);
121
+ let agent = 'claude-code';
122
+ let dryRun = false;
123
+ let projectRoot;
124
+ for (let i = 0; i < args.length; i++) {
125
+ if (args[i] === '--agent' && args[i + 1]) {
126
+ agent = args[i + 1];
127
+ i++;
128
+ }
129
+ else if (args[i] === '--dry-run') {
130
+ dryRun = true;
131
+ }
132
+ else if (args[i] === '--project' && args[i + 1]) {
133
+ projectRoot = args[i + 1];
134
+ i++;
135
+ }
136
+ }
137
+ if (!['claude-code', 'opencode', 'cursor', 'windsurf'].includes(agent)) {
138
+ console.error(`Unknown agent: ${agent}`);
139
+ console.log(`Usage: install-adapter.ts --agent [claude-code|opencode|cursor|windsurf] [--dry-run] [--project <path>]`);
140
+ process.exit(1);
141
+ }
142
+ installAdapter({
143
+ agent: agent,
144
+ projectRoot,
145
+ dryRun
146
+ });
147
+ }
148
+ export { installAdapter, AGENT_CONFIG_PATHS, MCP_CONFIGS };
149
+ //# sourceMappingURL=install-adapter.js.map
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Timeline Implementation - 3-Layer Progressive Disclosure
3
+ *
4
+ * Provides timeline functionality for MCP tool with depth parameter.
5
+ * Layer 1 (index): ~50 tokens - memory titles only
6
+ * Layer 2 (timeline): ~200 tokens - titles + timestamps + tags
7
+ * Layer 3 (detail): ~2000 tokens - full content
8
+ */
9
+ import { TimelineDepth } from './types.js';
10
+ /**
11
+ * Get timeline with progressive disclosure
12
+ */
13
+ export declare function getTimeline(query: string, depth?: TimelineDepth, limit?: number, project?: string): Promise<{
14
+ results: unknown[];
15
+ layer: TimelineDepth;
16
+ tokenEstimate: number;
17
+ query: string;
18
+ }>;
19
+ /**
20
+ * Get memory by ID with optional depth
21
+ */
22
+ export declare function getMemoryTimeline(memoryId: string, depth?: TimelineDepth): Promise<unknown>;
23
+ //# sourceMappingURL=timeline.d.ts.map
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Timeline Implementation - 3-Layer Progressive Disclosure
3
+ *
4
+ * Provides timeline functionality for MCP tool with depth parameter.
5
+ * Layer 1 (index): ~50 tokens - memory titles only
6
+ * Layer 2 (timeline): ~200 tokens - titles + timestamps + tags
7
+ * Layer 3 (detail): ~2000 tokens - full content
8
+ */
9
+ import { search as searchMemories, getMemory } from '../memory/memories.js';
10
+ /** Token estimates per layer */
11
+ const LAYER_TOKENS = {
12
+ index: 50,
13
+ timeline: 200,
14
+ detail: 2000,
15
+ };
16
+ /**
17
+ * Get timeline with progressive disclosure
18
+ */
19
+ export async function getTimeline(query, depth = 'index', limit = 10, project) {
20
+ // First get search results
21
+ const memories = await searchMemories({
22
+ query,
23
+ project,
24
+ limit,
25
+ });
26
+ // Format based on depth
27
+ let results;
28
+ let tokenEstimate = 0;
29
+ switch (depth) {
30
+ case 'index':
31
+ results = memories.map(m => ({
32
+ id: m.id,
33
+ title: `${m.type}: ${m.content?.substring(0, 60)}...`,
34
+ }));
35
+ tokenEstimate = results.length * (LAYER_TOKENS.index / Math.max(results.length, 1));
36
+ break;
37
+ case 'timeline':
38
+ results = memories.map(m => ({
39
+ id: m.id,
40
+ type: m.type,
41
+ content: m.content?.substring(0, 100),
42
+ tags: m.tags,
43
+ createdAt: m.createdAt,
44
+ }));
45
+ tokenEstimate = results.length * (LAYER_TOKENS.timeline / Math.max(results.length, 1));
46
+ break;
47
+ case 'detail':
48
+ results = await Promise.all(memories.map(async (m) => {
49
+ const full = await getMemory(m.id);
50
+ return full || { id: m.id, error: 'Not found' };
51
+ }));
52
+ tokenEstimate = LAYER_TOKENS.detail;
53
+ break;
54
+ }
55
+ return {
56
+ results,
57
+ layer: depth,
58
+ tokenEstimate,
59
+ query,
60
+ };
61
+ }
62
+ /**
63
+ * Get memory by ID with optional depth
64
+ */
65
+ export async function getMemoryTimeline(memoryId, depth = 'detail') {
66
+ const memory = await getMemory(memoryId);
67
+ if (!memory) {
68
+ return { error: 'Memory not found', id: memoryId };
69
+ }
70
+ if (depth === 'index') {
71
+ return {
72
+ id: memory.id,
73
+ title: `${memory.type}: ${memory.content?.substring(0, 60)}...`,
74
+ };
75
+ }
76
+ if (depth === 'timeline') {
77
+ return {
78
+ id: memory.id,
79
+ type: memory.type,
80
+ content: memory.content?.substring(0, 100),
81
+ tags: memory.tags,
82
+ createdAt: memory.createdAt,
83
+ };
84
+ }
85
+ // detail
86
+ return memory;
87
+ }
88
+ //# sourceMappingURL=timeline.js.map