@shumai-one/shumai 0.0.1

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.
@@ -0,0 +1,809 @@
1
+ -- CreateSchema
2
+ CREATE SCHEMA IF NOT EXISTS "public";
3
+
4
+ -- CreateExtension
5
+ CREATE EXTENSION IF NOT EXISTS "vector";
6
+
7
+ -- CreateEnum
8
+ CREATE TYPE "UserType" AS ENUM ('human', 'agent');
9
+
10
+ -- CreateEnum
11
+ CREATE TYPE "AssetType" AS ENUM ('folder', 'file', 'share', 'root', 'attachment', 'version_stack', 'share_root', 'symlink');
12
+
13
+ -- CreateEnum
14
+ CREATE TYPE "AssetStatus" AS ENUM ('uploading', 'uploaded', 'processing', 'processed', 'trashed', 'pending_purge');
15
+
16
+ -- CreateEnum
17
+ CREATE TYPE "StorageKeyStatus" AS ENUM ('active', 'purging');
18
+
19
+ -- CreateEnum
20
+ CREATE TYPE "InviteRole" AS ENUM ('editor', 'reviewer');
21
+
22
+ -- CreateEnum
23
+ CREATE TYPE "MetadataFieldScope" AS ENUM ('SYSTEM', 'TEAM', 'PROJECT');
24
+
25
+ -- CreateEnum
26
+ CREATE TYPE "NotificationType" AS ENUM ('comment_created', 'reply_created', 'mention', 'successful_file_uploaded', 'metadata_field_updated_status', 'new_user_join_team', 'new_user_join_project');
27
+
28
+ -- CreateEnum
29
+ CREATE TYPE "ProjectMemberRole" AS ENUM ('owner', 'editor', 'reviewer');
30
+
31
+ -- CreateEnum
32
+ CREATE TYPE "TaskType" AS ENUM ('upload');
33
+
34
+ -- CreateEnum
35
+ CREATE TYPE "TaskStatus" AS ENUM ('pending', 'uploading', 'completed', 'failed');
36
+
37
+ -- CreateEnum
38
+ CREATE TYPE "TeamMemberRole" AS ENUM ('owner', 'editor', 'reviewer');
39
+
40
+ -- CreateEnum
41
+ CREATE TYPE "TeamMemberScope" AS ENUM ('team', 'project');
42
+
43
+ -- CreateEnum
44
+ CREATE TYPE "WorkflowTaskType" AS ENUM ('transcode', 'ai_metadata_autofill', 'chat', 'ai_embedding', 'query_embedding_for_search');
45
+
46
+ -- CreateEnum
47
+ CREATE TYPE "WorkflowTaskStatus" AS ENUM ('pending', 'processing', 'completed', 'failed');
48
+
49
+ -- CreateEnum
50
+ CREATE TYPE "AgentType" AS ENUM ('chat', 'autofill', 'embedding');
51
+
52
+ -- CreateTable
53
+ CREATE TABLE "users" (
54
+ "id" TEXT NOT NULL,
55
+ "type" "UserType" NOT NULL DEFAULT 'human',
56
+ "name" TEXT NOT NULL,
57
+ "email" TEXT NOT NULL,
58
+ "email_verified" BOOLEAN NOT NULL DEFAULT false,
59
+ "image" TEXT,
60
+ "password" TEXT,
61
+ "agent_settings" JSONB,
62
+ "guest_email" TEXT,
63
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
64
+ "updated_at" TIMESTAMP(3) NOT NULL,
65
+
66
+ CONSTRAINT "users_pkey" PRIMARY KEY ("id")
67
+ );
68
+
69
+ -- CreateTable
70
+ CREATE TABLE "sessions" (
71
+ "id" TEXT NOT NULL,
72
+ "expires_at" TIMESTAMP(3) NOT NULL,
73
+ "token" TEXT NOT NULL,
74
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
75
+ "updated_at" TIMESTAMP(3) NOT NULL,
76
+ "ip_address" TEXT,
77
+ "user_agent" TEXT,
78
+ "user_id" TEXT NOT NULL,
79
+
80
+ CONSTRAINT "sessions_pkey" PRIMARY KEY ("id")
81
+ );
82
+
83
+ -- CreateTable
84
+ CREATE TABLE "accounts" (
85
+ "id" TEXT NOT NULL,
86
+ "account_id" TEXT NOT NULL,
87
+ "provider_id" TEXT NOT NULL,
88
+ "user_id" TEXT NOT NULL,
89
+ "access_token" TEXT,
90
+ "refresh_token" TEXT,
91
+ "id_token" TEXT,
92
+ "access_token_expires_at" TIMESTAMP(3),
93
+ "refresh_token_expires_at" TIMESTAMP(3),
94
+ "scope" TEXT,
95
+ "password" TEXT,
96
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
97
+ "updated_at" TIMESTAMP(3) NOT NULL,
98
+
99
+ CONSTRAINT "accounts_pkey" PRIMARY KEY ("id")
100
+ );
101
+
102
+ -- CreateTable
103
+ CREATE TABLE "verifications" (
104
+ "id" TEXT NOT NULL,
105
+ "identifier" TEXT NOT NULL,
106
+ "value" TEXT NOT NULL,
107
+ "expires_at" TIMESTAMP(3) NOT NULL,
108
+ "created_at" TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP,
109
+ "updated_at" TIMESTAMP(3),
110
+
111
+ CONSTRAINT "verifications_pkey" PRIMARY KEY ("id")
112
+ );
113
+
114
+ -- CreateTable
115
+ CREATE TABLE "auth_tokens" (
116
+ "id" TEXT NOT NULL,
117
+ "access_token" TEXT NOT NULL,
118
+ "refresh_token" TEXT NOT NULL,
119
+ "access_token_expires_at" TIMESTAMP(3) NOT NULL,
120
+ "refresh_token_expires_at" TIMESTAMP(3) NOT NULL,
121
+ "user_id" TEXT NOT NULL,
122
+
123
+ CONSTRAINT "auth_tokens_pkey" PRIMARY KEY ("id")
124
+ );
125
+
126
+ -- CreateTable
127
+ CREATE TABLE "teams" (
128
+ "id" TEXT NOT NULL,
129
+ "name" TEXT NOT NULL,
130
+ "settings" JSONB DEFAULT '{}',
131
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
132
+ "updated_at" TIMESTAMP(3) NOT NULL,
133
+ "root_folder_id" TEXT,
134
+
135
+ CONSTRAINT "teams_pkey" PRIMARY KEY ("id")
136
+ );
137
+
138
+ -- CreateTable
139
+ CREATE TABLE "sandboxes" (
140
+ "id" TEXT NOT NULL,
141
+ "allowedDomains" TEXT[] DEFAULT ARRAY['npmjs.org', '*.npmjs.org', 'registry.npmjs.org', 'registry.yarnpkg.com', 'pypi.org', '*.pypi.org', 'github.com', '*.github.com', 'api.github.com', 'raw.githubusercontent.com']::TEXT[],
142
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
143
+ "updated_at" TIMESTAMP(3) NOT NULL,
144
+ "team_id" TEXT NOT NULL,
145
+
146
+ CONSTRAINT "sandboxes_pkey" PRIMARY KEY ("id")
147
+ );
148
+
149
+ -- CreateTable
150
+ CREATE TABLE "skills" (
151
+ "id" TEXT NOT NULL,
152
+ "name" TEXT NOT NULL,
153
+ "description" TEXT,
154
+ "config" JSONB DEFAULT '{}',
155
+ "asset_id" TEXT NOT NULL,
156
+ "hash" TEXT NOT NULL,
157
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
158
+ "updated_at" TIMESTAMP(3) NOT NULL,
159
+ "team_id" TEXT NOT NULL,
160
+
161
+ CONSTRAINT "skills_pkey" PRIMARY KEY ("id")
162
+ );
163
+
164
+ -- CreateTable
165
+ CREATE TABLE "team_members" (
166
+ "id" TEXT NOT NULL,
167
+ "role" "TeamMemberRole" NOT NULL,
168
+ "scope" "TeamMemberScope" NOT NULL DEFAULT 'team',
169
+ "team_id" TEXT NOT NULL,
170
+ "user_id" TEXT NOT NULL,
171
+ "last_read_notification_id" TEXT,
172
+
173
+ CONSTRAINT "team_members_pkey" PRIMARY KEY ("id")
174
+ );
175
+
176
+ -- CreateTable
177
+ CREATE TABLE "projects" (
178
+ "id" TEXT NOT NULL,
179
+ "name" TEXT NOT NULL,
180
+ "cover_image_key" TEXT,
181
+ "metadata_overrides" JSONB,
182
+ "enable_notification" BOOLEAN NOT NULL DEFAULT true,
183
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
184
+ "updated_at" TIMESTAMP(3) NOT NULL,
185
+ "team_id" TEXT NOT NULL,
186
+ "root_folder_id" TEXT,
187
+ "share_root_id" TEXT,
188
+
189
+ CONSTRAINT "projects_pkey" PRIMARY KEY ("id")
190
+ );
191
+
192
+ -- CreateTable
193
+ CREATE TABLE "project_members" (
194
+ "id" TEXT NOT NULL,
195
+ "role" "ProjectMemberRole" NOT NULL,
196
+ "project_id" TEXT NOT NULL,
197
+ "team_member_id" TEXT NOT NULL,
198
+
199
+ CONSTRAINT "project_members_pkey" PRIMARY KEY ("id")
200
+ );
201
+
202
+ -- CreateTable
203
+ CREATE TABLE "share_links" (
204
+ "id" TEXT NOT NULL,
205
+ "name" TEXT NOT NULL,
206
+ "expire_at" TIMESTAMP(3),
207
+ "password" TEXT,
208
+ "is_disabled" BOOLEAN NOT NULL DEFAULT false,
209
+ "default_sort_order" TEXT,
210
+ "field_visibility" JSONB,
211
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
212
+ "updated_at" TIMESTAMP(3) NOT NULL,
213
+ "project_id" TEXT NOT NULL,
214
+ "root_folder_id" TEXT NOT NULL,
215
+
216
+ CONSTRAINT "share_links_pkey" PRIMARY KEY ("id")
217
+ );
218
+
219
+ -- CreateTable
220
+ CREATE TABLE "assets" (
221
+ "id" TEXT NOT NULL,
222
+ "name" TEXT NOT NULL DEFAULT '',
223
+ "name_ngram" TEXT[] DEFAULT ARRAY[]::TEXT[],
224
+ "type" "AssetType" NOT NULL,
225
+ "media_type" TEXT,
226
+ "file_count" INTEGER NOT NULL DEFAULT 0,
227
+ "size_byte" INTEGER NOT NULL DEFAULT 0,
228
+ "status" "AssetStatus" NOT NULL,
229
+ "transcode_task_id" TEXT,
230
+ "media" JSONB,
231
+ "is_deleted" BOOLEAN NOT NULL DEFAULT false,
232
+ "deleted_at" TIMESTAMP(3),
233
+ "sort_index" TEXT,
234
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
235
+ "updated_at" TIMESTAMP(3) NOT NULL,
236
+ "parent_id" TEXT,
237
+ "target_id" TEXT,
238
+ "storage_key_id" TEXT,
239
+ "creator_id" TEXT,
240
+ "task_id" TEXT,
241
+ "project_id" TEXT,
242
+
243
+ CONSTRAINT "assets_pkey" PRIMARY KEY ("id")
244
+ );
245
+
246
+ -- CreateTable
247
+ CREATE TABLE "storage_keys" (
248
+ "id" TEXT NOT NULL,
249
+ "key" TEXT NOT NULL,
250
+ "status" "StorageKeyStatus" NOT NULL DEFAULT 'active',
251
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
252
+ "updated_at" TIMESTAMP(3) NOT NULL,
253
+
254
+ CONSTRAINT "storage_keys_pkey" PRIMARY KEY ("id")
255
+ );
256
+
257
+ -- CreateTable
258
+ CREATE TABLE "asset_metadata_values" (
259
+ "id" TEXT NOT NULL,
260
+ "asset_id" TEXT NOT NULL,
261
+ "field_key" TEXT NOT NULL,
262
+ "string_value" TEXT,
263
+ "number_value" DOUBLE PRECISION,
264
+ "boolean_value" BOOLEAN,
265
+ "json_value" JSONB,
266
+ "date_value" TIMESTAMP(3),
267
+
268
+ CONSTRAINT "asset_metadata_values_pkey" PRIMARY KEY ("id")
269
+ );
270
+
271
+ -- CreateTable
272
+ CREATE TABLE "asset_comments" (
273
+ "id" TEXT NOT NULL,
274
+ "message" TEXT,
275
+ "annotation" JSONB,
276
+ "second" DOUBLE PRECISION,
277
+ "session_id" TEXT,
278
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
279
+ "updated_at" TIMESTAMP(3) NOT NULL,
280
+ "asset_id" TEXT NOT NULL,
281
+ "creator_id" TEXT,
282
+ "reply_to_id" TEXT,
283
+
284
+ CONSTRAINT "asset_comments_pkey" PRIMARY KEY ("id")
285
+ );
286
+
287
+ -- CreateTable
288
+ CREATE TABLE "asset_comment_attachments" (
289
+ "id" TEXT NOT NULL,
290
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
291
+ "updated_at" TIMESTAMP(3) NOT NULL,
292
+ "comment_id" TEXT NOT NULL,
293
+ "asset_id" TEXT NOT NULL,
294
+
295
+ CONSTRAINT "asset_comment_attachments_pkey" PRIMARY KEY ("id")
296
+ );
297
+
298
+ -- CreateTable
299
+ CREATE TABLE "asset_embeddings" (
300
+ "id" TEXT NOT NULL,
301
+ "embedding" vector(1536),
302
+ "start_time" DOUBLE PRECISION,
303
+ "end_time" DOUBLE PRECISION,
304
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
305
+ "updated_at" TIMESTAMP(3) NOT NULL,
306
+ "asset_id" TEXT NOT NULL,
307
+
308
+ CONSTRAINT "asset_embeddings_pkey" PRIMARY KEY ("id")
309
+ );
310
+
311
+ -- CreateTable
312
+ CREATE TABLE "invites" (
313
+ "id" TEXT NOT NULL,
314
+ "code" TEXT NOT NULL,
315
+ "role" "InviteRole",
316
+ "used" BOOLEAN NOT NULL DEFAULT false,
317
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
318
+ "updated_at" TIMESTAMP(3) NOT NULL,
319
+ "team_id" TEXT NOT NULL,
320
+ "project_id" TEXT,
321
+ "inviter_id" TEXT NOT NULL,
322
+
323
+ CONSTRAINT "invites_pkey" PRIMARY KEY ("id")
324
+ );
325
+
326
+ -- CreateTable
327
+ CREATE TABLE "metadata_fields" (
328
+ "id" TEXT NOT NULL,
329
+ "key" TEXT NOT NULL,
330
+ "scope" "MetadataFieldScope",
331
+ "config" JSONB,
332
+ "read_only" BOOLEAN NOT NULL DEFAULT false,
333
+ "ai_autofill" BOOLEAN NOT NULL DEFAULT false,
334
+ "description" TEXT NOT NULL DEFAULT '',
335
+ "team_id" TEXT,
336
+ "project_id" TEXT,
337
+
338
+ CONSTRAINT "metadata_fields_pkey" PRIMARY KEY ("id")
339
+ );
340
+
341
+ -- CreateTable
342
+ CREATE TABLE "notifications" (
343
+ "id" TEXT NOT NULL,
344
+ "type" "NotificationType",
345
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
346
+ "updated_at" TIMESTAMP(3) NOT NULL,
347
+ "team_id" TEXT NOT NULL,
348
+ "project_id" TEXT,
349
+ "creator_id" TEXT,
350
+ "asset_id" TEXT,
351
+ "task_id" TEXT,
352
+ "user_id" TEXT,
353
+
354
+ CONSTRAINT "notifications_pkey" PRIMARY KEY ("id")
355
+ );
356
+
357
+ -- CreateTable
358
+ CREATE TABLE "system_settings" (
359
+ "id" TEXT NOT NULL,
360
+ "key" TEXT NOT NULL,
361
+ "value" JSONB,
362
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
363
+ "updated_at" TIMESTAMP(3) NOT NULL,
364
+
365
+ CONSTRAINT "system_settings_pkey" PRIMARY KEY ("id")
366
+ );
367
+
368
+ -- CreateTable
369
+ CREATE TABLE "tasks" (
370
+ "id" TEXT NOT NULL,
371
+ "type" "TaskType",
372
+ "status" "TaskStatus" NOT NULL DEFAULT 'pending',
373
+ "name" TEXT,
374
+ "total" INTEGER,
375
+ "uploaded" INTEGER NOT NULL DEFAULT 0,
376
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
377
+ "updated_at" TIMESTAMP(3) NOT NULL,
378
+ "creator_id" TEXT,
379
+
380
+ CONSTRAINT "tasks_pkey" PRIMARY KEY ("id")
381
+ );
382
+
383
+ -- CreateTable
384
+ CREATE TABLE "workflow_tasks" (
385
+ "id" TEXT NOT NULL,
386
+ "uid" UUID NOT NULL,
387
+ "team_id" TEXT,
388
+ "project_id" TEXT,
389
+ "asset_id" TEXT NOT NULL,
390
+ "type" "WorkflowTaskType",
391
+ "status" "WorkflowTaskStatus",
392
+ "payload" JSONB,
393
+ "output" JSONB,
394
+ "heartbeat" TIMESTAMP(3),
395
+ "input_tokens" INTEGER NOT NULL DEFAULT 0,
396
+ "output_tokens" INTEGER NOT NULL DEFAULT 0,
397
+ "model" TEXT,
398
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
399
+ "updated_at" TIMESTAMP(3) NOT NULL,
400
+
401
+ CONSTRAINT "workflow_tasks_pkey" PRIMARY KEY ("id")
402
+ );
403
+
404
+ -- CreateTable
405
+ CREATE TABLE "agents" (
406
+ "id" TEXT NOT NULL,
407
+ "type" "AgentType" NOT NULL,
408
+ "enabled" BOOLEAN NOT NULL DEFAULT true,
409
+ "soul" TEXT,
410
+ "provider_id" TEXT,
411
+ "model_id" TEXT,
412
+ "team_id" TEXT NOT NULL,
413
+ "config" JSONB NOT NULL,
414
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
415
+ "updated_at" TIMESTAMP(3) NOT NULL,
416
+
417
+ CONSTRAINT "agents_pkey" PRIMARY KEY ("id")
418
+ );
419
+
420
+ -- CreateTable
421
+ CREATE TABLE "agent_skills" (
422
+ "id" TEXT NOT NULL,
423
+ "agent_id" TEXT NOT NULL,
424
+ "skill_id" TEXT NOT NULL,
425
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
426
+ "updated_at" TIMESTAMP(3) NOT NULL,
427
+
428
+ CONSTRAINT "agent_skills_pkey" PRIMARY KEY ("id")
429
+ );
430
+
431
+ -- CreateTable
432
+ CREATE TABLE "agent_sessions" (
433
+ "id" TEXT NOT NULL,
434
+ "agent_id" TEXT NOT NULL,
435
+ "user_id" TEXT,
436
+ "cwd" TEXT NOT NULL,
437
+ "leaf_id" TEXT,
438
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
439
+ "updated_at" TIMESTAMP(3) NOT NULL,
440
+
441
+ CONSTRAINT "agent_sessions_pkey" PRIMARY KEY ("id")
442
+ );
443
+
444
+ -- CreateTable
445
+ CREATE TABLE "agent_session_entries" (
446
+ "id" TEXT NOT NULL,
447
+ "session_id" TEXT NOT NULL,
448
+ "entry" JSONB NOT NULL,
449
+
450
+ CONSTRAINT "agent_session_entries_pkey" PRIMARY KEY ("id")
451
+ );
452
+
453
+ -- CreateTable
454
+ CREATE TABLE "user_metadata" (
455
+ "id" TEXT NOT NULL,
456
+ "key" TEXT NOT NULL,
457
+ "value" JSONB NOT NULL,
458
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
459
+ "updated_at" TIMESTAMP(3) NOT NULL,
460
+ "user_id" TEXT NOT NULL,
461
+ "team_id" TEXT NOT NULL,
462
+
463
+ CONSTRAINT "user_metadata_pkey" PRIMARY KEY ("id")
464
+ );
465
+
466
+ -- CreateTable
467
+ CREATE TABLE "models" (
468
+ "id" TEXT NOT NULL,
469
+ "model_id" TEXT NOT NULL,
470
+ "name" TEXT NOT NULL DEFAULT '',
471
+ "config" JSONB NOT NULL,
472
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
473
+ "updated_at" TIMESTAMP(3) NOT NULL,
474
+ "provider_id" TEXT NOT NULL,
475
+
476
+ CONSTRAINT "models_pkey" PRIMARY KEY ("id")
477
+ );
478
+
479
+ -- CreateTable
480
+ CREATE TABLE "providers" (
481
+ "id" TEXT NOT NULL,
482
+ "name" TEXT NOT NULL,
483
+ "is_builtin" BOOLEAN NOT NULL DEFAULT false,
484
+ "config" JSONB NOT NULL,
485
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
486
+ "updated_at" TIMESTAMP(3) NOT NULL,
487
+ "team_id" TEXT NOT NULL,
488
+
489
+ CONSTRAINT "providers_pkey" PRIMARY KEY ("id")
490
+ );
491
+
492
+ -- CreateTable
493
+ CREATE TABLE "collections" (
494
+ "id" TEXT NOT NULL,
495
+ "name" TEXT NOT NULL,
496
+ "filter" JSONB NOT NULL,
497
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
498
+ "updated_at" TIMESTAMP(3) NOT NULL,
499
+ "project_id" TEXT NOT NULL,
500
+
501
+ CONSTRAINT "collections_pkey" PRIMARY KEY ("id")
502
+ );
503
+
504
+ -- CreateIndex
505
+ CREATE UNIQUE INDEX "users_email_key" ON "users"("email");
506
+
507
+ -- CreateIndex
508
+ CREATE UNIQUE INDEX "sessions_token_key" ON "sessions"("token");
509
+
510
+ -- CreateIndex
511
+ CREATE UNIQUE INDEX "auth_tokens_access_token_key" ON "auth_tokens"("access_token");
512
+
513
+ -- CreateIndex
514
+ CREATE UNIQUE INDEX "auth_tokens_refresh_token_key" ON "auth_tokens"("refresh_token");
515
+
516
+ -- CreateIndex
517
+ CREATE UNIQUE INDEX "teams_root_folder_id_key" ON "teams"("root_folder_id");
518
+
519
+ -- CreateIndex
520
+ CREATE UNIQUE INDEX "sandboxes_team_id_key" ON "sandboxes"("team_id");
521
+
522
+ -- CreateIndex
523
+ CREATE UNIQUE INDEX "skills_team_id_name_key" ON "skills"("team_id", "name");
524
+
525
+ -- CreateIndex
526
+ CREATE UNIQUE INDEX "team_members_last_read_notification_id_key" ON "team_members"("last_read_notification_id");
527
+
528
+ -- CreateIndex
529
+ CREATE UNIQUE INDEX "team_members_team_id_user_id_key" ON "team_members"("team_id", "user_id");
530
+
531
+ -- CreateIndex
532
+ CREATE UNIQUE INDEX "projects_root_folder_id_key" ON "projects"("root_folder_id");
533
+
534
+ -- CreateIndex
535
+ CREATE UNIQUE INDEX "projects_share_root_id_key" ON "projects"("share_root_id");
536
+
537
+ -- CreateIndex
538
+ CREATE INDEX "projects_created_at_idx" ON "projects"("created_at");
539
+
540
+ -- CreateIndex
541
+ CREATE INDEX "projects_updated_at_idx" ON "projects"("updated_at");
542
+
543
+ -- CreateIndex
544
+ CREATE UNIQUE INDEX "project_members_project_id_team_member_id_key" ON "project_members"("project_id", "team_member_id");
545
+
546
+ -- CreateIndex
547
+ CREATE UNIQUE INDEX "share_links_root_folder_id_key" ON "share_links"("root_folder_id");
548
+
549
+ -- CreateIndex
550
+ CREATE INDEX "assets_type_idx" ON "assets"("type");
551
+
552
+ -- CreateIndex
553
+ CREATE INDEX "assets_status_idx" ON "assets"("status");
554
+
555
+ -- CreateIndex
556
+ CREATE INDEX "assets_created_at_idx" ON "assets"("created_at");
557
+
558
+ -- CreateIndex
559
+ CREATE INDEX "assets_updated_at_idx" ON "assets"("updated_at");
560
+
561
+ -- CreateIndex
562
+ CREATE INDEX "assets_sort_index_idx" ON "assets"("sort_index");
563
+
564
+ -- CreateIndex
565
+ CREATE INDEX "assets_is_deleted_idx" ON "assets"("is_deleted");
566
+
567
+ -- CreateIndex
568
+ CREATE INDEX "assets_deleted_at_idx" ON "assets"("deleted_at");
569
+
570
+ -- CreateIndex
571
+ CREATE INDEX "assets_name_ngram_idx" ON "assets" USING GIN ("name_ngram");
572
+
573
+ -- CreateIndex
574
+ CREATE UNIQUE INDEX "assets_parent_id_target_id_key" ON "assets"("parent_id", "target_id");
575
+
576
+ -- CreateIndex
577
+ CREATE UNIQUE INDEX "storage_keys_key_key" ON "storage_keys"("key");
578
+
579
+ -- CreateIndex
580
+ CREATE INDEX "asset_metadata_values_number_value_idx" ON "asset_metadata_values"("number_value");
581
+
582
+ -- CreateIndex
583
+ CREATE INDEX "asset_metadata_values_string_value_idx" ON "asset_metadata_values"("string_value");
584
+
585
+ -- CreateIndex
586
+ CREATE INDEX "asset_metadata_values_boolean_value_idx" ON "asset_metadata_values"("boolean_value");
587
+
588
+ -- CreateIndex
589
+ CREATE INDEX "asset_metadata_values_date_value_idx" ON "asset_metadata_values"("date_value");
590
+
591
+ -- CreateIndex
592
+ CREATE INDEX "asset_metadata_values_json_value_idx" ON "asset_metadata_values" USING GIN ("json_value");
593
+
594
+ -- CreateIndex
595
+ CREATE UNIQUE INDEX "asset_metadata_values_asset_id_field_key_key" ON "asset_metadata_values"("asset_id", "field_key");
596
+
597
+ -- CreateIndex
598
+ CREATE UNIQUE INDEX "invites_code_key" ON "invites"("code");
599
+
600
+ -- CreateIndex
601
+ CREATE UNIQUE INDEX "metadata_fields_key_key" ON "metadata_fields"("key");
602
+
603
+ -- CreateIndex
604
+ CREATE UNIQUE INDEX "system_settings_key_key" ON "system_settings"("key");
605
+
606
+ -- CreateIndex
607
+ CREATE INDEX "system_settings_key_idx" ON "system_settings"("key");
608
+
609
+ -- CreateIndex
610
+ CREATE INDEX "workflow_tasks_status_heartbeat_idx" ON "workflow_tasks"("status", "heartbeat");
611
+
612
+ -- CreateIndex
613
+ CREATE INDEX "workflow_tasks_asset_id_type_idx" ON "workflow_tasks"("asset_id", "type");
614
+
615
+ -- CreateIndex
616
+ CREATE INDEX "workflow_tasks_team_id_idx" ON "workflow_tasks"("team_id");
617
+
618
+ -- CreateIndex
619
+ CREATE INDEX "workflow_tasks_project_id_idx" ON "workflow_tasks"("project_id");
620
+
621
+ -- CreateIndex
622
+ CREATE INDEX "workflow_tasks_type_idx" ON "workflow_tasks"("type");
623
+
624
+ -- CreateIndex
625
+ CREATE UNIQUE INDEX "agent_skills_agent_id_skill_id_key" ON "agent_skills"("agent_id", "skill_id");
626
+
627
+ -- CreateIndex
628
+ CREATE INDEX "agent_session_entries_session_id_idx" ON "agent_session_entries"("session_id");
629
+
630
+ -- CreateIndex
631
+ CREATE UNIQUE INDEX "user_metadata_user_id_team_id_key_key" ON "user_metadata"("user_id", "team_id", "key");
632
+
633
+ -- CreateIndex
634
+ CREATE UNIQUE INDEX "models_provider_id_model_id_key" ON "models"("provider_id", "model_id");
635
+
636
+ -- CreateIndex
637
+ CREATE UNIQUE INDEX "providers_team_id_name_key" ON "providers"("team_id", "name");
638
+
639
+ -- CreateIndex
640
+ CREATE INDEX "collections_project_id_created_at_idx" ON "collections"("project_id", "created_at" DESC);
641
+
642
+ -- AddForeignKey
643
+ ALTER TABLE "sessions" ADD CONSTRAINT "sessions_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
644
+
645
+ -- AddForeignKey
646
+ ALTER TABLE "accounts" ADD CONSTRAINT "accounts_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
647
+
648
+ -- AddForeignKey
649
+ ALTER TABLE "auth_tokens" ADD CONSTRAINT "auth_tokens_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
650
+
651
+ -- AddForeignKey
652
+ ALTER TABLE "teams" ADD CONSTRAINT "teams_root_folder_id_fkey" FOREIGN KEY ("root_folder_id") REFERENCES "assets"("id") ON DELETE SET NULL ON UPDATE CASCADE;
653
+
654
+ -- AddForeignKey
655
+ ALTER TABLE "sandboxes" ADD CONSTRAINT "sandboxes_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE CASCADE;
656
+
657
+ -- AddForeignKey
658
+ ALTER TABLE "skills" ADD CONSTRAINT "skills_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE CASCADE;
659
+
660
+ -- AddForeignKey
661
+ ALTER TABLE "team_members" ADD CONSTRAINT "team_members_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
662
+
663
+ -- AddForeignKey
664
+ ALTER TABLE "team_members" ADD CONSTRAINT "team_members_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
665
+
666
+ -- AddForeignKey
667
+ ALTER TABLE "team_members" ADD CONSTRAINT "team_members_last_read_notification_id_fkey" FOREIGN KEY ("last_read_notification_id") REFERENCES "notifications"("id") ON DELETE SET NULL ON UPDATE CASCADE;
668
+
669
+ -- AddForeignKey
670
+ ALTER TABLE "projects" ADD CONSTRAINT "projects_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
671
+
672
+ -- AddForeignKey
673
+ ALTER TABLE "projects" ADD CONSTRAINT "projects_root_folder_id_fkey" FOREIGN KEY ("root_folder_id") REFERENCES "assets"("id") ON DELETE SET NULL ON UPDATE CASCADE;
674
+
675
+ -- AddForeignKey
676
+ ALTER TABLE "projects" ADD CONSTRAINT "projects_share_root_id_fkey" FOREIGN KEY ("share_root_id") REFERENCES "assets"("id") ON DELETE SET NULL ON UPDATE CASCADE;
677
+
678
+ -- AddForeignKey
679
+ ALTER TABLE "project_members" ADD CONSTRAINT "project_members_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE CASCADE ON UPDATE CASCADE;
680
+
681
+ -- AddForeignKey
682
+ ALTER TABLE "project_members" ADD CONSTRAINT "project_members_team_member_id_fkey" FOREIGN KEY ("team_member_id") REFERENCES "team_members"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
683
+
684
+ -- AddForeignKey
685
+ ALTER TABLE "share_links" ADD CONSTRAINT "share_links_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE CASCADE ON UPDATE CASCADE;
686
+
687
+ -- AddForeignKey
688
+ ALTER TABLE "share_links" ADD CONSTRAINT "share_links_root_folder_id_fkey" FOREIGN KEY ("root_folder_id") REFERENCES "assets"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
689
+
690
+ -- AddForeignKey
691
+ ALTER TABLE "assets" ADD CONSTRAINT "assets_parent_id_fkey" FOREIGN KEY ("parent_id") REFERENCES "assets"("id") ON DELETE SET NULL ON UPDATE CASCADE;
692
+
693
+ -- AddForeignKey
694
+ ALTER TABLE "assets" ADD CONSTRAINT "assets_target_id_fkey" FOREIGN KEY ("target_id") REFERENCES "assets"("id") ON DELETE SET NULL ON UPDATE CASCADE;
695
+
696
+ -- AddForeignKey
697
+ ALTER TABLE "assets" ADD CONSTRAINT "assets_storage_key_id_fkey" FOREIGN KEY ("storage_key_id") REFERENCES "storage_keys"("id") ON DELETE SET NULL ON UPDATE CASCADE;
698
+
699
+ -- AddForeignKey
700
+ ALTER TABLE "assets" ADD CONSTRAINT "assets_creator_id_fkey" FOREIGN KEY ("creator_id") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
701
+
702
+ -- AddForeignKey
703
+ ALTER TABLE "assets" ADD CONSTRAINT "assets_task_id_fkey" FOREIGN KEY ("task_id") REFERENCES "tasks"("id") ON DELETE SET NULL ON UPDATE CASCADE;
704
+
705
+ -- AddForeignKey
706
+ ALTER TABLE "assets" ADD CONSTRAINT "assets_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE SET NULL ON UPDATE CASCADE;
707
+
708
+ -- AddForeignKey
709
+ ALTER TABLE "asset_metadata_values" ADD CONSTRAINT "asset_metadata_values_asset_id_fkey" FOREIGN KEY ("asset_id") REFERENCES "assets"("id") ON DELETE CASCADE ON UPDATE CASCADE;
710
+
711
+ -- AddForeignKey
712
+ ALTER TABLE "asset_comments" ADD CONSTRAINT "asset_comments_session_id_fkey" FOREIGN KEY ("session_id") REFERENCES "agent_sessions"("id") ON DELETE SET NULL ON UPDATE CASCADE;
713
+
714
+ -- AddForeignKey
715
+ ALTER TABLE "asset_comments" ADD CONSTRAINT "asset_comments_asset_id_fkey" FOREIGN KEY ("asset_id") REFERENCES "assets"("id") ON DELETE CASCADE ON UPDATE CASCADE;
716
+
717
+ -- AddForeignKey
718
+ ALTER TABLE "asset_comments" ADD CONSTRAINT "asset_comments_creator_id_fkey" FOREIGN KEY ("creator_id") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
719
+
720
+ -- AddForeignKey
721
+ ALTER TABLE "asset_comments" ADD CONSTRAINT "asset_comments_reply_to_id_fkey" FOREIGN KEY ("reply_to_id") REFERENCES "asset_comments"("id") ON DELETE CASCADE ON UPDATE CASCADE;
722
+
723
+ -- AddForeignKey
724
+ ALTER TABLE "asset_comment_attachments" ADD CONSTRAINT "asset_comment_attachments_comment_id_fkey" FOREIGN KEY ("comment_id") REFERENCES "asset_comments"("id") ON DELETE CASCADE ON UPDATE CASCADE;
725
+
726
+ -- AddForeignKey
727
+ ALTER TABLE "asset_comment_attachments" ADD CONSTRAINT "asset_comment_attachments_asset_id_fkey" FOREIGN KEY ("asset_id") REFERENCES "assets"("id") ON DELETE CASCADE ON UPDATE CASCADE;
728
+
729
+ -- AddForeignKey
730
+ ALTER TABLE "asset_embeddings" ADD CONSTRAINT "asset_embeddings_asset_id_fkey" FOREIGN KEY ("asset_id") REFERENCES "assets"("id") ON DELETE CASCADE ON UPDATE CASCADE;
731
+
732
+ -- AddForeignKey
733
+ ALTER TABLE "invites" ADD CONSTRAINT "invites_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
734
+
735
+ -- AddForeignKey
736
+ ALTER TABLE "invites" ADD CONSTRAINT "invites_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE CASCADE ON UPDATE CASCADE;
737
+
738
+ -- AddForeignKey
739
+ ALTER TABLE "invites" ADD CONSTRAINT "invites_inviter_id_fkey" FOREIGN KEY ("inviter_id") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
740
+
741
+ -- AddForeignKey
742
+ ALTER TABLE "metadata_fields" ADD CONSTRAINT "metadata_fields_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE SET NULL ON UPDATE CASCADE;
743
+
744
+ -- AddForeignKey
745
+ ALTER TABLE "metadata_fields" ADD CONSTRAINT "metadata_fields_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE CASCADE ON UPDATE CASCADE;
746
+
747
+ -- AddForeignKey
748
+ ALTER TABLE "notifications" ADD CONSTRAINT "notifications_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
749
+
750
+ -- AddForeignKey
751
+ ALTER TABLE "notifications" ADD CONSTRAINT "notifications_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE CASCADE ON UPDATE CASCADE;
752
+
753
+ -- AddForeignKey
754
+ ALTER TABLE "notifications" ADD CONSTRAINT "notifications_creator_id_fkey" FOREIGN KEY ("creator_id") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
755
+
756
+ -- AddForeignKey
757
+ ALTER TABLE "notifications" ADD CONSTRAINT "notifications_asset_id_fkey" FOREIGN KEY ("asset_id") REFERENCES "assets"("id") ON DELETE CASCADE ON UPDATE CASCADE;
758
+
759
+ -- AddForeignKey
760
+ ALTER TABLE "notifications" ADD CONSTRAINT "notifications_task_id_fkey" FOREIGN KEY ("task_id") REFERENCES "tasks"("id") ON DELETE SET NULL ON UPDATE CASCADE;
761
+
762
+ -- AddForeignKey
763
+ ALTER TABLE "notifications" ADD CONSTRAINT "notifications_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
764
+
765
+ -- AddForeignKey
766
+ ALTER TABLE "tasks" ADD CONSTRAINT "tasks_creator_id_fkey" FOREIGN KEY ("creator_id") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
767
+
768
+ -- AddForeignKey
769
+ ALTER TABLE "agents" ADD CONSTRAINT "agents_id_fkey" FOREIGN KEY ("id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
770
+
771
+ -- AddForeignKey
772
+ ALTER TABLE "agents" ADD CONSTRAINT "agents_provider_id_fkey" FOREIGN KEY ("provider_id") REFERENCES "providers"("id") ON DELETE SET NULL ON UPDATE CASCADE;
773
+
774
+ -- AddForeignKey
775
+ ALTER TABLE "agents" ADD CONSTRAINT "agents_model_id_fkey" FOREIGN KEY ("model_id") REFERENCES "models"("id") ON DELETE SET NULL ON UPDATE CASCADE;
776
+
777
+ -- AddForeignKey
778
+ ALTER TABLE "agents" ADD CONSTRAINT "agents_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE CASCADE;
779
+
780
+ -- AddForeignKey
781
+ ALTER TABLE "agent_skills" ADD CONSTRAINT "agent_skills_agent_id_fkey" FOREIGN KEY ("agent_id") REFERENCES "agents"("id") ON DELETE CASCADE ON UPDATE CASCADE;
782
+
783
+ -- AddForeignKey
784
+ ALTER TABLE "agent_skills" ADD CONSTRAINT "agent_skills_skill_id_fkey" FOREIGN KEY ("skill_id") REFERENCES "skills"("id") ON DELETE CASCADE ON UPDATE CASCADE;
785
+
786
+ -- AddForeignKey
787
+ ALTER TABLE "agent_sessions" ADD CONSTRAINT "agent_sessions_agent_id_fkey" FOREIGN KEY ("agent_id") REFERENCES "agents"("id") ON DELETE CASCADE ON UPDATE CASCADE;
788
+
789
+ -- AddForeignKey
790
+ ALTER TABLE "agent_sessions" ADD CONSTRAINT "agent_sessions_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
791
+
792
+ -- AddForeignKey
793
+ ALTER TABLE "agent_session_entries" ADD CONSTRAINT "agent_session_entries_session_id_fkey" FOREIGN KEY ("session_id") REFERENCES "agent_sessions"("id") ON DELETE CASCADE ON UPDATE CASCADE;
794
+
795
+ -- AddForeignKey
796
+ ALTER TABLE "user_metadata" ADD CONSTRAINT "user_metadata_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
797
+
798
+ -- AddForeignKey
799
+ ALTER TABLE "user_metadata" ADD CONSTRAINT "user_metadata_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE CASCADE;
800
+
801
+ -- AddForeignKey
802
+ ALTER TABLE "models" ADD CONSTRAINT "models_provider_id_fkey" FOREIGN KEY ("provider_id") REFERENCES "providers"("id") ON DELETE CASCADE ON UPDATE CASCADE;
803
+
804
+ -- AddForeignKey
805
+ ALTER TABLE "providers" ADD CONSTRAINT "providers_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE CASCADE;
806
+
807
+ -- AddForeignKey
808
+ ALTER TABLE "collections" ADD CONSTRAINT "collections_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE CASCADE ON UPDATE CASCADE;
809
+