#!/usr/bin/env bash set -euo pipefail command -v jq >/dev/null || { echo "jq required"; exit 127; } TOOL="$1" OP="$2" EXPECTED="$3" FILE="tool_calls.jsonl" COUNT=$(jq -s "[.[] | select(.tool == \"$TOOL\")] | length" "$FILE" 2>/dev/null || echo 0) case "$OP" in eq) TEST=$(( COUNT == EXPECTED )) ;; gt) TEST=$(( COUNT > EXPECTED )) ;; gte) TEST=$(( COUNT >= EXPECTED )) ;; lt) TEST=$(( COUNT < EXPECTED )) ;; lte) TEST=$(( COUNT <= EXPECTED )) ;; *) echo "Unknown operator: $OP (expected: eq, gt, gte, lt, lte)"; exit 2 ;; esac if [ "$TEST" -eq 1 ]; then echo "PASS: $TOOL called $COUNT time(s) ($OP $EXPECTED)" exit 0 else echo "FAIL: $TOOL called $COUNT time(s) (expected $OP $EXPECTED)" exit 1 fi