@polpo-ai/drizzle 0.10.2 → 0.10.4

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 @@
1
+ {"version":3,"file":"loop-runs.d.ts","sourceRoot":"","sources":["../../src/schema/loop-runs.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBzB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBrB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { sqliteTable, text, index } from "drizzle-orm/sqlite-core";
2
+ import { pgTable, text as pgText, jsonb, varchar, index as pgIndex } from "drizzle-orm/pg-core";
3
+ export const loopRunsSqlite = sqliteTable("loop_runs", {
4
+ id: text("id").primaryKey(),
5
+ loopName: text("loop_name").notNull(),
6
+ agentName: text("agent_name"),
7
+ sessionId: text("session_id"),
8
+ user: text("user"),
9
+ status: text("status").notNull().default("running"),
10
+ context: text("context").notNull().default("{}"),
11
+ trace: text("trace").notNull().default("[]"),
12
+ error: text("error"),
13
+ approvalRequestId: text("approval_request_id"),
14
+ approval: text("approval"),
15
+ metadata: text("metadata"),
16
+ startedAt: text("started_at").notNull(),
17
+ updatedAt: text("updated_at").notNull(),
18
+ completedAt: text("completed_at"),
19
+ }, (table) => [
20
+ index("idx_loop_runs_status").on(table.status),
21
+ index("idx_loop_runs_loop_name").on(table.loopName),
22
+ index("idx_loop_runs_agent_name").on(table.agentName),
23
+ index("idx_loop_runs_session_id").on(table.sessionId),
24
+ index("idx_loop_runs_user").on(table.user),
25
+ ]);
26
+ export const loopRunsPg = pgTable("loop_runs", {
27
+ id: pgText("id").primaryKey(),
28
+ loopName: pgText("loop_name").notNull(),
29
+ agentName: pgText("agent_name"),
30
+ sessionId: pgText("session_id"),
31
+ user: pgText("user"),
32
+ status: varchar("status", { length: 32 }).notNull().default("running"),
33
+ context: jsonb("context").notNull().default({}),
34
+ trace: jsonb("trace").notNull().default([]),
35
+ error: pgText("error"),
36
+ approvalRequestId: pgText("approval_request_id"),
37
+ approval: jsonb("approval"),
38
+ metadata: jsonb("metadata"),
39
+ startedAt: pgText("started_at").notNull(),
40
+ updatedAt: pgText("updated_at").notNull(),
41
+ completedAt: pgText("completed_at"),
42
+ }, (table) => [
43
+ pgIndex("idx_pg_loop_runs_status").on(table.status),
44
+ pgIndex("idx_pg_loop_runs_loop_name").on(table.loopName),
45
+ pgIndex("idx_pg_loop_runs_agent_name").on(table.agentName),
46
+ pgIndex("idx_pg_loop_runs_session_id").on(table.sessionId),
47
+ pgIndex("idx_pg_loop_runs_user").on(table.user),
48
+ ]);
49
+ //# sourceMappingURL=loop-runs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-runs.js","sourceRoot":"","sources":["../../src/schema/loop-runs.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export { DrizzleTaskStore } from "./task-store.js";
2
2
  export type { TaskStoreSchema } from "./task-store.js";
3
3
  export { DrizzleRunStore } from "./run-store.js";
4
+ export { DrizzleLoopRunStore } from "./loop-run-store.js";
4
5
  export { DrizzleSessionStore } from "./session-store.js";
5
6
  export { DrizzleLogStore } from "./log-store.js";
6
7
  export { DrizzleApprovalStore } from "./approval-store.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { DrizzleTaskStore } from "./task-store.js";
2
2
  export { DrizzleRunStore } from "./run-store.js";
3
+ export { DrizzleLoopRunStore } from "./loop-run-store.js";
3
4
  export { DrizzleSessionStore } from "./session-store.js";
4
5
  export { DrizzleLogStore } from "./log-store.js";
5
6
  export { DrizzleApprovalStore } from "./approval-store.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { CreateLoopRunInput, LoopRunListFilter, LoopRunRecord, LoopRunStore } from "@polpo-ai/core/loop-run-store";
2
+ import type { LoopTraceEvent } from "@polpo-ai/core";
3
+ import { type Dialect } from "../utils.js";
4
+ type AnyTable = any;
5
+ export declare class DrizzleLoopRunStore implements LoopRunStore {
6
+ private db;
7
+ private loopRuns;
8
+ private dialect;
9
+ constructor(db: any, loopRuns: AnyTable, dialect: Dialect);
10
+ private rowToRecord;
11
+ createRun(input: CreateLoopRunInput): Promise<LoopRunRecord>;
12
+ getRun(id: string): Promise<LoopRunRecord | undefined>;
13
+ listRuns(filter?: LoopRunListFilter): Promise<LoopRunRecord[]>;
14
+ appendTrace(runId: string, event: LoopTraceEvent): Promise<void>;
15
+ updateRun(runId: string, patch: Partial<Omit<LoopRunRecord, "id" | "startedAt">>): Promise<LoopRunRecord | undefined>;
16
+ close(): Promise<void>;
17
+ private recordToValues;
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=loop-run-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-run-store.d.ts","sourceRoot":"","sources":["../../src/stores/loop-run-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EAEb,YAAY,EACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,KAAK,OAAO,EAAkC,MAAM,aAAa,CAAC;AAE3E,KAAK,QAAQ,GAAG,GAAG,CAAC;AAEpB,qBAAa,mBAAoB,YAAW,YAAY;IAEpD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;gBAFP,EAAE,EAAE,GAAG,EACP,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO;IAG1B,OAAO,CAAC,WAAW;IAoBb,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IA0B5D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAKtD,QAAQ,CAAC,MAAM,GAAE,iBAAsB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAgBlE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAcrH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,OAAO,CAAC,cAAc;CAmBvB"}
@@ -0,0 +1,123 @@
1
+ import { and, desc, eq } from "drizzle-orm";
2
+ import { deserializeJson, serializeJson } from "../utils.js";
3
+ export class DrizzleLoopRunStore {
4
+ db;
5
+ loopRuns;
6
+ dialect;
7
+ constructor(db, loopRuns, dialect) {
8
+ this.db = db;
9
+ this.loopRuns = loopRuns;
10
+ this.dialect = dialect;
11
+ }
12
+ rowToRecord(row) {
13
+ return {
14
+ id: row.id,
15
+ loopName: row.loopName,
16
+ agentName: row.agentName ?? undefined,
17
+ sessionId: row.sessionId ?? undefined,
18
+ user: row.user ?? undefined,
19
+ status: row.status,
20
+ context: deserializeJson(row.context, {}, this.dialect),
21
+ trace: deserializeJson(row.trace, [], this.dialect),
22
+ error: row.error ?? undefined,
23
+ approvalRequestId: row.approvalRequestId ?? undefined,
24
+ approval: deserializeJson(row.approval, undefined, this.dialect),
25
+ metadata: deserializeJson(row.metadata, undefined, this.dialect),
26
+ startedAt: row.startedAt,
27
+ updatedAt: row.updatedAt,
28
+ completedAt: row.completedAt ?? undefined,
29
+ };
30
+ }
31
+ async createRun(input) {
32
+ const now = new Date().toISOString();
33
+ const run = {
34
+ id: input.id,
35
+ loopName: input.loop.name,
36
+ agentName: input.agentName,
37
+ sessionId: input.sessionId,
38
+ user: input.user,
39
+ status: "running",
40
+ context: input.context ?? {},
41
+ trace: [],
42
+ metadata: {
43
+ ...input.loop.metadata,
44
+ ...input.metadata,
45
+ },
46
+ startedAt: now,
47
+ updatedAt: now,
48
+ };
49
+ await this.db.insert(this.loopRuns).values(this.recordToValues(run))
50
+ .onConflictDoUpdate({
51
+ target: this.loopRuns.id,
52
+ set: this.recordToValues(run),
53
+ });
54
+ return run;
55
+ }
56
+ async getRun(id) {
57
+ const rows = await this.db.select().from(this.loopRuns).where(eq(this.loopRuns.id, id)).limit(1);
58
+ return rows[0] ? this.rowToRecord(rows[0]) : undefined;
59
+ }
60
+ async listRuns(filter = {}) {
61
+ const clauses = [];
62
+ if (filter.loopName)
63
+ clauses.push(eq(this.loopRuns.loopName, filter.loopName));
64
+ if (filter.agentName)
65
+ clauses.push(eq(this.loopRuns.agentName, filter.agentName));
66
+ if (filter.sessionId)
67
+ clauses.push(eq(this.loopRuns.sessionId, filter.sessionId));
68
+ if (filter.user)
69
+ clauses.push(eq(this.loopRuns.user, filter.user));
70
+ if (filter.status)
71
+ clauses.push(eq(this.loopRuns.status, filter.status));
72
+ let query = this.db.select().from(this.loopRuns).orderBy(desc(this.loopRuns.startedAt));
73
+ if (clauses.length > 0)
74
+ query = query.where(and(...clauses));
75
+ if (filter.limit)
76
+ query = query.limit(filter.limit);
77
+ const rows = await query;
78
+ return rows.map((row) => this.rowToRecord(row));
79
+ }
80
+ async appendTrace(runId, event) {
81
+ const run = await this.getRun(runId);
82
+ if (!run)
83
+ return;
84
+ await this.updateRun(runId, { trace: [...run.trace, event] });
85
+ }
86
+ async updateRun(runId, patch) {
87
+ const current = await this.getRun(runId);
88
+ if (!current)
89
+ return undefined;
90
+ const updated = {
91
+ ...current,
92
+ ...patch,
93
+ updatedAt: patch.updatedAt ?? new Date().toISOString(),
94
+ };
95
+ await this.db.update(this.loopRuns)
96
+ .set(this.recordToValues(updated))
97
+ .where(eq(this.loopRuns.id, runId));
98
+ return updated;
99
+ }
100
+ async close() {
101
+ // Connection lifecycle managed externally.
102
+ }
103
+ recordToValues(run) {
104
+ return {
105
+ id: run.id,
106
+ loopName: run.loopName,
107
+ agentName: run.agentName ?? null,
108
+ sessionId: run.sessionId ?? null,
109
+ user: run.user ?? null,
110
+ status: run.status,
111
+ context: serializeJson(run.context, this.dialect),
112
+ trace: serializeJson(run.trace, this.dialect),
113
+ error: run.error ?? null,
114
+ approvalRequestId: run.approvalRequestId ?? null,
115
+ approval: serializeJson(run.approval, this.dialect),
116
+ metadata: serializeJson(run.metadata, this.dialect),
117
+ startedAt: run.startedAt,
118
+ updatedAt: run.updatedAt,
119
+ completedAt: run.completedAt ?? null,
120
+ };
121
+ }
122
+ }
123
+ //# sourceMappingURL=loop-run-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-run-store.js","sourceRoot":"","sources":["../../src/stores/loop-run-store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polpo-ai/drizzle",
3
- "version": "0.10.2",
3
+ "version": "0.10.4",
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/core": "0.10.2",
19
- "@polpo-ai/vault-crypto": "0.10.2"
18
+ "@polpo-ai/core": "0.10.4",
19
+ "@polpo-ai/vault-crypto": "0.10.4"
20
20
  },
21
21
  "peerDependencies": {
22
22
  "postgres": "^3.4.0",