@storyshelf/db-mysql 0.6.2 → 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 (92) hide show
  1. package/README.md +36 -0
  2. package/dist/ddl.d.mts +1 -1
  3. package/dist/ddl.mjs +381 -138
  4. package/dist/ddl.mjs.map +1 -1
  5. package/dist/drizzle-factory-mysql.mjs +7 -1
  6. package/dist/drizzle-factory-mysql.mjs.map +1 -1
  7. package/dist/foreign-keys.mjs +339 -0
  8. package/dist/foreign-keys.mjs.map +1 -0
  9. package/dist/index.mjs +10 -5
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/migrate.mjs +300 -72
  12. package/dist/migrate.mjs.map +1 -1
  13. package/dist/schema/baseline.d.mts +60 -6
  14. package/dist/schema/baseline.mjs +6 -2
  15. package/dist/schema/baseline.mjs.map +1 -1
  16. package/dist/schema/{status-config.d.mts → build-component.d.mts} +46 -39
  17. package/dist/schema/build-component.mjs +26 -0
  18. package/dist/schema/build-component.mjs.map +1 -0
  19. package/dist/schema/build-review.d.mts +118 -0
  20. package/dist/schema/build-review.mjs +24 -0
  21. package/dist/schema/build-review.mjs.map +1 -0
  22. package/dist/schema/build.d.mts +44 -8
  23. package/dist/schema/build.mjs +5 -1
  24. package/dist/schema/build.mjs.map +1 -1
  25. package/dist/schema/capture-attempt.d.mts +18 -18
  26. package/dist/schema/capture-attempt.mjs +2 -1
  27. package/dist/schema/capture-attempt.mjs.map +1 -1
  28. package/dist/schema/capture-job.d.mts +330 -0
  29. package/dist/schema/capture-job.mjs +57 -0
  30. package/dist/schema/capture-job.mjs.map +1 -0
  31. package/dist/schema/capture-shard.d.mts +257 -0
  32. package/dist/schema/capture-shard.mjs +41 -0
  33. package/dist/schema/capture-shard.mjs.map +1 -0
  34. package/dist/schema/comment.d.mts +24 -6
  35. package/dist/schema/comment.mjs +5 -3
  36. package/dist/schema/comment.mjs.map +1 -1
  37. package/dist/schema/connection.d.mts +173 -0
  38. package/dist/schema/connection.mjs +36 -0
  39. package/dist/schema/connection.mjs.map +1 -0
  40. package/dist/schema/content-refs.d.mts +6 -6
  41. package/dist/schema/content-refs.mjs +2 -1
  42. package/dist/schema/content-refs.mjs.map +1 -1
  43. package/dist/schema/datetime.mjs +47 -0
  44. package/dist/schema/datetime.mjs.map +1 -0
  45. package/dist/schema/design.d.mts +589 -0
  46. package/dist/schema/design.mjs +74 -0
  47. package/dist/schema/design.mjs.map +1 -0
  48. package/dist/schema/insight.d.mts +633 -0
  49. package/dist/schema/insight.mjs +69 -0
  50. package/dist/schema/insight.mjs.map +1 -0
  51. package/dist/schema/label.d.mts +6 -6
  52. package/dist/schema/label.mjs +2 -1
  53. package/dist/schema/label.mjs.map +1 -1
  54. package/dist/schema/member.d.mts +3 -3
  55. package/dist/schema/member.mjs +2 -1
  56. package/dist/schema/member.mjs.map +1 -1
  57. package/dist/schema/notification.d.mts +45 -9
  58. package/dist/schema/notification.mjs +7 -1
  59. package/dist/schema/notification.mjs.map +1 -1
  60. package/dist/schema/project-group-mapping.d.mts +3 -3
  61. package/dist/schema/project-group-mapping.mjs +2 -1
  62. package/dist/schema/project-group-mapping.mjs.map +1 -1
  63. package/dist/schema/project.d.mts +132 -6
  64. package/dist/schema/project.mjs +10 -2
  65. package/dist/schema/project.mjs.map +1 -1
  66. package/dist/schema/site-setting.d.mts +99 -0
  67. package/dist/schema/site-setting.mjs +24 -0
  68. package/dist/schema/site-setting.mjs.map +1 -0
  69. package/dist/schema/snapshot.d.mts +117 -9
  70. package/dist/schema/snapshot.mjs +13 -2
  71. package/dist/schema/snapshot.mjs.map +1 -1
  72. package/dist/schema/token.d.mts +6 -6
  73. package/dist/schema/token.mjs +2 -1
  74. package/dist/schema/token.mjs.map +1 -1
  75. package/dist/schema/usage.d.mts +267 -0
  76. package/dist/schema/usage.mjs +37 -0
  77. package/dist/schema/usage.mjs.map +1 -0
  78. package/dist/schema/user-invite.d.mts +9 -9
  79. package/dist/schema/user-invite.mjs +2 -1
  80. package/dist/schema/user-invite.mjs.map +1 -1
  81. package/dist/schema/user.d.mts +6 -6
  82. package/dist/schema/user.mjs +2 -1
  83. package/dist/schema/user.mjs.map +1 -1
  84. package/dist/schema/webhook.d.mts +6 -6
  85. package/dist/schema/webhook.mjs +2 -1
  86. package/dist/schema/webhook.mjs.map +1 -1
  87. package/dist/schema.d.mts +24 -3
  88. package/dist/schema.mjs +25 -4
  89. package/dist/schema.mjs.map +1 -1
  90. package/package.json +5 -5
  91. package/dist/schema/status-config.mjs +0 -26
  92. 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/mysql-core").MySqlTableWithColumns<{
6
+ name: "insights";
7
+ schema: undefined;
8
+ columns: {
9
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
10
+ name: "id";
11
+ tableName: "insights";
12
+ dataType: "string";
13
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
27
+ name: "project_id";
28
+ tableName: "insights";
29
+ dataType: "string";
30
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
44
+ name: "build_id";
45
+ tableName: "insights";
46
+ dataType: "string";
47
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
61
+ name: "kind";
62
+ tableName: "insights";
63
+ dataType: "string";
64
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
78
+ name: "window_key";
79
+ tableName: "insights";
80
+ dataType: "string";
81
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
95
+ name: "input_hash";
96
+ tableName: "insights";
97
+ dataType: "string";
98
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
112
+ name: "status";
113
+ tableName: "insights";
114
+ dataType: "string";
115
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
129
+ name: "profile";
130
+ tableName: "insights";
131
+ dataType: "string";
132
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
146
+ name: "model";
147
+ tableName: "insights";
148
+ dataType: "string";
149
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
163
+ name: "prompt_version";
164
+ tableName: "insights";
165
+ dataType: "string";
166
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
180
+ name: "verdict";
181
+ tableName: "insights";
182
+ dataType: "string";
183
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
197
+ name: "summary";
198
+ tableName: "insights";
199
+ dataType: "string";
200
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
214
+ name: "result";
215
+ tableName: "insights";
216
+ dataType: "string";
217
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
231
+ name: "error_code";
232
+ tableName: "insights";
233
+ dataType: "string";
234
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
248
+ name: "created_at";
249
+ tableName: "insights";
250
+ dataType: "custom";
251
+ columnType: "MySqlCustomColumn";
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/mysql-core").MySqlColumn<{
265
+ name: "started_at";
266
+ tableName: "insights";
267
+ dataType: "custom";
268
+ columnType: "MySqlCustomColumn";
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/mysql-core").MySqlColumn<{
282
+ name: "finished_at";
283
+ tableName: "insights";
284
+ dataType: "custom";
285
+ columnType: "MySqlCustomColumn";
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: 'mysql';
300
+ }>;
301
+ /** Narrow `ai_usage` table definition (provider-reported usage; survives build purge). */
302
+ declare const aiUsage: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
303
+ name: "ai_usage";
304
+ schema: undefined;
305
+ columns: {
306
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
307
+ name: "id";
308
+ tableName: "ai_usage";
309
+ dataType: "string";
310
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
324
+ name: "insight_id";
325
+ tableName: "ai_usage";
326
+ dataType: "string";
327
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
341
+ name: "project_id";
342
+ tableName: "ai_usage";
343
+ dataType: "string";
344
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
358
+ name: "profile";
359
+ tableName: "ai_usage";
360
+ dataType: "string";
361
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
375
+ name: "task";
376
+ tableName: "ai_usage";
377
+ dataType: "string";
378
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
392
+ name: "model";
393
+ tableName: "ai_usage";
394
+ dataType: "string";
395
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
409
+ name: "input_tokens";
410
+ tableName: "ai_usage";
411
+ dataType: "number";
412
+ columnType: "MySqlInt";
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/mysql-core").MySqlColumn<{
426
+ name: "output_tokens";
427
+ tableName: "ai_usage";
428
+ dataType: "number";
429
+ columnType: "MySqlInt";
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/mysql-core").MySqlColumn<{
443
+ name: "estimated";
444
+ tableName: "ai_usage";
445
+ dataType: "boolean";
446
+ columnType: "MySqlBoolean";
447
+ data: boolean;
448
+ driverParam: number | 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/mysql-core").MySqlColumn<{
460
+ name: "images";
461
+ tableName: "ai_usage";
462
+ dataType: "number";
463
+ columnType: "MySqlInt";
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/mysql-core").MySqlColumn<{
477
+ name: "status";
478
+ tableName: "ai_usage";
479
+ dataType: "string";
480
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
494
+ name: "created_at";
495
+ tableName: "ai_usage";
496
+ dataType: "custom";
497
+ columnType: "MySqlCustomColumn";
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: 'mysql';
512
+ }>;
513
+ /** Narrow `ai_budget_alerts` table definition (primary key `${day}:${threshold}` is the claim). */
514
+ declare const aiBudgetAlerts: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
515
+ name: "ai_budget_alerts";
516
+ schema: undefined;
517
+ columns: {
518
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
519
+ name: "id";
520
+ tableName: "ai_budget_alerts";
521
+ dataType: "string";
522
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
536
+ name: "day";
537
+ tableName: "ai_budget_alerts";
538
+ dataType: "string";
539
+ columnType: "MySqlText";
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/mysql-core").MySqlColumn<{
553
+ name: "threshold";
554
+ tableName: "ai_budget_alerts";
555
+ dataType: "number";
556
+ columnType: "MySqlInt";
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/mysql-core").MySqlColumn<{
570
+ name: "created_at";
571
+ tableName: "ai_budget_alerts";
572
+ dataType: "custom";
573
+ columnType: "MySqlCustomColumn";
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: 'mysql';
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,69 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import { datetime } from "./datetime.mjs";
5
+ import { projects } from "./project.mjs";
6
+ import { builds } from "./build.mjs";
7
+ import { boolean, int, mysqlTable, text } from "drizzle-orm/mysql-core";
8
+ //#region src/schema/insight.ts
9
+ /** Narrow `insights` table definition (build triage and project health results). */
10
+ const insights = mysqlTable("insights", {
11
+ id: text("id").primaryKey(),
12
+ projectId: text("project_id").notNull().references(() => projects.id, { onDelete: "cascade" }),
13
+ buildId: text("build_id").references(() => builds.id, { onDelete: "cascade" }),
14
+ kind: text("kind").notNull(),
15
+ windowKey: text("window_key"),
16
+ inputHash: text("input_hash").notNull(),
17
+ status: text("status").notNull(),
18
+ profile: text("profile").notNull(),
19
+ model: text("model").notNull(),
20
+ promptVersion: text("prompt_version").notNull(),
21
+ verdict: text("verdict"),
22
+ summary: text("summary"),
23
+ result: text("result"),
24
+ errorCode: text("error_code"),
25
+ createdAt: datetime("created_at", {
26
+ mode: "string",
27
+ fsp: 3
28
+ }).notNull(),
29
+ startedAt: datetime("started_at", {
30
+ mode: "string",
31
+ fsp: 3
32
+ }),
33
+ finishedAt: datetime("finished_at", {
34
+ mode: "string",
35
+ fsp: 3
36
+ })
37
+ });
38
+ /** Narrow `ai_usage` table definition (provider-reported usage; survives build purge). */
39
+ const aiUsage = mysqlTable("ai_usage", {
40
+ id: text("id").primaryKey(),
41
+ insightId: text("insight_id"),
42
+ projectId: text("project_id").notNull().references(() => projects.id, { onDelete: "cascade" }),
43
+ profile: text("profile").notNull(),
44
+ task: text("task").notNull(),
45
+ model: text("model").notNull(),
46
+ inputTokens: int("input_tokens").notNull().default(0),
47
+ outputTokens: int("output_tokens").notNull().default(0),
48
+ estimated: boolean("estimated").notNull().default(false),
49
+ images: int("images").notNull().default(0),
50
+ status: text("status").notNull(),
51
+ createdAt: datetime("created_at", {
52
+ mode: "string",
53
+ fsp: 3
54
+ }).notNull()
55
+ });
56
+ /** Narrow `ai_budget_alerts` table definition (primary key `${day}:${threshold}` is the claim). */
57
+ const aiBudgetAlerts = mysqlTable("ai_budget_alerts", {
58
+ id: text("id").primaryKey(),
59
+ day: text("day").notNull(),
60
+ threshold: int("threshold").notNull(),
61
+ createdAt: datetime("created_at", {
62
+ mode: "string",
63
+ fsp: 3
64
+ }).notNull()
65
+ });
66
+ //#endregion
67
+ export { aiBudgetAlerts, aiUsage, insights };
68
+
69
+ //# sourceMappingURL=insight.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insight.mjs","names":[],"sources":["../../src/schema/insight.ts"],"sourcesContent":["import { boolean, int, mysqlTable, text } from \"drizzle-orm/mysql-core\";\nimport { builds } from \"./build.ts\";\nimport { datetime } from \"./datetime.ts\";\nimport { projects } from \"./project.ts\";\n\n/** Narrow `insights` table definition (build triage and project health results). */\nexport const insights = mysqlTable(\"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: datetime(\"created_at\", { mode: \"string\", fsp: 3 }).notNull(),\n startedAt: datetime(\"started_at\", { mode: \"string\", fsp: 3 }),\n finishedAt: datetime(\"finished_at\", { mode: \"string\", fsp: 3 }),\n});\n\n/** Narrow `ai_usage` table definition (provider-reported usage; survives build purge). */\nexport const aiUsage = mysqlTable(\"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: int(\"input_tokens\").notNull().default(0),\n outputTokens: int(\"output_tokens\").notNull().default(0),\n estimated: boolean(\"estimated\").notNull().default(false),\n images: int(\"images\").notNull().default(0),\n status: text(\"status\").notNull(),\n createdAt: datetime(\"created_at\", { mode: \"string\", fsp: 3 }).notNull(),\n});\n\n/** Narrow `ai_budget_alerts` table definition (primary key `${day}:${threshold}` is the claim). */\nexport const aiBudgetAlerts = mysqlTable(\"ai_budget_alerts\", {\n id: text(\"id\").primaryKey(),\n day: text(\"day\").notNull(),\n threshold: int(\"threshold\").notNull(),\n createdAt: datetime(\"created_at\", { mode: \"string\", fsp: 3 }).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":";;;;;;;;;AAMA,MAAa,WAAW,WAAW,YAAY;CAC7C,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,SAAS,cAAc;EAAE,MAAM;EAAU,KAAK;CAAE,CAAC,CAAC,CAAC,QAAQ;CACtE,WAAW,SAAS,cAAc;EAAE,MAAM;EAAU,KAAK;CAAE,CAAC;CAC5D,YAAY,SAAS,eAAe;EAAE,MAAM;EAAU,KAAK;CAAE,CAAC;AAChE,CAAC;;AAGD,MAAa,UAAU,WAAW,YAAY;CAC5C,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,IAAI,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;CACpD,cAAc,IAAI,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;CACtD,WAAW,QAAQ,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACvD,QAAQ,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;CACzC,QAAQ,KAAK,QAAQ,CAAC,CAAC,QAAQ;CAC/B,WAAW,SAAS,cAAc;EAAE,MAAM;EAAU,KAAK;CAAE,CAAC,CAAC,CAAC,QAAQ;AACxE,CAAC;;AAGD,MAAa,iBAAiB,WAAW,oBAAoB;CAC3D,IAAI,KAAK,IAAI,CAAC,CAAC,WAAW;CAC1B,KAAK,KAAK,KAAK,CAAC,CAAC,QAAQ;CACzB,WAAW,IAAI,WAAW,CAAC,CAAC,QAAQ;CACpC,WAAW,SAAS,cAAc;EAAE,MAAM;EAAU,KAAK;CAAE,CAAC,CAAC,CAAC,QAAQ;AACxE,CAAC"}