super-memory-pro 0.2.1 → 0.3.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.
package/dist/config.js CHANGED
@@ -8,7 +8,7 @@ export function loadConfig() {
8
8
  host: process.env.UM_DB_HOST || 'localhost',
9
9
  port: parseInt(process.env.UM_DB_PORT || '5432', 10),
10
10
  database: process.env.UM_DB_NAME || 'ultra_memory',
11
- user: process.env.UM_DB_USER || process.env.USER || userInfo().username,
11
+ user: process.env.UM_DB_USER || process.env.USER || userInfo().username || 'postgres',
12
12
  password: process.env.UM_DB_PASSWORD || '',
13
13
  maxConnections: parseInt(process.env.UM_DB_POOL_MAX || '10', 10),
14
14
  },
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,EAAE,EAAE;YACF,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW;YAC3C,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,MAAM,EAAE,EAAE,CAAC;YACpD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,cAAc;YAClD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,QAAQ;YACvE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;YAC1C,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,EAAE,EAAE,CAAC;SACjE;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,kBAAkB;YACzE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,WAAW;SAChD;QACD,MAAM,EAAE;YACN,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,GAAG,EAAE,EAAE,CAAC;YACjE,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,GAAG,EAAE,EAAE,CAAC;YACjE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO;SACrD;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,EAAE,EAAE;YACF,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW;YAC3C,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,MAAM,EAAE,EAAE,CAAC;YACpD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,cAAc;YAClD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,QAAQ,IAAI,UAAU;YACrF,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;YAC1C,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,EAAE,EAAE,CAAC;SACjE;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,kBAAkB;YACzE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,WAAW;SAChD;QACD,MAAM,EAAE;YACN,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,GAAG,EAAE,EAAE,CAAC;YACjE,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,GAAG,EAAE,EAAE,CAAC;YACjE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO;SACrD;KACF,CAAC;AACJ,CAAC"}
@@ -1,12 +1,39 @@
1
1
  import pg from 'pg';
2
2
  import type { PluginConfig } from '../types.js';
3
+ /**
4
+ * Store the resolved config for later lazy initialisation.
5
+ * Must be called once before any async DB operation.
6
+ */
7
+ export declare function initConfig(config: PluginConfig): void;
3
8
  /**
4
9
  * Create and return the PostgreSQL connection pool.
5
- * Lazily initialized safe to call multiple times.
10
+ * Synchronousdoes not test the connection. Safe to call multiple times.
6
11
  */
7
12
  export declare function getPool(config?: PluginConfig): pg.Pool;
8
13
  /**
9
- * Quick health check: returns true if the database is reachable.
14
+ * Test whether the DB pool is currently in a healthy state.
15
+ */
16
+ export declare function isReady(): boolean;
17
+ /**
18
+ * Return the last initialisation error message, or null.
19
+ */
20
+ export declare function getLastError(): string | null;
21
+ /**
22
+ * Ensure the database is ready: pool connected, database exists, migrations run.
23
+ *
24
+ * Idempotent and thread-safe (callers that arrive while a connection is in
25
+ * progress will wait). Returns `true` when the database is usable.
26
+ *
27
+ * This is called automatically by `startBackgroundRetry()` and re-invoked
28
+ * whenever a connection error occurs.
29
+ */
30
+ export declare function ensureDbReady(): Promise<boolean>;
31
+ /**
32
+ * Cancel any pending retry timer (e.g. on dispose).
33
+ */
34
+ export declare function cancelRetry(): void;
35
+ /**
36
+ * Quick health check. Returns `true` if the database is reachable right now.
10
37
  */
11
38
  export declare function healthCheck(): Promise<boolean>;
12
39
  /**
@@ -14,7 +41,8 @@ export declare function healthCheck(): Promise<boolean>;
14
41
  */
15
42
  export declare function closePool(): Promise<void>;
16
43
  /**
17
- * Connect to a different database (used by installer to create the target DB).
44
+ * Connect to the `postgres` admin database (used by the installer and
45
+ * auto-creation logic).
18
46
  */
19
47
  export declare function createAdminPool(config: PluginConfig): pg.Pool;
20
48
  //# sourceMappingURL=connection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,EAAE,CAAC,IAAI,CAwBtD;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAQpD;AAED;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAK/C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,EAAE,CAAC,IAAI,CAU7D"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAYhD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAErD;AAID;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,EAAE,CAAC,IAAI,CA4BtD;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAE5C;AAID;;;;;;;;GAQG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAgCtD;AAyFD;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAKlC;AAID;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAQpD;AAID;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ/C;AAmDD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,EAAE,CAAC,IAAI,CAU7D"}
@@ -1,13 +1,37 @@
1
+ // ─── PostgreSQL Connection Pool ──────────────────────────────────────────────
2
+ // Lazily initialised with automatic retry, database creation, and migration.
3
+ // The plugin never blocks on DB — every operation degrades gracefully.
4
+ // ───────────────────────────────────────────────────────────────────────────────
5
+ import { execSync } from 'node:child_process';
1
6
  import pg from 'pg';
7
+ import { runMigrations } from './migrations.js';
2
8
  let pool = null;
9
+ let _config = null;
10
+ let _ready = false;
11
+ let _connecting = false;
12
+ let _lastError = null;
13
+ let _retryTimer = null;
14
+ // ─── Configuration ───────────────────────────────────────────────────────────
15
+ /**
16
+ * Store the resolved config for later lazy initialisation.
17
+ * Must be called once before any async DB operation.
18
+ */
19
+ export function initConfig(config) {
20
+ _config = config;
21
+ }
22
+ // ─── Pool Lifecycle ──────────────────────────────────────────────────────────
3
23
  /**
4
24
  * Create and return the PostgreSQL connection pool.
5
- * Lazily initialized safe to call multiple times.
25
+ * Synchronousdoes not test the connection. Safe to call multiple times.
6
26
  */
7
27
  export function getPool(config) {
8
28
  if (pool)
9
29
  return pool;
10
- const cfg = config;
30
+ const cfg = config ?? _config;
31
+ if (!cfg)
32
+ throw new Error('[UltraMemory] getPool() called before initConfig()');
33
+ if (_config === null)
34
+ _config = cfg;
11
35
  pool = new pg.Pool({
12
36
  host: cfg.db.host,
13
37
  port: cfg.db.port,
@@ -18,16 +42,164 @@ export function getPool(config) {
18
42
  idleTimeoutMillis: 30_000,
19
43
  connectionTimeoutMillis: 5_000,
20
44
  });
45
+ // On pool-level error, reset ready state so the next operation retries.
21
46
  pool.on('error', (err) => {
22
47
  console.error('[UltraMemory] PostgreSQL pool error:', err.message);
23
- });
24
- pool.on('connect', () => {
25
- // Connection established — nothing to log in production
48
+ if (_ready) {
49
+ _ready = false;
50
+ scheduleRetry();
51
+ }
26
52
  });
27
53
  return pool;
28
54
  }
29
55
  /**
30
- * Quick health check: returns true if the database is reachable.
56
+ * Test whether the DB pool is currently in a healthy state.
57
+ */
58
+ export function isReady() {
59
+ return _ready && pool !== null;
60
+ }
61
+ /**
62
+ * Return the last initialisation error message, or null.
63
+ */
64
+ export function getLastError() {
65
+ return _lastError;
66
+ }
67
+ // ─── Lazy Initialisation ─────────────────────────────────────────────────────
68
+ /**
69
+ * Ensure the database is ready: pool connected, database exists, migrations run.
70
+ *
71
+ * Idempotent and thread-safe (callers that arrive while a connection is in
72
+ * progress will wait). Returns `true` when the database is usable.
73
+ *
74
+ * This is called automatically by `startBackgroundRetry()` and re-invoked
75
+ * whenever a connection error occurs.
76
+ */
77
+ export async function ensureDbReady() {
78
+ if (_ready)
79
+ return true;
80
+ if (!_config)
81
+ return false;
82
+ if (_connecting) {
83
+ // Another caller is already connecting — wait for them.
84
+ while (_connecting)
85
+ await new Promise((r) => setTimeout(r, 200));
86
+ return _ready;
87
+ }
88
+ _connecting = true;
89
+ try {
90
+ const p = getPool(_config);
91
+ await p.query('SELECT 1');
92
+ await runMigrations(p);
93
+ _ready = true;
94
+ _lastError = null;
95
+ console.log('[UltraMemory] Database ready');
96
+ return true;
97
+ }
98
+ catch (err) {
99
+ const pgErr = err;
100
+ // Code 3D000 = database does not exist — try to create it.
101
+ if (pgErr?.code === '3D000') {
102
+ return handleMissingDatabase(err);
103
+ }
104
+ _lastError = err instanceof Error ? err.message : String(err);
105
+ return false;
106
+ }
107
+ finally {
108
+ _connecting = false;
109
+ }
110
+ }
111
+ /**
112
+ * Called when the target database does not exist yet.
113
+ * Creates it using multiple strategies (mirrors the installer logic):
114
+ * 1. node-postgres admin pool (same user)
115
+ * 2. CLI `createdb` (if available)
116
+ * 3. `sudo -u postgres createdb` (last resort)
117
+ */
118
+ async function handleMissingDatabase(_originalErr) {
119
+ console.log('[UltraMemory] Database does not exist — attempting to create it');
120
+ const dbName = _config.db.database;
121
+ // ── Strategy 1: node-postgres admin pool ──────────────────────────────
122
+ try {
123
+ const adminPool = createAdminPool(_config);
124
+ const quotedName = dbName.replace(/"/g, '""');
125
+ await adminPool.query(`CREATE DATABASE "${quotedName}"`);
126
+ await adminPool.end();
127
+ closePool();
128
+ return await reconnectAndMigrate();
129
+ }
130
+ catch (err) {
131
+ const msg = err instanceof Error ? err.message : String(err);
132
+ console.warn('[UltraMemory] node-postgres create failed:', msg);
133
+ // Fall through to CLI strategies
134
+ }
135
+ // ── Strategy 2: CLI createdb ──────────────────────────────────────────
136
+ const cliResult = runCommand(`createdb "${dbName}" 2>/dev/null`);
137
+ if (cliResult.exitCode === 0) {
138
+ console.log('[UltraMemory] Database created via createdb');
139
+ closePool();
140
+ return await reconnectAndMigrate();
141
+ }
142
+ // ── Strategy 3: sudo -u postgres createdb ─────────────────────────────
143
+ const sudoResult = runCommand(`sudo -u postgres createdb "${dbName}" 2>/dev/null`);
144
+ if (sudoResult.exitCode === 0) {
145
+ console.log('[UltraMemory] Database created via sudo');
146
+ closePool();
147
+ return await reconnectAndMigrate();
148
+ }
149
+ // ── All strategies failed ─────────────────────────────────────────────
150
+ const currentUser = getSystemUser();
151
+ _lastError =
152
+ `Failed to create database '${dbName}'.\n` +
153
+ ` Tried: node-postgres SQL, createdb, sudo -u postgres createdb\n` +
154
+ ` Fix: Run 'ALTER USER ${currentUser} CREATEDB;' as PostgreSQL superuser,\n` +
155
+ ` or run the installer: npm run install:plugin`;
156
+ console.error('[UltraMemory]', _lastError);
157
+ return false;
158
+ }
159
+ /**
160
+ * Reconnect to the newly created database and run migrations.
161
+ * Shared helper for handleMissingDatabase strategies.
162
+ */
163
+ async function reconnectAndMigrate() {
164
+ try {
165
+ const p = getPool(_config);
166
+ await p.query('SELECT 1');
167
+ await runMigrations(p);
168
+ _ready = true;
169
+ _lastError = null;
170
+ console.log('[UltraMemory] Database created and ready');
171
+ return true;
172
+ }
173
+ catch (err) {
174
+ _lastError = err instanceof Error ? err.message : String(err);
175
+ console.error('[UltraMemory] Database created but connection failed:', _lastError);
176
+ return false;
177
+ }
178
+ }
179
+ // ─── Retry Logic ─────────────────────────────────────────────────────────────
180
+ /**
181
+ * Schedule a background retry attempt after a short delay.
182
+ */
183
+ function scheduleRetry() {
184
+ if (_retryTimer)
185
+ return; // already scheduled
186
+ _retryTimer = setTimeout(async () => {
187
+ _retryTimer = null;
188
+ await ensureDbReady();
189
+ }, 5_000);
190
+ }
191
+ /**
192
+ * Cancel any pending retry timer (e.g. on dispose).
193
+ */
194
+ export function cancelRetry() {
195
+ if (_retryTimer) {
196
+ clearTimeout(_retryTimer);
197
+ _retryTimer = null;
198
+ }
199
+ }
200
+ // ─── Health ───────────────────────────────────────────────────────────────────
201
+ /**
202
+ * Quick health check. Returns `true` if the database is reachable right now.
31
203
  */
32
204
  export async function healthCheck() {
33
205
  if (!pool)
@@ -40,17 +212,62 @@ export async function healthCheck() {
40
212
  return false;
41
213
  }
42
214
  }
215
+ // ─── Cleanup ──────────────────────────────────────────────────────────────────
43
216
  /**
44
217
  * Gracefully close the connection pool.
45
218
  */
46
219
  export async function closePool() {
220
+ cancelRetry();
47
221
  if (pool) {
48
222
  await pool.end();
49
223
  pool = null;
50
224
  }
225
+ _ready = false;
226
+ _connecting = false;
227
+ }
228
+ // ─── Shell Command Runner ────────────────────────────────────────────────────
229
+ /**
230
+ * Run a shell command and return stdout/stderr/exitCode.
231
+ * Used for CLI fallbacks when node-postgres lacks permissions.
232
+ */
233
+ function runCommand(command, timeout = 30_000) {
234
+ try {
235
+ const stdout = execSync(command, {
236
+ encoding: 'utf-8',
237
+ timeout,
238
+ windowsHide: true,
239
+ stdio: 'pipe',
240
+ });
241
+ return { stdout: stdout.trim(), stderr: '', exitCode: 0 };
242
+ }
243
+ catch (err) {
244
+ const e = err;
245
+ return {
246
+ stdout: (e.stdout?.toString() ?? '').trim(),
247
+ stderr: (e.stderr?.toString() ?? '').trim(),
248
+ exitCode: e.status ?? 1,
249
+ };
250
+ }
251
+ }
252
+ /**
253
+ * Get the current system username.
254
+ * Falls back from $USER env var to `whoami` to 'postgres' default.
255
+ */
256
+ function getSystemUser() {
257
+ if (process.env.USER)
258
+ return process.env.USER;
259
+ if (process.env.USERNAME)
260
+ return process.env.USERNAME;
261
+ const result = runCommand('whoami 2>/dev/null');
262
+ if (result.exitCode === 0 && result.stdout) {
263
+ return result.stdout;
264
+ }
265
+ return 'postgres';
51
266
  }
267
+ // ─── Admin Connection (for DB creation) ──────────────────────────────────────
52
268
  /**
53
- * Connect to a different database (used by installer to create the target DB).
269
+ * Connect to the `postgres` admin database (used by the installer and
270
+ * auto-creation logic).
54
271
  */
55
272
  export function createAdminPool(config) {
56
273
  return new pg.Pool({
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,IAAI,IAAI,GAAmB,IAAI,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,MAAqB;IAC3C,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,GAAG,GAAG,MAAO,CAAC;IACpB,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI;QACjB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI;QACjB,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ;QACzB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI;QACjB,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ;QACzB,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,cAAc;QAC1B,iBAAiB,EAAE,MAAM;QACzB,uBAAuB,EAAE,KAAK;KAC/B,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACvB,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACtB,wDAAwD;IAC1D,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QACjB,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI;QACpB,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI;QACpB,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI;QACpB,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ;QAC5B,GAAG,EAAE,CAAC;QACN,uBAAuB,EAAE,KAAK;KAC/B,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,8 +5,7 @@
5
5
  import { tool } from '@opencode-ai/plugin';
6
6
  import { z } from 'zod';
7
7
  import { loadConfig } from './config.js';
8
- import { getPool, closePool } from './db/connection.js';
9
- import { runMigrations } from './db/migrations.js';
8
+ import { initConfig, closePool, ensureDbReady } from './db/connection.js';
10
9
  import { createServer } from './server/index.js';
11
10
  import { createMessageHandler } from './hooks/message-handler.js';
12
11
  import { createEventHandler } from './hooks/event-handler.js';
@@ -26,17 +25,19 @@ const pluginModule = {
26
25
  id: 'super-memory',
27
26
  server: async (_input, _options) => {
28
27
  const config = loadConfig();
29
- // ── Initialise database ───────────────────────────────────────────────
30
- try {
31
- const pool = getPool(config);
32
- const applied = await runMigrations(pool);
33
- if (applied.length > 0) {
34
- console.log(`[UltraMemory] Applied ${applied.length} pending migration(s)`);
28
+ // ── Initialise database (lazy — retries in background) ───────────────
29
+ initConfig(config);
30
+ // Kick off the first connection attempt immediately (fire-and-forget).
31
+ // If it fails, the connection module will retry automatically every 5 s
32
+ // until the database becomes available.
33
+ ensureDbReady().then((ok) => {
34
+ if (ok) {
35
+ console.log('[UltraMemory] Database connected on first attempt');
35
36
  }
36
- }
37
- catch (err) {
38
- console.error('[UltraMemory] DB init failed — plugin will run with degraded functionality:', err instanceof Error ? err.message : String(err));
39
- }
37
+ else {
38
+ console.log('[UltraMemory] Database not available yet — will retry in background');
39
+ }
40
+ });
40
41
  // ── Start Express server ──────────────────────────────────────────────
41
42
  try {
42
43
  serverHandle = await createServer(config);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/memory/processor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,aAAa,CAAC;AAS9D,OAAO,EAAmD,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAQlG,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,sBAAsB,GAC/B,OAAO,CAAC,YAAY,EAAE,CAAC,CA4GzB;AAID,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CAChC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAsBjB"}
1
+ {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/memory/processor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,aAAa,CAAC;AAS9D,OAAO,EAAmD,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAQlG,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,sBAAsB,GAC/B,OAAO,CAAC,YAAY,EAAE,CAAC,CA+GzB;AAID,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CAChC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAsBjB"}
@@ -1,6 +1,7 @@
1
1
  // ─── Memory Processor ──────────────────────────────────────────────────────
2
2
  // Orchestrator that combines extraction, storage, and search.
3
3
  // This is the primary entry point for the memory system.
4
+ import { ensureDbReady } from '../db/connection.js';
4
5
  import { extractTechStack, extractDecisions, extractUserPreferences, extractPatterns, classifyContent, } from './extractor.js';
5
6
  import { storeMemories } from './store.js';
6
7
  import { searchRelevantMemories, formatMemoriesForPrompt } from './search.js';
@@ -31,6 +32,8 @@ export async function processMessage(content, metadata) {
31
32
  }
32
33
  const { sessionId, projectId, source } = metadata;
33
34
  try {
35
+ // Lazy-init the database (fire-and-forget — errors are caught below).
36
+ await ensureDbReady();
34
37
  // Step 1: Run all extractors
35
38
  const [techStack, decisions, preferences, patterns] = await Promise.all([
36
39
  safeExtract(() => extractTechStack(content)),
@@ -1 +1 @@
1
- {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/memory/processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/memory/processor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAoBnE;;;GAGG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1E,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CA4BrB;AAID;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACtD,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAqCrB;AAID;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACpB,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC,CAyBrB;AAID;;;GAGG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC5B,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC,CA0BrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA8BnE;;;GAGG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1E,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CA8BrB;AAID;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACtD,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAuCrB;AAID;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACpB,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC,CA2BrB;AAID;;;GAGG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC5B,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC,CA4BrB"}
@@ -2,6 +2,7 @@
2
2
  // Actual implementations of mem_save, mem_search, mem_forget, mem_stats.
3
3
  // These are called by the tool definitions in definitions.ts.
4
4
  import { createMemory, searchMemories, deleteMemory, getMemoryStats } from '../db/queries.js';
5
+ import { ensureDbReady } from '../db/connection.js';
5
6
  // ─── Helpers ───────────────────────────────────────────────────────────────
6
7
  /**
7
8
  * Derive a stable project ID from a worktree directory path.
@@ -15,6 +16,17 @@ function deriveProjectId(worktree) {
15
16
  return 'default';
16
17
  return last.toLowerCase().replace(/[^a-z0-9_-]/g, '_');
17
18
  }
19
+ /**
20
+ * Ensure the database is ready before proceeding.
21
+ * Returns an error ToolResult if the database is unavailable.
22
+ */
23
+ async function requireDbReady() {
24
+ const ok = await ensureDbReady();
25
+ if (ok)
26
+ return null;
27
+ const err = `Database is not available. Make sure PostgreSQL is running.`;
28
+ return { title: 'Database Unavailable', output: `⚠️ ${err}` };
29
+ }
18
30
  // ─── mem_save ──────────────────────────────────────────────────────────────
19
31
  /**
20
32
  * Save a memory explicitly via tool call.
@@ -22,6 +34,9 @@ function deriveProjectId(worktree) {
22
34
  */
23
35
  export async function executeMemSave(args, context) {
24
36
  try {
37
+ const dbError = await requireDbReady();
38
+ if (dbError)
39
+ return dbError;
25
40
  const memoryType = (args.type || 'explicit');
26
41
  const importance = args.importance ?? 3;
27
42
  const memory = await createMemory({
@@ -54,6 +69,9 @@ export async function executeMemSave(args, context) {
54
69
  */
55
70
  export async function executeMemSearch(args, context) {
56
71
  try {
72
+ const dbError = await requireDbReady();
73
+ if (dbError)
74
+ return dbError;
57
75
  const limit = args.limit ?? 10;
58
76
  const results = await searchMemories({
59
77
  query: args.query,
@@ -93,6 +111,9 @@ export async function executeMemSearch(args, context) {
93
111
  */
94
112
  export async function executeMemForget(args, _context) {
95
113
  try {
114
+ const dbError = await requireDbReady();
115
+ if (dbError)
116
+ return dbError;
96
117
  const deleted = await deleteMemory(args.id);
97
118
  if (!deleted) {
98
119
  return {
@@ -122,6 +143,9 @@ export async function executeMemForget(args, _context) {
122
143
  */
123
144
  export async function executeMemStats(_args, _context) {
124
145
  try {
146
+ const dbError = await requireDbReady();
147
+ if (dbError)
148
+ return dbError;
125
149
  const stats = await getMemoryStats();
126
150
  if (stats.length === 0) {
127
151
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "super-memory-pro",
4
- "version": "0.2.1",
4
+ "version": "0.3.1",
5
5
  "description": "Ultra-persistent memory plugin for OpenCode — learn, remember, and recall across sessions",
6
6
  "keywords": [
7
7
  "opencode",
@@ -34,10 +34,10 @@
34
34
  "dist"
35
35
  ],
36
36
  "scripts": {
37
- "build": "tsc && cp -r src/db/migrations dist/db/migrations",
37
+ "build": "node node_modules/typescript/bin/tsc && cp -r src/db/migrations dist/db/migrations",
38
38
  "dev": "tsx watch src/index.ts",
39
39
  "install:plugin": "tsx src/installer/index.ts",
40
- "test": "vitest run",
40
+ "test": "node node_modules/vitest/vitest.mjs run",
41
41
  "test:watch": "vitest",
42
42
  "typecheck": "tsc --noEmit",
43
43
  "clean": "rm -rf dist"