{
  "run_id": "moritzkremb--jev-voice-browser-claude-haiku-5-5-1792806725802290817",
  "checker": {
    "claims": [
      {
        "claim": "promise",
        "command": "",
        "evidence": "Requires the running server, which needs a TypeSafe API key (not supplied) and a Chromium browser (not installed; browser download is not permitted in this run).",
        "expected": "",
        "input": "",
        "kind": "claim",
        "outcome": "Requires the running server, which needs a TypeSafe API key (not supplied) and a Chromium browser (not installed; browser download is not permitted in this run).",
        "source": "No microphone? Type a command into the text box on the control page and press Enter.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "blocked"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Inspected src/, scripts/ and run.sh. The server is event-driven: each transcript update triggers one Jev request via controller.js. The only timer is _scheduleSilenceRetry (per-utterance silence retry), not a scheduled or looping product cycle. No cron, --once or --now entry point exists. Ran with: ./run.sh (no product cycle to trigger).",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Inspected src/, scripts/ and run.sh. The server is event-driven: each transcript update triggers one Jev request via controller.js. The only timer is _scheduleSilenceRetry (per-utterance silence retry), not a scheduled or looping product cycle. No cron, --once or --now entry point exists. Ran with: ./run.sh (no product cycle to trigger).",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "checks": [
        {
          "check": "install",
          "details": {
            "argv": [
              "npm",
              "install"
            ],
            "kind": "cli",
            "needs_browser": false,
            "needs_credentials": false,
            "returncode": 0,
            "scope": "partial: install",
            "stderr": "",
            "stdout": "\nup to date, audited 73 packages in 2s\n\n16 packages are looking for funding\n  run `npm fund` for details\n\n1 high severity vulnerability\n\nTo address all issues, run:\n  npm audit fix\n\nRun `npm audit` for details.",
            "working": false
          },
          "optional": false,
          "status": "PASS"
        },
        {
          "check": "test",
          "details": {
            "argv": [
              "npm",
              "test"
            ],
            "kind": "cli",
            "needs_browser": false,
            "needs_credentials": false,
            "returncode": 0,
            "scope": "partial: test",
            "stderr": "",
            "stdout": "\n> voice-browser@0.1.0 test\n> node --test 'test/unit/**/*.test.js'\n\nTAP version 13\n# Subtest: encodeContext: previous page + recent actions, most recent first, compact\nok 1 - encodeContext: previous page + recent actions, most recent first, compact\n  ---\n  duration_ms: 0.976214\n  type: 'test'\n  ...\n# Subtest: buildRequest: context is in the state and is_correction is only asked when there is history\n[excerpt truncated]",
            "working": false
          },
          "optional": false,
          "status": "PASS"
        },
        {
          "check": "credentials_error",
          "details": {
            "argv": [
              "./run.sh"
            ],
            "kind": "cli",
            "needs_browser": false,
            "needs_credentials": true,
            "returncode": 1,
            "scope": "partial: missing credentials",
            "stderr": "No API key found. Set TYPESAFE_API_KEY, or create .env from .env.example (get a key at https://console.typesafe.ai/keys)",
            "stdout": "",
            "working": false
          },
          "optional": false,
          "status": "PASS"
        }
      ],
      "scope": "partial checks",
      "working": false
    },
    "evidence_strength": "nothing_checked",
    "example_checks": [
      {
        "claim": "Run the offline unit tests",
        "command": "npm test",
        "deferred": false,
        "evidence": "apped\nok 42 - text candidates are unique and capped\n  ---\n  duration_ms: 0.124024\n  type: 'test'\n  ...\n# Subtest: spoken URLs: 'example dot com' -> example.com\nok 43 - spoken URLs: 'example dot com' -> example.com\n  ---\n  duration_ms: 0.501858\n  type: 'test'\n  ...\n# Subtest: toHttpUrl adds https\nok 44 - toHttpUrl adds https\n  ---\n  duration_ms: 0.113645\n  type: 'test'\n  ...\n# Subtest: candidate pick parsing\nok 45 - candidate pick parsing\n  ---\n  duration_ms: 0.157859\n  type: 'test'\n  ...\n1..45\n# tests 45\n# suites 0\n# pass 45\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 4585.053084",
        "expected": "45 unit tests pass, 0 fail",
        "input": "npm test",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Tests and demo",
        "verdict": "yes"
      },
      {
        "claim": "Real Jev API integration tests",
        "command": "",
        "deferred": false,
        "evidence": "Needs a TypeSafe API key (not supplied to this guest) and was not run. npm test covers the offline unit suite instead.",
        "expected": "documented command completes successfully",
        "input": "",
        "kind": "example",
        "outcome": "Needs a TypeSafe API key (not supplied to this guest) and was not run. npm test covers the offline unit suite instead.",
        "source": "README.md Tests and demo",
        "verdict": "blocked"
      },
      {
        "claim": "Headed demo replay against real sites",
        "command": "",
        "deferred": false,
        "evidence": "Needs a Chromium browser (not installed; browser download not permitted) and a TypeSafe API key. Not run.",
        "expected": "documented command completes successfully",
        "input": "",
        "kind": "example",
        "outcome": "Needs a Chromium browser (not installed; browser download not permitted) and a TypeSafe API key. Not run.",
        "source": "README.md Tests and demo",
        "verdict": "blocked"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
