#!/usr/bin/env sh
# Minimum-data resolver call. Inspect data.status before accepting any identity.
# Usage: ./curl-resolver.sh "stable concept identity" en
set -eu

expression=${1:?"expression is required"}
language=${2:-}

if [ -n "$language" ]; then
  payload=$(python -c 'import json,sys; print(json.dumps({"expression":sys.argv[1],"language":sys.argv[2]}, ensure_ascii=False))' "$expression" "$language")
else
  payload=$(python -c 'import json,sys; print(json.dumps({"expression":sys.argv[1]}, ensure_ascii=False))' "$expression")
fi

curl --fail-with-body --silent --show-error \
  --request POST \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json; charset=utf-8' \
  --data "$payload" \
  'https://embeddedsemantics.com/api/v1/resolve'

printf '\n\nRule: accept a ConceptCode only from data.status="resolved" with a non-empty data.concept.code.\n' >&2
printf 'Every abstention or error means no ConceptCode assignment; authorize downstream actions separately.\n' >&2
