mirror of
https://github.com/coleam00/Archon
synced 2026-04-21 13:37:41 +00:00
- Add generic IPlatformAdapter and IAssistantClient interfaces for extensibility - Implement TelegramAdapter with streaming/batch modes - Implement ClaudeClient with session persistence and resume capability - Create TestAdapter for autonomous validation via HTTP endpoints - Add PostgreSQL database with 3-table schema (conversations, codebases, sessions) - Implement slash command system (/clone, /status, /getcwd, /setcwd, /reset, /help) - Add Docker containerization with docker-compose (with-db profile for local PostgreSQL) - Fix Claude Agent SDK spawn error (install bash, pass PATH environment variable) - Fix workspace volume mount to use /workspace in container - Add comprehensive documentation and health check endpoints Architecture highlights: - Platform-agnostic design allows adding Slack, GitHub, etc. via IPlatformAdapter - AI-agnostic design allows adding Codex, etc. via IAssistantClient - Orchestrator uses dependency injection with interface types - Session persistence survives container restarts - Working directory + codebase context determine Claude behavior 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
46 lines
1.7 KiB
SQL
46 lines
1.7 KiB
SQL
-- Remote Coding Agent - Initial Schema
|
|
-- Version: 1.0
|
|
-- Description: 3-table schema with remote_agent_ prefix
|
|
|
|
-- Table 1: Codebases
|
|
CREATE TABLE remote_agent_codebases (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
name VARCHAR(255) NOT NULL,
|
|
repository_url VARCHAR(500),
|
|
default_cwd VARCHAR(500) NOT NULL,
|
|
ai_assistant_type VARCHAR(20) DEFAULT 'claude',
|
|
commands JSONB DEFAULT '{}'::jsonb,
|
|
created_at TIMESTAMP DEFAULT NOW(),
|
|
updated_at TIMESTAMP DEFAULT NOW()
|
|
);
|
|
|
|
-- Table 2: Conversations
|
|
CREATE TABLE remote_agent_conversations (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
platform_type VARCHAR(20) NOT NULL,
|
|
platform_conversation_id VARCHAR(255) NOT NULL,
|
|
codebase_id UUID REFERENCES remote_agent_codebases(id),
|
|
cwd VARCHAR(500),
|
|
ai_assistant_type VARCHAR(20) DEFAULT 'claude',
|
|
created_at TIMESTAMP DEFAULT NOW(),
|
|
updated_at TIMESTAMP DEFAULT NOW(),
|
|
UNIQUE(platform_type, platform_conversation_id)
|
|
);
|
|
|
|
CREATE INDEX idx_remote_agent_conversations_codebase ON remote_agent_conversations(codebase_id);
|
|
|
|
-- Table 3: Sessions
|
|
CREATE TABLE remote_agent_sessions (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
conversation_id UUID REFERENCES remote_agent_conversations(id) ON DELETE CASCADE,
|
|
codebase_id UUID REFERENCES remote_agent_codebases(id),
|
|
ai_assistant_type VARCHAR(20) NOT NULL,
|
|
assistant_session_id VARCHAR(255),
|
|
active BOOLEAN DEFAULT true,
|
|
metadata JSONB DEFAULT '{}'::jsonb,
|
|
started_at TIMESTAMP DEFAULT NOW(),
|
|
ended_at TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX idx_remote_agent_sessions_conversation ON remote_agent_sessions(conversation_id, active);
|
|
CREATE INDEX idx_remote_agent_sessions_codebase ON remote_agent_sessions(codebase_id);
|