feat: Add Alateya, Clan, Eonarch agents + fix gateway-router connection

## Agents Added
- Alateya: R&D, biotech, innovations
- Clan (Spirit): Community spirit agent
- Eonarch: Consciousness evolution agent

## Changes
- docker-compose.node1.yml: Added tokens for all 3 new agents
- gateway-bot/http_api.py: Added configs and webhook endpoints
- gateway-bot/clan_prompt.txt: New prompt file
- gateway-bot/eonarch_prompt.txt: New prompt file

## Fixes
- Fixed ROUTER_URL from :9102 to :8000 (internal container port)
- All 9 Telegram agents now working

## Documentation
- Created PROJECT-MASTER-INDEX.md - single entry point
- Added various status documents and scripts

Tokens configured:
- Helion, NUTRA, Agromatrix (existing)
- Alateya, Clan, Eonarch (new)
- Druid, GreenFood, DAARWIZZ (configured)
This commit is contained in:
Apple
2026-01-28 06:40:34 -08:00
parent 4aeb69e7ae
commit 0c8bef82f4
120 changed files with 21905 additions and 425 deletions

View File

@@ -24,6 +24,8 @@ services:
- NEO4J_PASSWORD=DaarionNeo4j2026!
- DEEPSEEK_API_KEY=sk-0db94e8193ec4a6e9acd593ee8d898e7
- MISTRAL_API_KEY=40Gwjo8nVBx4i4vIkgszvXw9bOwDOu4G
- COHERE_API_KEY=nOdOXnuepLku2ipJWpe6acWgAsJCsDhMO0RnaEJB
- GROK_API_KEY=xai-69zEnDse8qRuQyZATs9jVKgfwdyvkHzgEVrTbV0OTAurZqsjHmvGepXG6H9GhVRYEC7E4NFl6iZeG0ww
- VISION_ENCODER_URL=http://vision-encoder:8001
- SWAPPER_SERVICE_URL=http://swapper-service:8890
- IMAGE_GEN_URL=http://swapper-service:8890/image/generate
@@ -38,7 +40,7 @@ services:
- dagi-network
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:8000/health')\""]
interval: 30s
timeout: 10s
retries: 3
@@ -64,6 +66,9 @@ services:
- HF_HOME=/root/.cache/huggingface
- CUDA_VISIBLE_DEVICES=0
- CRAWL4AI_URL=http://crawl4ai:11235
# Cloud API keys for video/image generation
- GROK_API_KEY=xai-69zEnDse8qRuQyZATs9jVKgfwdyvkHzgEVrTbV0OTAurZqsjHmvGepXG6H9GhVRYEC7E4NFl6iZeG0ww
- MISTRAL_API_KEY=40Gwjo8nVBx4i4vIkgszvXw9bOwDOu4G
volumes:
- ./services/swapper-service/config/swapper_config_node1.yaml:/app/config/swapper_config.yaml:ro
- ./logs:/app/logs
@@ -120,9 +125,32 @@ services:
- "9300:9300"
environment:
- ROUTER_URL=http://router:8000
- SERVICE_ID=gateway
- SERVICE_ROLE=gateway
- BRAND_INTAKE_URL=http://brand-intake:9211
- BRAND_REGISTRY_URL=http://brand-registry:9210
- PRESENTATION_RENDERER_URL=http://presentation-renderer:9212
- ARTIFACT_REGISTRY_URL=http://artifact-registry:9220
- HELION_TELEGRAM_BOT_TOKEN=8112062582:AAGS-HwRLEI269lDutLtAJTFArsIq31YNhE
- HELION_NAME=Helion
- HELION_PROMPT_PATH=/app/gateway-bot/helion_prompt.txt
- NUTRA_TELEGRAM_BOT_TOKEN=8517315428:AAGTLcKxBAZDsMgx28agKTvl1SqJGi0utH4
- NUTRA_NAME=NUTRA
- AGROMATRIX_TELEGRAM_BOT_TOKEN=8580290441:AAFuDBmFJtpl-3I_WfkH7Hkb59X0fhYNMOE
- AGROMATRIX_NAME=AgroMatrix
- AGROMATRIX_PROMPT_PATH=/app/gateway-bot/agromatrix_prompt.txt
# Alateya - R&D, біотех, інновації
- ALATEYA_TELEGRAM_BOT_TOKEN=8436880945:AAEi-HS6GEctddoqBUd37MHfweZQP-OjRlo
- ALATEYA_NAME=Alateya
- ALATEYA_PROMPT_PATH=/app/gateway-bot/alateya_prompt.txt
# Clan (Spirit) - Дух Общини
- CLAN_TELEGRAM_BOT_TOKEN=8516872152:AAHH26wU8hJZJbSCJXb4vbmPmakTP77ok5E
- CLAN_NAME=Spirit
- CLAN_PROMPT_PATH=/app/gateway-bot/clan_prompt.txt
# Eonarch - Еволюція свідомості
- EONARCH_TELEGRAM_BOT_TOKEN=7962391584:AAFYkelLRG3VR_Lxuu6pEGG76t4vZdANtz4
- EONARCH_NAME=EONARCH
- EONARCH_PROMPT_PATH=/app/gateway-bot/eonarch_prompt.txt
- MEMORY_SERVICE_URL=http://memory-service:8000
- SWAPPER_SERVICE_URL=http://swapper-service:8890
- IMAGE_GEN_URL=http://swapper-service:8890/image/generate
@@ -140,7 +168,240 @@ services:
- dagi-network
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9300/health"]
test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:9300/health')\""]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
# NATS (JetStream)
nats:
image: nats:2.10-alpine
container_name: dagi-nats-node1
ports:
- "4222:4222"
command: ["-js"]
volumes:
- nats-data-node1:/data
networks:
- dagi-network
restart: unless-stopped
# MinIO Object Storage
minio:
image: minio/minio:latest
container_name: dagi-minio-node1
ports:
- "9000:9000"
- "9001:9001"
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin
command: ["server", "/data", "--console-address", ":9001"]
volumes:
- minio-data-node1:/data
networks:
- dagi-network
restart: unless-stopped
# Artifact Registry (shared for docs/presentations)
artifact-registry:
build:
context: ./services/artifact-registry
dockerfile: Dockerfile
container_name: artifact-registry-node1
ports:
- "9220:9220"
environment:
- POSTGRES_HOST=dagi-postgres
- POSTGRES_PORT=5432
- POSTGRES_USER=daarion
- POSTGRES_PASSWORD=DaarionDB2026!
- POSTGRES_DB=daarion_main
- MINIO_ENDPOINT=minio:9000
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
- MINIO_BUCKET=artifacts
- MINIO_SECURE=false
- NATS_URL=nats://nats:4222
volumes:
- ./logs:/app/logs
depends_on:
- nats
- minio
networks:
- dagi-network
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:9220/health')\""]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
# RAG Service (pgvector)
rag-service:
build:
context: ./services/rag-service
dockerfile: Dockerfile
container_name: rag-service-node1
ports:
- "9500:9500"
environment:
- PG_DSN=postgresql+psycopg2://daarion:DaarionDB2026!@dagi-postgres:5432/rag
- RAG_TABLE_NAME=rag_documents
depends_on:
- dagi-postgres
networks:
- dagi-network
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:9500/health"]
interval: 10s
timeout: 3s
retries: 10
# PPTX Render Worker
render-pptx-worker:
build:
context: ./services/render-pptx-worker
dockerfile: Dockerfile
container_name: render-pptx-worker-node1
environment:
- NATS_URL=nats://nats:4222
- ARTIFACT_REGISTRY_URL=http://artifact-registry:9220
- MINIO_ENDPOINT=minio:9000
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
- MINIO_BUCKET=artifacts
- MINIO_SECURE=false
depends_on:
- nats
- artifact-registry
- minio
networks:
- dagi-network
restart: unless-stopped
# PDF Render Worker (LibreOffice)
render-pdf-worker:
build:
context: ./services/render-pdf-worker
dockerfile: Dockerfile
container_name: render-pdf-worker-node1
environment:
- NATS_URL=nats://nats:4222
- ARTIFACT_REGISTRY_URL=http://artifact-registry:9220
- MINIO_ENDPOINT=minio:9000
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
- MINIO_BUCKET=artifacts
- MINIO_SECURE=false
depends_on:
- nats
- artifact-registry
- minio
networks:
- dagi-network
restart: unless-stopped
# Index Doc Worker
index-doc-worker:
build:
context: ./services/index-doc-worker
dockerfile: Dockerfile
container_name: index-doc-worker-node1
environment:
- NATS_URL=nats://nats:4222
- ARTIFACT_REGISTRY_URL=http://artifact-registry:9220
- RAG_SERVICE_URL=http://rag-service:9500
- MINIO_ENDPOINT=minio:9000
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
- MINIO_BUCKET=artifacts
- MINIO_SECURE=false
- INDEX_DOC_MAX_BYTES=52428800
depends_on:
- nats
- artifact-registry
- rag-service
- minio
networks:
- dagi-network
restart: unless-stopped
# Brand Registry Service
brand-registry:
build:
context: ./services/brand-registry
dockerfile: Dockerfile
container_name: brand-registry-node1
ports:
- "9210:9210"
environment:
- BRAND_REGISTRY_DATA=/data/brand-registry
volumes:
- ./logs:/app/logs
- brand-registry-data-node1:/data/brand-registry
networks:
- dagi-network
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:9210/health')\""]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
# Brand Intake Service
brand-intake:
build:
context: ./services/brand-intake
dockerfile: Dockerfile
container_name: brand-intake-node1
ports:
- "9211:9211"
environment:
- BRAND_MAP_PATH=/app/config/BrandMap.yaml
- BRAND_INTAKE_DATA=/data/brand-intake
- BRAND_REGISTRY_URL=http://brand-registry:9210
volumes:
- ./config/brand/BrandMap.yaml:/app/config/BrandMap.yaml:ro
- ./logs:/app/logs
- brand-intake-data-node1:/data/brand-intake
depends_on:
- brand-registry
networks:
- dagi-network
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:9211/health')\""]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
# Presentation Renderer Service (MVP)
presentation-renderer:
build:
context: ./services/presentation-renderer
dockerfile: Dockerfile
container_name: presentation-renderer-node1
ports:
- "9212:9212"
environment:
- BRAND_REGISTRY_URL=http://brand-registry:9210
- PRESENTATION_DATA=/data/presentations
volumes:
- ./logs:/app/logs
- presentation-data-node1:/data/presentations
depends_on:
- brand-registry
networks:
- dagi-network
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:9212/health')\""]
interval: 30s
timeout: 10s
retries: 3
@@ -164,8 +425,8 @@ services:
# Qdrant connection
- MEMORY_QDRANT_HOST=qdrant
- MEMORY_QDRANT_PORT=6333
# Optional
- MEMORY_COHERE_API_KEY=${COHERE_API_KEY:-}
# Cohere for embeddings
- MEMORY_COHERE_API_KEY=nOdOXnuepLku2ipJWpe6acWgAsJCsDhMO0RnaEJB
- MEMORY_DEBUG=false
volumes:
- ./logs:/app/logs
@@ -175,16 +436,36 @@ services:
- dagi-network
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:8000/health')\""]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
# PostgreSQL (pgvector)
dagi-postgres:
image: pgvector/pgvector:pg16
container_name: dagi-postgres
ports:
- "5432:5432"
environment:
- POSTGRES_USER=daarion
- POSTGRES_PASSWORD=DaarionDB2026!
- POSTGRES_DB=daarion_main
volumes:
- postgres_data_node1:/var/lib/postgresql/data
networks:
- dagi-network
restart: unless-stopped
# Qdrant Vector Database
qdrant:
image: qdrant/qdrant:v1.7.4
container_name: dagi-qdrant-node1
ulimits:
nofile:
soft: 65536
hard: 65536
ports:
- "6333:6333" # HTTP API
- "6334:6334" # gRPC API
@@ -194,7 +475,7 @@ services:
- dagi-network
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:6333/healthz"]
test: ["CMD-SHELL", "wget -qO- http://localhost:6333/healthz || exit 1"]
interval: 30s
timeout: 10s
retries: 3
@@ -265,7 +546,7 @@ services:
- dagi-network
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8001/health"]
test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:8001/health')\""]
interval: 30s
timeout: 10s
retries: 3
@@ -281,6 +562,12 @@ volumes:
vision-model-cache-node1:
docling-model-cache-node1:
swapper-hf-cache-node1:
brand-registry-data-node1:
brand-intake-data-node1:
presentation-data-node1:
nats-data-node1:
minio-data-node1:
postgres_data_node1:
networks:
dagi-network: