from __future__ import annotations from dataclasses import dataclass from typing import Literal AgentId = Literal["us", "israel", "iran", "hezbollah", "gulf", "oversight"] ModelSize = Literal["large", "medium-large", "medium"] @dataclass(frozen=True) class AgentProfile: display_name: str role: str model_size: ModelSize intelligence_focus: tuple[str, ...] baseline_private_intel: tuple[str, ...] AGENT_IDS: tuple[AgentId, ...] = ( "us", "israel", "iran", "hezbollah", "gulf", "oversight", ) AGENT_PROFILES: dict[AgentId, AgentProfile] = { "us": AgentProfile( display_name="US / CENTCOM", role="Alliance management, sanctions, domestic stability", model_size="large", intelligence_focus=("polls", "markets", "alliances", "shipping"), baseline_private_intel=( "Domestic approval is sensitive to prolonged escalation.", "Forward naval posture can deter but also spike market stress.", ), ), "israel": AgentProfile( display_name="Israel / IDF", role="Border defense, strike planning, proxy disruption", model_size="medium-large", intelligence_focus=("northern front", "sirens", "proxy movement", "air defense"), baseline_private_intel=( "Border warning posture remains elevated in the north.", "Fast retaliation can secure deterrence but raises coalition risk.", ), ), "iran": AgentProfile( display_name="Iran / IRGC", role="Asymmetric retaliation, proxy coordination, survival", model_size="medium-large", intelligence_focus=("proxy network", "oil chokepoints", "internal losses", "deception"), baseline_private_intel=( "Proxy coordination is most effective when attribution stays ambiguous.", "Energy chokepoints remain the strongest leverage point.", ), ), "hezbollah": AgentProfile( display_name="Hezbollah", role="Asymmetric swarming, opportunistic escalation", model_size="medium", intelligence_focus=("border gaps", "morale", "small-unit pressure", "drone windows"), baseline_private_intel=( "Small, frequent attacks are harder to pre-empt than large waves.", "Alignment with Tehran matters more than independent visibility.", ), ), "gulf": AgentProfile( display_name="Gulf Coalition", role="Market hedging, shipping security, selective alignment", model_size="medium", intelligence_focus=("oil", "shipping", "capital flows", "neutrality"), baseline_private_intel=( "Energy shock containment matters more than direct battlefield gains.", "Neutral positioning creates leverage only while trade routes remain open.", ), ), "oversight": AgentProfile( display_name="Fleet Oversight", role="Risk scoring, intervention, trace auditing", model_size="medium-large", intelligence_focus=("global risk", "misalignment", "cascades", "de-escalation"), baseline_private_intel=( "Misread incentives are the strongest predictor of runaway escalation.", "Interventions should reduce risk without collapsing agent autonomy.", ), ), }