@storyshelf/db-sqlite 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 (68) hide show
  1. package/README.md +9 -9
  2. package/dist/better-sqlite3.mjs +14 -3
  3. package/dist/better-sqlite3.mjs.map +1 -1
  4. package/dist/bun-sqlite.mjs +14 -3
  5. package/dist/bun-sqlite.mjs.map +1 -1
  6. package/dist/d1.mjs +5 -3
  7. package/dist/d1.mjs.map +1 -1
  8. package/dist/ddl.d.mts +10 -2
  9. package/dist/ddl.mjs +226 -14
  10. package/dist/ddl.mjs.map +1 -1
  11. package/dist/ensure-db-dir.mjs +19 -0
  12. package/dist/ensure-db-dir.mjs.map +1 -0
  13. package/dist/index.mjs +9 -2
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/schema/baseline.d.mts +57 -0
  16. package/dist/schema/baseline.mjs +4 -1
  17. package/dist/schema/baseline.mjs.map +1 -1
  18. package/dist/schema/{status-config.d.mts → build-component.d.mts} +40 -33
  19. package/dist/schema/build-component.mjs +22 -0
  20. package/dist/schema/build-component.mjs.map +1 -0
  21. package/dist/schema/build-review.d.mts +129 -0
  22. package/dist/schema/build-review.mjs +20 -0
  23. package/dist/schema/build-review.mjs.map +1 -0
  24. package/dist/schema/build.d.mts +40 -2
  25. package/dist/schema/build.mjs +3 -0
  26. package/dist/schema/build.mjs.map +1 -1
  27. package/dist/schema/capture-job.d.mts +359 -0
  28. package/dist/schema/capture-job.mjs +38 -0
  29. package/dist/schema/capture-job.mjs.map +1 -0
  30. package/dist/schema/capture-shard.d.mts +281 -0
  31. package/dist/schema/capture-shard.mjs +28 -0
  32. package/dist/schema/capture-shard.mjs.map +1 -0
  33. package/dist/schema/comment.d.mts +20 -0
  34. package/dist/schema/comment.mjs +3 -2
  35. package/dist/schema/comment.mjs.map +1 -1
  36. package/dist/schema/connection.d.mts +191 -0
  37. package/dist/schema/connection.mjs +26 -0
  38. package/dist/schema/connection.mjs.map +1 -0
  39. package/dist/schema/design.d.mts +649 -0
  40. package/dist/schema/design.mjs +49 -0
  41. package/dist/schema/design.mjs.map +1 -0
  42. package/dist/schema/insight.d.mts +689 -0
  43. package/dist/schema/insight.mjs +53 -0
  44. package/dist/schema/insight.mjs.map +1 -0
  45. package/dist/schema/notification.d.mts +40 -0
  46. package/dist/schema/notification.mjs +2 -0
  47. package/dist/schema/notification.mjs.map +1 -1
  48. package/dist/schema/project.d.mts +132 -0
  49. package/dist/schema/project.mjs +8 -1
  50. package/dist/schema/project.mjs.map +1 -1
  51. package/dist/schema/site-setting.d.mts +109 -0
  52. package/dist/schema/site-setting.mjs +17 -0
  53. package/dist/schema/site-setting.mjs.map +1 -0
  54. package/dist/schema/snapshot.d.mts +118 -0
  55. package/dist/schema/snapshot.mjs +11 -1
  56. package/dist/schema/snapshot.mjs.map +1 -1
  57. package/dist/schema/usage.d.mts +293 -0
  58. package/dist/schema/usage.mjs +30 -0
  59. package/dist/schema/usage.mjs.map +1 -0
  60. package/dist/schema.d.mts +24 -3
  61. package/dist/schema.mjs +25 -4
  62. package/dist/schema.mjs.map +1 -1
  63. package/dist/turso.d.mts +2 -2
  64. package/dist/turso.mjs +19 -6
  65. package/dist/turso.mjs.map +1 -1
  66. package/package.json +5 -2
  67. package/dist/schema/status-config.mjs +0 -20
  68. package/dist/schema/status-config.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design.mjs","names":[],"sources":["../../src/schema/design.ts"],"sourcesContent":["import { index, sqliteTable, text, uniqueIndex } from \"drizzle-orm/sqlite-core\";\nimport { projects } from \"./project.ts\";\n\n/** Narrow `design_links` table definition. */\nexport const designLinks = sqliteTable(\n \"design_links\",\n {\n id: text(\"id\").primaryKey(),\n projectId: text(\"project_id\")\n .notNull()\n .references(() => projects.id, { onDelete: \"cascade\" }),\n importPath: text(\"import_path\"),\n label: text(\"label\"),\n url: text(\"url\").notNull(),\n createdAt: text(\"created_at\").notNull(),\n updatedAt: text(\"updated_at\").notNull(),\n },\n (t) => [\n index(\"design_links_project_id_idx\").on(t.projectId),\n // One mapping per story file; project-level links (null import_path) never collide.\n uniqueIndex(\"design_links_project_import_path_idx\").on(t.projectId, t.importPath),\n ],\n);\n\n/** Narrow `design_credentials` table definition: the project-wide design-provider token. */\nexport const designCredentials = sqliteTable(\n \"design_credentials\",\n {\n id: text(\"id\").primaryKey(),\n projectId: text(\"project_id\")\n .notNull()\n .references(() => projects.id, { onDelete: \"cascade\" }),\n provider: text(\"provider\").notNull(),\n tokenEncrypted: text(\"token_encrypted\").notNull(),\n status: text(\"status\").notNull().default(\"unknown\"),\n checkedAt: text(\"checked_at\"),\n createdAt: text(\"created_at\").notNull(),\n updatedAt: text(\"updated_at\").notNull(),\n },\n (t) => [uniqueIndex(\"design_credentials_project_provider_idx\").on(t.projectId, t.provider)],\n);\n\n/** Narrow `design_nodes` table definition (design metadata + render cache). */\nexport const designNodes = sqliteTable(\n \"design_nodes\",\n {\n id: text(\"id\").primaryKey(),\n projectId: text(\"project_id\")\n .notNull()\n .references(() => projects.id, { onDelete: \"cascade\" }),\n provider: text(\"provider\").notNull(),\n viewerId: text(\"viewer_id\").notNull().default(\"\"),\n fileKey: text(\"file_key\").notNull(),\n nodeId: text(\"node_id\").notNull().default(\"\"),\n name: text(\"name\"),\n version: text(\"version\"),\n lastModified: text(\"last_modified\"),\n state: text(\"state\").notNull().default(\"ok\"),\n renderPath: text(\"render_path\"),\n renderVersion: text(\"render_version\"),\n fetchedAt: text(\"fetched_at\").notNull(),\n createdAt: text(\"created_at\").notNull(),\n updatedAt: text(\"updated_at\").notNull(),\n },\n (t) => [\n uniqueIndex(\"design_nodes_project_file_node_idx\").on(\n t.projectId,\n t.provider,\n t.viewerId,\n t.fileKey,\n t.nodeId,\n ),\n ],\n);\n\n/** A design link: a project-level file link (`importPath` null) or a component mapping override. */\nexport interface DesignLink {\n id: string;\n projectId: string;\n /** Story file the URL is mapped to; null for a project-level design file link. */\n importPath: string | null;\n /** Display label of a project-level link. */\n label: string | null;\n url: string;\n createdAt: string;\n updatedAt: string;\n}\n\n/** The project-wide token of a design provider (an admin pastes it; encrypted at rest). */\nexport interface DesignCredential {\n id: string;\n projectId: string;\n /** Provider `metadata.kind`, e.g. `figma`. */\n provider: string;\n tokenEncrypted: string;\n /** Last API outcome: `unknown` | `ok` | `unauthorized` | `forbidden`. */\n status: string;\n checkedAt: string | null;\n /** When the credential was set or replaced; drives the rotation clock. */\n createdAt: string;\n updatedAt: string;\n}\n\n/** Cached design file/node metadata, keyed by project, provider, viewer, file key and node id. */\nexport interface DesignNode {\n id: string;\n projectId: string;\n provider: string;\n /** Whose access fetched the entry: `\"\"` for the project credential, else a user id. */\n viewerId: string;\n fileKey: string;\n /** Provider node id; empty string for a whole-file link. */\n nodeId: string;\n name: string | null;\n version: string | null;\n lastModified: string | null;\n /** `ok` | `deleted` | `unauthorized` | `forbidden`. */\n state: string;\n /** Storage path of the cached PNG render (node links only). */\n renderPath: string | null;\n /** File `version` the cached render was taken at. */\n renderVersion: string | null;\n fetchedAt: string;\n createdAt: string;\n updatedAt: string;\n}\n"],"mappings":";;;;;;;AAIA,MAAa,cAAc,YACzB,gBACA;CACE,IAAI,KAAK,IAAI,CAAC,CAAC,WAAW;CAC1B,WAAW,KAAK,YAAY,CAAC,CAC1B,QAAQ,CAAC,CACT,iBAAiB,SAAS,IAAI,EAAE,UAAU,UAAU,CAAC;CACxD,YAAY,KAAK,aAAa;CAC9B,OAAO,KAAK,OAAO;CACnB,KAAK,KAAK,KAAK,CAAC,CAAC,QAAQ;CACzB,WAAW,KAAK,YAAY,CAAC,CAAC,QAAQ;CACtC,WAAW,KAAK,YAAY,CAAC,CAAC,QAAQ;AACxC,IACC,MAAM,CACL,MAAM,6BAA6B,CAAC,CAAC,GAAG,EAAE,SAAS,GAEnD,YAAY,sCAAsC,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,CAClF,CACF;;AAGA,MAAa,oBAAoB,YAC/B,sBACA;CACE,IAAI,KAAK,IAAI,CAAC,CAAC,WAAW;CAC1B,WAAW,KAAK,YAAY,CAAC,CAC1B,QAAQ,CAAC,CACT,iBAAiB,SAAS,IAAI,EAAE,UAAU,UAAU,CAAC;CACxD,UAAU,KAAK,UAAU,CAAC,CAAC,QAAQ;CACnC,gBAAgB,KAAK,iBAAiB,CAAC,CAAC,QAAQ;CAChD,QAAQ,KAAK,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,SAAS;CAClD,WAAW,KAAK,YAAY;CAC5B,WAAW,KAAK,YAAY,CAAC,CAAC,QAAQ;CACtC,WAAW,KAAK,YAAY,CAAC,CAAC,QAAQ;AACxC,IACC,MAAM,CAAC,YAAY,yCAAyC,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAC5F;;AAGA,MAAa,cAAc,YACzB,gBACA;CACE,IAAI,KAAK,IAAI,CAAC,CAAC,WAAW;CAC1B,WAAW,KAAK,YAAY,CAAC,CAC1B,QAAQ,CAAC,CACT,iBAAiB,SAAS,IAAI,EAAE,UAAU,UAAU,CAAC;CACxD,UAAU,KAAK,UAAU,CAAC,CAAC,QAAQ;CACnC,UAAU,KAAK,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;CAChD,SAAS,KAAK,UAAU,CAAC,CAAC,QAAQ;CAClC,QAAQ,KAAK,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;CAC5C,MAAM,KAAK,MAAM;CACjB,SAAS,KAAK,SAAS;CACvB,cAAc,KAAK,eAAe;CAClC,OAAO,KAAK,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,IAAI;CAC3C,YAAY,KAAK,aAAa;CAC9B,eAAe,KAAK,gBAAgB;CACpC,WAAW,KAAK,YAAY,CAAC,CAAC,QAAQ;CACtC,WAAW,KAAK,YAAY,CAAC,CAAC,QAAQ;CACtC,WAAW,KAAK,YAAY,CAAC,CAAC,QAAQ;AACxC,IACC,MAAM,CACL,YAAY,oCAAoC,CAAC,CAAC,GAChD,EAAE,WACF,EAAE,UACF,EAAE,UACF,EAAE,SACF,EAAE,MACJ,CACF,CACF"}
@@ -0,0 +1,689 @@
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/sqlite-core").SQLiteTableWithColumns<{
6
+ name: "insights";
7
+ schema: undefined;
8
+ columns: {
9
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
10
+ name: "id";
11
+ tableName: "insights";
12
+ dataType: "string";
13
+ columnType: "SQLiteText";
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
+ length: number | undefined;
27
+ }>;
28
+ projectId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
29
+ name: "project_id";
30
+ tableName: "insights";
31
+ dataType: "string";
32
+ columnType: "SQLiteText";
33
+ data: string;
34
+ driverParam: string;
35
+ notNull: true;
36
+ hasDefault: false;
37
+ isPrimaryKey: false;
38
+ isAutoincrement: false;
39
+ hasRuntimeDefault: false;
40
+ enumValues: [string, ...string[]];
41
+ baseColumn: never;
42
+ identity: undefined;
43
+ generated: undefined;
44
+ }, {}, {
45
+ length: number | undefined;
46
+ }>;
47
+ buildId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
48
+ name: "build_id";
49
+ tableName: "insights";
50
+ dataType: "string";
51
+ columnType: "SQLiteText";
52
+ data: string;
53
+ driverParam: string;
54
+ notNull: false;
55
+ hasDefault: false;
56
+ isPrimaryKey: false;
57
+ isAutoincrement: false;
58
+ hasRuntimeDefault: false;
59
+ enumValues: [string, ...string[]];
60
+ baseColumn: never;
61
+ identity: undefined;
62
+ generated: undefined;
63
+ }, {}, {
64
+ length: number | undefined;
65
+ }>;
66
+ kind: import("drizzle-orm/sqlite-core").SQLiteColumn<{
67
+ name: "kind";
68
+ tableName: "insights";
69
+ dataType: "string";
70
+ columnType: "SQLiteText";
71
+ data: string;
72
+ driverParam: string;
73
+ notNull: true;
74
+ hasDefault: false;
75
+ isPrimaryKey: false;
76
+ isAutoincrement: false;
77
+ hasRuntimeDefault: false;
78
+ enumValues: [string, ...string[]];
79
+ baseColumn: never;
80
+ identity: undefined;
81
+ generated: undefined;
82
+ }, {}, {
83
+ length: number | undefined;
84
+ }>;
85
+ windowKey: import("drizzle-orm/sqlite-core").SQLiteColumn<{
86
+ name: "window_key";
87
+ tableName: "insights";
88
+ dataType: "string";
89
+ columnType: "SQLiteText";
90
+ data: string;
91
+ driverParam: string;
92
+ notNull: false;
93
+ hasDefault: false;
94
+ isPrimaryKey: false;
95
+ isAutoincrement: false;
96
+ hasRuntimeDefault: false;
97
+ enumValues: [string, ...string[]];
98
+ baseColumn: never;
99
+ identity: undefined;
100
+ generated: undefined;
101
+ }, {}, {
102
+ length: number | undefined;
103
+ }>;
104
+ inputHash: import("drizzle-orm/sqlite-core").SQLiteColumn<{
105
+ name: "input_hash";
106
+ tableName: "insights";
107
+ dataType: "string";
108
+ columnType: "SQLiteText";
109
+ data: string;
110
+ driverParam: string;
111
+ notNull: true;
112
+ hasDefault: false;
113
+ isPrimaryKey: false;
114
+ isAutoincrement: false;
115
+ hasRuntimeDefault: false;
116
+ enumValues: [string, ...string[]];
117
+ baseColumn: never;
118
+ identity: undefined;
119
+ generated: undefined;
120
+ }, {}, {
121
+ length: number | undefined;
122
+ }>;
123
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
124
+ name: "status";
125
+ tableName: "insights";
126
+ dataType: "string";
127
+ columnType: "SQLiteText";
128
+ data: string;
129
+ driverParam: string;
130
+ notNull: true;
131
+ hasDefault: false;
132
+ isPrimaryKey: false;
133
+ isAutoincrement: false;
134
+ hasRuntimeDefault: false;
135
+ enumValues: [string, ...string[]];
136
+ baseColumn: never;
137
+ identity: undefined;
138
+ generated: undefined;
139
+ }, {}, {
140
+ length: number | undefined;
141
+ }>;
142
+ profile: import("drizzle-orm/sqlite-core").SQLiteColumn<{
143
+ name: "profile";
144
+ tableName: "insights";
145
+ dataType: "string";
146
+ columnType: "SQLiteText";
147
+ data: string;
148
+ driverParam: string;
149
+ notNull: true;
150
+ hasDefault: false;
151
+ isPrimaryKey: false;
152
+ isAutoincrement: false;
153
+ hasRuntimeDefault: false;
154
+ enumValues: [string, ...string[]];
155
+ baseColumn: never;
156
+ identity: undefined;
157
+ generated: undefined;
158
+ }, {}, {
159
+ length: number | undefined;
160
+ }>;
161
+ model: import("drizzle-orm/sqlite-core").SQLiteColumn<{
162
+ name: "model";
163
+ tableName: "insights";
164
+ dataType: "string";
165
+ columnType: "SQLiteText";
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
+ length: number | undefined;
179
+ }>;
180
+ promptVersion: import("drizzle-orm/sqlite-core").SQLiteColumn<{
181
+ name: "prompt_version";
182
+ tableName: "insights";
183
+ dataType: "string";
184
+ columnType: "SQLiteText";
185
+ data: string;
186
+ driverParam: string;
187
+ notNull: true;
188
+ hasDefault: false;
189
+ isPrimaryKey: false;
190
+ isAutoincrement: false;
191
+ hasRuntimeDefault: false;
192
+ enumValues: [string, ...string[]];
193
+ baseColumn: never;
194
+ identity: undefined;
195
+ generated: undefined;
196
+ }, {}, {
197
+ length: number | undefined;
198
+ }>;
199
+ verdict: import("drizzle-orm/sqlite-core").SQLiteColumn<{
200
+ name: "verdict";
201
+ tableName: "insights";
202
+ dataType: "string";
203
+ columnType: "SQLiteText";
204
+ data: string;
205
+ driverParam: string;
206
+ notNull: false;
207
+ hasDefault: false;
208
+ isPrimaryKey: false;
209
+ isAutoincrement: false;
210
+ hasRuntimeDefault: false;
211
+ enumValues: [string, ...string[]];
212
+ baseColumn: never;
213
+ identity: undefined;
214
+ generated: undefined;
215
+ }, {}, {
216
+ length: number | undefined;
217
+ }>;
218
+ summary: import("drizzle-orm/sqlite-core").SQLiteColumn<{
219
+ name: "summary";
220
+ tableName: "insights";
221
+ dataType: "string";
222
+ columnType: "SQLiteText";
223
+ data: string;
224
+ driverParam: string;
225
+ notNull: false;
226
+ hasDefault: false;
227
+ isPrimaryKey: false;
228
+ isAutoincrement: false;
229
+ hasRuntimeDefault: false;
230
+ enumValues: [string, ...string[]];
231
+ baseColumn: never;
232
+ identity: undefined;
233
+ generated: undefined;
234
+ }, {}, {
235
+ length: number | undefined;
236
+ }>;
237
+ result: import("drizzle-orm/sqlite-core").SQLiteColumn<{
238
+ name: "result";
239
+ tableName: "insights";
240
+ dataType: "string";
241
+ columnType: "SQLiteText";
242
+ data: string;
243
+ driverParam: string;
244
+ notNull: false;
245
+ hasDefault: false;
246
+ isPrimaryKey: false;
247
+ isAutoincrement: false;
248
+ hasRuntimeDefault: false;
249
+ enumValues: [string, ...string[]];
250
+ baseColumn: never;
251
+ identity: undefined;
252
+ generated: undefined;
253
+ }, {}, {
254
+ length: number | undefined;
255
+ }>;
256
+ errorCode: import("drizzle-orm/sqlite-core").SQLiteColumn<{
257
+ name: "error_code";
258
+ tableName: "insights";
259
+ dataType: "string";
260
+ columnType: "SQLiteText";
261
+ data: string;
262
+ driverParam: string;
263
+ notNull: false;
264
+ hasDefault: false;
265
+ isPrimaryKey: false;
266
+ isAutoincrement: false;
267
+ hasRuntimeDefault: false;
268
+ enumValues: [string, ...string[]];
269
+ baseColumn: never;
270
+ identity: undefined;
271
+ generated: undefined;
272
+ }, {}, {
273
+ length: number | undefined;
274
+ }>;
275
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
276
+ name: "created_at";
277
+ tableName: "insights";
278
+ dataType: "string";
279
+ columnType: "SQLiteText";
280
+ data: string;
281
+ driverParam: string;
282
+ notNull: true;
283
+ hasDefault: false;
284
+ isPrimaryKey: false;
285
+ isAutoincrement: false;
286
+ hasRuntimeDefault: false;
287
+ enumValues: [string, ...string[]];
288
+ baseColumn: never;
289
+ identity: undefined;
290
+ generated: undefined;
291
+ }, {}, {
292
+ length: number | undefined;
293
+ }>;
294
+ startedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
295
+ name: "started_at";
296
+ tableName: "insights";
297
+ dataType: "string";
298
+ columnType: "SQLiteText";
299
+ data: string;
300
+ driverParam: string;
301
+ notNull: false;
302
+ hasDefault: false;
303
+ isPrimaryKey: false;
304
+ isAutoincrement: false;
305
+ hasRuntimeDefault: false;
306
+ enumValues: [string, ...string[]];
307
+ baseColumn: never;
308
+ identity: undefined;
309
+ generated: undefined;
310
+ }, {}, {
311
+ length: number | undefined;
312
+ }>;
313
+ finishedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
314
+ name: "finished_at";
315
+ tableName: "insights";
316
+ dataType: "string";
317
+ columnType: "SQLiteText";
318
+ data: string;
319
+ driverParam: string;
320
+ notNull: false;
321
+ hasDefault: false;
322
+ isPrimaryKey: false;
323
+ isAutoincrement: false;
324
+ hasRuntimeDefault: false;
325
+ enumValues: [string, ...string[]];
326
+ baseColumn: never;
327
+ identity: undefined;
328
+ generated: undefined;
329
+ }, {}, {
330
+ length: number | undefined;
331
+ }>;
332
+ };
333
+ dialect: 'sqlite';
334
+ }>;
335
+ /** Narrow `ai_usage` table definition (provider-reported usage; survives build purge). */
336
+ declare const aiUsage: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
337
+ name: "ai_usage";
338
+ schema: undefined;
339
+ columns: {
340
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
341
+ name: "id";
342
+ tableName: "ai_usage";
343
+ dataType: "string";
344
+ columnType: "SQLiteText";
345
+ data: string;
346
+ driverParam: string;
347
+ notNull: true;
348
+ hasDefault: false;
349
+ isPrimaryKey: true;
350
+ isAutoincrement: false;
351
+ hasRuntimeDefault: false;
352
+ enumValues: [string, ...string[]];
353
+ baseColumn: never;
354
+ identity: undefined;
355
+ generated: undefined;
356
+ }, {}, {
357
+ length: number | undefined;
358
+ }>;
359
+ insightId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
360
+ name: "insight_id";
361
+ tableName: "ai_usage";
362
+ dataType: "string";
363
+ columnType: "SQLiteText";
364
+ data: string;
365
+ driverParam: string;
366
+ notNull: false;
367
+ hasDefault: false;
368
+ isPrimaryKey: false;
369
+ isAutoincrement: false;
370
+ hasRuntimeDefault: false;
371
+ enumValues: [string, ...string[]];
372
+ baseColumn: never;
373
+ identity: undefined;
374
+ generated: undefined;
375
+ }, {}, {
376
+ length: number | undefined;
377
+ }>;
378
+ projectId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
379
+ name: "project_id";
380
+ tableName: "ai_usage";
381
+ dataType: "string";
382
+ columnType: "SQLiteText";
383
+ data: string;
384
+ driverParam: string;
385
+ notNull: true;
386
+ hasDefault: false;
387
+ isPrimaryKey: false;
388
+ isAutoincrement: false;
389
+ hasRuntimeDefault: false;
390
+ enumValues: [string, ...string[]];
391
+ baseColumn: never;
392
+ identity: undefined;
393
+ generated: undefined;
394
+ }, {}, {
395
+ length: number | undefined;
396
+ }>;
397
+ profile: import("drizzle-orm/sqlite-core").SQLiteColumn<{
398
+ name: "profile";
399
+ tableName: "ai_usage";
400
+ dataType: "string";
401
+ columnType: "SQLiteText";
402
+ data: string;
403
+ driverParam: string;
404
+ notNull: true;
405
+ hasDefault: false;
406
+ isPrimaryKey: false;
407
+ isAutoincrement: false;
408
+ hasRuntimeDefault: false;
409
+ enumValues: [string, ...string[]];
410
+ baseColumn: never;
411
+ identity: undefined;
412
+ generated: undefined;
413
+ }, {}, {
414
+ length: number | undefined;
415
+ }>;
416
+ task: import("drizzle-orm/sqlite-core").SQLiteColumn<{
417
+ name: "task";
418
+ tableName: "ai_usage";
419
+ dataType: "string";
420
+ columnType: "SQLiteText";
421
+ data: string;
422
+ driverParam: string;
423
+ notNull: true;
424
+ hasDefault: false;
425
+ isPrimaryKey: false;
426
+ isAutoincrement: false;
427
+ hasRuntimeDefault: false;
428
+ enumValues: [string, ...string[]];
429
+ baseColumn: never;
430
+ identity: undefined;
431
+ generated: undefined;
432
+ }, {}, {
433
+ length: number | undefined;
434
+ }>;
435
+ model: import("drizzle-orm/sqlite-core").SQLiteColumn<{
436
+ name: "model";
437
+ tableName: "ai_usage";
438
+ dataType: "string";
439
+ columnType: "SQLiteText";
440
+ data: string;
441
+ driverParam: string;
442
+ notNull: true;
443
+ hasDefault: false;
444
+ isPrimaryKey: false;
445
+ isAutoincrement: false;
446
+ hasRuntimeDefault: false;
447
+ enumValues: [string, ...string[]];
448
+ baseColumn: never;
449
+ identity: undefined;
450
+ generated: undefined;
451
+ }, {}, {
452
+ length: number | undefined;
453
+ }>;
454
+ inputTokens: import("drizzle-orm/sqlite-core").SQLiteColumn<{
455
+ name: "input_tokens";
456
+ tableName: "ai_usage";
457
+ dataType: "number";
458
+ columnType: "SQLiteInteger";
459
+ data: number;
460
+ driverParam: number;
461
+ notNull: true;
462
+ hasDefault: true;
463
+ isPrimaryKey: false;
464
+ isAutoincrement: false;
465
+ hasRuntimeDefault: false;
466
+ enumValues: undefined;
467
+ baseColumn: never;
468
+ identity: undefined;
469
+ generated: undefined;
470
+ }, {}, {}>;
471
+ outputTokens: import("drizzle-orm/sqlite-core").SQLiteColumn<{
472
+ name: "output_tokens";
473
+ tableName: "ai_usage";
474
+ dataType: "number";
475
+ columnType: "SQLiteInteger";
476
+ data: number;
477
+ driverParam: number;
478
+ notNull: true;
479
+ hasDefault: true;
480
+ isPrimaryKey: false;
481
+ isAutoincrement: false;
482
+ hasRuntimeDefault: false;
483
+ enumValues: undefined;
484
+ baseColumn: never;
485
+ identity: undefined;
486
+ generated: undefined;
487
+ }, {}, {}>;
488
+ estimated: import("drizzle-orm/sqlite-core").SQLiteColumn<{
489
+ name: "estimated";
490
+ tableName: "ai_usage";
491
+ dataType: "boolean";
492
+ columnType: "SQLiteBoolean";
493
+ data: boolean;
494
+ driverParam: number;
495
+ notNull: true;
496
+ hasDefault: true;
497
+ isPrimaryKey: false;
498
+ isAutoincrement: false;
499
+ hasRuntimeDefault: false;
500
+ enumValues: undefined;
501
+ baseColumn: never;
502
+ identity: undefined;
503
+ generated: undefined;
504
+ }, {}, {}>;
505
+ images: import("drizzle-orm/sqlite-core").SQLiteColumn<{
506
+ name: "images";
507
+ tableName: "ai_usage";
508
+ dataType: "number";
509
+ columnType: "SQLiteInteger";
510
+ data: number;
511
+ driverParam: number;
512
+ notNull: true;
513
+ hasDefault: true;
514
+ isPrimaryKey: false;
515
+ isAutoincrement: false;
516
+ hasRuntimeDefault: false;
517
+ enumValues: undefined;
518
+ baseColumn: never;
519
+ identity: undefined;
520
+ generated: undefined;
521
+ }, {}, {}>;
522
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
523
+ name: "status";
524
+ tableName: "ai_usage";
525
+ dataType: "string";
526
+ columnType: "SQLiteText";
527
+ data: string;
528
+ driverParam: string;
529
+ notNull: true;
530
+ hasDefault: false;
531
+ isPrimaryKey: false;
532
+ isAutoincrement: false;
533
+ hasRuntimeDefault: false;
534
+ enumValues: [string, ...string[]];
535
+ baseColumn: never;
536
+ identity: undefined;
537
+ generated: undefined;
538
+ }, {}, {
539
+ length: number | undefined;
540
+ }>;
541
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
542
+ name: "created_at";
543
+ tableName: "ai_usage";
544
+ dataType: "string";
545
+ columnType: "SQLiteText";
546
+ data: string;
547
+ driverParam: string;
548
+ notNull: true;
549
+ hasDefault: false;
550
+ isPrimaryKey: false;
551
+ isAutoincrement: false;
552
+ hasRuntimeDefault: false;
553
+ enumValues: [string, ...string[]];
554
+ baseColumn: never;
555
+ identity: undefined;
556
+ generated: undefined;
557
+ }, {}, {
558
+ length: number | undefined;
559
+ }>;
560
+ };
561
+ dialect: 'sqlite';
562
+ }>;
563
+ /** Narrow `ai_budget_alerts` table definition (primary key `${day}:${threshold}` is the claim). */
564
+ declare const aiBudgetAlerts: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
565
+ name: "ai_budget_alerts";
566
+ schema: undefined;
567
+ columns: {
568
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
569
+ name: "id";
570
+ tableName: "ai_budget_alerts";
571
+ dataType: "string";
572
+ columnType: "SQLiteText";
573
+ data: string;
574
+ driverParam: string;
575
+ notNull: true;
576
+ hasDefault: false;
577
+ isPrimaryKey: true;
578
+ isAutoincrement: false;
579
+ hasRuntimeDefault: false;
580
+ enumValues: [string, ...string[]];
581
+ baseColumn: never;
582
+ identity: undefined;
583
+ generated: undefined;
584
+ }, {}, {
585
+ length: number | undefined;
586
+ }>;
587
+ day: import("drizzle-orm/sqlite-core").SQLiteColumn<{
588
+ name: "day";
589
+ tableName: "ai_budget_alerts";
590
+ dataType: "string";
591
+ columnType: "SQLiteText";
592
+ data: string;
593
+ driverParam: string;
594
+ notNull: true;
595
+ hasDefault: false;
596
+ isPrimaryKey: false;
597
+ isAutoincrement: false;
598
+ hasRuntimeDefault: false;
599
+ enumValues: [string, ...string[]];
600
+ baseColumn: never;
601
+ identity: undefined;
602
+ generated: undefined;
603
+ }, {}, {
604
+ length: number | undefined;
605
+ }>;
606
+ threshold: import("drizzle-orm/sqlite-core").SQLiteColumn<{
607
+ name: "threshold";
608
+ tableName: "ai_budget_alerts";
609
+ dataType: "number";
610
+ columnType: "SQLiteInteger";
611
+ data: number;
612
+ driverParam: number;
613
+ notNull: true;
614
+ hasDefault: false;
615
+ isPrimaryKey: false;
616
+ isAutoincrement: false;
617
+ hasRuntimeDefault: false;
618
+ enumValues: undefined;
619
+ baseColumn: never;
620
+ identity: undefined;
621
+ generated: undefined;
622
+ }, {}, {}>;
623
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
624
+ name: "created_at";
625
+ tableName: "ai_budget_alerts";
626
+ dataType: "string";
627
+ columnType: "SQLiteText";
628
+ data: string;
629
+ driverParam: string;
630
+ notNull: true;
631
+ hasDefault: false;
632
+ isPrimaryKey: false;
633
+ isAutoincrement: false;
634
+ hasRuntimeDefault: false;
635
+ enumValues: [string, ...string[]];
636
+ baseColumn: never;
637
+ identity: undefined;
638
+ generated: undefined;
639
+ }, {}, {
640
+ length: number | undefined;
641
+ }>;
642
+ };
643
+ dialect: 'sqlite';
644
+ }>;
645
+ /** An insight row. */
646
+ interface Insight {
647
+ id: string;
648
+ projectId: string;
649
+ buildId: string | null;
650
+ kind: string;
651
+ windowKey: string | null;
652
+ inputHash: string;
653
+ status: string;
654
+ profile: string;
655
+ model: string;
656
+ promptVersion: string;
657
+ verdict: string | null;
658
+ summary: string | null;
659
+ result: string | null;
660
+ errorCode: string | null;
661
+ createdAt: string;
662
+ startedAt: string | null;
663
+ finishedAt: string | null;
664
+ }
665
+ /** An AI usage row. */
666
+ interface AiUsage {
667
+ id: string;
668
+ insightId: string | null;
669
+ projectId: string;
670
+ profile: string;
671
+ task: string;
672
+ model: string;
673
+ inputTokens: number;
674
+ outputTokens: number;
675
+ estimated: boolean;
676
+ images: number;
677
+ status: string;
678
+ createdAt: string;
679
+ }
680
+ /** A budget-threshold alert claim row. */
681
+ interface AiBudgetAlert {
682
+ id: string;
683
+ day: string;
684
+ threshold: number;
685
+ createdAt: string;
686
+ }
687
+ //#endregion
688
+ export { AiBudgetAlert, AiUsage, Insight, aiBudgetAlerts, aiUsage, insights };
689
+ //# sourceMappingURL=insight.d.mts.map