{
  "tokens_out": 3823,
  "outcome": "needs_credentials",
  "suggested_fix": "Provide a valid Nordlet API token (e.g. NORDLET_TOKEN in the environment) and rerun the README Usage example with Nordlet(token=<secret>).",
  "cycle_checks": null,
  "fault": {
    "owner": "prerequisite",
    "status": "diagnosed",
    "reason": "No valid Nordlet API token in the guest (API returns 401).",
    "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": "8decc573e5fc575bae347aadc35c180e46f81715",
  "failure_origin": null,
  "stuck_step": "README 'Usage' example: client.reference.exchange_rates_sync()",
  "repo_url": null,
  "needs": null,
  "checks": [
    {
      "status": "PASS",
      "details": {
        "working": false,
        "argv": [
          "-m",
          "pip",
          "show",
          "nordlet"
        ],
        "kind": "cli",
        "returncode": 0,
        "stdout": "Name: nordlet\nVersion: 0.5.4\nSummary: Official Python SDK for the Nordlet Accounting API\nHome-page: \nAuthor: \nAuthor-email: \nLicense: \nLocation: <host-path>\nEditable project location: <host-path>\nRequires: anyio, httpx, pydantic, pydantic-core, typing-extensions\nRequired-by: ",
        "stderr": "",
        "needs_credentials": true,
        "needs_browser": false,
        "scope": "partial: install"
      },
      "check": "install",
      "optional": false
    },
    {
      "status": "PASS",
      "details": {
        "working": false,
        "argv": [
          "-c",
          "from nordlet import Nordlet\nNordlet(token='<token>').reference.exchange_rates_sync()"
        ],
        "kind": "cli",
        "returncode": 1,
        "stdout": "",
        "stderr": "Traceback (most recent call last):\n  File \"<string>\", line 2, in <module>\n  File \"<host-path>\", line 107, in exchange_rates_sync\n    _response = self._raw_client.exchange_rates_sync(date=date, request_options=request_options)\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"<host-path>\", line 138, in exchange_rates_sync\n    raise UnauthorizedError(\nnordlet.errors.unauthorized_error.UnauthorizedError: headers: {'content-security-policy': \"default-src 'self';base-uri 'self';font-src 'self' data:;form-action 'self';frame-ancestors 'none';img-src 'self' data:;object-src 'none';script-src 'self' 'unsafe-inline';script-src-attr 'none';style-src 'self' 'unsafe-inline';upgrade-insecure-requests;connect-src 'self'\", 'cross-origin-opener-policy': 'same-origin', 'cross-origin-resource-policy': 'same-origin', 'origin-agent-cluster': '?1', 'referrer-policy': 'no-referrer', 'strict-transport-security': 'max-age=31536000; includeSubDomains', 'x-content-type-options': 'nosniff', 'x-dns-prefetch-control': 'off', 'x-download-options': 'noopen', 'x-frame-options': 'SAMEORIGIN', 'x-permitted-cross-domain-policies': 'none', 'x-xss-protection': '0'\n[excerpt truncated]",
        "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": 101.11600112915039,
  "license": null,
  "tool_calls": 9,
  "model_version": "claude-haiku-5-5",
  "example_checks": [],
  "mcp": null,
  "other_model": null,
  "first_use_s": null,
  "native_tool_calls": 9,
  "last_commit_at": null,
  "source": "https://github.com/nordlet/nordlet-sdk-python",
  "models_agree": null,
  "maintenance_verdict": null,
  "cost_usd": 0.005393520000000001,
  "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> && cat pyproject.toml 2>/dev/null | head -60; ls .github/workflows 2>/dev/null; python3 --version; which pip3 uv 2>/dev/null",
    "cd <host-path> && python3 -m venv <host-path> && <host-path> install -q -e . 2>&1 | tail -5; echo rc=$?; <host-path> -c \"import nordlet; from nordlet import Nordlet; print('ok', nordlet.__file__)\"",
    "cd <host-path> && ls tests src/nordlet; env | grep -i -E 'token|nordlet|proxy|CDP' | sed 's/=.*/=<set>/'",
    "(sudo -n apt-get update -qq && sudo -n DEBIAN_FRONTEND=noninteractive apt-get install -y -qq python3.12-venv) >/tmp/apt.log 2>&1; echo apt_rc=$?; tail -3 /tmp/apt.log; rm -rf <host-path>; cd <host-path> && python3 -m venv <host-path> && <host-path> install -q -e . 2>&1 | tail -5; echo pip_rc=$?; <host-path> -c \"from nordlet import Nordlet, AsyncNordlet; print('import ok')\"",
    "cd <host-path> && timeout 90 <host-path> -c \"\nfrom nordlet import Nordlet\nclient = Nordlet(token='<token>')\nprint(client.reference.exchange_rates_sync())\n\" 2>&1 | tail -8; echo rc=${PIPESTATUS[0]}",
    "cd <host-path> && grep -n -E \"credentials_error|\\\"checks\\\"|'checks'|check\\b\" checker/check.py | head -40; ls <host-path> 2>/dev/null",
    "cd <host-path> && sed -n 393,430p checker/check.py",
    "cd <host-path> && mkdir -p .coldpass && cat > .coldpass/probe.json <<'EOF'\n{\"checks\":[\n {\"check\":\"install\",\"kind\":\"cli\",\"argv\":[\"<host-path>\",\"-m\",\"pip\",\"show\",\"nordlet\"],\"cwd\":\"<host-path>\"},\n {\"check\":\"credentials_error\",\"kind\":\"cli\",\"argv\":[\"<host-path>\",\"-c\",\"from nordlet import Nordlet\\nNordlet(token='<token>').reference.exchange_rates_sync()\"],\"cwd\":\"<host-path>\"}\n]}\nEOF\ncat > .coldpass/report.json <<'EOF'\n{\"outcome\":\"needs_credentials\",\n \"operation\":\"README Usage: Nordlet(token=<secret>).reference.exchange_rates_sync() against the live API (reached; API returned 401 unauthorized)\",\n \"operation_scope\":\"Installed and imported the SDK from the pinned source. The documented operation needs a valid Nordlet API token, which is not available in this guest; no token was obtained. Partial evidence only.\",\n \"steps\":[\"python3 -m venv <host-path> (after apt-get install python3.12-venv)\",\"<host-path> install -e .\",\"README Usage snippet with placeholder token: <secret> Invalid, expired or revoked API key\"],\n \"deviations\":[\"python3 -m venv failed: ensurepip unavailable; ran sudo apt-get install -y python3.12-venv, then recreated venv\"],\n \"stuck_step\":\"README 'Usage' example: client.reference.exchange_rates_sync()\",\n \"main_blocker\":\"No valid Nordlet API token in the guest (API returns 401).\",\n \"suggested_fix\":\"Provide a valid Nordlet API token (e.g. NORDLET_TOKEN in the environment) and rerun the README Usage example with Nordlet(token=<secret>).\"}\nEOF\n<env-var>=<host-path> python3 -I <host-path> --validate; echo rc=$?"
  ],
  "platform_conflicts": null,
  "claims_note": null,
  "maintained_note": null,
  "repo": "nordlet/nordlet-sdk-python",
  "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-18T16:38:58.726589+00:00",
  "kind": "repo",
  "resources": {
    "cpus": 2,
    "memory_mib": 4096,
    "disk_mib": 32768
  },
  "error_excerpt": "No valid Nordlet API token in the guest (API returns 401).",
  "pass": null,
  "evidence_version": null,
  "source_revision": null,
  "run_id": "nordlet--nordlet-sdk-python-claude-haiku-5-5-1792341437610526595",
  "last_release_at": null,
  "furthest_model": null,
  "model": "claude-haiku-5-5",
  "what_it_did": "README Usage: Nordlet(token=<secret>).reference.exchange_rates_sync() against the live API (reached; API returned 401 unauthorized)",
  "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": 95377,
  "tested_at": null,
  "test_version": "readme-03aea4c41d53955e3723c330e9927d2a9df627f6642624cc0078a97c73a53c8a",
  "recovery": {
    "source": "legacy-oct16-18",
    "original_run_id": "nordlet--nordlet-sdk-python-claude-haiku-5-5-1792341437610526595",
    "historical": true,
    "ledger_sha256": "c5e6a833c182c1e2aecf69d0bd0020aec63c65d98f3e933e4b32232340312736"
  },
  "transcript_url": "/transcripts/nordlet--nordlet-sdk-python-claude-haiku-5-5-1792341437610526595.txt",
  "report_url": "/reports/nordlet--nordlet-sdk-python-claude-haiku-5-5-1792341437610526595.json"
}
