- engine/hermes_client.py: cookie-auth async client — profiles (create/soul/
model/delete), kanban tasks (create with tenant + runaway budget mapping,
idempotency via work-item UUID, update/delete), dispatch, runs, workers.
- engine/config.py: env-driven settings (.env stays gitignored).
- tests/test_hermes_live.py: live smoke against Hermes 0.19.0 — all pass:
profile round-trip, task create (t_*), idempotent re-create, status patch,
cleanup. No dispatch triggered (no GPU burn).
- Discovery: kanban responses wrap in {task}; webhooks are inbound triggers,
so engine polls run/task status (ADR-001 fallback is the primary channel).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
21 lines
774 B
Python
21 lines
774 B
Python
"""Engine settings, loaded from environment / .env."""
|
|
import os
|
|
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
|
|
class Settings:
|
|
hermes_dashboard_url: str = os.getenv("HERMES_DASHBOARD_URL", "http://192.168.1.5:30433")
|
|
hermes_api_url: str = os.getenv("HERMES_API_URL", "http://192.168.1.5:30432")
|
|
hermes_api_key: str = os.getenv("HERMES_API_KEY", "")
|
|
hermes_username: str = os.getenv("HERMES_USERNAME", "")
|
|
hermes_password: str = os.getenv("HERMES_PASSWORD", "")
|
|
ollama_pool_url: str = os.getenv("OLLAMA_POOL_URL", "http://192.168.1.5:4000")
|
|
database_url: str = os.getenv("DATABASE_URL", "postgresql://farmhouse:farmhouse@localhost:5433/farmhouse")
|
|
redis_url: str = os.getenv("REDIS_URL", "redis://localhost:6380/0")
|
|
|
|
|
|
settings = Settings()
|