@revealui/db 0.3.6 → 0.4.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 (188) hide show
  1. package/README.md +4 -4
  2. package/dist/audit-store.d.ts +1 -1
  3. package/dist/audit-store.js +1 -1
  4. package/dist/cleanup/rag-site-cleanup.d.ts +2 -2
  5. package/dist/cleanup/rag-site-cleanup.js +2 -2
  6. package/dist/cleanup/stale-tokens.d.ts +6 -6
  7. package/dist/cleanup/stale-tokens.js +6 -6
  8. package/dist/client/index.d.ts +1 -1
  9. package/dist/client/index.d.ts.map +1 -1
  10. package/dist/client/index.js +20 -8
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/crypto.d.ts +23 -1
  13. package/dist/crypto.d.ts.map +1 -1
  14. package/dist/crypto.js +67 -3
  15. package/dist/crypto.js.map +1 -1
  16. package/dist/log-transport.d.ts +1 -1
  17. package/dist/log-transport.js +2 -2
  18. package/dist/log-transport.js.map +1 -1
  19. package/dist/pool.d.ts +0 -5
  20. package/dist/pool.d.ts.map +1 -1
  21. package/dist/pool.js +15 -24
  22. package/dist/pool.js.map +1 -1
  23. package/dist/queries/boards.d.ts +1 -1
  24. package/dist/queries/boards.js +1 -1
  25. package/dist/queries/conversations.js +1 -1
  26. package/dist/queries/conversations.js.map +1 -1
  27. package/dist/queries/media.d.ts +6 -1
  28. package/dist/queries/media.d.ts.map +1 -1
  29. package/dist/queries/media.js +16 -2
  30. package/dist/queries/media.js.map +1 -1
  31. package/dist/queries/orders.d.ts +5 -0
  32. package/dist/queries/orders.d.ts.map +1 -1
  33. package/dist/queries/orders.js +14 -1
  34. package/dist/queries/orders.js.map +1 -1
  35. package/dist/queries/pages.d.ts +1 -1
  36. package/dist/queries/posts.d.ts +8 -3
  37. package/dist/queries/posts.d.ts.map +1 -1
  38. package/dist/queries/posts.js +16 -2
  39. package/dist/queries/posts.js.map +1 -1
  40. package/dist/queries/products.d.ts +6 -1
  41. package/dist/queries/products.d.ts.map +1 -1
  42. package/dist/queries/products.js +15 -1
  43. package/dist/queries/products.js.map +1 -1
  44. package/dist/queries/sites.d.ts +7 -1
  45. package/dist/queries/sites.d.ts.map +1 -1
  46. package/dist/queries/sites.js +15 -1
  47. package/dist/queries/sites.js.map +1 -1
  48. package/dist/queries/ticket-comments.js +2 -2
  49. package/dist/queries/ticket-comments.js.map +1 -1
  50. package/dist/queries/tickets.d.ts +1 -1
  51. package/dist/queries/tickets.js +1 -1
  52. package/dist/queries/tickets.js.map +1 -1
  53. package/dist/queries/users.d.ts +57 -0
  54. package/dist/queries/users.d.ts.map +1 -1
  55. package/dist/queries/users.js +65 -0
  56. package/dist/queries/users.js.map +1 -1
  57. package/dist/saga/crdt-resolver.d.ts +4 -4
  58. package/dist/saga/crdt-resolver.js +10 -10
  59. package/dist/saga/crdt-resolver.js.map +1 -1
  60. package/dist/saga/idempotent-operation.d.ts +1 -1
  61. package/dist/saga/idempotent-operation.js +2 -2
  62. package/dist/saga/idempotent-operation.js.map +1 -1
  63. package/dist/saga/index.d.ts +1 -1
  64. package/dist/saga/index.js +1 -1
  65. package/dist/saga/neon-saga.d.ts +2 -2
  66. package/dist/saga/neon-saga.js +9 -9
  67. package/dist/saga/neon-saga.js.map +1 -1
  68. package/dist/saga/recovery.d.ts +2 -2
  69. package/dist/saga/recovery.js +2 -2
  70. package/dist/saga/resilient-step.d.ts +1 -1
  71. package/dist/saga/resilient-step.js +2 -2
  72. package/dist/saga/resilient-step.js.map +1 -1
  73. package/dist/saga/types.d.ts +2 -2
  74. package/dist/schema/accounts.d.ts.map +1 -1
  75. package/dist/schema/accounts.js +25 -5
  76. package/dist/schema/accounts.js.map +1 -1
  77. package/dist/schema/{cms.d.ts → admin.d.ts} +3 -3
  78. package/dist/schema/admin.d.ts.map +1 -0
  79. package/dist/schema/{cms.js → admin.js} +29 -12
  80. package/dist/schema/admin.js.map +1 -0
  81. package/dist/schema/agents.d.ts +1 -1
  82. package/dist/schema/agents.d.ts.map +1 -1
  83. package/dist/schema/agents.js +40 -14
  84. package/dist/schema/agents.js.map +1 -1
  85. package/dist/schema/api-keys.d.ts +1 -1
  86. package/dist/schema/api-keys.d.ts.map +1 -1
  87. package/dist/schema/api-keys.js +13 -5
  88. package/dist/schema/api-keys.js.map +1 -1
  89. package/dist/schema/app-logs.d.ts +1 -1
  90. package/dist/schema/app-logs.d.ts.map +1 -1
  91. package/dist/schema/app-logs.js +6 -3
  92. package/dist/schema/app-logs.js.map +1 -1
  93. package/dist/schema/audit-log.d.ts +17 -0
  94. package/dist/schema/audit-log.d.ts.map +1 -1
  95. package/dist/schema/audit-log.js +5 -1
  96. package/dist/schema/audit-log.js.map +1 -1
  97. package/dist/schema/circuit-breaker.d.ts.map +1 -1
  98. package/dist/schema/circuit-breaker.js +10 -3
  99. package/dist/schema/circuit-breaker.js.map +1 -1
  100. package/dist/schema/code-provenance.d.ts.map +1 -1
  101. package/dist/schema/code-provenance.js +14 -4
  102. package/dist/schema/code-provenance.js.map +1 -1
  103. package/dist/schema/coordination.d.ts +2 -2
  104. package/dist/schema/coordination.d.ts.map +1 -1
  105. package/dist/schema/coordination.js +14 -5
  106. package/dist/schema/coordination.js.map +1 -1
  107. package/dist/schema/crdt-operations.d.ts.map +1 -1
  108. package/dist/schema/crdt-operations.js +4 -1
  109. package/dist/schema/crdt-operations.js.map +1 -1
  110. package/dist/schema/error-events.d.ts +2 -2
  111. package/dist/schema/error-events.d.ts.map +1 -1
  112. package/dist/schema/error-events.js +10 -6
  113. package/dist/schema/error-events.js.map +1 -1
  114. package/dist/schema/gdpr.d.ts.map +1 -1
  115. package/dist/schema/gdpr.js +6 -1
  116. package/dist/schema/gdpr.js.map +1 -1
  117. package/dist/schema/index.js +6 -6
  118. package/dist/schema/index.js.map +1 -1
  119. package/dist/schema/jobs.d.ts +1 -1
  120. package/dist/schema/jobs.d.ts.map +1 -1
  121. package/dist/schema/jobs.js +4 -2
  122. package/dist/schema/jobs.js.map +1 -1
  123. package/dist/schema/licenses.d.ts.map +1 -1
  124. package/dist/schema/licenses.js +6 -3
  125. package/dist/schema/licenses.js.map +1 -1
  126. package/dist/schema/marketplace.d.ts +1 -1
  127. package/dist/schema/marketplace.d.ts.map +1 -1
  128. package/dist/schema/marketplace.js +14 -7
  129. package/dist/schema/marketplace.js.map +1 -1
  130. package/dist/schema/node-ids.d.ts.map +1 -1
  131. package/dist/schema/node-ids.js +7 -3
  132. package/dist/schema/node-ids.js.map +1 -1
  133. package/dist/schema/oauth-accounts.d.ts +1 -1
  134. package/dist/schema/oauth-accounts.d.ts.map +1 -1
  135. package/dist/schema/oauth-accounts.js +5 -2
  136. package/dist/schema/oauth-accounts.js.map +1 -1
  137. package/dist/schema/pages.d.ts.map +1 -1
  138. package/dist/schema/pages.js +8 -3
  139. package/dist/schema/pages.js.map +1 -1
  140. package/dist/schema/products.d.ts.map +1 -1
  141. package/dist/schema/products.js +13 -4
  142. package/dist/schema/products.js.map +1 -1
  143. package/dist/schema/rag.d.ts +1 -1
  144. package/dist/schema/rag.d.ts.map +1 -1
  145. package/dist/schema/rag.js +19 -12
  146. package/dist/schema/rag.js.map +1 -1
  147. package/dist/schema/rate-limits.d.ts.map +1 -1
  148. package/dist/schema/rate-limits.js +8 -2
  149. package/dist/schema/rate-limits.js.map +1 -1
  150. package/dist/schema/rest.d.ts +2 -2
  151. package/dist/schema/rest.d.ts.map +1 -1
  152. package/dist/schema/rest.js +4 -4
  153. package/dist/schema/rest.js.map +1 -1
  154. package/dist/schema/revealcoin.d.ts.map +1 -1
  155. package/dist/schema/revealcoin.js +7 -3
  156. package/dist/schema/revealcoin.js.map +1 -1
  157. package/dist/schema/revmarket.d.ts +1 -1
  158. package/dist/schema/revmarket.d.ts.map +1 -1
  159. package/dist/schema/revmarket.js +20 -9
  160. package/dist/schema/revmarket.js.map +1 -1
  161. package/dist/schema/sites.d.ts.map +1 -1
  162. package/dist/schema/sites.js +11 -4
  163. package/dist/schema/sites.js.map +1 -1
  164. package/dist/schema/tenants.d.ts.map +1 -1
  165. package/dist/schema/tenants.js +4 -1
  166. package/dist/schema/tenants.js.map +1 -1
  167. package/dist/schema/tickets.d.ts.map +1 -1
  168. package/dist/schema/tickets.js +25 -6
  169. package/dist/schema/tickets.js.map +1 -1
  170. package/dist/schema/users.d.ts.map +1 -1
  171. package/dist/schema/users.js +12 -6
  172. package/dist/schema/users.js.map +1 -1
  173. package/dist/schema/webhook-events.js +1 -1
  174. package/dist/schema/webhook-events.js.map +1 -1
  175. package/dist/schema/yjs-documents.d.ts.map +1 -1
  176. package/dist/schema/yjs-documents.js +4 -1
  177. package/dist/schema/yjs-documents.js.map +1 -1
  178. package/dist/scripts/cleanup-expired.d.ts +3 -3
  179. package/dist/scripts/cleanup-expired.js +4 -4
  180. package/dist/scripts/cleanup-expired.js.map +1 -1
  181. package/dist/types/discover.js +1 -1
  182. package/dist/types/discover.js.map +1 -1
  183. package/dist/validation/cross-db.d.ts +1 -1
  184. package/dist/validation/cross-db.js +3 -3
  185. package/dist/validation/cross-db.js.map +1 -1
  186. package/package.json +52 -6
  187. package/dist/schema/cms.d.ts.map +0 -1
  188. package/dist/schema/cms.js.map +0 -1
@@ -1,9 +1,10 @@
1
1
  /**
2
- * CMS-specific tables - Posts, Media, and Globals
2
+ * Admin-specific tables - Posts, Media, and Globals
3
3
  *
4
- * These tables provide content management functionality for the CMS app.
4
+ * These tables provide content management functionality for the admin app.
5
5
  */
6
- import { boolean, index, integer, jsonb, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
6
+ import { sql } from 'drizzle-orm';
7
+ import { boolean, check, index, integer, jsonb, pgTable, text, timestamp, } from 'drizzle-orm/pg-core';
7
8
  import { users } from './users.js';
8
9
  // =============================================================================
9
10
  // Posts Table
@@ -13,7 +14,7 @@ export const posts = pgTable('posts', {
13
14
  id: text('id').primaryKey(),
14
15
  // Schema versioning for migrations
15
16
  schemaVersion: text('schema_version').notNull().default('1'),
16
- // Optimistic lockingincremented on each update, checked to detect concurrent edits
17
+ // Optimistic locking - incremented on each update, checked to detect concurrent edits
17
18
  version: integer('version').notNull().default(1),
18
19
  // Basic info
19
20
  title: text('title').notNull(),
@@ -21,7 +22,7 @@ export const posts = pgTable('posts', {
21
22
  excerpt: text('excerpt'),
22
23
  // Content (Lexical editor state as JSON)
23
24
  content: jsonb('content'),
24
- // Featured image reference (FK to mediaset null on delete)
25
+ // Featured image reference (FK to media - set null on delete)
25
26
  featuredImageId: text('featured_image_id').references(() => media.id, {
26
27
  onDelete: 'set null',
27
28
  }),
@@ -38,7 +39,10 @@ export const posts = pgTable('posts', {
38
39
  categories: jsonb('categories').$type().default([]),
39
40
  // Timestamps
40
41
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
41
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
42
+ updatedAt: timestamp('updated_at', { withTimezone: true })
43
+ .$onUpdateFn(() => new Date())
44
+ .defaultNow()
45
+ .notNull(),
42
46
  publishedAt: timestamp('published_at', { withTimezone: true }),
43
47
  // Soft-delete: null = active, timestamp = when deleted
44
48
  deletedAt: timestamp('deleted_at', { withTimezone: true }),
@@ -46,6 +50,7 @@ export const posts = pgTable('posts', {
46
50
  index('posts_author_id_idx').on(table.authorId),
47
51
  index('posts_featured_image_id_idx').on(table.featuredImageId),
48
52
  index('posts_deleted_at_idx').on(table.deletedAt),
53
+ check('posts_status_check', sql `status IN ('draft', 'published', 'archived')`),
49
54
  ]);
50
55
  // =============================================================================
51
56
  // Media Table
@@ -55,7 +60,7 @@ export const media = pgTable('media', {
55
60
  id: text('id').primaryKey(),
56
61
  // Schema versioning
57
62
  schemaVersion: text('schema_version').notNull().default('1'),
58
- // Optimistic lockingincremented on each update, checked to detect concurrent edits
63
+ // Optimistic locking - incremented on each update, checked to detect concurrent edits
59
64
  version: integer('version').notNull().default(1),
60
65
  // File info
61
66
  filename: text('filename').notNull(),
@@ -78,7 +83,10 @@ export const media = pgTable('media', {
78
83
  }),
79
84
  // Timestamps
80
85
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
81
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
86
+ updatedAt: timestamp('updated_at', { withTimezone: true })
87
+ .$onUpdateFn(() => new Date())
88
+ .defaultNow()
89
+ .notNull(),
82
90
  // Soft-delete: null = active, timestamp = when deleted
83
91
  deletedAt: timestamp('deleted_at', { withTimezone: true }),
84
92
  });
@@ -98,7 +106,10 @@ export const globalHeader = pgTable('global_header', {
98
106
  logoId: text('logo_id'),
99
107
  // Timestamps
100
108
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
101
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
109
+ updatedAt: timestamp('updated_at', { withTimezone: true })
110
+ .$onUpdateFn(() => new Date())
111
+ .defaultNow()
112
+ .notNull(),
102
113
  });
103
114
  // =============================================================================
104
115
  // Global: Footer
@@ -120,7 +131,10 @@ export const globalFooter = pgTable('global_footer', {
120
131
  .default([]),
121
132
  // Timestamps
122
133
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
123
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
134
+ updatedAt: timestamp('updated_at', { withTimezone: true })
135
+ .$onUpdateFn(() => new Date())
136
+ .defaultNow()
137
+ .notNull(),
124
138
  });
125
139
  // =============================================================================
126
140
  // Global: Settings
@@ -146,6 +160,9 @@ export const globalSettings = pgTable('global_settings', {
146
160
  features: jsonb('features'),
147
161
  // Timestamps
148
162
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
149
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
163
+ updatedAt: timestamp('updated_at', { withTimezone: true })
164
+ .$onUpdateFn(() => new Date())
165
+ .defaultNow()
166
+ .notNull(),
150
167
  });
151
- //# sourceMappingURL=cms.js.map
168
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/schema/admin.ts"],"names":[],"mappings":"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"}
@@ -1612,7 +1612,7 @@ export type NewAgentTaskUsage = typeof agentTaskUsage.$inferInsert;
1612
1612
  /**
1613
1613
  * Tracks prepaid agent task credits purchased via credit bundles.
1614
1614
  * Credits never expire and stack with the monthly tier allowance.
1615
- * One row per userbalance is decremented after tier quota is exhausted.
1615
+ * One row per user - balance is decremented after tier quota is exhausted.
1616
1616
  */
1617
1617
  export declare const agentCreditBalance: import("drizzle-orm/pg-core").PgTableWithColumns<{
1618
1618
  name: "agent_credit_balance";
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/schema/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/schema/agents.ts"],"names":[],"mappings":"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"}
@@ -23,8 +23,7 @@ const vector = customType({
23
23
  },
24
24
  fromDriver(value) {
25
25
  // Parse PostgreSQL vector format: [1,2,3]
26
- const parsed = JSON.parse(value.replace(/^\[/, '[').replace(/\]$/, ']'));
27
- return parsed;
26
+ return JSON.parse(value);
28
27
  },
29
28
  });
30
29
  // =============================================================================
@@ -50,7 +49,10 @@ export const agentContexts = pgTable('agent_contexts', {
50
49
  embedding: vector('embedding', { dimensions: 768 }),
51
50
  // Timestamps
52
51
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
53
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
52
+ updatedAt: timestamp('updated_at', { withTimezone: true })
53
+ .$onUpdateFn(() => new Date())
54
+ .defaultNow()
55
+ .notNull(),
54
56
  }, (table) => [
55
57
  index('agent_contexts_session_id_idx').on(table.sessionId),
56
58
  index('agent_contexts_agent_id_idx').on(table.agentId),
@@ -98,6 +100,7 @@ export const agentMemories = pgTable('agent_memories', {
98
100
  index('agent_memories_verified_idx').on(table.verified),
99
101
  index('agent_memories_expires_at_idx').on(table.expiresAt),
100
102
  index('agent_memories_type_idx').on(table.type),
103
+ check('agent_memories_type_check', sql `type IN ('fact', 'preference', 'decision', 'feedback', 'example', 'correction', 'skill', 'warning')`),
101
104
  ]);
102
105
  // =============================================================================
103
106
  // Conversations Table
@@ -120,10 +123,14 @@ export const conversations = pgTable('conversations', {
120
123
  version: integer('version').notNull().default(1),
121
124
  // Timestamps
122
125
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
123
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
126
+ updatedAt: timestamp('updated_at', { withTimezone: true })
127
+ .$onUpdateFn(() => new Date())
128
+ .defaultNow()
129
+ .notNull(),
124
130
  }, (table) => [
125
131
  index('conversations_user_id_idx').on(table.userId),
126
132
  index('conversations_status_idx').on(table.status),
133
+ check('conversations_status_check', sql `status IN ('active', 'archived', 'ended')`),
127
134
  ]);
128
135
  // =============================================================================
129
136
  // Messages Table (separate from conversations for sync)
@@ -143,6 +150,7 @@ export const messages = pgTable('messages', {
143
150
  }, (table) => [
144
151
  index('messages_conversation_id_idx').on(table.conversationId),
145
152
  index('messages_role_idx').on(table.role),
153
+ check('messages_role_check', sql `role IN ('user', 'assistant', 'system')`),
146
154
  ]);
147
155
  // =============================================================================
148
156
  // User Devices Table (for multi-device sync)
@@ -168,8 +176,13 @@ export const userDevices = pgTable('user_devices', {
168
176
  isActive: boolean('is_active').default(true),
169
177
  // Timestamps
170
178
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
171
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
172
- });
179
+ updatedAt: timestamp('updated_at', { withTimezone: true })
180
+ .$onUpdateFn(() => new Date())
181
+ .defaultNow()
182
+ .notNull(),
183
+ }, () => [
184
+ check('user_devices_device_type_check', sql `device_type IS NULL OR device_type IN ('desktop', 'mobile', 'tablet', 'cli')`),
185
+ ]);
173
186
  // =============================================================================
174
187
  // Sync Metadata Table (for tracking sync state)
175
188
  // =============================================================================
@@ -191,7 +204,10 @@ export const syncMetadata = pgTable('sync_metadata', {
191
204
  lastConflictAt: timestamp('last_conflict_at', { withTimezone: true }),
192
205
  // Timestamps
193
206
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
194
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
207
+ updatedAt: timestamp('updated_at', { withTimezone: true })
208
+ .$onUpdateFn(() => new Date())
209
+ .defaultNow()
210
+ .notNull(),
195
211
  }, (table) => [index('sync_metadata_user_id_idx').on(table.userId)]);
196
212
  // =============================================================================
197
213
  // Agent Actions Table (Audit log of agent actions)
@@ -224,6 +240,7 @@ export const agentActions = pgTable('agent_actions', {
224
240
  index('agent_actions_conversation_id_idx').on(table.conversationId),
225
241
  index('agent_actions_agent_id_idx').on(table.agentId),
226
242
  index('agent_actions_status_idx').on(table.status),
243
+ check('agent_actions_status_check', sql `status IN ('pending', 'running', 'completed', 'failed', 'cancelled')`),
227
244
  ]);
228
245
  // =============================================================================
229
246
  // AI Memory Sessions Table (Ownership binding for CRDT memory sessions)
@@ -236,7 +253,7 @@ export const agentActions = pgTable('agent_actions', {
236
253
  export const aiMemorySessions = pgTable('ai_memory_sessions', {
237
254
  // sessionId from the client (client-generated UUID)
238
255
  id: text('id').primaryKey(),
239
- // User who owns this sessionenforced on read/write
256
+ // User who owns this session - enforced on read/write
240
257
  userId: text('user_id')
241
258
  .notNull()
242
259
  .references(() => users.id, { onDelete: 'cascade' }),
@@ -249,13 +266,16 @@ export const registeredAgents = pgTable('registered_agents', {
249
266
  id: text('id').primaryKey(),
250
267
  definition: jsonb('definition').$type().notNull(),
251
268
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
252
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
269
+ updatedAt: timestamp('updated_at', { withTimezone: true })
270
+ .$onUpdateFn(() => new Date())
271
+ .defaultNow()
272
+ .notNull(),
253
273
  }, (table) => [index('registered_agents_updated_at_idx').on(table.updatedAt)]);
254
274
  // =============================================================================
255
275
  // Type exports for Drizzle
256
276
  // =============================================================================
257
277
  // =============================================================================
258
- // Agent Task Usage Table (Track Bmetered billing)
278
+ // Agent Task Usage Table (Track B - metered billing)
259
279
  // =============================================================================
260
280
  /**
261
281
  * Tracks agent task execution counts per user per billing cycle.
@@ -272,15 +292,18 @@ export const agentTaskUsage = pgTable('agent_task_usage', {
272
292
  count: integer('count').notNull().default(0),
273
293
  /** Tasks beyond the tier quota (for overage billing). */
274
294
  overage: integer('overage').notNull().default(0),
275
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
295
+ updatedAt: timestamp('updated_at', { withTimezone: true })
296
+ .$onUpdateFn(() => new Date())
297
+ .defaultNow()
298
+ .notNull(),
276
299
  }, (table) => [primaryKey({ columns: [table.userId, table.cycleStart] })]);
277
300
  // =============================================================================
278
- // Agent Credit Balance (Track Bprepaid credit bundles)
301
+ // Agent Credit Balance (Track B - prepaid credit bundles)
279
302
  // =============================================================================
280
303
  /**
281
304
  * Tracks prepaid agent task credits purchased via credit bundles.
282
305
  * Credits never expire and stack with the monthly tier allowance.
283
- * One row per userbalance is decremented after tier quota is exhausted.
306
+ * One row per user - balance is decremented after tier quota is exhausted.
284
307
  */
285
308
  export const agentCreditBalance = pgTable('agent_credit_balance', {
286
309
  userId: text('user_id')
@@ -290,7 +313,10 @@ export const agentCreditBalance = pgTable('agent_credit_balance', {
290
313
  balance: integer('balance').notNull().default(0),
291
314
  /** Lifetime total credits ever purchased (for analytics). */
292
315
  totalPurchased: integer('total_purchased').notNull().default(0),
293
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
316
+ updatedAt: timestamp('updated_at', { withTimezone: true })
317
+ .$onUpdateFn(() => new Date())
318
+ .defaultNow()
319
+ .notNull(),
294
320
  }, () => [
295
321
  check('agent_credit_balance_non_negative', sql `balance >= 0`),
296
322
  check('agent_credit_total_non_negative', sql `total_purchased >= 0`),
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/schema/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EACL,OAAO,EACP,KAAK,EACL,UAAU,EACV,KAAK,EACL,OAAO,EACP,KAAK,EACL,OAAO,EACP,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,gFAAgF;AAChF,kCAAkC;AAClC,gFAAgF;AAEhF,kEAAkE;AAClE,MAAM,MAAM,GAAG,UAAU,CAAyC;IAChE,QAAQ,CAAC,MAAM;QACb,OAAO,UAAW,MAAiC,EAAE,UAAU,IAAI,IAAI,GAAG,CAAC;IAC7E,CAAC;IACD,QAAQ,CAAC,KAAe;QACtB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,CAAC;IACD,UAAU,CAAC,KAAa;QACtB,0CAA0C;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAa,CAAC;QACrF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC,CAAC;AAEH,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAClC,gBAAgB,EAChB;IACE,iDAAiD;IACjD,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,oBAAoB;IACpB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhD,gBAAgB;IAChB,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;SAC1B,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACjE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;SACtB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEjE,2DAA2D;IAC3D,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAErC,uCAAuC;IACvC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAEvC,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;IAEnD,aAAa;IACb,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CAClF,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC1D,KAAK,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;CACvD,CACF,CAAC;AAEF,gFAAgF;AAChF,0CAA0C;AAC1C,gFAAgF;AAEhF,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAClC,gBAAgB,EAChB;IACE,qBAAqB;IACrB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,oBAAoB;IACpB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhD,iBAAiB;IACjB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;IAElC,yFAAyF;IACzF,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAE5B,wBAAwB;IACxB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;IAEjC,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;IAEnD,0DAA0D;IAC1D,iBAAiB,EAAE,KAAK,CAAC,oBAAoB,CAAC;IAE9C,4CAA4C;IAC5C,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAEvC,kBAAkB;IAClB,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,UAAU,EAAE,SAAS,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAE5D,sBAAsB;IACtB,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5C,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE;QACzD,QAAQ,EAAE,UAAU;KACrB,CAAC;IACF,UAAU,EAAE,SAAS,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAE5D,iDAAiD;IACjD,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;SACpB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtD,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;IAEzB,aAAa;IACb,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;CAC3D,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;IACpD,KAAK,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IACtD,KAAK,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;IACvD,KAAK,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC1D,KAAK,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;CAChD,CACF,CAAC;AAEF,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAClC,eAAe,EACf;IACE,qBAAqB;IACrB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,gBAAgB;IAChB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;SACpB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtD,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IAEnC,uBAAuB;IACvB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IACpB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IAElD,2BAA2B;IAC3B,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;IAC3B,YAAY,EAAE,SAAS,CAAC,gBAAgB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAEjE,oBAAoB;IACpB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhD,aAAa;IACb,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CAClF,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;IACnD,KAAK,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;CACnD,CACF,CAAC;AAEF,gFAAgF;AAChF,wDAAwD;AACxD,gFAAgF;AAEhF,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAC7B,UAAU,EACV;IACE,qBAAqB;IACrB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,gBAAgB;IAChB,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC;SACpC,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAE9D,kBAAkB;IAClB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,gCAAgC;IAC9D,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;IAElC,SAAS;IACT,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CACjF,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;IAC9D,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;CAC1C,CACF,CAAC;AAEF,gFAAgF;AAChF,6CAA6C;AAC7C,gFAAgF;AAEhF,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE;IACjD,qBAAqB;IACrB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,gBAAgB;IAChB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;SACpB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtD,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;IAE9C,qBAAqB;IACrB,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC;IAC/B,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,uCAAuC;IACxE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAE7B,8CAA8C;IAC9C,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B,cAAc,EAAE,SAAS,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACrE,aAAa,EAAE,SAAS,CAAC,iBAAiB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAEnE,cAAc;IACd,QAAQ,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE;IACrE,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAE5C,aAAa;IACb,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CAClF,CAAC,CAAC;AAEH,gFAAgF;AAChF,gDAAgD;AAChD,gFAAgF;AAEhF,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CACjC,eAAe,EACf;IACE,qBAAqB;IACrB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,gBAAgB;IAChB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;SACpB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEtD,aAAa;IACb,iBAAiB,EAAE,SAAS,CAAC,qBAAqB,EAAE;QAClD,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC,UAAU,EAAE;IACf,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAE/C,oBAAoB;IACpB,iBAAiB,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,cAAc,EAAE,SAAS,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAErE,aAAa;IACb,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CAClF,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CACjE,CAAC;AAEF,gFAAgF;AAChF,mDAAmD;AACnD,gFAAgF;AAEhF,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CACjC,eAAe,EACf;IACE,qBAAqB;IACrB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,oBAAoB;IACpB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhD,gBAAgB;IAChB,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE;QACzE,QAAQ,EAAE,SAAS;KACpB,CAAC;IACF,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IAEnC,iBAAiB;IACjB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;IACvB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;IAEvB,yDAAyD;IACzD,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACnD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IAEpB,SAAS;IACT,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IACjF,WAAW,EAAE,SAAS,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC9D,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC;IAElC,uCAAuC;IACvC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;IAC5B,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC;CAC/B,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,mCAAmC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;IACnE,KAAK,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IACrD,KAAK,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;CACnD,CACF,CAAC;AAEF,gFAAgF;AAChF,wEAAwE;AACxE,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,EAAE;IAC5D,oDAAoD;IACpD,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,sDAAsD;IACtD,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;SACpB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEtD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CAClF,CAAC,CAAC;AAKH,gFAAgF;AAChF,4DAA4D;AAC5D,gFAAgF;AAEhF,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CACrC,mBAAmB,EACnB;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,EAAW,CAAC,OAAO,EAAE;IAC1D,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CAClF,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAC3E,CAAC;AAEF,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,gFAAgF;AAChF,qDAAqD;AACrD,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CACnC,kBAAkB,EAClB;IACE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;SACpB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEtD,mFAAmF;IACnF,UAAU,EAAE,SAAS,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IAEtE,uCAAuC;IACvC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5C,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CAClF,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CACvE,CAAC;AAKF,gFAAgF;AAChF,0DAA0D;AAC1D,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CACvC,sBAAsB,EACtB;IACE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;SACpB,UAAU,EAAE;SACZ,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEtD,+EAA+E;IAC/E,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhD,6DAA6D;IAC7D,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE/D,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CAClF,EACD,GAAG,EAAE,CAAC;IACJ,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAA,cAAc,CAAC;IAC7D,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAA,sBAAsB,CAAC;CACpE,CACF,CAAC"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/schema/agents.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * API Key tablesencrypted credential storage for inference endpoints
2
+ * API Key tables - encrypted credential storage for inference endpoints
3
3
  *
4
4
  * Server-side AES-256-GCM envelope encryption for background agent workflows.
5
5
  * Keys are encrypted at rest with a KEK from REVEALUI_KEK env var.
@@ -1 +1 @@
1
- {"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../src/schema/api-keys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,YAAY,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,OAAO,WAAW,CAAC,YAAY,CAAC;AAM5D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,OAAO,qBAAqB,CAAC,YAAY,CAAC;AAC7E,MAAM,MAAM,uBAAuB,GAAG,OAAO,qBAAqB,CAAC,YAAY,CAAC"}
1
+ {"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../src/schema/api-keys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0CvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,YAAY,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,OAAO,WAAW,CAAC,YAAY,CAAC;AAM5D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,OAAO,qBAAqB,CAAC,YAAY,CAAC;AAC7E,MAAM,MAAM,uBAAuB,GAAG,OAAO,qBAAqB,CAAC,YAAY,CAAC"}
@@ -1,11 +1,12 @@
1
1
  /**
2
- * API Key tablesencrypted credential storage for inference endpoints
2
+ * API Key tables - encrypted credential storage for inference endpoints
3
3
  *
4
4
  * Server-side AES-256-GCM envelope encryption for background agent workflows.
5
5
  * Keys are encrypted at rest with a KEK from REVEALUI_KEK env var.
6
6
  * Only the last 4 characters are stored in plaintext (keyHint) for UI display.
7
7
  */
8
- import { boolean, index, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
8
+ import { sql } from 'drizzle-orm';
9
+ import { boolean, check, index, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
9
10
  import { users } from './users.js';
10
11
  // =============================================================================
11
12
  // User API Keys Table
@@ -17,7 +18,7 @@ export const userApiKeys = pgTable('user_api_keys', {
17
18
  .notNull()
18
19
  .references(() => users.id, { onDelete: 'cascade' }),
19
20
  // Which LLM provider this key belongs to
20
- provider: text('provider').notNull(), // 'ollama' | 'bitnet' | 'huggingface' | 'vultr' | 'inference-snaps'
21
+ provider: text('provider').notNull(), // 'ollama' | 'huggingface' | 'vultr' | 'inference-snaps'
21
22
  // AES-256-GCM envelope-encrypted API key
22
23
  // Format: <base64(iv)>.<base64(authTag)>.<base64(ciphertext)>
23
24
  encryptedKey: text('encrypted_key').notNull(),
@@ -26,7 +27,10 @@ export const userApiKeys = pgTable('user_api_keys', {
26
27
  // User-visible label (e.g. "My Anthropic key")
27
28
  label: text('label'),
28
29
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
29
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
30
+ updatedAt: timestamp('updated_at', { withTimezone: true })
31
+ .$onUpdateFn(() => new Date())
32
+ .defaultNow()
33
+ .notNull(),
30
34
  lastUsedAt: timestamp('last_used_at', { withTimezone: true }),
31
35
  // Soft-delete: null = active, timestamp = when revoked
32
36
  deletedAt: timestamp('deleted_at', { withTimezone: true }),
@@ -34,6 +38,7 @@ export const userApiKeys = pgTable('user_api_keys', {
34
38
  index('user_api_keys_user_id_idx').on(table.userId),
35
39
  index('user_api_keys_user_provider_idx').on(table.userId, table.provider),
36
40
  index('user_api_keys_deleted_at_idx').on(table.deletedAt),
41
+ check('user_api_keys_provider_check', sql `provider IN ('ollama', 'huggingface', 'vultr', 'inference-snaps')`),
37
42
  ]);
38
43
  // =============================================================================
39
44
  // Tenant Provider Configs Table
@@ -51,6 +56,9 @@ export const tenantProviderConfigs = pgTable('tenant_provider_configs', {
51
56
  // Preferred model override (e.g. "claude-sonnet-4-6", "gpt-4o")
52
57
  model: text('model'),
53
58
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
54
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
59
+ updatedAt: timestamp('updated_at', { withTimezone: true })
60
+ .$onUpdateFn(() => new Date())
61
+ .defaultNow()
62
+ .notNull(),
55
63
  }, (table) => [index('tenant_provider_configs_user_id_idx').on(table.userId)]);
56
64
  //# sourceMappingURL=api-keys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../src/schema/api-keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../src/schema/api-keys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAChC,eAAe,EACf;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,QAAQ;IACR,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;SACpB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEtD,yCAAyC;IACzC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,EAAE,yDAAyD;IAE/F,yCAAyC;IACzC,8DAA8D;IAC9D,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE;IAE7C,0EAA0E;IAC1E,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;IAEzB,+CAA+C;IAC/C,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IAEpB,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;SACvD,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;SAC7B,UAAU,EAAE;SACZ,OAAO,EAAE;IACZ,UAAU,EAAE,SAAS,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAE7D,uDAAuD;IACvD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;CAC3D,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;IACnD,KAAK,CAAC,iCAAiC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;IACzE,KAAK,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACzD,KAAK,CACH,8BAA8B,EAC9B,GAAG,CAAA,mEAAmE,CACvE;CACF,CACF,CAAC;AAKF,gFAAgF;AAChF,gCAAgC;AAChC,gFAAgF;AAEhF,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAC1C,yBAAyB,EACzB;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,QAAQ;IACR,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;SACpB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEtD,4CAA4C;IAC5C,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IAEpC,8DAA8D;IAC9D,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEzD,gEAAgE;IAChE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IAEpB,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;SACvD,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;SAC7B,UAAU,EAAE;SACZ,OAAO,EAAE;CACb,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAC3E,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Structured application logswarn and above, all apps.
2
+ * Structured application logs - warn and above, all apps.
3
3
  *
4
4
  * Append-only. No FK constraints (logs outlive users/requests).
5
5
  * Written via the DB log transport (packages/db/src/log-transport.ts).
@@ -1 +1 @@
1
- {"version":3,"file":"app-logs.d.ts","sourceRoot":"","sources":["../../src/schema/app-logs.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBnB,CAAC"}
1
+ {"version":3,"file":"app-logs.d.ts","sourceRoot":"","sources":["../../src/schema/app-logs.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBnB,CAAC"}
@@ -1,6 +1,7 @@
1
- import { index, jsonb, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
1
+ import { sql } from 'drizzle-orm';
2
+ import { check, index, jsonb, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
2
3
  /**
3
- * Structured application logswarn and above, all apps.
4
+ * Structured application logs - warn and above, all apps.
4
5
  *
5
6
  * Append-only. No FK constraints (logs outlive users/requests).
6
7
  * Written via the DB log transport (packages/db/src/log-transport.ts).
@@ -13,7 +14,7 @@ export const appLogs = pgTable('app_logs', {
13
14
  timestamp: timestamp('timestamp', { withTimezone: true }).defaultNow().notNull(),
14
15
  level: text('level').notNull(), // 'warn' | 'error' | 'fatal'
15
16
  message: text('message').notNull(),
16
- app: text('app').notNull(), // 'cms' | 'api' | 'marketing' | 'mainframe'
17
+ app: text('app').notNull(), // 'admin' | 'api' | 'marketing' | 'mainframe'
17
18
  environment: text('environment').notNull().default('production'),
18
19
  requestId: text('request_id'),
19
20
  userId: text('user_id'),
@@ -21,5 +22,7 @@ export const appLogs = pgTable('app_logs', {
21
22
  }, (table) => [
22
23
  index('app_logs_timestamp_idx').on(table.timestamp),
23
24
  index('app_logs_app_level_idx').on(table.app, table.level),
25
+ check('app_logs_level_check', sql `level IN ('warn', 'error', 'fatal')`),
26
+ check('app_logs_app_check', sql `app IN ('admin', 'api', 'marketing', 'mainframe')`),
24
27
  ]);
25
28
  //# sourceMappingURL=app-logs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-logs.js","sourceRoot":"","sources":["../../src/schema/app-logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE7E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAC5B,UAAU,EACV;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;SACX,UAAU,EAAE;SACZ,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACxC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IAChF,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,6BAA6B;IAC7D,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;IAClC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,4CAA4C;IACxE,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;IAChE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;IACvB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,uCAAuC;CAC7D,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACnD,KAAK,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC;CAC3D,CACF,CAAC"}
1
+ {"version":3,"file":"app-logs.js","sourceRoot":"","sources":["../../src/schema/app-logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEpF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAC5B,UAAU,EACV;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;SACX,UAAU,EAAE;SACZ,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACxC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IAChF,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,6BAA6B;IAC7D,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;IAClC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,8CAA8C;IAC1E,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;IAChE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;IACvB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,uCAAuC;CAC7D,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACnD,KAAK,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC;IAC1D,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAA,qCAAqC,CAAC;IACvE,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAA,mDAAmD,CAAC;CACpF,CACF,CAAC"}
@@ -181,6 +181,23 @@ export declare const auditLog: import("drizzle-orm/pg-core").PgTableWithColumns<
181
181
  identity: undefined;
182
182
  generated: undefined;
183
183
  }, {}, {}>;
184
+ previousSignature: import("drizzle-orm/pg-core").PgColumn<{
185
+ name: "previous_signature";
186
+ tableName: "audit_log";
187
+ dataType: "string";
188
+ columnType: "PgText";
189
+ data: string;
190
+ driverParam: string;
191
+ notNull: false;
192
+ hasDefault: false;
193
+ isPrimaryKey: false;
194
+ isAutoincrement: false;
195
+ hasRuntimeDefault: false;
196
+ enumValues: [string, ...string[]];
197
+ baseColumn: never;
198
+ identity: undefined;
199
+ generated: undefined;
200
+ }, {}, {}>;
184
201
  };
185
202
  dialect: "pg";
186
203
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../../src/schema/audit-log.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCpB,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,WAAW,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAC;AAEvD,kCAAkC;AAClC,MAAM,MAAM,cAAc,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAC"}
1
+ {"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../../src/schema/audit-log.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CpB,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,WAAW,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAC;AAEvD,kCAAkC;AAClC,MAAM,MAAM,cAAc,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAC"}
@@ -5,7 +5,8 @@
5
5
  * type from @revealui/ai/audit. No UPDATE or DELETE operations should
6
6
  * ever be performed on this table.
7
7
  */
8
- import { index, jsonb, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
8
+ import { sql } from 'drizzle-orm';
9
+ import { check, index, jsonb, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
9
10
  // =============================================================================
10
11
  // Audit Log Table
11
12
  // =============================================================================
@@ -30,10 +31,13 @@ export const auditLog = pgTable('audit_log', {
30
31
  policyViolations: jsonb('policy_violations').$type().default([]).notNull(),
31
32
  /** HMAC-SHA256 signature for tamper detection (nullable for backwards compat) */
32
33
  signature: text('signature'),
34
+ /** Signature of the previous entry in the hash chain (for tamper-evident sequencing) */
35
+ previousSignature: text('previous_signature'),
33
36
  }, (table) => [
34
37
  index('audit_log_event_type_idx').on(table.eventType),
35
38
  index('audit_log_agent_id_idx').on(table.agentId),
36
39
  index('audit_log_timestamp_idx').on(table.timestamp),
37
40
  index('audit_log_severity_idx').on(table.severity),
41
+ check('audit_log_severity_check', sql `severity IN ('info', 'warn', 'critical')`),
38
42
  ]);
39
43
  //# sourceMappingURL=audit-log.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit-log.js","sourceRoot":"","sources":["../../src/schema/audit-log.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE7E,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAC7B,WAAW,EACX;IACE,6BAA6B;IAC7B,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,8BAA8B;IAC9B,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IAEhF,+DAA+D;IAC/D,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IAEvC,qCAAqC;IACrC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAEpD,qCAAqC;IACrC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IAEnC,4BAA4B;IAC5B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;IAEvB,sCAAsC;IACtC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAE7B,iCAAiC;IACjC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;IAEjD,mDAAmD;IACnD,gBAAgB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;IAEpF,iFAAiF;IACjF,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;CAC7B,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACrD,KAAK,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IACjD,KAAK,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACpD,KAAK,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;CACnD,CACF,CAAC"}
1
+ {"version":3,"file":"audit-log.js","sourceRoot":"","sources":["../../src/schema/audit-log.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEpF,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAC7B,WAAW,EACX;IACE,6BAA6B;IAC7B,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAE3B,8BAA8B;IAC9B,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IAEhF,+DAA+D;IAC/D,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IAEvC,qCAAqC;IACrC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAEpD,qCAAqC;IACrC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IAEnC,4BAA4B;IAC5B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;IAEvB,sCAAsC;IACtC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAE7B,iCAAiC;IACjC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;IAEjD,mDAAmD;IACnD,gBAAgB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;IAEpF,iFAAiF;IACjF,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;IAE5B,wFAAwF;IACxF,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,CAAC;CAC9C,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACrD,KAAK,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IACjD,KAAK,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACpD,KAAK,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;IAClD,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAA,0CAA0C,CAAC;CACjF,CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/schema/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyB/B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,OAAO,mBAAmB,CAAC,YAAY,CAAC;AAC7E,MAAM,MAAM,sBAAsB,GAAG,OAAO,mBAAmB,CAAC,YAAY,CAAC"}
1
+ {"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/schema/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B/B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,OAAO,mBAAmB,CAAC,YAAY,CAAC;AAC7E,MAAM,MAAM,sBAAsB,GAAG,OAAO,mBAAmB,CAAC,YAAY,CAAC"}
@@ -8,7 +8,8 @@
8
8
  * Write path: only on state transitions (closed→open, open→half-open, etc.)
9
9
  * Read path: local 5-second cache; DB only on cache miss.
10
10
  */
11
- import { index, integer, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
11
+ import { sql } from 'drizzle-orm';
12
+ import { check, index, integer, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
12
13
  export const circuitBreakerState = pgTable('circuit_breaker_state', {
13
14
  /** Service identifier (e.g. 'stripe', 'supabase') */
14
15
  serviceName: text('service_name').primaryKey(),
@@ -23,6 +24,12 @@ export const circuitBreakerState = pgTable('circuit_breaker_state', {
23
24
  /** When the current state was entered */
24
25
  stateChangedAt: timestamp('state_changed_at', { withTimezone: true }).defaultNow().notNull(),
25
26
  /** Row last-written timestamp */
26
- updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
27
- }, (table) => [index('circuit_breaker_state_at_idx').on(table.stateChangedAt)]);
27
+ updatedAt: timestamp('updated_at', { withTimezone: true })
28
+ .$onUpdateFn(() => new Date())
29
+ .defaultNow()
30
+ .notNull(),
31
+ }, (table) => [
32
+ index('circuit_breaker_state_at_idx').on(table.stateChangedAt),
33
+ check('circuit_breaker_state_check', sql `state IN ('closed', 'open', 'half-open')`),
34
+ ]);
28
35
  //# sourceMappingURL=circuit-breaker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/schema/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CACxC,uBAAuB,EACvB;IACE,qDAAqD;IACrD,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,UAAU,EAAE;IAE9C,4BAA4B;IAC5B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,kCAAkC;IAEpF,4CAA4C;IAC5C,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3D,+CAA+C;IAC/C,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3D,4CAA4C;IAC5C,aAAa,EAAE,SAAS,CAAC,iBAAiB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAEnE,yCAAyC;IACzC,cAAc,EAAE,SAAS,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IAE5F,iCAAiC;IACjC,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;CAClF,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAC5E,CAAC"}
1
+ {"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/schema/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEtF,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CACxC,uBAAuB,EACvB;IACE,qDAAqD;IACrD,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,UAAU,EAAE;IAE9C,4BAA4B;IAC5B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,kCAAkC;IAEpF,4CAA4C;IAC5C,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3D,+CAA+C;IAC/C,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3D,4CAA4C;IAC5C,aAAa,EAAE,SAAS,CAAC,iBAAiB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAEnE,yCAAyC;IACzC,cAAc,EAAE,SAAS,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;IAE5F,iCAAiC;IACjC,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;SACvD,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;SAC7B,UAAU,EAAE;SACZ,OAAO,EAAE;CACb,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;IAC9D,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAA,0CAA0C,CAAC;CACpF,CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"code-provenance.d.ts","sourceRoot":"","sources":["../../src/schema/code-provenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,YAAY,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG,OAAO,cAAc,CAAC,YAAY,CAAC;AAMnE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBtB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,YAAY,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,OAAO,WAAW,CAAC,YAAY,CAAC"}
1
+ {"version":3,"file":"code-provenance.d.ts","sourceRoot":"","sources":["../../src/schema/code-provenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiE1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,YAAY,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG,OAAO,cAAc,CAAC,YAAY,CAAC;AAMnE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,YAAY,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,OAAO,WAAW,CAAC,YAAY,CAAC"}