#!/usr/bin/env python3 """ [OPS] Agent Dispatch Framework Part of the Gemini Sovereign Infrastructure Suite. Replaces ad-hoc dispatch scripts with a unified framework for tasking agents. """ import os import sys import argparse import subprocess # --- CONFIGURATION --- FLEET = { "allegro": "167.99.126.228", "bezalel": "159.203.146.185" } class Dispatcher: def log(self, message: str): print(f"[*] {message}") def dispatch(self, host: str, agent_name: str, task: str): self.log(f"Dispatching task to {agent_name} on {host}...") ip = FLEET[host] # Command to run the agent on the remote machine # Assumes hermes-agent is installed in /opt/hermes remote_cmd = f"cd /opt/hermes && python3 run_agent.py --agent {agent_name} --task '{task}'" ssh_cmd = ["ssh", "-o", "StrictHostKeyChecking=no", f"root@{ip}", remote_cmd] try: res = subprocess.run(ssh_cmd, capture_output=True, text=True) if res.returncode == 0: self.log(f"[SUCCESS] {agent_name} completed task.") print(res.stdout) else: self.log(f"[FAILURE] {agent_name} failed task.") print(res.stderr) except Exception as e: self.log(f"[ERROR] Dispatch failed: {e}") def main(): parser = argparse.ArgumentParser(description="Gemini Agent Dispatcher") parser.add_argument("host", choices=list(FLEET.keys()), help="Host to dispatch to") parser.add_argument("agent", help="Agent name") parser.add_argument("task", help="Task description") args = parser.parse_args() dispatcher = Dispatcher() dispatcher.dispatch(args.host, args.agent, args.task) if __name__ == "__main__": main()