#!/bin/sh
# Both hosts use the public MCP and Lys origin unless explicitly configured.
binary="${HAEMATITE_BIN:-haematite}"
url="${HAEMATITE_URL:-https://haematite.ablative.com.au/mcp}"
issuer="${HAEMATITE_LYS_ISSUER:-https://lys.ablative.com.au}"
if ! command -v "$binary" >/dev/null 2>&1; then
  echo "haematite_mcp_binary_missing: haematite is not on PATH; install haematite-cli or set HAEMATITE_BIN" >&2
  exit 127
fi
if [ -n "$HAEMATITE_CONFIG" ]; then
  if [ ! -f "$HAEMATITE_CONFIG" ]; then
    echo "haematite_mcp_config_missing: explicit HAEMATITE_CONFIG does not name a service configuration" >&2
    exit 78
  fi
  set -- mcp --config "$HAEMATITE_CONFIG"
  if [ -n "$HAEMATITE_PASS_FILE" ]; then
    exec "$binary" "$@" --pass-file "$HAEMATITE_PASS_FILE"
  fi
  if [ -z "$HAEMATITE_LYS_AGENT" ]; then
    echo "haematite_mcp_no_pass: no Lys agent pass is configured; a store behind Lys refuses pass_missing" >&2
    exec "$binary" "$@"
  fi
else
  set -- mcp --remote "$url"
fi
if [ -z "$HAEMATITE_LYS_AGENT" ]; then
  echo "haematite_mcp_agent_missing: set HAEMATITE_LYS_AGENT and HAEMATITE_KEY_FILE for the central service" >&2
  exit 78
fi
set -- "$@" --lys-agent "$issuer" "$HAEMATITE_LYS_AGENT"
if [ -n "$HAEMATITE_KEY_FILE" ]; then
  exec "$binary" "$@" --key-file "$HAEMATITE_KEY_FILE"
fi
if [ -n "$HAEMATITE_CREDENTIAL_FILE" ]; then
  exec "$binary" "$@" --credential-file "$HAEMATITE_CREDENTIAL_FILE"
fi
if [ -n "$HAEMATITE_RUN_PASS_ENV" ]; then
  exec "$binary" "$@" --run-pass-env "$HAEMATITE_RUN_PASS_ENV"
fi
echo "haematite_mcp_agent_proof_missing: set HAEMATITE_KEY_FILE, HAEMATITE_CREDENTIAL_FILE or HAEMATITE_RUN_PASS_ENV" >&2
exit 78
