s_active_branch; `; export const CONVERSATIONS_MOST_RECENT = ` SELECT conv_id, title FROM conversation ORDER BY updated_date DESC LIMIT :limit; `; export const CONVERSATIONS_OLDEST = ` SELECT conv_id, title FROM conversation ORDER BY updated_date ASC LIMIT :limit; `; export const CONVERSATION_BY_ID = ` SELECT conv_id, title, description, page_url, json(page_meta_jsonb) AS page_meta, created_date, updated_date, status, active_branch_tip_message_id FROM conversation WHERE conv_id = :conv_id; `; export const CONVERSATIONS_BY_DATE = ` SELECT conv_id, title, description, page_url, json(page_meta_jsonb) AS page_meta, created_date, updated_date, status, active_branch_tip_message_id FROM conversation WHERE updated_date >= :start_date AND updated_date <= :end_date ORDER BY updated_date DESC; `; export const CONVERSATIONS_BY_URL = ` SELECT c.conv_id, c.title, c.description, c.page_url, json(c.page_meta_jsonb) AS page_meta, c.created_date, c.updated_date, c.status, c.active_branch_tip_message_id FROM conversation c WHERE EXISTS ( SELECT 1 FROM message m WHERE m.conv_id = c.conv_id AND m.page_url = :page_url ) ORDER BY c.updated_date DESC; `; /** * Get all messages for multiple conversations * * @param {number} amount - The number of conversation IDs to get messages for */ export function getConversationMessagesSql(amount) { return ` SELECT message_id, created_date, parent_message_id, revision_root_message_id, ordinal, is_active_branch, role, model_id, conv_id, json(params_jsonb) AS params, json(usage_jsonb) AS usage, page_url, turn_index, insights_enabled, insights_flag_source, json(insights_applied_jsonb) AS insights_applied, json(web_search_queries_jsonb) AS web_search_queries, json(content_jsonb) AS content FROM message WHERE conv_id IN(${new Array(amount).fill("?").join(",")}) ORDER BY ordinal ASC; `; } export const CONVERSATIONS_CONTENT_SEARCH = ` SELECT c.conv_id, c.title, c.description, c.page_url, json(c.page_meta_jsonb) AS page_meta, c.created_date, c.updated_date, c.status, c.active_branch_tip_message_id FROM conversation c JOIN message m ON m.conv_id = c.conv_id WHERE json_type(m.content_jsonb, :path) IS NOT NULL; `; export const CONVERSATIONS_CONTENT_SEARCH_BY_ROLE = ` SELECT c.conv_id, c.title, c.description, c.page_url, json(c.page_meta_jsonb) AS page_meta, c.created_date, c.updated_date, c.status, c.active_branch_tip_message_id FROM conversation c JOIN message m ON m.conv_id = c.conv_id WHERE m.role = :role AND json_type(m.content_jsonb, :path) IS NOT NULL; `; export const CONVERSATIONS_HISTORY_SEARCH = ` SELECT c.conv_id, c.title, c.description, c.page_url, json(c.page_meta_jsonb) AS page_meta, c.created_date, c.updated_date, c.status, c.active_branch_tip_message_id FROM conversation c JOIN message m ON m.conv_id = c.conv_id WHERE m.role = 0 AND ( CAST(json_extract(m.content_jsonb, :path) AS TEXT) LIKE :pattern ESCAPE '/' OR c.title LIKE :pattern ESCAPE '/' ); `; export const MESSAGES_BY_DATE = ` SELECT message_id, created_date, parent_message_id, revision_root_message_id, ordinal, is_active_branch, role, model_id, conv_id, json(params_jsonb) AS params, json(usage_jsonb) AS usage, page_url, turn_index, insights_enabled, insights_flag_source, json(insights_applied_jsonb) AS insights_applied, json(web_search_queries_jsonb) AS web_search_queries, json(content_jsonb) AS content FROM message WHERE created_date >= :start_date AND created_date <= :end_date ORDER BY created_date DESC LIMIT :limit OFFSET :offset; `; export const MESSAGES_BY_DATE_AND_ROLE = ` SELECT message_id, created_date, parent_message_id, revision_root_message_id, ordinal, is_active_branch, role, model_id, conv_id, json(params_jsonb) AS params, json(usage_jsonb) AS usage, page_url, turn_index, insights_enabled, insights_flag_source, json(insights_applied_jsonb) AS insights_applied, json(web_search_queries_jsonb) AS web_search_queries, json(content_jsonb) AS content FROM message WHERE role = :role AND created_date >= :start_date AND created_date <= :end_date ORDER BY created_date DESC LIMIT :limit OFFSET :offset; `; export const DELETE_CONVERSATION_BY_ID = ` DELETE FROM conversation WHERE conv_id = :conv_id; `; export const CONVERSATION_HISTORY = ` SELECT c.conv_id, c.title, c.created_date, c.updated_date, ( SELECT group_concat(t.page_url) FROM ( SELECT m.page_url FROM message m WHERE m.conv_id = c.conv_id AND m.page_url IS NOT NULL GROUP BY m.page_url ORDER BY MAX(m.created_date) ASC ) AS t ) AS urls FROM conversation c WHERE EXISTS ( SELECT 1 FROM message AS m WHERE m.conv_id = c.conv_id ) ORDER BY c.updated_date {sort} LIMIT :limit OFFSET :offset; `; PK