@assemblyline-agents/postgres 0.1.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.
- package/LICENSE +21 -0
- package/README.md +19 -0
- package/dist/adapter-checkpoints.d.ts +6 -0
- package/dist/adapter-checkpoints.d.ts.map +1 -0
- package/dist/adapter-checkpoints.js +110 -0
- package/dist/adapter-checkpoints.js.map +1 -0
- package/dist/adapter-conversation-turns.d.ts +20 -0
- package/dist/adapter-conversation-turns.d.ts.map +1 -0
- package/dist/adapter-conversation-turns.js +216 -0
- package/dist/adapter-conversation-turns.js.map +1 -0
- package/dist/adapter-conversations.d.ts +46 -0
- package/dist/adapter-conversations.d.ts.map +1 -0
- package/dist/adapter-conversations.js +129 -0
- package/dist/adapter-conversations.js.map +1 -0
- package/dist/adapter-delivery.d.ts +13 -0
- package/dist/adapter-delivery.d.ts.map +1 -0
- package/dist/adapter-delivery.js +157 -0
- package/dist/adapter-delivery.js.map +1 -0
- package/dist/adapter-grants.d.ts +11 -0
- package/dist/adapter-grants.d.ts.map +1 -0
- package/dist/adapter-grants.js +125 -0
- package/dist/adapter-grants.js.map +1 -0
- package/dist/adapter-memory.d.ts +21 -0
- package/dist/adapter-memory.d.ts.map +1 -0
- package/dist/adapter-memory.js +181 -0
- package/dist/adapter-memory.js.map +1 -0
- package/dist/adapter-misc.d.ts +61 -0
- package/dist/adapter-misc.d.ts.map +1 -0
- package/dist/adapter-misc.js +127 -0
- package/dist/adapter-misc.js.map +1 -0
- package/dist/adapter-runs.d.ts +20 -0
- package/dist/adapter-runs.d.ts.map +1 -0
- package/dist/adapter-runs.js +193 -0
- package/dist/adapter-runs.js.map +1 -0
- package/dist/adapter-sandbox.d.ts +27 -0
- package/dist/adapter-sandbox.d.ts.map +1 -0
- package/dist/adapter-sandbox.js +267 -0
- package/dist/adapter-sandbox.js.map +1 -0
- package/dist/adapter-settings.d.ts +8 -0
- package/dist/adapter-settings.d.ts.map +1 -0
- package/dist/adapter-settings.js +38 -0
- package/dist/adapter-settings.js.map +1 -0
- package/dist/adapter-usage.d.ts +7 -0
- package/dist/adapter-usage.d.ts.map +1 -0
- package/dist/adapter-usage.js +243 -0
- package/dist/adapter-usage.js.map +1 -0
- package/dist/client-types.d.ts +6 -0
- package/dist/client-types.d.ts.map +1 -0
- package/dist/client-types.js +2 -0
- package/dist/client-types.js.map +1 -0
- package/dist/index.d.ts +208 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +424 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations.d.ts +35 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +694 -0
- package/dist/migrations.js.map +1 -0
- package/dist/presets.d.ts +19 -0
- package/dist/presets.d.ts.map +1 -0
- package/dist/presets.js +31 -0
- package/dist/presets.js.map +1 -0
- package/dist/provider.d.ts +12 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +86 -0
- package/dist/provider.js.map +1 -0
- package/dist/row-mappers.d.ts +24 -0
- package/dist/row-mappers.d.ts.map +1 -0
- package/dist/row-mappers.js +450 -0
- package/dist/row-mappers.js.map +1 -0
- package/dist/sql-helpers.d.ts +46 -0
- package/dist/sql-helpers.d.ts.map +1 -0
- package/dist/sql-helpers.js +244 -0
- package/dist/sql-helpers.js.map +1 -0
- package/dist/stores.d.ts +40 -0
- package/dist/stores.d.ts.map +1 -0
- package/dist/stores.js +210 -0
- package/dist/stores.js.map +1 -0
- package/package.json +49 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { type JsonObject, type JsonValue, type MemoryListInput, type MemorySearchInput } from "@assemblyline-agents/core";
|
|
2
|
+
import type { CheckpointRecord, CheckpointRetentionOptions, CheckpointRetentionResult, ConnectionAuthorizationSessionRecord, ConnectionAuthorizationSessionStore, ConnectionDefinitionStore, ConnectionGrantStore, ConversationRecord, ConversationTurnRecord, ConversationTurnStatus, DeliveryFailureInput, DeliveryLeaseOptions, DeliveryObligation, DeliveryObligationInput, DeliveryObligationPatch, FileIndexRecord, MemoryDocument, MemoryEmbeddingRecord, MemorySearchResult, MemoryScope, MessageRecord, RunEvent, RunEventType, RunRecord, RunControlIntent, RunStatus, RuntimeControlEvent, RuntimeSettingRecord, ResolvedStateAdapter, ScheduleRecord, ScheduleRunRecord, ScheduleStore, SandboxSnapshotRecord, SandboxSessionInput, SandboxSessionPatch, SandboxSessionRecord, SandboxSyncFailureInput, SandboxSyncJobInput, SandboxSyncJobPatch, SandboxSyncJobRecord, SandboxSyncLeaseOptions, SkillStore, StoredConnectionGrant, ToolCallRecord, UsageAggregate, UsageQuery, UsageRecord, UsageRecordInput, UsageSummaryQuery } from "@assemblyline-agents/runtime";
|
|
3
|
+
import type { QueryClient } from "./client-types.js";
|
|
4
|
+
import { type PostgresMigrationPlan } from "./migrations.js";
|
|
5
|
+
import * as conversationsDb from "./adapter-conversations.js";
|
|
6
|
+
import * as conversationTurnsDb from "./adapter-conversation-turns.js";
|
|
7
|
+
import { type PostgresQueueRecord, type PostgresScheduleRunRecord } from "./adapter-misc.js";
|
|
8
|
+
export { createPostgresPoolFromEnv, openeveProvider, POSTGRES_STATE_PROVIDER_METADATA } from "./provider.js";
|
|
9
|
+
export { localPostgres, neonPostgres, postgresAdapter, railwayPostgres, supabasePostgres, type PostgresAdapter, type PostgresProvider, type RailwayPostgresOptions } from "./presets.js";
|
|
10
|
+
export type { QueryClient } from "./client-types.js";
|
|
11
|
+
export { postgresMigrations } from "./migrations.js";
|
|
12
|
+
export type { PostgresMigration, PostgresMigrationPlan, PostgresMigrationPlanItem } from "./migrations.js";
|
|
13
|
+
export { PostgresConnectionDefinitionStore, PostgresScheduleStore, PostgresSkillStore } from "./stores.js";
|
|
14
|
+
export type { PostgresQueueRecord, PostgresScheduleRunRecord } from "./adapter-misc.js";
|
|
15
|
+
export interface PostgresStateAdapterOptions {
|
|
16
|
+
optionalMigrations?: boolean | string[];
|
|
17
|
+
packageVersion?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Set when the adapter created the pool itself (provider registration path).
|
|
20
|
+
* `close()` only ends pools the adapter owns; host-supplied clients are the
|
|
21
|
+
* host's responsibility.
|
|
22
|
+
*/
|
|
23
|
+
ownsClient?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare class PostgresStateAdapter implements ResolvedStateAdapter, ConnectionGrantStore, ConnectionAuthorizationSessionStore {
|
|
26
|
+
private readonly client;
|
|
27
|
+
private readonly options;
|
|
28
|
+
readonly skillStore: SkillStore;
|
|
29
|
+
readonly scheduleStore: ScheduleStore;
|
|
30
|
+
readonly connectionDefinitionStore: ConnectionDefinitionStore;
|
|
31
|
+
constructor(client: QueryClient, options?: PostgresStateAdapterOptions);
|
|
32
|
+
supportsMemoryEmbeddings(): boolean;
|
|
33
|
+
/** Graceful-shutdown hook: ends the pg pool, but only when this adapter created it. */
|
|
34
|
+
close(): Promise<void>;
|
|
35
|
+
migrate(): Promise<void>;
|
|
36
|
+
planMigrations(): Promise<PostgresMigrationPlan>;
|
|
37
|
+
private shouldRunOptionalMigration;
|
|
38
|
+
private packageVersion;
|
|
39
|
+
private ensureSchemaMigrationsTable;
|
|
40
|
+
private appliedMigration;
|
|
41
|
+
private appliedMigrations;
|
|
42
|
+
private applyMigration;
|
|
43
|
+
createRun(input: Omit<RunRecord, "id" | "createdAt" | "updatedAt">): Promise<RunRecord>;
|
|
44
|
+
updateRun(id: string, patch: Partial<Omit<RunRecord, "id" | "createdAt">>): Promise<RunRecord>;
|
|
45
|
+
touchRun(id: string): Promise<void>;
|
|
46
|
+
requestRunControl(id: string, intent: RunControlIntent): Promise<RunRecord>;
|
|
47
|
+
settleRunControl(id: string): Promise<RunRecord>;
|
|
48
|
+
getRun(id: string): Promise<RunRecord | undefined>;
|
|
49
|
+
listRuns(): Promise<RunRecord[]>;
|
|
50
|
+
listRunsByStatus(statuses: RunStatus[], options?: {
|
|
51
|
+
updatedBefore?: string;
|
|
52
|
+
limit?: number;
|
|
53
|
+
}): Promise<RunRecord[]>;
|
|
54
|
+
appendEvent(runId: string, type: RunEventType, data?: JsonObject): Promise<RunEvent>;
|
|
55
|
+
listEvents(runId: string): Promise<RunEvent[]>;
|
|
56
|
+
createToolCall(input: Omit<ToolCallRecord, "id" | "createdAt" | "updatedAt">): Promise<ToolCallRecord>;
|
|
57
|
+
updateToolCall(id: string, patch: Partial<Omit<ToolCallRecord, "id" | "createdAt">>): Promise<ToolCallRecord>;
|
|
58
|
+
listToolCalls(runId: string): Promise<ToolCallRecord[]>;
|
|
59
|
+
createCheckpoint(input: Omit<CheckpointRecord, "id" | "createdAt">): Promise<CheckpointRecord>;
|
|
60
|
+
listCheckpoints(runId: string): Promise<CheckpointRecord[]>;
|
|
61
|
+
compactCheckpoints(options?: CheckpointRetentionOptions): Promise<CheckpointRetentionResult>;
|
|
62
|
+
createDelivery(input: DeliveryObligationInput): Promise<DeliveryObligation>;
|
|
63
|
+
updateDelivery(id: string, patch: DeliveryObligationPatch): Promise<DeliveryObligation>;
|
|
64
|
+
listDeliveries(runId: string): Promise<DeliveryObligation[]>;
|
|
65
|
+
leaseDueDeliveries(options?: DeliveryLeaseOptions): Promise<DeliveryObligation[]>;
|
|
66
|
+
completeDeliverySend(id: string, leaseToken: string, patch?: {
|
|
67
|
+
payload?: JsonObject;
|
|
68
|
+
}): Promise<DeliveryObligation>;
|
|
69
|
+
failDeliverySend(id: string, leaseToken: string, failure: DeliveryFailureInput): Promise<DeliveryObligation>;
|
|
70
|
+
recoverExpiredDeliveries(now?: Date): Promise<DeliveryObligation[]>;
|
|
71
|
+
enqueueRun(runId: string, options?: {
|
|
72
|
+
queue?: string;
|
|
73
|
+
availableAt?: string;
|
|
74
|
+
idempotencyKey?: string;
|
|
75
|
+
}): Promise<PostgresQueueRecord>;
|
|
76
|
+
enqueueScheduleRun(input: {
|
|
77
|
+
scheduleId: string;
|
|
78
|
+
runId?: string;
|
|
79
|
+
runAt: string;
|
|
80
|
+
idempotencyKey: string;
|
|
81
|
+
status?: string;
|
|
82
|
+
}): Promise<PostgresScheduleRunRecord>;
|
|
83
|
+
reserveIdempotencyKey(scope: string, key: string, ownerId?: string): Promise<boolean>;
|
|
84
|
+
getSetting(scope: string, key: string): Promise<RuntimeSettingRecord | undefined>;
|
|
85
|
+
setSetting(scope: string, key: string, value: JsonValue): Promise<RuntimeSettingRecord>;
|
|
86
|
+
appendRuntimeControlEvent(scope: string, type: string, data?: JsonObject): Promise<RuntimeControlEvent>;
|
|
87
|
+
listRuntimeControlEvents(scope: string): Promise<RuntimeControlEvent[]>;
|
|
88
|
+
upsertConversation(input: {
|
|
89
|
+
id: string;
|
|
90
|
+
agentScope?: string;
|
|
91
|
+
agentRevision: string;
|
|
92
|
+
channel: string;
|
|
93
|
+
subject?: string;
|
|
94
|
+
title?: string;
|
|
95
|
+
metadata?: JsonObject;
|
|
96
|
+
}): Promise<ConversationRecord>;
|
|
97
|
+
getConversation(id: string): Promise<ConversationRecord | undefined>;
|
|
98
|
+
listConversations(input: Parameters<typeof conversationsDb.listConversations>[1]): ReturnType<typeof conversationsDb.listConversations>;
|
|
99
|
+
updateConversation(id: string, patch: Parameters<typeof conversationsDb.updateConversation>[2]): ReturnType<typeof conversationsDb.updateConversation>;
|
|
100
|
+
listRecentConversationsBySubject(input: {
|
|
101
|
+
channel: string;
|
|
102
|
+
subject: string;
|
|
103
|
+
since?: string;
|
|
104
|
+
limit?: number;
|
|
105
|
+
excludeId?: string;
|
|
106
|
+
}): Promise<ConversationRecord[]>;
|
|
107
|
+
appendMessage(input: {
|
|
108
|
+
conversationId: string;
|
|
109
|
+
runId?: string;
|
|
110
|
+
role: MessageRecord["role"];
|
|
111
|
+
content: JsonObject;
|
|
112
|
+
}): Promise<MessageRecord>;
|
|
113
|
+
listRecentMessages(conversationId: string, limit?: number): Promise<MessageRecord[]>;
|
|
114
|
+
listMessages(input: Parameters<typeof conversationsDb.listMessages>[1]): ReturnType<typeof conversationsDb.listMessages>;
|
|
115
|
+
enqueueConversationTurn(input: Parameters<typeof conversationTurnsDb.enqueueConversationTurn>[1]): ReturnType<typeof conversationTurnsDb.enqueueConversationTurn>;
|
|
116
|
+
leaseNextConversationTurn(options: Parameters<typeof conversationTurnsDb.leaseNextConversationTurn>[1]): ReturnType<typeof conversationTurnsDb.leaseNextConversationTurn>;
|
|
117
|
+
attachConversationTurnRun(id: string, leaseToken: string, runId: string): Promise<ConversationTurnRecord>;
|
|
118
|
+
settleConversationTurn(id: string, leaseToken: string, status: "blocked" | "completed" | "failed" | "cancelled", options?: {
|
|
119
|
+
runId?: string;
|
|
120
|
+
error?: string;
|
|
121
|
+
}): Promise<ConversationTurnRecord>;
|
|
122
|
+
settleConversationTurnByRunId(runId: string, status: "blocked" | "completed" | "failed" | "cancelled", options?: {
|
|
123
|
+
error?: string;
|
|
124
|
+
}): Promise<ConversationTurnRecord | undefined>;
|
|
125
|
+
retryConversationTurn(id: string, leaseToken: string, error: string): Promise<ConversationTurnRecord>;
|
|
126
|
+
recoverExpiredConversationTurns(now?: Date): Promise<ConversationTurnRecord[]>;
|
|
127
|
+
listConversationTurns(options?: {
|
|
128
|
+
agentScope?: string;
|
|
129
|
+
conversationId?: string;
|
|
130
|
+
status?: ConversationTurnStatus;
|
|
131
|
+
}): Promise<ConversationTurnRecord[]>;
|
|
132
|
+
registerSchedule(input: {
|
|
133
|
+
id: string;
|
|
134
|
+
name: string;
|
|
135
|
+
cron: string;
|
|
136
|
+
timezone?: string;
|
|
137
|
+
metadata?: JsonObject;
|
|
138
|
+
}): Promise<ScheduleRecord>;
|
|
139
|
+
recordScheduleRun(input: {
|
|
140
|
+
scheduleId: string;
|
|
141
|
+
runId?: string;
|
|
142
|
+
runAt: string;
|
|
143
|
+
idempotencyKey: string;
|
|
144
|
+
status?: string;
|
|
145
|
+
}): Promise<ScheduleRunRecord>;
|
|
146
|
+
recordFileIndex(input: {
|
|
147
|
+
runId?: string;
|
|
148
|
+
path: string;
|
|
149
|
+
kind: FileIndexRecord["kind"];
|
|
150
|
+
blobKey: string;
|
|
151
|
+
sha256: string;
|
|
152
|
+
sizeBytes: number;
|
|
153
|
+
metadata?: JsonObject;
|
|
154
|
+
}): Promise<FileIndexRecord>;
|
|
155
|
+
listFileIndexes(runId?: string): Promise<FileIndexRecord[]>;
|
|
156
|
+
recordUsage(input: UsageRecordInput): Promise<UsageRecord>;
|
|
157
|
+
listUsage(runId?: string): Promise<UsageRecord[]>;
|
|
158
|
+
queryUsage(query: UsageQuery): Promise<UsageRecord[]>;
|
|
159
|
+
summarizeUsage(query: UsageSummaryQuery): Promise<UsageAggregate[]>;
|
|
160
|
+
recordSandboxSnapshot(input: {
|
|
161
|
+
runId: string;
|
|
162
|
+
sandboxId: string;
|
|
163
|
+
snapshotId: string;
|
|
164
|
+
metadata?: JsonObject;
|
|
165
|
+
}): Promise<SandboxSnapshotRecord>;
|
|
166
|
+
upsertSandboxSession(input: SandboxSessionInput): Promise<SandboxSessionRecord>;
|
|
167
|
+
getSandboxSession(sessionKey: string): Promise<SandboxSessionRecord | undefined>;
|
|
168
|
+
listSandboxSessions(options?: {
|
|
169
|
+
dirty?: boolean;
|
|
170
|
+
}): Promise<SandboxSessionRecord[]>;
|
|
171
|
+
updateSandboxSession(sessionKey: string, patch: SandboxSessionPatch): Promise<SandboxSessionRecord>;
|
|
172
|
+
createSandboxSyncJob(input: SandboxSyncJobInput): Promise<SandboxSyncJobRecord>;
|
|
173
|
+
enqueueSandboxSyncJob(input: SandboxSyncJobInput): Promise<SandboxSyncJobRecord>;
|
|
174
|
+
updateSandboxSyncJob(id: string, patch: SandboxSyncJobPatch): Promise<SandboxSyncJobRecord>;
|
|
175
|
+
listSandboxSyncJobs(runId?: string): Promise<SandboxSyncJobRecord[]>;
|
|
176
|
+
leaseSandboxSyncJobs(options?: SandboxSyncLeaseOptions): Promise<SandboxSyncJobRecord[]>;
|
|
177
|
+
completeSandboxSyncJob(id: string, leaseToken: string, patch?: {
|
|
178
|
+
manifest?: JsonObject;
|
|
179
|
+
metadata?: JsonObject;
|
|
180
|
+
}): Promise<SandboxSyncJobRecord>;
|
|
181
|
+
failSandboxSyncJob(id: string, leaseToken: string, failure: SandboxSyncFailureInput): Promise<SandboxSyncJobRecord>;
|
|
182
|
+
recoverExpiredSandboxSyncJobs(now?: Date): Promise<SandboxSyncJobRecord[]>;
|
|
183
|
+
listMemoryDocuments(scope: MemoryScope, input?: MemoryListInput): Promise<MemoryDocument[]>;
|
|
184
|
+
searchMemoryDocuments(scope: MemoryScope, input: MemorySearchInput): Promise<MemorySearchResult[]>;
|
|
185
|
+
getMemoryDocument(scope: MemoryScope, path: string): Promise<MemoryDocument | undefined>;
|
|
186
|
+
upsertMemoryDocument(document: MemoryDocument): Promise<MemoryDocument>;
|
|
187
|
+
deleteMemoryDocument(scope: MemoryScope, path: string): Promise<void>;
|
|
188
|
+
listMemoryDocumentsNeedingEmbeddings(scope: MemoryScope, options: {
|
|
189
|
+
model: string;
|
|
190
|
+
limit?: number;
|
|
191
|
+
}): Promise<MemoryDocument[]>;
|
|
192
|
+
upsertMemoryEmbedding(input: Omit<MemoryEmbeddingRecord, "id" | "createdAt" | "updatedAt">): Promise<MemoryEmbeddingRecord>;
|
|
193
|
+
searchMemoryEmbeddings(scope: MemoryScope, input: MemorySearchInput, embedding: number[], options: {
|
|
194
|
+
model: string;
|
|
195
|
+
limit?: number;
|
|
196
|
+
}): Promise<MemorySearchResult[]>;
|
|
197
|
+
markMemoryEmbeddingsStale(scope: MemoryScope, path: string, currentSha256: string): Promise<void>;
|
|
198
|
+
private requireMemoryEmbeddings;
|
|
199
|
+
getGrant(connectionName: string, principalKey: string): Promise<StoredConnectionGrant | undefined>;
|
|
200
|
+
saveGrant(grant: StoredConnectionGrant): Promise<void>;
|
|
201
|
+
deleteGrant(connectionName: string, principalKey: string): Promise<void>;
|
|
202
|
+
createSession(session: ConnectionAuthorizationSessionRecord): Promise<void>;
|
|
203
|
+
updateSession(id: string, patch: Partial<Omit<ConnectionAuthorizationSessionRecord, "id" | "createdAt">>): Promise<ConnectionAuthorizationSessionRecord>;
|
|
204
|
+
getSession(id: string): Promise<ConnectionAuthorizationSessionRecord | undefined>;
|
|
205
|
+
getSessionByState(state: string): Promise<ConnectionAuthorizationSessionRecord | undefined>;
|
|
206
|
+
findPendingSession(connectionName: string, principalKey: string): Promise<ConnectionAuthorizationSessionRecord | undefined>;
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,424 @@
|
|
|
1
|
+
import { POSTGRES_SCHEMA_MIGRATIONS_SQL, postgresMigrations } from "./migrations.js";
|
|
2
|
+
import { postgresMigrationChecksum, timestamp, toIso } from "./sql-helpers.js";
|
|
3
|
+
import { PostgresConnectionDefinitionStore, PostgresScheduleStore, PostgresSkillStore } from "./stores.js";
|
|
4
|
+
import * as deliveryDb from "./adapter-delivery.js";
|
|
5
|
+
import * as memoryDb from "./adapter-memory.js";
|
|
6
|
+
import * as runsDb from "./adapter-runs.js";
|
|
7
|
+
import * as sandboxDb from "./adapter-sandbox.js";
|
|
8
|
+
import * as settingsDb from "./adapter-settings.js";
|
|
9
|
+
import * as checkpointsDb from "./adapter-checkpoints.js";
|
|
10
|
+
import * as conversationsDb from "./adapter-conversations.js";
|
|
11
|
+
import * as conversationTurnsDb from "./adapter-conversation-turns.js";
|
|
12
|
+
import * as grantsDb from "./adapter-grants.js";
|
|
13
|
+
import * as miscDb from "./adapter-misc.js";
|
|
14
|
+
import * as usageDb from "./adapter-usage.js";
|
|
15
|
+
const OPENEVE_POSTGRES_PACKAGE_VERSION = "0.0.0";
|
|
16
|
+
const MEMORY_EMBEDDINGS_MIGRATION_ID = "003_openeve_memory_embeddings_pgvector";
|
|
17
|
+
export { createPostgresPoolFromEnv, openeveProvider, POSTGRES_STATE_PROVIDER_METADATA } from "./provider.js";
|
|
18
|
+
export { localPostgres, neonPostgres, postgresAdapter, railwayPostgres, supabasePostgres } from "./presets.js";
|
|
19
|
+
export { postgresMigrations } from "./migrations.js";
|
|
20
|
+
export { PostgresConnectionDefinitionStore, PostgresScheduleStore, PostgresSkillStore } from "./stores.js";
|
|
21
|
+
export class PostgresStateAdapter {
|
|
22
|
+
client;
|
|
23
|
+
options;
|
|
24
|
+
skillStore;
|
|
25
|
+
scheduleStore;
|
|
26
|
+
connectionDefinitionStore;
|
|
27
|
+
constructor(client, options = {}) {
|
|
28
|
+
this.client = client;
|
|
29
|
+
this.options = options;
|
|
30
|
+
this.skillStore = new PostgresSkillStore(client);
|
|
31
|
+
this.scheduleStore = new PostgresScheduleStore(client);
|
|
32
|
+
this.connectionDefinitionStore = new PostgresConnectionDefinitionStore(client);
|
|
33
|
+
}
|
|
34
|
+
supportsMemoryEmbeddings() {
|
|
35
|
+
return this.shouldRunOptionalMigration(MEMORY_EMBEDDINGS_MIGRATION_ID);
|
|
36
|
+
}
|
|
37
|
+
/** Graceful-shutdown hook: ends the pg pool, but only when this adapter created it. */
|
|
38
|
+
async close() {
|
|
39
|
+
if (!this.options.ownsClient)
|
|
40
|
+
return;
|
|
41
|
+
await this.client.end?.();
|
|
42
|
+
}
|
|
43
|
+
async migrate() {
|
|
44
|
+
await this.ensureSchemaMigrationsTable();
|
|
45
|
+
for (const migration of postgresMigrations) {
|
|
46
|
+
if (migration.optional && !this.shouldRunOptionalMigration(migration.id))
|
|
47
|
+
continue;
|
|
48
|
+
const checksum = postgresMigrationChecksum(migration);
|
|
49
|
+
const existing = await this.appliedMigration(migration.id);
|
|
50
|
+
if (existing) {
|
|
51
|
+
if (existing.checksum !== checksum) {
|
|
52
|
+
throw new Error(`Postgres migration checksum mismatch for ${migration.id}. Expected ${existing.checksum}, current ${checksum}.`);
|
|
53
|
+
}
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
await this.applyMigration(migration, checksum);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async planMigrations() {
|
|
60
|
+
let applied = new Map();
|
|
61
|
+
try {
|
|
62
|
+
applied = await this.appliedMigrations();
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
applied = new Map();
|
|
66
|
+
}
|
|
67
|
+
const items = postgresMigrations.map((migration) => {
|
|
68
|
+
const checksum = postgresMigrationChecksum(migration);
|
|
69
|
+
if (migration.optional && !this.shouldRunOptionalMigration(migration.id)) {
|
|
70
|
+
return {
|
|
71
|
+
id: migration.id,
|
|
72
|
+
description: migration.description,
|
|
73
|
+
checksum,
|
|
74
|
+
optional: true,
|
|
75
|
+
status: "skipped_optional"
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
const current = applied.get(migration.id);
|
|
79
|
+
if (!current) {
|
|
80
|
+
return {
|
|
81
|
+
id: migration.id,
|
|
82
|
+
description: migration.description,
|
|
83
|
+
checksum,
|
|
84
|
+
optional: migration.optional === true,
|
|
85
|
+
status: "pending"
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
id: migration.id,
|
|
90
|
+
description: migration.description,
|
|
91
|
+
checksum,
|
|
92
|
+
optional: migration.optional === true,
|
|
93
|
+
status: current.checksum === checksum ? "applied" : "checksum_mismatch",
|
|
94
|
+
appliedAt: current.appliedAt,
|
|
95
|
+
packageVersion: current.packageVersion
|
|
96
|
+
};
|
|
97
|
+
});
|
|
98
|
+
return { packageVersion: this.packageVersion(), items };
|
|
99
|
+
}
|
|
100
|
+
shouldRunOptionalMigration(id) {
|
|
101
|
+
if (this.options.optionalMigrations === true)
|
|
102
|
+
return true;
|
|
103
|
+
return Array.isArray(this.options.optionalMigrations) && this.options.optionalMigrations.includes(id);
|
|
104
|
+
}
|
|
105
|
+
packageVersion() {
|
|
106
|
+
return this.options.packageVersion ?? OPENEVE_POSTGRES_PACKAGE_VERSION;
|
|
107
|
+
}
|
|
108
|
+
async ensureSchemaMigrationsTable() {
|
|
109
|
+
await this.client.query(POSTGRES_SCHEMA_MIGRATIONS_SQL);
|
|
110
|
+
}
|
|
111
|
+
async appliedMigration(id) {
|
|
112
|
+
const result = await this.client.query("select checksum, applied_at, package_version from openeve_schema_migrations where id=$1", [id]);
|
|
113
|
+
const row = result.rows[0];
|
|
114
|
+
return row ? {
|
|
115
|
+
checksum: String(row.checksum),
|
|
116
|
+
appliedAt: toIso(row.applied_at),
|
|
117
|
+
packageVersion: String(row.package_version)
|
|
118
|
+
} : undefined;
|
|
119
|
+
}
|
|
120
|
+
async appliedMigrations() {
|
|
121
|
+
const result = await this.client.query("select id, checksum, applied_at, package_version from openeve_schema_migrations");
|
|
122
|
+
return new Map(result.rows.map((row) => [
|
|
123
|
+
String(row.id),
|
|
124
|
+
{
|
|
125
|
+
checksum: String(row.checksum),
|
|
126
|
+
appliedAt: toIso(row.applied_at),
|
|
127
|
+
packageVersion: String(row.package_version)
|
|
128
|
+
}
|
|
129
|
+
]));
|
|
130
|
+
}
|
|
131
|
+
async applyMigration(migration, checksum) {
|
|
132
|
+
// Transactions must be pinned to a single connection: pg pools may route
|
|
133
|
+
// each pool.query() to a different client, silently splitting
|
|
134
|
+
// begin/commit across connections. Pin one client when the injected
|
|
135
|
+
// QueryClient is a pool; plain single-connection clients run as-is.
|
|
136
|
+
const poolCandidate = this.client;
|
|
137
|
+
const pinned = typeof poolCandidate.connect === "function" ? await poolCandidate.connect() : undefined;
|
|
138
|
+
const client = pinned ?? this.client;
|
|
139
|
+
try {
|
|
140
|
+
await client.query("begin");
|
|
141
|
+
await client.query(migration.sql);
|
|
142
|
+
await client.query(`insert into openeve_schema_migrations (id, checksum, description, package_version, applied_at)
|
|
143
|
+
values ($1,$2,$3,$4,$5)`, [migration.id, checksum, migration.description, this.packageVersion(), timestamp()]);
|
|
144
|
+
await client.query("commit");
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
try {
|
|
148
|
+
await client.query("rollback");
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// Ignore rollback failures so the original migration error is preserved.
|
|
152
|
+
}
|
|
153
|
+
throw error;
|
|
154
|
+
}
|
|
155
|
+
finally {
|
|
156
|
+
pinned?.release();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async createRun(input) {
|
|
160
|
+
return runsDb.createRun(this.client, input);
|
|
161
|
+
}
|
|
162
|
+
async updateRun(id, patch) {
|
|
163
|
+
return runsDb.updateRun(this.client, id, patch);
|
|
164
|
+
}
|
|
165
|
+
async touchRun(id) {
|
|
166
|
+
return runsDb.touchRun(this.client, id);
|
|
167
|
+
}
|
|
168
|
+
async requestRunControl(id, intent) {
|
|
169
|
+
return runsDb.requestRunControl(this.client, id, intent);
|
|
170
|
+
}
|
|
171
|
+
async settleRunControl(id) {
|
|
172
|
+
return runsDb.settleRunControl(this.client, id);
|
|
173
|
+
}
|
|
174
|
+
async getRun(id) {
|
|
175
|
+
return runsDb.getRun(this.client, id);
|
|
176
|
+
}
|
|
177
|
+
async listRuns() {
|
|
178
|
+
return runsDb.listRuns(this.client);
|
|
179
|
+
}
|
|
180
|
+
async listRunsByStatus(statuses, options = {}) {
|
|
181
|
+
return runsDb.listRunsByStatus(this.client, statuses, options);
|
|
182
|
+
}
|
|
183
|
+
async appendEvent(runId, type, data = {}) {
|
|
184
|
+
return runsDb.appendEvent(this.client, runId, type, data);
|
|
185
|
+
}
|
|
186
|
+
async listEvents(runId) {
|
|
187
|
+
return runsDb.listEvents(this.client, runId);
|
|
188
|
+
}
|
|
189
|
+
async createToolCall(input) {
|
|
190
|
+
return runsDb.createToolCall(this.client, input);
|
|
191
|
+
}
|
|
192
|
+
async updateToolCall(id, patch) {
|
|
193
|
+
return runsDb.updateToolCall(this.client, id, patch);
|
|
194
|
+
}
|
|
195
|
+
async listToolCalls(runId) {
|
|
196
|
+
return runsDb.listToolCalls(this.client, runId);
|
|
197
|
+
}
|
|
198
|
+
async createCheckpoint(input) {
|
|
199
|
+
return checkpointsDb.createCheckpoint(this.client, input);
|
|
200
|
+
}
|
|
201
|
+
async listCheckpoints(runId) {
|
|
202
|
+
return checkpointsDb.listCheckpoints(this.client, runId);
|
|
203
|
+
}
|
|
204
|
+
async compactCheckpoints(options = {}) {
|
|
205
|
+
return checkpointsDb.compactCheckpoints(this.client, options);
|
|
206
|
+
}
|
|
207
|
+
async createDelivery(input) {
|
|
208
|
+
return deliveryDb.createDelivery(this.client, input);
|
|
209
|
+
}
|
|
210
|
+
async updateDelivery(id, patch) {
|
|
211
|
+
return deliveryDb.updateDelivery(this.client, id, patch);
|
|
212
|
+
}
|
|
213
|
+
async listDeliveries(runId) {
|
|
214
|
+
return deliveryDb.listDeliveries(this.client, runId);
|
|
215
|
+
}
|
|
216
|
+
async leaseDueDeliveries(options = {}) {
|
|
217
|
+
return deliveryDb.leaseDueDeliveries(this.client, options);
|
|
218
|
+
}
|
|
219
|
+
async completeDeliverySend(id, leaseToken, patch = {}) {
|
|
220
|
+
return deliveryDb.completeDeliverySend(this.client, id, leaseToken, patch);
|
|
221
|
+
}
|
|
222
|
+
async failDeliverySend(id, leaseToken, failure) {
|
|
223
|
+
return deliveryDb.failDeliverySend(this.client, id, leaseToken, failure);
|
|
224
|
+
}
|
|
225
|
+
async recoverExpiredDeliveries(now = new Date()) {
|
|
226
|
+
return deliveryDb.recoverExpiredDeliveries(this.client, now);
|
|
227
|
+
}
|
|
228
|
+
async enqueueRun(runId, options = {}) {
|
|
229
|
+
return miscDb.enqueueRun(this.client, runId, options);
|
|
230
|
+
}
|
|
231
|
+
async enqueueScheduleRun(input) {
|
|
232
|
+
return miscDb.enqueueScheduleRun(this.client, input);
|
|
233
|
+
}
|
|
234
|
+
async reserveIdempotencyKey(scope, key, ownerId) {
|
|
235
|
+
return miscDb.reserveIdempotencyKey(this.client, scope, key, ownerId);
|
|
236
|
+
}
|
|
237
|
+
async getSetting(scope, key) {
|
|
238
|
+
return settingsDb.getSetting(this.client, scope, key);
|
|
239
|
+
}
|
|
240
|
+
async setSetting(scope, key, value) {
|
|
241
|
+
return settingsDb.setSetting(this.client, scope, key, value);
|
|
242
|
+
}
|
|
243
|
+
async appendRuntimeControlEvent(scope, type, data = {}) {
|
|
244
|
+
return settingsDb.appendRuntimeControlEvent(this.client, scope, type, data);
|
|
245
|
+
}
|
|
246
|
+
async listRuntimeControlEvents(scope) {
|
|
247
|
+
return settingsDb.listRuntimeControlEvents(this.client, scope);
|
|
248
|
+
}
|
|
249
|
+
async upsertConversation(input) {
|
|
250
|
+
return conversationsDb.upsertConversation(this.client, input);
|
|
251
|
+
}
|
|
252
|
+
async getConversation(id) {
|
|
253
|
+
return conversationsDb.getConversation(this.client, id);
|
|
254
|
+
}
|
|
255
|
+
async listConversations(input) {
|
|
256
|
+
return conversationsDb.listConversations(this.client, input);
|
|
257
|
+
}
|
|
258
|
+
async updateConversation(id, patch) {
|
|
259
|
+
return conversationsDb.updateConversation(this.client, id, patch);
|
|
260
|
+
}
|
|
261
|
+
async listRecentConversationsBySubject(input) {
|
|
262
|
+
return conversationsDb.listRecentConversationsBySubject(this.client, input);
|
|
263
|
+
}
|
|
264
|
+
async appendMessage(input) {
|
|
265
|
+
return conversationsDb.appendMessage(this.client, input);
|
|
266
|
+
}
|
|
267
|
+
async listRecentMessages(conversationId, limit = 20) {
|
|
268
|
+
return conversationsDb.listRecentMessages(this.client, conversationId, limit);
|
|
269
|
+
}
|
|
270
|
+
async listMessages(input) {
|
|
271
|
+
return conversationsDb.listMessages(this.client, input);
|
|
272
|
+
}
|
|
273
|
+
async enqueueConversationTurn(input) {
|
|
274
|
+
return conversationTurnsDb.enqueueConversationTurn(this.client, input);
|
|
275
|
+
}
|
|
276
|
+
async leaseNextConversationTurn(options) {
|
|
277
|
+
return conversationTurnsDb.leaseNextConversationTurn(this.client, options);
|
|
278
|
+
}
|
|
279
|
+
async attachConversationTurnRun(id, leaseToken, runId) {
|
|
280
|
+
return conversationTurnsDb.attachConversationTurnRun(this.client, id, leaseToken, runId);
|
|
281
|
+
}
|
|
282
|
+
async settleConversationTurn(id, leaseToken, status, options) {
|
|
283
|
+
return conversationTurnsDb.settleConversationTurn(this.client, id, leaseToken, status, options);
|
|
284
|
+
}
|
|
285
|
+
async settleConversationTurnByRunId(runId, status, options) {
|
|
286
|
+
return conversationTurnsDb.settleConversationTurnByRunId(this.client, runId, status, options);
|
|
287
|
+
}
|
|
288
|
+
async retryConversationTurn(id, leaseToken, error) {
|
|
289
|
+
return conversationTurnsDb.retryConversationTurn(this.client, id, leaseToken, error);
|
|
290
|
+
}
|
|
291
|
+
async recoverExpiredConversationTurns(now) {
|
|
292
|
+
return conversationTurnsDb.recoverExpiredConversationTurns(this.client, now);
|
|
293
|
+
}
|
|
294
|
+
async listConversationTurns(options) {
|
|
295
|
+
return conversationTurnsDb.listConversationTurns(this.client, options);
|
|
296
|
+
}
|
|
297
|
+
async registerSchedule(input) {
|
|
298
|
+
return miscDb.registerSchedule(this.client, input);
|
|
299
|
+
}
|
|
300
|
+
async recordScheduleRun(input) {
|
|
301
|
+
return miscDb.recordScheduleRun(this.client, input);
|
|
302
|
+
}
|
|
303
|
+
async recordFileIndex(input) {
|
|
304
|
+
return miscDb.recordFileIndex(this.client, input);
|
|
305
|
+
}
|
|
306
|
+
async listFileIndexes(runId) {
|
|
307
|
+
return miscDb.listFileIndexes(this.client, runId);
|
|
308
|
+
}
|
|
309
|
+
async recordUsage(input) {
|
|
310
|
+
return usageDb.recordUsage(this.client, input);
|
|
311
|
+
}
|
|
312
|
+
async listUsage(runId) {
|
|
313
|
+
return usageDb.listUsage(this.client, runId);
|
|
314
|
+
}
|
|
315
|
+
async queryUsage(query) {
|
|
316
|
+
return usageDb.queryUsage(this.client, query);
|
|
317
|
+
}
|
|
318
|
+
async summarizeUsage(query) {
|
|
319
|
+
return usageDb.summarizeUsage(this.client, query);
|
|
320
|
+
}
|
|
321
|
+
async recordSandboxSnapshot(input) {
|
|
322
|
+
return sandboxDb.recordSandboxSnapshot(this.client, input);
|
|
323
|
+
}
|
|
324
|
+
async upsertSandboxSession(input) {
|
|
325
|
+
return sandboxDb.upsertSandboxSession(this.client, input);
|
|
326
|
+
}
|
|
327
|
+
async getSandboxSession(sessionKey) {
|
|
328
|
+
return sandboxDb.getSandboxSession(this.client, sessionKey);
|
|
329
|
+
}
|
|
330
|
+
async listSandboxSessions(options = {}) {
|
|
331
|
+
return sandboxDb.listSandboxSessions(this.client, options);
|
|
332
|
+
}
|
|
333
|
+
async updateSandboxSession(sessionKey, patch) {
|
|
334
|
+
return sandboxDb.updateSandboxSession(this.client, sessionKey, patch);
|
|
335
|
+
}
|
|
336
|
+
async createSandboxSyncJob(input) {
|
|
337
|
+
return sandboxDb.createSandboxSyncJob(this.client, input);
|
|
338
|
+
}
|
|
339
|
+
async enqueueSandboxSyncJob(input) {
|
|
340
|
+
return sandboxDb.enqueueSandboxSyncJob(this.client, input);
|
|
341
|
+
}
|
|
342
|
+
async updateSandboxSyncJob(id, patch) {
|
|
343
|
+
return sandboxDb.updateSandboxSyncJob(this.client, id, patch);
|
|
344
|
+
}
|
|
345
|
+
async listSandboxSyncJobs(runId) {
|
|
346
|
+
return sandboxDb.listSandboxSyncJobs(this.client, runId);
|
|
347
|
+
}
|
|
348
|
+
async leaseSandboxSyncJobs(options = {}) {
|
|
349
|
+
return sandboxDb.leaseSandboxSyncJobs(this.client, options);
|
|
350
|
+
}
|
|
351
|
+
async completeSandboxSyncJob(id, leaseToken, patch = {}) {
|
|
352
|
+
return sandboxDb.completeSandboxSyncJob(this.client, id, leaseToken, patch);
|
|
353
|
+
}
|
|
354
|
+
async failSandboxSyncJob(id, leaseToken, failure) {
|
|
355
|
+
return sandboxDb.failSandboxSyncJob(this.client, id, leaseToken, failure);
|
|
356
|
+
}
|
|
357
|
+
async recoverExpiredSandboxSyncJobs(now = new Date()) {
|
|
358
|
+
return sandboxDb.recoverExpiredSandboxSyncJobs(this.client, now);
|
|
359
|
+
}
|
|
360
|
+
async listMemoryDocuments(scope, input = {}) {
|
|
361
|
+
return memoryDb.listMemoryDocuments(this.client, scope, input);
|
|
362
|
+
}
|
|
363
|
+
async searchMemoryDocuments(scope, input) {
|
|
364
|
+
return memoryDb.searchMemoryDocuments(this.client, scope, input);
|
|
365
|
+
}
|
|
366
|
+
async getMemoryDocument(scope, path) {
|
|
367
|
+
return memoryDb.getMemoryDocument(this.client, scope, path);
|
|
368
|
+
}
|
|
369
|
+
async upsertMemoryDocument(document) {
|
|
370
|
+
return memoryDb.upsertMemoryDocument(this.client, document);
|
|
371
|
+
}
|
|
372
|
+
async deleteMemoryDocument(scope, path) {
|
|
373
|
+
return memoryDb.deleteMemoryDocument(this.client, scope, path, {
|
|
374
|
+
embeddingsAvailable: this.supportsMemoryEmbeddings()
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
async listMemoryDocumentsNeedingEmbeddings(scope, options) {
|
|
378
|
+
this.requireMemoryEmbeddings();
|
|
379
|
+
return memoryDb.listMemoryDocumentsNeedingEmbeddings(this.client, scope, options);
|
|
380
|
+
}
|
|
381
|
+
async upsertMemoryEmbedding(input) {
|
|
382
|
+
this.requireMemoryEmbeddings();
|
|
383
|
+
return memoryDb.upsertMemoryEmbedding(this.client, input);
|
|
384
|
+
}
|
|
385
|
+
async searchMemoryEmbeddings(scope, input, embedding, options) {
|
|
386
|
+
this.requireMemoryEmbeddings();
|
|
387
|
+
return memoryDb.searchMemoryEmbeddings(this.client, scope, input, embedding, options);
|
|
388
|
+
}
|
|
389
|
+
async markMemoryEmbeddingsStale(scope, path, currentSha256) {
|
|
390
|
+
if (!this.supportsMemoryEmbeddings())
|
|
391
|
+
return;
|
|
392
|
+
return memoryDb.markMemoryEmbeddingsStale(this.client, scope, path, currentSha256);
|
|
393
|
+
}
|
|
394
|
+
requireMemoryEmbeddings() {
|
|
395
|
+
if (this.supportsMemoryEmbeddings())
|
|
396
|
+
return;
|
|
397
|
+
throw new Error(`Postgres memory embeddings require optional migration ${MEMORY_EMBEDDINGS_MIGRATION_ID}.`);
|
|
398
|
+
}
|
|
399
|
+
async getGrant(connectionName, principalKey) {
|
|
400
|
+
return grantsDb.getGrant(this.client, connectionName, principalKey);
|
|
401
|
+
}
|
|
402
|
+
async saveGrant(grant) {
|
|
403
|
+
return grantsDb.saveGrant(this.client, grant);
|
|
404
|
+
}
|
|
405
|
+
async deleteGrant(connectionName, principalKey) {
|
|
406
|
+
return grantsDb.deleteGrant(this.client, connectionName, principalKey);
|
|
407
|
+
}
|
|
408
|
+
async createSession(session) {
|
|
409
|
+
return grantsDb.createSession(this.client, session);
|
|
410
|
+
}
|
|
411
|
+
async updateSession(id, patch) {
|
|
412
|
+
return grantsDb.updateSession(this.client, id, patch);
|
|
413
|
+
}
|
|
414
|
+
async getSession(id) {
|
|
415
|
+
return grantsDb.getSession(this.client, id);
|
|
416
|
+
}
|
|
417
|
+
async getSessionByState(state) {
|
|
418
|
+
return grantsDb.getSessionByState(this.client, state);
|
|
419
|
+
}
|
|
420
|
+
async findPendingSession(connectionName, principalKey) {
|
|
421
|
+
return grantsDb.findPendingSession(this.client, connectionName, principalKey);
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
//# sourceMappingURL=index.js.map
|