@relayfx/sdk 0.3.1 → 0.3.3

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.
Files changed (64) hide show
  1. package/dist/ai.js +67 -37
  2. package/dist/http-server.js +22 -0
  3. package/dist/index-25gwk9tj.js +3423 -0
  4. package/dist/{index-3sv8mmz5.js → index-49fm2rdv.js} +23 -30
  5. package/dist/{index-c2skef55.js → index-8pa5e2yn.js} +16521 -18783
  6. package/dist/index-cphmds30.js +2852 -0
  7. package/dist/index-nb39b5ae.js +17 -0
  8. package/dist/index.js +315 -844
  9. package/dist/mysql.js +18 -18
  10. package/dist/postgres.js +724 -24
  11. package/dist/sqlite.js +57 -168
  12. package/dist/types/ai/index.d.ts +2 -1
  13. package/dist/types/ai/language-model/language-model-registration.d.ts +9 -6
  14. package/dist/types/relay/adapter-outbox.d.ts +1 -1
  15. package/dist/types/relay/ai.d.ts +34 -2
  16. package/dist/types/relay/child-fan-out-admission.d.ts +5 -0
  17. package/dist/types/relay/child-fan-out-host.d.ts +73 -0
  18. package/dist/types/relay/client-public.d.ts +481 -0
  19. package/dist/types/relay/client.d.ts +1 -478
  20. package/dist/types/relay/database-identity.d.ts +4 -0
  21. package/dist/types/relay/http-server.d.ts +95 -0
  22. package/dist/types/relay/index.d.ts +37 -14
  23. package/dist/types/relay/internal-client.d.ts +22 -0
  24. package/dist/types/relay/language-model-registration.d.ts +13 -0
  25. package/dist/types/relay/mysql.d.ts +6 -7
  26. package/dist/types/relay/operation.d.ts +4 -4
  27. package/dist/types/relay/postgres.d.ts +10 -7
  28. package/dist/types/relay/runtime-acquisition-error.d.ts +61 -0
  29. package/dist/types/relay/runtime-database-adapter.d.ts +8 -5
  30. package/dist/types/relay/runtime-database-owner.d.ts +13 -0
  31. package/dist/types/relay/runtime-database-public.d.ts +10 -0
  32. package/dist/types/relay/runtime.d.ts +77 -72
  33. package/dist/types/relay/sqlite-runtime.d.ts +5 -18
  34. package/dist/types/relay/sqlite.d.ts +4 -31
  35. package/dist/types/relay/state-version-conflict.d.ts +12 -0
  36. package/dist/types/relay/tool-runtime.d.ts +44 -0
  37. package/dist/types/relay/tool-worker.d.ts +2 -2
  38. package/dist/types/relay/workflow-definition-host.d.ts +32 -0
  39. package/dist/types/runtime/agent/agent-loop-error.d.ts +21 -0
  40. package/dist/types/runtime/agent/agent-loop-service.d.ts +6 -16
  41. package/dist/types/runtime/agent/prompt-assembler-service.d.ts +3 -3
  42. package/dist/types/runtime/cluster/execution-entity.d.ts +3 -3
  43. package/dist/types/runtime/execution/execution-service.d.ts +3 -0
  44. package/dist/types/runtime/index.d.ts +1 -0
  45. package/dist/types/runtime/model/language-model-service.d.ts +5 -12
  46. package/dist/types/runtime/model/model-hub.d.ts +27 -0
  47. package/dist/types/runtime/presence/presence-contract.d.ts +24 -0
  48. package/dist/types/runtime/presence/presence-service.d.ts +6 -24
  49. package/dist/types/runtime/runner/runner-runtime-service.d.ts +29 -13
  50. package/dist/types/runtime/session/session-store-service.d.ts +4 -1
  51. package/dist/types/runtime/tool/tool-runtime-contract.d.ts +121 -0
  52. package/dist/types/runtime/tool/tool-runtime-service.d.ts +6 -120
  53. package/dist/types/runtime/workflow/execution-workflow.d.ts +22 -24
  54. package/dist/types/schema/agent-schema.d.ts +4 -1
  55. package/dist/types/schema/execution-schema.d.ts +13 -2
  56. package/dist/types/schema/index.d.ts +1 -0
  57. package/dist/types/schema/pagination-schema.d.ts +17 -0
  58. package/dist/types/schema/shared-schema.d.ts +4 -0
  59. package/dist/types/store-sql/schema/relay-schema.d.ts +12 -12
  60. package/dist/types/store-sql/session/session-repository.d.ts +54 -11
  61. package/package.json +17 -14
  62. package/dist/index-9k4k3wq1.js +0 -2860
  63. package/dist/index-d3dme13d.js +0 -141
  64. package/dist/types/relay/database.d.ts +0 -16
package/dist/postgres.js CHANGED
@@ -1,22 +1,722 @@
1
1
  // @bun
2
2
  import {
3
- normalizeClientLayer,
4
- normalizeMigrationCause,
5
- runtimeDatabaseLayer
6
- } from "./index-3sv8mmz5.js";
3
+ database,
4
+ normalizeMigrationCause
5
+ } from "./index-49fm2rdv.js";
7
6
  import {
7
+ Dialect,
8
8
  RuntimeMigrationError,
9
- SqlFailure
10
- } from "./index-9k4k3wq1.js";
11
- import"./index-c2skef55.js";
9
+ SqlFailure,
10
+ decodeBool,
11
+ decodeJson,
12
+ dialect,
13
+ encodeJson,
14
+ fromDbTimestamp,
15
+ fromNullableDbTimestamp,
16
+ timestampParam
17
+ } from "./index-8pa5e2yn.js";
18
+ import"./index-25gwk9tj.js";
19
+ import {
20
+ exports_ids_schema
21
+ } from "./index-cphmds30.js";
22
+ import {
23
+ __export
24
+ } from "./index-nb39b5ae.js";
12
25
 
13
26
  // src/postgres.ts
14
- import { PgClient } from "@effect/sql-pg/PgClient";
15
- import { makeWithDefaults } from "drizzle-orm/effect-postgres";
27
+ import { PgClient as PgClient2 } from "@effect/sql-pg/PgClient";
28
+ import { makeWithDefaults as makeWithDefaults2 } from "drizzle-orm/effect-postgres";
16
29
  import { migrate as runDrizzleMigrator } from "drizzle-orm/effect-postgres/migrator";
17
- import { Effect, Layer } from "effect";
30
+ import { Effect as Effect2 } from "effect";
18
31
  import { SqlClient } from "effect/unstable/sql/SqlClient";
19
32
  import { fileURLToPath } from "url";
33
+ // ../store-sql/src/database/database-service.ts
34
+ var exports_database_service = {};
35
+ __export(exports_database_service, {
36
+ timestampParam: () => timestampParam,
37
+ testLayer: () => testLayer,
38
+ pgTypeParsers: () => pgTypeParsers,
39
+ layerFromPgClient: () => layerFromPgClient,
40
+ layer: () => layer,
41
+ fromPgDate: () => fromDbTimestamp,
42
+ fromNullablePgDate: () => fromNullableDbTimestamp,
43
+ fromNullableDbTimestamp: () => fromNullableDbTimestamp,
44
+ fromDbTimestamp: () => fromDbTimestamp,
45
+ encodeJson: () => encodeJson,
46
+ dialect: () => dialect,
47
+ decodeJson: () => decodeJson,
48
+ decodeBool: () => decodeBool,
49
+ check: () => check,
50
+ Service: () => Service,
51
+ PgClientLive: () => PgClientLive,
52
+ Dialect: () => Dialect
53
+ });
54
+ import { layerConfig as PgClientLayerConfig } from "@effect/sql-pg/PgClient";
55
+ import { makeWithDefaults } from "drizzle-orm/effect-postgres";
56
+ import { sql } from "drizzle-orm";
57
+ import { Config, Context, Effect, Layer, Redacted } from "effect";
58
+ import { types } from "pg";
59
+
60
+ class Service extends Context.Service()("@relayfx/store-sql/database/database-service/Service") {
61
+ }
62
+ var pgTypeParsers = {
63
+ getTypeParser: (typeId, format) => {
64
+ if ([1184, 1114, 1082, 1186, 1231, 1115, 1185, 1187, 1182].includes(typeId)) {
65
+ return (value) => value;
66
+ }
67
+ return types.getTypeParser(typeId, format);
68
+ }
69
+ };
70
+ var PgClientLive = PgClientLayerConfig({
71
+ url: Config.redacted("DATABASE_URL").pipe(Config.withDefault(Redacted.make("postgres://relay:relay@localhost:5545/relay"))),
72
+ maxConnections: Config.int("RELAY_SQL_MAX_CONNECTIONS").pipe(Config.withDefault(8)),
73
+ applicationName: Config.string("RELAY_SQL_APPLICATION_NAME").pipe(Config.withDefault("relay")),
74
+ types: Config.succeed(pgTypeParsers)
75
+ });
76
+ var layerFromPgClient = Layer.effect(Service, makeWithDefaults());
77
+ var layer = layerFromPgClient.pipe(Layer.provide(PgClientLive));
78
+ var testLayer = (db) => Layer.succeed(Service, db);
79
+ var check = Effect.fn("Database.check")(function* () {
80
+ const db = yield* Service;
81
+ yield* db.execute(sql`select 1 as ok`).pipe(Effect.asVoid);
82
+ });
83
+ // ../store-sql/src/schema/relay-schema.ts
84
+ import {
85
+ boolean,
86
+ doublePrecision,
87
+ index,
88
+ integer,
89
+ jsonb,
90
+ pgTable,
91
+ primaryKey,
92
+ text,
93
+ timestamp,
94
+ uniqueIndex
95
+ } from "drizzle-orm/pg-core";
96
+ import { sql as sql2 } from "drizzle-orm";
97
+ var tenantId = () => text("tenant_id").$type().notNull().default(exports_ids_schema.SystemTenantId);
98
+ var relayWorkflowDefinitionRevisions = pgTable("relay_workflow_definition_revisions", {
99
+ tenantId: tenantId(),
100
+ workflowDefinitionId: text("workflow_definition_id").$type().notNull(),
101
+ revision: integer("revision").$type().notNull(),
102
+ digest: text("digest").$type().notNull(),
103
+ definitionJson: jsonb("definition_json").$type().notNull(),
104
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
105
+ }, (table) => [
106
+ primaryKey({ columns: [table.tenantId, table.workflowDefinitionId, table.revision] }),
107
+ uniqueIndex("uq_relay_workflow_definition_digest").on(table.tenantId, table.workflowDefinitionId, table.digest)
108
+ ]);
109
+ var relayWorkflowRuns = pgTable("relay_workflow_runs", {
110
+ tenantId: tenantId(),
111
+ executionId: text("execution_id").$type().notNull(),
112
+ workflowDefinitionId: text("workflow_definition_id").$type().notNull(),
113
+ workflowDefinitionRevision: integer("workflow_definition_revision").$type().notNull(),
114
+ workflowDefinitionDigest: text("workflow_definition_digest").$type().notNull(),
115
+ status: text("status").$type().notNull(),
116
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
117
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
118
+ }, (table) => [primaryKey({ columns: [table.tenantId, table.executionId] })]);
119
+ var relayWorkflowOperationStates = pgTable("relay_workflow_operation_states", {
120
+ tenantId: tenantId(),
121
+ executionId: text("execution_id").$type().notNull(),
122
+ operationId: text("operation_id").$type().notNull(),
123
+ status: text("status").notNull(),
124
+ fanOutId: text("fan_out_id"),
125
+ decision: boolean("decision"),
126
+ outputJson: jsonb("output_json"),
127
+ attempt: integer("attempt"),
128
+ backoffUntil: timestamp("backoff_until", { withTimezone: true }),
129
+ compensationOperationId: text("compensation_operation_id"),
130
+ startedAt: timestamp("started_at", { withTimezone: true }),
131
+ completedAt: timestamp("completed_at", { withTimezone: true }),
132
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull()
133
+ }, (table) => [primaryKey({ columns: [table.tenantId, table.executionId, table.operationId] })]);
134
+ var relayWorkflowLifecycleEvents = pgTable("relay_workflow_lifecycle_events", {
135
+ tenantId: tenantId(),
136
+ executionId: text("execution_id").$type().notNull(),
137
+ sequence: integer("sequence").notNull(),
138
+ eventType: text("event_type").notNull(),
139
+ operationId: text("operation_id"),
140
+ dataJson: jsonb("data_json"),
141
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull()
142
+ }, (table) => [primaryKey({ columns: [table.tenantId, table.executionId, table.sequence] })]);
143
+ var relayEntityKinds = pgTable("relay_entity_kinds", {
144
+ tenantId: tenantId(),
145
+ kind: text("kind").$type().notNull(),
146
+ agentId: text("agent_id").$type().notNull(),
147
+ inboxPolicyJson: jsonb("inbox_policy_json").$type(),
148
+ stateEnabled: integer("state_enabled").$type(),
149
+ continueAsNewAfterTurns: integer("continue_as_new_after_turns"),
150
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
151
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
152
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
153
+ }, (table) => [primaryKey({ columns: [table.tenantId, table.kind], name: "pk_relay_entity_kinds" })]);
154
+ var relayEntityInstances = pgTable("relay_entity_instances", {
155
+ tenantId: tenantId(),
156
+ kind: text("kind").$type().notNull(),
157
+ key: text("key").$type().notNull(),
158
+ addressId: text("address_id").$type().notNull(),
159
+ executionId: text("execution_id").$type().notNull(),
160
+ generation: integer("generation").notNull(),
161
+ status: text("status").$type().notNull(),
162
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
163
+ destroyedAt: timestamp("destroyed_at", { withTimezone: true })
164
+ }, (table) => [
165
+ primaryKey({ columns: [table.tenantId, table.kind, table.key], name: "pk_relay_entity_instances" }),
166
+ index("idx_relay_entity_instances_kind_status").on(table.tenantId, table.kind, table.status)
167
+ ]);
168
+ var relayAddressBookEntries = pgTable("relay_address_book_entries", {
169
+ tenantId: tenantId(),
170
+ id: text("id").$type().notNull(),
171
+ addressId: text("address_id").$type().notNull(),
172
+ routeKind: text("route_kind").notNull(),
173
+ routeKey: text("route_key").notNull(),
174
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
175
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
176
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
177
+ }, (table) => [
178
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_address_book_entries" }),
179
+ uniqueIndex("uq_relay_address_book_address").on(table.tenantId, table.addressId)
180
+ ]);
181
+ var relayAgentDefinitions = pgTable("relay_agent_definitions", {
182
+ tenantId: tenantId(),
183
+ id: text("id").$type().notNull(),
184
+ name: text("name").notNull(),
185
+ currentRevision: integer("current_revision").$type().notNull(),
186
+ definitionJson: jsonb("definition_json").$type().notNull(),
187
+ toolInputSchemaDigestsJson: jsonb("tool_input_schema_digests_json").$type().notNull().default({}),
188
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
189
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
190
+ }, (table) => [
191
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_agent_definitions" }),
192
+ index("idx_relay_agent_definitions_name").on(table.tenantId, table.name)
193
+ ]);
194
+ var relayAgentDefinitionRevisions = pgTable("relay_agent_revisions", {
195
+ tenantId: tenantId(),
196
+ agentId: text("agent_id").$type().notNull(),
197
+ revision: integer("revision").$type().notNull(),
198
+ name: text("name").notNull(),
199
+ definitionJson: jsonb("definition_json").$type().notNull(),
200
+ toolInputSchemaDigestsJson: jsonb("tool_input_schema_digests_json").$type().notNull().default({}),
201
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
202
+ }, (table) => [
203
+ primaryKey({
204
+ columns: [table.tenantId, table.agentId, table.revision],
205
+ name: "pk_relay_agent_revisions"
206
+ }),
207
+ index("idx_relay_agent_revisions_definition").on(table.tenantId, table.agentId, table.revision)
208
+ ]);
209
+ var relaySkillDefinitions = pgTable("relay_skill_definitions", {
210
+ tenantId: tenantId(),
211
+ id: text("id").$type().notNull(),
212
+ name: text("name").notNull(),
213
+ currentRevision: integer("current_revision").$type().notNull(),
214
+ definitionJson: jsonb("definition_json").$type().notNull(),
215
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
216
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
217
+ }, (table) => [
218
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_skill_definitions" }),
219
+ index("idx_relay_skill_definitions_name").on(table.tenantId, table.name)
220
+ ]);
221
+ var relaySkillDefinitionRevisions = pgTable("relay_skill_definition_revisions", {
222
+ tenantId: tenantId(),
223
+ skillDefinitionId: text("skill_definition_id").notNull().$type(),
224
+ revision: integer("revision").notNull().$type(),
225
+ name: text("name").notNull(),
226
+ definitionJson: jsonb("definition_json").$type().notNull(),
227
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
228
+ }, (table) => [
229
+ primaryKey({
230
+ columns: [table.tenantId, table.skillDefinitionId, table.revision],
231
+ name: "pk_relay_skill_definition_revisions"
232
+ }),
233
+ index("idx_relay_skill_definition_revisions_definition").on(table.tenantId, table.skillDefinitionId, table.revision)
234
+ ]);
235
+ var relayExecutionSkillPins = pgTable("relay_execution_skill_pins", {
236
+ tenantId: tenantId(),
237
+ executionId: text("execution_id").notNull().$type(),
238
+ skillDefinitionId: text("skill_definition_id").notNull().$type(),
239
+ skillDefinitionRevision: integer("skill_definition_revision").notNull().$type(),
240
+ skillDefinitionSnapshotJson: jsonb("skill_definition_snapshot_json").$type().notNull(),
241
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
242
+ }, (table) => [
243
+ primaryKey({
244
+ columns: [table.tenantId, table.executionId, table.skillDefinitionId],
245
+ name: "pk_relay_execution_skill_pins"
246
+ }),
247
+ index("idx_relay_execution_skill_pins_execution").on(table.tenantId, table.executionId)
248
+ ]);
249
+ var relayAgentChats = pgTable("relay_agent_chats", {
250
+ tenantId: tenantId(),
251
+ executionId: text("execution_id").$type().notNull(),
252
+ exportJson: jsonb("export_json").notNull(),
253
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
254
+ }, (table) => [primaryKey({ columns: [table.tenantId, table.executionId], name: "pk_relay_agent_chats" })]);
255
+ var relayExecutionState = pgTable("relay_execution_state", {
256
+ tenantId: tenantId(),
257
+ executionId: text("execution_id").$type().notNull(),
258
+ key: text("state_key").notNull(),
259
+ valueJson: jsonb("value_json").$type().notNull(),
260
+ version: integer("version").notNull(),
261
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull(),
262
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull()
263
+ }, (table) => [
264
+ primaryKey({ columns: [table.tenantId, table.executionId, table.key], name: "pk_relay_execution_state" })
265
+ ]);
266
+ var relayExecutionStateOps = pgTable("relay_execution_state_ops", {
267
+ tenantId: tenantId(),
268
+ executionId: text("execution_id").$type().notNull(),
269
+ idempotencyKey: text("idempotency_key").notNull(),
270
+ key: text("state_key").notNull(),
271
+ version: integer("version").notNull(),
272
+ op: text("op").notNull(),
273
+ resultPresent: boolean("result_present").notNull(),
274
+ resultValueJson: jsonb("result_value_json").$type(),
275
+ resultCreatedAt: timestamp("result_created_at", { withTimezone: true }),
276
+ resultUpdatedAt: timestamp("result_updated_at", { withTimezone: true }),
277
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull()
278
+ }, (table) => [
279
+ primaryKey({
280
+ columns: [table.tenantId, table.executionId, table.idempotencyKey],
281
+ name: "pk_relay_execution_state_ops"
282
+ }),
283
+ index("idx_relay_execution_state_ops_version").on(table.tenantId, table.executionId, table.key, table.version)
284
+ ]);
285
+ var relayAgentCompactions = pgTable("relay_agent_compactions", {
286
+ tenantId: tenantId(),
287
+ executionId: text("execution_id").notNull().$type(),
288
+ checkpointId: text("checkpoint_id").notNull(),
289
+ summary: text("summary").notNull(),
290
+ firstKeptEntryId: text("first_kept_entry_id").$type().notNull(),
291
+ turn: integer("turn").notNull(),
292
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
293
+ }, (table) => [
294
+ primaryKey({
295
+ columns: [table.tenantId, table.executionId, table.checkpointId],
296
+ name: "pk_relay_agent_compactions"
297
+ }),
298
+ index("idx_relay_agent_compactions_execution_turn").on(table.tenantId, table.executionId, table.turn)
299
+ ]);
300
+ var relayMemoryRecords = pgTable("relay_memory_records", {
301
+ tenantId: tenantId(),
302
+ id: text("id").notNull(),
303
+ agent: text("agent").notNull(),
304
+ subject: text("subject").$type().notNull(),
305
+ embedding: doublePrecision("embedding").array().notNull(),
306
+ partsJson: jsonb("parts_json").$type().notNull(),
307
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
308
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
309
+ }, (table) => [
310
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_memory_records" }),
311
+ index("idx_relay_memory_records_agent_subject").on(table.tenantId, table.agent, table.subject)
312
+ ]);
313
+ var relayPermissionRules = pgTable("relay_permission_rules", {
314
+ tenantId: tenantId(),
315
+ agent: text("agent").notNull(),
316
+ scope: text("scope").notNull(),
317
+ pattern: text("pattern").notNull(),
318
+ ruleJson: jsonb("rule_json").$type().notNull(),
319
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
320
+ }, (table) => [
321
+ primaryKey({
322
+ columns: [table.tenantId, table.agent, table.scope, table.pattern],
323
+ name: "pk_relay_permission_rules"
324
+ }),
325
+ index("idx_relay_permission_rules_agent_scope").on(table.tenantId, table.agent, table.scope)
326
+ ]);
327
+ var relaySteeringMessages = pgTable("relay_steering_messages", {
328
+ tenantId: tenantId(),
329
+ executionId: text("execution_id").notNull(),
330
+ kind: text("kind").notNull(),
331
+ sequence: integer("sequence").notNull(),
332
+ contentJson: jsonb("content_json").$type().notNull(),
333
+ drainId: text("drain_id"),
334
+ consumedAt: timestamp("consumed_at", { withTimezone: true }),
335
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
336
+ }, (table) => [
337
+ primaryKey({
338
+ columns: [table.tenantId, table.executionId, table.kind, table.sequence],
339
+ name: "pk_relay_steering_messages"
340
+ }),
341
+ index("idx_relay_steering_messages_unconsumed").on(table.tenantId, table.executionId, table.kind, table.consumedAt, table.sequence),
342
+ index("idx_relay_steering_messages_drain").on(table.tenantId, table.executionId, table.kind, table.drainId, table.sequence)
343
+ ]);
344
+ var relaySteeringDrains = pgTable("relay_steering_drains", {
345
+ tenantId: tenantId(),
346
+ executionId: text("execution_id").notNull(),
347
+ kind: text("kind").notNull(),
348
+ drainId: text("drain_id").notNull(),
349
+ messageSequencesJson: jsonb("message_sequences_json").$type().notNull().default([]),
350
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
351
+ }, (table) => [
352
+ primaryKey({
353
+ columns: [table.tenantId, table.executionId, table.kind, table.drainId],
354
+ name: "pk_relay_steering_drains"
355
+ })
356
+ ]);
357
+ var relayInboxMessages = pgTable("relay_inbox_messages", {
358
+ tenantId: tenantId(),
359
+ executionId: text("execution_id").$type().notNull(),
360
+ sequence: integer("sequence").notNull(),
361
+ fromAddressId: text("from_address_id").$type().notNull(),
362
+ envelopeId: text("envelope_id").$type(),
363
+ contentJson: jsonb("content_json").$type().notNull(),
364
+ replyWaitId: text("reply_wait_id").$type(),
365
+ correlationKey: text("correlation_key"),
366
+ idempotencyKey: text("idempotency_key"),
367
+ drainId: text("drain_id"),
368
+ consumedAt: timestamp("consumed_at", { withTimezone: true }),
369
+ metadataJson: jsonb("metadata_json").$type(),
370
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
371
+ }, (table) => [
372
+ primaryKey({ columns: [table.tenantId, table.executionId, table.sequence], name: "pk_relay_inbox_messages" }),
373
+ uniqueIndex("uq_relay_inbox_messages_idempotency").on(table.tenantId, table.executionId, table.idempotencyKey),
374
+ index("idx_relay_inbox_messages_unconsumed").on(table.tenantId, table.executionId, table.consumedAt, table.sequence),
375
+ index("idx_relay_inbox_messages_drain").on(table.tenantId, table.executionId, table.drainId, table.sequence)
376
+ ]);
377
+ var relayInboxDrains = pgTable("relay_inbox_drains", {
378
+ tenantId: tenantId(),
379
+ executionId: text("execution_id").$type().notNull(),
380
+ drainId: text("drain_id").notNull(),
381
+ messageSequencesJson: jsonb("message_sequences_json").$type().notNull().default([]),
382
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
383
+ }, (table) => [
384
+ primaryKey({ columns: [table.tenantId, table.executionId, table.drainId], name: "pk_relay_inbox_drains" })
385
+ ]);
386
+ var relayTopicSubscriptions = pgTable("relay_topic_subscriptions", {
387
+ tenantId: tenantId(),
388
+ topicAddressId: text("topic_address_id").$type().notNull(),
389
+ subscriberExecutionId: text("subscriber_execution_id").$type().notNull(),
390
+ metadataJson: jsonb("metadata_json").$type(),
391
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
392
+ }, (table) => [
393
+ primaryKey({
394
+ columns: [table.tenantId, table.topicAddressId, table.subscriberExecutionId],
395
+ name: "pk_relay_topic_subscriptions"
396
+ }),
397
+ index("idx_relay_topic_subscriptions_subscriber").on(table.tenantId, table.subscriberExecutionId)
398
+ ]);
399
+ var relaySessions = pgTable("relay_sessions", {
400
+ tenantId: tenantId(),
401
+ id: text("id").$type().notNull(),
402
+ rootAddressId: text("root_address_id").$type().notNull(),
403
+ leafEntryId: text("leaf_entry_id").$type(),
404
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
405
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
406
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
407
+ }, (table) => [
408
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_sessions" }),
409
+ index("idx_relay_sessions_updated_id").on(table.tenantId, table.updatedAt, table.id),
410
+ index("idx_relay_sessions_root_updated_id").on(table.tenantId, table.rootAddressId, table.updatedAt, table.id)
411
+ ]);
412
+ var relaySessionEntries = pgTable("relay_session_entries", {
413
+ tenantId: tenantId(),
414
+ id: text("id").$type().notNull(),
415
+ sessionId: text("session_id").$type().notNull(),
416
+ parentId: text("parent_id").$type(),
417
+ tag: text("tag").notNull(),
418
+ payloadJson: jsonb("payload_json").notNull(),
419
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
420
+ }, (table) => [
421
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_session_entries" }),
422
+ index("idx_relay_session_entries_session_created").on(table.tenantId, table.sessionId, table.createdAt, table.id),
423
+ index("idx_relay_session_entries_session_parent").on(table.tenantId, table.sessionId, table.parentId)
424
+ ]);
425
+ var relayExecutionContextEpochs = pgTable("relay_execution_context_epochs", {
426
+ tenantId: tenantId(),
427
+ executionId: text("execution_id").$type().notNull(),
428
+ baseline: text("baseline").notNull(),
429
+ dynamicSourceIdsJson: jsonb("dynamic_source_ids_json").$type().notNull().default([]),
430
+ openedAt: timestamp("opened_at", { withTimezone: true }).notNull().defaultNow()
431
+ }, (table) => [primaryKey({ columns: [table.tenantId, table.executionId], name: "pk_relay_execution_context_epochs" })]);
432
+ var relayExecutions = pgTable("relay_executions", {
433
+ tenantId: tenantId(),
434
+ id: text("id").$type().notNull(),
435
+ rootAddressId: text("root_address_id").$type().notNull(),
436
+ sessionId: text("session_id").$type(),
437
+ status: text("status").$type().notNull(),
438
+ agentId: text("agent_id").$type(),
439
+ agentRevision: integer("agent_revision").$type(),
440
+ agentSnapshotJson: jsonb("agent_snapshot_json").$type(),
441
+ agentToolInputSchemaDigestsJson: jsonb("agent_tool_input_schema_digests_json").$type().notNull().default({}),
442
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
443
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
444
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
445
+ }, (table) => [
446
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_executions" }),
447
+ index("idx_relay_executions_root_status").on(table.tenantId, table.rootAddressId, table.status),
448
+ index("idx_relay_executions_session_updated_id").on(table.tenantId, table.sessionId, table.updatedAt, table.id),
449
+ index("idx_relay_executions_updated_id").on(table.tenantId, table.updatedAt, table.id),
450
+ index("idx_relay_executions_root_status_updated_id").on(table.tenantId, table.rootAddressId, table.status, table.updatedAt, table.id)
451
+ ]);
452
+ var relayChildExecutions = pgTable("relay_child_executions", {
453
+ tenantId: tenantId(),
454
+ id: text("id").$type().notNull(),
455
+ executionId: text("execution_id").$type().notNull(),
456
+ addressId: text("address_id").$type().notNull(),
457
+ status: text("status").$type().notNull(),
458
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
459
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
460
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
461
+ }, (table) => [
462
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_child_executions" }),
463
+ index("idx_relay_child_executions_parent").on(table.tenantId, table.executionId)
464
+ ]);
465
+ var relayChildFanOuts = pgTable("relay_child_fan_outs", {
466
+ tenantId: tenantId(),
467
+ id: text("id").$type().notNull(),
468
+ parentExecutionId: text("parent_execution_id").$type().notNull(),
469
+ definitionJson: jsonb("definition_json").$type().notNull(),
470
+ state: text("state").$type().notNull().default("joining"),
471
+ satisfiedAt: timestamp("satisfied_at", { withTimezone: true }),
472
+ failedAt: timestamp("failed_at", { withTimezone: true }),
473
+ cancelledAt: timestamp("cancelled_at", { withTimezone: true }),
474
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
475
+ }, (table) => [
476
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_child_fan_outs" }),
477
+ index("idx_relay_child_fan_outs_parent").on(table.tenantId, table.parentExecutionId)
478
+ ]);
479
+ var relayChildFanOutMembers = pgTable("relay_child_fan_out_members", {
480
+ tenantId: tenantId(),
481
+ fanOutId: text("fan_out_id").$type().notNull(),
482
+ childExecutionId: text("child_execution_id").$type().notNull(),
483
+ ordinal: integer("ordinal").notNull(),
484
+ state: text("state").$type().notNull().default("queued"),
485
+ outputJson: jsonb("output_json").$type(),
486
+ error: text("error"),
487
+ completedAt: timestamp("completed_at", { withTimezone: true })
488
+ }, (table) => [
489
+ primaryKey({
490
+ columns: [table.tenantId, table.fanOutId, table.childExecutionId],
491
+ name: "pk_relay_child_fan_out_members"
492
+ }),
493
+ uniqueIndex("uq_relay_child_fan_out_member_ordinal").on(table.tenantId, table.fanOutId, table.ordinal)
494
+ ]);
495
+ var relayEnvelopes = pgTable("relay_envelopes", {
496
+ tenantId: tenantId(),
497
+ id: text("id").$type().notNull(),
498
+ executionId: text("execution_id").$type().notNull(),
499
+ fromAddressId: text("from_address_id").$type().notNull(),
500
+ toAddressId: text("to_address_id").$type().notNull(),
501
+ contentJson: jsonb("content_json").$type().notNull(),
502
+ waitJson: jsonb("wait_json").$type(),
503
+ correlationKey: text("correlation_key"),
504
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
505
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
506
+ }, (table) => [
507
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_envelopes" }),
508
+ index("idx_relay_envelopes_execution").on(table.tenantId, table.executionId, table.createdAt),
509
+ index("idx_relay_envelopes_to_address").on(table.tenantId, table.toAddressId, table.createdAt)
510
+ ]);
511
+ var relayWaits = pgTable("relay_waits", {
512
+ tenantId: tenantId(),
513
+ id: text("id").$type().notNull(),
514
+ executionId: text("execution_id").$type().notNull(),
515
+ envelopeId: text("envelope_id").$type(),
516
+ mode: text("mode").$type().notNull(),
517
+ correlationKey: text("correlation_key"),
518
+ state: text("state").notNull().default("open"),
519
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
520
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
521
+ resolvedAt: timestamp("resolved_at", { withTimezone: true })
522
+ }, (table) => [
523
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_waits" }),
524
+ index("idx_relay_waits_execution_state").on(table.tenantId, table.executionId, table.state)
525
+ ]);
526
+ var relayWorkspaceLeases = pgTable("relay_workspace_leases", {
527
+ tenantId: tenantId(),
528
+ id: text("id").$type().notNull(),
529
+ executionId: text("execution_id").$type().notNull(),
530
+ providerKey: text("provider_key").$type().notNull(),
531
+ sandboxRef: text("sandbox_ref").$type(),
532
+ latestSnapshotRef: text("latest_snapshot_ref").$type(),
533
+ status: text("status").$type().notNull(),
534
+ resumeStrategy: text("resume_strategy").$type().notNull(),
535
+ region: text("region"),
536
+ requestJson: jsonb("request_json").$type(),
537
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
538
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
539
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
540
+ }, (table) => [
541
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_workspace_leases" }),
542
+ uniqueIndex("uq_relay_workspace_leases_active_execution").on(table.tenantId, table.executionId).where(sql2`${table.status} not in ('released', 'failed')`),
543
+ index("idx_relay_workspace_leases_execution").on(table.tenantId, table.executionId),
544
+ index("idx_relay_workspace_leases_status_updated").on(table.tenantId, table.status, table.updatedAt)
545
+ ]);
546
+ var relayWorkspaceSnapshots = pgTable("relay_workspace_snapshots", {
547
+ tenantId: tenantId(),
548
+ id: text("id").$type().notNull(),
549
+ leaseId: text("lease_id").$type().notNull(),
550
+ executionId: text("execution_id").$type().notNull(),
551
+ reason: text("reason").$type().notNull(),
552
+ snapshotRef: text("snapshot_ref").$type().notNull(),
553
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
554
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
555
+ }, (table) => [
556
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_workspace_snapshots" }),
557
+ index("idx_relay_workspace_snapshots_lease").on(table.tenantId, table.leaseId, table.createdAt),
558
+ index("idx_relay_workspace_snapshots_execution").on(table.tenantId, table.executionId, table.createdAt)
559
+ ]);
560
+ var relayEnvelopeReady = pgTable("relay_envelope_ready", {
561
+ tenantId: tenantId(),
562
+ id: text("id").$type().notNull(),
563
+ envelopeId: text("envelope_id").$type().notNull(),
564
+ routeType: text("route_type").notNull(),
565
+ routeKey: text("route_key").notNull(),
566
+ state: text("state").notNull().default("ready"),
567
+ availableAt: timestamp("available_at", { withTimezone: true }).notNull().defaultNow(),
568
+ attempt: integer("attempt").notNull().default(0),
569
+ claimOwner: text("claim_owner"),
570
+ claimExpiresAt: timestamp("claim_expires_at", { withTimezone: true }),
571
+ lastError: text("last_error"),
572
+ idempotencyKey: text("idempotency_key"),
573
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
574
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
575
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
576
+ claimedAt: timestamp("claimed_at", { withTimezone: true }),
577
+ acknowledgedAt: timestamp("acknowledged_at", { withTimezone: true })
578
+ }, (table) => [
579
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_envelope_ready" }),
580
+ index("idx_relay_envelope_ready_state_available").on(table.tenantId, table.state, table.availableAt),
581
+ index("idx_relay_envelope_ready_claim_expires").on(table.tenantId, table.claimExpiresAt),
582
+ uniqueIndex("uq_relay_envelope_ready_idempotency").on(table.tenantId, table.idempotencyKey)
583
+ ]);
584
+ var relaySchedules = pgTable("relay_schedules", {
585
+ tenantId: tenantId(),
586
+ id: text("id").$type().notNull(),
587
+ kind: text("kind").notNull(),
588
+ targetKind: text("target_kind").notNull(),
589
+ addressId: text("address_id").$type(),
590
+ waitId: text("wait_id").$type(),
591
+ cronExpr: text("cron_expr"),
592
+ inputJson: jsonb("input_json").$type(),
593
+ state: text("state").notNull().default("active"),
594
+ nextRunAt: timestamp("next_run_at", { withTimezone: true }).notNull(),
595
+ attempt: integer("attempt").notNull().default(0),
596
+ claimOwner: text("claim_owner"),
597
+ claimExpiresAt: timestamp("claim_expires_at", { withTimezone: true }),
598
+ lastError: text("last_error"),
599
+ idempotencyKey: text("idempotency_key"),
600
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
601
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
602
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
603
+ }, (table) => [
604
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_schedules" }),
605
+ index("idx_relay_schedules_state_next_run").on(table.tenantId, table.state, table.nextRunAt),
606
+ index("idx_relay_schedules_claim_expires").on(table.tenantId, table.claimExpiresAt),
607
+ index("idx_relay_schedules_wait").on(table.tenantId, table.waitId),
608
+ uniqueIndex("uq_relay_schedules_idempotency").on(table.tenantId, table.idempotencyKey)
609
+ ]);
610
+ var relayExecutionEvents = pgTable("relay_execution_events", {
611
+ tenantId: tenantId(),
612
+ id: text("id").$type().notNull(),
613
+ executionId: text("execution_id").$type().notNull(),
614
+ childExecutionId: text("child_execution_id").$type(),
615
+ type: text("type").notNull(),
616
+ sequence: integer("sequence").notNull(),
617
+ cursor: text("cursor").notNull(),
618
+ contentJson: jsonb("content_json").$type(),
619
+ dataJson: jsonb("data_json").$type().notNull().default({}),
620
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
621
+ }, (table) => [
622
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_execution_events" }),
623
+ index("idx_relay_execution_events_execution").on(table.tenantId, table.executionId, table.createdAt),
624
+ uniqueIndex("uq_relay_execution_events_sequence").on(table.tenantId, table.executionId, table.sequence),
625
+ uniqueIndex("uq_relay_execution_events_cursor").on(table.tenantId, table.cursor)
626
+ ]);
627
+ var relayPresence = pgTable("relay_presence", {
628
+ tenantId: tenantId(),
629
+ id: text("id").notNull(),
630
+ scopeKind: text("scope_kind").$type().notNull(),
631
+ scopeId: text("scope_id").notNull(),
632
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
633
+ connectedAt: timestamp("connected_at", { withTimezone: true }).notNull().defaultNow(),
634
+ expiresAt: timestamp("expires_at", { withTimezone: true }).notNull()
635
+ }, (table) => [
636
+ primaryKey({ columns: [table.tenantId, table.id, table.scopeKind, table.scopeId], name: "pk_relay_presence" }),
637
+ index("idx_relay_presence_scope_expires").on(table.tenantId, table.scopeKind, table.scopeId, table.expiresAt)
638
+ ]);
639
+ var relayToolCalls = pgTable("relay_tool_calls", {
640
+ tenantId: tenantId(),
641
+ id: text("id").$type().notNull(),
642
+ executionId: text("execution_id").$type().notNull(),
643
+ name: text("name").notNull(),
644
+ inputJson: jsonb("input_json").notNull(),
645
+ definitionJson: jsonb("definition_json").$type(),
646
+ placementKind: text("placement_kind").$type().notNull().default("local"),
647
+ placementKey: text("placement_key"),
648
+ state: text("state").$type().notNull().default("requested"),
649
+ waitId: text("wait_id").$type(),
650
+ idempotencyKey: text("idempotency_key").notNull(),
651
+ availableAt: timestamp("available_at", { withTimezone: true }).notNull().defaultNow(),
652
+ activeAttemptId: text("active_attempt_id").$type(),
653
+ claimOwner: text("claim_owner"),
654
+ claimedAt: timestamp("claimed_at", { withTimezone: true }),
655
+ claimExpiresAt: timestamp("claim_expires_at", { withTimezone: true }),
656
+ externalOutcomeJson: jsonb("external_outcome_json").$type(),
657
+ externalOutcomeAt: timestamp("external_outcome_at", { withTimezone: true }),
658
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
659
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
660
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
661
+ }, (table) => [
662
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_tool_calls" }),
663
+ index("idx_relay_tool_calls_execution").on(table.tenantId, table.executionId, table.createdAt),
664
+ index("idx_relay_tool_calls_remote_claim").on(table.tenantId, table.placementKind, table.placementKey, table.state, table.availableAt, table.createdAt, table.id),
665
+ index("idx_relay_tool_calls_stale_claim").on(table.tenantId, table.state, table.claimExpiresAt),
666
+ index("idx_relay_tool_calls_client_pending").on(table.tenantId, table.placementKind, table.state, table.createdAt, table.id)
667
+ ]);
668
+ var relayToolAttempts = pgTable("relay_tool_attempts", {
669
+ tenantId: tenantId(),
670
+ id: text("id").$type().notNull(),
671
+ toolCallId: text("tool_call_id").$type().notNull(),
672
+ attemptNumber: integer("attempt_number").notNull(),
673
+ state: text("state").$type().notNull(),
674
+ workerId: text("worker_id"),
675
+ claimExpiresAt: timestamp("claim_expires_at", { withTimezone: true }),
676
+ error: text("error"),
677
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
678
+ completedAt: timestamp("completed_at", { withTimezone: true })
679
+ }, (table) => [
680
+ primaryKey({ columns: [table.tenantId, table.toolCallId, table.id], name: "pk_relay_tool_attempts" }),
681
+ uniqueIndex("uq_relay_tool_attempts_number").on(table.tenantId, table.toolCallId, table.attemptNumber),
682
+ index("idx_relay_tool_attempts_call").on(table.tenantId, table.toolCallId, table.attemptNumber)
683
+ ]);
684
+ var relayToolResults = pgTable("relay_tool_results", {
685
+ tenantId: tenantId(),
686
+ toolCallId: text("tool_call_id").$type().notNull(),
687
+ outputJson: jsonb("output_json").notNull(),
688
+ error: text("error"),
689
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
690
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
691
+ }, (table) => [primaryKey({ columns: [table.tenantId, table.toolCallId], name: "pk_relay_tool_results" })]);
692
+ var relayRouteAttempts = pgTable("relay_route_attempts", {
693
+ tenantId: tenantId(),
694
+ id: text("id").notNull(),
695
+ envelopeReadyId: text("envelope_ready_id").$type().notNull(),
696
+ routeKey: text("route_key").notNull(),
697
+ state: text("state").notNull(),
698
+ detail: text("detail"),
699
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
700
+ }, (table) => [
701
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_route_attempts" }),
702
+ index("idx_relay_route_attempts_ready").on(table.tenantId, table.envelopeReadyId, table.createdAt)
703
+ ]);
704
+ var relayIdempotencyKeys = pgTable("relay_idempotency_keys", {
705
+ tenantId: tenantId(),
706
+ id: text("id").notNull(),
707
+ scope: text("scope").notNull(),
708
+ operation: text("operation").notNull(),
709
+ key: text("key").notNull(),
710
+ resultJson: jsonb("result_json").$type(),
711
+ metadataJson: jsonb("metadata_json").$type().notNull().default({}),
712
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
713
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
714
+ expiresAt: timestamp("expires_at", { withTimezone: true })
715
+ }, (table) => [
716
+ primaryKey({ columns: [table.tenantId, table.id], name: "pk_relay_idempotency_keys" }),
717
+ uniqueIndex("uq_relay_idempotency_scope_operation_key").on(table.tenantId, table.scope, table.operation, table.key)
718
+ ]);
719
+ // src/postgres.ts
20
720
  var schemaHead = "20260712200000_workflow_runtime";
21
721
  var migrationNames = [
22
722
  "20260701002839_sour_cerebro",
@@ -47,9 +747,9 @@ var migrationNames = [
47
747
  ];
48
748
  var migrationsFolderUrl = import.meta.url.endsWith("/src/postgres.ts") ? new URL("../../../migrations/pg", import.meta.url) : new URL("./migrations/pg", import.meta.url);
49
749
  var migrationsFolder = fileURLToPath(migrationsFolderUrl);
50
- var verifySchema = Effect.gen(function* () {
51
- const sql = yield* SqlClient;
52
- const rows = yield* sql`SELECT name FROM drizzle.__drizzle_migrations ORDER BY id`;
750
+ var verifySchema = Effect2.gen(function* () {
751
+ const sql3 = yield* SqlClient;
752
+ const rows = yield* sql3`SELECT name FROM drizzle.__drizzle_migrations ORDER BY id`;
53
753
  const actual = rows.map((row) => row.name).join(",");
54
754
  const expected = migrationNames.join(",");
55
755
  if (actual !== expected) {
@@ -61,22 +761,22 @@ var verifySchema = Effect.gen(function* () {
61
761
  });
62
762
  }
63
763
  }).pipe((effect) => normalizeMigrationCause(effect, "pg", "verify"));
64
- var runtimeDatabaseLayer2 = (options) => runtimeDatabaseLayer({
764
+ var runMigrations = normalizeMigrationCause(Effect2.gen(function* () {
765
+ const sql3 = yield* SqlClient;
766
+ const pg = sql3;
767
+ const database2 = yield* makeWithDefaults2().pipe(Effect2.provideService(PgClient2, pg));
768
+ yield* runDrizzleMigrator(database2, { migrationsFolder });
769
+ }), "pg", "apply");
770
+ var database2 = (options) => database({
65
771
  ...options,
66
772
  dialect: "pg",
67
773
  ownership: "shared-multi-node",
68
774
  schemaHead,
69
- schema: verifySchema
775
+ acquire: verifySchema,
776
+ verify: verifySchema,
777
+ migrate: runMigrations.pipe(Effect2.andThen(verifySchema))
70
778
  });
71
- var migrate = (options) => Effect.scoped(Layer.build(normalizeClientLayer(options.clientLayer)).pipe(Effect.flatMap((context) => Effect.provide(normalizeMigrationCause(Effect.gen(function* () {
72
- const sql = yield* SqlClient;
73
- const pg = sql;
74
- const database = yield* makeWithDefaults().pipe(Effect.provideService(PgClient, pg));
75
- yield* runDrizzleMigrator(database, { migrationsFolder });
76
- }), "pg", "apply").pipe(Effect.andThen(normalizeMigrationCause(verifySchema, "pg", "verify"))), context)))).pipe(Effect.asVoid);
77
- var Postgres = { runtimeDatabaseLayer: runtimeDatabaseLayer2, migrate };
779
+ var Postgres = { database: database2, pgTypeParsers: exports_database_service.pgTypeParsers };
78
780
  export {
79
- runtimeDatabaseLayer2 as runtimeDatabaseLayer,
80
- migrate,
81
781
  Postgres
82
782
  };