"""Sovereign orchestration — Huey replaces 3,843 lines of homebrew.""" import json import os from datetime import datetime, timezone from pathlib import Path from huey import SqliteHuey, signals huey = SqliteHuey(filename=str(Path.home() / ".hermes" / "orchestration.db")) # === Token Tracking === TOKEN_LOG = Path.home() / ".hermes" / "token_usage.jsonl" def log_token_usage(task_name, result): """Log token usage from a completed pipeline task. Reads input_tokens/output_tokens from the agent result dict. Auto-detects pipeline name from task context. Appends to JSONL for downstream analysis. """ if not isinstance(result, dict): return input_tokens = result.get("input_tokens", 0) output_tokens = result.get("output_tokens", 0) if input_tokens == 0 and output_tokens == 0: return # Auto-detect pipeline name from task function name pipeline = task_name.replace("_task", "").replace("_", "-") entry = { "timestamp": datetime.now(timezone.utc).isoformat(), "pipeline": pipeline, "input_tokens": input_tokens, "output_tokens": output_tokens, "total_tokens": input_tokens + output_tokens, "task": task_name, } TOKEN_LOG.parent.mkdir(parents=True, exist_ok=True) with open(TOKEN_LOG, "a") as f: f.write(json.dumps(entry) + "\n") @huey.signal(signals.SIGNAL_COMPLETE) def on_task_complete(signal, task, task_value=None, **kwargs): """Huey hook: log token usage after each pipeline task completes.""" task_name = getattr(task, "name", "unknown") log_token_usage(task_name, task_value)