"""Wave B hub epic configuration."""
from __future__ import annotations

HUB_ORDER = ["e65", "e68", "e72", "e66", "e67", "e70", "e73", "e62", "e71"]

HUB_EPICS: dict[str, dict] = {
    "e65": {
        "story": "e65s02",
        "fn": "codex",
        "setup_id": "codex",
        "label": "Codex CLI",
        "home": ".codex",
        "skills_sub": "skills",
        "rendered": ".codex/skills",
        "kind": "skill_dir",
        "context": {"mode": "config-bridge", "bridge": "config.toml", "key": "instructions", "wire": "AGENTS.md"},
        "hooks": True,
        "manifest": "codex_hooks_manifest",
    },
    "e68": {
        "story": "e68s02",
        "fn": "qwen",
        "setup_id": "qwen",
        "label": "Qwen Code",
        "home": ".qwen",
        "skills_sub": "skills",
        "rendered": ".qwen/skills",
        "kind": "skill_dir",
        "context": {"mode": "symlink", "file": "QWEN.md"},
        "hooks": True,
        "manifest": "qwen_hooks_manifest",
    },
    "e72": {
        "story": "e72s02",
        "fn": "codebuddy",
        "setup_id": "codebuddy",
        "label": "CodeBuddy",
        "home": ".codebuddy",
        "skills_sub": "skills",
        "rendered": ".codebuddy/skills",
        "kind": "skill_dir",
        "context": {"mode": "symlink", "file": "AGENTS.md"},
        "hooks": True,
        "manifest": "codebuddy_hooks_manifest",
    },
    "e66": {
        "story": "e66s02",
        "fn": "cline",
        "setup_id": "cline",
        "label": "Cline",
        "home": ".cline",
        "skills_sub": "skills",
        "rendered": ".cline/skills",
        "kind": "skill_dir",
        "context": {"mode": "native"},
        "hooks": "plugin",
        "manifest": "cline_hooks_manifest",
    },
    "e67": {
        "story": "e67s02",
        "fn": "kilocode",
        "setup_id": "kilo",
        "label": "Kilo",
        "home": ".kilocode",
        "skills_sub": "rules",
        "rendered": ".kilocode/rules",
        "kind": "rules_file",
        "context": {"mode": "copy", "file": "AGENTS.md"},
        "hooks": "plugin",
        "manifest": "kilocode_hooks_manifest",
    },
    "e70": {
        "story": "e70s02",
        "fn": "trae",
        "setup_id": "trae",
        "label": "Trae",
        "home": ".trae",
        "skills_sub": "skills",
        "rendered": ".trae/skills",
        "kind": "skill_dir",
        "context": {"mode": "symlink", "file": "AGENTS.md"},
        "hooks": True,
        "manifest": "trae_hooks_manifest",
    },
    "e73": {
        "story": "e73s02",
        "fn": "windsurf",
        "setup_id": "windsurf",
        "label": "Windsurf",
        "home": ".codeium/windsurf",
        "skills_sub": "rules",
        "rendered": ".windsurf/rules",
        "kind": "rules_file",
        "context": {"mode": "copy", "file": "AGENTS.md"},
        "hooks": True,
        "manifest": "windsurf_hooks_manifest",
    },
    "e62": {
        "story": "e62s02",
        "fn": "opencode",
        "setup_id": "opencode",
        "label": "OpenCode",
        "home": ".config/opencode",
        "skills_sub": "skills",
        "rendered": ".opencode/skills",
        "kind": "skill_dir",
        "context": {"mode": "symlink", "file": "AGENTS.md"},
        "hooks": False,
        "manifest": None,
    },
    "e71": {
        "story": "e71s02",
        "fn": "copilot",
        "setup_id": "copilot",
        "label": "Copilot CLI",
        "home": ".copilot",
        "skills_sub": "skills",
        "rendered": ".copilot/skills",
        "kind": "skill_dir",
        "context": {"mode": "copy", "file": "AGENTS.md"},
        "hooks": False,
        "manifest": None,
    },
}




def prefix(cfg: dict) -> str:
    return cfg["fn"].upper().replace("-", "_")
