| """ | |
| Project Jarvis — Database Initialization Script. | |
| Creates the SQLite database for basic memory and history storage. | |
| """ | |
| import sqlite3 | |
| from pathlib import Path | |
| def setup_db(): | |
| project_dir = Path(__file__).parent.parent | |
| data_dir = project_dir / "data" | |
| data_dir.mkdir(parents=True, exist_ok=True) | |
| db_path = data_dir / "jarvis.db" | |
| conn = sqlite3.connect(db_path) | |
| cursor = conn.cursor() | |
| # Create interactions table | |
| cursor.execute(""" | |
| CREATE TABLE IF NOT EXISTS interactions ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| session_id TEXT, | |
| timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, | |
| role TEXT NOT NULL, | |
| content TEXT NOT NULL, | |
| intent TEXT | |
| ) | |
| """) | |
| # Create memory key-value store | |
| cursor.execute(""" | |
| CREATE TABLE IF NOT EXISTS memory ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| key TEXT UNIQUE NOT NULL, | |
| value TEXT NOT NULL, | |
| updated_at DATETIME DEFAULT CURRENT_TIMESTAMP | |
| ) | |
| """) | |
| # Create expenses table (for Phase 1 roadmap) | |
| cursor.execute(""" | |
| CREATE TABLE IF NOT EXISTS expenses ( | |
| id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| amount REAL NOT NULL, | |
| category TEXT NOT NULL, | |
| description TEXT, | |
| date DATETIME DEFAULT CURRENT_TIMESTAMP | |
| ) | |
| """) | |
| conn.commit() | |
| conn.close() | |
| print(f"✓ SQLite database successfully initialized at {db_path}") | |
| if __name__ == "__main__": | |
| print("Initializing Jarvis Database...") | |
| setup_db() | |