@minion-stack/db 0.3.1 → 0.6.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 (135) hide show
  1. package/dist/crypto.d.ts +19 -0
  2. package/dist/crypto.d.ts.map +1 -0
  3. package/dist/crypto.js +65 -0
  4. package/dist/crypto.js.map +1 -0
  5. package/dist/crypto.test.d.ts +2 -0
  6. package/dist/crypto.test.d.ts.map +1 -0
  7. package/dist/crypto.test.js +23 -0
  8. package/dist/crypto.test.js.map +1 -0
  9. package/dist/pg/crypto.d.ts +1 -7
  10. package/dist/pg/crypto.d.ts.map +1 -1
  11. package/dist/pg/crypto.js +4 -41
  12. package/dist/pg/crypto.js.map +1 -1
  13. package/dist/pg/schema/agent-groups.d.ts +169 -0
  14. package/dist/pg/schema/agent-groups.d.ts.map +1 -0
  15. package/dist/pg/schema/agent-groups.js +21 -0
  16. package/dist/pg/schema/agent-groups.js.map +1 -0
  17. package/dist/pg/schema/builder.d.ts +1432 -0
  18. package/dist/pg/schema/builder.d.ts.map +1 -0
  19. package/dist/pg/schema/builder.js +160 -0
  20. package/dist/pg/schema/builder.js.map +1 -0
  21. package/dist/pg/schema/channels.d.ts +441 -0
  22. package/dist/pg/schema/channels.d.ts.map +1 -0
  23. package/dist/pg/schema/channels.js +62 -0
  24. package/dist/pg/schema/channels.js.map +1 -0
  25. package/dist/pg/schema/chat-messages.d.ts +184 -0
  26. package/dist/pg/schema/chat-messages.d.ts.map +1 -0
  27. package/dist/pg/schema/chat-messages.js +26 -0
  28. package/dist/pg/schema/chat-messages.js.map +1 -0
  29. package/dist/pg/schema/device-identities.d.ts +111 -0
  30. package/dist/pg/schema/device-identities.d.ts.map +1 -0
  31. package/dist/pg/schema/device-identities.js +11 -0
  32. package/dist/pg/schema/device-identities.js.map +1 -0
  33. package/dist/pg/schema/files.d.ts +162 -0
  34. package/dist/pg/schema/files.d.ts.map +1 -0
  35. package/dist/pg/schema/files.js +15 -0
  36. package/dist/pg/schema/files.js.map +1 -0
  37. package/dist/pg/schema/index.d.ts +19 -0
  38. package/dist/pg/schema/index.d.ts.map +1 -1
  39. package/dist/pg/schema/index.js +20 -0
  40. package/dist/pg/schema/index.js.map +1 -1
  41. package/dist/pg/schema/marketplace.d.ts +459 -0
  42. package/dist/pg/schema/marketplace.d.ts.map +1 -0
  43. package/dist/pg/schema/marketplace.js +42 -0
  44. package/dist/pg/schema/marketplace.js.map +1 -0
  45. package/dist/pg/schema/messages.d.ts +391 -0
  46. package/dist/pg/schema/messages.d.ts.map +1 -0
  47. package/dist/pg/schema/messages.js +44 -0
  48. package/dist/pg/schema/messages.js.map +1 -0
  49. package/dist/pg/schema/missions.d.ts +361 -0
  50. package/dist/pg/schema/missions.d.ts.map +1 -0
  51. package/dist/pg/schema/missions.js +48 -0
  52. package/dist/pg/schema/missions.js.map +1 -0
  53. package/dist/pg/schema/personal-agents.d.ts +285 -0
  54. package/dist/pg/schema/personal-agents.d.ts.map +1 -0
  55. package/dist/pg/schema/personal-agents.js +40 -0
  56. package/dist/pg/schema/personal-agents.js.map +1 -0
  57. package/dist/pg/schema/profiles.d.ts +17 -0
  58. package/dist/pg/schema/profiles.d.ts.map +1 -1
  59. package/dist/pg/schema/profiles.js +2 -0
  60. package/dist/pg/schema/profiles.js.map +1 -1
  61. package/dist/pg/schema/server-ops.d.ts +836 -0
  62. package/dist/pg/schema/server-ops.d.ts.map +1 -0
  63. package/dist/pg/schema/server-ops.js +88 -0
  64. package/dist/pg/schema/server-ops.js.map +1 -0
  65. package/dist/pg/schema/sessions.d.ts +395 -0
  66. package/dist/pg/schema/sessions.d.ts.map +1 -0
  67. package/dist/pg/schema/sessions.js +50 -0
  68. package/dist/pg/schema/sessions.js.map +1 -0
  69. package/dist/pg/schema/settings.d.ts +111 -0
  70. package/dist/pg/schema/settings.d.ts.map +1 -0
  71. package/dist/pg/schema/settings.js +17 -0
  72. package/dist/pg/schema/settings.js.map +1 -0
  73. package/dist/pg/schema/skills.d.ts +395 -0
  74. package/dist/pg/schema/skills.d.ts.map +1 -0
  75. package/dist/pg/schema/skills.js +45 -0
  76. package/dist/pg/schema/skills.js.map +1 -0
  77. package/dist/pg/schema/user-agents.d.ts +80 -0
  78. package/dist/pg/schema/user-agents.d.ts.map +1 -0
  79. package/dist/pg/schema/user-agents.js +21 -0
  80. package/dist/pg/schema/user-agents.js.map +1 -0
  81. package/dist/pg/schema/user-identities.d.ts +1 -1
  82. package/dist/pg/schema/user-preferences.d.ts +97 -0
  83. package/dist/pg/schema/user-preferences.d.ts.map +1 -0
  84. package/dist/pg/schema/user-preferences.js +19 -0
  85. package/dist/pg/schema/user-preferences.js.map +1 -0
  86. package/dist/pg/schema/workshop-saves.d.ts +145 -0
  87. package/dist/pg/schema/workshop-saves.d.ts.map +1 -0
  88. package/dist/pg/schema/workshop-saves.js +13 -0
  89. package/dist/pg/schema/workshop-saves.js.map +1 -0
  90. package/dist/pg/schema/workspace-membership.d.ts +83 -0
  91. package/dist/pg/schema/workspace-membership.d.ts.map +1 -0
  92. package/dist/pg/schema/workspace-membership.js +19 -0
  93. package/dist/pg/schema/workspace-membership.js.map +1 -0
  94. package/dist/schema/flows.d.ts +36 -0
  95. package/dist/schema/flows.d.ts.map +1 -1
  96. package/dist/schema/flows.js +2 -0
  97. package/dist/schema/flows.js.map +1 -1
  98. package/dist/schema/index.d.ts +2 -0
  99. package/dist/schema/index.d.ts.map +1 -1
  100. package/dist/schema/index.js +1 -0
  101. package/dist/schema/index.js.map +1 -1
  102. package/dist/schema/join-requests.d.ts +188 -0
  103. package/dist/schema/join-requests.d.ts.map +1 -0
  104. package/dist/schema/join-requests.js +35 -0
  105. package/dist/schema/join-requests.js.map +1 -0
  106. package/dist/schema/personal-agents.d.ts +1 -1
  107. package/dist/schema/reliability-events.d.ts +1 -1
  108. package/dist/schema/skill-execution-stats.d.ts +1 -1
  109. package/package.json +15 -12
  110. package/src/crypto.test.ts +33 -0
  111. package/src/crypto.ts +73 -0
  112. package/src/pg/crypto.ts +4 -44
  113. package/src/pg/schema/agent-groups.ts +30 -0
  114. package/src/pg/schema/builder.ts +205 -0
  115. package/src/pg/schema/channels.ts +77 -0
  116. package/src/pg/schema/chat-messages.ts +30 -0
  117. package/src/pg/schema/device-identities.ts +11 -0
  118. package/src/pg/schema/files.ts +19 -0
  119. package/src/pg/schema/index.ts +36 -0
  120. package/src/pg/schema/marketplace.ts +47 -0
  121. package/src/pg/schema/messages.ts +48 -0
  122. package/src/pg/schema/missions.ts +58 -0
  123. package/src/pg/schema/personal-agents.ts +44 -0
  124. package/src/pg/schema/profiles.ts +2 -0
  125. package/src/pg/schema/server-ops.ts +126 -0
  126. package/src/pg/schema/sessions.ts +60 -0
  127. package/src/pg/schema/settings.ts +21 -0
  128. package/src/pg/schema/skills.ts +65 -0
  129. package/src/pg/schema/user-agents.ts +25 -0
  130. package/src/pg/schema/user-preferences.ts +23 -0
  131. package/src/pg/schema/workshop-saves.ts +13 -0
  132. package/src/pg/schema/workspace-membership.ts +26 -0
  133. package/src/schema/flows.ts +2 -0
  134. package/src/schema/index.ts +2 -0
  135. package/src/schema/join-requests.ts +42 -0
@@ -0,0 +1,285 @@
1
+ /**
2
+ * Per-user personal agent. Mirrors Turso `personal_agents`.
3
+ * FK remap on migration: user_id → profile_id (profiles.id),
4
+ * server_id → gateway_id (gateway.id, matched via gateway.legacy_server_id).
5
+ */
6
+ export declare const personalAgents: import("drizzle-orm/pg-core").PgTableWithColumns<{
7
+ name: "personal_agents";
8
+ schema: undefined;
9
+ columns: {
10
+ id: import("drizzle-orm/pg-core").PgColumn<{
11
+ name: "id";
12
+ tableName: "personal_agents";
13
+ dataType: "string";
14
+ columnType: "PgText";
15
+ data: string;
16
+ driverParam: string;
17
+ notNull: true;
18
+ hasDefault: false;
19
+ isPrimaryKey: true;
20
+ isAutoincrement: false;
21
+ hasRuntimeDefault: false;
22
+ enumValues: [string, ...string[]];
23
+ baseColumn: never;
24
+ identity: undefined;
25
+ generated: undefined;
26
+ }, {}, {}>;
27
+ profileId: import("drizzle-orm/pg-core").PgColumn<{
28
+ name: "profile_id";
29
+ tableName: "personal_agents";
30
+ dataType: "string";
31
+ columnType: "PgUUID";
32
+ data: string;
33
+ driverParam: string;
34
+ notNull: true;
35
+ hasDefault: false;
36
+ isPrimaryKey: false;
37
+ isAutoincrement: false;
38
+ hasRuntimeDefault: false;
39
+ enumValues: undefined;
40
+ baseColumn: never;
41
+ identity: undefined;
42
+ generated: undefined;
43
+ }, {}, {}>;
44
+ agentId: import("drizzle-orm/pg-core").PgColumn<{
45
+ name: "agent_id";
46
+ tableName: "personal_agents";
47
+ dataType: "string";
48
+ columnType: "PgText";
49
+ data: string;
50
+ driverParam: string;
51
+ notNull: true;
52
+ hasDefault: false;
53
+ isPrimaryKey: false;
54
+ isAutoincrement: false;
55
+ hasRuntimeDefault: false;
56
+ enumValues: [string, ...string[]];
57
+ baseColumn: never;
58
+ identity: undefined;
59
+ generated: undefined;
60
+ }, {}, {}>;
61
+ gatewayId: import("drizzle-orm/pg-core").PgColumn<{
62
+ name: "gateway_id";
63
+ tableName: "personal_agents";
64
+ dataType: "string";
65
+ columnType: "PgUUID";
66
+ data: string;
67
+ driverParam: string;
68
+ notNull: false;
69
+ hasDefault: false;
70
+ isPrimaryKey: false;
71
+ isAutoincrement: false;
72
+ hasRuntimeDefault: false;
73
+ enumValues: undefined;
74
+ baseColumn: never;
75
+ identity: undefined;
76
+ generated: undefined;
77
+ }, {}, {}>;
78
+ displayName: import("drizzle-orm/pg-core").PgColumn<{
79
+ name: "display_name";
80
+ tableName: "personal_agents";
81
+ dataType: "string";
82
+ columnType: "PgText";
83
+ data: string;
84
+ driverParam: string;
85
+ notNull: true;
86
+ hasDefault: false;
87
+ isPrimaryKey: false;
88
+ isAutoincrement: false;
89
+ hasRuntimeDefault: false;
90
+ enumValues: [string, ...string[]];
91
+ baseColumn: never;
92
+ identity: undefined;
93
+ generated: undefined;
94
+ }, {}, {}>;
95
+ conversationName: import("drizzle-orm/pg-core").PgColumn<{
96
+ name: "conversation_name";
97
+ tableName: "personal_agents";
98
+ dataType: "string";
99
+ columnType: "PgText";
100
+ data: string;
101
+ driverParam: string;
102
+ notNull: false;
103
+ hasDefault: false;
104
+ isPrimaryKey: false;
105
+ isAutoincrement: false;
106
+ hasRuntimeDefault: false;
107
+ enumValues: [string, ...string[]];
108
+ baseColumn: never;
109
+ identity: undefined;
110
+ generated: undefined;
111
+ }, {}, {}>;
112
+ avatarUrl: import("drizzle-orm/pg-core").PgColumn<{
113
+ name: "avatar_url";
114
+ tableName: "personal_agents";
115
+ dataType: "string";
116
+ columnType: "PgText";
117
+ data: string;
118
+ driverParam: string;
119
+ notNull: false;
120
+ hasDefault: false;
121
+ isPrimaryKey: false;
122
+ isAutoincrement: false;
123
+ hasRuntimeDefault: false;
124
+ enumValues: [string, ...string[]];
125
+ baseColumn: never;
126
+ identity: undefined;
127
+ generated: undefined;
128
+ }, {}, {}>;
129
+ personalityPreset: import("drizzle-orm/pg-core").PgColumn<{
130
+ name: "personality_preset";
131
+ tableName: "personal_agents";
132
+ dataType: "string";
133
+ columnType: "PgText";
134
+ data: "professional" | "casual" | "creative" | "technical";
135
+ driverParam: string;
136
+ notNull: false;
137
+ hasDefault: false;
138
+ isPrimaryKey: false;
139
+ isAutoincrement: false;
140
+ hasRuntimeDefault: false;
141
+ enumValues: ["professional", "casual", "creative", "technical"];
142
+ baseColumn: never;
143
+ identity: undefined;
144
+ generated: undefined;
145
+ }, {}, {}>;
146
+ personalityText: import("drizzle-orm/pg-core").PgColumn<{
147
+ name: "personality_text";
148
+ tableName: "personal_agents";
149
+ dataType: "string";
150
+ columnType: "PgText";
151
+ data: string;
152
+ driverParam: string;
153
+ notNull: false;
154
+ hasDefault: false;
155
+ isPrimaryKey: false;
156
+ isAutoincrement: false;
157
+ hasRuntimeDefault: false;
158
+ enumValues: [string, ...string[]];
159
+ baseColumn: never;
160
+ identity: undefined;
161
+ generated: undefined;
162
+ }, {}, {}>;
163
+ personalityConfigured: import("drizzle-orm/pg-core").PgColumn<{
164
+ name: "personality_configured";
165
+ tableName: "personal_agents";
166
+ dataType: "boolean";
167
+ columnType: "PgBoolean";
168
+ data: boolean;
169
+ driverParam: boolean;
170
+ notNull: true;
171
+ hasDefault: true;
172
+ isPrimaryKey: false;
173
+ isAutoincrement: false;
174
+ hasRuntimeDefault: false;
175
+ enumValues: undefined;
176
+ baseColumn: never;
177
+ identity: undefined;
178
+ generated: undefined;
179
+ }, {}, {}>;
180
+ provisioningStatus: import("drizzle-orm/pg-core").PgColumn<{
181
+ name: "provisioning_status";
182
+ tableName: "personal_agents";
183
+ dataType: "string";
184
+ columnType: "PgText";
185
+ data: "active" | "error" | "pending" | "provisioning";
186
+ driverParam: string;
187
+ notNull: true;
188
+ hasDefault: true;
189
+ isPrimaryKey: false;
190
+ isAutoincrement: false;
191
+ hasRuntimeDefault: false;
192
+ enumValues: ["pending", "provisioning", "active", "error"];
193
+ baseColumn: never;
194
+ identity: undefined;
195
+ generated: undefined;
196
+ }, {}, {}>;
197
+ provisioningError: import("drizzle-orm/pg-core").PgColumn<{
198
+ name: "provisioning_error";
199
+ tableName: "personal_agents";
200
+ dataType: "string";
201
+ columnType: "PgText";
202
+ data: string;
203
+ driverParam: string;
204
+ notNull: false;
205
+ hasDefault: false;
206
+ isPrimaryKey: false;
207
+ isAutoincrement: false;
208
+ hasRuntimeDefault: false;
209
+ enumValues: [string, ...string[]];
210
+ baseColumn: never;
211
+ identity: undefined;
212
+ generated: undefined;
213
+ }, {}, {}>;
214
+ lastRetryAt: import("drizzle-orm/pg-core").PgColumn<{
215
+ name: "last_retry_at";
216
+ tableName: "personal_agents";
217
+ dataType: "date";
218
+ columnType: "PgTimestamp";
219
+ data: Date;
220
+ driverParam: string;
221
+ notNull: false;
222
+ hasDefault: false;
223
+ isPrimaryKey: false;
224
+ isAutoincrement: false;
225
+ hasRuntimeDefault: false;
226
+ enumValues: undefined;
227
+ baseColumn: never;
228
+ identity: undefined;
229
+ generated: undefined;
230
+ }, {}, {}>;
231
+ retryCount: import("drizzle-orm/pg-core").PgColumn<{
232
+ name: "retry_count";
233
+ tableName: "personal_agents";
234
+ dataType: "number";
235
+ columnType: "PgInteger";
236
+ data: number;
237
+ driverParam: string | number;
238
+ notNull: true;
239
+ hasDefault: true;
240
+ isPrimaryKey: false;
241
+ isAutoincrement: false;
242
+ hasRuntimeDefault: false;
243
+ enumValues: undefined;
244
+ baseColumn: never;
245
+ identity: undefined;
246
+ generated: undefined;
247
+ }, {}, {}>;
248
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
249
+ name: "created_at";
250
+ tableName: "personal_agents";
251
+ dataType: "date";
252
+ columnType: "PgTimestamp";
253
+ data: Date;
254
+ driverParam: string;
255
+ notNull: true;
256
+ hasDefault: true;
257
+ isPrimaryKey: false;
258
+ isAutoincrement: false;
259
+ hasRuntimeDefault: false;
260
+ enumValues: undefined;
261
+ baseColumn: never;
262
+ identity: undefined;
263
+ generated: undefined;
264
+ }, {}, {}>;
265
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
266
+ name: "updated_at";
267
+ tableName: "personal_agents";
268
+ dataType: "date";
269
+ columnType: "PgTimestamp";
270
+ data: Date;
271
+ driverParam: string;
272
+ notNull: true;
273
+ hasDefault: true;
274
+ isPrimaryKey: false;
275
+ isAutoincrement: false;
276
+ hasRuntimeDefault: false;
277
+ enumValues: undefined;
278
+ baseColumn: never;
279
+ identity: undefined;
280
+ generated: undefined;
281
+ }, {}, {}>;
282
+ };
283
+ dialect: "pg";
284
+ }>;
285
+ //# sourceMappingURL=personal-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personal-agents.d.ts","sourceRoot":"","sources":["../../../src/pg/schema/personal-agents.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC1B,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { pgTable, uuid, text, boolean, integer, timestamp, index } from 'drizzle-orm/pg-core';
2
+ import { profiles } from './profiles.js';
3
+ import { gateway } from './gateway.js';
4
+ /**
5
+ * Per-user personal agent. Mirrors Turso `personal_agents`.
6
+ * FK remap on migration: user_id → profile_id (profiles.id),
7
+ * server_id → gateway_id (gateway.id, matched via gateway.legacy_server_id).
8
+ */
9
+ export const personalAgents = pgTable('personal_agents', {
10
+ id: text('id').primaryKey(),
11
+ profileId: uuid('profile_id')
12
+ .notNull()
13
+ .unique()
14
+ .references(() => profiles.id, { onDelete: 'cascade' }),
15
+ agentId: text('agent_id').notNull(),
16
+ gatewayId: uuid('gateway_id').references(() => gateway.id, { onDelete: 'set null' }),
17
+ displayName: text('display_name').notNull(),
18
+ conversationName: text('conversation_name'),
19
+ avatarUrl: text('avatar_url'),
20
+ personalityPreset: text('personality_preset', {
21
+ enum: ['professional', 'casual', 'creative', 'technical'],
22
+ }),
23
+ personalityText: text('personality_text'),
24
+ personalityConfigured: boolean('personality_configured').notNull().default(false),
25
+ provisioningStatus: text('provisioning_status', {
26
+ enum: ['pending', 'provisioning', 'active', 'error'],
27
+ })
28
+ .notNull()
29
+ .default('pending'),
30
+ provisioningError: text('provisioning_error'),
31
+ lastRetryAt: timestamp('last_retry_at', { withTimezone: true }),
32
+ retryCount: integer('retry_count').notNull().default(0),
33
+ createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
34
+ updatedAt: timestamp('updated_at', { withTimezone: true }).notNull().defaultNow(),
35
+ }, (t) => [
36
+ index('idx_personal_agents_profile').on(t.profileId),
37
+ index('idx_personal_agents_agent').on(t.agentId),
38
+ index('idx_personal_agents_status').on(t.provisioningStatus),
39
+ ]);
40
+ //# sourceMappingURL=personal-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personal-agents.js","sourceRoot":"","sources":["../../../src/pg/schema/personal-agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CACnC,iBAAiB,EACjB;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;SAC1B,OAAO,EAAE;SACT,MAAM,EAAE;SACR,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACzD,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IACnC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACpF,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC3C,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAC3C,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,EAAE;QAC5C,IAAI,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC;KAC1D,CAAC;IACF,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC;IACzC,qBAAqB,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACjF,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,EAAE;QAC9C,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC;KACrD,CAAC;SACC,OAAO,EAAE;SACT,OAAO,CAAC,SAAS,CAAC;IACrB,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,CAAC;IAC7C,WAAW,EAAE,SAAS,CAAC,eAAe,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC/D,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,EACD,CAAC,CAAC,EAAE,EAAE,CAAC;IACL,KAAK,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,KAAK,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,KAAK,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;CAC7D,CACF,CAAC"}
@@ -60,6 +60,23 @@ export declare const profiles: import("drizzle-orm/pg-core").PgTableWithColumns<
60
60
  identity: undefined;
61
61
  generated: undefined;
62
62
  }, {}, {}>;
63
+ avatarUrl: import("drizzle-orm/pg-core").PgColumn<{
64
+ name: "avatar_url";
65
+ tableName: "profiles";
66
+ dataType: "string";
67
+ columnType: "PgText";
68
+ data: string;
69
+ driverParam: string;
70
+ notNull: false;
71
+ hasDefault: false;
72
+ isPrimaryKey: false;
73
+ isAutoincrement: false;
74
+ hasRuntimeDefault: false;
75
+ enumValues: [string, ...string[]];
76
+ baseColumn: never;
77
+ identity: undefined;
78
+ generated: undefined;
79
+ }, {}, {}>;
63
80
  role: import("drizzle-orm/pg-core").PgColumn<{
64
81
  name: "role";
65
82
  tableName: "profiles";
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../src/pg/schema/profiles.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAanB,CAAC"}
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../src/pg/schema/profiles.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAenB,CAAC"}
@@ -10,6 +10,8 @@ export const profiles = pgTable('profiles', {
10
10
  id: uuid('id').primaryKey(), // == auth.users.id
11
11
  email: text('email').notNull(),
12
12
  displayName: text('display_name'),
13
+ // Public avatar URL (B2-served signed URL or external provider image).
14
+ avatarUrl: text('avatar_url'),
13
15
  role: text('role', { enum: ['user', 'admin'] })
14
16
  .notNull()
15
17
  .default('user'),
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/pg/schema/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE;IAC1C,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,mBAAmB;IAChD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAC9B,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;IACjC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;SAC5C,OAAO,EAAE;SACT,OAAO,CAAC,MAAM,CAAC;IAClB,eAAe,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAC1C,wEAAwE;IACxE,qEAAqE;IACrE,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC;IACpC,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,CAAC,CAAC"}
1
+ {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/pg/schema/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE;IAC1C,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,mBAAmB;IAChD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAC9B,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;IACjC,uEAAuE;IACvE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;SAC5C,OAAO,EAAE;SACT,OAAO,CAAC,MAAM,CAAC;IAClB,eAAe,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAC1C,wEAAwE;IACxE,qEAAqE;IACrE,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC;IACpC,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,CAAC,CAAC"}