#!/usr/bin/env bash set -euo pipefail # CASAN Level 5 provider usage telemetry importer. # Usage: # import-provider-telemetry.sh INPUT_JSON="${1:-}" if [[ -z "$INPUT_JSON" || ! -f "$INPUT_JSON" ]]; then echo "Usage: import-provider-telemetry.sh " >&2 exit 64 fi SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/casan-paths.sh" PROJECT_ROOT="$CASAN_APP_ROOT" LOG_DIR="$CASAN_STATE_ROOT/logs/level5" OUT="$LOG_DIR/provider-usage.jsonl" mkdir -p "$LOG_DIR" python - "$INPUT_JSON" "$OUT" <<'PY' import json import sys from datetime import datetime, timezone src, out = sys.argv[1], sys.argv[2] data = json.load(open(src, encoding="utf-8")) required = ["provider", "model", "run_id", "step", "input_tokens", "output_tokens", "total_tokens", "cost_usd", "latency_ms", "status"] missing = [key for key in required if key not in data] if missing: raise SystemExit(f"PROVIDER_USAGE_INVALID missing={missing}") record = { "timestamp": datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ"), "harness": "L5-provider-telemetry", **data, } with open(out, "a", encoding="utf-8") as f: f.write(json.dumps(record) + "\n") print(f"PROVIDER_TELEMETRY_IMPORTED provider={data['provider']} model={data['model']} total_tokens={data['total_tokens']} cost_usd={data['cost_usd']} output={out}") PY