nao-core 0.0.11__py3-none-any.whl → 0.0.14__py3-none-any.whl

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 (39) hide show
  1. nao_core/__init__.py +1 -1
  2. nao_core/bin/db.sqlite +0 -0
  3. nao_core/bin/fastapi/main.py +102 -0
  4. nao_core/bin/migrations-postgres/0000_supreme_cable.sql +85 -0
  5. nao_core/bin/migrations-postgres/meta/0000_snapshot.json +610 -0
  6. nao_core/bin/migrations-postgres/meta/_journal.json +13 -0
  7. nao_core/bin/migrations-sqlite/0000_cloudy_squirrel_girl.sql +85 -0
  8. nao_core/bin/migrations-sqlite/meta/0000_snapshot.json +590 -0
  9. nao_core/bin/migrations-sqlite/meta/_journal.json +13 -0
  10. nao_core/bin/nao-chat-server +0 -0
  11. nao_core/bin/public/assets/_chatId-z5gRlor1.js +1 -0
  12. nao_core/bin/public/assets/chat-messages-DUR3D342.js +1 -0
  13. nao_core/bin/public/assets/index-BDlcD_HE.js +1 -0
  14. nao_core/bin/public/assets/index-Bc7icYyJ.css +1 -0
  15. nao_core/bin/public/assets/index-CGg3ZQH6.js +49 -0
  16. nao_core/bin/public/assets/login-D87n9R5V.js +1 -0
  17. nao_core/bin/public/assets/signinForm-9PY1Lvqj.js +1 -0
  18. nao_core/bin/public/assets/signup-B7NC1g08.js +1 -0
  19. nao_core/bin/public/github-icon.svg +19 -0
  20. nao_core/bin/public/google-icon.svg +2 -0
  21. nao_core/bin/public/index.html +2 -2
  22. nao_core/commands/chat.py +67 -25
  23. nao_core/commands/init.py +3 -3
  24. nao_core/commands/sync.py +274 -44
  25. nao_core/config/__init__.py +13 -0
  26. nao_core/{config.py → config/base.py} +4 -66
  27. nao_core/config/databases/__init__.py +29 -0
  28. nao_core/config/databases/base.py +72 -0
  29. nao_core/config/databases/bigquery.py +42 -0
  30. nao_core/config/llm/__init__.py +16 -0
  31. {nao_core-0.0.11.dist-info → nao_core-0.0.14.dist-info}/METADATA +3 -1
  32. nao_core-0.0.14.dist-info/RECORD +39 -0
  33. nao_core/bin/public/assets/index-BSxC58nD.js +0 -36
  34. nao_core/bin/public/assets/index-Dh3br3Ia.js +0 -13
  35. nao_core/bin/public/assets/index-heKLHGGE.css +0 -1
  36. nao_core-0.0.11.dist-info/RECORD +0 -20
  37. {nao_core-0.0.11.dist-info → nao_core-0.0.14.dist-info}/WHEEL +0 -0
  38. {nao_core-0.0.11.dist-info → nao_core-0.0.14.dist-info}/entry_points.txt +0 -0
  39. {nao_core-0.0.11.dist-info → nao_core-0.0.14.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,610 @@
1
+ {
2
+ "id": "eb2e439e-63a8-425c-af2d-08560ac5920a",
3
+ "prevId": "00000000-0000-0000-0000-000000000000",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.account": {
8
+ "name": "account",
9
+ "schema": "",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "text",
14
+ "primaryKey": true,
15
+ "notNull": true
16
+ },
17
+ "account_id": {
18
+ "name": "account_id",
19
+ "type": "text",
20
+ "primaryKey": false,
21
+ "notNull": true
22
+ },
23
+ "provider_id": {
24
+ "name": "provider_id",
25
+ "type": "text",
26
+ "primaryKey": false,
27
+ "notNull": true
28
+ },
29
+ "user_id": {
30
+ "name": "user_id",
31
+ "type": "text",
32
+ "primaryKey": false,
33
+ "notNull": true
34
+ },
35
+ "access_token": {
36
+ "name": "access_token",
37
+ "type": "text",
38
+ "primaryKey": false,
39
+ "notNull": false
40
+ },
41
+ "refresh_token": {
42
+ "name": "refresh_token",
43
+ "type": "text",
44
+ "primaryKey": false,
45
+ "notNull": false
46
+ },
47
+ "id_token": {
48
+ "name": "id_token",
49
+ "type": "text",
50
+ "primaryKey": false,
51
+ "notNull": false
52
+ },
53
+ "access_token_expires_at": {
54
+ "name": "access_token_expires_at",
55
+ "type": "timestamp",
56
+ "primaryKey": false,
57
+ "notNull": false
58
+ },
59
+ "refresh_token_expires_at": {
60
+ "name": "refresh_token_expires_at",
61
+ "type": "timestamp",
62
+ "primaryKey": false,
63
+ "notNull": false
64
+ },
65
+ "scope": {
66
+ "name": "scope",
67
+ "type": "text",
68
+ "primaryKey": false,
69
+ "notNull": false
70
+ },
71
+ "password": {
72
+ "name": "password",
73
+ "type": "text",
74
+ "primaryKey": false,
75
+ "notNull": false
76
+ },
77
+ "created_at": {
78
+ "name": "created_at",
79
+ "type": "timestamp",
80
+ "primaryKey": false,
81
+ "notNull": true,
82
+ "default": "now()"
83
+ },
84
+ "updated_at": {
85
+ "name": "updated_at",
86
+ "type": "timestamp",
87
+ "primaryKey": false,
88
+ "notNull": true
89
+ }
90
+ },
91
+ "indexes": {
92
+ "account_userId_idx": {
93
+ "name": "account_userId_idx",
94
+ "columns": [
95
+ {
96
+ "expression": "user_id",
97
+ "isExpression": false,
98
+ "asc": true,
99
+ "nulls": "last"
100
+ }
101
+ ],
102
+ "isUnique": false,
103
+ "concurrently": false,
104
+ "method": "btree",
105
+ "with": {}
106
+ }
107
+ },
108
+ "foreignKeys": {
109
+ "account_user_id_user_id_fk": {
110
+ "name": "account_user_id_user_id_fk",
111
+ "tableFrom": "account",
112
+ "tableTo": "user",
113
+ "columnsFrom": [
114
+ "user_id"
115
+ ],
116
+ "columnsTo": [
117
+ "id"
118
+ ],
119
+ "onDelete": "cascade",
120
+ "onUpdate": "no action"
121
+ }
122
+ },
123
+ "compositePrimaryKeys": {},
124
+ "uniqueConstraints": {},
125
+ "policies": {},
126
+ "checkConstraints": {},
127
+ "isRLSEnabled": false
128
+ },
129
+ "public.chat_message": {
130
+ "name": "chat_message",
131
+ "schema": "",
132
+ "columns": {
133
+ "id": {
134
+ "name": "id",
135
+ "type": "text",
136
+ "primaryKey": true,
137
+ "notNull": true
138
+ },
139
+ "conversation_id": {
140
+ "name": "conversation_id",
141
+ "type": "text",
142
+ "primaryKey": false,
143
+ "notNull": true
144
+ },
145
+ "role": {
146
+ "name": "role",
147
+ "type": "text",
148
+ "primaryKey": false,
149
+ "notNull": true
150
+ },
151
+ "content": {
152
+ "name": "content",
153
+ "type": "text",
154
+ "primaryKey": false,
155
+ "notNull": true
156
+ },
157
+ "created_at": {
158
+ "name": "created_at",
159
+ "type": "timestamp",
160
+ "primaryKey": false,
161
+ "notNull": true,
162
+ "default": "now()"
163
+ }
164
+ },
165
+ "indexes": {
166
+ "chat_message_conversationId_idx": {
167
+ "name": "chat_message_conversationId_idx",
168
+ "columns": [
169
+ {
170
+ "expression": "conversation_id",
171
+ "isExpression": false,
172
+ "asc": true,
173
+ "nulls": "last"
174
+ }
175
+ ],
176
+ "isUnique": false,
177
+ "concurrently": false,
178
+ "method": "btree",
179
+ "with": {}
180
+ }
181
+ },
182
+ "foreignKeys": {
183
+ "chat_message_conversation_id_conversation_id_fk": {
184
+ "name": "chat_message_conversation_id_conversation_id_fk",
185
+ "tableFrom": "chat_message",
186
+ "tableTo": "conversation",
187
+ "columnsFrom": [
188
+ "conversation_id"
189
+ ],
190
+ "columnsTo": [
191
+ "id"
192
+ ],
193
+ "onDelete": "cascade",
194
+ "onUpdate": "no action"
195
+ }
196
+ },
197
+ "compositePrimaryKeys": {},
198
+ "uniqueConstraints": {},
199
+ "policies": {},
200
+ "checkConstraints": {},
201
+ "isRLSEnabled": false
202
+ },
203
+ "public.conversation": {
204
+ "name": "conversation",
205
+ "schema": "",
206
+ "columns": {
207
+ "id": {
208
+ "name": "id",
209
+ "type": "text",
210
+ "primaryKey": true,
211
+ "notNull": true
212
+ },
213
+ "user_id": {
214
+ "name": "user_id",
215
+ "type": "text",
216
+ "primaryKey": false,
217
+ "notNull": true
218
+ },
219
+ "title": {
220
+ "name": "title",
221
+ "type": "text",
222
+ "primaryKey": false,
223
+ "notNull": true,
224
+ "default": "'New Conversation'"
225
+ },
226
+ "created_at": {
227
+ "name": "created_at",
228
+ "type": "timestamp",
229
+ "primaryKey": false,
230
+ "notNull": true,
231
+ "default": "now()"
232
+ },
233
+ "updated_at": {
234
+ "name": "updated_at",
235
+ "type": "timestamp",
236
+ "primaryKey": false,
237
+ "notNull": true,
238
+ "default": "now()"
239
+ }
240
+ },
241
+ "indexes": {
242
+ "conversation_userId_idx": {
243
+ "name": "conversation_userId_idx",
244
+ "columns": [
245
+ {
246
+ "expression": "user_id",
247
+ "isExpression": false,
248
+ "asc": true,
249
+ "nulls": "last"
250
+ }
251
+ ],
252
+ "isUnique": false,
253
+ "concurrently": false,
254
+ "method": "btree",
255
+ "with": {}
256
+ }
257
+ },
258
+ "foreignKeys": {
259
+ "conversation_user_id_user_id_fk": {
260
+ "name": "conversation_user_id_user_id_fk",
261
+ "tableFrom": "conversation",
262
+ "tableTo": "user",
263
+ "columnsFrom": [
264
+ "user_id"
265
+ ],
266
+ "columnsTo": [
267
+ "id"
268
+ ],
269
+ "onDelete": "cascade",
270
+ "onUpdate": "no action"
271
+ }
272
+ },
273
+ "compositePrimaryKeys": {},
274
+ "uniqueConstraints": {},
275
+ "policies": {},
276
+ "checkConstraints": {},
277
+ "isRLSEnabled": false
278
+ },
279
+ "public.session": {
280
+ "name": "session",
281
+ "schema": "",
282
+ "columns": {
283
+ "id": {
284
+ "name": "id",
285
+ "type": "text",
286
+ "primaryKey": true,
287
+ "notNull": true
288
+ },
289
+ "expires_at": {
290
+ "name": "expires_at",
291
+ "type": "timestamp",
292
+ "primaryKey": false,
293
+ "notNull": true
294
+ },
295
+ "token": {
296
+ "name": "token",
297
+ "type": "text",
298
+ "primaryKey": false,
299
+ "notNull": true
300
+ },
301
+ "created_at": {
302
+ "name": "created_at",
303
+ "type": "timestamp",
304
+ "primaryKey": false,
305
+ "notNull": true,
306
+ "default": "now()"
307
+ },
308
+ "updated_at": {
309
+ "name": "updated_at",
310
+ "type": "timestamp",
311
+ "primaryKey": false,
312
+ "notNull": true
313
+ },
314
+ "ip_address": {
315
+ "name": "ip_address",
316
+ "type": "text",
317
+ "primaryKey": false,
318
+ "notNull": false
319
+ },
320
+ "user_agent": {
321
+ "name": "user_agent",
322
+ "type": "text",
323
+ "primaryKey": false,
324
+ "notNull": false
325
+ },
326
+ "user_id": {
327
+ "name": "user_id",
328
+ "type": "text",
329
+ "primaryKey": false,
330
+ "notNull": true
331
+ }
332
+ },
333
+ "indexes": {
334
+ "session_userId_idx": {
335
+ "name": "session_userId_idx",
336
+ "columns": [
337
+ {
338
+ "expression": "user_id",
339
+ "isExpression": false,
340
+ "asc": true,
341
+ "nulls": "last"
342
+ }
343
+ ],
344
+ "isUnique": false,
345
+ "concurrently": false,
346
+ "method": "btree",
347
+ "with": {}
348
+ }
349
+ },
350
+ "foreignKeys": {
351
+ "session_user_id_user_id_fk": {
352
+ "name": "session_user_id_user_id_fk",
353
+ "tableFrom": "session",
354
+ "tableTo": "user",
355
+ "columnsFrom": [
356
+ "user_id"
357
+ ],
358
+ "columnsTo": [
359
+ "id"
360
+ ],
361
+ "onDelete": "cascade",
362
+ "onUpdate": "no action"
363
+ }
364
+ },
365
+ "compositePrimaryKeys": {},
366
+ "uniqueConstraints": {
367
+ "session_token_unique": {
368
+ "name": "session_token_unique",
369
+ "nullsNotDistinct": false,
370
+ "columns": [
371
+ "token"
372
+ ]
373
+ }
374
+ },
375
+ "policies": {},
376
+ "checkConstraints": {},
377
+ "isRLSEnabled": false
378
+ },
379
+ "public.tool_call": {
380
+ "name": "tool_call",
381
+ "schema": "",
382
+ "columns": {
383
+ "id": {
384
+ "name": "id",
385
+ "type": "text",
386
+ "primaryKey": true,
387
+ "notNull": true
388
+ },
389
+ "message_id": {
390
+ "name": "message_id",
391
+ "type": "text",
392
+ "primaryKey": false,
393
+ "notNull": true
394
+ },
395
+ "tool_call_id": {
396
+ "name": "tool_call_id",
397
+ "type": "text",
398
+ "primaryKey": false,
399
+ "notNull": true
400
+ },
401
+ "tool_name": {
402
+ "name": "tool_name",
403
+ "type": "text",
404
+ "primaryKey": false,
405
+ "notNull": true
406
+ },
407
+ "input": {
408
+ "name": "input",
409
+ "type": "jsonb",
410
+ "primaryKey": false,
411
+ "notNull": true
412
+ },
413
+ "output": {
414
+ "name": "output",
415
+ "type": "jsonb",
416
+ "primaryKey": false,
417
+ "notNull": false
418
+ },
419
+ "created_at": {
420
+ "name": "created_at",
421
+ "type": "timestamp",
422
+ "primaryKey": false,
423
+ "notNull": true,
424
+ "default": "now()"
425
+ }
426
+ },
427
+ "indexes": {
428
+ "tool_call_messageId_idx": {
429
+ "name": "tool_call_messageId_idx",
430
+ "columns": [
431
+ {
432
+ "expression": "message_id",
433
+ "isExpression": false,
434
+ "asc": true,
435
+ "nulls": "last"
436
+ }
437
+ ],
438
+ "isUnique": false,
439
+ "concurrently": false,
440
+ "method": "btree",
441
+ "with": {}
442
+ }
443
+ },
444
+ "foreignKeys": {
445
+ "tool_call_message_id_chat_message_id_fk": {
446
+ "name": "tool_call_message_id_chat_message_id_fk",
447
+ "tableFrom": "tool_call",
448
+ "tableTo": "chat_message",
449
+ "columnsFrom": [
450
+ "message_id"
451
+ ],
452
+ "columnsTo": [
453
+ "id"
454
+ ],
455
+ "onDelete": "cascade",
456
+ "onUpdate": "no action"
457
+ }
458
+ },
459
+ "compositePrimaryKeys": {},
460
+ "uniqueConstraints": {},
461
+ "policies": {},
462
+ "checkConstraints": {},
463
+ "isRLSEnabled": false
464
+ },
465
+ "public.user": {
466
+ "name": "user",
467
+ "schema": "",
468
+ "columns": {
469
+ "id": {
470
+ "name": "id",
471
+ "type": "text",
472
+ "primaryKey": true,
473
+ "notNull": true
474
+ },
475
+ "name": {
476
+ "name": "name",
477
+ "type": "text",
478
+ "primaryKey": false,
479
+ "notNull": true
480
+ },
481
+ "email": {
482
+ "name": "email",
483
+ "type": "text",
484
+ "primaryKey": false,
485
+ "notNull": true
486
+ },
487
+ "email_verified": {
488
+ "name": "email_verified",
489
+ "type": "boolean",
490
+ "primaryKey": false,
491
+ "notNull": true,
492
+ "default": false
493
+ },
494
+ "image": {
495
+ "name": "image",
496
+ "type": "text",
497
+ "primaryKey": false,
498
+ "notNull": false
499
+ },
500
+ "created_at": {
501
+ "name": "created_at",
502
+ "type": "timestamp",
503
+ "primaryKey": false,
504
+ "notNull": true,
505
+ "default": "now()"
506
+ },
507
+ "updated_at": {
508
+ "name": "updated_at",
509
+ "type": "timestamp",
510
+ "primaryKey": false,
511
+ "notNull": true,
512
+ "default": "now()"
513
+ }
514
+ },
515
+ "indexes": {},
516
+ "foreignKeys": {},
517
+ "compositePrimaryKeys": {},
518
+ "uniqueConstraints": {
519
+ "user_email_unique": {
520
+ "name": "user_email_unique",
521
+ "nullsNotDistinct": false,
522
+ "columns": [
523
+ "email"
524
+ ]
525
+ }
526
+ },
527
+ "policies": {},
528
+ "checkConstraints": {},
529
+ "isRLSEnabled": false
530
+ },
531
+ "public.verification": {
532
+ "name": "verification",
533
+ "schema": "",
534
+ "columns": {
535
+ "id": {
536
+ "name": "id",
537
+ "type": "text",
538
+ "primaryKey": true,
539
+ "notNull": true
540
+ },
541
+ "identifier": {
542
+ "name": "identifier",
543
+ "type": "text",
544
+ "primaryKey": false,
545
+ "notNull": true
546
+ },
547
+ "value": {
548
+ "name": "value",
549
+ "type": "text",
550
+ "primaryKey": false,
551
+ "notNull": true
552
+ },
553
+ "expires_at": {
554
+ "name": "expires_at",
555
+ "type": "timestamp",
556
+ "primaryKey": false,
557
+ "notNull": true
558
+ },
559
+ "created_at": {
560
+ "name": "created_at",
561
+ "type": "timestamp",
562
+ "primaryKey": false,
563
+ "notNull": true,
564
+ "default": "now()"
565
+ },
566
+ "updated_at": {
567
+ "name": "updated_at",
568
+ "type": "timestamp",
569
+ "primaryKey": false,
570
+ "notNull": true,
571
+ "default": "now()"
572
+ }
573
+ },
574
+ "indexes": {
575
+ "verification_identifier_idx": {
576
+ "name": "verification_identifier_idx",
577
+ "columns": [
578
+ {
579
+ "expression": "identifier",
580
+ "isExpression": false,
581
+ "asc": true,
582
+ "nulls": "last"
583
+ }
584
+ ],
585
+ "isUnique": false,
586
+ "concurrently": false,
587
+ "method": "btree",
588
+ "with": {}
589
+ }
590
+ },
591
+ "foreignKeys": {},
592
+ "compositePrimaryKeys": {},
593
+ "uniqueConstraints": {},
594
+ "policies": {},
595
+ "checkConstraints": {},
596
+ "isRLSEnabled": false
597
+ }
598
+ },
599
+ "enums": {},
600
+ "schemas": {},
601
+ "sequences": {},
602
+ "roles": {},
603
+ "policies": {},
604
+ "views": {},
605
+ "_meta": {
606
+ "columns": {},
607
+ "schemas": {},
608
+ "tables": {}
609
+ }
610
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": "7",
3
+ "dialect": "postgresql",
4
+ "entries": [
5
+ {
6
+ "idx": 0,
7
+ "version": "7",
8
+ "when": 1767804105559,
9
+ "tag": "0000_supreme_cable",
10
+ "breakpoints": true
11
+ }
12
+ ]
13
+ }
@@ -0,0 +1,85 @@
1
+ CREATE TABLE `account` (
2
+ `id` text PRIMARY KEY NOT NULL,
3
+ `account_id` text NOT NULL,
4
+ `provider_id` text NOT NULL,
5
+ `user_id` text NOT NULL,
6
+ `access_token` text,
7
+ `refresh_token` text,
8
+ `id_token` text,
9
+ `access_token_expires_at` integer,
10
+ `refresh_token_expires_at` integer,
11
+ `scope` text,
12
+ `password` text,
13
+ `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
14
+ `updated_at` integer NOT NULL,
15
+ FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade
16
+ );
17
+ --> statement-breakpoint
18
+ CREATE INDEX `account_userId_idx` ON `account` (`user_id`);--> statement-breakpoint
19
+ CREATE TABLE `chat_message` (
20
+ `id` text PRIMARY KEY NOT NULL,
21
+ `conversation_id` text NOT NULL,
22
+ `role` text NOT NULL,
23
+ `content` text NOT NULL,
24
+ `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
25
+ FOREIGN KEY (`conversation_id`) REFERENCES `conversation`(`id`) ON UPDATE no action ON DELETE cascade
26
+ );
27
+ --> statement-breakpoint
28
+ CREATE INDEX `chat_message_conversationId_idx` ON `chat_message` (`conversation_id`);--> statement-breakpoint
29
+ CREATE TABLE `conversation` (
30
+ `id` text PRIMARY KEY NOT NULL,
31
+ `user_id` text NOT NULL,
32
+ `title` text DEFAULT 'New Conversation' NOT NULL,
33
+ `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
34
+ `updated_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
35
+ FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade
36
+ );
37
+ --> statement-breakpoint
38
+ CREATE INDEX `conversation_userId_idx` ON `conversation` (`user_id`);--> statement-breakpoint
39
+ CREATE TABLE `session` (
40
+ `id` text PRIMARY KEY NOT NULL,
41
+ `expires_at` integer NOT NULL,
42
+ `token` text NOT NULL,
43
+ `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
44
+ `updated_at` integer NOT NULL,
45
+ `ip_address` text,
46
+ `user_agent` text,
47
+ `user_id` text NOT NULL,
48
+ FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade
49
+ );
50
+ --> statement-breakpoint
51
+ CREATE UNIQUE INDEX `session_token_unique` ON `session` (`token`);--> statement-breakpoint
52
+ CREATE INDEX `session_userId_idx` ON `session` (`user_id`);--> statement-breakpoint
53
+ CREATE TABLE `tool_call` (
54
+ `id` text PRIMARY KEY NOT NULL,
55
+ `message_id` text NOT NULL,
56
+ `tool_call_id` text NOT NULL,
57
+ `tool_name` text NOT NULL,
58
+ `input` text NOT NULL,
59
+ `output` text,
60
+ `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
61
+ FOREIGN KEY (`message_id`) REFERENCES `chat_message`(`id`) ON UPDATE no action ON DELETE cascade
62
+ );
63
+ --> statement-breakpoint
64
+ CREATE INDEX `tool_call_messageId_idx` ON `tool_call` (`message_id`);--> statement-breakpoint
65
+ CREATE TABLE `user` (
66
+ `id` text PRIMARY KEY NOT NULL,
67
+ `name` text NOT NULL,
68
+ `email` text NOT NULL,
69
+ `email_verified` integer DEFAULT false NOT NULL,
70
+ `image` text,
71
+ `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
72
+ `updated_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL
73
+ );
74
+ --> statement-breakpoint
75
+ CREATE UNIQUE INDEX `user_email_unique` ON `user` (`email`);--> statement-breakpoint
76
+ CREATE TABLE `verification` (
77
+ `id` text PRIMARY KEY NOT NULL,
78
+ `identifier` text NOT NULL,
79
+ `value` text NOT NULL,
80
+ `expires_at` integer NOT NULL,
81
+ `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
82
+ `updated_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL
83
+ );
84
+ --> statement-breakpoint
85
+ CREATE INDEX `verification_identifier_idx` ON `verification` (`identifier`);