#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" # shellcheck source=/dev/null source "${ROOT_DIR}/src/app_v2.sh" require_jq() { if ! command -v jq >/dev/null 2>&1; then echo "ai_eval.sh: jq is required" >&2 exit 2 fi } fail() { echo "ai_eval.sh: FAIL: $1" >&2 exit 1 } app_init require_jq tags_out="$(app_ai_check)" || fail "ai-check failed" printf '%s' "${tags_out}" | jq -e '.models | type == "array"' >/dev/null || fail "tags response missing models array" printf '%s' "${tags_out}" | jq -e --arg model "${OLLAMA_MODEL}" '.models[] | select(.name == $model)' >/dev/null \ || fail "configured model not present: ${OLLAMA_MODEL}" prompt="Return one short sentence describing graph retrieval testing." gen_out="$(app_ai_generate "${prompt}")" || fail "ai-generate failed" printf '%s' "${gen_out}" | jq -e '.response | type == "string"' >/dev/null || fail "generate response missing text" printf '%s' "${gen_out}" | jq -e '.model | type == "string"' >/dev/null || fail "generate response missing model" response_text="$(printf '%s' "${gen_out}" | jq -r '.response')" [[ -n "${response_text//[[:space:]]/}" ]] || fail "generate response text is empty" echo "ai_eval.sh: PASS"