PRAGMA foreign_keys=OFF;--> statement-breakpoint CREATE TABLE `__new_agent_session` ( `id` text PRIMARY KEY NOT NULL, `agent_id` text, `name` text NOT NULL, `description` text DEFAULT '' NOT NULL, `workspace_id` text NOT NULL, `order_key` text NOT NULL, `created_at` integer NOT NULL, `updated_at` integer NOT NULL, FOREIGN KEY (`agent_id`) REFERENCES `agent`(`id`) ON UPDATE no action ON DELETE set null, FOREIGN KEY (`workspace_id`) REFERENCES `agent_workspace`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint INSERT INTO `__new_agent_session`("id", "agent_id", "name", "description", "workspace_id", "order_key", "created_at", "updated_at") SELECT "id", "agent_id", "name", "description", "workspace_id", "order_key", "created_at", "updated_at" FROM `agent_session`;--> statement-breakpoint DROP TABLE `agent_session`;--> statement-breakpoint ALTER TABLE `__new_agent_session` RENAME TO `agent_session`;--> statement-breakpoint CREATE INDEX `agent_session_order_key_idx` ON `agent_session` (`order_key`);--> statement-breakpoint CREATE TABLE `__new_agent_channel` ( `id` text PRIMARY KEY NOT NULL, `type` text NOT NULL, `name` text NOT NULL, `agent_id` text, `session_id` text, `workspace` text NOT NULL, `config` text NOT NULL, `is_active` integer DEFAULT true NOT NULL, `active_chat_ids` text DEFAULT '[]' NOT NULL, `permission_mode` text, `created_at` integer NOT NULL, `updated_at` integer NOT NULL, FOREIGN KEY (`agent_id`) REFERENCES `agent`(`id`) ON UPDATE no action ON DELETE set null, FOREIGN KEY (`session_id`) REFERENCES `agent_session`(`id`) ON UPDATE no action ON DELETE set null, CONSTRAINT "agent_channel_type_check" CHECK("__new_agent_channel"."type" IN ('telegram', 'feishu', 'qq', 'wechat', 'discord', 'slack')), CONSTRAINT "agent_channel_permission_mode_check" CHECK("__new_agent_channel"."permission_mode" IS NULL OR "__new_agent_channel"."permission_mode" IN ('default', 'acceptEdits', 'bypassPermissions', 'plan')) ); --> statement-breakpoint INSERT INTO `__new_agent_channel`("id", "type", "name", "agent_id", "session_id", "workspace", "config", "is_active", "active_chat_ids", "permission_mode", "created_at", "updated_at") SELECT "id", "type", "name", "agent_id", "session_id", '{"type":"system"}', "config", "is_active", "active_chat_ids", "permission_mode", "created_at", "updated_at" FROM `agent_channel`;--> statement-breakpoint DROP TABLE `agent_channel`;--> statement-breakpoint ALTER TABLE `__new_agent_channel` RENAME TO `agent_channel`;--> statement-breakpoint CREATE INDEX `agent_channel_agent_id_idx` ON `agent_channel` (`agent_id`);--> statement-breakpoint CREATE INDEX `agent_channel_type_idx` ON `agent_channel` (`type`);--> statement-breakpoint CREATE INDEX `agent_channel_session_id_idx` ON `agent_channel` (`session_id`);--> statement-breakpoint CREATE TABLE `__new_agent_workspace` ( `id` text PRIMARY KEY NOT NULL, `name` text NOT NULL, `path` text NOT NULL, `type` text NOT NULL, `order_key` text NOT NULL, `created_at` integer NOT NULL, `updated_at` integer NOT NULL, CONSTRAINT "agent_workspace_type_check" CHECK("__new_agent_workspace"."type" IN ('user', 'system')) ); --> statement-breakpoint INSERT INTO `__new_agent_workspace`("id", "name", "path", "type", "order_key", "created_at", "updated_at") SELECT "id", "name", "path", 'user', "order_key", "created_at", "updated_at" FROM `agent_workspace`;--> statement-breakpoint DROP TABLE `agent_workspace`;--> statement-breakpoint ALTER TABLE `__new_agent_workspace` RENAME TO `agent_workspace`;--> statement-breakpoint CREATE UNIQUE INDEX `agent_workspace_path_unique_idx` ON `agent_workspace` (`path`);--> statement-breakpoint CREATE INDEX `agent_workspace_order_key_idx` ON `agent_workspace` (`order_key`);--> statement-breakpoint PRAGMA foreign_keys=ON;