@polpo-ai/drizzle 0.10.13 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=migrator-pg.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator-pg.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/migrator-pg.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * migratePgSchema — evolves pre-existing tables to the current schema.
3
+ *
4
+ * Simulates a database provisioned by an OLDER version (tasks table with a
5
+ * subset of today's columns), runs the migrator, and verifies every column
6
+ * from the canonical Drizzle definition exists and the stores work.
7
+ *
8
+ * Requires TEST_DATABASE_URL (default: postgresql://postgres:postgres@localhost:5432/polpo_test).
9
+ * Skipped when no PG connection is available — CI provides a container.
10
+ */
11
+ import { describe, it, expect, beforeAll, afterAll } from "vitest";
12
+ import { sql } from "drizzle-orm";
13
+ import { getTableConfig } from "drizzle-orm/pg-core";
14
+ import postgres from "postgres";
15
+ import { drizzle } from "drizzle-orm/postgres-js";
16
+ import { createPgStores } from "../index.js";
17
+ import { migratePgSchema } from "../migrator.js";
18
+ import { tasksPg } from "../schema/index.js";
19
+ const BASE_URL = process.env.TEST_DATABASE_URL ?? "postgresql://postgres:postgres@localhost:5432/polpo_test";
20
+ // Dedicated database: this suite drops/recreates tables to simulate an old
21
+ // deployment, and must not race the stores-pg suite on the shared test DB.
22
+ const MIGRATOR_DB = "polpo_test_migrator";
23
+ const DATABASE_URL = BASE_URL.replace(/\/[^/]+$/, `/${MIGRATOR_DB}`);
24
+ let canConnect = false;
25
+ try {
26
+ const admin = postgres(BASE_URL, { max: 1, connect_timeout: 3 });
27
+ await admin `SELECT 1`;
28
+ const exists = await admin `SELECT 1 FROM pg_database WHERE datname = ${MIGRATOR_DB}`;
29
+ if (exists.length === 0) {
30
+ await admin.unsafe(`CREATE DATABASE ${MIGRATOR_DB}`);
31
+ }
32
+ await admin.end();
33
+ const probe = postgres(DATABASE_URL, { max: 1, connect_timeout: 3 });
34
+ await probe `SELECT 1`;
35
+ await probe.end();
36
+ canConnect = true;
37
+ }
38
+ catch {
39
+ canConnect = false;
40
+ }
41
+ describe.skipIf(!canConnect)("migratePgSchema", () => {
42
+ let client;
43
+ let db;
44
+ beforeAll(async () => {
45
+ client = postgres(DATABASE_URL, { max: 4 });
46
+ db = drizzle(client);
47
+ // Simulate a v-old database: drop everything, then create a degraded
48
+ // tasks table with only the original column subset.
49
+ await db.execute(sql.raw(`DROP TABLE IF EXISTS log_entries, messages, attachments, approvals, runs, loop_runs, tasks, missions, processes, metadata, sessions, log_sessions, memory, agents, teams, vault, playbooks, skills CASCADE`));
50
+ await db.execute(sql.raw(`CREATE TABLE tasks (
51
+ id TEXT PRIMARY KEY,
52
+ title TEXT NOT NULL,
53
+ description TEXT NOT NULL,
54
+ assign_to TEXT NOT NULL,
55
+ status VARCHAR(32) NOT NULL DEFAULT 'pending',
56
+ created_at TEXT NOT NULL,
57
+ updated_at TEXT NOT NULL
58
+ )`));
59
+ });
60
+ afterAll(async () => {
61
+ await client?.end();
62
+ });
63
+ it("adds every missing column from the canonical Drizzle schema", async () => {
64
+ await migratePgSchema(db);
65
+ const rows = await db.execute(sql.raw(`SELECT column_name FROM information_schema.columns WHERE table_name = 'tasks'`));
66
+ const list = Array.isArray(rows) ? rows : rows.rows;
67
+ const present = new Set(list.map((r) => r.column_name));
68
+ const expected = getTableConfig(tasksPg).columns.map((c) => c.name);
69
+ expect(expected.length).toBeGreaterThan(10);
70
+ for (const col of expected) {
71
+ expect(present.has(col), `missing column: ${col}`).toBe(true);
72
+ }
73
+ });
74
+ it("is idempotent — a second run changes nothing and does not throw", async () => {
75
+ await migratePgSchema(db);
76
+ await migratePgSchema(db);
77
+ });
78
+ it("stores work against the migrated legacy table", async () => {
79
+ const stores = createPgStores(db);
80
+ const now = new Date().toISOString();
81
+ const created = await stores.taskStore.addTask({
82
+ title: "post-migration task",
83
+ description: "written through the store after column backfill",
84
+ assignTo: "agent-1",
85
+ status: "pending",
86
+ expectations: [],
87
+ dependsOn: [],
88
+ createdAt: now,
89
+ updatedAt: now,
90
+ });
91
+ const task = await stores.taskStore.getTask(created.id);
92
+ expect(task).toBeTruthy();
93
+ expect(task.title).toBe("post-migration task");
94
+ });
95
+ });
96
+ //# sourceMappingURL=migrator-pg.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator-pg.test.js","sourceRoot":"","sources":["../../src/__tests__/migrator-pg.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -15,6 +15,7 @@
15
15
  export * from "./stores/index.js";
16
16
  export * from "./schema/index.js";
17
17
  export { ensurePgSchema } from "./migrate.js";
18
+ export { migratePgSchema } from "./migrator.js";
18
19
  export type { Dialect } from "./utils.js";
19
20
  import type { TaskStore } from "@polpo-ai/core/task-store";
20
21
  import type { RunStore } from "@polpo-ai/core/run-store";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBpB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBxB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBpB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBxB,CAAC"}
package/dist/index.js CHANGED
@@ -16,6 +16,7 @@
16
16
  export * from "./stores/index.js";
17
17
  export * from "./schema/index.js";
18
18
  export { ensurePgSchema } from "./migrate.js";
19
+ export { migratePgSchema } from "./migrator.js";
19
20
  // ── Schema sets ───────────────────────────────────────────────────────
20
21
  import { tasksPg, missionsPg, metadataPg, processesPg, tasksSqlite, missionsSqlite, metadataSqlite, processesSqlite, } from "./schema/tasks.js";
21
22
  import { runsPg, runsSqlite } from "./schema/runs.js";
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":"AAAA;;;;;;;;;;;;;GAaG;AAEH,yEAAyE;AAEzE,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,yEAAyE;AAEzE,OAAO,EACL,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAC5C,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,GAC7D,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EACL,OAAO,EAAE,QAAQ,EACjB,WAAW,EAAE,YAAY,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE5D,yEAAyE;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAwC5D,yEAAyE;AAEzE;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,EAAO;IACpC,OAAO;QACL,SAAS,EAAE,IAAI,gBAAgB,CAAC,EAAE,EAAE;YAClC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW;SACnF,EAAE,IAAI,CAAC;QACR,QAAQ,EAAE,IAAI,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC;QAC/C,YAAY,EAAE,IAAI,mBAAmB,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC;QAC3D,YAAY,EAAE,IAAI,mBAAmB,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC;QACvE,QAAQ,EAAE,IAAI,eAAe,CAAC,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC;QACpE,aAAa,EAAE,IAAI,oBAAoB,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC;QAC9D,WAAW,EAAE,IAAI,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC;QACjD,eAAe,EAAE,IAAI,sBAAsB,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC;QACjE,UAAU,EAAE,IAAI,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC;QACvD,WAAW,EAAE,IAAI,kBAAkB,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC;QACzD,SAAS,EAAE,IAAI,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC;QAC5D,UAAU,EAAE,IAAI,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC;QACrD,UAAU,EAAE,IAAI,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC;QAC9C,aAAa,EAAE,IAAI,oBAAoB,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC;QAC9D,eAAe,EAAE,IAAI,sBAAsB,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC;QACpE,UAAU,EAAE,IAAI,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,yEAAyE;AAEzE;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAO;IACxC,OAAO;QACL,SAAS,EAAE,IAAI,gBAAgB,CAAC,EAAE,EAAE;YAClC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe;SACnG,EAAE,QAAQ,CAAC;QACZ,QAAQ,EAAE,IAAI,eAAe,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC;QACvD,YAAY,EAAE,IAAI,mBAAmB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,CAAC;QACnE,YAAY,EAAE,IAAI,mBAAmB,CAAC,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,CAAC;QACnF,QAAQ,EAAE,IAAI,eAAe,CAAC,EAAE,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,CAAC;QAChF,aAAa,EAAE,IAAI,oBAAoB,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,CAAC;QACtE,WAAW,EAAE,IAAI,kBAAkB,CAAC,EAAE,EAAE,YAAY,CAAC;QACrD,eAAe,EAAE,IAAI,sBAAsB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,CAAC;QACzE,UAAU,EAAE,IAAI,iBAAiB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,CAAC;QAC/D,WAAW,EAAE,IAAI,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,CAAC;QACjE,SAAS,EAAE,IAAI,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC;QACxE,UAAU,EAAE,IAAI,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC;QAC7D,UAAU,EAAE,IAAI,iBAAiB,CAAC,EAAE,EAAE,WAAW,CAAC;QAClD,aAAa,EAAE,IAAI,oBAAoB,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,CAAC;QACtE,eAAe,EAAE,IAAI,sBAAsB,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,CAAC;QAC5E,UAAU,EAAE,IAAI,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC;KAC9D,CAAC;AACJ,CAAC;AAED,yEAAyE;AAEzE,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,cAAc;IACxB,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,cAAc;IACxB,WAAW,EAAE,iBAAiB;IAC9B,UAAU,EAAE,gBAAgB;IAC5B,SAAS,EAAE,eAAe;IAC1B,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,eAAe;IAC1B,WAAW,EAAE,iBAAiB;IAC9B,MAAM,EAAE,YAAY;CACrB,CAAC"}
package/dist/migrate.d.ts CHANGED
@@ -6,5 +6,18 @@
6
6
  *
7
7
  * @param db A Drizzle PostgreSQL database instance
8
8
  */
9
+ export declare function ensurePgTables(db: any): Promise<void>;
10
+ /**
11
+ * Ensure all PostgreSQL indexes exist. Kept separate from table creation so
12
+ * the migrator can add missing COLUMNS first — creating an index on a
13
+ * column that predates the column's introduction would fail on databases
14
+ * provisioned by older versions.
15
+ */
16
+ export declare function ensurePgIndexes(db: any): Promise<void>;
17
+ /**
18
+ * Ensure all PostgreSQL tables and indexes exist. Runs CREATE TABLE/INDEX
19
+ * IF NOT EXISTS — does NOT evolve existing tables (see migratePgSchema in
20
+ * migrator.ts for the idempotent column migrator).
21
+ */
9
22
  export declare function ensurePgSchema(db: any): Promise<void>;
10
23
  //# sourceMappingURL=migrate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA6Q3D"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAuP3D;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB5D;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3D"}
package/dist/migrate.js CHANGED
@@ -7,7 +7,7 @@ import { sql } from "drizzle-orm";
7
7
  *
8
8
  * @param db A Drizzle PostgreSQL database instance
9
9
  */
10
- export async function ensurePgSchema(db) {
10
+ export async function ensurePgTables(db) {
11
11
  await db.execute(sql `CREATE TABLE IF NOT EXISTS metadata (
12
12
  key TEXT PRIMARY KEY,
13
13
  value JSONB NOT NULL DEFAULT '{}'
@@ -54,13 +54,8 @@ export async function ensurePgSchema(db) {
54
54
  created_at TEXT NOT NULL,
55
55
  updated_at TEXT NOT NULL
56
56
  )`);
57
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_tasks_status ON tasks(status)`);
58
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_tasks_group ON tasks("group")`);
59
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_tasks_assign_to ON tasks(assign_to)`);
60
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_tasks_mission_id ON tasks(mission_id)`);
61
57
  // OpenAI-compat user column — additive, idempotent
62
58
  await db.execute(sql `ALTER TABLE tasks ADD COLUMN IF NOT EXISTS "user" TEXT`);
63
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_tasks_user ON tasks("user")`);
64
59
  await db.execute(sql `CREATE TABLE IF NOT EXISTS missions (
65
60
  id TEXT PRIMARY KEY,
66
61
  name TEXT NOT NULL UNIQUE,
@@ -76,9 +71,7 @@ export async function ensurePgSchema(db) {
76
71
  created_at TEXT NOT NULL,
77
72
  updated_at TEXT NOT NULL
78
73
  )`);
79
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_missions_status ON missions(status)`);
80
74
  await db.execute(sql `ALTER TABLE missions ADD COLUMN IF NOT EXISTS "user" TEXT`);
81
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_missions_user ON missions("user")`);
82
75
  await db.execute(sql `CREATE TABLE IF NOT EXISTS processes (
83
76
  agent_name TEXT NOT NULL,
84
77
  pid INTEGER NOT NULL,
@@ -103,10 +96,7 @@ export async function ensurePgSchema(db) {
103
96
  config JSONB,
104
97
  config_path TEXT NOT NULL
105
98
  )`);
106
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_runs_status ON runs(status)`);
107
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_runs_task_id ON runs(task_id)`);
108
99
  await db.execute(sql `ALTER TABLE runs ADD COLUMN IF NOT EXISTS "user" TEXT`);
109
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_runs_user ON runs("user")`);
110
100
  await db.execute(sql `CREATE TABLE IF NOT EXISTS loop_runs (
111
101
  id TEXT PRIMARY KEY,
112
102
  loop_name TEXT NOT NULL,
@@ -125,12 +115,7 @@ export async function ensurePgSchema(db) {
125
115
  updated_at TEXT NOT NULL,
126
116
  completed_at TEXT
127
117
  )`);
128
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_loop_runs_status ON loop_runs(status)`);
129
118
  await db.execute(sql `ALTER TABLE loop_runs ADD COLUMN IF NOT EXISTS resume JSONB`);
130
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_loop_runs_loop_name ON loop_runs(loop_name)`);
131
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_loop_runs_agent_name ON loop_runs(agent_name)`);
132
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_loop_runs_session_id ON loop_runs(session_id)`);
133
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_loop_runs_user ON loop_runs("user")`);
134
119
  await db.execute(sql `CREATE TABLE IF NOT EXISTS sessions (
135
120
  id TEXT PRIMARY KEY,
136
121
  title TEXT,
@@ -142,7 +127,6 @@ export async function ensurePgSchema(db) {
142
127
  )`);
143
128
  await db.execute(sql `ALTER TABLE sessions ADD COLUMN IF NOT EXISTS "user" TEXT`);
144
129
  await db.execute(sql `ALTER TABLE sessions ADD COLUMN IF NOT EXISTS metadata JSONB`);
145
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_sessions_user ON sessions("user")`);
146
130
  await db.execute(sql `CREATE TABLE IF NOT EXISTS messages (
147
131
  id TEXT PRIMARY KEY,
148
132
  session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
@@ -151,7 +135,6 @@ export async function ensurePgSchema(db) {
151
135
  ts TEXT NOT NULL,
152
136
  tool_calls TEXT
153
137
  )`);
154
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_messages_session ON messages(session_id, ts)`);
155
138
  await db.execute(sql `CREATE TABLE IF NOT EXISTS log_sessions (
156
139
  id TEXT PRIMARY KEY,
157
140
  started_at TEXT NOT NULL
@@ -163,8 +146,6 @@ export async function ensurePgSchema(db) {
163
146
  event TEXT NOT NULL,
164
147
  data JSONB
165
148
  )`);
166
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_log_entries_session ON log_entries(session_id)`);
167
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_log_entries_ts ON log_entries(ts)`);
168
149
  await db.execute(sql `CREATE TABLE IF NOT EXISTS approvals (
169
150
  id TEXT PRIMARY KEY,
170
151
  gate_id TEXT NOT NULL,
@@ -178,8 +159,6 @@ export async function ensurePgSchema(db) {
178
159
  resolved_by TEXT,
179
160
  note TEXT
180
161
  )`);
181
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_approvals_status ON approvals(status)`);
182
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_approvals_task_id ON approvals(task_id)`);
183
162
  await db.execute(sql `CREATE TABLE IF NOT EXISTS memory (
184
163
  key TEXT PRIMARY KEY,
185
164
  content TEXT NOT NULL DEFAULT ''
@@ -228,7 +207,6 @@ export async function ensurePgSchema(db) {
228
207
  path TEXT NOT NULL,
229
208
  created_at TEXT NOT NULL
230
209
  )`);
231
- await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_attachments_session_id ON attachments(session_id)`);
232
210
  // Migration: add message_id column if missing (added in v0.2.16)
233
211
  await db.execute(sql `
234
212
  DO $$ BEGIN
@@ -250,4 +228,43 @@ export async function ensurePgSchema(db) {
250
228
  category TEXT
251
229
  )`);
252
230
  }
231
+ /**
232
+ * Ensure all PostgreSQL indexes exist. Kept separate from table creation so
233
+ * the migrator can add missing COLUMNS first — creating an index on a
234
+ * column that predates the column's introduction would fail on databases
235
+ * provisioned by older versions.
236
+ */
237
+ export async function ensurePgIndexes(db) {
238
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_tasks_status ON tasks(status)`);
239
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_tasks_group ON tasks("group")`);
240
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_tasks_assign_to ON tasks(assign_to)`);
241
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_tasks_mission_id ON tasks(mission_id)`);
242
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_tasks_user ON tasks("user")`);
243
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_missions_status ON missions(status)`);
244
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_missions_user ON missions("user")`);
245
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_runs_status ON runs(status)`);
246
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_runs_task_id ON runs(task_id)`);
247
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_runs_user ON runs("user")`);
248
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_loop_runs_status ON loop_runs(status)`);
249
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_loop_runs_loop_name ON loop_runs(loop_name)`);
250
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_loop_runs_agent_name ON loop_runs(agent_name)`);
251
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_loop_runs_session_id ON loop_runs(session_id)`);
252
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_loop_runs_user ON loop_runs("user")`);
253
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_sessions_user ON sessions("user")`);
254
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_messages_session ON messages(session_id, ts)`);
255
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_log_entries_session ON log_entries(session_id)`);
256
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_log_entries_ts ON log_entries(ts)`);
257
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_approvals_status ON approvals(status)`);
258
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_approvals_task_id ON approvals(task_id)`);
259
+ await db.execute(sql `CREATE INDEX IF NOT EXISTS idx_pg_attachments_session_id ON attachments(session_id)`);
260
+ }
261
+ /**
262
+ * Ensure all PostgreSQL tables and indexes exist. Runs CREATE TABLE/INDEX
263
+ * IF NOT EXISTS — does NOT evolve existing tables (see migratePgSchema in
264
+ * migrator.ts for the idempotent column migrator).
265
+ */
266
+ export async function ensurePgSchema(db) {
267
+ await ensurePgTables(db);
268
+ await ensurePgIndexes(db);
269
+ }
253
270
  //# sourceMappingURL=migrate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Idempotent PostgreSQL schema migrator.
3
+ *
4
+ * ensurePgSchema only runs CREATE TABLE IF NOT EXISTS — it never evolves
5
+ * tables that already exist, so long-lived databases provisioned by older
6
+ * versions silently miss columns added later (the cloud data plane had to
7
+ * maintain its own ADD COLUMN patch list for exactly this reason).
8
+ *
9
+ * migratePgSchema closes that gap: after ensuring tables exist, it walks
10
+ * the ACTUAL Drizzle table definitions (single source of truth — no
11
+ * hand-maintained column list) and issues
12
+ * `ALTER TABLE .. ADD COLUMN IF NOT EXISTS ..` for every column.
13
+ *
14
+ * Columns added to pre-existing tables are nullable by design (existing
15
+ * rows can't satisfy NOT NULL without a default); when the schema defines
16
+ * a simple default it is applied so new rows keep the canonical shape.
17
+ */
18
+ /**
19
+ * Ensure all tables exist AND all known columns exist on them.
20
+ * Safe to call on every startup; each statement is executed individually
21
+ * (compatible with both WebSocket and HTTP drivers, e.g. Neon).
22
+ */
23
+ export declare function migratePgSchema(db: any): Promise<void>;
24
+ //# sourceMappingURL=migrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../src/migrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA0CH;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB5D"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Idempotent PostgreSQL schema migrator.
3
+ *
4
+ * ensurePgSchema only runs CREATE TABLE IF NOT EXISTS — it never evolves
5
+ * tables that already exist, so long-lived databases provisioned by older
6
+ * versions silently miss columns added later (the cloud data plane had to
7
+ * maintain its own ADD COLUMN patch list for exactly this reason).
8
+ *
9
+ * migratePgSchema closes that gap: after ensuring tables exist, it walks
10
+ * the ACTUAL Drizzle table definitions (single source of truth — no
11
+ * hand-maintained column list) and issues
12
+ * `ALTER TABLE .. ADD COLUMN IF NOT EXISTS ..` for every column.
13
+ *
14
+ * Columns added to pre-existing tables are nullable by design (existing
15
+ * rows can't satisfy NOT NULL without a default); when the schema defines
16
+ * a simple default it is applied so new rows keep the canonical shape.
17
+ */
18
+ import { sql } from "drizzle-orm";
19
+ import { getTableConfig } from "drizzle-orm/pg-core";
20
+ import { ensurePgTables, ensurePgIndexes } from "./migrate.js";
21
+ import { tasksPg, missionsPg, metadataPg, processesPg, runsPg, loopRunsPg, sessionsPg, messagesPg, logSessionsPg, logEntriesPg, approvalsPg, memoryPg, teamsPg, agentsPg, vaultPg, playbooksPg, attachmentsPg, skillsPg, } from "./schema/index.js";
22
+ const PG_TABLES = [
23
+ tasksPg, missionsPg, metadataPg, processesPg,
24
+ runsPg, loopRunsPg,
25
+ sessionsPg, messagesPg,
26
+ logSessionsPg, logEntriesPg,
27
+ approvalsPg, memoryPg,
28
+ teamsPg, agentsPg,
29
+ vaultPg, playbooksPg,
30
+ attachmentsPg, skillsPg,
31
+ ];
32
+ /** Render a Drizzle column default as SQL, or undefined when it can't be
33
+ * expressed safely (SQL expressions, functions — the column is simply
34
+ * added without a default in that case). */
35
+ function renderDefault(value) {
36
+ if (value === undefined)
37
+ return undefined;
38
+ if (value === null)
39
+ return "NULL";
40
+ if (typeof value === "number")
41
+ return String(value);
42
+ if (typeof value === "boolean")
43
+ return value ? "TRUE" : "FALSE";
44
+ if (typeof value === "string")
45
+ return `'${value.replace(/'/g, "''")}'`;
46
+ if (Array.isArray(value) || typeof value === "object") {
47
+ return `'${JSON.stringify(value).replace(/'/g, "''")}'`;
48
+ }
49
+ return undefined;
50
+ }
51
+ /**
52
+ * Ensure all tables exist AND all known columns exist on them.
53
+ * Safe to call on every startup; each statement is executed individually
54
+ * (compatible with both WebSocket and HTTP drivers, e.g. Neon).
55
+ */
56
+ export async function migratePgSchema(db) {
57
+ // Tables first, columns second, indexes LAST: an index on a column that
58
+ // predates the column's introduction would fail on old databases.
59
+ await ensurePgTables(db);
60
+ for (const table of PG_TABLES) {
61
+ const cfg = getTableConfig(table);
62
+ for (const col of cfg.columns) {
63
+ let ddl = `ALTER TABLE "${cfg.name}" ADD COLUMN IF NOT EXISTS "${col.name}" ${col.getSQLType()}`;
64
+ const def = renderDefault(col.default);
65
+ if (def !== undefined) {
66
+ ddl += ` DEFAULT ${def}`;
67
+ }
68
+ await db.execute(sql.raw(ddl));
69
+ }
70
+ }
71
+ await ensurePgIndexes(db);
72
+ }
73
+ //# sourceMappingURL=migrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator.js","sourceRoot":"","sources":["../src/migrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EACL,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAC5C,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,YAAY,EAC3B,WAAW,EAAE,QAAQ,EACrB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,QAAQ,GACxB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW;IAC5C,MAAM,EAAE,UAAU;IAClB,UAAU,EAAE,UAAU;IACtB,aAAa,EAAE,YAAY;IAC3B,WAAW,EAAE,QAAQ;IACrB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,WAAW;IACpB,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF;;6CAE6C;AAC7C,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;IACvE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACtD,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;IAC1D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAO;IAC3C,wEAAwE;IACxE,kEAAkE;IAClE,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;IAEzB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,GAAG,GAAG,gBAAgB,GAAG,CAAC,IAAI,+BAA+B,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;YACjG,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,GAAG,IAAI,YAAY,GAAG,EAAE,CAAC;YAC3B,CAAC;YACD,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;AAC5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polpo-ai/drizzle",
3
- "version": "0.10.13",
3
+ "version": "0.11.0",
4
4
  "description": "Drizzle ORM store implementations for the Polpo AI agent orchestration platform (PostgreSQL + SQLite)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -15,8 +15,8 @@
15
15
  "dependencies": {
16
16
  "drizzle-orm": "^0.44.0",
17
17
  "nanoid": "^5.1.2",
18
- "@polpo-ai/vault-crypto": "0.10.13",
19
- "@polpo-ai/core": "0.10.13"
18
+ "@polpo-ai/core": "0.11.0",
19
+ "@polpo-ai/vault-crypto": "0.11.0"
20
20
  },
21
21
  "peerDependencies": {
22
22
  "postgres": "^3.4.0",