@meistrari/chat-nuxt 1.2.2 → 1.3.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 (82) hide show
  1. package/README.md +71 -48
  2. package/dist/module.d.mts +24 -1
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +37 -19
  5. package/dist/runtime/components/MeistrariChatEmbed.d.vue.ts +3 -1
  6. package/dist/runtime/components/MeistrariChatEmbed.vue +5 -3
  7. package/dist/runtime/components/MeistrariChatEmbed.vue.d.ts +3 -1
  8. package/dist/runtime/components/chat/thinking-indicator.vue +28 -17
  9. package/dist/runtime/composables/useEmbedConfig.d.ts +5 -0
  10. package/dist/runtime/composables/useEmbedConfig.js +11 -3
  11. package/dist/runtime/embed/components/ChatConfigurationModal.vue +8 -6
  12. package/dist/runtime/embed/components/ChatEmbed.d.vue.ts +3 -1
  13. package/dist/runtime/embed/components/ChatEmbed.vue +13 -12
  14. package/dist/runtime/embed/components/ChatEmbed.vue.d.ts +3 -1
  15. package/dist/runtime/embed/components/ChatEmbedInner.vue +5 -1
  16. package/dist/runtime/plugins/markstream.d.ts +2 -0
  17. package/dist/runtime/plugins/markstream.js +5 -0
  18. package/dist/runtime/server/api/conversations/[id]/messages/[messageId]/retry.post.js +7 -4
  19. package/dist/runtime/server/api/conversations/[id]/messages/index.post.js +7 -4
  20. package/dist/runtime/server/api/conversations/[id]/usage.get.js +1 -1
  21. package/dist/runtime/server/api/conversations/generate-title.post.js +18 -5
  22. package/dist/runtime/server/api/workspace/usage.get.js +1 -1
  23. package/dist/runtime/server/db/index.d.ts +20 -3
  24. package/dist/runtime/server/db/index.js +87 -10
  25. package/dist/runtime/server/db/schema/_schema.d.ts +2 -0
  26. package/dist/runtime/server/db/schema/_schema.js +3 -0
  27. package/dist/runtime/server/db/schema/conversation-usage.d.ts +1 -1
  28. package/dist/runtime/server/db/schema/conversation-usage.js +3 -2
  29. package/dist/runtime/server/db/schema/conversations.d.ts +1 -1
  30. package/dist/runtime/server/db/schema/conversations.js +3 -2
  31. package/dist/runtime/server/db/schema/external-skills.d.ts +1 -1
  32. package/dist/runtime/server/db/schema/external-skills.js +3 -2
  33. package/dist/runtime/server/db/schema/index.d.ts +1 -0
  34. package/dist/runtime/server/db/schema/index.js +1 -0
  35. package/dist/runtime/server/db/schema/messages.d.ts +1 -1
  36. package/dist/runtime/server/db/schema/messages.js +3 -2
  37. package/dist/runtime/server/db/schema/workspace-settings.d.ts +1 -1
  38. package/dist/runtime/server/db/schema/workspace-settings.js +3 -2
  39. package/dist/runtime/server/plugins/init-db.d.ts +2 -0
  40. package/dist/runtime/server/plugins/init-db.js +11 -0
  41. package/dist/runtime/server/utils/billing.d.ts +26 -4
  42. package/dist/runtime/server/utils/billing.js +52 -13
  43. package/dist/runtime/server/utils/chat-workspace-settings.js +1 -1
  44. package/dist/runtime/utils/chat-loading-messages.d.ts +12 -0
  45. package/dist/runtime/utils/chat-loading-messages.js +40 -0
  46. package/dist/runtime/utils/features.d.ts +6 -0
  47. package/dist/runtime/utils/features.js +15 -0
  48. package/dist/types.d.mts +1 -1
  49. package/drizzle/0000_material_hiroim.sql +28 -0
  50. package/drizzle/0001_famous_scalphunter.sql +1 -0
  51. package/drizzle/0002_gorgeous_big_bertha.sql +1 -0
  52. package/drizzle/0003_massive_forge.sql +2 -0
  53. package/drizzle/0004_absent_black_tom.sql +2 -0
  54. package/drizzle/0005_first_kid_colt.sql +1 -0
  55. package/drizzle/0006_sloppy_mauler.sql +13 -0
  56. package/drizzle/0007_grey_rhino.sql +1 -0
  57. package/drizzle/0008_chilly_blue_blade.sql +27 -0
  58. package/drizzle/0009_cultured_maddog.sql +16 -0
  59. package/drizzle/0010_small_barracuda.sql +1 -0
  60. package/drizzle/0011_fat_lady_mastermind.sql +6 -0
  61. package/drizzle/0012_puzzling_rick_jones.sql +1 -0
  62. package/drizzle/0013_blue_gwen_stacy.sql +11 -0
  63. package/drizzle/meta/0000_snapshot.json +239 -0
  64. package/drizzle/meta/0001_snapshot.json +245 -0
  65. package/drizzle/meta/0002_snapshot.json +251 -0
  66. package/drizzle/meta/0003_snapshot.json +263 -0
  67. package/drizzle/meta/0004_snapshot.json +275 -0
  68. package/drizzle/meta/0005_snapshot.json +281 -0
  69. package/drizzle/meta/0006_snapshot.json +320 -0
  70. package/drizzle/meta/0007_snapshot.json +326 -0
  71. package/drizzle/meta/0008_snapshot.json +539 -0
  72. package/drizzle/meta/0009_snapshot.json +646 -0
  73. package/drizzle/meta/0010_snapshot.json +653 -0
  74. package/drizzle/meta/0011_snapshot.json +689 -0
  75. package/drizzle/meta/0012_snapshot.json +695 -0
  76. package/drizzle/meta/0013_snapshot.json +699 -0
  77. package/drizzle/meta/_journal.json +104 -0
  78. package/package.json +5 -3
  79. package/dist/runtime/server/tasks/send-daily-usage-report.d.ts +0 -2
  80. package/dist/runtime/server/tasks/send-daily-usage-report.js +0 -74
  81. package/dist/runtime/server/utils/auth-api.d.ts +0 -1
  82. package/dist/runtime/server/utils/auth-api.js +0 -27
@@ -0,0 +1,689 @@
1
+ {
2
+ "id": "58dc8a6e-6e8d-45f9-a0a5-4d3a378c0a07",
3
+ "prevId": "3ed8e1f8-be2e-4c2e-bc40-2e38536ca12b",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.conversation_usage": {
8
+ "name": "conversation_usage",
9
+ "schema": "",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "uuid",
14
+ "primaryKey": true,
15
+ "notNull": true,
16
+ "default": "gen_random_uuid()"
17
+ },
18
+ "workspace_id": {
19
+ "name": "workspace_id",
20
+ "type": "text",
21
+ "primaryKey": false,
22
+ "notNull": true
23
+ },
24
+ "conversation_id": {
25
+ "name": "conversation_id",
26
+ "type": "uuid",
27
+ "primaryKey": false,
28
+ "notNull": true
29
+ },
30
+ "prompt_tokens": {
31
+ "name": "prompt_tokens",
32
+ "type": "integer",
33
+ "primaryKey": false,
34
+ "notNull": true
35
+ },
36
+ "completion_tokens": {
37
+ "name": "completion_tokens",
38
+ "type": "integer",
39
+ "primaryKey": false,
40
+ "notNull": true
41
+ },
42
+ "total_tokens": {
43
+ "name": "total_tokens",
44
+ "type": "integer",
45
+ "primaryKey": false,
46
+ "notNull": true
47
+ },
48
+ "prompt_cost": {
49
+ "name": "prompt_cost",
50
+ "type": "numeric(12, 8)",
51
+ "primaryKey": false,
52
+ "notNull": true
53
+ },
54
+ "completion_cost": {
55
+ "name": "completion_cost",
56
+ "type": "numeric(12, 8)",
57
+ "primaryKey": false,
58
+ "notNull": true
59
+ },
60
+ "total_cost": {
61
+ "name": "total_cost",
62
+ "type": "numeric(12, 8)",
63
+ "primaryKey": false,
64
+ "notNull": true
65
+ },
66
+ "duration_ms": {
67
+ "name": "duration_ms",
68
+ "type": "integer",
69
+ "primaryKey": false,
70
+ "notNull": false
71
+ },
72
+ "turns": {
73
+ "name": "turns",
74
+ "type": "integer",
75
+ "primaryKey": false,
76
+ "notNull": false
77
+ },
78
+ "user_id": {
79
+ "name": "user_id",
80
+ "type": "text",
81
+ "primaryKey": false,
82
+ "notNull": true
83
+ },
84
+ "user_email": {
85
+ "name": "user_email",
86
+ "type": "text",
87
+ "primaryKey": false,
88
+ "notNull": false
89
+ },
90
+ "model": {
91
+ "name": "model",
92
+ "type": "text",
93
+ "primaryKey": false,
94
+ "notNull": false
95
+ },
96
+ "session_id": {
97
+ "name": "session_id",
98
+ "type": "text",
99
+ "primaryKey": false,
100
+ "notNull": false
101
+ },
102
+ "cache_read_input_tokens": {
103
+ "name": "cache_read_input_tokens",
104
+ "type": "integer",
105
+ "primaryKey": false,
106
+ "notNull": false
107
+ },
108
+ "cache_creation_input_tokens": {
109
+ "name": "cache_creation_input_tokens",
110
+ "type": "integer",
111
+ "primaryKey": false,
112
+ "notNull": false
113
+ },
114
+ "model_usage": {
115
+ "name": "model_usage",
116
+ "type": "jsonb",
117
+ "primaryKey": false,
118
+ "notNull": false
119
+ },
120
+ "duration_api_ms": {
121
+ "name": "duration_api_ms",
122
+ "type": "integer",
123
+ "primaryKey": false,
124
+ "notNull": false
125
+ },
126
+ "web_search_requests": {
127
+ "name": "web_search_requests",
128
+ "type": "integer",
129
+ "primaryKey": false,
130
+ "notNull": false
131
+ },
132
+ "web_fetch_requests": {
133
+ "name": "web_fetch_requests",
134
+ "type": "integer",
135
+ "primaryKey": false,
136
+ "notNull": false
137
+ },
138
+ "metadata": {
139
+ "name": "metadata",
140
+ "type": "jsonb",
141
+ "primaryKey": false,
142
+ "notNull": false
143
+ },
144
+ "created_at": {
145
+ "name": "created_at",
146
+ "type": "timestamp with time zone",
147
+ "primaryKey": false,
148
+ "notNull": true,
149
+ "default": "now()"
150
+ },
151
+ "updated_at": {
152
+ "name": "updated_at",
153
+ "type": "timestamp with time zone",
154
+ "primaryKey": false,
155
+ "notNull": true,
156
+ "default": "now()"
157
+ }
158
+ },
159
+ "indexes": {
160
+ "idx_usage_workspace": {
161
+ "name": "idx_usage_workspace",
162
+ "columns": [
163
+ {
164
+ "expression": "workspace_id",
165
+ "isExpression": false,
166
+ "asc": true,
167
+ "nulls": "last"
168
+ }
169
+ ],
170
+ "isUnique": false,
171
+ "concurrently": false,
172
+ "method": "btree",
173
+ "with": {}
174
+ },
175
+ "idx_usage_workspace_created": {
176
+ "name": "idx_usage_workspace_created",
177
+ "columns": [
178
+ {
179
+ "expression": "workspace_id",
180
+ "isExpression": false,
181
+ "asc": true,
182
+ "nulls": "last"
183
+ },
184
+ {
185
+ "expression": "created_at",
186
+ "isExpression": false,
187
+ "asc": true,
188
+ "nulls": "last"
189
+ }
190
+ ],
191
+ "isUnique": false,
192
+ "concurrently": false,
193
+ "method": "btree",
194
+ "with": {}
195
+ },
196
+ "idx_usage_conversation": {
197
+ "name": "idx_usage_conversation",
198
+ "columns": [
199
+ {
200
+ "expression": "conversation_id",
201
+ "isExpression": false,
202
+ "asc": true,
203
+ "nulls": "last"
204
+ }
205
+ ],
206
+ "isUnique": false,
207
+ "concurrently": false,
208
+ "method": "btree",
209
+ "with": {}
210
+ },
211
+ "idx_usage_user": {
212
+ "name": "idx_usage_user",
213
+ "columns": [
214
+ {
215
+ "expression": "user_id",
216
+ "isExpression": false,
217
+ "asc": true,
218
+ "nulls": "last"
219
+ }
220
+ ],
221
+ "isUnique": false,
222
+ "concurrently": false,
223
+ "method": "btree",
224
+ "with": {}
225
+ }
226
+ },
227
+ "foreignKeys": {
228
+ "conversation_usage_conversation_id_conversations_id_fk": {
229
+ "name": "conversation_usage_conversation_id_conversations_id_fk",
230
+ "tableFrom": "conversation_usage",
231
+ "tableTo": "conversations",
232
+ "columnsFrom": [
233
+ "conversation_id"
234
+ ],
235
+ "columnsTo": [
236
+ "id"
237
+ ],
238
+ "onDelete": "cascade",
239
+ "onUpdate": "no action"
240
+ }
241
+ },
242
+ "compositePrimaryKeys": {},
243
+ "uniqueConstraints": {
244
+ "conversation_usage_conversation_id_unique": {
245
+ "name": "conversation_usage_conversation_id_unique",
246
+ "nullsNotDistinct": false,
247
+ "columns": [
248
+ "conversation_id"
249
+ ]
250
+ }
251
+ },
252
+ "policies": {},
253
+ "checkConstraints": {},
254
+ "isRLSEnabled": false
255
+ },
256
+ "public.conversations": {
257
+ "name": "conversations",
258
+ "schema": "",
259
+ "columns": {
260
+ "id": {
261
+ "name": "id",
262
+ "type": "uuid",
263
+ "primaryKey": true,
264
+ "notNull": true,
265
+ "default": "gen_random_uuid()"
266
+ },
267
+ "workspace_id": {
268
+ "name": "workspace_id",
269
+ "type": "text",
270
+ "primaryKey": false,
271
+ "notNull": true
272
+ },
273
+ "user_id": {
274
+ "name": "user_id",
275
+ "type": "text",
276
+ "primaryKey": false,
277
+ "notNull": true
278
+ },
279
+ "title": {
280
+ "name": "title",
281
+ "type": "text",
282
+ "primaryKey": false,
283
+ "notNull": true,
284
+ "default": "'Nova conversa'"
285
+ },
286
+ "thread_session_id": {
287
+ "name": "thread_session_id",
288
+ "type": "text",
289
+ "primaryKey": false,
290
+ "notNull": false
291
+ },
292
+ "model": {
293
+ "name": "model",
294
+ "type": "text",
295
+ "primaryKey": false,
296
+ "notNull": false,
297
+ "default": "'claude-sonnet-4-5'"
298
+ },
299
+ "applied_settings_at": {
300
+ "name": "applied_settings_at",
301
+ "type": "timestamp with time zone",
302
+ "primaryKey": false,
303
+ "notNull": false
304
+ },
305
+ "created_by": {
306
+ "name": "created_by",
307
+ "type": "text",
308
+ "primaryKey": false,
309
+ "notNull": false
310
+ },
311
+ "created_at": {
312
+ "name": "created_at",
313
+ "type": "timestamp with time zone",
314
+ "primaryKey": false,
315
+ "notNull": true,
316
+ "default": "now()"
317
+ },
318
+ "updated_at": {
319
+ "name": "updated_at",
320
+ "type": "timestamp with time zone",
321
+ "primaryKey": false,
322
+ "notNull": true,
323
+ "default": "now()"
324
+ }
325
+ },
326
+ "indexes": {
327
+ "idx_conversations_workspace": {
328
+ "name": "idx_conversations_workspace",
329
+ "columns": [
330
+ {
331
+ "expression": "workspace_id",
332
+ "isExpression": false,
333
+ "asc": true,
334
+ "nulls": "last"
335
+ }
336
+ ],
337
+ "isUnique": false,
338
+ "concurrently": false,
339
+ "method": "btree",
340
+ "with": {}
341
+ },
342
+ "idx_conversations_user": {
343
+ "name": "idx_conversations_user",
344
+ "columns": [
345
+ {
346
+ "expression": "user_id",
347
+ "isExpression": false,
348
+ "asc": true,
349
+ "nulls": "last"
350
+ }
351
+ ],
352
+ "isUnique": false,
353
+ "concurrently": false,
354
+ "method": "btree",
355
+ "with": {}
356
+ },
357
+ "idx_conversations_updated": {
358
+ "name": "idx_conversations_updated",
359
+ "columns": [
360
+ {
361
+ "expression": "updated_at",
362
+ "isExpression": false,
363
+ "asc": true,
364
+ "nulls": "last"
365
+ }
366
+ ],
367
+ "isUnique": false,
368
+ "concurrently": false,
369
+ "method": "btree",
370
+ "with": {}
371
+ }
372
+ },
373
+ "foreignKeys": {},
374
+ "compositePrimaryKeys": {},
375
+ "uniqueConstraints": {},
376
+ "policies": {},
377
+ "checkConstraints": {},
378
+ "isRLSEnabled": false
379
+ },
380
+ "public.external_skills": {
381
+ "name": "external_skills",
382
+ "schema": "",
383
+ "columns": {
384
+ "id": {
385
+ "name": "id",
386
+ "type": "serial",
387
+ "primaryKey": true,
388
+ "notNull": true
389
+ },
390
+ "workspace_id": {
391
+ "name": "workspace_id",
392
+ "type": "text",
393
+ "primaryKey": false,
394
+ "notNull": true
395
+ },
396
+ "ref": {
397
+ "name": "ref",
398
+ "type": "text",
399
+ "primaryKey": false,
400
+ "notNull": true
401
+ },
402
+ "name": {
403
+ "name": "name",
404
+ "type": "text",
405
+ "primaryKey": false,
406
+ "notNull": true
407
+ },
408
+ "description": {
409
+ "name": "description",
410
+ "type": "text",
411
+ "primaryKey": false,
412
+ "notNull": true,
413
+ "default": "''"
414
+ },
415
+ "runtime": {
416
+ "name": "runtime",
417
+ "type": "text",
418
+ "primaryKey": false,
419
+ "notNull": true,
420
+ "default": "'unknown'"
421
+ },
422
+ "allowed_tools": {
423
+ "name": "allowed_tools",
424
+ "type": "jsonb",
425
+ "primaryKey": false,
426
+ "notNull": true,
427
+ "default": "'[]'::jsonb"
428
+ },
429
+ "is_public": {
430
+ "name": "is_public",
431
+ "type": "boolean",
432
+ "primaryKey": false,
433
+ "notNull": true,
434
+ "default": true
435
+ },
436
+ "added_by_user_id": {
437
+ "name": "added_by_user_id",
438
+ "type": "text",
439
+ "primaryKey": false,
440
+ "notNull": true
441
+ },
442
+ "added_by_username": {
443
+ "name": "added_by_username",
444
+ "type": "text",
445
+ "primaryKey": false,
446
+ "notNull": true
447
+ },
448
+ "added_at": {
449
+ "name": "added_at",
450
+ "type": "timestamp with time zone",
451
+ "primaryKey": false,
452
+ "notNull": true,
453
+ "default": "now()"
454
+ },
455
+ "created_at": {
456
+ "name": "created_at",
457
+ "type": "timestamp with time zone",
458
+ "primaryKey": false,
459
+ "notNull": true,
460
+ "default": "now()"
461
+ },
462
+ "updated_at": {
463
+ "name": "updated_at",
464
+ "type": "timestamp with time zone",
465
+ "primaryKey": false,
466
+ "notNull": true,
467
+ "default": "now()"
468
+ }
469
+ },
470
+ "indexes": {},
471
+ "foreignKeys": {},
472
+ "compositePrimaryKeys": {},
473
+ "uniqueConstraints": {
474
+ "external_skills_workspace_ref_unique": {
475
+ "name": "external_skills_workspace_ref_unique",
476
+ "nullsNotDistinct": false,
477
+ "columns": [
478
+ "workspace_id",
479
+ "ref"
480
+ ]
481
+ }
482
+ },
483
+ "policies": {},
484
+ "checkConstraints": {},
485
+ "isRLSEnabled": false
486
+ },
487
+ "public.messages": {
488
+ "name": "messages",
489
+ "schema": "",
490
+ "columns": {
491
+ "id": {
492
+ "name": "id",
493
+ "type": "uuid",
494
+ "primaryKey": true,
495
+ "notNull": true,
496
+ "default": "gen_random_uuid()"
497
+ },
498
+ "conversation_id": {
499
+ "name": "conversation_id",
500
+ "type": "uuid",
501
+ "primaryKey": false,
502
+ "notNull": true
503
+ },
504
+ "role": {
505
+ "name": "role",
506
+ "type": "text",
507
+ "primaryKey": false,
508
+ "notNull": true
509
+ },
510
+ "content": {
511
+ "name": "content",
512
+ "type": "text",
513
+ "primaryKey": false,
514
+ "notNull": true
515
+ },
516
+ "status": {
517
+ "name": "status",
518
+ "type": "text",
519
+ "primaryKey": false,
520
+ "notNull": false,
521
+ "default": "'completed'"
522
+ },
523
+ "reasoning_data": {
524
+ "name": "reasoning_data",
525
+ "type": "jsonb",
526
+ "primaryKey": false,
527
+ "notNull": false
528
+ },
529
+ "files": {
530
+ "name": "files",
531
+ "type": "jsonb",
532
+ "primaryKey": false,
533
+ "notNull": false
534
+ },
535
+ "external_uuid": {
536
+ "name": "external_uuid",
537
+ "type": "text",
538
+ "primaryKey": false,
539
+ "notNull": false
540
+ },
541
+ "ttft": {
542
+ "name": "ttft",
543
+ "type": "text",
544
+ "primaryKey": false,
545
+ "notNull": false
546
+ },
547
+ "created_by": {
548
+ "name": "created_by",
549
+ "type": "text",
550
+ "primaryKey": false,
551
+ "notNull": false
552
+ },
553
+ "created_at": {
554
+ "name": "created_at",
555
+ "type": "timestamp with time zone",
556
+ "primaryKey": false,
557
+ "notNull": true,
558
+ "default": "now()"
559
+ },
560
+ "updated_at": {
561
+ "name": "updated_at",
562
+ "type": "timestamp with time zone",
563
+ "primaryKey": false,
564
+ "notNull": false
565
+ }
566
+ },
567
+ "indexes": {
568
+ "idx_messages_conversation": {
569
+ "name": "idx_messages_conversation",
570
+ "columns": [
571
+ {
572
+ "expression": "conversation_id",
573
+ "isExpression": false,
574
+ "asc": true,
575
+ "nulls": "last"
576
+ }
577
+ ],
578
+ "isUnique": false,
579
+ "concurrently": false,
580
+ "method": "btree",
581
+ "with": {}
582
+ },
583
+ "idx_messages_created": {
584
+ "name": "idx_messages_created",
585
+ "columns": [
586
+ {
587
+ "expression": "created_at",
588
+ "isExpression": false,
589
+ "asc": true,
590
+ "nulls": "last"
591
+ }
592
+ ],
593
+ "isUnique": false,
594
+ "concurrently": false,
595
+ "method": "btree",
596
+ "with": {}
597
+ }
598
+ },
599
+ "foreignKeys": {
600
+ "messages_conversation_id_conversations_id_fk": {
601
+ "name": "messages_conversation_id_conversations_id_fk",
602
+ "tableFrom": "messages",
603
+ "tableTo": "conversations",
604
+ "columnsFrom": [
605
+ "conversation_id"
606
+ ],
607
+ "columnsTo": [
608
+ "id"
609
+ ],
610
+ "onDelete": "cascade",
611
+ "onUpdate": "no action"
612
+ }
613
+ },
614
+ "compositePrimaryKeys": {},
615
+ "uniqueConstraints": {},
616
+ "policies": {},
617
+ "checkConstraints": {},
618
+ "isRLSEnabled": false
619
+ },
620
+ "public.workspace_settings": {
621
+ "name": "workspace_settings",
622
+ "schema": "",
623
+ "columns": {
624
+ "workspace_id": {
625
+ "name": "workspace_id",
626
+ "type": "text",
627
+ "primaryKey": true,
628
+ "notNull": true
629
+ },
630
+ "system_message": {
631
+ "name": "system_message",
632
+ "type": "text",
633
+ "primaryKey": false,
634
+ "notNull": false
635
+ },
636
+ "context_files": {
637
+ "name": "context_files",
638
+ "type": "jsonb",
639
+ "primaryKey": false,
640
+ "notNull": false
641
+ },
642
+ "canvas_tools": {
643
+ "name": "canvas_tools",
644
+ "type": "jsonb",
645
+ "primaryKey": false,
646
+ "notNull": false
647
+ },
648
+ "knowledge_sources": {
649
+ "name": "knowledge_sources",
650
+ "type": "jsonb",
651
+ "primaryKey": false,
652
+ "notNull": false
653
+ },
654
+ "created_at": {
655
+ "name": "created_at",
656
+ "type": "timestamp with time zone",
657
+ "primaryKey": false,
658
+ "notNull": true,
659
+ "default": "now()"
660
+ },
661
+ "updated_at": {
662
+ "name": "updated_at",
663
+ "type": "timestamp with time zone",
664
+ "primaryKey": false,
665
+ "notNull": true,
666
+ "default": "now()"
667
+ }
668
+ },
669
+ "indexes": {},
670
+ "foreignKeys": {},
671
+ "compositePrimaryKeys": {},
672
+ "uniqueConstraints": {},
673
+ "policies": {},
674
+ "checkConstraints": {},
675
+ "isRLSEnabled": false
676
+ }
677
+ },
678
+ "enums": {},
679
+ "schemas": {},
680
+ "sequences": {},
681
+ "roles": {},
682
+ "policies": {},
683
+ "views": {},
684
+ "_meta": {
685
+ "columns": {},
686
+ "schemas": {},
687
+ "tables": {}
688
+ }
689
+ }