Spaces:
Configuration error
Configuration error
feat: Introduce new backend architecture with notebooks, sources, chat, and CLaRa models, alongside database schema and updated deployment scripts, while removing old frontend, deployment files, and previous backend components.
88f8604
| -- Antigravity Notebook Database Schema | |
| -- Enable UUID extension | |
| CREATE EXTENSION IF NOT EXISTS "pgcrypto"; | |
| -- Notebooks table | |
| CREATE TABLE IF NOT EXISTS notebooks ( | |
| id UUID PRIMARY KEY DEFAULT gen_random_uuid(), | |
| name VARCHAR(255) NOT NULL, | |
| description TEXT, | |
| created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | |
| updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP | |
| ); | |
| -- Sources table (PDFs, URLs, Text) | |
| CREATE TABLE IF NOT EXISTS sources ( | |
| id UUID PRIMARY KEY DEFAULT gen_random_uuid(), | |
| notebook_id UUID REFERENCES notebooks(id) ON DELETE CASCADE, | |
| source_type VARCHAR(10) NOT NULL CHECK (source_type IN ('pdf', 'url', 'text')), | |
| filename VARCHAR(255), | |
| url TEXT, | |
| content_hash VARCHAR(64), | |
| created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | |
| metadata JSONB DEFAULT '{}'::jsonb | |
| ); | |
| -- Latent tensors (CLaRa-compressed representations) | |
| CREATE TABLE IF NOT EXISTS latent_tensors ( | |
| id UUID PRIMARY KEY DEFAULT gen_random_uuid(), | |
| source_id UUID REFERENCES sources(id) ON DELETE CASCADE, | |
| tensor_path VARCHAR(512) NOT NULL, | |
| segment_index INTEGER NOT NULL, | |
| token_count INTEGER NOT NULL, | |
| original_text_length INTEGER, | |
| created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | |
| metadata JSONB DEFAULT '{}'::jsonb | |
| ); | |
| -- Chat messages | |
| CREATE TABLE IF NOT EXISTS chat_messages ( | |
| id UUID PRIMARY KEY DEFAULT gen_random_uuid(), | |
| notebook_id UUID REFERENCES notebooks(id) ON DELETE CASCADE, | |
| role VARCHAR(20) NOT NULL CHECK (role IN ('user', 'assistant')), | |
| content TEXT NOT NULL, | |
| sources_used JSONB DEFAULT '[]'::jsonb, | |
| created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP | |
| ); | |
| -- Indexes for performance | |
| CREATE INDEX IF NOT EXISTS idx_sources_notebook_id ON sources(notebook_id); | |
| CREATE INDEX IF NOT EXISTS idx_latent_tensors_source_id ON latent_tensors(source_id); | |
| CREATE INDEX IF NOT EXISTS idx_chat_messages_notebook_id ON chat_messages(notebook_id); | |
| CREATE INDEX IF NOT EXISTS idx_notebooks_created_at ON notebooks(created_at DESC); | |
| -- Function to update updated_at timestamp | |
| CREATE OR REPLACE FUNCTION update_updated_at_column() | |
| RETURNS TRIGGER AS $$ | |
| BEGIN | |
| NEW.updated_at = CURRENT_TIMESTAMP; | |
| RETURN NEW; | |
| END; | |
| $$ language 'plpgsql'; | |
| -- Trigger to auto-update updated_at | |
| CREATE TRIGGER update_notebooks_updated_at | |
| BEFORE UPDATE ON notebooks | |
| FOR EACH ROW | |
| EXECUTE FUNCTION update_updated_at_column(); | |