{
  "tokens_out": 3826,
  "outcome": "needs_credentials",
  "suggested_fix": "Provide VIDEOLYZER_API_KEY (Gemini AI Studio key) in the guest, then rerun: python videolyzer.py ./my-video.mp4 --out report.md",
  "cycle_checks": null,
  "fault": {
    "owner": "prerequisite",
    "status": "diagnosed",
    "reason": "No model API key in the guest (VIDEOLYZER_API_KEY / GEMINI_API_KEY / OPENAI_API_KEY unset).",
    "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": "b551ada10a753e17049abe869e48eae528357746",
  "failure_origin": null,
  "stuck_step": "Quick start: python videolyzer.py <file> --out report.md",
  "repo_url": null,
  "needs": null,
  "checks": [
    {
      "status": "PASS",
      "details": {
        "working": false,
        "argv": [
          "-c",
          "import cv2, numpy; print('deps ok', cv2.__version__, numpy.__version__)"
        ],
        "kind": "cli",
        "returncode": 0,
        "stdout": "deps ok 5.0.0 2.5.4",
        "stderr": "",
        "needs_credentials": false,
        "needs_browser": false,
        "scope": "partial: install"
      },
      "check": "install",
      "optional": false
    },
    {
      "status": "PASS",
      "details": {
        "working": false,
        "argv": [
          "videolyzer.py",
          "/tmp/vl-sample/sample.mp4"
        ],
        "kind": "cli",
        "returncode": 3,
        "stdout": "",
        "stderr": "error: no API key. Use --api-key or set VIDEOLYZER_API_KEY (or GEMINI_API_KEY / OPENAI_API_KEY).",
        "needs_credentials": true,
        "needs_browser": false,
        "scope": "partial: missing credentials"
      },
      "check": "credentials_error",
      "optional": false
    }
  ],
  "open_issues": null,
  "agent_runtime_version": "2.1.300 (Claude Code)",
  "verifies_run_id": null,
  "total_s": 283.90097999572754,
  "license": null,
  "tool_calls": 7,
  "model_version": "claude-haiku-5-5",
  "example_checks": [],
  "mcp": null,
  "other_model": null,
  "first_use_s": null,
  "native_tool_calls": 7,
  "last_commit_at": null,
  "source": "https://github.com/Neguiolidas/videolyzer",
  "models_agree": null,
  "maintenance_verdict": null,
  "cost_usd": 0.00507469,
  "safety": null,
  "answered_issues": null,
  "what_failed": null,
  "steps": [
    "cd <host-path> && ls -la && cat README.md 2>/dev/null | head -300",
    "cd <host-path> && ls -la .coldpass 2>/dev/null; git log -1 --oneline 2>/dev/null; cat <host-path> | head -50; which node npm python3 uv pip 2>&1",
    "cd <host-path> && (which ffmpeg ffprobe pip3; python3 --version; cat requirements.txt; echo ---; grep -n \"API_KEY\\|api_key\" videolyzer.py | head -30) 2>&1",
    "export DEBIAN_FRONTEND=noninteractive; (sudo apt-get update -qq && sudo apt-get install -y -qq ffmpeg python3-pip python3-venv) > /tmp/apt.log 2>&1; echo \"apt rc=$?\"; tail -3 /tmp/apt.log; which ffmpeg ffprobe",
    "cd <host-path> && python3 -m venv <host-path> && <host-path> install -q -r requirements.txt > /tmp/pip.log 2>&1; echo \"pip rc=$?\"; tail -3 /tmp/pip.log; <host-path> -c \"import cv2,numpy;print('cv2',cv2.__version__,'numpy',numpy.__version__)\"",
    "mkdir -p /tmp/vl-sample && cd /tmp/vl-sample && ffmpeg -loglevel error -y -f lavfi -i testsrc=duration=3:size=320x240:rate=10 -pix_fmt yuv420p sample.mp4 && ls -la sample.mp4 && cd <host-path> && env -u VIDEOLYZER_API_KEY -u GEMINI_API_KEY -u OPENAI_API_KEY <host-path> videolyzer.py /tmp/vl-sample/sample.mp4 --out /tmp/vl-sample/report.md; echo \"rc=$?\"",
    "cd <host-path> && mkdir -p .coldpass && rm -f .coldpass/probe.json .coldpass/report.json && cat > .coldpass/probe.json <<'EOF'\n{\"checks\":[\n {\"check\":\"install\",\"kind\":\"cli\",\"argv\":[\"<host-path>\",\"-c\",\"import cv2, numpy; print('deps ok', cv2.__version__, numpy.__version__)\"],\"cwd\":\"<host-path>\",\"expected_text\":\"deps ok\"},\n {\"check\":\"credentials_error\",\"kind\":\"cli\",\"argv\":[\"<host-path>\",\"videolyzer.py\",\"/tmp/vl-sample/sample.mp4\"],\"cwd\":\"<host-path>\",\"expected_returncode\":3,\"expected_text\":\"no API key\"}\n]}\nEOF\ncat > .coldpass/report.json <<'EOF'\n{\"outcome\":\"needs_credentials\",\n \"operation\":\"Local-file analysis: python videolyzer.py <video> (README Quick start). Exercised the documented path up to the model call; the missing-credential error was observed.\",\n \"operation_scope\":\"Install and CLI startup verified. Full report generation needs a model API key (VIDEOLYZER_API_KEY, GEMINI_API_KEY or OPENAI_API_KEY) which is not available in this guest.\",\n \"steps\":[\"apt-get install -y ffmpeg python3-pip python3-venv (Requirements: ffmpeg/ffprobe on PATH)\",\"python3 -m venv <host-path>\",\"<host-path> install -r requirements.txt (opencv-python 5.0.0, numpy 2.5.4)\",\"Generated /tmp/vl-sample/sample.mp4 with ffmpeg testsrc\",\"python videolyzer.py /tmp/vl-sample/sample.mp4 --out /tmp/vl-sample/report.md (no API key set): exit 3, 'error: no API key. Use --api-key or set VIDEOLYZER_API_KEY'\"],\n \"deviations\":[\"README Quick start 'pip install -r requirements.txt' failed with system pip (no pip, externally-managed Python); created a venv and installed there.\",\"ffmpeg was not installed; installed via apt (Requirements section).\"],\n \"stuck_step\":\"Quick start: python videolyzer.py <file> --out report.md\",\n \"main_blocker\":\"No model API key in the guest (VIDEOLYZER_API_KEY / GEMINI_API_KEY / OPENAI_API_KEY unset).\",\n \"suggested_fix\":\"Provide VIDEOLYZER_API_KEY (Gemini AI Studio key) in the guest, then rerun: python videolyzer.py ./my-video.mp4 --out report.md\"}\nEOF\n<env-var>=<host-path> python3 -I <host-path> --validate; echo \"rc=$?\""
  ],
  "platform_conflicts": null,
  "claims_note": null,
  "maintained_note": null,
  "repo": "Neguiolidas/videolyzer",
  "service_tier": null,
  "maintained": null,
  "source_pin": null,
  "operation_scope": "partial checks",
  "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-18T18:56:25.013353+00:00",
  "kind": "repo",
  "resources": {
    "cpus": 2,
    "memory_mib": 4096,
    "disk_mib": 32768
  },
  "error_excerpt": "No model API key in the guest (VIDEOLYZER_API_KEY / GEMINI_API_KEY / OPENAI_API_KEY unset).",
  "pass": null,
  "evidence_version": null,
  "source_revision": null,
  "run_id": "Neguiolidas--videolyzer-claude-haiku-5-5-1792349501112362173",
  "last_release_at": null,
  "furthest_model": null,
  "model": "claude-haiku-5-5",
  "what_it_did": "Local-file analysis: python videolyzer.py <video> (README Quick start). Exercised the documented path up to the model call; the missing-credential error was observed.",
  "sandbox_source": null,
  "other_run_id": null,
  "hosting": null,
  "tested_commit": null,
  "guest_setup": null,
  "mcp_context": null,
  "agent_interfaces": [],
  "setup_identity": null,
  "works": null,
  "install_s": null,
  "fix_id": null,
  "tokens_in": 75122,
  "tested_at": null,
  "test_version": "readme-abdba4ff808874f9e3a15ab1ae88db85b1509a9d4c47daf5c1553fa8638b6951",
  "recovery": {
    "source": "legacy-oct16-18",
    "original_run_id": "Neguiolidas--videolyzer-claude-haiku-5-5-1792349501112362173",
    "historical": true,
    "ledger_sha256": "c5e6a833c182c1e2aecf69d0bd0020aec63c65d98f3e933e4b32232340312736"
  },
  "transcript_url": "/transcripts/Neguiolidas--videolyzer-claude-haiku-5-5-1792349501112362173.txt",
  "report_url": "/reports/Neguiolidas--videolyzer-claude-haiku-5-5-1792349501112362173.json"
}
