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