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