{
  "tokens_out": 12400,
  "outcome": "pass",
  "suggested_fix": null,
  "cycle_checks": null,
  "fault": {
    "owner": null,
    "status": "resolved",
    "reason": null,
    "evidence": []
  },
  "runtime_revision": null,
  "agent_execution": "native_agent",
  "time_to_working_s": null,
  "usage_complete": true,
  "runtime": null,
  "architecture": null,
  "local_or_hosted": null,
  "agent_interfaces_note": null,
  "platform_details": null,
  "platforms_claimed": null,
  "maintenance": null,
  "evidence_strength": null,
  "purpose": "initial",
  "topic": null,
  "needs_which": null,
  "tested_with": null,
  "native_bundle": null,
  "agent_runtime": "claude-code",
  "maintenance_note": null,
  "runtime_version": null,
  "does_what_it_says": null,
  "commit": "727426cf31ec114fc71fe5ac6c734a0f3554d37b",
  "failure_origin": null,
  "stuck_step": null,
  "repo_url": null,
  "needs": null,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "kind": "mcp_http",
        "url": "http://127.0.0.1:5001/mcp/",
        "hosting": "local",
        "transport": "streamable-http",
        "scope": "remote hosted MCP initialize + tools/list",
        "argv": [
          "mcp"
        ],
        "serverInfo": {
          "name": "queryapigate",
          "version": "1.30.0"
        },
        "protocolVersion": "2025-06-18",
        "tools": [
          "example_all_rentals",
          "example_film_lookup",
          "example_film_search",
          "example_kpi_active_rentals",
          "example_kpi_overdue",
          "example_kpi_rentals_today",
          "example_monthly_revenue",
          "example_recent_rentals",
          "example_rentals_since",
          "example_revenue_by_category",
          "example_top_films",
          "list_tables",
          "execute_sql",
          "describe_table"
        ]
      }
    }
  ],
  "open_issues": null,
  "agent_runtime_version": "2.1.300 (Claude Code)",
  "verifies_run_id": null,
  "total_s": 158.4146797657013,
  "license": null,
  "tool_calls": 21,
  "model_version": "claude-haiku-5-5",
  "example_checks": [],
  "mcp": null,
  "other_model": null,
  "first_use_s": null,
  "native_tool_calls": 21,
  "last_commit_at": null,
  "source": "https://github.com/AnanthaRajuC/QueryAPIGate",
  "models_agree": null,
  "maintenance_verdict": null,
  "cost_usd": 0.01731908,
  "safety": null,
  "answered_issues": null,
  "what_failed": null,
  "steps": [
    "cd <host-path> && ls -la && cat README.md 2>/dev/null | head -200",
    "cd <host-path> && git log -1 --format=%H 2>/dev/null; ls -la .coldpass 2>/dev/null; ls <host-path> 2>/dev/null; which node npm python3 pip3 uv 2>&1",
    "cd <host-path> && python3 --version && (python3 -m venv <host-path> 2>&1 || (apt-get update -qq && apt-get install -y -qq python3-venv >/dev/null 2>&1 && python3 -m venv <host-path>)) && <host-path> install -q -e . 2>&1 | tail -5; echo EXIT=$?; <host-path> --help 2>&1 | head -30; sed -n '/^## Try it with Docker/,/^## Documentation/p' README.md | head -40; grep -n -i \"mcp\" README.md | head",
    "sudo -n apt-get update -qq >/dev/null 2>&1; sudo -n DEBIAN_FRONTEND=noninteractive apt-get install -y -qq python3.12-venv >/tmp/apt.log 2>&1; echo APT=$?; cd <host-path> && rm -rf <host-path> && python3 -m venv <host-path> && <host-path> install -q -e . 2>&1 | tail -5; echo PIP=${PIPESTATUS[0]}; ls <host-path> | grep -i queryapi; <host-path> --help 2>&1 | head -40",
    "cd <host-path> && export QUERYAPIGATE_API_KEY=demo-key && <host-path> examples load > /tmp/examples.log 2>&1; echo LOAD=$?; tail -5 /tmp/examples.log; (nohup <host-path> serve > /tmp/serve.log 2>&1 &); sleep 6; curl -s 'http://127.0.0.1:5000/q/example_film_search?text=Harbor&page_size=2' -H 'X-API-Key: <secret>'; echo; curl -s -X POST 'http://127.0.0.1:5000/execute_sql?page_size=3' -H 'X-API-Key: <secret>' -H 'Content-Type: application/json' -d '{\"sql\": \"SELECT film_id, title, rating FROM film WHERE film_id > :min\", \"params\": {\"min\": 10}, \"connection_name\": \"examples\"}'; echo; tail -3 /tmp/serve.log",
    "cd <host-path> && pkill -f \"queryapigate serve\"; sleep 1; grep -rhoE \"QUERYAPIGATE_HOME[A-Z_]*|QUERYAPIGATE_DATA[A-Z_]*|QUERYAPIGATE_DB[A-Z_]*\" queryapigate documentation/CONFIGURATION.md 2>/dev/null | sort | uniq -c | head; grep -n -i \"home folder\\|examples.db\" documentation/CONFIGURATION.md documentation/EXAMPLES.md 2>/dev/null | head -12",
    "cd <host-path> && grep -rn \"cwd()\\|QUERYAPIGATE_[A-Z_]*HOME\\|QUERYAPIGATE_[A-Z_]*DIR\" queryapigate | head -10; grep -rn \"examples.db\" queryapigate | head -5",
    "export QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key && mkdir -p $QUERYAPIGATE_HOME && cd $QUERYAPIGATE_HOME && <host-path> examples load > /tmp/examples.log 2>&1; echo LOAD=$?; head -c 1500 /tmp/examples.log; echo; (nohup <host-path> serve > /tmp/serve.log 2>&1 &); sleep 6; curl -s 'http://127.0.0.1:5000/q/example_film_search?text=Harbor&page_size=2' -H 'X-API-Key: <secret>'; echo; curl -s -X POST 'http://127.0.0.1:5000/execute_sql?page_size=3' -H 'X-API-Key: <secret>' -H 'Content-Type: application/json' -d '{\"sql\": \"SELECT film_id, title, rating FROM film WHERE film_id > :min\", \"params\": {\"min\": 10}, \"connection_name\": \"examples\"}'; echo",
    "pkill -f \"queryapigate serve\"; sleep 2; pgrep -fa queryapigate || echo \"no server running\"; grep -n \"headers\\|Authorization\\|stays_running\\|expected_text\" <host-path> | head -30",
    "ss -ltnp 2>/dev/null | grep 5000 || echo \"port 5000 free\"; grep -n \"headers\\|Authorization\\|stays_running\\|expected_text\" <host-path> | head -30",
    "sed -n 196,232p <host-path>; grep -n \"'http'\" <host-path> | head",
    "sed -n 440,470p <host-path>; grep -n \"def http_probe\\|def check_http\\|def http_\" <host-path>",
    "n=$(grep -n \"^def http(\" <host-path> | cut -d: -f1); sed -n \"${n},$((n+30))p\" <host-path>",
    "cd <host-path> && <host-path> install -q -e \".[mcp]\" 2>&1 | tail -3; echo PIP=${PIPESTATUS[0]}; export QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key; <host-path> mcp --help 2>&1 | head -30",
    "cd <host-path> && grep -n -i \"stdio\\|queryapigate mcp\\|mcp --port\\|api key\\|Authorization\" documentation/MCP.md | head -30",
    "cd <host-path> && sed -n 66,100p documentation/MCP.md",
    "export QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key; cd <host-path> && (nohup <host-path> mcp > /tmp/mcp.log 2>&1 &); sleep 6; H='-H Content-Type:application/json -H Accept:application/json,text/event-stream'; INIT='{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{},\"clientInfo\":{\"name\":\"probe\",\"version\":\"1\"}}}'; echo \"--- no key:\"; curl -s -o /dev/null -w '%{http_code}\\n' -X POST http://127.0.0.1:5001/mcp $H -d \"$INIT\"; echo \"--- X-API-Key:\"<secret>'X-API-Key: <secret>' -d \"$INIT\" | head -20; echo \"--- Authorization Bearer:\"; curl -s -o /dev/null -w '%{http_code}\\n' -X POST http://127.0.0.1:5001/mcp $H -H 'Authorization: <secret>' -d \"$INIT\"; tail -5 /tmp/mcp.log",
    "H='-H Content-Type:application/json -H Accept:application/json,text/event-stream'; INIT='{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{},\"clientInfo\":{\"name\":\"probe\",\"version\":\"1\"}}}'; echo \"--- no key:\"; curl -s -o /dev/null -w '%{http_code}\\n' -X POST http://127.0.0.1:5001/mcp/ $H -d \"$INIT\"; echo \"--- X-API-Key init:\"; curl -s -D /tmp/h.txt -X POST http://127.0.0.1:5001/mcp/ $H -H 'X-API-Key: <secret>' -d \"$INIT\" | head -c 600; echo; grep -i \"mcp-session\" /tmp/h.txt; echo \"--- Bearer:\"; curl -s -o /dev/null -w '%{http_code}\\n' -X POST http://127.0.0.1:5001/mcp/ $H -H 'Authorization: <secret>' -d \"$INIT\"",
    "pkill -f \"[q]ueryapigate mcp\"; sleep 2; ss -ltn | grep -q ':5001 ' && echo \"5001 still in use\" || echo \"5001 free\"; mkdir -p <host-path> && cd <host-path> && cat > probe.json <<'EOF'\n{\"kind\":\"mcp_http\",\"argv\":[\"<host-path>\",\"mcp\"],\"cwd\":\"<host-path>\",\"url\":\"http://127.0.0.1:5001/mcp/\",\"headers\":{\"X-API-Key\":\"<secret>\"},\"env\":{\"QUERYAPIGATE_HOME\":\"<host-path>\",\"QUERYAPIGATE_API_KEY\":\"demo-key\"}}\nEOF\ncat > report.json <<'EOF'\n{\"outcome\":\"working\",\"operation\":\"Start `queryapigate mcp` (streamable HTTP on 127.0.0.1:5001/mcp/) and run MCP initialize + tools/list against the saved queries from `queryapigate examples load`.\",\"operation_scope\":\"Covers MCP startup and tool listing with an admin API key in X-API-Key. The examples are loaded into QUERYAPIGATE_HOME=<host-path> Not covered: OAuth sign-in, write tools, or running individual tools.\",\"steps\":[\"pip install -e . in <host-path> (python3-venv installed via apt)\",\"pip install -e \\\".[mcp]\\\"\",\"QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key queryapigate examples load\",\"QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key queryapigate serve; curl /q/example_film_search and POST /execute_sql returned rows (quickstart verified)\",\"QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key queryapigate mcp; initialize with X-API-Key returned serverInfo queryapigate 1.30.0\"],\"deviations\":[\"README 'Install' pip install failed in system python (no venv support): ran `apt-get install python3.12-venv` via sudo, then created <host-path>\",\"README 'Quick start' `queryapigate examples load` refused to run in the repo because the repo ships examples.db: set QUERYAPIGATE_HOME=<host-path> and ran from there instead, so no repo files were changed or removed.\",\"Probe kind is mcp_http, not http: the REST server requires an API key on every request, and the checker's http probe sends no headers. The MCP endpoint takes X-API-Key; Authorization: <secret>\",\"Pytest/lint suites were not run, per the smoke-task instructions.\"],\"stuck_step\":null,\"main_blocker\":null,\"suggested_fix\":null}\nEOF\npython3 -m json.tool probe.json >/dev/null && python3 -m json.tool report.json >/dev/null && echo JSON_OK; cd <host-path> && <env-var>=<host-path> python3 -I <host-path> --validate; echo VALIDATE_EXIT=$?",
    "for p in $(pgrep -f '^<host-path> <host-path> mcp|^<host-path> mcp'); do kill $p; done; sleep 2; ss -ltn | grep -q ':5001 ' && echo \"5001 still in use\" || echo \"5001 free\"; ls -la <host-path> 2>/dev/null || echo \"no .coldpass yet\"",
    "mkdir -p <host-path> && cd <host-path> && cat > probe.json <<'EOF'\n{\"kind\":\"mcp_http\",\"argv\":[\"<host-path>\",\"mcp\"],\"cwd\":\"<host-path>\",\"url\":\"http://127.0.0.1:5001/mcp/\",\"headers\":{\"X-API-Key\":\"<secret>\"},\"env\":{\"QUERYAPIGATE_HOME\":\"<host-path>\",\"QUERYAPIGATE_API_KEY\":\"demo-key\"}}\nEOF\ncat > report.json <<'EOF'\n{\"outcome\":\"working\",\"operation\":\"Start `queryapigate mcp` (streamable HTTP on 127.0.0.1:5001/mcp/) and run MCP initialize + tools/list against the saved queries from `queryapigate examples load`.\",\"operation_scope\":\"Covers MCP startup and tool listing with an admin API key sent in X-API-Key. The examples are loaded into QUERYAPIGATE_HOME=<host-path> Not covered: OAuth sign-in, write tools, or running individual tools.\",\"steps\":[\"pip install -e . in <host-path> (python3-venv installed via apt)\",\"pip install -e \\\".[mcp]\\\"\",\"QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key queryapigate examples load\",\"QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key queryapigate serve; curl /q/example_film_search and POST /execute_sql returned rows (quickstart verified)\",\"QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key queryapigate mcp; initialize with X-API-Key returned serverInfo queryapigate 1.30.0\"],\"deviations\":[\"README 'Install': system python3 has no venv support (ensurepip missing). Ran `sudo apt-get install python3.12-venv`, then created <host-path>\",\"README 'Quick start': `queryapigate examples load` refused to run in the repo because the repo ships examples.db. Set QUERYAPIGATE_HOME=<host-path> and ran from there, so no repo files were changed or removed.\",\"Probe kind is mcp_http, not http: the REST server requires an API key on every request, and the checker's http probe sends no headers. The MCP endpoint takes X-API-Key; Authorization: <secret>\",\"Pytest and lint suites were not run, per the smoke-task instructions.\"],\"stuck_step\":null,\"main_blocker\":null,\"suggested_fix\":null}\nEOF\npython3 -m json.tool probe.json >/dev/null && python3 -m json.tool report.json >/dev/null && echo JSON_OK; cd <host-path> && <env-var>=<host-path> python3 -I <host-path> --validate; echo VALIDATE_EXIT=$?"
  ],
  "platform_conflicts": null,
  "claims_note": null,
  "maintained_note": null,
  "repo": "AnanthaRajuC/QueryAPIGate",
  "service_tier": null,
  "maintained": null,
  "source_pin": null,
  "operation_scope": "remote hosted MCP initialize + tools/list",
  "reasoning": "low",
  "claims": [],
  "platform": "linux",
  "cost_to_try": null,
  "backend": null,
  "tool_transport": "mcp-assigned-vm",
  "hardware": null,
  "agent_interface": null,
  "profile": {
    "model": "claude-haiku-5-5",
    "reasoning": "low"
  },
  "date": "2026-10-18T15:28:54.631508+00:00",
  "kind": "mcp",
  "resources": {
    "cpus": 2,
    "memory_mib": 4096,
    "disk_mib": 32768
  },
  "error_excerpt": null,
  "pass": true,
  "evidence_version": null,
  "source_revision": null,
  "run_id": "AnanthaRajuC--QueryAPIGate-claude-haiku-5-5-1792337176216815836",
  "last_release_at": null,
  "furthest_model": null,
  "model": "claude-haiku-5-5",
  "what_it_did": "Start `queryapigate mcp` (streamable HTTP on 127.0.0.1:5001/mcp/) and run MCP initialize + tools/list against the saved queries from `queryapigate examples load`.",
  "sandbox_source": null,
  "other_run_id": null,
  "hosting": "local",
  "tested_commit": null,
  "guest_setup": null,
  "mcp_context": null,
  "agent_interfaces": [],
  "setup_identity": null,
  "works": null,
  "install_s": null,
  "fix_id": null,
  "tokens_in": 498362,
  "tested_at": null,
  "test_version": "readme-cae505cdaaa9e8cc13f1449c5e5f5816f65e8579e4bc7f8408ab66ff961f94c4",
  "recovery": {
    "source": "legacy-oct16-18",
    "original_run_id": "AnanthaRajuC--QueryAPIGate-claude-haiku-5-5-1792337176216815836",
    "historical": true,
    "ledger_sha256": "c5e6a833c182c1e2aecf69d0bd0020aec63c65d98f3e933e4b32232340312736"
  },
  "transcript_url": "/transcripts/AnanthaRajuC--QueryAPIGate-claude-haiku-5-5-1792337176216815836.txt",
  "report_url": "/reports/AnanthaRajuC--QueryAPIGate-claude-haiku-5-5-1792337176216815836.json"
}
