feat: claude-code backends, llamaswap provider, dogfood the CC engine
Build & push image / build-and-push (pull_request) Successful in 21s
Adversarial Review (Gadfly) / review (pull_request) Successful in 7m37s

Phase 2 of the gadfly-games build.

- Bump majordomo to the latest build and wire its new **llamaswap**
  provider into gadfly's endpoint switches (GADFLY_PROVIDER=llamaswap +
  GADFLY_BASE_URL, and GADFLY_ENDPOINT_<NAME>="llamaswap|url[|key]"),
  mirroring the ollama provider. Wired but untested (no llama-swap here).
- Dogfood the Phase-1 claude-code engine: add `claude-code/sonnet` to
  gadfly's own review swarm as a competitor alongside the 9 cloud models
  + M5, pin the workflow to :sha-86f12c1 (the image that bundles the
  claude CLI), and map CLAUDE_CODE_OAUTH_TOKEN. Its own provider lane
  (claude-code=1), parallel with the cloud and m5 lanes.
- Document the alternate Claude Code backends: Pro/Max (default), and —
  EXAMPLE ONLY, not wired — running Ollama models THROUGH the CC harness
  via ANTHROPIC_BASE_URL pointed at an Anthropic-compatible proxy
  (claude-code-router / LiteLLM). The subprocess env already forwards
  ANTHROPIC_*/CLAUDE_*, so no code change is needed for that path.
- README: llamaswap row in the providers table + a Claude Code
  "alternate backends" note; examples/claude-code.yml shows the proxy env.

gofmt clean, go vet quiet, go build + go test -race green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-27 17:37:47 -04:00
parent 86f12c126f
commit 9a6c662615
6 changed files with 161 additions and 159 deletions
+7
View File
@@ -60,6 +60,13 @@ jobs:
# GADFLY_CLAUDE_PERMISSION_MODE: plan # read-only; never edits
# GADFLY_CLAUDE_ALLOWED_TOOLS: "Read,Grep,Glob"
# GADFLY_CLAUDE_EXTRA_ARGS: "--max-turns 30"
# Alternate backend (EXAMPLE ONLY, not validated): point Claude Code at
# an Anthropic-API-compatible proxy (e.g. claude-code-router / LiteLLM in
# front of Ollama) to run Ollama models THROUGH the CC harness. The
# subprocess env forwards ANTHROPIC_*, so just set these instead of the
# token above. Tool-use support depends on the proxy/backend.
# ANTHROPIC_BASE_URL: ${{ vars.ANTHROPIC_BASE_URL }}
# ANTHROPIC_AUTH_TOKEN: ${{ secrets.ANTHROPIC_AUTH_TOKEN }}
GADFLY_ALLOWED_USERS: "your-username"
# --- event context (leave as-is) ---
EVENT_NAME: ${{ github.event_name }}