@storyshelf/db-postgres 0.6.2 → 0.8.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 (97) hide show
  1. package/README.md +56 -0
  2. package/dist/ddl.d.mts +1 -3
  3. package/dist/ddl.mjs +219 -16
  4. package/dist/ddl.mjs.map +1 -1
  5. package/dist/drizzle-factory-pg.mjs +9 -7
  6. package/dist/drizzle-factory-pg.mjs.map +1 -1
  7. package/dist/drizzle-factory.mjs +1 -2
  8. package/dist/index.d.mts +0 -2
  9. package/dist/index.mjs +2 -3
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/migrate.mjs +115 -5
  12. package/dist/migrate.mjs.map +1 -1
  13. package/dist/neon-http.d.mts +0 -2
  14. package/dist/neon-http.mjs +2 -3
  15. package/dist/neon-http.mjs.map +1 -1
  16. package/dist/neon.d.mts +0 -2
  17. package/dist/neon.mjs +2 -3
  18. package/dist/neon.mjs.map +1 -1
  19. package/dist/pg.d.mts +0 -2
  20. package/dist/pg.mjs +2 -3
  21. package/dist/pg.mjs.map +1 -1
  22. package/dist/pglite.d.mts +0 -2
  23. package/dist/pglite.mjs +3 -4
  24. package/dist/pglite.mjs.map +1 -1
  25. package/dist/schema/baseline.d.mts +83 -13
  26. package/dist/schema/baseline.mjs +6 -3
  27. package/dist/schema/baseline.mjs.map +1 -1
  28. package/dist/schema/{status-config.d.mts → build-component.d.mts} +43 -38
  29. package/dist/schema/build-component.mjs +24 -0
  30. package/dist/schema/build-component.mjs.map +1 -0
  31. package/dist/schema/build-review.d.mts +116 -0
  32. package/dist/schema/build-review.mjs +22 -0
  33. package/dist/schema/build-review.mjs.map +1 -0
  34. package/dist/schema/build.d.mts +59 -25
  35. package/dist/schema/build.mjs +4 -2
  36. package/dist/schema/build.mjs.map +1 -1
  37. package/dist/schema/capture-attempt.d.mts +25 -27
  38. package/dist/schema/capture-attempt.mjs +1 -2
  39. package/dist/schema/capture-job.d.mts +328 -0
  40. package/dist/schema/capture-job.mjs +55 -0
  41. package/dist/schema/capture-job.mjs.map +1 -0
  42. package/dist/schema/capture-shard.d.mts +255 -0
  43. package/dist/schema/capture-shard.mjs +39 -0
  44. package/dist/schema/capture-shard.mjs.map +1 -0
  45. package/dist/schema/comment.d.mts +29 -13
  46. package/dist/schema/comment.mjs +4 -4
  47. package/dist/schema/comment.mjs.map +1 -1
  48. package/dist/schema/connection.d.mts +171 -0
  49. package/dist/schema/connection.mjs +34 -0
  50. package/dist/schema/connection.mjs.map +1 -0
  51. package/dist/schema/content-refs.d.mts +0 -2
  52. package/dist/schema/content-refs.mjs +1 -2
  53. package/dist/schema/design.d.mts +587 -0
  54. package/dist/schema/design.mjs +72 -0
  55. package/dist/schema/design.mjs.map +1 -0
  56. package/dist/schema/insight.d.mts +631 -0
  57. package/dist/schema/insight.mjs +67 -0
  58. package/dist/schema/insight.mjs.map +1 -0
  59. package/dist/schema/label.d.mts +15 -17
  60. package/dist/schema/label.mjs +1 -2
  61. package/dist/schema/member.d.mts +7 -9
  62. package/dist/schema/member.mjs +1 -2
  63. package/dist/schema/notification.d.mts +54 -20
  64. package/dist/schema/notification.mjs +6 -2
  65. package/dist/schema/notification.mjs.map +1 -1
  66. package/dist/schema/project-group-mapping.d.mts +6 -8
  67. package/dist/schema/project-group-mapping.mjs +1 -2
  68. package/dist/schema/project.d.mts +126 -2
  69. package/dist/schema/project.mjs +9 -3
  70. package/dist/schema/project.mjs.map +1 -1
  71. package/dist/schema/site-setting.d.mts +97 -0
  72. package/dist/schema/site-setting.mjs +22 -0
  73. package/dist/schema/site-setting.mjs.map +1 -0
  74. package/dist/schema/snapshot.d.mts +187 -27
  75. package/dist/schema/snapshot.mjs +15 -3
  76. package/dist/schema/snapshot.mjs.map +1 -1
  77. package/dist/schema/token.d.mts +8 -10
  78. package/dist/schema/token.mjs +1 -2
  79. package/dist/schema/usage.d.mts +265 -0
  80. package/dist/schema/usage.mjs +35 -0
  81. package/dist/schema/usage.mjs.map +1 -0
  82. package/dist/schema/user-invite.d.mts +7 -9
  83. package/dist/schema/user-invite.mjs +1 -2
  84. package/dist/schema/user.d.mts +74 -2
  85. package/dist/schema/user.mjs +7 -4
  86. package/dist/schema/user.mjs.map +1 -1
  87. package/dist/schema/webhook.d.mts +8 -10
  88. package/dist/schema/webhook.mjs +1 -2
  89. package/dist/schema.d.mts +24 -5
  90. package/dist/schema.mjs +26 -6
  91. package/dist/schema.mjs.map +1 -1
  92. package/dist/vercel.d.mts +0 -2
  93. package/dist/vercel.mjs +2 -3
  94. package/dist/vercel.mjs.map +1 -1
  95. package/package.json +7 -7
  96. package/dist/schema/status-config.mjs +0 -26
  97. package/dist/schema/status-config.mjs.map +0 -1
@@ -0,0 +1,631 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ /** Narrow `insights` table definition (build triage and project health results). */
4
+ declare const insights: import("drizzle-orm/pg-core/table.js").PgTableWithColumns<{
5
+ name: "insights";
6
+ schema: undefined;
7
+ columns: {
8
+ id: import("drizzle-orm/pg-core/index.js").PgColumn<{
9
+ name: "id";
10
+ tableName: "insights";
11
+ dataType: "string";
12
+ columnType: "PgText";
13
+ data: string;
14
+ driverParam: string;
15
+ notNull: true;
16
+ hasDefault: false;
17
+ isPrimaryKey: true;
18
+ isAutoincrement: false;
19
+ hasRuntimeDefault: false;
20
+ enumValues: [string, ...string[]];
21
+ baseColumn: never;
22
+ identity: undefined;
23
+ generated: undefined;
24
+ }, {}, {}>;
25
+ projectId: import("drizzle-orm/pg-core/index.js").PgColumn<{
26
+ name: "project_id";
27
+ tableName: "insights";
28
+ dataType: "string";
29
+ columnType: "PgText";
30
+ data: string;
31
+ driverParam: string;
32
+ notNull: true;
33
+ hasDefault: false;
34
+ isPrimaryKey: false;
35
+ isAutoincrement: false;
36
+ hasRuntimeDefault: false;
37
+ enumValues: [string, ...string[]];
38
+ baseColumn: never;
39
+ identity: undefined;
40
+ generated: undefined;
41
+ }, {}, {}>;
42
+ buildId: import("drizzle-orm/pg-core/index.js").PgColumn<{
43
+ name: "build_id";
44
+ tableName: "insights";
45
+ dataType: "string";
46
+ columnType: "PgText";
47
+ data: string;
48
+ driverParam: string;
49
+ notNull: false;
50
+ hasDefault: false;
51
+ isPrimaryKey: false;
52
+ isAutoincrement: false;
53
+ hasRuntimeDefault: false;
54
+ enumValues: [string, ...string[]];
55
+ baseColumn: never;
56
+ identity: undefined;
57
+ generated: undefined;
58
+ }, {}, {}>;
59
+ kind: import("drizzle-orm/pg-core/index.js").PgColumn<{
60
+ name: "kind";
61
+ tableName: "insights";
62
+ dataType: "string";
63
+ columnType: "PgText";
64
+ data: string;
65
+ driverParam: string;
66
+ notNull: true;
67
+ hasDefault: false;
68
+ isPrimaryKey: false;
69
+ isAutoincrement: false;
70
+ hasRuntimeDefault: false;
71
+ enumValues: [string, ...string[]];
72
+ baseColumn: never;
73
+ identity: undefined;
74
+ generated: undefined;
75
+ }, {}, {}>;
76
+ windowKey: import("drizzle-orm/pg-core/index.js").PgColumn<{
77
+ name: "window_key";
78
+ tableName: "insights";
79
+ dataType: "string";
80
+ columnType: "PgText";
81
+ data: string;
82
+ driverParam: string;
83
+ notNull: false;
84
+ hasDefault: false;
85
+ isPrimaryKey: false;
86
+ isAutoincrement: false;
87
+ hasRuntimeDefault: false;
88
+ enumValues: [string, ...string[]];
89
+ baseColumn: never;
90
+ identity: undefined;
91
+ generated: undefined;
92
+ }, {}, {}>;
93
+ inputHash: import("drizzle-orm/pg-core/index.js").PgColumn<{
94
+ name: "input_hash";
95
+ tableName: "insights";
96
+ dataType: "string";
97
+ columnType: "PgText";
98
+ data: string;
99
+ driverParam: string;
100
+ notNull: true;
101
+ hasDefault: false;
102
+ isPrimaryKey: false;
103
+ isAutoincrement: false;
104
+ hasRuntimeDefault: false;
105
+ enumValues: [string, ...string[]];
106
+ baseColumn: never;
107
+ identity: undefined;
108
+ generated: undefined;
109
+ }, {}, {}>;
110
+ status: import("drizzle-orm/pg-core/index.js").PgColumn<{
111
+ name: "status";
112
+ tableName: "insights";
113
+ dataType: "string";
114
+ columnType: "PgText";
115
+ data: string;
116
+ driverParam: string;
117
+ notNull: true;
118
+ hasDefault: false;
119
+ isPrimaryKey: false;
120
+ isAutoincrement: false;
121
+ hasRuntimeDefault: false;
122
+ enumValues: [string, ...string[]];
123
+ baseColumn: never;
124
+ identity: undefined;
125
+ generated: undefined;
126
+ }, {}, {}>;
127
+ profile: import("drizzle-orm/pg-core/index.js").PgColumn<{
128
+ name: "profile";
129
+ tableName: "insights";
130
+ dataType: "string";
131
+ columnType: "PgText";
132
+ data: string;
133
+ driverParam: string;
134
+ notNull: true;
135
+ hasDefault: false;
136
+ isPrimaryKey: false;
137
+ isAutoincrement: false;
138
+ hasRuntimeDefault: false;
139
+ enumValues: [string, ...string[]];
140
+ baseColumn: never;
141
+ identity: undefined;
142
+ generated: undefined;
143
+ }, {}, {}>;
144
+ model: import("drizzle-orm/pg-core/index.js").PgColumn<{
145
+ name: "model";
146
+ tableName: "insights";
147
+ dataType: "string";
148
+ columnType: "PgText";
149
+ data: string;
150
+ driverParam: string;
151
+ notNull: true;
152
+ hasDefault: false;
153
+ isPrimaryKey: false;
154
+ isAutoincrement: false;
155
+ hasRuntimeDefault: false;
156
+ enumValues: [string, ...string[]];
157
+ baseColumn: never;
158
+ identity: undefined;
159
+ generated: undefined;
160
+ }, {}, {}>;
161
+ promptVersion: import("drizzle-orm/pg-core/index.js").PgColumn<{
162
+ name: "prompt_version";
163
+ tableName: "insights";
164
+ dataType: "string";
165
+ columnType: "PgText";
166
+ data: string;
167
+ driverParam: string;
168
+ notNull: true;
169
+ hasDefault: false;
170
+ isPrimaryKey: false;
171
+ isAutoincrement: false;
172
+ hasRuntimeDefault: false;
173
+ enumValues: [string, ...string[]];
174
+ baseColumn: never;
175
+ identity: undefined;
176
+ generated: undefined;
177
+ }, {}, {}>;
178
+ verdict: import("drizzle-orm/pg-core/index.js").PgColumn<{
179
+ name: "verdict";
180
+ tableName: "insights";
181
+ dataType: "string";
182
+ columnType: "PgText";
183
+ data: string;
184
+ driverParam: string;
185
+ notNull: false;
186
+ hasDefault: false;
187
+ isPrimaryKey: false;
188
+ isAutoincrement: false;
189
+ hasRuntimeDefault: false;
190
+ enumValues: [string, ...string[]];
191
+ baseColumn: never;
192
+ identity: undefined;
193
+ generated: undefined;
194
+ }, {}, {}>;
195
+ summary: import("drizzle-orm/pg-core/index.js").PgColumn<{
196
+ name: "summary";
197
+ tableName: "insights";
198
+ dataType: "string";
199
+ columnType: "PgText";
200
+ data: string;
201
+ driverParam: string;
202
+ notNull: false;
203
+ hasDefault: false;
204
+ isPrimaryKey: false;
205
+ isAutoincrement: false;
206
+ hasRuntimeDefault: false;
207
+ enumValues: [string, ...string[]];
208
+ baseColumn: never;
209
+ identity: undefined;
210
+ generated: undefined;
211
+ }, {}, {}>;
212
+ result: import("drizzle-orm/pg-core/index.js").PgColumn<{
213
+ name: "result";
214
+ tableName: "insights";
215
+ dataType: "string";
216
+ columnType: "PgText";
217
+ data: string;
218
+ driverParam: string;
219
+ notNull: false;
220
+ hasDefault: false;
221
+ isPrimaryKey: false;
222
+ isAutoincrement: false;
223
+ hasRuntimeDefault: false;
224
+ enumValues: [string, ...string[]];
225
+ baseColumn: never;
226
+ identity: undefined;
227
+ generated: undefined;
228
+ }, {}, {}>;
229
+ errorCode: import("drizzle-orm/pg-core/index.js").PgColumn<{
230
+ name: "error_code";
231
+ tableName: "insights";
232
+ dataType: "string";
233
+ columnType: "PgText";
234
+ data: string;
235
+ driverParam: string;
236
+ notNull: false;
237
+ hasDefault: false;
238
+ isPrimaryKey: false;
239
+ isAutoincrement: false;
240
+ hasRuntimeDefault: false;
241
+ enumValues: [string, ...string[]];
242
+ baseColumn: never;
243
+ identity: undefined;
244
+ generated: undefined;
245
+ }, {}, {}>;
246
+ createdAt: import("drizzle-orm/pg-core/index.js").PgColumn<{
247
+ name: "created_at";
248
+ tableName: "insights";
249
+ dataType: "string";
250
+ columnType: "PgTimestampString";
251
+ data: string;
252
+ driverParam: string;
253
+ notNull: true;
254
+ hasDefault: false;
255
+ isPrimaryKey: false;
256
+ isAutoincrement: false;
257
+ hasRuntimeDefault: false;
258
+ enumValues: undefined;
259
+ baseColumn: never;
260
+ identity: undefined;
261
+ generated: undefined;
262
+ }, {}, {}>;
263
+ startedAt: import("drizzle-orm/pg-core/index.js").PgColumn<{
264
+ name: "started_at";
265
+ tableName: "insights";
266
+ dataType: "string";
267
+ columnType: "PgTimestampString";
268
+ data: string;
269
+ driverParam: string;
270
+ notNull: false;
271
+ hasDefault: false;
272
+ isPrimaryKey: false;
273
+ isAutoincrement: false;
274
+ hasRuntimeDefault: false;
275
+ enumValues: undefined;
276
+ baseColumn: never;
277
+ identity: undefined;
278
+ generated: undefined;
279
+ }, {}, {}>;
280
+ finishedAt: import("drizzle-orm/pg-core/index.js").PgColumn<{
281
+ name: "finished_at";
282
+ tableName: "insights";
283
+ dataType: "string";
284
+ columnType: "PgTimestampString";
285
+ data: string;
286
+ driverParam: string;
287
+ notNull: false;
288
+ hasDefault: false;
289
+ isPrimaryKey: false;
290
+ isAutoincrement: false;
291
+ hasRuntimeDefault: false;
292
+ enumValues: undefined;
293
+ baseColumn: never;
294
+ identity: undefined;
295
+ generated: undefined;
296
+ }, {}, {}>;
297
+ };
298
+ dialect: 'pg';
299
+ }>;
300
+ /** Narrow `ai_usage` table definition (provider-reported usage; survives build purge). */
301
+ declare const aiUsage: import("drizzle-orm/pg-core/table.js").PgTableWithColumns<{
302
+ name: "ai_usage";
303
+ schema: undefined;
304
+ columns: {
305
+ id: import("drizzle-orm/pg-core/index.js").PgColumn<{
306
+ name: "id";
307
+ tableName: "ai_usage";
308
+ dataType: "string";
309
+ columnType: "PgText";
310
+ data: string;
311
+ driverParam: string;
312
+ notNull: true;
313
+ hasDefault: false;
314
+ isPrimaryKey: true;
315
+ isAutoincrement: false;
316
+ hasRuntimeDefault: false;
317
+ enumValues: [string, ...string[]];
318
+ baseColumn: never;
319
+ identity: undefined;
320
+ generated: undefined;
321
+ }, {}, {}>;
322
+ insightId: import("drizzle-orm/pg-core/index.js").PgColumn<{
323
+ name: "insight_id";
324
+ tableName: "ai_usage";
325
+ dataType: "string";
326
+ columnType: "PgText";
327
+ data: string;
328
+ driverParam: string;
329
+ notNull: false;
330
+ hasDefault: false;
331
+ isPrimaryKey: false;
332
+ isAutoincrement: false;
333
+ hasRuntimeDefault: false;
334
+ enumValues: [string, ...string[]];
335
+ baseColumn: never;
336
+ identity: undefined;
337
+ generated: undefined;
338
+ }, {}, {}>;
339
+ projectId: import("drizzle-orm/pg-core/index.js").PgColumn<{
340
+ name: "project_id";
341
+ tableName: "ai_usage";
342
+ dataType: "string";
343
+ columnType: "PgText";
344
+ data: string;
345
+ driverParam: string;
346
+ notNull: true;
347
+ hasDefault: false;
348
+ isPrimaryKey: false;
349
+ isAutoincrement: false;
350
+ hasRuntimeDefault: false;
351
+ enumValues: [string, ...string[]];
352
+ baseColumn: never;
353
+ identity: undefined;
354
+ generated: undefined;
355
+ }, {}, {}>;
356
+ profile: import("drizzle-orm/pg-core/index.js").PgColumn<{
357
+ name: "profile";
358
+ tableName: "ai_usage";
359
+ dataType: "string";
360
+ columnType: "PgText";
361
+ data: string;
362
+ driverParam: string;
363
+ notNull: true;
364
+ hasDefault: false;
365
+ isPrimaryKey: false;
366
+ isAutoincrement: false;
367
+ hasRuntimeDefault: false;
368
+ enumValues: [string, ...string[]];
369
+ baseColumn: never;
370
+ identity: undefined;
371
+ generated: undefined;
372
+ }, {}, {}>;
373
+ task: import("drizzle-orm/pg-core/index.js").PgColumn<{
374
+ name: "task";
375
+ tableName: "ai_usage";
376
+ dataType: "string";
377
+ columnType: "PgText";
378
+ data: string;
379
+ driverParam: string;
380
+ notNull: true;
381
+ hasDefault: false;
382
+ isPrimaryKey: false;
383
+ isAutoincrement: false;
384
+ hasRuntimeDefault: false;
385
+ enumValues: [string, ...string[]];
386
+ baseColumn: never;
387
+ identity: undefined;
388
+ generated: undefined;
389
+ }, {}, {}>;
390
+ model: import("drizzle-orm/pg-core/index.js").PgColumn<{
391
+ name: "model";
392
+ tableName: "ai_usage";
393
+ dataType: "string";
394
+ columnType: "PgText";
395
+ data: string;
396
+ driverParam: string;
397
+ notNull: true;
398
+ hasDefault: false;
399
+ isPrimaryKey: false;
400
+ isAutoincrement: false;
401
+ hasRuntimeDefault: false;
402
+ enumValues: [string, ...string[]];
403
+ baseColumn: never;
404
+ identity: undefined;
405
+ generated: undefined;
406
+ }, {}, {}>;
407
+ inputTokens: import("drizzle-orm/pg-core/index.js").PgColumn<{
408
+ name: "input_tokens";
409
+ tableName: "ai_usage";
410
+ dataType: "number";
411
+ columnType: "PgInteger";
412
+ data: number;
413
+ driverParam: string | number;
414
+ notNull: true;
415
+ hasDefault: true;
416
+ isPrimaryKey: false;
417
+ isAutoincrement: false;
418
+ hasRuntimeDefault: false;
419
+ enumValues: undefined;
420
+ baseColumn: never;
421
+ identity: undefined;
422
+ generated: undefined;
423
+ }, {}, {}>;
424
+ outputTokens: import("drizzle-orm/pg-core/index.js").PgColumn<{
425
+ name: "output_tokens";
426
+ tableName: "ai_usage";
427
+ dataType: "number";
428
+ columnType: "PgInteger";
429
+ data: number;
430
+ driverParam: string | number;
431
+ notNull: true;
432
+ hasDefault: true;
433
+ isPrimaryKey: false;
434
+ isAutoincrement: false;
435
+ hasRuntimeDefault: false;
436
+ enumValues: undefined;
437
+ baseColumn: never;
438
+ identity: undefined;
439
+ generated: undefined;
440
+ }, {}, {}>;
441
+ estimated: import("drizzle-orm/pg-core/index.js").PgColumn<{
442
+ name: "estimated";
443
+ tableName: "ai_usage";
444
+ dataType: "boolean";
445
+ columnType: "PgBoolean";
446
+ data: boolean;
447
+ driverParam: boolean;
448
+ notNull: true;
449
+ hasDefault: true;
450
+ isPrimaryKey: false;
451
+ isAutoincrement: false;
452
+ hasRuntimeDefault: false;
453
+ enumValues: undefined;
454
+ baseColumn: never;
455
+ identity: undefined;
456
+ generated: undefined;
457
+ }, {}, {}>;
458
+ images: import("drizzle-orm/pg-core/index.js").PgColumn<{
459
+ name: "images";
460
+ tableName: "ai_usage";
461
+ dataType: "number";
462
+ columnType: "PgInteger";
463
+ data: number;
464
+ driverParam: string | number;
465
+ notNull: true;
466
+ hasDefault: true;
467
+ isPrimaryKey: false;
468
+ isAutoincrement: false;
469
+ hasRuntimeDefault: false;
470
+ enumValues: undefined;
471
+ baseColumn: never;
472
+ identity: undefined;
473
+ generated: undefined;
474
+ }, {}, {}>;
475
+ status: import("drizzle-orm/pg-core/index.js").PgColumn<{
476
+ name: "status";
477
+ tableName: "ai_usage";
478
+ dataType: "string";
479
+ columnType: "PgText";
480
+ data: string;
481
+ driverParam: string;
482
+ notNull: true;
483
+ hasDefault: false;
484
+ isPrimaryKey: false;
485
+ isAutoincrement: false;
486
+ hasRuntimeDefault: false;
487
+ enumValues: [string, ...string[]];
488
+ baseColumn: never;
489
+ identity: undefined;
490
+ generated: undefined;
491
+ }, {}, {}>;
492
+ createdAt: import("drizzle-orm/pg-core/index.js").PgColumn<{
493
+ name: "created_at";
494
+ tableName: "ai_usage";
495
+ dataType: "string";
496
+ columnType: "PgTimestampString";
497
+ data: string;
498
+ driverParam: string;
499
+ notNull: true;
500
+ hasDefault: false;
501
+ isPrimaryKey: false;
502
+ isAutoincrement: false;
503
+ hasRuntimeDefault: false;
504
+ enumValues: undefined;
505
+ baseColumn: never;
506
+ identity: undefined;
507
+ generated: undefined;
508
+ }, {}, {}>;
509
+ };
510
+ dialect: 'pg';
511
+ }>;
512
+ /** Narrow `ai_budget_alerts` table definition (primary key `${day}:${threshold}` is the claim). */
513
+ declare const aiBudgetAlerts: import("drizzle-orm/pg-core/table.js").PgTableWithColumns<{
514
+ name: "ai_budget_alerts";
515
+ schema: undefined;
516
+ columns: {
517
+ id: import("drizzle-orm/pg-core/index.js").PgColumn<{
518
+ name: "id";
519
+ tableName: "ai_budget_alerts";
520
+ dataType: "string";
521
+ columnType: "PgText";
522
+ data: string;
523
+ driverParam: string;
524
+ notNull: true;
525
+ hasDefault: false;
526
+ isPrimaryKey: true;
527
+ isAutoincrement: false;
528
+ hasRuntimeDefault: false;
529
+ enumValues: [string, ...string[]];
530
+ baseColumn: never;
531
+ identity: undefined;
532
+ generated: undefined;
533
+ }, {}, {}>;
534
+ day: import("drizzle-orm/pg-core/index.js").PgColumn<{
535
+ name: "day";
536
+ tableName: "ai_budget_alerts";
537
+ dataType: "string";
538
+ columnType: "PgText";
539
+ data: string;
540
+ driverParam: string;
541
+ notNull: true;
542
+ hasDefault: false;
543
+ isPrimaryKey: false;
544
+ isAutoincrement: false;
545
+ hasRuntimeDefault: false;
546
+ enumValues: [string, ...string[]];
547
+ baseColumn: never;
548
+ identity: undefined;
549
+ generated: undefined;
550
+ }, {}, {}>;
551
+ threshold: import("drizzle-orm/pg-core/index.js").PgColumn<{
552
+ name: "threshold";
553
+ tableName: "ai_budget_alerts";
554
+ dataType: "number";
555
+ columnType: "PgInteger";
556
+ data: number;
557
+ driverParam: string | number;
558
+ notNull: true;
559
+ hasDefault: false;
560
+ isPrimaryKey: false;
561
+ isAutoincrement: false;
562
+ hasRuntimeDefault: false;
563
+ enumValues: undefined;
564
+ baseColumn: never;
565
+ identity: undefined;
566
+ generated: undefined;
567
+ }, {}, {}>;
568
+ createdAt: import("drizzle-orm/pg-core/index.js").PgColumn<{
569
+ name: "created_at";
570
+ tableName: "ai_budget_alerts";
571
+ dataType: "string";
572
+ columnType: "PgTimestampString";
573
+ data: string;
574
+ driverParam: string;
575
+ notNull: true;
576
+ hasDefault: false;
577
+ isPrimaryKey: false;
578
+ isAutoincrement: false;
579
+ hasRuntimeDefault: false;
580
+ enumValues: undefined;
581
+ baseColumn: never;
582
+ identity: undefined;
583
+ generated: undefined;
584
+ }, {}, {}>;
585
+ };
586
+ dialect: 'pg';
587
+ }>;
588
+ /** An insight row. */
589
+ interface Insight {
590
+ id: string;
591
+ projectId: string;
592
+ buildId: string | null;
593
+ kind: string;
594
+ windowKey: string | null;
595
+ inputHash: string;
596
+ status: string;
597
+ profile: string;
598
+ model: string;
599
+ promptVersion: string;
600
+ verdict: string | null;
601
+ summary: string | null;
602
+ result: string | null;
603
+ errorCode: string | null;
604
+ createdAt: string;
605
+ startedAt: string | null;
606
+ finishedAt: string | null;
607
+ }
608
+ /** An AI usage row. */
609
+ interface AiUsage {
610
+ id: string;
611
+ insightId: string | null;
612
+ projectId: string;
613
+ profile: string;
614
+ task: string;
615
+ model: string;
616
+ inputTokens: number;
617
+ outputTokens: number;
618
+ estimated: boolean;
619
+ images: number;
620
+ status: string;
621
+ createdAt: string;
622
+ }
623
+ /** A budget-threshold alert claim row. */
624
+ interface AiBudgetAlert {
625
+ id: string;
626
+ day: string;
627
+ threshold: number;
628
+ createdAt: string;
629
+ }
630
+ export { AiBudgetAlert, AiUsage, Insight, aiBudgetAlerts, aiUsage, insights };
631
+ //# sourceMappingURL=insight.d.mts.map
@@ -0,0 +1,67 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import { projects } from "./project.mjs";
5
+ import { builds } from "./build.mjs";
6
+ import { boolean, integer, pgTable, text, timestamp } from "drizzle-orm/pg-core";
7
+ // src/schema/insight.ts
8
+ /** Narrow `insights` table definition (build triage and project health results). */
9
+ const insights = pgTable("insights", {
10
+ id: text("id").primaryKey(),
11
+ projectId: text("project_id").notNull().references(() => projects.id, { onDelete: "cascade" }),
12
+ buildId: text("build_id").references(() => builds.id, { onDelete: "cascade" }),
13
+ kind: text("kind").notNull(),
14
+ windowKey: text("window_key"),
15
+ inputHash: text("input_hash").notNull(),
16
+ status: text("status").notNull(),
17
+ profile: text("profile").notNull(),
18
+ model: text("model").notNull(),
19
+ promptVersion: text("prompt_version").notNull(),
20
+ verdict: text("verdict"),
21
+ summary: text("summary"),
22
+ result: text("result"),
23
+ errorCode: text("error_code"),
24
+ createdAt: timestamp("created_at", {
25
+ withTimezone: true,
26
+ mode: "string"
27
+ }).notNull(),
28
+ startedAt: timestamp("started_at", {
29
+ withTimezone: true,
30
+ mode: "string"
31
+ }),
32
+ finishedAt: timestamp("finished_at", {
33
+ withTimezone: true,
34
+ mode: "string"
35
+ })
36
+ });
37
+ /** Narrow `ai_usage` table definition (provider-reported usage; survives build purge). */
38
+ const aiUsage = pgTable("ai_usage", {
39
+ id: text("id").primaryKey(),
40
+ insightId: text("insight_id"),
41
+ projectId: text("project_id").notNull().references(() => projects.id, { onDelete: "cascade" }),
42
+ profile: text("profile").notNull(),
43
+ task: text("task").notNull(),
44
+ model: text("model").notNull(),
45
+ inputTokens: integer("input_tokens").notNull().default(0),
46
+ outputTokens: integer("output_tokens").notNull().default(0),
47
+ estimated: boolean("estimated").notNull().default(false),
48
+ images: integer("images").notNull().default(0),
49
+ status: text("status").notNull(),
50
+ createdAt: timestamp("created_at", {
51
+ withTimezone: true,
52
+ mode: "string"
53
+ }).notNull()
54
+ });
55
+ /** Narrow `ai_budget_alerts` table definition (primary key `${day}:${threshold}` is the claim). */
56
+ const aiBudgetAlerts = pgTable("ai_budget_alerts", {
57
+ id: text("id").primaryKey(),
58
+ day: text("day").notNull(),
59
+ threshold: integer("threshold").notNull(),
60
+ createdAt: timestamp("created_at", {
61
+ withTimezone: true,
62
+ mode: "string"
63
+ }).notNull()
64
+ });
65
+ export { aiBudgetAlerts, aiUsage, insights };
66
+
67
+ //# sourceMappingURL=insight.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insight.mjs","names":[],"sources":["../../src/schema/insight.ts"],"sourcesContent":["import { boolean, integer, pgTable, text, timestamp } from \"drizzle-orm/pg-core\";\nimport { builds } from \"./build.ts\";\nimport { projects } from \"./project.ts\";\n\n/** Narrow `insights` table definition (build triage and project health results). */\nexport const insights = pgTable(\"insights\", {\n id: text(\"id\").primaryKey(),\n projectId: text(\"project_id\")\n .notNull()\n .references(() => projects.id, { onDelete: \"cascade\" }),\n buildId: text(\"build_id\").references(() => builds.id, { onDelete: \"cascade\" }),\n kind: text(\"kind\").notNull(),\n windowKey: text(\"window_key\"),\n inputHash: text(\"input_hash\").notNull(),\n status: text(\"status\").notNull(),\n profile: text(\"profile\").notNull(),\n model: text(\"model\").notNull(),\n promptVersion: text(\"prompt_version\").notNull(),\n verdict: text(\"verdict\"),\n summary: text(\"summary\"),\n result: text(\"result\"),\n errorCode: text(\"error_code\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true, mode: \"string\" }).notNull(),\n startedAt: timestamp(\"started_at\", { withTimezone: true, mode: \"string\" }),\n finishedAt: timestamp(\"finished_at\", { withTimezone: true, mode: \"string\" }),\n});\n\n/** Narrow `ai_usage` table definition (provider-reported usage; survives build purge). */\nexport const aiUsage = pgTable(\"ai_usage\", {\n id: text(\"id\").primaryKey(),\n insightId: text(\"insight_id\"),\n projectId: text(\"project_id\")\n .notNull()\n .references(() => projects.id, { onDelete: \"cascade\" }),\n profile: text(\"profile\").notNull(),\n task: text(\"task\").notNull(),\n model: text(\"model\").notNull(),\n inputTokens: integer(\"input_tokens\").notNull().default(0),\n outputTokens: integer(\"output_tokens\").notNull().default(0),\n estimated: boolean(\"estimated\").notNull().default(false),\n images: integer(\"images\").notNull().default(0),\n status: text(\"status\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true, mode: \"string\" }).notNull(),\n});\n\n/** Narrow `ai_budget_alerts` table definition (primary key `${day}:${threshold}` is the claim). */\nexport const aiBudgetAlerts = pgTable(\"ai_budget_alerts\", {\n id: text(\"id\").primaryKey(),\n day: text(\"day\").notNull(),\n threshold: integer(\"threshold\").notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true, mode: \"string\" }).notNull(),\n});\n\n/** An insight row. */\nexport interface Insight {\n id: string;\n projectId: string;\n buildId: string | null;\n kind: string;\n windowKey: string | null;\n inputHash: string;\n status: string;\n profile: string;\n model: string;\n promptVersion: string;\n verdict: string | null;\n summary: string | null;\n result: string | null;\n errorCode: string | null;\n createdAt: string;\n startedAt: string | null;\n finishedAt: string | null;\n}\n\n/** An AI usage row. */\nexport interface AiUsage {\n id: string;\n insightId: string | null;\n projectId: string;\n profile: string;\n task: string;\n model: string;\n inputTokens: number;\n outputTokens: number;\n estimated: boolean;\n images: number;\n status: string;\n createdAt: string;\n}\n\n/** A budget-threshold alert claim row. */\nexport interface AiBudgetAlert {\n id: string;\n day: string;\n threshold: number;\n createdAt: string;\n}\n"],"mappings":";;;;;;;;AAKA,MAAa,WAAW,QAAQ,YAAY;CAC1C,IAAI,KAAK,IAAI,CAAC,CAAC,WAAW;CAC1B,WAAW,KAAK,YAAY,CAAC,CAC1B,QAAQ,CAAC,CACT,iBAAiB,SAAS,IAAI,EAAE,UAAU,UAAU,CAAC;CACxD,SAAS,KAAK,UAAU,CAAC,CAAC,iBAAiB,OAAO,IAAI,EAAE,UAAU,UAAU,CAAC;CAC7E,MAAM,KAAK,MAAM,CAAC,CAAC,QAAQ;CAC3B,WAAW,KAAK,YAAY;CAC5B,WAAW,KAAK,YAAY,CAAC,CAAC,QAAQ;CACtC,QAAQ,KAAK,QAAQ,CAAC,CAAC,QAAQ;CAC/B,SAAS,KAAK,SAAS,CAAC,CAAC,QAAQ;CACjC,OAAO,KAAK,OAAO,CAAC,CAAC,QAAQ;CAC7B,eAAe,KAAK,gBAAgB,CAAC,CAAC,QAAQ;CAC9C,SAAS,KAAK,SAAS;CACvB,SAAS,KAAK,SAAS;CACvB,QAAQ,KAAK,QAAQ;CACrB,WAAW,KAAK,YAAY;CAC5B,WAAW,UAAU,cAAc;EAAE,cAAc;EAAM,MAAM;CAAS,CAAC,CAAC,CAAC,QAAQ;CACnF,WAAW,UAAU,cAAc;EAAE,cAAc;EAAM,MAAM;CAAS,CAAC;CACzE,YAAY,UAAU,eAAe;EAAE,cAAc;EAAM,MAAM;CAAS,CAAC;AAC7E,CAAC;;AAGD,MAAa,UAAU,QAAQ,YAAY;CACzC,IAAI,KAAK,IAAI,CAAC,CAAC,WAAW;CAC1B,WAAW,KAAK,YAAY;CAC5B,WAAW,KAAK,YAAY,CAAC,CAC1B,QAAQ,CAAC,CACT,iBAAiB,SAAS,IAAI,EAAE,UAAU,UAAU,CAAC;CACxD,SAAS,KAAK,SAAS,CAAC,CAAC,QAAQ;CACjC,MAAM,KAAK,MAAM,CAAC,CAAC,QAAQ;CAC3B,OAAO,KAAK,OAAO,CAAC,CAAC,QAAQ;CAC7B,aAAa,QAAQ,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;CACxD,cAAc,QAAQ,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;CAC1D,WAAW,QAAQ,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACvD,QAAQ,QAAQ,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;CAC7C,QAAQ,KAAK,QAAQ,CAAC,CAAC,QAAQ;CAC/B,WAAW,UAAU,cAAc;EAAE,cAAc;EAAM,MAAM;CAAS,CAAC,CAAC,CAAC,QAAQ;AACrF,CAAC;;AAGD,MAAa,iBAAiB,QAAQ,oBAAoB;CACxD,IAAI,KAAK,IAAI,CAAC,CAAC,WAAW;CAC1B,KAAK,KAAK,KAAK,CAAC,CAAC,QAAQ;CACzB,WAAW,QAAQ,WAAW,CAAC,CAAC,QAAQ;CACxC,WAAW,UAAU,cAAc;EAAE,cAAc;EAAM,MAAM;CAAS,CAAC,CAAC,CAAC,QAAQ;AACrF,CAAC"}