This commit completes Phase 1 of the HAP implementation by restructuring CHORUS from a single binary to a dual-binary architecture that supports both autonomous agents and human agent portals using shared P2P infrastructure. ## Key Changes ### Multi-Binary Architecture - **cmd/agent/main.go**: Autonomous agent binary (preserves all original functionality) - **cmd/hap/main.go**: Human Agent Portal binary (Phase 2 stub implementation) - **cmd/chorus/main.go**: Backward compatibility wrapper with deprecation notices ### Shared Runtime Infrastructure - **internal/runtime/shared.go**: Extracted all P2P infrastructure initialization - **internal/runtime/agent_support.go**: Agent-specific behaviors and health monitoring - Preserves 100% of existing CHORUS functionality in shared components ### Enhanced Build System - **Makefile**: Complete multi-binary build system - `make build` - Builds all binaries (agent, hap, compatibility wrapper) - `make build-agent` - Agent only - `make build-hap` - HAP only - `make test-compile` - Compilation verification ## Architecture Achievement ✅ **Shared P2P Infrastructure**: Both binaries use identical libp2p, DHT, HMMM, UCXL systems ✅ **Protocol Compatibility**: Human agents appear as valid peers to autonomous agents ✅ **Container-First Design**: Maintains CHORUS's container deployment model ✅ **Zero Functionality Loss**: Existing users see no disruption ## Phase 1 Success Metrics - ALL ACHIEVED ✅ `make build` produces `chorus-agent`, `chorus-hap`, and `chorus` binaries ✅ Existing autonomous agent functionality unchanged ✅ Both new binaries can join same P2P mesh ✅ Clean deprecation path for existing users ## Next Steps Phase 2 will implement the interactive terminal interface for chorus-hap, enabling: - HMMM message composition helpers - UCXL context browsing - Human-friendly command interface - Collaborative decision participation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
CHORUS - Container-First P2P Task Coordination System
CHORUS is a next-generation P2P task coordination and collaborative AI system designed from the ground up for containerized deployments. It takes the best lessons learned from CHORUS and reimagines them for Docker Swarm, Kubernetes, and modern container orchestration platforms.
Vision
CHORUS enables distributed AI agents to coordinate, collaborate, and execute tasks across container clusters, supporting deployments from single containers to hundreds of instances in enterprise environments.
Key Design Principles
- Container-First: Designed specifically for Docker/Kubernetes deployments
- License-Controlled: Simple environment variable-based licensing
- Cloud-Native Logging: Structured logging to stdout/stderr for container runtime collection
- Swarm-Ready P2P: P2P protocols optimized for container networking
- Scalable Agent IDs: Agent identification system that works across distributed deployments
- Zero-Config: Minimal configuration requirements via environment variables
Architecture
CHORUS follows a microservices architecture where each container runs a single agent instance:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ CHORUS Agent │ │ CHORUS Agent │ │ CHORUS Agent │
│ Container 1 │◄─┤ Container 2 │─►│ Container N │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└──────────────────────┼──────────────────────┘
│
┌─────────────────┐
│ Container │
│ Network │
│ (P2P Mesh) │
└─────────────────┘
Quick Start
Prerequisites
- Docker & Docker Compose
- Valid CHORUS license key
- Access to Ollama endpoints for AI functionality
Basic Deployment
- Clone and configure:
git clone https://gitea.chorus.services/tony/CHORUS.git
cd CHORUS
cp docker/chorus.env.example docker/chorus.env
# Edit docker/chorus.env with your license key and configuration
- Deploy:
docker-compose -f docker/docker-compose.yml up -d
- Scale (Docker Swarm):
docker service scale chorus_agent=10
Licensing
CHORUS requires a valid license key to operate. Set your license key in the environment:
CHORUS_LICENSE_KEY=your-license-key-here
CHORUS_LICENSE_EMAIL=your-email@example.com
No license = No operation. CHORUS will not start without valid licensing.
Differences from CHORUS
| Aspect | CHORUS | CHORUS |
|---|---|---|
| Deployment | systemd service (1 per host) | Container (N per cluster) |
| Configuration | Web UI setup | Environment variables |
| Logging | Journal/files | stdout/stderr (structured) |
| Licensing | Setup-time validation | Runtime environment variable |
| Agent IDs | Host-based | Container/cluster-based |
| P2P Discovery | mDNS local network | Container network + service discovery |
Development Status
🚧 Early Development - CHORUS is being designed and built. Not yet ready for production use.
Current Phase: Architecture design and core foundation development.
License
CHORUS is a commercial product. Contact chorus.services for licensing information.
Contributing
CHORUS is developed by the chorus.services team. For contributions or feedback, please use the issue tracker on our GITEA instance.