Buckets:
| import { Effect } from "effect" | |
| import type { DatabaseMigration } from "./migration" | |
| export default { | |
| up(tx) { | |
| return Effect.gen(function* () { | |
| yield* tx.run(` | |
| CREATE TABLE \`workspace\` ( | |
| \`id\` text PRIMARY KEY, | |
| \`type\` text NOT NULL, | |
| \`name\` text DEFAULT '' NOT NULL, | |
| \`branch\` text, | |
| \`directory\` text, | |
| \`extra\` text, | |
| \`project_id\` text NOT NULL, | |
| \`time_used\` integer NOT NULL, | |
| CONSTRAINT \`fk_workspace_project_id_project_id_fk\` FOREIGN KEY (\`project_id\`) REFERENCES \`project\`(\`id\`) ON DELETE CASCADE | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`data_migration\` ( | |
| \`name\` text PRIMARY KEY, | |
| \`time_completed\` integer NOT NULL | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`account_state\` ( | |
| \`id\` integer PRIMARY KEY, | |
| \`active_account_id\` text, | |
| \`active_org_id\` text, | |
| CONSTRAINT \`fk_account_state_active_account_id_account_id_fk\` FOREIGN KEY (\`active_account_id\`) REFERENCES \`account\`(\`id\`) ON DELETE SET NULL | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`account\` ( | |
| \`id\` text PRIMARY KEY, | |
| \`email\` text NOT NULL, | |
| \`url\` text NOT NULL, | |
| \`access_token\` text NOT NULL, | |
| \`refresh_token\` text NOT NULL, | |
| \`token_expiry\` integer, | |
| \`time_created\` integer NOT NULL, | |
| \`time_updated\` integer NOT NULL | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`control_account\` ( | |
| \`email\` text NOT NULL, | |
| \`url\` text NOT NULL, | |
| \`access_token\` text NOT NULL, | |
| \`refresh_token\` text NOT NULL, | |
| \`token_expiry\` integer, | |
| \`active\` integer NOT NULL, | |
| \`time_created\` integer NOT NULL, | |
| \`time_updated\` integer NOT NULL, | |
| CONSTRAINT \`control_account_pk\` PRIMARY KEY(\`email\`, \`url\`) | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`credential\` ( | |
| \`id\` text PRIMARY KEY, | |
| \`integration_id\` text, | |
| \`label\` text NOT NULL, | |
| \`value\` text NOT NULL, | |
| \`connector_id\` text, | |
| \`method_id\` text, | |
| \`active\` integer, | |
| \`time_created\` integer NOT NULL, | |
| \`time_updated\` integer NOT NULL | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`event_sequence\` ( | |
| \`aggregate_id\` text PRIMARY KEY, | |
| \`seq\` integer NOT NULL, | |
| \`owner_id\` text | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`event\` ( | |
| \`id\` text PRIMARY KEY, | |
| \`aggregate_id\` text NOT NULL, | |
| \`seq\` integer NOT NULL, | |
| \`type\` text NOT NULL, | |
| \`data\` text NOT NULL, | |
| CONSTRAINT \`fk_event_aggregate_id_event_sequence_aggregate_id_fk\` FOREIGN KEY (\`aggregate_id\`) REFERENCES \`event_sequence\`(\`aggregate_id\`) ON DELETE CASCADE | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`permission\` ( | |
| \`id\` text PRIMARY KEY, | |
| \`project_id\` text NOT NULL, | |
| \`action\` text NOT NULL, | |
| \`resource\` text NOT NULL, | |
| \`time_created\` integer NOT NULL, | |
| \`time_updated\` integer NOT NULL, | |
| CONSTRAINT \`fk_permission_project_id_project_id_fk\` FOREIGN KEY (\`project_id\`) REFERENCES \`project\`(\`id\`) ON DELETE CASCADE | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`project_directory\` ( | |
| \`project_id\` text NOT NULL, | |
| \`directory\` text NOT NULL, | |
| \`type\` text, | |
| \`strategy\` text, | |
| \`time_created\` integer NOT NULL, | |
| CONSTRAINT \`project_directory_pk\` PRIMARY KEY(\`project_id\`, \`directory\`), | |
| CONSTRAINT \`fk_project_directory_project_id_project_id_fk\` FOREIGN KEY (\`project_id\`) REFERENCES \`project\`(\`id\`) ON DELETE CASCADE | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`project\` ( | |
| \`id\` text PRIMARY KEY, | |
| \`worktree\` text NOT NULL, | |
| \`vcs\` text, | |
| \`name\` text, | |
| \`icon_url\` text, | |
| \`icon_url_override\` text, | |
| \`icon_color\` text, | |
| \`time_created\` integer NOT NULL, | |
| \`time_updated\` integer NOT NULL, | |
| \`time_initialized\` integer, | |
| \`sandboxes\` text NOT NULL, | |
| \`commands\` text | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`message\` ( | |
| \`id\` text PRIMARY KEY, | |
| \`session_id\` text NOT NULL, | |
| \`time_created\` integer NOT NULL, | |
| \`time_updated\` integer NOT NULL, | |
| \`data\` text NOT NULL, | |
| CONSTRAINT \`fk_message_session_id_session_id_fk\` FOREIGN KEY (\`session_id\`) REFERENCES \`session\`(\`id\`) ON DELETE CASCADE | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`part\` ( | |
| \`id\` text PRIMARY KEY, | |
| \`message_id\` text NOT NULL, | |
| \`session_id\` text NOT NULL, | |
| \`time_created\` integer NOT NULL, | |
| \`time_updated\` integer NOT NULL, | |
| \`data\` text NOT NULL, | |
| CONSTRAINT \`fk_part_message_id_message_id_fk\` FOREIGN KEY (\`message_id\`) REFERENCES \`message\`(\`id\`) ON DELETE CASCADE | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`session_context_epoch\` ( | |
| \`session_id\` text PRIMARY KEY, | |
| \`baseline\` text NOT NULL, | |
| \`agent\` text DEFAULT 'build' NOT NULL, | |
| \`snapshot\` text NOT NULL, | |
| \`baseline_seq\` integer NOT NULL, | |
| \`replacement_seq\` integer, | |
| \`revision\` integer DEFAULT 0 NOT NULL, | |
| CONSTRAINT \`fk_session_context_epoch_session_id_session_id_fk\` FOREIGN KEY (\`session_id\`) REFERENCES \`session\`(\`id\`) ON DELETE CASCADE | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`session_input\` ( | |
| \`id\` text PRIMARY KEY, | |
| \`session_id\` text NOT NULL, | |
| \`prompt\` text NOT NULL, | |
| \`delivery\` text NOT NULL, | |
| \`admitted_seq\` integer NOT NULL, | |
| \`promoted_seq\` integer, | |
| \`time_created\` integer NOT NULL, | |
| CONSTRAINT \`fk_session_input_session_id_session_id_fk\` FOREIGN KEY (\`session_id\`) REFERENCES \`session\`(\`id\`) ON DELETE CASCADE | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`session_message\` ( | |
| \`id\` text PRIMARY KEY, | |
| \`session_id\` text NOT NULL, | |
| \`type\` text NOT NULL, | |
| \`seq\` integer NOT NULL, | |
| \`time_created\` integer NOT NULL, | |
| \`time_updated\` integer NOT NULL, | |
| \`data\` text NOT NULL, | |
| CONSTRAINT \`fk_session_message_session_id_session_id_fk\` FOREIGN KEY (\`session_id\`) REFERENCES \`session\`(\`id\`) ON DELETE CASCADE | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`session\` ( | |
| \`id\` text PRIMARY KEY, | |
| \`project_id\` text NOT NULL, | |
| \`workspace_id\` text, | |
| \`parent_id\` text, | |
| \`slug\` text NOT NULL, | |
| \`directory\` text NOT NULL, | |
| \`path\` text, | |
| \`title\` text NOT NULL, | |
| \`version\` text NOT NULL, | |
| \`share_url\` text, | |
| \`summary_additions\` integer, | |
| \`summary_deletions\` integer, | |
| \`summary_files\` integer, | |
| \`summary_diffs\` text, | |
| \`metadata\` text, | |
| \`cost\` real DEFAULT 0 NOT NULL, | |
| \`tokens_input\` integer DEFAULT 0 NOT NULL, | |
| \`tokens_output\` integer DEFAULT 0 NOT NULL, | |
| \`tokens_reasoning\` integer DEFAULT 0 NOT NULL, | |
| \`tokens_cache_read\` integer DEFAULT 0 NOT NULL, | |
| \`tokens_cache_write\` integer DEFAULT 0 NOT NULL, | |
| \`revert\` text, | |
| \`permission\` text, | |
| \`agent\` text, | |
| \`model\` text, | |
| \`time_created\` integer NOT NULL, | |
| \`time_updated\` integer NOT NULL, | |
| \`time_compacting\` integer, | |
| \`time_archived\` integer, | |
| CONSTRAINT \`fk_session_project_id_project_id_fk\` FOREIGN KEY (\`project_id\`) REFERENCES \`project\`(\`id\`) ON DELETE CASCADE | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`todo\` ( | |
| \`session_id\` text NOT NULL, | |
| \`content\` text NOT NULL, | |
| \`status\` text NOT NULL, | |
| \`priority\` text NOT NULL, | |
| \`position\` integer NOT NULL, | |
| \`time_created\` integer NOT NULL, | |
| \`time_updated\` integer NOT NULL, | |
| CONSTRAINT \`todo_pk\` PRIMARY KEY(\`session_id\`, \`position\`), | |
| CONSTRAINT \`fk_todo_session_id_session_id_fk\` FOREIGN KEY (\`session_id\`) REFERENCES \`session\`(\`id\`) ON DELETE CASCADE | |
| ); | |
| `) | |
| yield* tx.run(` | |
| CREATE TABLE \`session_share\` ( | |
| \`session_id\` text PRIMARY KEY, | |
| \`id\` text NOT NULL, | |
| \`secret\` text NOT NULL, | |
| \`url\` text NOT NULL, | |
| \`time_created\` integer NOT NULL, | |
| \`time_updated\` integer NOT NULL, | |
| CONSTRAINT \`fk_session_share_session_id_session_id_fk\` FOREIGN KEY (\`session_id\`) REFERENCES \`session\`(\`id\`) ON DELETE CASCADE | |
| ); | |
| `) | |
| yield* tx.run(`CREATE UNIQUE INDEX \`event_aggregate_seq_idx\` ON \`event\` (\`aggregate_id\`,\`seq\`);`) | |
| yield* tx.run(`CREATE INDEX \`event_aggregate_type_seq_idx\` ON \`event\` (\`aggregate_id\`,\`type\`,\`seq\`);`) | |
| yield* tx.run( | |
| `CREATE UNIQUE INDEX \`permission_project_action_resource_idx\` ON \`permission\` (\`project_id\`,\`action\`,\`resource\`);`, | |
| ) | |
| yield* tx.run( | |
| `CREATE INDEX \`message_session_time_created_id_idx\` ON \`message\` (\`session_id\`,\`time_created\`,\`id\`);`, | |
| ) | |
| yield* tx.run(`CREATE INDEX \`part_message_id_id_idx\` ON \`part\` (\`message_id\`,\`id\`);`) | |
| yield* tx.run(`CREATE INDEX \`part_session_idx\` ON \`part\` (\`session_id\`);`) | |
| yield* tx.run( | |
| `CREATE INDEX \`session_input_session_pending_delivery_seq_idx\` ON \`session_input\` (\`session_id\`,\`promoted_seq\`,\`delivery\`,\`admitted_seq\`);`, | |
| ) | |
| yield* tx.run( | |
| `CREATE UNIQUE INDEX \`session_input_session_admitted_seq_idx\` ON \`session_input\` (\`session_id\`,\`admitted_seq\`);`, | |
| ) | |
| yield* tx.run( | |
| `CREATE UNIQUE INDEX \`session_input_session_promoted_seq_idx\` ON \`session_input\` (\`session_id\`,\`promoted_seq\`);`, | |
| ) | |
| yield* tx.run( | |
| `CREATE UNIQUE INDEX \`session_message_session_seq_idx\` ON \`session_message\` (\`session_id\`,\`seq\`);`, | |
| ) | |
| yield* tx.run( | |
| `CREATE INDEX \`session_message_session_type_seq_idx\` ON \`session_message\` (\`session_id\`,\`type\`,\`seq\`);`, | |
| ) | |
| yield* tx.run( | |
| `CREATE INDEX \`session_message_session_time_created_id_idx\` ON \`session_message\` (\`session_id\`,\`time_created\`,\`id\`);`, | |
| ) | |
| yield* tx.run(`CREATE INDEX \`session_message_time_created_idx\` ON \`session_message\` (\`time_created\`);`) | |
| yield* tx.run(`CREATE INDEX \`session_project_idx\` ON \`session\` (\`project_id\`);`) | |
| yield* tx.run(`CREATE INDEX \`session_workspace_idx\` ON \`session\` (\`workspace_id\`);`) | |
| yield* tx.run(`CREATE INDEX \`session_parent_idx\` ON \`session\` (\`parent_id\`);`) | |
| yield* tx.run(`CREATE INDEX \`todo_session_idx\` ON \`todo\` (\`session_id\`);`) | |
| }) | |
| }, | |
| } satisfies Omit<DatabaseMigration.Migration, "id"> | |
Xet Storage Details
- Size:
- 11.6 kB
- Xet hash:
- 3059e6655fe699cdcee59252dedd7cc03ac0ed56ce36fbdc78522ffa016a9737
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.