| |
|
| |
|
| |
|
| | CREATE TABLE IF NOT EXISTS users (
|
| | id TEXT PRIMARY KEY,
|
| | mobile_number TEXT UNIQUE NOT NULL,
|
| | full_name TEXT NOT NULL,
|
| | password_hash TEXT NOT NULL,
|
| | avatar_url TEXT,
|
| | preferences TEXT,
|
| | is_active BOOLEAN DEFAULT TRUE,
|
| | created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
| | updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
| | );
|
| |
|
| |
|
| | CREATE TABLE IF NOT EXISTS sessions (
|
| | id TEXT PRIMARY KEY,
|
| | user_id TEXT NOT NULL,
|
| | title TEXT,
|
| | metadata TEXT,
|
| | created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
| | updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
| | expires_at DATETIME,
|
| | FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
| | );
|
| |
|
| |
|
| | CREATE TABLE IF NOT EXISTS conversations (
|
| | id TEXT PRIMARY KEY,
|
| | session_id TEXT NOT NULL,
|
| | role TEXT NOT NULL,
|
| | content TEXT NOT NULL,
|
| | metadata TEXT,
|
| | created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
| | FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
| | );
|
| |
|
| |
|
| | CREATE TABLE IF NOT EXISTS files (
|
| | id TEXT PRIMARY KEY,
|
| | user_id TEXT NOT NULL,
|
| | session_id TEXT,
|
| | filename TEXT NOT NULL,
|
| | content_type TEXT,
|
| | size INTEGER,
|
| | r2_key TEXT NOT NULL,
|
| | bucket TEXT NOT NULL,
|
| | metadata TEXT,
|
| | created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
| | FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
| | FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE SET NULL
|
| | );
|
| |
|
| |
|
| | CREATE TABLE IF NOT EXISTS agents (
|
| | id TEXT PRIMARY KEY,
|
| | user_id TEXT NOT NULL,
|
| | name TEXT NOT NULL,
|
| | description TEXT,
|
| | system_prompt TEXT,
|
| | model TEXT,
|
| | tools TEXT,
|
| | config TEXT,
|
| | is_active BOOLEAN DEFAULT TRUE,
|
| | created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
| | updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
| | FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
| | );
|
| |
|
| |
|
| | CREATE TABLE IF NOT EXISTS agent_sessions (
|
| | id TEXT PRIMARY KEY,
|
| | agent_id TEXT NOT NULL,
|
| | user_id TEXT NOT NULL,
|
| | session_id TEXT NOT NULL,
|
| | durable_object_id TEXT,
|
| | status TEXT DEFAULT 'active',
|
| | metadata TEXT,
|
| | created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
| | updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
| | FOREIGN KEY (agent_id) REFERENCES agents(id) ON DELETE CASCADE,
|
| | FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
| | FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
| | );
|
| |
|
| |
|
| | CREATE TABLE IF NOT EXISTS usage_logs (
|
| | id TEXT PRIMARY KEY,
|
| | user_id TEXT NOT NULL,
|
| | session_id TEXT,
|
| | agent_id TEXT,
|
| | action TEXT NOT NULL,
|
| | resource_type TEXT,
|
| | resource_id TEXT,
|
| | tokens_used INTEGER DEFAULT 0,
|
| | duration_ms INTEGER DEFAULT 0,
|
| | cost_cents INTEGER DEFAULT 0,
|
| | metadata TEXT,
|
| | created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
| | FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
| | FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE SET NULL,
|
| | FOREIGN KEY (agent_id) REFERENCES agents(id) ON DELETE SET NULL
|
| | );
|
| |
|
| |
|
| | CREATE INDEX IF NOT EXISTS idx_users_mobile_number ON users(mobile_number);
|
| | CREATE INDEX IF NOT EXISTS idx_sessions_user_id ON sessions(user_id);
|
| | CREATE INDEX IF NOT EXISTS idx_sessions_created_at ON sessions(created_at);
|
| | CREATE INDEX IF NOT EXISTS idx_conversations_session_id ON conversations(session_id);
|
| | CREATE INDEX IF NOT EXISTS idx_conversations_created_at ON conversations(created_at);
|
| | CREATE INDEX IF NOT EXISTS idx_files_user_id ON files(user_id);
|
| | CREATE INDEX IF NOT EXISTS idx_files_session_id ON files(session_id);
|
| | CREATE INDEX IF NOT EXISTS idx_files_created_at ON files(created_at);
|
| | CREATE INDEX IF NOT EXISTS idx_agents_user_id ON agents(user_id);
|
| | CREATE INDEX IF NOT EXISTS idx_agent_sessions_user_id ON agent_sessions(user_id);
|
| | CREATE INDEX IF NOT EXISTS idx_agent_sessions_session_id ON agent_sessions(session_id);
|
| | CREATE INDEX IF NOT EXISTS idx_usage_logs_user_id ON usage_logs(user_id);
|
| | CREATE INDEX IF NOT EXISTS idx_usage_logs_created_at ON usage_logs(created_at);
|
| |
|
| |
|
| | INSERT OR IGNORE INTO users (id, mobile_number, full_name, password_hash)
|
| | VALUES ('system', '0000000000', 'OpenManus System', 'system_hash');
|
| |
|
| |
|
| | INSERT OR IGNORE INTO agents (id, user_id, name, description, system_prompt, model, tools)
|
| | VALUES (
|
| | 'default-agent',
|
| | 'system',
|
| | 'OpenManus Assistant',
|
| | 'Default OpenManus AI assistant with full capabilities',
|
| | 'You are OpenManus, an intelligent AI assistant with access to various tools and services. You help users with a wide range of tasks including file management, data analysis, web browsing, and more. Always be helpful, accurate, and concise in your responses.',
|
| | 'gpt-4-turbo-preview',
|
| | '["file_operations", "web_search", "data_analysis", "browser_use", "python_execute"]'
|
| | );
|
| |
|