nao-core 0.0.38__py3-none-manylinux2014_aarch64.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 (98) hide show
  1. nao_core/__init__.py +2 -0
  2. nao_core/__init__.py.bak +2 -0
  3. nao_core/bin/build-info.json +5 -0
  4. nao_core/bin/fastapi/main.py +268 -0
  5. nao_core/bin/fastapi/test_main.py +156 -0
  6. nao_core/bin/migrations-postgres/0000_user_auth_and_chat_tables.sql +98 -0
  7. nao_core/bin/migrations-postgres/0001_message_feedback.sql +9 -0
  8. nao_core/bin/migrations-postgres/0002_chat_message_stop_reason_and_error_message.sql +2 -0
  9. nao_core/bin/migrations-postgres/0003_handle_slack_with_thread.sql +2 -0
  10. nao_core/bin/migrations-postgres/0004_input_and_output_tokens.sql +8 -0
  11. nao_core/bin/migrations-postgres/0005_add_project_tables.sql +39 -0
  12. nao_core/bin/migrations-postgres/0006_llm_model_ids.sql +4 -0
  13. nao_core/bin/migrations-postgres/0007_chat_message_llm_info.sql +2 -0
  14. nao_core/bin/migrations-postgres/meta/0000_snapshot.json +707 -0
  15. nao_core/bin/migrations-postgres/meta/0001_snapshot.json +766 -0
  16. nao_core/bin/migrations-postgres/meta/0002_snapshot.json +778 -0
  17. nao_core/bin/migrations-postgres/meta/0003_snapshot.json +799 -0
  18. nao_core/bin/migrations-postgres/meta/0004_snapshot.json +847 -0
  19. nao_core/bin/migrations-postgres/meta/0005_snapshot.json +1129 -0
  20. nao_core/bin/migrations-postgres/meta/0006_snapshot.json +1141 -0
  21. nao_core/bin/migrations-postgres/meta/_journal.json +62 -0
  22. nao_core/bin/migrations-sqlite/0000_user_auth_and_chat_tables.sql +98 -0
  23. nao_core/bin/migrations-sqlite/0001_message_feedback.sql +8 -0
  24. nao_core/bin/migrations-sqlite/0002_chat_message_stop_reason_and_error_message.sql +2 -0
  25. nao_core/bin/migrations-sqlite/0003_handle_slack_with_thread.sql +2 -0
  26. nao_core/bin/migrations-sqlite/0004_input_and_output_tokens.sql +8 -0
  27. nao_core/bin/migrations-sqlite/0005_add_project_tables.sql +38 -0
  28. nao_core/bin/migrations-sqlite/0006_llm_model_ids.sql +4 -0
  29. nao_core/bin/migrations-sqlite/0007_chat_message_llm_info.sql +2 -0
  30. nao_core/bin/migrations-sqlite/meta/0000_snapshot.json +674 -0
  31. nao_core/bin/migrations-sqlite/meta/0001_snapshot.json +735 -0
  32. nao_core/bin/migrations-sqlite/meta/0002_snapshot.json +749 -0
  33. nao_core/bin/migrations-sqlite/meta/0003_snapshot.json +763 -0
  34. nao_core/bin/migrations-sqlite/meta/0004_snapshot.json +819 -0
  35. nao_core/bin/migrations-sqlite/meta/0005_snapshot.json +1086 -0
  36. nao_core/bin/migrations-sqlite/meta/0006_snapshot.json +1100 -0
  37. nao_core/bin/migrations-sqlite/meta/_journal.json +62 -0
  38. nao_core/bin/nao-chat-server +0 -0
  39. nao_core/bin/public/assets/code-block-F6WJLWQG-CV0uOmNJ.js +153 -0
  40. nao_core/bin/public/assets/index-DcbndLHo.css +1 -0
  41. nao_core/bin/public/assets/index-t1hZI3nl.js +560 -0
  42. nao_core/bin/public/favicon.ico +0 -0
  43. nao_core/bin/public/index.html +18 -0
  44. nao_core/bin/rg +0 -0
  45. nao_core/commands/__init__.py +6 -0
  46. nao_core/commands/chat.py +225 -0
  47. nao_core/commands/debug.py +158 -0
  48. nao_core/commands/init.py +358 -0
  49. nao_core/commands/sync/__init__.py +124 -0
  50. nao_core/commands/sync/accessors.py +290 -0
  51. nao_core/commands/sync/cleanup.py +156 -0
  52. nao_core/commands/sync/providers/__init__.py +32 -0
  53. nao_core/commands/sync/providers/base.py +113 -0
  54. nao_core/commands/sync/providers/databases/__init__.py +17 -0
  55. nao_core/commands/sync/providers/databases/bigquery.py +79 -0
  56. nao_core/commands/sync/providers/databases/databricks.py +79 -0
  57. nao_core/commands/sync/providers/databases/duckdb.py +78 -0
  58. nao_core/commands/sync/providers/databases/postgres.py +79 -0
  59. nao_core/commands/sync/providers/databases/provider.py +129 -0
  60. nao_core/commands/sync/providers/databases/snowflake.py +79 -0
  61. nao_core/commands/sync/providers/notion/__init__.py +5 -0
  62. nao_core/commands/sync/providers/notion/provider.py +205 -0
  63. nao_core/commands/sync/providers/repositories/__init__.py +5 -0
  64. nao_core/commands/sync/providers/repositories/provider.py +134 -0
  65. nao_core/commands/sync/registry.py +23 -0
  66. nao_core/config/__init__.py +30 -0
  67. nao_core/config/base.py +100 -0
  68. nao_core/config/databases/__init__.py +55 -0
  69. nao_core/config/databases/base.py +85 -0
  70. nao_core/config/databases/bigquery.py +99 -0
  71. nao_core/config/databases/databricks.py +79 -0
  72. nao_core/config/databases/duckdb.py +41 -0
  73. nao_core/config/databases/postgres.py +83 -0
  74. nao_core/config/databases/snowflake.py +125 -0
  75. nao_core/config/exceptions.py +7 -0
  76. nao_core/config/llm/__init__.py +19 -0
  77. nao_core/config/notion/__init__.py +8 -0
  78. nao_core/config/repos/__init__.py +3 -0
  79. nao_core/config/repos/base.py +11 -0
  80. nao_core/config/slack/__init__.py +12 -0
  81. nao_core/context/__init__.py +54 -0
  82. nao_core/context/base.py +57 -0
  83. nao_core/context/git.py +177 -0
  84. nao_core/context/local.py +59 -0
  85. nao_core/main.py +13 -0
  86. nao_core/templates/__init__.py +41 -0
  87. nao_core/templates/context.py +193 -0
  88. nao_core/templates/defaults/databases/columns.md.j2 +23 -0
  89. nao_core/templates/defaults/databases/description.md.j2 +32 -0
  90. nao_core/templates/defaults/databases/preview.md.j2 +22 -0
  91. nao_core/templates/defaults/databases/profiling.md.j2 +34 -0
  92. nao_core/templates/engine.py +133 -0
  93. nao_core/templates/render.py +196 -0
  94. nao_core-0.0.38.dist-info/METADATA +150 -0
  95. nao_core-0.0.38.dist-info/RECORD +98 -0
  96. nao_core-0.0.38.dist-info/WHEEL +4 -0
  97. nao_core-0.0.38.dist-info/entry_points.txt +2 -0
  98. nao_core-0.0.38.dist-info/licenses/LICENSE +22 -0
@@ -0,0 +1,799 @@
1
+ {
2
+ "id": "22116402-7a44-4905-be56-e09f742b8105",
3
+ "prevId": "cee6bcfc-5fcd-4036-a964-d564eb84328f",
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": {
130
+ "name": "chat",
131
+ "schema": "",
132
+ "columns": {
133
+ "id": {
134
+ "name": "id",
135
+ "type": "text",
136
+ "primaryKey": true,
137
+ "notNull": true
138
+ },
139
+ "user_id": {
140
+ "name": "user_id",
141
+ "type": "text",
142
+ "primaryKey": false,
143
+ "notNull": true
144
+ },
145
+ "title": {
146
+ "name": "title",
147
+ "type": "text",
148
+ "primaryKey": false,
149
+ "notNull": true,
150
+ "default": "'New Conversation'"
151
+ },
152
+ "slack_thread_id": {
153
+ "name": "slack_thread_id",
154
+ "type": "text",
155
+ "primaryKey": false,
156
+ "notNull": false
157
+ },
158
+ "created_at": {
159
+ "name": "created_at",
160
+ "type": "timestamp",
161
+ "primaryKey": false,
162
+ "notNull": true,
163
+ "default": "now()"
164
+ },
165
+ "updated_at": {
166
+ "name": "updated_at",
167
+ "type": "timestamp",
168
+ "primaryKey": false,
169
+ "notNull": true,
170
+ "default": "now()"
171
+ }
172
+ },
173
+ "indexes": {
174
+ "chat_userId_idx": {
175
+ "name": "chat_userId_idx",
176
+ "columns": [
177
+ {
178
+ "expression": "user_id",
179
+ "isExpression": false,
180
+ "asc": true,
181
+ "nulls": "last"
182
+ }
183
+ ],
184
+ "isUnique": false,
185
+ "concurrently": false,
186
+ "method": "btree",
187
+ "with": {}
188
+ },
189
+ "chat_slack_thread_idx": {
190
+ "name": "chat_slack_thread_idx",
191
+ "columns": [
192
+ {
193
+ "expression": "slack_thread_id",
194
+ "isExpression": false,
195
+ "asc": true,
196
+ "nulls": "last"
197
+ }
198
+ ],
199
+ "isUnique": false,
200
+ "concurrently": false,
201
+ "method": "btree",
202
+ "with": {}
203
+ }
204
+ },
205
+ "foreignKeys": {
206
+ "chat_user_id_user_id_fk": {
207
+ "name": "chat_user_id_user_id_fk",
208
+ "tableFrom": "chat",
209
+ "tableTo": "user",
210
+ "columnsFrom": [
211
+ "user_id"
212
+ ],
213
+ "columnsTo": [
214
+ "id"
215
+ ],
216
+ "onDelete": "cascade",
217
+ "onUpdate": "no action"
218
+ }
219
+ },
220
+ "compositePrimaryKeys": {},
221
+ "uniqueConstraints": {},
222
+ "policies": {},
223
+ "checkConstraints": {},
224
+ "isRLSEnabled": false
225
+ },
226
+ "public.chat_message": {
227
+ "name": "chat_message",
228
+ "schema": "",
229
+ "columns": {
230
+ "id": {
231
+ "name": "id",
232
+ "type": "text",
233
+ "primaryKey": true,
234
+ "notNull": true
235
+ },
236
+ "chat_id": {
237
+ "name": "chat_id",
238
+ "type": "text",
239
+ "primaryKey": false,
240
+ "notNull": true
241
+ },
242
+ "role": {
243
+ "name": "role",
244
+ "type": "text",
245
+ "primaryKey": false,
246
+ "notNull": true
247
+ },
248
+ "stop_reason": {
249
+ "name": "stop_reason",
250
+ "type": "text",
251
+ "primaryKey": false,
252
+ "notNull": false
253
+ },
254
+ "error_message": {
255
+ "name": "error_message",
256
+ "type": "text",
257
+ "primaryKey": false,
258
+ "notNull": false
259
+ },
260
+ "created_at": {
261
+ "name": "created_at",
262
+ "type": "timestamp",
263
+ "primaryKey": false,
264
+ "notNull": true,
265
+ "default": "now()"
266
+ }
267
+ },
268
+ "indexes": {
269
+ "chat_message_chatId_idx": {
270
+ "name": "chat_message_chatId_idx",
271
+ "columns": [
272
+ {
273
+ "expression": "chat_id",
274
+ "isExpression": false,
275
+ "asc": true,
276
+ "nulls": "last"
277
+ }
278
+ ],
279
+ "isUnique": false,
280
+ "concurrently": false,
281
+ "method": "btree",
282
+ "with": {}
283
+ },
284
+ "chat_message_createdAt_idx": {
285
+ "name": "chat_message_createdAt_idx",
286
+ "columns": [
287
+ {
288
+ "expression": "created_at",
289
+ "isExpression": false,
290
+ "asc": true,
291
+ "nulls": "last"
292
+ }
293
+ ],
294
+ "isUnique": false,
295
+ "concurrently": false,
296
+ "method": "btree",
297
+ "with": {}
298
+ }
299
+ },
300
+ "foreignKeys": {
301
+ "chat_message_chat_id_chat_id_fk": {
302
+ "name": "chat_message_chat_id_chat_id_fk",
303
+ "tableFrom": "chat_message",
304
+ "tableTo": "chat",
305
+ "columnsFrom": [
306
+ "chat_id"
307
+ ],
308
+ "columnsTo": [
309
+ "id"
310
+ ],
311
+ "onDelete": "cascade",
312
+ "onUpdate": "no action"
313
+ }
314
+ },
315
+ "compositePrimaryKeys": {},
316
+ "uniqueConstraints": {},
317
+ "policies": {},
318
+ "checkConstraints": {},
319
+ "isRLSEnabled": false
320
+ },
321
+ "public.message_feedback": {
322
+ "name": "message_feedback",
323
+ "schema": "",
324
+ "columns": {
325
+ "message_id": {
326
+ "name": "message_id",
327
+ "type": "text",
328
+ "primaryKey": true,
329
+ "notNull": true
330
+ },
331
+ "vote": {
332
+ "name": "vote",
333
+ "type": "text",
334
+ "primaryKey": false,
335
+ "notNull": true
336
+ },
337
+ "explanation": {
338
+ "name": "explanation",
339
+ "type": "text",
340
+ "primaryKey": false,
341
+ "notNull": false
342
+ },
343
+ "created_at": {
344
+ "name": "created_at",
345
+ "type": "timestamp",
346
+ "primaryKey": false,
347
+ "notNull": true,
348
+ "default": "now()"
349
+ },
350
+ "updated_at": {
351
+ "name": "updated_at",
352
+ "type": "timestamp",
353
+ "primaryKey": false,
354
+ "notNull": true,
355
+ "default": "now()"
356
+ }
357
+ },
358
+ "indexes": {},
359
+ "foreignKeys": {
360
+ "message_feedback_message_id_chat_message_id_fk": {
361
+ "name": "message_feedback_message_id_chat_message_id_fk",
362
+ "tableFrom": "message_feedback",
363
+ "tableTo": "chat_message",
364
+ "columnsFrom": [
365
+ "message_id"
366
+ ],
367
+ "columnsTo": [
368
+ "id"
369
+ ],
370
+ "onDelete": "cascade",
371
+ "onUpdate": "no action"
372
+ }
373
+ },
374
+ "compositePrimaryKeys": {},
375
+ "uniqueConstraints": {},
376
+ "policies": {},
377
+ "checkConstraints": {},
378
+ "isRLSEnabled": false
379
+ },
380
+ "public.message_part": {
381
+ "name": "message_part",
382
+ "schema": "",
383
+ "columns": {
384
+ "id": {
385
+ "name": "id",
386
+ "type": "text",
387
+ "primaryKey": true,
388
+ "notNull": true
389
+ },
390
+ "message_id": {
391
+ "name": "message_id",
392
+ "type": "text",
393
+ "primaryKey": false,
394
+ "notNull": true
395
+ },
396
+ "order": {
397
+ "name": "order",
398
+ "type": "integer",
399
+ "primaryKey": false,
400
+ "notNull": true
401
+ },
402
+ "created_at": {
403
+ "name": "created_at",
404
+ "type": "timestamp",
405
+ "primaryKey": false,
406
+ "notNull": true,
407
+ "default": "now()"
408
+ },
409
+ "type": {
410
+ "name": "type",
411
+ "type": "text",
412
+ "primaryKey": false,
413
+ "notNull": true
414
+ },
415
+ "text": {
416
+ "name": "text",
417
+ "type": "text",
418
+ "primaryKey": false,
419
+ "notNull": false
420
+ },
421
+ "reasoning_text": {
422
+ "name": "reasoning_text",
423
+ "type": "text",
424
+ "primaryKey": false,
425
+ "notNull": false
426
+ },
427
+ "tool_call_id": {
428
+ "name": "tool_call_id",
429
+ "type": "text",
430
+ "primaryKey": false,
431
+ "notNull": false
432
+ },
433
+ "tool_name": {
434
+ "name": "tool_name",
435
+ "type": "text",
436
+ "primaryKey": false,
437
+ "notNull": false
438
+ },
439
+ "tool_state": {
440
+ "name": "tool_state",
441
+ "type": "text",
442
+ "primaryKey": false,
443
+ "notNull": false
444
+ },
445
+ "tool_error_text": {
446
+ "name": "tool_error_text",
447
+ "type": "text",
448
+ "primaryKey": false,
449
+ "notNull": false
450
+ },
451
+ "tool_input": {
452
+ "name": "tool_input",
453
+ "type": "jsonb",
454
+ "primaryKey": false,
455
+ "notNull": false
456
+ },
457
+ "tool_output": {
458
+ "name": "tool_output",
459
+ "type": "jsonb",
460
+ "primaryKey": false,
461
+ "notNull": false
462
+ },
463
+ "tool_approval_id": {
464
+ "name": "tool_approval_id",
465
+ "type": "text",
466
+ "primaryKey": false,
467
+ "notNull": false
468
+ },
469
+ "tool_approval_approved": {
470
+ "name": "tool_approval_approved",
471
+ "type": "boolean",
472
+ "primaryKey": false,
473
+ "notNull": false
474
+ },
475
+ "tool_approval_reason": {
476
+ "name": "tool_approval_reason",
477
+ "type": "text",
478
+ "primaryKey": false,
479
+ "notNull": false
480
+ }
481
+ },
482
+ "indexes": {
483
+ "parts_message_id_idx": {
484
+ "name": "parts_message_id_idx",
485
+ "columns": [
486
+ {
487
+ "expression": "message_id",
488
+ "isExpression": false,
489
+ "asc": true,
490
+ "nulls": "last"
491
+ }
492
+ ],
493
+ "isUnique": false,
494
+ "concurrently": false,
495
+ "method": "btree",
496
+ "with": {}
497
+ },
498
+ "parts_message_id_order_idx": {
499
+ "name": "parts_message_id_order_idx",
500
+ "columns": [
501
+ {
502
+ "expression": "message_id",
503
+ "isExpression": false,
504
+ "asc": true,
505
+ "nulls": "last"
506
+ },
507
+ {
508
+ "expression": "order",
509
+ "isExpression": false,
510
+ "asc": true,
511
+ "nulls": "last"
512
+ }
513
+ ],
514
+ "isUnique": false,
515
+ "concurrently": false,
516
+ "method": "btree",
517
+ "with": {}
518
+ }
519
+ },
520
+ "foreignKeys": {
521
+ "message_part_message_id_chat_message_id_fk": {
522
+ "name": "message_part_message_id_chat_message_id_fk",
523
+ "tableFrom": "message_part",
524
+ "tableTo": "chat_message",
525
+ "columnsFrom": [
526
+ "message_id"
527
+ ],
528
+ "columnsTo": [
529
+ "id"
530
+ ],
531
+ "onDelete": "cascade",
532
+ "onUpdate": "no action"
533
+ }
534
+ },
535
+ "compositePrimaryKeys": {},
536
+ "uniqueConstraints": {},
537
+ "policies": {},
538
+ "checkConstraints": {
539
+ "text_required_if_type_is_text": {
540
+ "name": "text_required_if_type_is_text",
541
+ "value": "CASE WHEN \"message_part\".\"type\" = 'text' THEN \"message_part\".\"text\" IS NOT NULL ELSE TRUE END"
542
+ },
543
+ "reasoning_text_required_if_type_is_reasoning": {
544
+ "name": "reasoning_text_required_if_type_is_reasoning",
545
+ "value": "CASE WHEN \"message_part\".\"type\" = 'reasoning' THEN \"message_part\".\"reasoning_text\" IS NOT NULL ELSE TRUE END"
546
+ },
547
+ "tool_call_fields_required": {
548
+ "name": "tool_call_fields_required",
549
+ "value": "CASE WHEN \"message_part\".\"type\" LIKE 'tool-%' THEN \"message_part\".\"tool_call_id\" IS NOT NULL AND \"message_part\".\"tool_state\" IS NOT NULL ELSE TRUE END"
550
+ }
551
+ },
552
+ "isRLSEnabled": false
553
+ },
554
+ "public.session": {
555
+ "name": "session",
556
+ "schema": "",
557
+ "columns": {
558
+ "id": {
559
+ "name": "id",
560
+ "type": "text",
561
+ "primaryKey": true,
562
+ "notNull": true
563
+ },
564
+ "expires_at": {
565
+ "name": "expires_at",
566
+ "type": "timestamp",
567
+ "primaryKey": false,
568
+ "notNull": true
569
+ },
570
+ "token": {
571
+ "name": "token",
572
+ "type": "text",
573
+ "primaryKey": false,
574
+ "notNull": true
575
+ },
576
+ "created_at": {
577
+ "name": "created_at",
578
+ "type": "timestamp",
579
+ "primaryKey": false,
580
+ "notNull": true,
581
+ "default": "now()"
582
+ },
583
+ "updated_at": {
584
+ "name": "updated_at",
585
+ "type": "timestamp",
586
+ "primaryKey": false,
587
+ "notNull": true
588
+ },
589
+ "ip_address": {
590
+ "name": "ip_address",
591
+ "type": "text",
592
+ "primaryKey": false,
593
+ "notNull": false
594
+ },
595
+ "user_agent": {
596
+ "name": "user_agent",
597
+ "type": "text",
598
+ "primaryKey": false,
599
+ "notNull": false
600
+ },
601
+ "user_id": {
602
+ "name": "user_id",
603
+ "type": "text",
604
+ "primaryKey": false,
605
+ "notNull": true
606
+ }
607
+ },
608
+ "indexes": {
609
+ "session_userId_idx": {
610
+ "name": "session_userId_idx",
611
+ "columns": [
612
+ {
613
+ "expression": "user_id",
614
+ "isExpression": false,
615
+ "asc": true,
616
+ "nulls": "last"
617
+ }
618
+ ],
619
+ "isUnique": false,
620
+ "concurrently": false,
621
+ "method": "btree",
622
+ "with": {}
623
+ }
624
+ },
625
+ "foreignKeys": {
626
+ "session_user_id_user_id_fk": {
627
+ "name": "session_user_id_user_id_fk",
628
+ "tableFrom": "session",
629
+ "tableTo": "user",
630
+ "columnsFrom": [
631
+ "user_id"
632
+ ],
633
+ "columnsTo": [
634
+ "id"
635
+ ],
636
+ "onDelete": "cascade",
637
+ "onUpdate": "no action"
638
+ }
639
+ },
640
+ "compositePrimaryKeys": {},
641
+ "uniqueConstraints": {
642
+ "session_token_unique": {
643
+ "name": "session_token_unique",
644
+ "nullsNotDistinct": false,
645
+ "columns": [
646
+ "token"
647
+ ]
648
+ }
649
+ },
650
+ "policies": {},
651
+ "checkConstraints": {},
652
+ "isRLSEnabled": false
653
+ },
654
+ "public.user": {
655
+ "name": "user",
656
+ "schema": "",
657
+ "columns": {
658
+ "id": {
659
+ "name": "id",
660
+ "type": "text",
661
+ "primaryKey": true,
662
+ "notNull": true
663
+ },
664
+ "name": {
665
+ "name": "name",
666
+ "type": "text",
667
+ "primaryKey": false,
668
+ "notNull": true
669
+ },
670
+ "email": {
671
+ "name": "email",
672
+ "type": "text",
673
+ "primaryKey": false,
674
+ "notNull": true
675
+ },
676
+ "email_verified": {
677
+ "name": "email_verified",
678
+ "type": "boolean",
679
+ "primaryKey": false,
680
+ "notNull": true,
681
+ "default": false
682
+ },
683
+ "image": {
684
+ "name": "image",
685
+ "type": "text",
686
+ "primaryKey": false,
687
+ "notNull": false
688
+ },
689
+ "created_at": {
690
+ "name": "created_at",
691
+ "type": "timestamp",
692
+ "primaryKey": false,
693
+ "notNull": true,
694
+ "default": "now()"
695
+ },
696
+ "updated_at": {
697
+ "name": "updated_at",
698
+ "type": "timestamp",
699
+ "primaryKey": false,
700
+ "notNull": true,
701
+ "default": "now()"
702
+ }
703
+ },
704
+ "indexes": {},
705
+ "foreignKeys": {},
706
+ "compositePrimaryKeys": {},
707
+ "uniqueConstraints": {
708
+ "user_email_unique": {
709
+ "name": "user_email_unique",
710
+ "nullsNotDistinct": false,
711
+ "columns": [
712
+ "email"
713
+ ]
714
+ }
715
+ },
716
+ "policies": {},
717
+ "checkConstraints": {},
718
+ "isRLSEnabled": false
719
+ },
720
+ "public.verification": {
721
+ "name": "verification",
722
+ "schema": "",
723
+ "columns": {
724
+ "id": {
725
+ "name": "id",
726
+ "type": "text",
727
+ "primaryKey": true,
728
+ "notNull": true
729
+ },
730
+ "identifier": {
731
+ "name": "identifier",
732
+ "type": "text",
733
+ "primaryKey": false,
734
+ "notNull": true
735
+ },
736
+ "value": {
737
+ "name": "value",
738
+ "type": "text",
739
+ "primaryKey": false,
740
+ "notNull": true
741
+ },
742
+ "expires_at": {
743
+ "name": "expires_at",
744
+ "type": "timestamp",
745
+ "primaryKey": false,
746
+ "notNull": true
747
+ },
748
+ "created_at": {
749
+ "name": "created_at",
750
+ "type": "timestamp",
751
+ "primaryKey": false,
752
+ "notNull": true,
753
+ "default": "now()"
754
+ },
755
+ "updated_at": {
756
+ "name": "updated_at",
757
+ "type": "timestamp",
758
+ "primaryKey": false,
759
+ "notNull": true,
760
+ "default": "now()"
761
+ }
762
+ },
763
+ "indexes": {
764
+ "verification_identifier_idx": {
765
+ "name": "verification_identifier_idx",
766
+ "columns": [
767
+ {
768
+ "expression": "identifier",
769
+ "isExpression": false,
770
+ "asc": true,
771
+ "nulls": "last"
772
+ }
773
+ ],
774
+ "isUnique": false,
775
+ "concurrently": false,
776
+ "method": "btree",
777
+ "with": {}
778
+ }
779
+ },
780
+ "foreignKeys": {},
781
+ "compositePrimaryKeys": {},
782
+ "uniqueConstraints": {},
783
+ "policies": {},
784
+ "checkConstraints": {},
785
+ "isRLSEnabled": false
786
+ }
787
+ },
788
+ "enums": {},
789
+ "schemas": {},
790
+ "sequences": {},
791
+ "roles": {},
792
+ "policies": {},
793
+ "views": {},
794
+ "_meta": {
795
+ "columns": {},
796
+ "schemas": {},
797
+ "tables": {}
798
+ }
799
+ }