""" Скрипт инициализации таблицы tool_action_registry в SQLite БД. """ import os import sys import json import sqlite3 BASE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) DB_PATH = os.path.join(BASE_DIR, "data", "scud_orion_ai.db") def init_tool_action_registry(): conn = sqlite3.connect(DB_PATH) cursor = conn.cursor() # 1. Создаем таблицу cursor.execute(""" CREATE TABLE IF NOT EXISTS tool_action_registry ( id INTEGER PRIMARY KEY AUTOINCREMENT, tool_name TEXT UNIQUE NOT NULL, category TEXT DEFAULT 'general', bypass_llm INTEGER DEFAULT 1, success_template TEXT NOT NULL, follow_up_question TEXT, action_type TEXT DEFAULT 'BUTTONS', buttons_json TEXT, is_active INTEGER DEFAULT 1, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); """) # 2. Начальное наполнение базовыми сценариями seed_tools = [ ( "db_confirm_prompt_preview", "prompt", 1, "✅ Системный промпт успешно сохранен и применен в базе данных.", "Желаете продолжить работу с системным промптом?", "FOLLOW_UP_ACTION", json.dumps([ {"label": "Показать промпт", "value": "покажи системный промпт"}, {"label": "Готово", "value": "нет, спасибо"} ], ensure_ascii=False) ), ( "db_cancel_prompt_preview", "prompt", 1, "❌ Изменения системного промпта отменены.", "Желаете продолжить работу с системным промптом?", "FOLLOW_UP_ACTION", json.dumps([ {"label": "Показать промпт", "value": "покажи системный промпт"}, {"label": "Готово", "value": "нет, спасибо"} ], ensure_ascii=False) ), ( "db_delete_task", "tasks", 1, "🗑 Задача успешно удалена из вашего реестра.", "Хотите посмотреть обновленный список задач?", "FOLLOW_UP_ACTION", json.dumps([ {"label": "Показать задачи", "value": "покажи список задач"}, {"label": "Готово", "value": "нет"} ], ensure_ascii=False) ), ( "db_delete_snapshots", "snapshots", 1, "🗑 Выбранные снапшоты успешно удалены из базы данных.", "Вывести актуальный список снапшотов?", "FOLLOW_UP_ACTION", json.dumps([ {"label": "Показать снапшоты", "value": "покажи список снапшотов"}, {"label": "Готово", "value": "нет"} ], ensure_ascii=False) ) ] for item in seed_tools: cursor.execute(""" INSERT INTO tool_action_registry ( tool_name, category, bypass_llm, success_template, follow_up_question, action_type, buttons_json ) VALUES (?, ?, ?, ?, ?, ?, ?) ON CONFLICT(tool_name) DO UPDATE SET category = excluded.category, bypass_llm = excluded.bypass_llm, success_template = excluded.success_template, follow_up_question = excluded.follow_up_question, action_type = excluded.action_type, buttons_json = excluded.buttons_json, updated_at = CURRENT_TIMESTAMP """, item) conn.commit() conn.close() print("[✓] Таблица tool_action_registry успешно создана и наполнена!") if __name__ == "__main__": init_tool_action_registry()