anthonyrawlins 3ce9811826 Implement Beat 1: Sequential Thinking Age-Encrypted Wrapper (Skeleton)
This commit completes Beat 1 of the SequentialThinkingForCHORUS implementation,
providing a functional plaintext skeleton for the age-encrypted wrapper.

## Deliverables

### 1. Main Wrapper Entry Point
- `cmd/seqthink-wrapper/main.go`: HTTP server on :8443
- Configuration loading from environment variables
- Graceful shutdown handling
- MCP server readiness checking with timeout

### 2. MCP Client Package
- `pkg/seqthink/mcpclient/client.go`: HTTP client for MCP server
- Communicates with MCP server on localhost:8000
- Health check endpoint
- Tool call endpoint with 120s timeout

### 3. Proxy Server Package
- `pkg/seqthink/proxy/server.go`: HTTP handlers for wrapper
- Health and readiness endpoints
- Tool call proxy (plaintext for Beat 1)
- SSE endpoint placeholder
- Metrics endpoint integration

### 4. Observability Package
- `pkg/seqthink/observability/logger.go`: Structured logging with zerolog
- `pkg/seqthink/observability/metrics.go`: Prometheus metrics
- Counters for requests, errors, decrypt/encrypt failures, policy denials
- Request duration histogram

### 5. Docker Infrastructure
- `deploy/seqthink/Dockerfile`: Multi-stage build
- `deploy/seqthink/entrypoint.sh`: Startup orchestration
- `deploy/seqthink/mcp_stub.py`: Minimal MCP server for testing

### 6. Build System Integration
- Updated `Makefile` with `build-seqthink` target
- Uses GOWORK=off and -mod=mod for clean builds
- `docker-seqthink` target for container builds

## Testing

Successfully builds with:
```
make build-seqthink
```

Binary successfully starts and waits for MCP server connection.

## Next Steps

Beat 2 will add:
- Age encryption/decryption (pkg/seqthink/ageio)
- Content-Type: application/age enforcement
- SSE streaming with encrypted frames
- Golden tests for crypto round-trips

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-13 08:35:43 +11:00
2025-09-02 19:53:33 +10:00
2025-09-06 14:47:41 +10:00

CHORUS Container-First Context Platform (Alpha)

CHORUS is the runtime that ties the CHORUS ecosystem together: libp2p mesh, DHT-backed storage, council/task coordination, and (eventually) SLURP contextual intelligence. The repository you are looking at is the in-progress container-first refactor. Several core systems boot today, but higher-level services (SLURP, SHHH, full HMMM routing) are still landing.

Current Status

Area Status Notes
libp2p node + PubSub Running internal/runtime/shared.go spins up the mesh, hypercore logging, availability broadcasts.
DHT + DecisionPublisher Running Encrypted storage wired through pkg/dht; decisions written via ucxl.DecisionPublisher.
Leader Election System FULLY FUNCTIONAL 🎉 MILESTONE: Complete admin election with consensus, discovery protocol, heartbeats, and SLURP activation!
SLURP (context intelligence) 🚧 Stubbed pkg/slurp/slurp.go contains TODOs for resolver, temporal graphs, intelligence. Leader integration scaffolding exists but uses placeholder IDs/request forwarding.
SHHH (secrets sentinel) 🚧 Sentinel live pkg/shhh redacts hypercore + PubSub payloads with audit + metrics hooks (policy replay TBD).
HMMM routing 🚧 Partial PubSub topics join, but capability/role announcements and HMMM router wiring are placeholders (internal/runtime/agent_support.go).

See docs/progress/CHORUS-WHOOSH-development-plan.md for the detailed build plan and docs/progress/CHORUS-WHOOSH-roadmap.md for sequencing.

Quick Start (Alpha)

The container-first workflows are still evolving; expect frequent changes.

git clone https://gitea.chorus.services/tony/CHORUS.git
cd CHORUS
cp docker/chorus.env.example docker/chorus.env
# adjust env vars (KACHING license, bootstrap peers, etc.)
docker compose -f docker/docker-compose.yml up --build

Youll get a single agent container with:

  • libp2p networking (mDNS + configured bootstrap peers)
  • election heartbeat
  • DHT storage (AGE-encrypted)
  • HTTP API + health endpoints

Missing today: SLURP context resolution, advanced SHHH policy replay, HMMM per-issue routing. Expect log warnings/TODOs for those paths.

🎉 Leader Election System (NEW!)

CHORUS now features a complete, production-ready leader election system:

Core Features

  • Consensus-based election with weighted scoring (uptime, capabilities, resources)
  • Admin discovery protocol for network-wide leader identification
  • Heartbeat system with automatic failover (15-second intervals)
  • Concurrent election prevention with randomized delays
  • SLURP activation on elected admin nodes

How It Works

  1. Bootstrap: Nodes start in idle state, no admin known
  2. Discovery: Nodes send discovery requests to find existing admin
  3. Election trigger: If no admin found after grace period, trigger election
  4. Candidacy: Eligible nodes announce themselves with capability scores
  5. Consensus: Network selects winner based on highest score
  6. Leadership: Winner starts heartbeats, activates SLURP functionality
  7. Monitoring: Nodes continuously verify admin health via heartbeats

Debugging

Use these log patterns to monitor election health:

# Monitor WHOAMI messages and leader identification
docker service logs CHORUS_chorus | grep "🤖 WHOAMI\|👑\|📡.*Discovered"

# Track election cycles
docker service logs CHORUS_chorus | grep "🗳️\|📢.*candidacy\|🏆.*winner"

# Watch discovery protocol
docker service logs CHORUS_chorus | grep "📩\|📤\|📥"

Roadmap Highlights

  1. Security substrate land SHHH sentinel, finish SLURP leader-only operations, validate COOEE enrolment (see roadmap Phase 1).
  2. Autonomous teams coordinate with WHOOSH for deployment telemetry + SLURP context export.
  3. UCXL + KACHING hook runtime telemetry into KACHING and enforce UCXL validator.

Track progress via the shared roadmap and weekly burndown dashboards.

  • WHOOSH council/team orchestration
  • KACHING telemetry/licensing
  • SLURP contextual intelligence prototypes
  • HMMM meta-discussion layer

Contributing

This repo is still alpha. Please coordinate via the roadmap tickets before landing changes. Major security/runtime decisions should include a Decision Record with a UCXL address so SLURP/BUBBLE can ingest it later.

Description
Container-First P2P Task Coordination System - Next generation distributed AI agent coordination designed for Docker/Kubernetes deployments
Readme 292 MiB
Languages
Go 97.7%
HTML 1.9%
Python 0.2%
Makefile 0.1%