Initial commit: Complete Hive distributed AI orchestration platform

This comprehensive implementation includes:
- FastAPI backend with MCP server integration
- React/TypeScript frontend with Vite
- PostgreSQL database with Redis caching
- Grafana/Prometheus monitoring stack
- Docker Compose orchestration
- Full MCP protocol support for Claude Code integration

Features:
- Agent discovery and management across network
- Visual workflow editor and execution engine
- Real-time task coordination and monitoring
- Multi-model support with specialized agents
- Distributed development task allocation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
anthonyrawlins
2025-07-07 21:44:31 +10:00
commit d7ad321176
2631 changed files with 870175 additions and 0 deletions

View File

@@ -0,0 +1,123 @@
-- Hive Unified Database Schema
-- User Management
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) UNIQUE NOT NULL,
hashed_password VARCHAR(255) NOT NULL,
is_active BOOLEAN DEFAULT true,
role VARCHAR(50) DEFAULT 'developer',
created_at TIMESTAMP DEFAULT NOW(),
last_login TIMESTAMP
);
-- Agent Management
CREATE TABLE agents (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name VARCHAR(255) NOT NULL,
endpoint VARCHAR(512) NOT NULL,
model VARCHAR(255),
specialization VARCHAR(100),
capabilities JSONB,
hardware_config JSONB,
status VARCHAR(50) DEFAULT 'offline',
performance_targets JSONB,
created_at TIMESTAMP DEFAULT NOW(),
last_seen TIMESTAMP
);
-- Workflow Management
CREATE TABLE workflows (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name VARCHAR(255) NOT NULL,
description TEXT,
n8n_data JSONB NOT NULL,
mcp_tools JSONB,
created_by UUID REFERENCES users(id),
version INTEGER DEFAULT 1,
active BOOLEAN DEFAULT true,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
-- Execution Tracking
CREATE TABLE executions (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
workflow_id UUID REFERENCES workflows(id),
status VARCHAR(50) DEFAULT 'pending',
input_data JSONB,
output_data JSONB,
error_message TEXT,
progress INTEGER DEFAULT 0,
started_at TIMESTAMP,
completed_at TIMESTAMP,
created_at TIMESTAMP DEFAULT NOW()
);
-- Task Management
CREATE TABLE tasks (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
title VARCHAR(255) NOT NULL,
description TEXT,
priority INTEGER DEFAULT 5,
status VARCHAR(50) DEFAULT 'pending',
assigned_agent_id UUID REFERENCES agents(id),
workflow_id UUID REFERENCES workflows(id),
execution_id UUID REFERENCES executions(id),
metadata JSONB,
created_at TIMESTAMP DEFAULT NOW(),
started_at TIMESTAMP,
completed_at TIMESTAMP
);
-- Performance Metrics (Time Series)
CREATE TABLE agent_metrics (
agent_id UUID REFERENCES agents(id),
timestamp TIMESTAMP NOT NULL,
cpu_usage FLOAT,
memory_usage FLOAT,
gpu_usage FLOAT,
tokens_per_second FLOAT,
response_time FLOAT,
active_tasks INTEGER,
status VARCHAR(50),
PRIMARY KEY (agent_id, timestamp)
);
-- System Alerts
CREATE TABLE alerts (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
type VARCHAR(100) NOT NULL,
severity VARCHAR(20) NOT NULL,
message TEXT NOT NULL,
agent_id UUID REFERENCES agents(id),
resolved BOOLEAN DEFAULT false,
created_at TIMESTAMP DEFAULT NOW(),
resolved_at TIMESTAMP
);
-- API Keys
CREATE TABLE api_keys (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(id),
name VARCHAR(255) NOT NULL,
key_hash VARCHAR(255) NOT NULL,
is_active BOOLEAN DEFAULT true,
expires_at TIMESTAMP,
created_at TIMESTAMP DEFAULT NOW()
);
-- Indexes for performance
CREATE INDEX idx_agents_status ON agents(status);
CREATE INDEX idx_workflows_active ON workflows(active, created_at);
CREATE INDEX idx_executions_status ON executions(status, created_at);
CREATE INDEX idx_tasks_status_priority ON tasks(status, priority DESC, created_at);
CREATE INDEX idx_agent_metrics_timestamp ON agent_metrics(timestamp);
CREATE INDEX idx_agent_metrics_agent_time ON agent_metrics(agent_id, timestamp);
CREATE INDEX idx_alerts_unresolved ON alerts(resolved, created_at) WHERE resolved = false;
-- Sample data
INSERT INTO users (email, hashed_password, role) VALUES
('admin@hive.local', '$2b$12$LQv3c1yqBWVHxkd0LHAkCOYz6TtxMQJqhN8/lewohT6ZErjH.2T.2', 'admin'),
('developer@hive.local', '$2b$12$LQv3c1yqBWVHxkd0LHAkCOYz6TtxMQJqhN8/lewohT6ZErjH.2T.2', 'developer');