Spaces:
Build error
Build error
File size: 6,249 Bytes
8a682b5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 |
-- 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; |