@framers/agentos 0.3.0 → 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/memory/retrieval/store/Brain.d.ts +6 -11
- package/dist/memory/retrieval/store/Brain.d.ts.map +1 -1
- package/dist/memory/retrieval/store/Brain.js +122 -68
- package/dist/memory/retrieval/store/Brain.js.map +1 -1
- package/dist/memory/retrieval/store/migrations/MigrationRunner.d.ts +50 -0
- package/dist/memory/retrieval/store/migrations/MigrationRunner.d.ts.map +1 -0
- package/dist/memory/retrieval/store/migrations/MigrationRunner.js +100 -0
- package/dist/memory/retrieval/store/migrations/MigrationRunner.js.map +1 -0
- package/dist/memory/retrieval/store/migrations/index.d.ts +20 -0
- package/dist/memory/retrieval/store/migrations/index.d.ts.map +1 -0
- package/dist/memory/retrieval/store/migrations/index.js +19 -0
- package/dist/memory/retrieval/store/migrations/index.js.map +1 -0
- package/dist/memory/retrieval/store/migrations/types.d.ts +28 -0
- package/dist/memory/retrieval/store/migrations/types.d.ts.map +1 -0
- package/dist/memory/retrieval/store/migrations/types.js +7 -0
- package/dist/memory/retrieval/store/migrations/types.js.map +1 -0
- package/dist/memory/retrieval/store/migrations/v1-to-v2.d.ts +9 -0
- package/dist/memory/retrieval/store/migrations/v1-to-v2.d.ts.map +1 -1
- package/dist/memory/retrieval/store/migrations/v1-to-v2.js +72 -4
- package/dist/memory/retrieval/store/migrations/v1-to-v2.js.map +1 -1
- package/dist/memory/retrieval/store/portable-tables.d.ts +27 -0
- package/dist/memory/retrieval/store/portable-tables.d.ts.map +1 -0
- package/dist/memory/retrieval/store/portable-tables.js +56 -0
- package/dist/memory/retrieval/store/portable-tables.js.map +1 -0
- package/package.json +1 -1
|
@@ -55,6 +55,7 @@ import type { StorageAdapter, StorageRunResult, StorageParameters, StorageFeatur
|
|
|
55
55
|
* (`run`, `get`, `all`, `exec`, `transaction`) for all database operations.
|
|
56
56
|
*/
|
|
57
57
|
export declare class Brain {
|
|
58
|
+
#private;
|
|
58
59
|
/**
|
|
59
60
|
* The cross-platform storage adapter backing this brain.
|
|
60
61
|
* Not exposed publicly — consumers use the async proxy methods instead.
|
|
@@ -65,17 +66,6 @@ export declare class Brain {
|
|
|
65
66
|
* Created by `createStorageFeatures(adapter)` during `open()`.
|
|
66
67
|
*/
|
|
67
68
|
private readonly _features;
|
|
68
|
-
/**
|
|
69
|
-
* Brain identifier used to scope every brain-owned table row.
|
|
70
|
-
*
|
|
71
|
-
* In SQLite per-file mode, defaults to the file basename (or `'default'`
|
|
72
|
-
* for `:memory:`); subsystems pass it through to the `brain_id` column
|
|
73
|
-
* on every INSERT/UPDATE and into every WHERE clause on SELECT.
|
|
74
|
-
*
|
|
75
|
-
* In Postgres mode (multi-tenant), this is required and must be unique
|
|
76
|
-
* per brain across the database.
|
|
77
|
-
*/
|
|
78
|
-
private readonly _brainId;
|
|
79
69
|
/**
|
|
80
70
|
* Private constructor — use `Brain.open(dbPath)` instead.
|
|
81
71
|
*
|
|
@@ -263,6 +253,11 @@ export declare class Brain {
|
|
|
263
253
|
* file. This means importing an `alice` snapshot into a Brain opened
|
|
264
254
|
* with `brainId: 'alice-fork'` produces a fork with no shared identity.
|
|
265
255
|
*
|
|
256
|
+
* **CAVEAT:** importing from a pre-0.3.0 SQLite file MUTATES the source
|
|
257
|
+
* file. Opening the source via `Brain.openSqlite` runs the v1 to v2
|
|
258
|
+
* migration in place. To preserve the source unchanged, copy the file to
|
|
259
|
+
* a temp path before calling this method.
|
|
260
|
+
*
|
|
266
261
|
* @param sourcePath - Source SQLite file path (typically produced by
|
|
267
262
|
* `Brain.exportToSqlite`).
|
|
268
263
|
* @param opts.strategy - `'merge'` (default) upserts on PK collision;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Brain.d.ts","sourceRoot":"","sources":["../../../../src/memory/retrieval/store/Brain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EAChB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"Brain.d.ts","sourceRoot":"","sources":["../../../../src/memory/retrieval/store/Brain.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,11 +28,24 @@
|
|
|
28
28
|
*
|
|
29
29
|
* @module memory/store/Brain
|
|
30
30
|
*/
|
|
31
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
32
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
33
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
34
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
35
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
36
|
+
};
|
|
37
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
38
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
39
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
40
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
41
|
+
};
|
|
42
|
+
var _Brain_brainId;
|
|
31
43
|
import { promises as fs } from 'node:fs';
|
|
32
44
|
import path from 'node:path';
|
|
33
45
|
import { resolveStorageAdapter, createStorageFeatures, createPostgresAdapter } from '@framers/sql-storage-adapter';
|
|
34
46
|
import { DDL_ARCHIVED_TRACES, DDL_ARCHIVED_TRACES_IDX_AGENT_TIME, DDL_ARCHIVED_TRACES_IDX_REASON, DDL_ARCHIVE_ACCESS_LOG, DDL_ARCHIVE_ACCESS_LOG_IDX, } from '../../archive/SqlStorageMemoryArchive.js';
|
|
35
|
-
import {
|
|
47
|
+
import { MigrationRunner, MIGRATIONS, LATEST_SCHEMA_VERSION } from './migrations/index.js';
|
|
48
|
+
import { PORTABLE_TABLES, PORTABLE_TABLE_PRIMARY_KEYS } from './portable-tables.js';
|
|
36
49
|
/**
|
|
37
50
|
* Derive a stable brain identifier from the database file path.
|
|
38
51
|
*
|
|
@@ -50,11 +63,22 @@ function deriveBrainIdFromPath(dbPath) {
|
|
|
50
63
|
const lastDot = basename.lastIndexOf('.');
|
|
51
64
|
return lastDot > 0 ? basename.slice(0, lastDot) : basename;
|
|
52
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Redact the password segment from a Postgres connection string for safe
|
|
68
|
+
* inclusion in error messages.
|
|
69
|
+
*
|
|
70
|
+
* `postgresql://user:secret@host/db` becomes `postgresql://user:***@host/db`.
|
|
71
|
+
* Connection strings without embedded passwords pass through unchanged.
|
|
72
|
+
*/
|
|
73
|
+
function redactPostgresPassword(connStr) {
|
|
74
|
+
return connStr.replace(/(:\/\/[^:]+:)[^@]+(@)/, '$1***$2');
|
|
75
|
+
}
|
|
53
76
|
// ---------------------------------------------------------------------------
|
|
54
77
|
// Constants
|
|
55
78
|
// ---------------------------------------------------------------------------
|
|
56
|
-
|
|
57
|
-
|
|
79
|
+
// SCHEMA_VERSION moved to migrations/index.ts as LATEST_SCHEMA_VERSION
|
|
80
|
+
// (derived from the highest registered migration, so adding v2-to-v3.ts
|
|
81
|
+
// auto-bumps the seed value).
|
|
58
82
|
// ---------------------------------------------------------------------------
|
|
59
83
|
// DDL — full schema
|
|
60
84
|
// ---------------------------------------------------------------------------
|
|
@@ -382,9 +406,20 @@ export class Brain {
|
|
|
382
406
|
* @param brainId - Brain identifier used to scope multi-tenant queries.
|
|
383
407
|
*/
|
|
384
408
|
constructor(adapter, features, brainId) {
|
|
409
|
+
/**
|
|
410
|
+
* Brain identifier used to scope every brain-owned table row.
|
|
411
|
+
*
|
|
412
|
+
* In SQLite per-file mode, defaults to the file basename (or `'default'`
|
|
413
|
+
* for `:memory:`); subsystems pass it through to the `brain_id` column
|
|
414
|
+
* on every INSERT/UPDATE and into every WHERE clause on SELECT.
|
|
415
|
+
*
|
|
416
|
+
* In Postgres mode (multi-tenant), this is required and must be unique
|
|
417
|
+
* per brain across the database.
|
|
418
|
+
*/
|
|
419
|
+
_Brain_brainId.set(this, void 0);
|
|
385
420
|
this._adapter = adapter;
|
|
386
421
|
this._features = features;
|
|
387
|
-
this
|
|
422
|
+
__classPrivateFieldSet(this, _Brain_brainId, brainId, "f");
|
|
388
423
|
}
|
|
389
424
|
/**
|
|
390
425
|
* Brain identifier scoping every query through this Brain instance.
|
|
@@ -392,10 +427,22 @@ export class Brain {
|
|
|
392
427
|
* to inject `brain_id` into their own SQL.
|
|
393
428
|
*/
|
|
394
429
|
get brainId() {
|
|
395
|
-
return this
|
|
430
|
+
return __classPrivateFieldGet(this, _Brain_brainId, "f");
|
|
396
431
|
}
|
|
397
432
|
// ---------------------------------------------------------------------------
|
|
398
433
|
// Async factories (three named entry points)
|
|
434
|
+
//
|
|
435
|
+
// Naming convention:
|
|
436
|
+
// - openSqlite / openPostgres: factory by-DIALECT. The caller specifies
|
|
437
|
+
// "I want a SQLite-backed brain at this file" or "I want a Postgres-
|
|
438
|
+
// backed brain at this URL." The adapter is constructed internally.
|
|
439
|
+
// - openWithAdapter: factory by-PRE-BUILT-ADAPTER. The caller has already
|
|
440
|
+
// built the StorageAdapter (e.g., to share a connection pool with
|
|
441
|
+
// another subsystem) and hands it to Brain to consume.
|
|
442
|
+
//
|
|
443
|
+
// The naming asymmetry is intentional: the first two are dialect-specific
|
|
444
|
+
// entry points; the third is the escape hatch for advanced cases where the
|
|
445
|
+
// adapter is owned outside the Brain.
|
|
399
446
|
// ---------------------------------------------------------------------------
|
|
400
447
|
/**
|
|
401
448
|
* Open a Brain backed by SQLite. Tries adapters in order:
|
|
@@ -431,11 +478,19 @@ export class Brain {
|
|
|
431
478
|
}
|
|
432
479
|
// Use createPostgresAdapter directly so we can pass pool size; the
|
|
433
480
|
// resolveStorageAdapter facade only forwards `connectionString`.
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
481
|
+
let adapter;
|
|
482
|
+
try {
|
|
483
|
+
adapter = await createPostgresAdapter({
|
|
484
|
+
connectionString,
|
|
485
|
+
max: opts.poolSize ?? 10,
|
|
486
|
+
});
|
|
487
|
+
await adapter.open();
|
|
488
|
+
}
|
|
489
|
+
catch (err) {
|
|
490
|
+
const safe = redactPostgresPassword(connectionString);
|
|
491
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
492
|
+
throw new Error(`Brain.openPostgres: connection failed for ${safe}: ${msg}`);
|
|
493
|
+
}
|
|
439
494
|
return Brain._initialize(adapter, opts.brainId);
|
|
440
495
|
}
|
|
441
496
|
/**
|
|
@@ -475,7 +530,7 @@ export class Brain {
|
|
|
475
530
|
const fkPragma = features.dialect.pragma('foreign_keys', 'ON');
|
|
476
531
|
if (fkPragma)
|
|
477
532
|
await adapter.exec(fkPragma);
|
|
478
|
-
await
|
|
533
|
+
await MigrationRunner.runPending(adapter, features, brainId, MIGRATIONS);
|
|
479
534
|
await brain._initSchema();
|
|
480
535
|
await brain._seedMeta();
|
|
481
536
|
return brain;
|
|
@@ -609,8 +664,8 @@ export class Brain {
|
|
|
609
664
|
// INSERT OR IGNORE is idempotent — no transaction needed.
|
|
610
665
|
// Avoids sql.js "cannot rollback" errors when DDL from _initSchema()
|
|
611
666
|
// leaves the connection in an implicit-commit state.
|
|
612
|
-
await this._adapter.run(dialect.insertOrIgnore('brain_meta', ['brain_id', 'key', 'value'], ['?', '?', '?']), [this
|
|
613
|
-
await this._adapter.run(dialect.insertOrIgnore('brain_meta', ['brain_id', 'key', 'value'], ['?', '?', '?']), [this
|
|
667
|
+
await this._adapter.run(dialect.insertOrIgnore('brain_meta', ['brain_id', 'key', 'value'], ['?', '?', '?']), [__classPrivateFieldGet(this, _Brain_brainId, "f"), 'schema_version', String(LATEST_SCHEMA_VERSION)]);
|
|
668
|
+
await this._adapter.run(dialect.insertOrIgnore('brain_meta', ['brain_id', 'key', 'value'], ['?', '?', '?']), [__classPrivateFieldGet(this, _Brain_brainId, "f"), 'created_at', Date.now().toString()]);
|
|
614
669
|
}
|
|
615
670
|
// ---------------------------------------------------------------------------
|
|
616
671
|
// Public API
|
|
@@ -622,7 +677,7 @@ export class Brain {
|
|
|
622
677
|
* @returns The stored string value, or `undefined` if the key does not exist.
|
|
623
678
|
*/
|
|
624
679
|
async getMeta(key) {
|
|
625
|
-
const row = await this._adapter.get('SELECT value FROM brain_meta WHERE brain_id = ? AND key = ?', [this
|
|
680
|
+
const row = await this._adapter.get('SELECT value FROM brain_meta WHERE brain_id = ? AND key = ?', [__classPrivateFieldGet(this, _Brain_brainId, "f"), key]);
|
|
626
681
|
return row?.value;
|
|
627
682
|
}
|
|
628
683
|
/**
|
|
@@ -635,7 +690,7 @@ export class Brain {
|
|
|
635
690
|
* @param value - The string value to store.
|
|
636
691
|
*/
|
|
637
692
|
async setMeta(key, value) {
|
|
638
|
-
await this._adapter.run(this._features.dialect.insertOrReplace('brain_meta', ['brain_id', 'key', 'value'], ['?', '?', '?'], 'brain_id, key'), [this
|
|
693
|
+
await this._adapter.run(this._features.dialect.insertOrReplace('brain_meta', ['brain_id', 'key', 'value'], ['?', '?', '?'], 'brain_id, key'), [__classPrivateFieldGet(this, _Brain_brainId, "f"), key, value]);
|
|
639
694
|
}
|
|
640
695
|
/**
|
|
641
696
|
* Check whether a given embedding dimension is compatible with this brain.
|
|
@@ -695,15 +750,15 @@ export class Brain {
|
|
|
695
750
|
// Open a fresh SQLite Brain at the target path. We import under the
|
|
696
751
|
// source brainId so the export file is identifiable as belonging to
|
|
697
752
|
// this brain even if the receiving Brain has a different id.
|
|
698
|
-
const target = await Brain.openSqlite(targetPath, { brainId: this
|
|
753
|
+
const target = await Brain.openSqlite(targetPath, { brainId: __classPrivateFieldGet(this, _Brain_brainId, "f") });
|
|
699
754
|
try {
|
|
700
755
|
for (const table of PORTABLE_TABLES) {
|
|
701
|
-
const rows = await this.all(`SELECT * FROM ${table} WHERE brain_id = ?`, [this
|
|
756
|
+
const rows = await this.all(`SELECT * FROM ${table} WHERE brain_id = ?`, [__classPrivateFieldGet(this, _Brain_brainId, "f")]);
|
|
702
757
|
if (rows.length === 0)
|
|
703
758
|
continue;
|
|
704
759
|
// Upsert so source rows override the brain_meta defaults
|
|
705
760
|
// (schema_version, created_at) seeded during target initialisation.
|
|
706
|
-
await this._bulkCopy(target, table, rows, this
|
|
761
|
+
await this._bulkCopy(target, table, rows, __classPrivateFieldGet(this, _Brain_brainId, "f"), { upsert: true });
|
|
707
762
|
}
|
|
708
763
|
}
|
|
709
764
|
finally {
|
|
@@ -720,6 +775,11 @@ export class Brain {
|
|
|
720
775
|
* file. This means importing an `alice` snapshot into a Brain opened
|
|
721
776
|
* with `brainId: 'alice-fork'` produces a fork with no shared identity.
|
|
722
777
|
*
|
|
778
|
+
* **CAVEAT:** importing from a pre-0.3.0 SQLite file MUTATES the source
|
|
779
|
+
* file. Opening the source via `Brain.openSqlite` runs the v1 to v2
|
|
780
|
+
* migration in place. To preserve the source unchanged, copy the file to
|
|
781
|
+
* a temp path before calling this method.
|
|
782
|
+
*
|
|
723
783
|
* @param sourcePath - Source SQLite file path (typically produced by
|
|
724
784
|
* `Brain.exportToSqlite`).
|
|
725
785
|
* @param opts.strategy - `'merge'` (default) upserts on PK collision;
|
|
@@ -728,14 +788,41 @@ export class Brain {
|
|
|
728
788
|
*/
|
|
729
789
|
async importFromSqlite(sourcePath, opts = {}) {
|
|
730
790
|
const strategy = opts.strategy ?? 'merge';
|
|
731
|
-
|
|
791
|
+
// Peek at the source's brain_meta BEFORE opening it as a Brain. Opening
|
|
792
|
+
// via Brain.openSqlite without a brainId would derive one from the file
|
|
793
|
+
// path and pollute brain_meta with that synthetic id (via _seedMeta),
|
|
794
|
+
// breaking the single-brain check below. We use a raw adapter for the
|
|
795
|
+
// peek so we don't trigger any seeding.
|
|
796
|
+
const peekAdapter = await resolveStorageAdapter({
|
|
797
|
+
filePath: sourcePath,
|
|
798
|
+
priority: ['better-sqlite3', 'sqljs'],
|
|
799
|
+
quiet: true,
|
|
800
|
+
});
|
|
801
|
+
let sourceBrainIds;
|
|
802
|
+
try {
|
|
803
|
+
sourceBrainIds = await peekAdapter.all(`SELECT DISTINCT brain_id FROM brain_meta WHERE brain_id IS NOT NULL`);
|
|
804
|
+
}
|
|
805
|
+
finally {
|
|
806
|
+
await peekAdapter.close();
|
|
807
|
+
}
|
|
808
|
+
if (sourceBrainIds.length > 1) {
|
|
809
|
+
const ids = sourceBrainIds.map((r) => r.brain_id).join(', ');
|
|
810
|
+
throw new Error(`Brain.importFromSqlite: source contains multiple brain_ids (${ids}). ` +
|
|
811
|
+
`Imports must be from a single-brain export (use Brain.exportToSqlite).`);
|
|
812
|
+
}
|
|
813
|
+
// Open the source as a Brain with the peeked brainId (if any) to avoid
|
|
814
|
+
// _seedMeta polluting brain_meta with a path-derived id.
|
|
815
|
+
const sourceBrainId = sourceBrainIds[0]?.brain_id;
|
|
816
|
+
const source = sourceBrainId
|
|
817
|
+
? await Brain.openSqlite(sourcePath, { brainId: sourceBrainId })
|
|
818
|
+
: await Brain.openSqlite(sourcePath);
|
|
732
819
|
const tablesImported = {};
|
|
733
820
|
try {
|
|
734
821
|
if (strategy === 'replace') {
|
|
735
822
|
// Wipe existing rows for the receiving brainId in every portable table.
|
|
736
823
|
// Order matters: child tables before parent tables to satisfy FKs.
|
|
737
824
|
for (const table of [...PORTABLE_TABLES].reverse()) {
|
|
738
|
-
await this.run(`DELETE FROM ${table} WHERE brain_id = ?`, [this
|
|
825
|
+
await this.run(`DELETE FROM ${table} WHERE brain_id = ?`, [__classPrivateFieldGet(this, _Brain_brainId, "f")]);
|
|
739
826
|
}
|
|
740
827
|
}
|
|
741
828
|
for (const table of PORTABLE_TABLES) {
|
|
@@ -748,7 +835,7 @@ export class Brain {
|
|
|
748
835
|
// Always use upsert to gracefully handle the brain_meta rows seeded
|
|
749
836
|
// by `_seedMeta` during the receiving Brain's initialization (which
|
|
750
837
|
// would otherwise collide with the source's schema_version/created_at).
|
|
751
|
-
await this._bulkCopy(this, table, rows, this
|
|
838
|
+
await this._bulkCopy(this, table, rows, __classPrivateFieldGet(this, _Brain_brainId, "f"), { upsert: true });
|
|
752
839
|
}
|
|
753
840
|
}
|
|
754
841
|
finally {
|
|
@@ -792,53 +879,20 @@ export class Brain {
|
|
|
792
879
|
* an unconsumed WAL file.
|
|
793
880
|
*/
|
|
794
881
|
async close() {
|
|
795
|
-
|
|
882
|
+
try {
|
|
883
|
+
await this._adapter.close();
|
|
884
|
+
}
|
|
885
|
+
catch (err) {
|
|
886
|
+
// Adapter close failures (pool drain timeouts, lock-release races on
|
|
887
|
+
// shutdown) shouldn't propagate to callers who are themselves shutting
|
|
888
|
+
// down and can't usefully react. Log to stderr so CI artifacts capture
|
|
889
|
+
// the failure context if it ever indicates a real problem.
|
|
890
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
891
|
+
process.stderr.write(`[Brain.close] adapter close failed: ${msg}\n`);
|
|
892
|
+
}
|
|
796
893
|
}
|
|
797
894
|
}
|
|
798
|
-
|
|
799
|
-
//
|
|
800
|
-
//
|
|
801
|
-
/**
|
|
802
|
-
* Tables exported and imported by `Brain.exportToSqlite` / `importFromSqlite`.
|
|
803
|
-
* Order matters for import: parents before children to satisfy FKs.
|
|
804
|
-
*/
|
|
805
|
-
const PORTABLE_TABLES = [
|
|
806
|
-
'brain_meta',
|
|
807
|
-
'memory_traces',
|
|
808
|
-
'knowledge_nodes',
|
|
809
|
-
'knowledge_edges',
|
|
810
|
-
'documents',
|
|
811
|
-
'document_chunks',
|
|
812
|
-
'document_images',
|
|
813
|
-
'consolidation_log',
|
|
814
|
-
'retrieval_feedback',
|
|
815
|
-
'conversations',
|
|
816
|
-
'messages',
|
|
817
|
-
'prospective_items',
|
|
818
|
-
'archived_traces',
|
|
819
|
-
'archive_access_log',
|
|
820
|
-
];
|
|
821
|
-
/**
|
|
822
|
-
* Composite primary key columns for each portable table, used by
|
|
823
|
-
* `dialect.insertOrReplace` as the conflict target during merge import.
|
|
824
|
-
*
|
|
825
|
-
* Tables with `INTEGER PRIMARY KEY AUTOINCREMENT` (consolidation_log,
|
|
826
|
-
* retrieval_feedback) use `id` alone since their PK is system-generated.
|
|
827
|
-
*/
|
|
828
|
-
const PORTABLE_TABLE_PRIMARY_KEYS = {
|
|
829
|
-
brain_meta: 'brain_id, key',
|
|
830
|
-
memory_traces: 'brain_id, id',
|
|
831
|
-
knowledge_nodes: 'brain_id, id',
|
|
832
|
-
knowledge_edges: 'brain_id, id',
|
|
833
|
-
documents: 'brain_id, id',
|
|
834
|
-
document_chunks: 'brain_id, id',
|
|
835
|
-
document_images: 'brain_id, id',
|
|
836
|
-
consolidation_log: 'id',
|
|
837
|
-
retrieval_feedback: 'id',
|
|
838
|
-
conversations: 'brain_id, id',
|
|
839
|
-
messages: 'brain_id, id',
|
|
840
|
-
prospective_items: 'brain_id, id',
|
|
841
|
-
archived_traces: 'brain_id, trace_id',
|
|
842
|
-
archive_access_log: 'brain_id, trace_id, accessed_at',
|
|
843
|
-
};
|
|
895
|
+
_Brain_brainId = new WeakMap();
|
|
896
|
+
// PORTABLE_TABLES + PORTABLE_TABLE_PRIMARY_KEYS moved to ./portable-tables.ts
|
|
897
|
+
// (single source of truth shared with v1-to-v2 migration + postgres test cleanup).
|
|
844
898
|
//# sourceMappingURL=Brain.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Brain.js","sourceRoot":"","sources":["../../../../src/memory/retrieval/store/Brain.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Brain.js","sourceRoot":"","sources":["../../../../src/memory/retrieval/store/Brain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview MigrationRunner: centralized owner of "how schema migrations
|
|
3
|
+
* run safely." Each registered Migration object knows only its target version
|
|
4
|
+
* and schema-diff logic; the runner handles transaction wrapping, advisory
|
|
5
|
+
* locking (per-brain), and atomic schema_version bumps.
|
|
6
|
+
*
|
|
7
|
+
* Two distinct dialect paths because connection-pooling and transaction
|
|
8
|
+
* semantics differ enough that a unified path obscures correctness:
|
|
9
|
+
*
|
|
10
|
+
* - Postgres: uses `adapter.transaction()` to keep all queries on one pooled
|
|
11
|
+
* connection. Acquires a transaction-scoped advisory lock with
|
|
12
|
+
* `pg_advisory_xact_lock`, which auto-releases on COMMIT/ROLLBACK.
|
|
13
|
+
* - SQLite: uses explicit `BEGIN IMMEDIATE` via `adapter.exec`. Single
|
|
14
|
+
* connection per file, so the connection-pool concern doesn't apply.
|
|
15
|
+
* IMMEDIATE acquires the reserved write lock immediately, eliminating the
|
|
16
|
+
* race window in default DEFERRED mode.
|
|
17
|
+
*
|
|
18
|
+
* @module memory/retrieval/store/migrations/MigrationRunner
|
|
19
|
+
*/
|
|
20
|
+
import type { StorageAdapter, StorageFeatures } from '@framers/sql-storage-adapter';
|
|
21
|
+
import type { Migration } from './types.js';
|
|
22
|
+
export declare class MigrationRunner {
|
|
23
|
+
/**
|
|
24
|
+
* Run all pending migrations against the adapter, scoped by brainId.
|
|
25
|
+
*
|
|
26
|
+
* @returns The list of migration versions that were applied.
|
|
27
|
+
*/
|
|
28
|
+
static runPending(adapter: StorageAdapter, features: StorageFeatures, brainId: string, migrations: Migration[]): Promise<{
|
|
29
|
+
applied: number[];
|
|
30
|
+
}>;
|
|
31
|
+
/**
|
|
32
|
+
* Inner migration loop, called once the lock + transaction are established.
|
|
33
|
+
* Reads the current schema_version, filters pending migrations, applies each
|
|
34
|
+
* one, and bumps schema_version inside the same transaction.
|
|
35
|
+
*/
|
|
36
|
+
private static _runMigrations;
|
|
37
|
+
/**
|
|
38
|
+
* Read the current schema_version from brain_meta. Returns null when
|
|
39
|
+
* brain_meta does not exist (fresh database).
|
|
40
|
+
*/
|
|
41
|
+
private static _readSchemaVersion;
|
|
42
|
+
/**
|
|
43
|
+
* Upsert schema_version in brain_meta inside the current transaction.
|
|
44
|
+
* Uses dialect-aware INSERT OR REPLACE.
|
|
45
|
+
*/
|
|
46
|
+
private static _writeSchemaVersion;
|
|
47
|
+
private static _sqliteTableExists;
|
|
48
|
+
private static _postgresTableExists;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=MigrationRunner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationRunner.d.ts","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/MigrationRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,qBAAa,eAAe;IAC1B;;;;OAIG;WACU,UAAU,CACrB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,EAAE,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAyBjC;;;;OAIG;mBACkB,cAAc;IAwBnC;;;OAGG;mBACkB,kBAAkB;IAiBvC;;;OAGG;mBACkB,mBAAmB;mBAiBnB,kBAAkB;mBAWlB,oBAAoB;CAa1C"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview MigrationRunner: centralized owner of "how schema migrations
|
|
3
|
+
* run safely." Each registered Migration object knows only its target version
|
|
4
|
+
* and schema-diff logic; the runner handles transaction wrapping, advisory
|
|
5
|
+
* locking (per-brain), and atomic schema_version bumps.
|
|
6
|
+
*
|
|
7
|
+
* Two distinct dialect paths because connection-pooling and transaction
|
|
8
|
+
* semantics differ enough that a unified path obscures correctness:
|
|
9
|
+
*
|
|
10
|
+
* - Postgres: uses `adapter.transaction()` to keep all queries on one pooled
|
|
11
|
+
* connection. Acquires a transaction-scoped advisory lock with
|
|
12
|
+
* `pg_advisory_xact_lock`, which auto-releases on COMMIT/ROLLBACK.
|
|
13
|
+
* - SQLite: uses explicit `BEGIN IMMEDIATE` via `adapter.exec`. Single
|
|
14
|
+
* connection per file, so the connection-pool concern doesn't apply.
|
|
15
|
+
* IMMEDIATE acquires the reserved write lock immediately, eliminating the
|
|
16
|
+
* race window in default DEFERRED mode.
|
|
17
|
+
*
|
|
18
|
+
* @module memory/retrieval/store/migrations/MigrationRunner
|
|
19
|
+
*/
|
|
20
|
+
export class MigrationRunner {
|
|
21
|
+
/**
|
|
22
|
+
* Run all pending migrations against the adapter, scoped by brainId.
|
|
23
|
+
*
|
|
24
|
+
* @returns The list of migration versions that were applied.
|
|
25
|
+
*/
|
|
26
|
+
static async runPending(adapter, features, brainId, migrations) {
|
|
27
|
+
const isPostgres = adapter.kind.includes('postgres');
|
|
28
|
+
if (isPostgres) {
|
|
29
|
+
return adapter.transaction(async (trx) => {
|
|
30
|
+
await trx.run(`SELECT pg_advisory_xact_lock(hashtext($1))`, [`agentos_brain:${brainId}`]);
|
|
31
|
+
return MigrationRunner._runMigrations(trx, features, brainId, migrations);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
// SQLite path: explicit BEGIN IMMEDIATE for single-connection serialization.
|
|
35
|
+
await adapter.exec('BEGIN IMMEDIATE');
|
|
36
|
+
try {
|
|
37
|
+
const result = await MigrationRunner._runMigrations(adapter, features, brainId, migrations);
|
|
38
|
+
await adapter.exec('COMMIT');
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
await adapter.exec('ROLLBACK');
|
|
43
|
+
throw err;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Inner migration loop, called once the lock + transaction are established.
|
|
48
|
+
* Reads the current schema_version, filters pending migrations, applies each
|
|
49
|
+
* one, and bumps schema_version inside the same transaction.
|
|
50
|
+
*/
|
|
51
|
+
static async _runMigrations(adapter, features, brainId, migrations) {
|
|
52
|
+
const current = await MigrationRunner._readSchemaVersion(adapter, brainId);
|
|
53
|
+
// Fresh database: brain_meta does not exist yet. Skip migrations entirely;
|
|
54
|
+
// the upcoming _initSchema call creates the latest schema directly.
|
|
55
|
+
if (current === null)
|
|
56
|
+
return { applied: [] };
|
|
57
|
+
const sorted = [...migrations].sort((a, b) => a.version - b.version);
|
|
58
|
+
const pending = sorted.filter((m) => m.version > current);
|
|
59
|
+
const applied = [];
|
|
60
|
+
for (const migration of pending) {
|
|
61
|
+
await migration.up(adapter, features, brainId);
|
|
62
|
+
await MigrationRunner._writeSchemaVersion(adapter, features, brainId, migration.version);
|
|
63
|
+
applied.push(migration.version);
|
|
64
|
+
}
|
|
65
|
+
return { applied };
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Read the current schema_version from brain_meta. Returns null when
|
|
69
|
+
* brain_meta does not exist (fresh database).
|
|
70
|
+
*/
|
|
71
|
+
static async _readSchemaVersion(adapter, brainId) {
|
|
72
|
+
const isPostgres = adapter.kind.includes('postgres');
|
|
73
|
+
const brainMetaExists = isPostgres
|
|
74
|
+
? await MigrationRunner._postgresTableExists(adapter, 'brain_meta')
|
|
75
|
+
: await MigrationRunner._sqliteTableExists(adapter, 'brain_meta');
|
|
76
|
+
if (!brainMetaExists)
|
|
77
|
+
return null;
|
|
78
|
+
const row = await adapter.get(`SELECT value FROM brain_meta WHERE brain_id = ? AND key = ?`, [brainId, 'schema_version']);
|
|
79
|
+
return row ? parseInt(row.value, 10) : null;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Upsert schema_version in brain_meta inside the current transaction.
|
|
83
|
+
* Uses dialect-aware INSERT OR REPLACE.
|
|
84
|
+
*/
|
|
85
|
+
static async _writeSchemaVersion(adapter, features, brainId, version) {
|
|
86
|
+
await adapter.run(features.dialect.insertOrReplace('brain_meta', ['brain_id', 'key', 'value'], ['?', '?', '?'], 'brain_id, key'), [brainId, 'schema_version', String(version)]);
|
|
87
|
+
}
|
|
88
|
+
static async _sqliteTableExists(adapter, table) {
|
|
89
|
+
const row = await adapter.get(`SELECT name FROM sqlite_master WHERE type='table' AND name=?`, [table]);
|
|
90
|
+
return Boolean(row);
|
|
91
|
+
}
|
|
92
|
+
static async _postgresTableExists(adapter, table) {
|
|
93
|
+
const row = await adapter.get(`SELECT EXISTS (
|
|
94
|
+
SELECT 1 FROM information_schema.tables
|
|
95
|
+
WHERE table_schema = current_schema() AND table_name = $1
|
|
96
|
+
) AS exists`, [table]);
|
|
97
|
+
return row?.exists ?? false;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=MigrationRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationRunner.js","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/MigrationRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Registry of all schema migrations in version order.
|
|
3
|
+
*
|
|
4
|
+
* Adding a new schema version: implement `v2-to-v3.ts` exporting a
|
|
5
|
+
* `Migration` object, then append it to the `MIGRATIONS` array here.
|
|
6
|
+
* Both `Brain._initialize` (for `runPending`) and `Brain._seedMeta` (for
|
|
7
|
+
* the schema_version seed value) pick up the change automatically.
|
|
8
|
+
*
|
|
9
|
+
* @module memory/retrieval/store/migrations
|
|
10
|
+
*/
|
|
11
|
+
import type { Migration } from './types.js';
|
|
12
|
+
export type { Migration } from './types.js';
|
|
13
|
+
export { MigrationRunner } from './MigrationRunner.js';
|
|
14
|
+
export declare const MIGRATIONS: Migration[];
|
|
15
|
+
/**
|
|
16
|
+
* The highest schema version among registered migrations. Used by
|
|
17
|
+
* `Brain._seedMeta` to seed `schema_version` on fresh databases.
|
|
18
|
+
*/
|
|
19
|
+
export declare const LATEST_SCHEMA_VERSION: number;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,eAAO,MAAM,UAAU,EAAE,SAAS,EAAa,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAA6C,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Registry of all schema migrations in version order.
|
|
3
|
+
*
|
|
4
|
+
* Adding a new schema version: implement `v2-to-v3.ts` exporting a
|
|
5
|
+
* `Migration` object, then append it to the `MIGRATIONS` array here.
|
|
6
|
+
* Both `Brain._initialize` (for `runPending`) and `Brain._seedMeta` (for
|
|
7
|
+
* the schema_version seed value) pick up the change automatically.
|
|
8
|
+
*
|
|
9
|
+
* @module memory/retrieval/store/migrations
|
|
10
|
+
*/
|
|
11
|
+
import { v1ToV2 } from './v1-to-v2.js';
|
|
12
|
+
export { MigrationRunner } from './MigrationRunner.js';
|
|
13
|
+
export const MIGRATIONS = [v1ToV2];
|
|
14
|
+
/**
|
|
15
|
+
* The highest schema version among registered migrations. Used by
|
|
16
|
+
* `Brain._seedMeta` to seed `schema_version` on fresh databases.
|
|
17
|
+
*/
|
|
18
|
+
export const LATEST_SCHEMA_VERSION = MIGRATIONS[MIGRATIONS.length - 1].version;
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAgB,CAAC,MAAM,CAAC,CAAC;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,OAAO,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Migration interface and shared types for MigrationRunner.
|
|
3
|
+
*
|
|
4
|
+
* @module memory/retrieval/store/migrations/types
|
|
5
|
+
*/
|
|
6
|
+
import type { StorageAdapter, StorageFeatures } from '@framers/sql-storage-adapter';
|
|
7
|
+
/**
|
|
8
|
+
* A single schema migration. The runner handles transaction wrapping, advisory
|
|
9
|
+
* locking, and the schema_version bump. The migration's `up` function only
|
|
10
|
+
* needs to apply the schema diff (DDL + data backfill) for its target version.
|
|
11
|
+
*
|
|
12
|
+
* Migrations MUST NOT manage their own transactions. The adapter passed into
|
|
13
|
+
* `up` is the runner's transactional adapter; calling BEGIN/COMMIT inside `up`
|
|
14
|
+
* breaks the runner's transaction model on both Postgres and SQLite.
|
|
15
|
+
*/
|
|
16
|
+
export interface Migration {
|
|
17
|
+
/** Target schema version this migration upgrades the database to. */
|
|
18
|
+
version: number;
|
|
19
|
+
/**
|
|
20
|
+
* Apply the schema diff for this migration's target version.
|
|
21
|
+
*
|
|
22
|
+
* @param adapter - Transactional storage adapter (do NOT BEGIN/COMMIT inside).
|
|
23
|
+
* @param features - Platform-aware feature bundle.
|
|
24
|
+
* @param brainId - The brain identifier to scope writes to.
|
|
25
|
+
*/
|
|
26
|
+
up(adapter: StorageAdapter, features: StorageFeatures, brainId: string): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpF;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* @module memory/retrieval/store/migrations/v1-to-v2
|
|
16
16
|
*/
|
|
17
17
|
import type { StorageAdapter, StorageFeatures } from '@framers/sql-storage-adapter';
|
|
18
|
+
import type { Migration } from './types.js';
|
|
18
19
|
/**
|
|
19
20
|
* Run the v1 -> v2 migration on the given storage adapter.
|
|
20
21
|
*
|
|
@@ -28,4 +29,12 @@ import type { StorageAdapter, StorageFeatures } from '@framers/sql-storage-adapt
|
|
|
28
29
|
export declare function migrateV1ToV2(adapter: StorageAdapter, features: StorageFeatures, brainId: string): Promise<{
|
|
29
30
|
migrated: boolean;
|
|
30
31
|
}>;
|
|
32
|
+
/**
|
|
33
|
+
* The v1 -> v2 schema migration as a Migration object for MigrationRunner.
|
|
34
|
+
*
|
|
35
|
+
* The runner handles transaction wrapping, advisory locking, and the
|
|
36
|
+
* schema_version bump. This Migration's `up` function only runs the schema
|
|
37
|
+
* diff (the 14-table walk).
|
|
38
|
+
*/
|
|
39
|
+
export declare const v1ToV2: Migration;
|
|
31
40
|
//# sourceMappingURL=v1-to-v2.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v1-to-v2.d.ts","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/v1-to-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"v1-to-v2.d.ts","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/v1-to-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAgU5C;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAqChC;AA+JD;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,EAAE,SA+BpB,CAAC"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* @module memory/retrieval/store/migrations/v1-to-v2
|
|
16
16
|
*/
|
|
17
|
+
import { PORTABLE_TABLES } from '../portable-tables.js';
|
|
17
18
|
/**
|
|
18
19
|
* The 14 tables that gain `brain_id` in v2. Order matters for FK resolution:
|
|
19
20
|
* documents must exist before document_chunks; conversations before messages.
|
|
@@ -266,6 +267,12 @@ const V2_TABLES = [
|
|
|
266
267
|
primaryKey: ['brain_id', 'trace_id'],
|
|
267
268
|
// Migration: copy existing agent_id column into brain_id (legacy archive
|
|
268
269
|
// already discriminated by agent_id, which is semantically the same).
|
|
270
|
+
//
|
|
271
|
+
// CAVEAT: if the caller passes an explicit brainId override that differs
|
|
272
|
+
// from the original agent_id, archived_traces row brain_ids stay at the
|
|
273
|
+
// original agent_id values (not the override). Live tables receive the
|
|
274
|
+
// override; only archived_traces inherits agent_id. To rebrand archives,
|
|
275
|
+
// run a separate UPDATE statement after migration.
|
|
269
276
|
brainIdSourceColumn: 'agent_id',
|
|
270
277
|
indexes: [
|
|
271
278
|
`CREATE INDEX IF NOT EXISTS idx_archived_traces_brain_time
|
|
@@ -289,6 +296,16 @@ const V2_TABLES = [
|
|
|
289
296
|
],
|
|
290
297
|
},
|
|
291
298
|
];
|
|
299
|
+
// Sanity check: V2_TABLES names must exactly equal PORTABLE_TABLES order.
|
|
300
|
+
// Failing this assertion means the migration order would not match the
|
|
301
|
+
// portable-artifact order, breaking import/export.
|
|
302
|
+
const v2TableNames = V2_TABLES.map((t) => t.name);
|
|
303
|
+
const portableTableNames = [...PORTABLE_TABLES];
|
|
304
|
+
if (v2TableNames.length !== portableTableNames.length ||
|
|
305
|
+
v2TableNames.some((n, i) => n !== portableTableNames[i])) {
|
|
306
|
+
throw new Error(`v1-to-v2.ts: V2_TABLES order (${v2TableNames.join(',')}) does not match ` +
|
|
307
|
+
`PORTABLE_TABLES (${portableTableNames.join(',')}). Reconcile portable-tables.ts.`);
|
|
308
|
+
}
|
|
292
309
|
/**
|
|
293
310
|
* Run the v1 -> v2 migration on the given storage adapter.
|
|
294
311
|
*
|
|
@@ -402,10 +419,23 @@ async function migrateSqliteTable(adapter, table, brainId) {
|
|
|
402
419
|
async function migratePostgresTable(adapter, table, brainId) {
|
|
403
420
|
const escapedBrainId = brainId.replace(/'/g, "''");
|
|
404
421
|
if (table.brainIdSourceColumn) {
|
|
405
|
-
//
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
422
|
+
// Defensive: an old archived_traces table might exist without the
|
|
423
|
+
// expected source column (e.g., schema drift from manual SQL or pre-
|
|
424
|
+
// archive-feature deployments). Mirror the SQLite path's column-existence
|
|
425
|
+
// check (see migrateSqliteTable) so a missing source column falls back
|
|
426
|
+
// to the supplied brainId default rather than crashing the migration.
|
|
427
|
+
const hasSourceColumn = await postgresHasColumn(adapter, table.name, table.brainIdSourceColumn);
|
|
428
|
+
if (hasSourceColumn) {
|
|
429
|
+
await adapter.exec(`ALTER TABLE ${table.name} ADD COLUMN brain_id TEXT`);
|
|
430
|
+
await adapter.exec(`UPDATE ${table.name} SET brain_id = ${table.brainIdSourceColumn}`);
|
|
431
|
+
await adapter.exec(`ALTER TABLE ${table.name} ALTER COLUMN brain_id SET NOT NULL`);
|
|
432
|
+
}
|
|
433
|
+
else {
|
|
434
|
+
// Source column missing: fall back to the supplied brainId default,
|
|
435
|
+
// same as the no-source-column path.
|
|
436
|
+
await adapter.exec(`ALTER TABLE ${table.name} ADD COLUMN brain_id TEXT NOT NULL DEFAULT '${escapedBrainId}'`);
|
|
437
|
+
await adapter.exec(`ALTER TABLE ${table.name} ALTER COLUMN brain_id DROP DEFAULT`);
|
|
438
|
+
}
|
|
409
439
|
}
|
|
410
440
|
else {
|
|
411
441
|
await adapter.exec(`ALTER TABLE ${table.name} ADD COLUMN brain_id TEXT NOT NULL DEFAULT '${escapedBrainId}'`);
|
|
@@ -420,4 +450,42 @@ async function migratePostgresTable(adapter, table, brainId) {
|
|
|
420
450
|
await adapter.exec(idx);
|
|
421
451
|
}
|
|
422
452
|
}
|
|
453
|
+
/**
|
|
454
|
+
* The v1 -> v2 schema migration as a Migration object for MigrationRunner.
|
|
455
|
+
*
|
|
456
|
+
* The runner handles transaction wrapping, advisory locking, and the
|
|
457
|
+
* schema_version bump. This Migration's `up` function only runs the schema
|
|
458
|
+
* diff (the 14-table walk).
|
|
459
|
+
*/
|
|
460
|
+
export const v1ToV2 = {
|
|
461
|
+
version: 2,
|
|
462
|
+
up: async (adapter, _features, brainId) => {
|
|
463
|
+
// The runner already detected that schema_version < 2 (or null=fresh; in
|
|
464
|
+
// the fresh case the runner would have skipped this migration entirely).
|
|
465
|
+
// We still defensively check brain_meta column existence so a partial v1
|
|
466
|
+
// schema doesn't blow up the migration.
|
|
467
|
+
const isPostgres = adapter.kind.includes('postgres');
|
|
468
|
+
const hasBrainId = isPostgres
|
|
469
|
+
? await postgresHasColumn(adapter, 'brain_meta', 'brain_id')
|
|
470
|
+
: await sqliteHasColumn(adapter, 'brain_meta', 'brain_id');
|
|
471
|
+
if (hasBrainId) {
|
|
472
|
+
// Schema is already at v2 column shape; runner's version filter caught
|
|
473
|
+
// this case. Defensive no-op.
|
|
474
|
+
return;
|
|
475
|
+
}
|
|
476
|
+
for (const table of V2_TABLES) {
|
|
477
|
+
const exists = isPostgres
|
|
478
|
+
? await postgresTableExists(adapter, table.name)
|
|
479
|
+
: await sqliteTableExists(adapter, table.name);
|
|
480
|
+
if (!exists)
|
|
481
|
+
continue;
|
|
482
|
+
if (isPostgres) {
|
|
483
|
+
await migratePostgresTable(adapter, table, brainId);
|
|
484
|
+
}
|
|
485
|
+
else {
|
|
486
|
+
await migrateSqliteTable(adapter, table, brainId);
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
},
|
|
490
|
+
};
|
|
423
491
|
//# sourceMappingURL=v1-to-v2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v1-to-v2.js","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/v1-to-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"v1-to-v2.js","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/v1-to-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Single source of truth for the list of brain-owned tables that
|
|
3
|
+
* are exported, imported, and migrated as a portable artifact.
|
|
4
|
+
*
|
|
5
|
+
* Three call sites import from here:
|
|
6
|
+
* 1. `Brain.exportToSqlite` / `importFromSqlite` (export/import row copies)
|
|
7
|
+
* 2. `migrations/v1-to-v2.ts` (migration walk order: parents before children for FKs)
|
|
8
|
+
* 3. `__tests__/Brain.postgres.test.ts` (cleanup between tests)
|
|
9
|
+
*
|
|
10
|
+
* Adding a new portable table requires editing only this file.
|
|
11
|
+
*
|
|
12
|
+
* @module memory/retrieval/store/portable-tables
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Order matters: parents before children to satisfy FK constraints during import.
|
|
16
|
+
*/
|
|
17
|
+
export declare const PORTABLE_TABLES: readonly ["brain_meta", "memory_traces", "knowledge_nodes", "knowledge_edges", "documents", "document_chunks", "document_images", "consolidation_log", "retrieval_feedback", "conversations", "messages", "prospective_items", "archived_traces", "archive_access_log"];
|
|
18
|
+
/**
|
|
19
|
+
* Composite primary key columns for each portable table, used by
|
|
20
|
+
* `dialect.insertOrReplace` as the conflict target during merge import.
|
|
21
|
+
*
|
|
22
|
+
* Tables with `INTEGER PRIMARY KEY AUTOINCREMENT` (consolidation_log,
|
|
23
|
+
* retrieval_feedback) use `id` alone since their PK is system-generated.
|
|
24
|
+
*/
|
|
25
|
+
export declare const PORTABLE_TABLE_PRIMARY_KEYS: Record<string, string>;
|
|
26
|
+
export type PortableTable = typeof PORTABLE_TABLES[number];
|
|
27
|
+
//# sourceMappingURL=portable-tables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portable-tables.d.ts","sourceRoot":"","sources":["../../../../src/memory/retrieval/store/portable-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,yQAelB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAe9D,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Single source of truth for the list of brain-owned tables that
|
|
3
|
+
* are exported, imported, and migrated as a portable artifact.
|
|
4
|
+
*
|
|
5
|
+
* Three call sites import from here:
|
|
6
|
+
* 1. `Brain.exportToSqlite` / `importFromSqlite` (export/import row copies)
|
|
7
|
+
* 2. `migrations/v1-to-v2.ts` (migration walk order: parents before children for FKs)
|
|
8
|
+
* 3. `__tests__/Brain.postgres.test.ts` (cleanup between tests)
|
|
9
|
+
*
|
|
10
|
+
* Adding a new portable table requires editing only this file.
|
|
11
|
+
*
|
|
12
|
+
* @module memory/retrieval/store/portable-tables
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Order matters: parents before children to satisfy FK constraints during import.
|
|
16
|
+
*/
|
|
17
|
+
export const PORTABLE_TABLES = [
|
|
18
|
+
'brain_meta',
|
|
19
|
+
'memory_traces',
|
|
20
|
+
'knowledge_nodes',
|
|
21
|
+
'knowledge_edges',
|
|
22
|
+
'documents',
|
|
23
|
+
'document_chunks',
|
|
24
|
+
'document_images',
|
|
25
|
+
'consolidation_log',
|
|
26
|
+
'retrieval_feedback',
|
|
27
|
+
'conversations',
|
|
28
|
+
'messages',
|
|
29
|
+
'prospective_items',
|
|
30
|
+
'archived_traces',
|
|
31
|
+
'archive_access_log',
|
|
32
|
+
];
|
|
33
|
+
/**
|
|
34
|
+
* Composite primary key columns for each portable table, used by
|
|
35
|
+
* `dialect.insertOrReplace` as the conflict target during merge import.
|
|
36
|
+
*
|
|
37
|
+
* Tables with `INTEGER PRIMARY KEY AUTOINCREMENT` (consolidation_log,
|
|
38
|
+
* retrieval_feedback) use `id` alone since their PK is system-generated.
|
|
39
|
+
*/
|
|
40
|
+
export const PORTABLE_TABLE_PRIMARY_KEYS = {
|
|
41
|
+
brain_meta: 'brain_id, key',
|
|
42
|
+
memory_traces: 'brain_id, id',
|
|
43
|
+
knowledge_nodes: 'brain_id, id',
|
|
44
|
+
knowledge_edges: 'brain_id, id',
|
|
45
|
+
documents: 'brain_id, id',
|
|
46
|
+
document_chunks: 'brain_id, id',
|
|
47
|
+
document_images: 'brain_id, id',
|
|
48
|
+
consolidation_log: 'id',
|
|
49
|
+
retrieval_feedback: 'id',
|
|
50
|
+
conversations: 'brain_id, id',
|
|
51
|
+
messages: 'brain_id, id',
|
|
52
|
+
prospective_items: 'brain_id, id',
|
|
53
|
+
archived_traces: 'brain_id, trace_id',
|
|
54
|
+
archive_access_log: 'brain_id, trace_id, accessed_at',
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=portable-tables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portable-tables.js","sourceRoot":"","sources":["../../../../src/memory/retrieval/store/portable-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,iBAAiB;IACjB,WAAW;IACX,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;IACpB,eAAe;IACf,UAAU;IACV,mBAAmB;IACnB,iBAAiB;IACjB,oBAAoB;CACZ,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IACjE,UAAU,EAAE,eAAe;IAC3B,aAAa,EAAE,cAAc;IAC7B,eAAe,EAAE,cAAc;IAC/B,eAAe,EAAE,cAAc;IAC/B,SAAS,EAAE,cAAc;IACzB,eAAe,EAAE,cAAc;IAC/B,eAAe,EAAE,cAAc;IAC/B,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,IAAI;IACxB,aAAa,EAAE,cAAc;IAC7B,QAAQ,EAAE,cAAc;IACxB,iBAAiB,EAAE,cAAc;IACjC,eAAe,EAAE,oBAAoB;IACrC,kBAAkB,EAAE,iCAAiC;CACtD,CAAC"}
|