#!/usr/bin/env zsh
set -euo pipefail

CODEX_BIN="${CODEX_BIN:-/opt/homebrew/bin/codex}"
CODEX_GEMMA_HOME="${CODEX_GEMMA_HOME:-${HOME}/.codex-gemma}"
CODEX_GEMMA_MODEL="${CODEX_GEMMA_MODEL:-gemma4:26b-a4b-it-q4_K_M}"

export CODEX_HOME="${CODEX_GEMMA_HOME}"
export PATH="${HOME}/bin:${PATH}"

if [[ ! -x "${CODEX_BIN}" ]]; then
  print -u2 -- "Codex binary not found or not executable: ${CODEX_BIN}"
  exit 1
fi

if ! command -v ollama >/dev/null 2>&1; then
  print -u2 -- "ollama is not available on PATH"
  exit 1
fi

if ! ollama list | awk 'NR > 1 { print $1 }' | grep -Fxq -- "${CODEX_GEMMA_MODEL}"; then
  print -u2 -- "Ollama model is not installed: ${CODEX_GEMMA_MODEL}"
  print -u2 -- "Install it with: ollama pull ${CODEX_GEMMA_MODEL}"
  exit 1
fi

args_include_cd() {
  local arg
  for arg in "$@"; do
    case "${arg}" in
      -C|--cd|-C=*|--cd=*)
        return 0
        ;;
    esac
  done
  return 1
}

codex_args=(--oss --local-provider ollama -m "${CODEX_GEMMA_MODEL}")

if [[ "${PWD}" == "${HOME}" ]] && ! args_include_cd "$@"; then
  original_pwd="${PWD}"
  builtin cd "${TMPDIR:-/private/tmp}"
  codex_args+=(--cd "${original_pwd}")
fi

exec "${CODEX_BIN}" "${codex_args[@]}" "$@"
