squish-memory 0.8.2 → 0.9.1

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 (266) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/.env.mcp +30 -0
  4. package/.mcp.json +2 -5
  5. package/CHANGELOG.md +111 -0
  6. package/QUICK-START.md +65 -0
  7. package/README.md +188 -530
  8. package/commands/managed-sync.ts +69 -0
  9. package/commands/mcp-server.ts +519 -0
  10. package/config/mcp-cli-fallback-policy.json +22 -0
  11. package/config/mcp-migration-map.json +22 -0
  12. package/config/mcp-mode-semantics.json +21 -0
  13. package/config/mcp-remote-auth.json +36 -0
  14. package/config/mcp-universal.schema.json +48 -0
  15. package/config/mcp.json +38 -0
  16. package/config/remote-memory-policy.json +32 -0
  17. package/dist/algorithms/merge/detection/hash-filters.js +2 -2
  18. package/dist/algorithms/merge/detection/hash-filters.js.map +1 -1
  19. package/dist/algorithms/merge/detection/two-stage-detector.d.ts +5 -2
  20. package/dist/algorithms/merge/detection/two-stage-detector.d.ts.map +1 -1
  21. package/dist/algorithms/merge/detection/two-stage-detector.js +139 -22
  22. package/dist/algorithms/merge/detection/two-stage-detector.js.map +1 -1
  23. package/dist/commands/managed-sync.d.ts +10 -0
  24. package/dist/commands/managed-sync.d.ts.map +1 -0
  25. package/dist/commands/managed-sync.js +64 -0
  26. package/dist/commands/managed-sync.js.map +1 -0
  27. package/dist/commands/mcp-server.d.ts +3 -0
  28. package/dist/commands/mcp-server.d.ts.map +1 -0
  29. package/dist/commands/mcp-server.js +389 -0
  30. package/dist/commands/mcp-server.js.map +1 -0
  31. package/dist/config.d.ts +24 -1
  32. package/dist/config.d.ts.map +1 -1
  33. package/dist/config.js +32 -1
  34. package/dist/config.js.map +1 -1
  35. package/dist/core/associations.d.ts +1 -1
  36. package/dist/core/associations.d.ts.map +1 -1
  37. package/dist/core/consolidation.d.ts +31 -0
  38. package/dist/core/consolidation.d.ts.map +1 -1
  39. package/dist/core/consolidation.js +237 -29
  40. package/dist/core/consolidation.js.map +1 -1
  41. package/dist/core/embeddings/google-multimodal.d.ts +14 -0
  42. package/dist/core/embeddings/google-multimodal.d.ts.map +1 -0
  43. package/dist/core/embeddings/google-multimodal.js +142 -0
  44. package/dist/core/embeddings/google-multimodal.js.map +1 -0
  45. package/dist/core/embeddings.d.ts +3 -2
  46. package/dist/core/embeddings.d.ts.map +1 -1
  47. package/dist/core/embeddings.js +61 -39
  48. package/dist/core/embeddings.js.map +1 -1
  49. package/dist/core/mcp/client.d.ts +17 -0
  50. package/dist/core/mcp/client.d.ts.map +1 -0
  51. package/dist/core/mcp/client.js +101 -0
  52. package/dist/core/mcp/client.js.map +1 -0
  53. package/dist/core/mcp/index.d.ts +6 -0
  54. package/dist/core/mcp/index.d.ts.map +1 -0
  55. package/dist/core/mcp/index.js +6 -0
  56. package/dist/core/mcp/index.js.map +1 -0
  57. package/dist/core/mcp/server.d.ts +18 -0
  58. package/dist/core/mcp/server.d.ts.map +1 -0
  59. package/dist/core/mcp/server.js +131 -0
  60. package/dist/core/mcp/server.js.map +1 -0
  61. package/dist/core/mcp/standalone-server.d.ts +13 -0
  62. package/dist/core/mcp/standalone-server.d.ts.map +1 -0
  63. package/dist/core/mcp/standalone-server.js +46 -0
  64. package/dist/core/mcp/standalone-server.js.map +1 -0
  65. package/dist/core/mcp/tools.d.ts +9 -0
  66. package/dist/core/mcp/tools.d.ts.map +1 -0
  67. package/dist/core/mcp/tools.js +262 -0
  68. package/dist/core/mcp/tools.js.map +1 -0
  69. package/dist/core/mcp/types.d.ts +315 -0
  70. package/dist/core/mcp/types.d.ts.map +1 -0
  71. package/dist/core/mcp/types.js +48 -0
  72. package/dist/core/mcp/types.js.map +1 -0
  73. package/dist/core/memory/categorizer.d.ts +27 -0
  74. package/dist/core/memory/categorizer.d.ts.map +1 -0
  75. package/dist/core/memory/categorizer.js +304 -0
  76. package/dist/core/memory/categorizer.js.map +1 -0
  77. package/dist/core/memory/conflict-detector.d.ts +7 -0
  78. package/dist/core/memory/conflict-detector.d.ts.map +1 -0
  79. package/dist/core/memory/conflict-detector.js +43 -0
  80. package/dist/core/memory/conflict-detector.js.map +1 -0
  81. package/dist/core/memory/context-collector.d.ts +10 -0
  82. package/dist/core/memory/context-collector.d.ts.map +1 -0
  83. package/dist/core/memory/context-collector.js +55 -0
  84. package/dist/core/memory/context-collector.js.map +1 -0
  85. package/dist/core/memory/contradiction-resolver.d.ts +40 -0
  86. package/dist/core/memory/contradiction-resolver.d.ts.map +1 -0
  87. package/dist/core/memory/contradiction-resolver.js +368 -0
  88. package/dist/core/memory/contradiction-resolver.js.map +1 -0
  89. package/dist/core/memory/edit-workflow.d.ts +19 -0
  90. package/dist/core/memory/edit-workflow.d.ts.map +1 -0
  91. package/dist/core/memory/edit-workflow.js +120 -0
  92. package/dist/core/memory/edit-workflow.js.map +1 -0
  93. package/dist/core/memory/feedback-tracker.d.ts +12 -0
  94. package/dist/core/memory/feedback-tracker.d.ts.map +1 -0
  95. package/dist/core/memory/feedback-tracker.js +151 -0
  96. package/dist/core/memory/feedback-tracker.js.map +1 -0
  97. package/dist/core/memory/hybrid-retrieval.d.ts +11 -12
  98. package/dist/core/memory/hybrid-retrieval.d.ts.map +1 -1
  99. package/dist/core/memory/hybrid-retrieval.js +56 -28
  100. package/dist/core/memory/hybrid-retrieval.js.map +1 -1
  101. package/dist/core/memory/hybrid-scorer.d.ts +5 -16
  102. package/dist/core/memory/hybrid-scorer.d.ts.map +1 -1
  103. package/dist/core/memory/hybrid-scorer.js +161 -125
  104. package/dist/core/memory/hybrid-scorer.js.map +1 -1
  105. package/dist/core/memory/hybrid-search.js +53 -19
  106. package/dist/core/memory/hybrid-search.js.map +1 -1
  107. package/dist/core/memory/memories.d.ts +4 -0
  108. package/dist/core/memory/memories.d.ts.map +1 -1
  109. package/dist/core/memory/memories.js +133 -60
  110. package/dist/core/memory/memories.js.map +1 -1
  111. package/dist/core/memory/progressive-disclosure.d.ts +43 -0
  112. package/dist/core/memory/progressive-disclosure.d.ts.map +1 -0
  113. package/dist/core/memory/progressive-disclosure.js +280 -0
  114. package/dist/core/memory/progressive-disclosure.js.map +1 -0
  115. package/dist/core/memory/query-rewriter.d.ts +13 -0
  116. package/dist/core/memory/query-rewriter.d.ts.map +1 -0
  117. package/dist/core/memory/query-rewriter.js +118 -0
  118. package/dist/core/memory/query-rewriter.js.map +1 -0
  119. package/dist/core/memory/response-analyzer.d.ts +9 -0
  120. package/dist/core/memory/response-analyzer.d.ts.map +1 -0
  121. package/dist/core/memory/response-analyzer.js +61 -0
  122. package/dist/core/memory/response-analyzer.js.map +1 -0
  123. package/dist/core/memory/stats.d.ts +17 -0
  124. package/dist/core/memory/stats.d.ts.map +1 -0
  125. package/dist/core/memory/stats.js +87 -0
  126. package/dist/core/memory/stats.js.map +1 -0
  127. package/dist/core/memory/telemetry.d.ts +69 -0
  128. package/dist/core/memory/telemetry.d.ts.map +1 -0
  129. package/dist/core/memory/telemetry.js +313 -0
  130. package/dist/core/memory/telemetry.js.map +1 -0
  131. package/dist/core/memory/temporal-facts.d.ts +41 -0
  132. package/dist/core/memory/temporal-facts.d.ts.map +1 -0
  133. package/dist/core/memory/temporal-facts.js +262 -0
  134. package/dist/core/memory/temporal-facts.js.map +1 -0
  135. package/dist/core/memory/trigger-detector.d.ts +14 -0
  136. package/dist/core/memory/trigger-detector.d.ts.map +1 -0
  137. package/dist/core/memory/trigger-detector.js +42 -0
  138. package/dist/core/memory/trigger-detector.js.map +1 -0
  139. package/dist/core/memory/write-gate.d.ts +54 -0
  140. package/dist/core/memory/write-gate.d.ts.map +1 -0
  141. package/dist/core/memory/write-gate.js +210 -0
  142. package/dist/core/memory/write-gate.js.map +1 -0
  143. package/dist/core/projects.d.ts +2 -0
  144. package/dist/core/projects.d.ts.map +1 -1
  145. package/dist/core/projects.js +33 -0
  146. package/dist/core/projects.js.map +1 -1
  147. package/dist/core/scheduler/cron-scheduler.d.ts +32 -0
  148. package/dist/core/scheduler/cron-scheduler.d.ts.map +1 -0
  149. package/dist/core/scheduler/cron-scheduler.js +238 -0
  150. package/dist/core/scheduler/cron-scheduler.js.map +1 -0
  151. package/dist/core/scheduler/heartbeat.d.ts +11 -0
  152. package/dist/core/scheduler/heartbeat.d.ts.map +1 -0
  153. package/dist/core/scheduler/heartbeat.js +73 -0
  154. package/dist/core/scheduler/heartbeat.js.map +1 -0
  155. package/dist/core/scheduler/index.d.ts +8 -0
  156. package/dist/core/scheduler/index.d.ts.map +1 -0
  157. package/dist/core/scheduler/index.js +8 -0
  158. package/dist/core/scheduler/index.js.map +1 -0
  159. package/dist/core/scheduler/job-runner.d.ts +11 -0
  160. package/dist/core/scheduler/job-runner.d.ts.map +1 -0
  161. package/dist/core/scheduler/job-runner.js +161 -0
  162. package/dist/core/scheduler/job-runner.js.map +1 -0
  163. package/dist/core/session/auto-load.d.ts +6 -0
  164. package/dist/core/session/auto-load.d.ts.map +1 -0
  165. package/dist/core/session/auto-load.js +119 -0
  166. package/dist/core/session/auto-load.js.map +1 -0
  167. package/dist/core/session/index.d.ts +7 -0
  168. package/dist/core/session/index.d.ts.map +1 -0
  169. package/dist/core/session/index.js +7 -0
  170. package/dist/core/session/index.js.map +1 -0
  171. package/dist/core/session/types.d.ts +26 -0
  172. package/dist/core/session/types.d.ts.map +1 -0
  173. package/dist/core/session/types.js +10 -0
  174. package/dist/core/session/types.js.map +1 -0
  175. package/dist/core/snapshots/comparison.d.ts.map +1 -1
  176. package/dist/core/snapshots/comparison.js +8 -2
  177. package/dist/core/snapshots/comparison.js.map +1 -1
  178. package/dist/core/utils/content-extraction.d.ts.map +1 -1
  179. package/dist/core/utils/content-extraction.js +11 -1
  180. package/dist/core/utils/content-extraction.js.map +1 -1
  181. package/dist/core/utils/summarization-helpers.d.ts.map +1 -1
  182. package/dist/core/utils/summarization-helpers.js +4 -1
  183. package/dist/core/utils/summarization-helpers.js.map +1 -1
  184. package/dist/core/utils.d.ts.map +1 -1
  185. package/dist/core/utils.js +26 -3
  186. package/dist/core/utils.js.map +1 -1
  187. package/dist/core/worker.d.ts +20 -0
  188. package/dist/core/worker.d.ts.map +1 -1
  189. package/dist/core/worker.js +86 -0
  190. package/dist/core/worker.js.map +1 -1
  191. package/dist/db/adapter.d.ts +1 -5
  192. package/dist/db/adapter.d.ts.map +1 -1
  193. package/dist/db/adapter.js +125 -12
  194. package/dist/db/adapter.js.map +1 -1
  195. package/dist/db/bootstrap.d.ts.map +1 -1
  196. package/dist/db/bootstrap.js +178 -3
  197. package/dist/db/bootstrap.js.map +1 -1
  198. package/dist/db/index.d.ts +1 -5
  199. package/dist/db/index.d.ts.map +1 -1
  200. package/dist/db/index.js +7 -4
  201. package/dist/db/index.js.map +1 -1
  202. package/dist/drizzle/schema-sqlite.d.ts +1953 -612
  203. package/dist/drizzle/schema-sqlite.d.ts.map +1 -1
  204. package/dist/drizzle/schema-sqlite.js +134 -0
  205. package/dist/drizzle/schema-sqlite.js.map +1 -1
  206. package/dist/drizzle/schema.d.ts +684 -3
  207. package/dist/drizzle/schema.d.ts.map +1 -1
  208. package/dist/drizzle/schema.js +81 -1
  209. package/dist/drizzle/schema.js.map +1 -1
  210. package/dist/index.d.ts +3 -3
  211. package/dist/index.js +152 -13
  212. package/dist/index.js.map +1 -1
  213. package/package.json +125 -103
  214. package/scripts/build-release.sh +33 -0
  215. package/scripts/db/check-db.mjs +88 -0
  216. package/scripts/db/fix-all-columns.mjs +52 -0
  217. package/scripts/db/fix-schema-all.mjs +55 -0
  218. package/scripts/db/fix-schema-full.mjs +46 -0
  219. package/scripts/db/fix-schema.mjs +38 -0
  220. package/scripts/db/init-db.mjs +13 -0
  221. package/scripts/db/recreate-db.mjs +14 -0
  222. package/scripts/generate-mcp.mjs +264 -0
  223. package/scripts/github-release.sh +61 -0
  224. package/scripts/init-dirs.mjs +13 -0
  225. package/scripts/init-dirs.ts +15 -0
  226. package/scripts/install-mcp.mjs +116 -0
  227. package/scripts/install-web.sh +120 -0
  228. package/scripts/install.mjs +340 -0
  229. package/scripts/openclaw-bootstrap.mjs +127 -0
  230. package/scripts/package-release.sh +71 -0
  231. package/scripts/remote-preflight.mjs +62 -0
  232. package/scripts/squish-fallback.mjs +132 -0
  233. package/scripts/test/test-all-systems.mjs +139 -0
  234. package/scripts/test/test-memory-system.mjs +139 -0
  235. package/scripts/test/test-v0.5.0.mjs +210 -0
  236. package/scripts/verify-mcp.mjs +214 -0
  237. package/skills/memory-guide/SKILL.md +181 -123
  238. package/skills/squish-cli/SKILL.md +200 -0
  239. package/skills/squish-mcp/SKILL.md +311 -0
  240. package/skills/squish-memory/SKILL.md +100 -62
  241. package/skills/squish-memory/claude-desktop.json +12 -0
  242. package/skills/squish-memory/install.mjs +335 -0
  243. package/skills/squish-memory/install.sh +94 -62
  244. package/skills/squish-memory/openclaw.json +13 -0
  245. package/skills/squish-memory/opencode.json +14 -0
  246. package/skills/squish-memory/skill.json +32 -0
  247. package/dist/adapters/claude-code/capture.d.ts +0 -11
  248. package/dist/adapters/claude-code/capture.d.ts.map +0 -1
  249. package/dist/adapters/claude-code/capture.js +0 -100
  250. package/dist/adapters/claude-code/capture.js.map +0 -1
  251. package/dist/adapters/claude-code/index.d.ts +0 -5
  252. package/dist/adapters/claude-code/index.d.ts.map +0 -1
  253. package/dist/adapters/claude-code/index.js +0 -6
  254. package/dist/adapters/claude-code/index.js.map +0 -1
  255. package/dist/adapters/claude-code/injection.d.ts +0 -34
  256. package/dist/adapters/claude-code/injection.d.ts.map +0 -1
  257. package/dist/adapters/claude-code/injection.js +0 -127
  258. package/dist/adapters/claude-code/injection.js.map +0 -1
  259. package/dist/adapters/claude-code/plugin-wrapper.d.ts +0 -21
  260. package/dist/adapters/claude-code/plugin-wrapper.d.ts.map +0 -1
  261. package/dist/adapters/claude-code/plugin-wrapper.js +0 -239
  262. package/dist/adapters/claude-code/plugin-wrapper.js.map +0 -1
  263. package/dist/adapters/claude-code/types.d.ts +0 -46
  264. package/dist/adapters/claude-code/types.d.ts.map +0 -1
  265. package/dist/adapters/claude-code/types.js +0 -6
  266. package/dist/adapters/claude-code/types.js.map +0 -1
@@ -1,6 +1,2 @@
1
- export declare function createDb(): Promise<(import("drizzle-orm/node-postgres").NodePgDatabase<typeof import("../drizzle/schema.js")> & {
2
- $client: import("pg").Pool;
3
- }) | (import("drizzle-orm/better-sqlite3").BetterSQLite3Database<typeof import("../drizzle/schema-sqlite.js")> & {
4
- $client: import("better-sqlite3").Database;
5
- })>;
1
+ export declare function createDb(): Promise<any>;
6
2
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../db/adapter.ts"],"names":[],"mappings":"AAIA,wBAAsB,QAAQ;;;;IAQ7B"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../db/adapter.ts"],"names":[],"mappings":"AAOA,wBAAsB,QAAQ,iBAM7B"}
@@ -1,13 +1,13 @@
1
1
  import { config, getDataDir } from '../config.js';
2
2
  import { ensurePostgresSchema, ensureSqliteSchema } from './bootstrap.js';
3
3
  import { logger } from '../core/logger.js';
4
+ // Runtime detection - check if running in Bun
5
+ const isBun = typeof globalThis.Bun !== 'undefined';
4
6
  export async function createDb() {
5
7
  if (config.isTeamMode) {
6
- // PostgreSQL mode
7
8
  return createPostgresDb();
8
9
  }
9
10
  else {
10
- // SQLite mode
11
11
  return createSqliteDb();
12
12
  }
13
13
  }
@@ -23,21 +23,134 @@ async function createPostgresDb() {
23
23
  return drizzle(pool, { schema: schemaModule });
24
24
  }
25
25
  async function createSqliteDb() {
26
+ const dbPath = `${getDataDir()}/squish.db`;
27
+ // Try Bun's built-in SQLite first if running in Bun
28
+ if (isBun) {
29
+ try {
30
+ return await createBunSqliteDb(dbPath);
31
+ }
32
+ catch (error) {
33
+ logger.warn('Bun SQLite failed, trying better-sqlite3 fallback', { error: String(error) });
34
+ }
35
+ }
36
+ // Fallback to better-sqlite3 for Node.js
26
37
  try {
27
- const DatabaseModule = await import('better-sqlite3');
28
- const Database = DatabaseModule.default;
29
- const { drizzle } = await import('drizzle-orm/better-sqlite3');
30
- const schemaModule = await import('../drizzle/schema-sqlite.js');
31
- const dbPath = `${getDataDir()}/squish.db`;
32
- const sqlite = new Database(dbPath);
33
- // Enable foreign keys
34
- sqlite.pragma('foreign_keys = ON');
35
- await ensureSqliteSchema(sqlite);
36
- return drizzle(sqlite, { schema: schemaModule });
38
+ return await createBetterSqliteDb(dbPath);
37
39
  }
38
40
  catch (error) {
39
41
  logger.error('SQLite initialization failed', error);
40
42
  throw new Error(`SQLite database unavailable: ${error instanceof Error ? error.message : 'Unknown error'}`);
41
43
  }
42
44
  }
45
+ async function createBunSqliteDb(dbPath) {
46
+ // Dynamic import for Bun runtime - wrapped to avoid TS issues
47
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
48
+ // @ts-ignore - bun:sqlite is only available in Bun runtime
49
+ const { Database } = await import('bun:sqlite');
50
+ const { drizzle } = await import('drizzle-orm/bun-sqlite');
51
+ const schemaModule = await import('../drizzle/schema-sqlite.js');
52
+ const sqlite = new Database(dbPath);
53
+ // Enable foreign keys
54
+ sqlite.run('PRAGMA foreign_keys = ON');
55
+ // Run full schema bootstrap from bootstrap.ts (includes ALL tables)
56
+ await ensureSqliteSchema(sqlite);
57
+ return drizzle(sqlite, { schema: schemaModule });
58
+ }
59
+ async function createBetterSqliteDb(dbPath) {
60
+ const DatabaseModule = await import('better-sqlite3');
61
+ const Database = DatabaseModule.default;
62
+ const { drizzle } = await import('drizzle-orm/better-sqlite3');
63
+ const schemaModule = await import('../drizzle/schema-sqlite.js');
64
+ const sqlite = new Database(dbPath);
65
+ // Enable foreign keys
66
+ sqlite.pragma('foreign_keys = ON');
67
+ await ensureSqliteSchema(sqlite);
68
+ return drizzle(sqlite, { schema: schemaModule });
69
+ }
70
+ // Bun-specific schema bootstrap
71
+ function ensureSqliteSchemaForBun(sqlite) {
72
+ const createMemoriesTable = `
73
+ CREATE TABLE IF NOT EXISTS memories (
74
+ id TEXT PRIMARY KEY,
75
+ project_id TEXT,
76
+ type TEXT NOT NULL DEFAULT 'observation',
77
+ content TEXT NOT NULL,
78
+ summary TEXT,
79
+ tags TEXT,
80
+ metadata TEXT,
81
+ embedding BLOB,
82
+ embedding_json TEXT,
83
+ source TEXT DEFAULT 'mcp',
84
+ tier TEXT DEFAULT 'warm',
85
+ status TEXT DEFAULT 'active',
86
+ importance_score REAL DEFAULT 50,
87
+ relevance_score REAL,
88
+ coactivation_score INTEGER DEFAULT 0,
89
+ access_count INTEGER DEFAULT 0,
90
+ retrieval_count INTEGER DEFAULT 0,
91
+ echo_count INTEGER DEFAULT 0,
92
+ fizzle_count INTEGER DEFAULT 0,
93
+ is_pinned INTEGER DEFAULT 0,
94
+ is_protected INTEGER DEFAULT 0,
95
+ is_immutable INTEGER DEFAULT 0,
96
+ is_mergeable INTEGER DEFAULT 0,
97
+ is_merged INTEGER DEFAULT 0,
98
+ merged_into TEXT,
99
+ merged_at TEXT,
100
+ superseded_by TEXT,
101
+ superseded_at TEXT,
102
+ valid_from TEXT,
103
+ valid_to TEXT,
104
+ expired_at TEXT,
105
+ last_accessed_at TEXT,
106
+ last_retrieved_at TEXT,
107
+ last_echoed_at TEXT,
108
+ last_importance_recalc TEXT,
109
+ created_at TEXT DEFAULT CURRENT_TIMESTAMP,
110
+ updated_at TEXT DEFAULT CURRENT_TIMESTAMP
111
+ )
112
+ `;
113
+ const createProjectsTable = `
114
+ CREATE TABLE IF NOT EXISTS projects (
115
+ id TEXT PRIMARY KEY,
116
+ name TEXT NOT NULL,
117
+ path TEXT UNIQUE,
118
+ description TEXT,
119
+ metadata TEXT,
120
+ created_at TEXT DEFAULT CURRENT_TIMESTAMP,
121
+ updated_at TEXT DEFAULT CURRENT_TIMESTAMP
122
+ )
123
+ `;
124
+ const createAssociationsTable = `
125
+ CREATE TABLE IF NOT EXISTS memory_associations (
126
+ id TEXT PRIMARY KEY,
127
+ from_memory_id TEXT NOT NULL,
128
+ to_memory_id TEXT NOT NULL,
129
+ association_type TEXT NOT NULL,
130
+ weight REAL DEFAULT 1,
131
+ coactivation_count INTEGER DEFAULT 1,
132
+ last_coactivated_at TEXT,
133
+ created_at TEXT DEFAULT CURRENT_TIMESTAMP,
134
+ UNIQUE(from_memory_id, to_memory_id)
135
+ )
136
+ `;
137
+ sqlite.run(createMemoriesTable);
138
+ sqlite.run(createProjectsTable);
139
+ sqlite.run(createAssociationsTable);
140
+ // FTS is optional - don't fail if it doesn't work
141
+ try {
142
+ sqlite.run(`
143
+ CREATE VIRTUAL TABLE IF NOT EXISTS memories_fts USING fts5(
144
+ content,
145
+ summary,
146
+ content='memories',
147
+ content_rowid='rowid'
148
+ )
149
+ `);
150
+ }
151
+ catch (e) {
152
+ logger.debug('FTS5 table creation skipped', { error: e?.message || String(e) });
153
+ }
154
+ logger.info('SQLite schema initialized (Bun runtime)');
155
+ }
43
156
  //# sourceMappingURL=adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../db/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,kBAAkB;QAClB,OAAO,gBAAgB,EAAE,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,cAAc;QACd,OAAO,cAAc,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;QACpB,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;QAC1C,GAAG,EAAE,EAAE;KACR,CAAC,CAAC;IAEH,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAEjC,OAAO,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,cAAc;IAC3B,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC;QACxC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAEjE,MAAM,MAAM,GAAG,GAAG,UAAU,EAAE,YAAY,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEpC,sBAAsB;QACtB,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAEnC,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEjC,OAAO,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9G,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../db/adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../db/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AA4b/B;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAWzD;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAMxE;AAiDD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpE"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../db/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AA6hB/B;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAWzD;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAMxE;AA+HD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpE"}
@@ -1,6 +1,11 @@
1
1
  import { existsSync, mkdirSync } from 'fs';
2
2
  import { logger } from '../core/logger.js';
3
3
  import { getDataDir } from '../config.js';
4
+ /**
5
+ * Note on boolean columns:
6
+ * SQLite uses INTEGER 0/1 for boolean values (no native boolean type)
7
+ * PostgreSQL uses native BOOLEAN type
8
+ */
4
9
  const sqliteSchemaSql = `
5
10
  PRAGMA foreign_keys = ON;
6
11
 
@@ -90,6 +95,19 @@ CREATE INDEX IF NOT EXISTS memories_type_idx ON memories(type);
90
95
  CREATE INDEX IF NOT EXISTS memories_created_idx ON memories(created_at);
91
96
  CREATE INDEX IF NOT EXISTS memories_tags_idx ON memories(tags);
92
97
 
98
+ CREATE TABLE IF NOT EXISTS memory_associations (
99
+ id TEXT PRIMARY KEY,
100
+ from_memory_id TEXT NOT NULL,
101
+ to_memory_id TEXT NOT NULL,
102
+ association_type TEXT NOT NULL,
103
+ weight REAL DEFAULT 1,
104
+ coactivation_count INTEGER DEFAULT 1,
105
+ metadata TEXT,
106
+ last_coactivated_at INTEGER,
107
+ created_at INTEGER DEFAULT (strftime('%s','now')) NOT NULL,
108
+ UNIQUE(from_memory_id, to_memory_id)
109
+ );
110
+
93
111
  CREATE TABLE IF NOT EXISTS conversations (
94
112
  id TEXT PRIMARY KEY,
95
113
  project_id TEXT REFERENCES projects(id) ON DELETE CASCADE,
@@ -436,7 +454,85 @@ const postgresStatements = [
436
454
  );`,
437
455
  `CREATE INDEX IF NOT EXISTS relations_from_idx ON entity_relations(from_entity_id);`,
438
456
  `CREATE INDEX IF NOT EXISTS relations_to_idx ON entity_relations(to_entity_id);`,
439
- `CREATE INDEX IF NOT EXISTS relations_type_idx ON entity_relations(type);`
457
+ `CREATE INDEX IF NOT EXISTS relations_type_idx ON entity_relations(type);`,
458
+ `CREATE TABLE IF NOT EXISTS core_memory (
459
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
460
+ project_id UUID REFERENCES projects(id) ON DELETE CASCADE,
461
+ user_id UUID REFERENCES users(id) ON DELETE SET NULL,
462
+ section TEXT NOT NULL,
463
+ content TEXT NOT NULL DEFAULT '',
464
+ size_bytes INTEGER DEFAULT 0 NOT NULL,
465
+ version INTEGER DEFAULT 1 NOT NULL,
466
+ created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
467
+ updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
468
+ );`,
469
+ `CREATE INDEX IF NOT EXISTS core_memory_project_idx ON core_memory(project_id);`,
470
+ `CREATE INDEX IF NOT EXISTS core_memory_user_idx ON core_memory(user_id);`,
471
+ `CREATE INDEX IF NOT EXISTS core_memory_section_idx ON core_memory(section);`,
472
+ `CREATE TABLE IF NOT EXISTS context_sessions (
473
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
474
+ session_id TEXT NOT NULL UNIQUE,
475
+ project_id UUID REFERENCES projects(id) ON DELETE CASCADE,
476
+ user_id UUID REFERENCES users(id) ON DELETE SET NULL,
477
+ loaded_memory_ids JSONB,
478
+ token_budget INTEGER DEFAULT 8000 NOT NULL,
479
+ tokens_used INTEGER DEFAULT 0 NOT NULL,
480
+ core_memory_tokens INTEGER DEFAULT 0 NOT NULL,
481
+ loaded_memories_tokens INTEGER DEFAULT 0 NOT NULL,
482
+ metadata JSONB,
483
+ created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
484
+ updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
485
+ );`,
486
+ `CREATE INDEX IF NOT EXISTS context_sessions_session_idx ON context_sessions(session_id);`,
487
+ `CREATE INDEX IF NOT EXISTS context_sessions_project_idx ON context_sessions(project_id);`,
488
+ `CREATE INDEX IF NOT EXISTS context_sessions_created_idx ON context_sessions(created_at);`,
489
+ `CREATE TABLE IF NOT EXISTS memory_merge_proposals (
490
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
491
+ project_id UUID NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
492
+ user_id UUID REFERENCES users(id) ON DELETE SET NULL,
493
+ source_memory_ids TEXT NOT NULL,
494
+ proposed_content TEXT NOT NULL,
495
+ proposed_summary TEXT,
496
+ proposed_tags TEXT[],
497
+ proposed_metadata JSONB,
498
+ detection_method TEXT NOT NULL,
499
+ similarity_score TEXT NOT NULL,
500
+ confidence_level TEXT NOT NULL,
501
+ merge_reason TEXT NOT NULL,
502
+ conflict_warnings JSONB,
503
+ status TEXT DEFAULT 'pending' NOT NULL,
504
+ reviewed_at TIMESTAMPTZ,
505
+ review_notes TEXT,
506
+ created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
507
+ expires_at TIMESTAMPTZ
508
+ );`,
509
+ `CREATE INDEX IF NOT EXISTS memory_merge_proposals_project_status_idx ON memory_merge_proposals(project_id, status);`,
510
+ `CREATE INDEX IF NOT EXISTS memory_merge_proposals_created_at_idx ON memory_merge_proposals(created_at);`,
511
+ `CREATE TABLE IF NOT EXISTS memory_merge_history (
512
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
513
+ project_id UUID NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
514
+ user_id UUID REFERENCES users(id) ON DELETE SET NULL,
515
+ proposal_id UUID REFERENCES memory_merge_proposals(id) ON DELETE SET NULL,
516
+ source_memory_ids TEXT NOT NULL,
517
+ canonical_memory_id UUID NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
518
+ source_memories_snapshot JSONB NOT NULL,
519
+ merge_strategy TEXT NOT NULL,
520
+ tokens_saved INTEGER,
521
+ is_reversed BOOLEAN DEFAULT FALSE,
522
+ reversed_at TIMESTAMPTZ,
523
+ reversed_by UUID,
524
+ merged_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
525
+ );`,
526
+ `CREATE TABLE IF NOT EXISTS memory_hash_cache (
527
+ memory_id UUID PRIMARY KEY REFERENCES memories(id) ON DELETE CASCADE,
528
+ project_id UUID NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
529
+ simhash TEXT,
530
+ minhash TEXT,
531
+ content_hash TEXT NOT NULL,
532
+ last_updated TIMESTAMPTZ DEFAULT NOW() NOT NULL
533
+ );`,
534
+ `CREATE INDEX IF NOT EXISTS memory_hash_cache_project_id_idx ON memory_hash_cache(project_id);`,
535
+ `CREATE INDEX IF NOT EXISTS memory_hash_cache_simhash_idx ON memory_hash_cache(simhash);`
440
536
  ];
441
537
  /**
442
538
  * Ensure the data directory exists (.squish folder in project root)
@@ -489,6 +585,79 @@ async function runSqliteMigrations(sqlite) {
489
585
  { col: 'consolidated_into', sql: 'ALTER TABLE memories ADD COLUMN consolidated_into TEXT' },
490
586
  { col: 'consolidated_at', sql: 'ALTER TABLE memories ADD COLUMN consolidated_at INTEGER' },
491
587
  { col: 'is_consolidated', sql: 'ALTER TABLE memories ADD COLUMN is_consolidated INTEGER DEFAULT 0' },
588
+ { col: 'merged_at', sql: 'ALTER TABLE memories ADD COLUMN merged_at INTEGER' },
589
+ { col: 'sector', sql: 'ALTER TABLE memories ADD COLUMN sector TEXT DEFAULT "episodic"' },
590
+ { col: 'tier', sql: 'ALTER TABLE memories ADD COLUMN tier TEXT DEFAULT "hot"' },
591
+ { col: 'context_status', sql: 'ALTER TABLE memories ADD COLUMN context_status TEXT DEFAULT "out-of-context"' },
592
+ { col: 'decay_rate', sql: 'ALTER TABLE memories ADD COLUMN decay_rate INTEGER DEFAULT 30' },
593
+ { col: 'coactivation_score', sql: 'ALTER TABLE memories ADD COLUMN coactivation_score INTEGER DEFAULT 0' },
594
+ { col: 'last_decay_at', sql: 'ALTER TABLE memories ADD COLUMN last_decay_at INTEGER DEFAULT (strftime(\'%s\',\'now\'))' },
595
+ { col: 'agent_id', sql: 'ALTER TABLE memories ADD COLUMN agent_id TEXT' },
596
+ { col: 'agent_role', sql: 'ALTER TABLE memories ADD COLUMN agent_role TEXT' },
597
+ { col: 'retrieval_priority', sql: 'ALTER TABLE memories ADD COLUMN retrieval_priority INTEGER DEFAULT 50' },
598
+ // v0.9.0: New schema columns
599
+ { col: 'recorded_at', sql: 'ALTER TABLE memories ADD COLUMN recorded_at INTEGER DEFAULT (strftime(\'%s\',\'now\'))' },
600
+ { col: 'confidence', sql: 'ALTER TABLE memories ADD COLUMN confidence INTEGER DEFAULT 100' },
601
+ { col: 'is_private', sql: 'ALTER TABLE memories ADD COLUMN is_private INTEGER DEFAULT 0' },
602
+ { col: 'has_secrets', sql: 'ALTER TABLE memories ADD COLUMN has_secrets INTEGER DEFAULT 0' },
603
+ { col: 'valid_from', sql: 'ALTER TABLE memories ADD COLUMN valid_from INTEGER' },
604
+ { col: 'valid_to', sql: 'ALTER TABLE memories ADD COLUMN valid_to INTEGER' },
605
+ { col: 'superseded_by', sql: 'ALTER TABLE memories ADD COLUMN superseded_by TEXT' },
606
+ { col: 'version', sql: 'ALTER TABLE memories ADD COLUMN version INTEGER DEFAULT 1' },
607
+ { col: 'merge_source_ids', sql: 'ALTER TABLE memories ADD COLUMN merge_source_ids TEXT' },
608
+ { col: 'merge_version', sql: 'ALTER TABLE memories ADD COLUMN merge_version INTEGER DEFAULT 1' },
609
+ { col: 'user_id', sql: 'ALTER TABLE memories ADD COLUMN user_id TEXT' },
610
+ { col: 'confidence', sql: 'ALTER TABLE memories ADD COLUMN confidence INTEGER DEFAULT 100' },
611
+ { col: 'is_active', sql: 'ALTER TABLE memories ADD COLUMN is_active INTEGER DEFAULT 1' },
612
+ { col: 'expires_at', sql: 'ALTER TABLE memories ADD COLUMN expires_at INTEGER' },
613
+ { col: 'decay_rate', sql: 'ALTER TABLE memories ADD COLUMN decay_rate INTEGER DEFAULT 30' },
614
+ { col: 'coactivation_score', sql: 'ALTER TABLE memories ADD COLUMN coactivation_score INTEGER DEFAULT 0' },
615
+ { col: 'last_decay_at', sql: 'ALTER TABLE memories ADD COLUMN last_decay_at INTEGER' },
616
+ { col: 'agent_id', sql: 'ALTER TABLE memories ADD COLUMN agent_id TEXT' },
617
+ { col: 'agent_role', sql: 'ALTER TABLE memories ADD COLUMN agent_role TEXT' },
618
+ { col: 'retrieval_priority', sql: 'ALTER TABLE memories ADD COLUMN retrieval_priority INTEGER DEFAULT 50' },
619
+ // v0.8.0: Consolidation
620
+ { col: 'consolidated_into', sql: 'ALTER TABLE memories ADD COLUMN consolidated_into TEXT' },
621
+ { col: 'consolidated_at', sql: 'ALTER TABLE memories ADD COLUMN consolidated_at INTEGER' },
622
+ { col: 'is_consolidated', sql: 'ALTER TABLE memories ADD COLUMN is_consolidated INTEGER DEFAULT 0' },
623
+ { col: 'merged_at', sql: 'ALTER TABLE memories ADD COLUMN merged_at INTEGER' },
624
+ { col: 'sector', sql: 'ALTER TABLE memories ADD COLUMN sector TEXT DEFAULT "episodic"' },
625
+ { col: 'tier', sql: 'ALTER TABLE memories ADD COLUMN tier TEXT DEFAULT "hot"' },
626
+ { col: 'context_status', sql: 'ALTER TABLE memories ADD COLUMN context_status TEXT DEFAULT "out-of-context"' },
627
+ { col: 'decay_rate', sql: 'ALTER TABLE memories ADD COLUMN decay_rate INTEGER DEFAULT 30' },
628
+ { col: 'coactivation_score', sql: 'ALTER TABLE memories ADD COLUMN coactivation_score INTEGER DEFAULT 0' },
629
+ { col: 'last_decay_at', sql: 'ALTER TABLE memories ADD COLUMN last_decay_at INTEGER DEFAULT (strftime(\'%s\',\'now\'))' },
630
+ { col: 'agent_id', sql: 'ALTER TABLE memories ADD COLUMN agent_id TEXT' },
631
+ { col: 'agent_role', sql: 'ALTER TABLE memories ADD COLUMN agent_role TEXT' },
632
+ { col: 'visibility_scope', sql: 'ALTER TABLE memories ADD COLUMN visibility_scope TEXT DEFAULT "private"' },
633
+ { col: 'is_protected', sql: 'ALTER TABLE memories ADD COLUMN is_protected INTEGER DEFAULT 0' },
634
+ { col: 'is_pinned', sql: 'ALTER TABLE memories ADD COLUMN is_pinned INTEGER DEFAULT 0' },
635
+ { col: 'is_immutable', sql: 'ALTER TABLE memories ADD COLUMN is_immutable INTEGER DEFAULT 0' },
636
+ { col: 'write_scope', sql: 'ALTER TABLE memories ADD COLUMN write_scope TEXT' },
637
+ { col: 'read_scope', sql: 'ALTER TABLE memories ADD COLUMN read_scope TEXT' },
638
+ { col: 'triggered_by', sql: 'ALTER TABLE memories ADD COLUMN triggered_by TEXT' },
639
+ { col: 'capture_reason', sql: 'ALTER TABLE memories ADD COLUMN capture_reason TEXT' },
640
+ { col: 'last_used_at', sql: 'ALTER TABLE memories ADD COLUMN last_used_at INTEGER' },
641
+ { col: 'usage_count', sql: 'ALTER TABLE memories ADD COLUMN usage_count INTEGER DEFAULT 0' },
642
+ { col: 'valid_from', sql: 'ALTER TABLE memories ADD COLUMN valid_from INTEGER' },
643
+ { col: 'valid_to', sql: 'ALTER TABLE memories ADD COLUMN valid_to INTEGER' },
644
+ { col: 'superseded_by', sql: 'ALTER TABLE memories ADD COLUMN superseded_by TEXT' },
645
+ { col: 'version', sql: 'ALTER TABLE memories ADD COLUMN version INTEGER DEFAULT 1' },
646
+ { col: 'merge_source_ids', sql: 'ALTER TABLE memories ADD COLUMN merge_source_ids TEXT' },
647
+ { col: 'merge_version', sql: 'ALTER TABLE memories ADD COLUMN merge_version INTEGER DEFAULT 1' },
648
+ { col: 'user_id', sql: 'ALTER TABLE memories ADD COLUMN user_id TEXT' },
649
+ { col: 'confidence', sql: 'ALTER TABLE memories ADD COLUMN confidence INTEGER DEFAULT 100' },
650
+ { col: 'is_active', sql: 'ALTER TABLE memories ADD COLUMN is_active INTEGER DEFAULT 1' },
651
+ { col: 'expires_at', sql: 'ALTER TABLE memories ADD COLUMN expires_at INTEGER' },
652
+ { col: 'decay_rate', sql: 'ALTER TABLE memories ADD COLUMN decay_rate INTEGER DEFAULT 30' },
653
+ { col: 'coactivation_score', sql: 'ALTER TABLE memories ADD COLUMN coactivation_score INTEGER DEFAULT 0' },
654
+ { col: 'last_decay_at', sql: 'ALTER TABLE memories ADD COLUMN last_decay_at INTEGER' },
655
+ { col: 'agent_id', sql: 'ALTER TABLE memories ADD COLUMN agent_id TEXT' },
656
+ { col: 'agent_role', sql: 'ALTER TABLE memories ADD COLUMN agent_role TEXT' },
657
+ { col: 'retrieval_priority', sql: 'ALTER TABLE memories ADD COLUMN retrieval_priority INTEGER DEFAULT 50' },
658
+ { col: 'importance_score', sql: 'ALTER TABLE memories ADD COLUMN importance_score INTEGER DEFAULT 50' },
659
+ { col: 'importance_decay_rate', sql: 'ALTER TABLE memories ADD COLUMN importance_decay_rate INTEGER DEFAULT 30' },
660
+ { col: 'last_importance_recalc', sql: 'ALTER TABLE memories ADD COLUMN last_importance_recalc INTEGER' },
492
661
  ];
493
662
  for (const migration of migrations) {
494
663
  if (!existingColumns.has(migration.col)) {
@@ -497,8 +666,14 @@ async function runSqliteMigrations(sqlite) {
497
666
  logger.info(`Migration: Added column ${migration.col} to memories table`);
498
667
  }
499
668
  catch (error) {
500
- // Silent fail - column might already exist
501
- logger.debug(`Migration skipped for ${migration.col}: ${error}`);
669
+ // Re-throw real errors - only ignore "duplicate column" errors
670
+ const msg = error instanceof Error ? error.message : String(error);
671
+ if (msg.includes('duplicate column name')) {
672
+ logger.debug(`Migration skipped for ${migration.col}: column already exists`);
673
+ }
674
+ else {
675
+ throw new Error(`Migration failed for column ${migration.col}: ${msg}`);
676
+ }
502
677
  }
503
678
  }
504
679
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../db/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../db/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,6 @@
1
1
  import { createDb } from './adapter.js';
2
2
  import { config } from '../config.js';
3
- export declare function getDb(): Promise<(import("drizzle-orm/node-postgres").NodePgDatabase<typeof import("../drizzle/schema.js")> & {
4
- $client: import("pg").Pool;
5
- }) | (import("drizzle-orm/better-sqlite3").BetterSQLite3Database<typeof import("../drizzle/schema-sqlite.js")> & {
6
- $client: import("better-sqlite3").Database;
7
- })>;
3
+ export declare function getDb(): Promise<any>;
8
4
  export declare function checkDatabaseHealth(): Promise<boolean>;
9
5
  export { config };
10
6
  export { createDb };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAMtC,wBAAsB,KAAK;;;;IAc1B;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAkB5D;AAED,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAMtC,wBAAsB,KAAK,iBAc1B;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAoB5D;AAED,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,CAAC"}
package/dist/db/index.js CHANGED
@@ -21,10 +21,13 @@ export async function getDb() {
21
21
  export async function checkDatabaseHealth() {
22
22
  try {
23
23
  const database = await getDb();
24
- // Try a simple query on any table
25
- const tables = Object.values(database._.schema || {});
26
- if (tables.length > 0) {
27
- await database.select().from(tables[0]).limit(1);
24
+ // Try a simple query - use a raw query that's guaranteed to work
25
+ const dbClient = database.$client;
26
+ if (dbClient && typeof dbClient.query === 'function') {
27
+ await dbClient.query('SELECT 1');
28
+ }
29
+ else if (dbClient && typeof dbClient.prepare === 'function') {
30
+ dbClient.prepare('SELECT 1').get();
28
31
  }
29
32
  return true;
30
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,IAAI,EAAE,GAAgD,IAAI,CAAC;AAC3D,IAAI,OAAO,GAAkB,IAAI,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,IAAI,CAAC;YACH,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC,CAAC;YACpF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,EAAE,CAAC;QAC/B,kCAAkC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAO,QAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,sDAAsD;QACtD,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,+BAA+B,CAAC;YACxD,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC,CAAC,+DAA+D;QAC/E,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,IAAI,EAAE,GAAgD,IAAI,CAAC;AAC3D,IAAI,OAAO,GAAkB,IAAI,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,IAAI,CAAC;YACH,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC,CAAC;YACpF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,EAAE,CAAC;QAC/B,iEAAiE;QACjE,MAAM,QAAQ,GAAI,QAAgB,CAAC,OAAO,CAAC;QAC3C,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACrD,MAAM,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAC9D,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,sDAAsD;QACtD,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,+BAA+B,CAAC;YACxD,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC,CAAC,+DAA+D;QAC/E,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,CAAC"}