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

# UmamiAI Platform API — curl examples
#
# Required:
#   BASE_URL           e.g. https://your-domain
#   UMAMI_API_KEY      e.g. umami_...
#   ORG_ID             UUID (matches the key's org)
#   AGENT_VERSION_ID   UUID of an agent version to run
#
# Optional:
#   MATCH_COUNT        default 6
#   QUERY              default "What changed in the last release?"

: "${BASE_URL:?Missing BASE_URL}"
: "${UMAMI_API_KEY:?Missing UMAMI_API_KEY}"
: "${ORG_ID:?Missing ORG_ID}"
: "${AGENT_VERSION_ID:?Missing AGENT_VERSION_ID}"

MATCH_COUNT="${MATCH_COUNT:-6}"
QUERY="${QUERY:-What changed in the last release?}"

echo "1) Create an agent run"
RUN_ID=$(
  curl -sS "$BASE_URL/api/v1/agent-runs" -X POST \
    -H "Authorization: Bearer $UMAMI_API_KEY" \
    -H "Content-Type: application/json" \
    --data "{\"org_id\":\"$ORG_ID\",\"agent_version_id\":\"$AGENT_VERSION_ID\",\"input\":\"Hello from curl\"}" \
  | jq -r ".run_id"
)

echo "RUN_ID=$RUN_ID"

echo
echo "2) Poll run until finished"
while true; do
  res=$(curl -sS "$BASE_URL/api/v1/agent-runs/$RUN_ID" -H "Authorization: Bearer $UMAMI_API_KEY")
  status=$(echo "$res" | jq -r ".status")
  echo "status=$status"
  if [ "$status" = "succeeded" ] || [ "$status" = "failed" ]; then
    echo "$res" | jq
    break
  fi
  sleep 2
done

echo
echo "3) Knowledge search"
curl -sS "$BASE_URL/api/v1/knowledge/search" -X POST \
  -H "Authorization: Bearer $UMAMI_API_KEY" \
  -H "Content-Type: application/json" \
  --data "{\"org_id\":\"$ORG_ID\",\"query\":\"$QUERY\",\"match_count\":$MATCH_COUNT}" \
| jq

echo
echo "Done."
