# Dispatch — Model & Key Configuration
# Keys reference env var names in .env.dispatch

# ─── Fallback Order (highest priority first) ────────────────────
# Exhaust claude-max first, then opencode-1, then opencode-2, then copilot.
# When all keys are exhausted the agent enters wait-for-refresh.
# Must be declared BEFORE any [[keys]] / [[models]] blocks.

fallback = ["claude-max", "opencode-1", "opencode-2", "copilot"]

# ─── API Keys ───────────────────────────────────────────────────

[[keys]]
id = "claude-max"
provider = "anthropic"
base_url = "https://api.anthropic.com/v1"
# No env needed — credentials read from ~/.claude/.credentials.json
# Optional: specify a specific credentials file for multi-account:
# credentials_file = "/home/tradam/.claude/.credentials-2.json"

[[keys]]
id = "opencode-1"
provider = "opencode-go"
env = "OPENCODE_KEY_1"
base_url = "https://opencode.ai/zen/go/v1"

[[keys]]
id = "opencode-2"
provider = "opencode-go"
env = "OPENCODE_KEY_2"
base_url = "https://opencode.ai/zen/go/v1"

[[keys]]
id = "copilot"
provider = "github-copilot"
env = "COPILOT_TOKEN"
base_url = "https://api.githubcopilot.com"

# ─── Models ─────────────────────────────────────────────────────

[[models]]
id = "claude-sonnet-4-20250514"
provider = "anthropic"
tags = ["heavy", "coding", "review"]

[[models]]
id = "claude-opus-4-20250514"
provider = "anthropic"
tags = ["heavy", "coding", "review"]

[[models]]
id = "deepseek-v4-pro"
provider = "opencode-go"
tags = ["heavy", "coding"]

[[models]]
id = "deepseek-v4-flash"
provider = "opencode-go"
tags = ["light", "quick"]

[[models]]
id = "gpt-4o"
provider = "github-copilot"
tags = ["heavy", "coding"]

[[models]]
id = "claude-3.5-sonnet"
provider = "github-copilot"
tags = ["heavy", "coding", "review"]

# ─── Agent Templates ─────────────────────────────────────────────

[agents.default]
name = "Dispatch"
description = "Default coding assistant"
system_prompt = "You are a helpful AI coding assistant."
tools = ["read_file", "write_file", "list_files", "run_shell", "task_list"]
model_tag = "heavy"

# ─── Permissions ─────────────────────────────────────────────────

[permissions]
read = "allow"

[permissions.edit]
"*" = "ask"
"src/**" = "allow"

[permissions.bash]
"npm test" = "allow"
"npm run *" = "allow"
"git status" = "allow"
"git diff" = "allow"
"git log *" = "allow"
"git branch *" = "allow"
"git add *" = "allow"
"git commit *" = "allow"
"git push *" = "allow"
"ls *" = "allow"
"*" = "ask"

[permissions.external_directory]
"~/*" = "ask"
"/tmp/*" = "allow"
