#!/usr/bin/env bash
# Development script for kadmon.
# Handles venv, deps, and running the local build.
#
# Usage:
#   ./dev              # Launch interactive kadmon (local build)
#   ./dev bench        # 5 Python exercises
#   ./dev bench 20     # 20 Python exercises
#   ./dev bench-full   # All 225 exercises
#   ./dev run "task"   # One-shot mode
#   ./dev test         # Run tests
#   ./dev lint         # Run linter
#   ./dev setup        # Force reinstall deps

set -euo pipefail
cd "$(dirname "$0")"

# --- Ensure venv + deps ---
if [ ! -f ".venv/bin/activate" ]; then
  echo "Creating virtual environment..."
  python3 -m venv .venv
fi
source .venv/bin/activate
if [ ! -f ".venv/.installed" ] || [ pyproject.toml -nt ".venv/.installed" ]; then
  echo "Installing dependencies..."
  pip install -e ".[dev]" --quiet
  touch .venv/.installed
fi

# --- Config ---
export AWS_PROFILE="${AWS_PROFILE:-kadmon}"
export AWS_REGION="${AWS_REGION:-us-east-1}"
MODEL="${KADMON_MODEL:-us.anthropic.claude-sonnet-4-6}"

# --- Commands ---
case "${1:-kadmon}" in
  kadmon|chat)
    python -m kadmon
    ;;
  bench)
    LIMIT="${2:-5}"
    echo "Running $LIMIT Python exercises (profile=$AWS_PROFILE model=$MODEL)"
    python -m kadmon bench --languages python --limit "$LIMIT" --provider bedrock \
      --aws-region "$AWS_REGION" --model "$MODEL"
    ;;
  bench-full)
    echo "Running full polyglot benchmark (225 exercises)"
    python -m kadmon bench --provider bedrock --aws-region "$AWS_REGION" --model "$MODEL"
    ;;
  run)
    shift
    python -m kadmon run --task "$*" --repo . --provider bedrock \
      --aws-region "$AWS_REGION" --model "$MODEL"
    ;;
  test)
    pytest tests/ -v
    ;;
  lint)
    ruff check kadmon/ tests/
    ;;
  setup)
    pip install -e ".[dev]"
    touch .venv/.installed
    echo "✓ Dependencies installed."
    ;;
  help|--help|-h)
    echo "Usage: ./dev [command]"
    echo ""
    echo "Commands:"
    echo "  (none)          Launch interactive kadmon"
    echo "  bench [N]       Run N Python exercises [default: 5]"
    echo "  bench-full      Run all 225 exercises"
    echo "  run \"task\"      One-shot mode"
    echo "  test            Run tests"
    echo "  lint            Run linter"
    echo "  setup           Force reinstall dependencies"
    echo ""
    echo "Environment:"
    echo "  AWS_PROFILE     [default: kadmon]"
    echo "  AWS_REGION      [default: us-east-1]"
    echo "  KADMON_MODEL    [default: us.anthropic.claude-sonnet-4-6]"
    ;;
  *)
    # Pass anything else through to kadmon
    python -m kadmon "$@"
    ;;
esac
