Spaces:
Build error
Build error
| -- Supabase Setup SQL for AI Agent | |
| -- Run this entire script in your Supabase SQL Editor | |
| -- 1. Enable Required Extensions (if not already enabled) | |
| CREATE EXTENSION IF NOT EXISTS vector; | |
| CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; | |
| -- 2. Tool Reliability Metrics Table | |
| CREATE TABLE IF NOT EXISTS tool_reliability_metrics ( | |
| tool_name TEXT PRIMARY KEY, | |
| success_count INTEGER DEFAULT 0, | |
| failure_count INTEGER DEFAULT 0, | |
| total_calls INTEGER DEFAULT 0, | |
| average_latency_ms REAL DEFAULT 0.0, | |
| last_used_at TIMESTAMP WITH TIME ZONE, | |
| last_error TEXT, | |
| error_patterns JSONB DEFAULT '[]'::jsonb, | |
| fallback_tools JSONB DEFAULT '[]'::jsonb, | |
| created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), | |
| updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() | |
| ); | |
| CREATE INDEX IF NOT EXISTS idx_tool_reliability_last_used ON tool_reliability_metrics(last_used_at); | |
| -- 3. Clarification Patterns Table | |
| CREATE TABLE IF NOT EXISTS clarification_patterns ( | |
| id TEXT PRIMARY KEY, | |
| original_query TEXT NOT NULL, | |
| query_embedding VECTOR(1536), | |
| clarification_question TEXT NOT NULL, | |
| user_response TEXT NOT NULL, | |
| query_category TEXT NOT NULL, | |
| frequency INTEGER DEFAULT 1, | |
| effectiveness_score REAL DEFAULT 0.5, | |
| created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), | |
| last_seen_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() | |
| ); | |
| CREATE INDEX IF NOT EXISTS idx_clarification_patterns_category ON clarification_patterns(query_category); | |
| CREATE INDEX IF NOT EXISTS idx_clarification_patterns_embedding ON clarification_patterns USING hnsw (query_embedding vector_cosine_ops); | |
| -- 4. Plan Corrections Table | |
| CREATE TABLE IF NOT EXISTS plan_corrections ( | |
| id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), | |
| query TEXT NOT NULL, | |
| original_plan JSONB NOT NULL, | |
| corrected_plan JSONB NOT NULL, | |
| correction_type TEXT NOT NULL, | |
| user_feedback TEXT, | |
| applied_to_future_plans BOOLEAN DEFAULT FALSE, | |
| created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() | |
| ); | |
| CREATE INDEX IF NOT EXISTS idx_plan_corrections_query ON plan_corrections USING gin(to_tsvector('english', query)); | |
| -- 5. Knowledge Lifecycle Table | |
| CREATE TABLE IF NOT EXISTS knowledge_lifecycle ( | |
| document_id TEXT PRIMARY KEY, | |
| source_url TEXT, | |
| document_type TEXT NOT NULL, | |
| content_hash TEXT NOT NULL, | |
| ingested_at TIMESTAMP WITH TIME ZONE NOT NULL, | |
| last_validated_at TIMESTAMP WITH TIME ZONE NOT NULL, | |
| expires_at TIMESTAMP WITH TIME ZONE NOT NULL, | |
| validation_status TEXT NOT NULL, | |
| update_frequency_days INTEGER NOT NULL, | |
| importance_score REAL DEFAULT 0.5, | |
| validation_failures INTEGER DEFAULT 0, | |
| created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), | |
| updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() | |
| ); | |
| CREATE INDEX IF NOT EXISTS idx_knowledge_lifecycle_expires ON knowledge_lifecycle(expires_at); | |
| CREATE INDEX IF NOT EXISTS idx_knowledge_lifecycle_validation ON knowledge_lifecycle(last_validated_at); | |
| CREATE INDEX IF NOT EXISTS idx_knowledge_lifecycle_status ON knowledge_lifecycle(validation_status); | |
| -- 6. Recursion Error Logs Table | |
| CREATE TABLE IF NOT EXISTS recursion_error_logs ( | |
| id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), | |
| correlation_id UUID, | |
| query TEXT NOT NULL, | |
| state_hash TEXT NOT NULL, | |
| loop_count INTEGER, | |
| stagnation_score INTEGER, | |
| resolution_strategy TEXT, | |
| final_answer TEXT, | |
| created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() | |
| ); | |
| -- 7. State Corruption Logs Table | |
| CREATE TABLE IF NOT EXISTS state_corruption_logs ( | |
| id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), | |
| correlation_id UUID, | |
| corrupting_node TEXT NOT NULL, | |
| failed_field TEXT NOT NULL, | |
| bad_value TEXT, | |
| expected_type TEXT, | |
| stack_trace TEXT, | |
| created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() | |
| ); | |
| -- 8. Human Approval Requests Table | |
| CREATE TABLE IF NOT EXISTS human_approval_requests ( | |
| id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), | |
| correlation_id UUID, | |
| action_type TEXT NOT NULL, | |
| action_description TEXT NOT NULL, | |
| action_parameters JSONB NOT NULL, | |
| risk_level TEXT NOT NULL, | |
| reasoning TEXT, | |
| alternatives JSONB, | |
| approval_status TEXT DEFAULT 'pending', | |
| approver_id TEXT, | |
| approval_timestamp TIMESTAMP WITH TIME ZONE, | |
| created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() | |
| ); | |
| CREATE INDEX IF NOT EXISTS idx_human_approval_pending ON human_approval_requests(approval_status) WHERE approval_status = 'pending'; | |
| -- 9. User Sessions Table | |
| CREATE TABLE IF NOT EXISTS user_sessions ( | |
| session_id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), | |
| user_id TEXT, | |
| conversation_history JSONB DEFAULT '[]'::jsonb, | |
| total_queries INTEGER DEFAULT 0, | |
| successful_queries INTEGER DEFAULT 0, | |
| failed_queries INTEGER DEFAULT 0, | |
| average_steps_per_query REAL DEFAULT 0.0, | |
| last_active_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), | |
| created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), | |
| updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() | |
| ); | |
| CREATE INDEX IF NOT EXISTS idx_user_sessions_user_id ON user_sessions(user_id); | |
| CREATE INDEX IF NOT EXISTS idx_user_sessions_last_active ON user_sessions(last_active_at); | |
| -- 10. Create Update Triggers | |
| CREATE OR REPLACE FUNCTION update_updated_at_column() | |
| RETURNS TRIGGER AS $$ | |
| BEGIN | |
| NEW.updated_at = NOW(); | |
| RETURN NEW; | |
| END; | |
| $$ language 'plpgsql'; | |
| -- Apply triggers to tables with updated_at | |
| CREATE TRIGGER update_tool_reliability_updated_at BEFORE UPDATE ON tool_reliability_metrics | |
| FOR EACH ROW EXECUTE FUNCTION update_updated_at_column(); | |
| CREATE TRIGGER update_knowledge_lifecycle_updated_at BEFORE UPDATE ON knowledge_lifecycle | |
| FOR EACH ROW EXECUTE FUNCTION update_updated_at_column(); | |
| CREATE TRIGGER update_user_sessions_updated_at BEFORE UPDATE ON user_sessions | |
| FOR EACH ROW EXECUTE FUNCTION update_updated_at_column(); | |
| -- 11. Verify all tables were created | |
| SELECT table_name | |
| FROM information_schema.tables | |
| WHERE table_schema = 'public' | |
| AND table_name IN ( | |
| 'knowledge_base', | |
| 'agent_trajectory_logs', | |
| 'tool_reliability_metrics', | |
| 'clarification_patterns', | |
| 'plan_corrections', | |
| 'knowledge_lifecycle', | |
| 'recursion_error_logs', | |
| 'state_corruption_logs', | |
| 'human_approval_requests', | |
| 'user_sessions' | |
| ) | |
| ORDER BY table_name; |