#!/usr/bin/env bash
# Deterministic offline fake agent for release-train canary runs; never contacts a real model.
set -euo pipefail

workspace=""
task_slug=""
model=""
while [[ $# -gt 0 ]]; do
  case "$1" in
    --health) printf '{"ok":true,"service":"canary"}\n'; exit 0 ;;
    --workspace) workspace="$2"; shift 2 ;;
    --trust|--task-slug|--model|--timeout|--profile)
      [[ $# -ge 2 ]] || exit 2
      [[ "$1" == "--task-slug" ]] && task_slug="$2"
      [[ "$1" == "--model" ]] && model="$2"
      shift 2
      ;;
    *) exit 2 ;;
  esac
done
[[ -n "$workspace" && -n "$task_slug" && -n "$model" ]] || exit 2

case "$model" in
  canary-reviewer)
    printf '{"ok":true,"clean":true,"findings":[]}\n'
    ;;
  canary-reviewer-fail)
    printf '{"verdict":"FAIL","findings":[{"severity":"error","path":"canary.txt","message":"canary review always fails"}]}\n'
    ;;
  canary-reviewer-heals)
    if [[ "$(wc -l <"$workspace/canary.txt" 2>/dev/null || printf 0)" -ge 2 ]]; then
      printf '{"verdict":"PASS","findings":[]}\n'
    else
      printf '{"verdict":"FAIL","findings":[{"severity":"error","path":"canary.txt","message":"canary.txt needs a fixer line"}]}\n'
    fi
    ;;
  canary-coder|canary-fixer)
    printf 'canary %s %s\n' "$model" "$task_slug" >>"$workspace/canary.txt"
    printf '{"ok":true}\n'
    ;;
  canary-fixer-heals)
    printf 'canary %s %s\n' "$model" "$task_slug" >>"$workspace/canary.txt"
    printf '{"committed":true}\n'
    ;;
  canary-fixer-noop)
    printf '{"noop":true}\n'
    ;;
  *)
    exit 2
    ;;
esac
