@rudderhq/db 0.4.6-canary.9 → 0.5.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.
Files changed (74) hide show
  1. package/dist/client.test.js +629 -0
  2. package/dist/client.test.js.map +1 -1
  3. package/dist/embedded-postgres-recovery.d.ts +1 -0
  4. package/dist/embedded-postgres-recovery.d.ts.map +1 -1
  5. package/dist/embedded-postgres-recovery.js +33 -0
  6. package/dist/embedded-postgres-recovery.js.map +1 -1
  7. package/dist/embedded-postgres-recovery.test.js +19 -1
  8. package/dist/embedded-postgres-recovery.test.js.map +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/migration-runtime.d.ts.map +1 -1
  14. package/dist/migration-runtime.js +3 -20
  15. package/dist/migration-runtime.js.map +1 -1
  16. package/dist/migrations/0102_complex_retro_girl.sql +38 -0
  17. package/dist/migrations/0103_cute_colonel_america.sql +4 -0
  18. package/dist/migrations/0104_unusual_mister_fear.sql +173 -0
  19. package/dist/migrations/0105_chat_queue_actor_reconciliation.sql +54 -0
  20. package/dist/migrations/0106_damp_amphibian.sql +9 -0
  21. package/dist/migrations/meta/0102_snapshot.json +19090 -0
  22. package/dist/migrations/meta/0103_snapshot.json +19114 -0
  23. package/dist/migrations/meta/0104_snapshot.json +20338 -0
  24. package/dist/migrations/meta/0105_snapshot.json +20338 -0
  25. package/dist/migrations/meta/0106_snapshot.json +20442 -0
  26. package/dist/migrations/meta/_journal.json +35 -0
  27. package/dist/schema/activity_log.d.ts +17 -0
  28. package/dist/schema/activity_log.d.ts.map +1 -1
  29. package/dist/schema/activity_log.js +6 -1
  30. package/dist/schema/activity_log.js.map +1 -1
  31. package/dist/schema/agent_wakeup_requests.d.ts.map +1 -1
  32. package/dist/schema/agent_wakeup_requests.js +5 -1
  33. package/dist/schema/agent_wakeup_requests.js.map +1 -1
  34. package/dist/schema/chat_control_actions.d.ts +442 -0
  35. package/dist/schema/chat_control_actions.d.ts.map +1 -0
  36. package/dist/schema/chat_control_actions.js +35 -0
  37. package/dist/schema/chat_control_actions.js.map +1 -0
  38. package/dist/schema/chat_conversations.d.ts +119 -0
  39. package/dist/schema/chat_conversations.d.ts.map +1 -1
  40. package/dist/schema/chat_conversations.js +10 -1
  41. package/dist/schema/chat_conversations.js.map +1 -1
  42. package/dist/schema/chat_generation_events.d.ts +268 -0
  43. package/dist/schema/chat_generation_events.d.ts.map +1 -0
  44. package/dist/schema/chat_generation_events.js +32 -0
  45. package/dist/schema/chat_generation_events.js.map +1 -0
  46. package/dist/schema/chat_generation_terminal_outbox.d.ts +370 -0
  47. package/dist/schema/chat_generation_terminal_outbox.d.ts.map +1 -0
  48. package/dist/schema/chat_generation_terminal_outbox.js +33 -0
  49. package/dist/schema/chat_generation_terminal_outbox.js.map +1 -0
  50. package/dist/schema/chat_generations.d.ts +279 -2
  51. package/dist/schema/chat_generations.d.ts.map +1 -1
  52. package/dist/schema/chat_generations.js +23 -2
  53. package/dist/schema/chat_generations.js.map +1 -1
  54. package/dist/schema/chat_queued_messages.d.ts +285 -2
  55. package/dist/schema/chat_queued_messages.d.ts.map +1 -1
  56. package/dist/schema/chat_queued_messages.js +23 -1
  57. package/dist/schema/chat_queued_messages.js.map +1 -1
  58. package/dist/schema/cost_events.d.ts +34 -0
  59. package/dist/schema/cost_events.d.ts.map +1 -1
  60. package/dist/schema/cost_events.js +5 -1
  61. package/dist/schema/cost_events.js.map +1 -1
  62. package/dist/schema/heartbeat_run_events.d.ts +17 -0
  63. package/dist/schema/heartbeat_run_events.d.ts.map +1 -1
  64. package/dist/schema/heartbeat_run_events.js +6 -1
  65. package/dist/schema/heartbeat_run_events.js.map +1 -1
  66. package/dist/schema/heartbeat_runs.d.ts +303 -0
  67. package/dist/schema/heartbeat_runs.d.ts.map +1 -1
  68. package/dist/schema/heartbeat_runs.js +24 -2
  69. package/dist/schema/heartbeat_runs.js.map +1 -1
  70. package/dist/schema/index.d.ts +3 -0
  71. package/dist/schema/index.d.ts.map +1 -1
  72. package/dist/schema/index.js +3 -0
  73. package/dist/schema/index.js.map +1 -1
  74. package/package.json +2 -2
@@ -1,4 +1,5 @@
1
1
  import { index, integer, jsonb, pgTable, text, timestamp, uniqueIndex, uuid } from "drizzle-orm/pg-core";
2
+ import { chatControlActions } from "./chat_control_actions.js";
2
3
  import { chatConversations } from "./chat_conversations.js";
3
4
  import { chatGenerations } from "./chat_generations.js";
4
5
  import { chatMessages } from "./chat_messages.js";
@@ -8,12 +9,28 @@ export const chatQueuedMessages = pgTable("chat_queued_messages", {
8
9
  orgId: uuid("org_id").notNull().references(() => organizations.id, { onDelete: "cascade" }),
9
10
  conversationId: uuid("conversation_id").notNull().references(() => chatConversations.id, { onDelete: "cascade" }),
10
11
  position: integer("position").notNull(),
11
- status: text("status").notNull().default("queued"),
12
+ status: text("status").$type().notNull().default("queued"),
12
13
  version: integer("version").notNull().default(1),
13
14
  clientMutationId: text("client_mutation_id").notNull(),
14
15
  payload: jsonb("payload").$type().notNull(),
16
+ requestActor: jsonb("request_actor").$type(),
17
+ deliveryIntent: text("delivery_intent").$type().notNull().default("queue"),
18
+ deliveryDisposition: text("delivery_disposition").$type(),
19
+ controlActionId: uuid("control_action_id").references(() => chatControlActions.id, { onDelete: "set null" }),
15
20
  expectedGenerationId: uuid("expected_generation_id").references(() => chatGenerations.id, { onDelete: "set null" }),
16
21
  activeGenerationId: uuid("active_generation_id").references(() => chatGenerations.id, { onDelete: "set null" }),
22
+ attemptEpoch: integer("attempt_epoch"),
23
+ providerClientMessageId: text("provider_client_message_id"),
24
+ providerThreadId: text("provider_thread_id"),
25
+ providerTurnId: text("provider_turn_id"),
26
+ providerEvidence: jsonb("provider_evidence").$type(),
27
+ continuationGenerationId: uuid("continuation_generation_id").references(() => chatGenerations.id, { onDelete: "set null" }),
28
+ continuationMessageId: uuid("continuation_message_id").references(() => chatMessages.id, { onDelete: "set null" }),
29
+ deliveryLeaseToken: text("delivery_lease_token"),
30
+ deliveryLeaseEpoch: integer("delivery_lease_epoch").notNull().default(0),
31
+ deliveryLeaseOwner: text("delivery_lease_owner"),
32
+ deliveryLeaseExpiresAt: timestamp("delivery_lease_expires_at", { withTimezone: true }),
33
+ reconciliationReason: text("reconciliation_reason"),
17
34
  deliveryAttempts: integer("delivery_attempts").notNull().default(0),
18
35
  lastAttemptAt: timestamp("last_attempt_at", { withTimezone: true }),
19
36
  lastDeliveryReason: text("last_delivery_reason"),
@@ -29,5 +46,10 @@ export const chatQueuedMessages = pgTable("chat_queued_messages", {
29
46
  orgConversationIdx: index("chat_queued_messages_org_conversation_idx").on(table.orgId, table.conversationId),
30
47
  conversationPositionUq: uniqueIndex("chat_queued_messages_conversation_position_uq").on(table.conversationId, table.position),
31
48
  conversationMutationUq: uniqueIndex("chat_queued_messages_conversation_mutation_uq").on(table.conversationId, table.clientMutationId),
49
+ controlActionUq: uniqueIndex("chat_queued_messages_control_action_uq").on(table.controlActionId),
50
+ continuationGenerationUq: uniqueIndex("chat_queued_messages_continuation_generation_uq").on(table.continuationGenerationId),
51
+ continuationMessageUq: uniqueIndex("chat_queued_messages_continuation_message_uq").on(table.continuationMessageId),
52
+ deliveryClaimIdx: index("chat_queued_messages_delivery_claim_idx").on(table.orgId, table.status, table.deliveryLeaseExpiresAt),
53
+ intentPositionIdx: index("chat_queued_messages_intent_position_idx").on(table.orgId, table.conversationId, table.deliveryIntent, table.status, table.position),
32
54
  }));
33
55
  //# sourceMappingURL=chat_queued_messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat_queued_messages.js","sourceRoot":"","sources":["../../src/schema/chat_queued_messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat_queued_messages.js","sourceRoot":"","sources":["../../src/schema/chat_queued_messages.ts"],"names":[],"mappings":"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"}
@@ -121,6 +121,40 @@ export declare const costEvents: import("drizzle-orm/pg-core").PgTableWithColumn
121
121
  identity: undefined;
122
122
  generated: undefined;
123
123
  }, {}, {}>;
124
+ idempotencyKey: import("drizzle-orm/pg-core").PgColumn<{
125
+ name: "idempotency_key";
126
+ tableName: "cost_events";
127
+ dataType: "string";
128
+ columnType: "PgText";
129
+ data: string;
130
+ driverParam: string;
131
+ notNull: false;
132
+ hasDefault: false;
133
+ isPrimaryKey: false;
134
+ isAutoincrement: false;
135
+ hasRuntimeDefault: false;
136
+ enumValues: [string, ...string[]];
137
+ baseColumn: never;
138
+ identity: undefined;
139
+ generated: undefined;
140
+ }, {}, {}>;
141
+ budgetEvaluatedAt: import("drizzle-orm/pg-core").PgColumn<{
142
+ name: "budget_evaluated_at";
143
+ tableName: "cost_events";
144
+ dataType: "date";
145
+ columnType: "PgTimestamp";
146
+ data: Date;
147
+ driverParam: string;
148
+ notNull: false;
149
+ hasDefault: false;
150
+ isPrimaryKey: false;
151
+ isAutoincrement: false;
152
+ hasRuntimeDefault: false;
153
+ enumValues: undefined;
154
+ baseColumn: never;
155
+ identity: undefined;
156
+ generated: undefined;
157
+ }, {}, {}>;
124
158
  billingCode: import("drizzle-orm/pg-core").PgColumn<{
125
159
  name: "billing_code";
126
160
  tableName: "cost_events";
@@ -1 +1 @@
1
- {"version":3,"file":"cost_events.d.ts","sourceRoot":"","sources":["../../src/schema/cost_events.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CtB,CAAC"}
1
+ {"version":3,"file":"cost_events.d.ts","sourceRoot":"","sources":["../../src/schema/cost_events.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDtB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { index, integer, pgTable, text, timestamp, uuid } from "drizzle-orm/pg-core";
1
+ import { index, integer, pgTable, text, timestamp, uniqueIndex, uuid } from "drizzle-orm/pg-core";
2
2
  import { agents } from "./agents.js";
3
3
  import { goals } from "./goals.js";
4
4
  import { heartbeatRuns } from "./heartbeat_runs.js";
@@ -13,6 +13,8 @@ export const costEvents = pgTable("cost_events", {
13
13
  projectId: uuid("project_id").references(() => projects.id),
14
14
  goalId: uuid("goal_id").references(() => goals.id),
15
15
  heartbeatRunId: uuid("heartbeat_run_id").references(() => heartbeatRuns.id),
16
+ idempotencyKey: text("idempotency_key"),
17
+ budgetEvaluatedAt: timestamp("budget_evaluated_at", { withTimezone: true }),
16
18
  billingCode: text("billing_code"),
17
19
  provider: text("provider").notNull(),
18
20
  biller: text("biller").notNull().default("unknown"),
@@ -30,5 +32,7 @@ export const costEvents = pgTable("cost_events", {
30
32
  companyProviderOccurredIdx: index("cost_events_company_provider_occurred_idx").on(table.orgId, table.provider, table.occurredAt),
31
33
  companyBillerOccurredIdx: index("cost_events_company_biller_occurred_idx").on(table.orgId, table.biller, table.occurredAt),
32
34
  companyHeartbeatRunIdx: index("cost_events_company_heartbeat_run_idx").on(table.orgId, table.heartbeatRunId),
35
+ companyIdempotencyKeyUniqueIdx: uniqueIndex("cost_events_company_idempotency_key_uq")
36
+ .on(table.orgId, table.idempotencyKey),
33
37
  }));
34
38
  //# sourceMappingURL=cost_events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cost_events.js","sourceRoot":"","sources":["../../src/schema/cost_events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cost_events.js","sourceRoot":"","sources":["../../src/schema/cost_events.ts"],"names":[],"mappings":"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"}
@@ -191,6 +191,23 @@ export declare const heartbeatRunEvents: import("drizzle-orm/pg-core").PgTableWi
191
191
  }, {}, {
192
192
  $type: Record<string, unknown>;
193
193
  }>;
194
+ idempotencyKey: import("drizzle-orm/pg-core").PgColumn<{
195
+ name: "idempotency_key";
196
+ tableName: "heartbeat_run_events";
197
+ dataType: "string";
198
+ columnType: "PgText";
199
+ data: string;
200
+ driverParam: string;
201
+ notNull: false;
202
+ hasDefault: false;
203
+ isPrimaryKey: false;
204
+ isAutoincrement: false;
205
+ hasRuntimeDefault: false;
206
+ enumValues: [string, ...string[]];
207
+ baseColumn: never;
208
+ identity: undefined;
209
+ generated: undefined;
210
+ }, {}, {}>;
194
211
  createdAt: import("drizzle-orm/pg-core").PgColumn<{
195
212
  name: "created_at";
196
213
  tableName: "heartbeat_run_events";
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat_run_events.d.ts","sourceRoot":"","sources":["../../src/schema/heartbeat_run_events.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqB9B,CAAC"}
1
+ {"version":3,"file":"heartbeat_run_events.d.ts","sourceRoot":"","sources":["../../src/schema/heartbeat_run_events.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyB9B,CAAC"}
@@ -1,4 +1,5 @@
1
- import { bigserial, index, integer, jsonb, pgTable, text, timestamp, uuid } from "drizzle-orm/pg-core";
1
+ import { sql } from "drizzle-orm";
2
+ import { bigserial, index, integer, jsonb, pgTable, text, timestamp, uniqueIndex, uuid } from "drizzle-orm/pg-core";
2
3
  import { agents } from "./agents.js";
3
4
  import { heartbeatRuns } from "./heartbeat_runs.js";
4
5
  import { organizations } from "./organizations.js";
@@ -14,10 +15,14 @@ export const heartbeatRunEvents = pgTable("heartbeat_run_events", {
14
15
  color: text("color"),
15
16
  message: text("message"),
16
17
  payload: jsonb("payload").$type(),
18
+ idempotencyKey: text("idempotency_key"),
17
19
  createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
18
20
  }, (table) => ({
19
21
  runSeqIdx: index("heartbeat_run_events_run_seq_idx").on(table.runId, table.seq),
20
22
  companyRunIdx: index("heartbeat_run_events_company_run_idx").on(table.orgId, table.runId),
21
23
  companyCreatedIdx: index("heartbeat_run_events_company_created_idx").on(table.orgId, table.createdAt),
24
+ runIdempotencyKeyUniqueIdx: uniqueIndex("heartbeat_run_events_run_idempotency_key_uq")
25
+ .on(table.runId, table.idempotencyKey)
26
+ .where(sql `${table.idempotencyKey} is not null`),
22
27
  }));
23
28
  //# sourceMappingURL=heartbeat_run_events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat_run_events.js","sourceRoot":"","sources":["../../src/schema/heartbeat_run_events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACvG,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CACvC,sBAAsB,EACtB;IACE,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE;IACpD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;IAClE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;IAClE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IAC/D,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;IAC7B,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACvC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;IACtB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IACpB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IACpB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAA2B;IAC1D,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACV,SAAS,EAAE,KAAK,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IAC/E,aAAa,EAAE,KAAK,CAAC,sCAAsC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACzF,iBAAiB,EAAE,KAAK,CAAC,0CAA0C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACtG,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"heartbeat_run_events.js","sourceRoot":"","sources":["../../src/schema/heartbeat_run_events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACpH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CACvC,sBAAsB,EACtB;IACE,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE;IACpD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;IAClE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;IAClE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IAC/D,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;IAC7B,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACvC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;IACtB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IACpB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IACpB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAA2B;IAC1D,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC;IACvC,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACV,SAAS,EAAE,KAAK,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IAC/E,aAAa,EAAE,KAAK,CAAC,sCAAsC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACzF,iBAAiB,EAAE,KAAK,CAAC,0CAA0C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACrG,0BAA0B,EAAE,WAAW,CAAC,6CAA6C,CAAC;SACnF,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC;SACrC,KAAK,CAAC,GAAG,CAAA,GAAG,KAAK,CAAC,cAAc,cAAc,CAAC;CACnD,CAAC,CACH,CAAC"}
@@ -297,6 +297,63 @@ export declare const heartbeatRuns: import("drizzle-orm/pg-core").PgTableWithCol
297
297
  identity: undefined;
298
298
  generated: undefined;
299
299
  }, {}, {}>;
300
+ sessionParamsBeforeJson: import("drizzle-orm/pg-core").PgColumn<{
301
+ name: "session_params_before_json";
302
+ tableName: "heartbeat_runs";
303
+ dataType: "json";
304
+ columnType: "PgJsonb";
305
+ data: Record<string, unknown>;
306
+ driverParam: unknown;
307
+ notNull: false;
308
+ hasDefault: false;
309
+ isPrimaryKey: false;
310
+ isAutoincrement: false;
311
+ hasRuntimeDefault: false;
312
+ enumValues: undefined;
313
+ baseColumn: never;
314
+ identity: undefined;
315
+ generated: undefined;
316
+ }, {}, {
317
+ $type: Record<string, unknown>;
318
+ }>;
319
+ sessionParamsAfterJson: import("drizzle-orm/pg-core").PgColumn<{
320
+ name: "session_params_after_json";
321
+ tableName: "heartbeat_runs";
322
+ dataType: "json";
323
+ columnType: "PgJsonb";
324
+ data: Record<string, unknown>;
325
+ driverParam: unknown;
326
+ notNull: false;
327
+ hasDefault: false;
328
+ isPrimaryKey: false;
329
+ isAutoincrement: false;
330
+ hasRuntimeDefault: false;
331
+ enumValues: undefined;
332
+ baseColumn: never;
333
+ identity: undefined;
334
+ generated: undefined;
335
+ }, {}, {
336
+ $type: Record<string, unknown>;
337
+ }>;
338
+ sessionReuseScope: import("drizzle-orm/pg-core").PgColumn<{
339
+ name: "session_reuse_scope";
340
+ tableName: "heartbeat_runs";
341
+ dataType: "string";
342
+ columnType: "PgText";
343
+ data: "task" | "explicit" | "none" | "unknown";
344
+ driverParam: string;
345
+ notNull: true;
346
+ hasDefault: true;
347
+ isPrimaryKey: false;
348
+ isAutoincrement: false;
349
+ hasRuntimeDefault: false;
350
+ enumValues: [string, ...string[]];
351
+ baseColumn: never;
352
+ identity: undefined;
353
+ generated: undefined;
354
+ }, {}, {
355
+ $type: "task" | "explicit" | "none" | "unknown";
356
+ }>;
300
357
  logStore: import("drizzle-orm/pg-core").PgColumn<{
301
358
  name: "log_store";
302
359
  tableName: "heartbeat_runs";
@@ -501,6 +558,252 @@ export declare const heartbeatRuns: import("drizzle-orm/pg-core").PgTableWithCol
501
558
  identity: undefined;
502
559
  generated: undefined;
503
560
  }, {}, {}>;
561
+ processExitedAt: import("drizzle-orm/pg-core").PgColumn<{
562
+ name: "process_exited_at";
563
+ tableName: "heartbeat_runs";
564
+ dataType: "date";
565
+ columnType: "PgTimestamp";
566
+ data: Date;
567
+ driverParam: string;
568
+ notNull: false;
569
+ hasDefault: false;
570
+ isPrimaryKey: false;
571
+ isAutoincrement: false;
572
+ hasRuntimeDefault: false;
573
+ enumValues: undefined;
574
+ baseColumn: never;
575
+ identity: undefined;
576
+ generated: undefined;
577
+ }, {}, {}>;
578
+ executionOwnerToken: import("drizzle-orm/pg-core").PgColumn<{
579
+ name: "execution_owner_token";
580
+ tableName: "heartbeat_runs";
581
+ dataType: "string";
582
+ columnType: "PgText";
583
+ data: string;
584
+ driverParam: string;
585
+ notNull: false;
586
+ hasDefault: false;
587
+ isPrimaryKey: false;
588
+ isAutoincrement: false;
589
+ hasRuntimeDefault: false;
590
+ enumValues: [string, ...string[]];
591
+ baseColumn: never;
592
+ identity: undefined;
593
+ generated: undefined;
594
+ }, {}, {}>;
595
+ executionLeaseExpiresAt: import("drizzle-orm/pg-core").PgColumn<{
596
+ name: "execution_lease_expires_at";
597
+ tableName: "heartbeat_runs";
598
+ dataType: "date";
599
+ columnType: "PgTimestamp";
600
+ data: Date;
601
+ driverParam: string;
602
+ notNull: false;
603
+ hasDefault: false;
604
+ isPrimaryKey: false;
605
+ isAutoincrement: false;
606
+ hasRuntimeDefault: false;
607
+ enumValues: undefined;
608
+ baseColumn: never;
609
+ identity: undefined;
610
+ generated: undefined;
611
+ }, {}, {}>;
612
+ terminalEffectsPending: import("drizzle-orm/pg-core").PgColumn<{
613
+ name: "terminal_effects_pending";
614
+ tableName: "heartbeat_runs";
615
+ dataType: "boolean";
616
+ columnType: "PgBoolean";
617
+ data: boolean;
618
+ driverParam: boolean;
619
+ notNull: true;
620
+ hasDefault: true;
621
+ isPrimaryKey: false;
622
+ isAutoincrement: false;
623
+ hasRuntimeDefault: false;
624
+ enumValues: undefined;
625
+ baseColumn: never;
626
+ identity: undefined;
627
+ generated: undefined;
628
+ }, {}, {}>;
629
+ terminalEffectsJson: import("drizzle-orm/pg-core").PgColumn<{
630
+ name: "terminal_effects_json";
631
+ tableName: "heartbeat_runs";
632
+ dataType: "json";
633
+ columnType: "PgJsonb";
634
+ data: Record<string, unknown>;
635
+ driverParam: unknown;
636
+ notNull: false;
637
+ hasDefault: false;
638
+ isPrimaryKey: false;
639
+ isAutoincrement: false;
640
+ hasRuntimeDefault: false;
641
+ enumValues: undefined;
642
+ baseColumn: never;
643
+ identity: undefined;
644
+ generated: undefined;
645
+ }, {}, {
646
+ $type: Record<string, unknown>;
647
+ }>;
648
+ terminalEffectsCompletedJson: import("drizzle-orm/pg-core").PgColumn<{
649
+ name: "terminal_effects_completed_json";
650
+ tableName: "heartbeat_runs";
651
+ dataType: "json";
652
+ columnType: "PgJsonb";
653
+ data: string[];
654
+ driverParam: unknown;
655
+ notNull: false;
656
+ hasDefault: false;
657
+ isPrimaryKey: false;
658
+ isAutoincrement: false;
659
+ hasRuntimeDefault: false;
660
+ enumValues: undefined;
661
+ baseColumn: never;
662
+ identity: undefined;
663
+ generated: undefined;
664
+ }, {}, {
665
+ $type: string[];
666
+ }>;
667
+ terminalEffectsDeadLetteredJson: import("drizzle-orm/pg-core").PgColumn<{
668
+ name: "terminal_effects_dead_lettered_json";
669
+ tableName: "heartbeat_runs";
670
+ dataType: "json";
671
+ columnType: "PgJsonb";
672
+ data: string[];
673
+ driverParam: unknown;
674
+ notNull: false;
675
+ hasDefault: false;
676
+ isPrimaryKey: false;
677
+ isAutoincrement: false;
678
+ hasRuntimeDefault: false;
679
+ enumValues: undefined;
680
+ baseColumn: never;
681
+ identity: undefined;
682
+ generated: undefined;
683
+ }, {}, {
684
+ $type: string[];
685
+ }>;
686
+ terminalEffectsAttemptsJson: import("drizzle-orm/pg-core").PgColumn<{
687
+ name: "terminal_effects_attempts_json";
688
+ tableName: "heartbeat_runs";
689
+ dataType: "json";
690
+ columnType: "PgJsonb";
691
+ data: Record<string, number>;
692
+ driverParam: unknown;
693
+ notNull: false;
694
+ hasDefault: false;
695
+ isPrimaryKey: false;
696
+ isAutoincrement: false;
697
+ hasRuntimeDefault: false;
698
+ enumValues: undefined;
699
+ baseColumn: never;
700
+ identity: undefined;
701
+ generated: undefined;
702
+ }, {}, {
703
+ $type: Record<string, number>;
704
+ }>;
705
+ terminalEffectsNextAttemptAt: import("drizzle-orm/pg-core").PgColumn<{
706
+ name: "terminal_effects_next_attempt_at";
707
+ tableName: "heartbeat_runs";
708
+ dataType: "date";
709
+ columnType: "PgTimestamp";
710
+ data: Date;
711
+ driverParam: string;
712
+ notNull: false;
713
+ hasDefault: false;
714
+ isPrimaryKey: false;
715
+ isAutoincrement: false;
716
+ hasRuntimeDefault: false;
717
+ enumValues: undefined;
718
+ baseColumn: never;
719
+ identity: undefined;
720
+ generated: undefined;
721
+ }, {}, {}>;
722
+ terminalEffectsDeadLetteredAt: import("drizzle-orm/pg-core").PgColumn<{
723
+ name: "terminal_effects_dead_lettered_at";
724
+ tableName: "heartbeat_runs";
725
+ dataType: "date";
726
+ columnType: "PgTimestamp";
727
+ data: Date;
728
+ driverParam: string;
729
+ notNull: false;
730
+ hasDefault: false;
731
+ isPrimaryKey: false;
732
+ isAutoincrement: false;
733
+ hasRuntimeDefault: false;
734
+ enumValues: undefined;
735
+ baseColumn: never;
736
+ identity: undefined;
737
+ generated: undefined;
738
+ }, {}, {}>;
739
+ terminalEffectsClaimToken: import("drizzle-orm/pg-core").PgColumn<{
740
+ name: "terminal_effects_claim_token";
741
+ tableName: "heartbeat_runs";
742
+ dataType: "string";
743
+ columnType: "PgText";
744
+ data: string;
745
+ driverParam: string;
746
+ notNull: false;
747
+ hasDefault: false;
748
+ isPrimaryKey: false;
749
+ isAutoincrement: false;
750
+ hasRuntimeDefault: false;
751
+ enumValues: [string, ...string[]];
752
+ baseColumn: never;
753
+ identity: undefined;
754
+ generated: undefined;
755
+ }, {}, {}>;
756
+ terminalEffectsClaimedAt: import("drizzle-orm/pg-core").PgColumn<{
757
+ name: "terminal_effects_claimed_at";
758
+ tableName: "heartbeat_runs";
759
+ dataType: "date";
760
+ columnType: "PgTimestamp";
761
+ data: Date;
762
+ driverParam: string;
763
+ notNull: false;
764
+ hasDefault: false;
765
+ isPrimaryKey: false;
766
+ isAutoincrement: false;
767
+ hasRuntimeDefault: false;
768
+ enumValues: undefined;
769
+ baseColumn: never;
770
+ identity: undefined;
771
+ generated: undefined;
772
+ }, {}, {}>;
773
+ terminalEffectsAttemptCount: import("drizzle-orm/pg-core").PgColumn<{
774
+ name: "terminal_effects_attempt_count";
775
+ tableName: "heartbeat_runs";
776
+ dataType: "number";
777
+ columnType: "PgInteger";
778
+ data: number;
779
+ driverParam: string | number;
780
+ notNull: true;
781
+ hasDefault: true;
782
+ isPrimaryKey: false;
783
+ isAutoincrement: false;
784
+ hasRuntimeDefault: false;
785
+ enumValues: undefined;
786
+ baseColumn: never;
787
+ identity: undefined;
788
+ generated: undefined;
789
+ }, {}, {}>;
790
+ terminalEffectsLastError: import("drizzle-orm/pg-core").PgColumn<{
791
+ name: "terminal_effects_last_error";
792
+ tableName: "heartbeat_runs";
793
+ dataType: "string";
794
+ columnType: "PgText";
795
+ data: string;
796
+ driverParam: string;
797
+ notNull: false;
798
+ hasDefault: false;
799
+ isPrimaryKey: false;
800
+ isAutoincrement: false;
801
+ hasRuntimeDefault: false;
802
+ enumValues: [string, ...string[]];
803
+ baseColumn: never;
804
+ identity: undefined;
805
+ generated: undefined;
806
+ }, {}, {}>;
504
807
  retryOfRunId: import("drizzle-orm/pg-core").PgColumn<{
505
808
  name: "retry_of_run_id";
506
809
  tableName: "heartbeat_runs";
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat_runs.d.ts","sourceRoot":"","sources":["../../src/schema/heartbeat_runs.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoEzB,CAAC"}
1
+ {"version":3,"file":"heartbeat_runs.d.ts","sourceRoot":"","sources":["../../src/schema/heartbeat_runs.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiGzB,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * @see doc/product/domains/execution/run-admission-and-recovery.md - retry and process-loss recovery
8
8
  */
9
9
  import { sql } from "drizzle-orm";
10
- import { bigint, boolean, index, integer, jsonb, pgTable, text, timestamp, uniqueIndex, uuid } from "drizzle-orm/pg-core";
10
+ import { bigint, boolean, check, index, integer, jsonb, pgTable, text, timestamp, uniqueIndex, uuid } from "drizzle-orm/pg-core";
11
11
  import { agentWakeupRequests } from "./agent_wakeup_requests.js";
12
12
  import { agents } from "./agents.js";
13
13
  import { chatConversations } from "./chat_conversations.js";
@@ -30,6 +30,12 @@ export const heartbeatRuns = pgTable("heartbeat_runs", {
30
30
  resultSummaryJson: jsonb("result_summary_json").$type(),
31
31
  sessionIdBefore: text("session_id_before"),
32
32
  sessionIdAfter: text("session_id_after"),
33
+ sessionParamsBeforeJson: jsonb("session_params_before_json").$type(),
34
+ sessionParamsAfterJson: jsonb("session_params_after_json").$type(),
35
+ sessionReuseScope: text("session_reuse_scope")
36
+ .$type()
37
+ .notNull()
38
+ .default("unknown"),
33
39
  logStore: text("log_store"),
34
40
  logRef: text("log_ref"),
35
41
  logBytes: bigint("log_bytes", { mode: "number" }),
@@ -44,6 +50,20 @@ export const heartbeatRuns = pgTable("heartbeat_runs", {
44
50
  }),
45
51
  processPid: integer("process_pid"),
46
52
  processStartedAt: timestamp("process_started_at", { withTimezone: true }),
53
+ processExitedAt: timestamp("process_exited_at", { withTimezone: true }),
54
+ executionOwnerToken: text("execution_owner_token"),
55
+ executionLeaseExpiresAt: timestamp("execution_lease_expires_at", { withTimezone: true }),
56
+ terminalEffectsPending: boolean("terminal_effects_pending").notNull().default(false),
57
+ terminalEffectsJson: jsonb("terminal_effects_json").$type(),
58
+ terminalEffectsCompletedJson: jsonb("terminal_effects_completed_json").$type(),
59
+ terminalEffectsDeadLetteredJson: jsonb("terminal_effects_dead_lettered_json").$type(),
60
+ terminalEffectsAttemptsJson: jsonb("terminal_effects_attempts_json").$type(),
61
+ terminalEffectsNextAttemptAt: timestamp("terminal_effects_next_attempt_at", { withTimezone: true }),
62
+ terminalEffectsDeadLetteredAt: timestamp("terminal_effects_dead_lettered_at", { withTimezone: true }),
63
+ terminalEffectsClaimToken: text("terminal_effects_claim_token"),
64
+ terminalEffectsClaimedAt: timestamp("terminal_effects_claimed_at", { withTimezone: true }),
65
+ terminalEffectsAttemptCount: integer("terminal_effects_attempt_count").notNull().default(0),
66
+ terminalEffectsLastError: text("terminal_effects_last_error"),
47
67
  retryOfRunId: uuid("retry_of_run_id").references(() => heartbeatRuns.id, {
48
68
  onDelete: "set null",
49
69
  }),
@@ -55,9 +75,11 @@ export const heartbeatRuns = pgTable("heartbeat_runs", {
55
75
  orgCreatedIdIdx: index("heartbeat_runs_org_created_id_idx").on(table.orgId, table.createdAt, table.id),
56
76
  companyAgentStartedIdx: index("heartbeat_runs_company_agent_started_idx").on(table.orgId, table.agentId, table.startedAt),
57
77
  companyStatusUpdatedIdx: index("heartbeat_runs_company_status_updated_idx").on(table.orgId, table.status, table.updatedAt),
78
+ statusExecutionLeaseCreatedIdx: index("heartbeat_runs_status_execution_lease_created_idx").on(table.status, table.executionLeaseExpiresAt, table.createdAt),
58
79
  companyChatConversationStatusUpdatedIdx: index("heartbeat_runs_company_chat_conversation_status_updated_idx").on(table.orgId, table.chatConversationId, table.status, table.updatedAt),
59
80
  activeChatConversationUniqueIdx: uniqueIndex("heartbeat_runs_active_chat_conversation_uq")
60
81
  .on(table.orgId, table.chatConversationId)
61
- .where(sql `${table.chatConversationId} is not null and ${table.status} in ('queued', 'running')`),
82
+ .where(sql `${table.chatConversationId} is not null and (${table.status} in ('queued', 'running') or ${table.terminalEffectsPending} = true)`),
83
+ sessionReuseScopeCheck: check("heartbeat_runs_session_reuse_scope_check", sql `${table.sessionReuseScope} in ('explicit', 'task', 'none', 'unknown')`),
62
84
  }));
63
85
  //# sourceMappingURL=heartbeat_runs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat_runs.js","sourceRoot":"","sources":["../../src/schema/heartbeat_runs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heartbeat_runs.js","sourceRoot":"","sources":["../../src/schema/heartbeat_runs.ts"],"names":[],"mappings":"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"}
@@ -25,8 +25,11 @@ export { calendarEvents } from "./calendar_events.js";
25
25
  export { calendarSources } from "./calendar_sources.js";
26
26
  export { chatAttachments } from "./chat_attachments.js";
27
27
  export { chatContextLinks } from "./chat_context_links.js";
28
+ export { chatControlActions } from "./chat_control_actions.js";
28
29
  export { chatConversationUserStates } from "./chat_conversation_user_states.js";
29
30
  export { chatConversations } from "./chat_conversations.js";
31
+ export { chatGenerationEvents } from "./chat_generation_events.js";
32
+ export { chatGenerationTerminalOutbox } from "./chat_generation_terminal_outbox.js";
30
33
  export { chatGenerations } from "./chat_generations.js";
31
34
  export { chatMessages } from "./chat_messages.js";
32
35
  export { chatQueuedMessages } from "./chat_queued_messages.js";