{
  "run_id": "Asymptote-Labs--agent-beacon-claude-haiku-5-5-1792759228538345703",
  "date": "2026-10-23T12:45:09.897706+00:00",
  "repo": "Asymptote-Labs/agent-beacon",
  "kind": "mcp",
  "source": "https://github.com/Asymptote-Labs/agent-beacon",
  "commit": "cfbd7b1d721664e3b1b5ca2fca5eac4327532c07",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9",
  "pass": false,
  "outcome": "blocked",
  "time_to_working_s": null,
  "total_s": 281.3593029975891,
  "steps": [
    "cd <guest-path> && pwd && ls -la && id -u && python3 --version && cat README.md 2>/dev/null | head -200",
    "ls -la /inputs 2>/dev/null; ls -la <guest-path> 2>/dev/null; cd <guest-path> && git status 2>&1 | head -3",
    "cd <guest-path> && sed -n 200,400p README.md",
    "cd <guest-path> && sed -n 400,600p README.md",
    "cd <guest-path> && git init -q && git remote add origin https://github.com/Asymptote-Labs/agent-beacon && timeout 120 git fetch --depth 1 origin cfbd7b1d721664e3b1b5ca2fca5eac4327532c07 2>&1 | tail -5; echo rc=$?; git reset --mixed FETCH_HEAD 2>&1 | tail -3; git log --oneline -1 2>&1; git status --short 2>&1 | head -5",
    "cd <guest-path> && sudo -n true && echo SUDO_OK; uname -m; cat /etc/os-release | head -3; which apt-get dpkg curl; timeout 30 curl -fsSLI -o /dev/null -w '%{http_code} %{url_effective}\\n' https://github.com/asymptote-labs/agent-beacon/releases/latest; echo rc=$?",
    "cd <guest-path> && wc -l packaging/linux/install.sh && sed -n 1,200p packaging/linux/install.sh",
    "export NODE_USE_ENV_PROXY=1; curl -fsSL https://github.com/asymptote-labs/agent-beacon/releases/latest/download/install.sh | bash 2>&1 | tail -30; echo \"exit=${PIPESTATUS[1]}\"",
    "timeout 60 curl -fsSL \"https://api.github.com/repos/asymptote-labs/agent-beacon/releases?per_page=10\" | python3 -c 'import json,sys\nfor r in json.load(sys.stdin):\n    print(r[\"tag_name\"], r[\"prerelease\"], [a[\"name\"] for a in r[\"assets\"]][:12])' 2>&1 | head -30; echo; timeout 30 curl -sI https://github.com/asymptote-labs/agent-beacon/releases/download/v1.3.24/checksums.txt | head -1",
    "cd <guest-path> && BEACON_VERSION=1.3.46 bash packaging/linux/install.sh 2>&1 | tail -30; echo \"exit=${PIPESTATUS[0]}\"; which beacon && beacon version 2>&1 | head -5",
    "beacon --help 2>&1 | head -60; echo ---; beacon mcp serve --help 2>&1 | head -30; echo ---; beacon endpoint dashboard --help 2>&1 | head -30",
    "cd /tmp && printf '%s\\n' '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{},\"clientInfo\":{\"name\":\"probe\",\"version\":\"0\"}}}' '{\"jsonrpc\":\"2.0\",\"method\":\"notifications/initialized\"}' '{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/list\"}' | timeout 20 beacon mcp serve --user 2>/tmp/mcp_err.txt | python3 -c 'import sys,json\nfor l in sys.stdin:\n    m=json.loads(l)\n    if m.get(\"id\")==2:\n        for t in m[\"result\"][\"tools\"]: print(t[\"name\"], \"|\", t.get(\"description\",\"\")[:150], \"|\", json.dumps(t.get(\"inputSchema\",{}).get(\"properties\",{}))[:200])\n    elif m.get(\"id\")==1: print(\"init:\", m[\"result\"][\"serverInfo\"])'; echo \"stderr:\"; head -5 /tmp/mcp_err.txt",
    "cd /tmp && call(){ printf '%s\\n' '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{},\"clientInfo\":{\"name\":\"probe\",\"version\":\"0\"}}}' '{\"jsonrpc\":\"2.0\",\"method\":\"notifications/initialized\"}' \"$1\" | timeout 30 beacon mcp serve --user 2>/dev/null | python3 -c 'import sys,json\nfor l in sys.stdin:\n    m=json.loads(l)\n    if m.get(\"id\")==2: print(json.dumps(m)[:1200])'; }; call '{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/call\",\"params\":{\"name\":\"summarize_activity\",\"arguments\":{}}}'; call '{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/call\",\"params\":{\"name\":\"search_memory\",\"arguments\":{\"limit\":3}}}'; beacon endpoint status --user 2>&1 | head -20",
    "cd <guest-path> && grep -n \"never touches the network\" README.md | cut -c1-400; grep -n \"Beacon ships with a local, read-only dashboard\" README.md; grep -n \"writes endpoint telemetry to local JSONL\" README.md; echo ---; (beacon endpoint dashboard --addr 127.0.0.1:8765 > /tmp/dash.log 2>&1 &); sleep 3; cat /tmp/dash.log | head; curl -s -o /tmp/index.html -w '%{http_code}\\n' http://127.0.0.1:8765/; head -c 600 /tmp/index.html; echo; grep -o 'api/[a-zA-Z/_-]*' /tmp/index.html | sort -u | head -30",
    "cd /tmp && curl -s http://127.0.0.1:8765/ | grep -o 'src=\"[^\"]*\"' ; for f in $(curl -s http://127.0.0.1:8765/ | grep -o 'src=\"[^\"]*\\.js\"' | cut -d'\"' -f2); do curl -s \"http://127.0.0.1:8765/$f\" | grep -oE '\"/api[^\"`]*\"|`/api[^`]*`' ; done | sort -u | head -30; curl -s -w '\\n%{http_code}\\n' http://127.0.0.1:8765/api/summary | head -c 600",
    "pkill -f \"beacon endpoint dashboard\" ; sleep 1; pgrep -fa \"beacon endpoint dashboard\" || echo \"dashboard stopped\"; cat /etc/systemd/system/beacon-inventory.timer; echo ---; cat /etc/systemd/system/beacon-inventory.service 2>/dev/null; echo ---; ls /etc/systemd/system | grep beacon; echo ---; beacon endpoint inventory --help 2>&1 | head -25",
    "for p in $(pgrep -f \"^beacon endpoint dashboard\"); do kill $p; done; sleep 1; pgrep -f \"^beacon endpoint dashboard\" || echo \"dashboard stopped\"; cat /etc/systemd/system/beacon-inventory.timer; echo ---; cat /etc/systemd/system/beacon-inventory.service 2>/dev/null; echo ---; ls /etc/systemd/system | grep beacon; echo ---; beacon endpoint inventory --help 2>&1 | head -25",
    "beacon endpoint inventory heartbeat --help 2>&1 | head -30; echo ---; beacon endpoint --help 2>&1 | sed -n 1,30p",
    "cd /tmp && beacon endpoint inventory heartbeat --user; echo \"exit=$?\"; echo ---; beacon endpoint inventory heartbeat --user --json; echo \"exit=$?\"; echo ---; beacon endpoint config --help 2>&1 | head -5; echo; ls -la <guest-path> 2>&1 | head; ls -la <guest-path> 2>&1 | head",
    "cd /tmp && beacon endpoint inventory heartbeat --scheduled --user --json; echo \"exit=$?\"; beacon endpoint inventory heartbeat --scheduled --user 2>&1 | head -3",
    "cd <guest-path> && grep -n \"def \\|argparse\\|add_argument\" check.py | head -120",
    "cd <guest-path> && sed -n 1168,1300p check.py; sed -n 747,790p check.py",
    "cd <guest-path> && grep -rn \"OnUnitActiveSec\\|endpoint\\\" \\\"inventory\\\" \\\"heartbeat\\|inventory heartbeat --scheduled\" --include=* -r packaging cli docs 2>/dev/null | head -8; echo ---; cd /tmp && timeout 20 beacon whoami; echo \"whoami exit=$?\"; timeout 5 beacon traces </dev/null 2>&1 | head -3; echo \"traces exit=$?\"",
    "cd <guest-path> && sed -n 928,1010p check.py",
    "cd <guest-path> && sed -n 300,335p cli/beacon/internal/endpoint/service/inventory.go | grep -n \"ExecStart\\|OnUnit\\|heartbeat\\|scheduled\" ",
    "cd <guest-path> && grep -n \"heartbeat\\|--scheduled\" cli/beacon/internal/endpoint/service/inventory.go | head -12; grep -n \"OnUnitActiveSec=%ds\" cli/beacon/internal/endpoint/service/inventory.go",
    "cd <guest-path> && mkdir -p .coldpass && cat > .coldpass/probe.json <<'EOF'\n{\"kind\":\"mcp\",\"argv\":[\"beacon\",\"mcp\",\"serve\"],\"cwd\":\"<guest-path>\",\"tool\":\"summarize_activity\",\"arguments\":{\"action\":\"telemetry.enabled\"},\"expected_text\":\"telemetry.enabled\"}\nEOF\ncat > .coldpass/claims.json <<'EOF'\n[\n{\"kind\":\"claim\",\"claim\":\"The local beacon MCP server runs over stdio and answers a real activity-summary tool call without network access\",\"source\":\"The local `beacon` MCP server (`beacon mcp serve`) is separate and never touches the network.\",\"input\":\"action=telemetry.enabled\",\"expected\":\"summary containing the telemetry.enabled event\",\"probe_kind\":\"mcp\",\"argv\":[\"beacon\",\"mcp\",\"serve\"],\"tool\":\"summarize_activity\",\"arguments\":{\"action\":\"telemetry.enabled\"},\"expected_text\":\"telemetry.enabled\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"Beacon writes endpoint telemetry to local JSONL, and the local traces view reads it back\",\"source\":\"Beacon writes endpoint telemetry to local JSONL by default.\",\"input\":\"beacon traces (non-interactive)\",\"expected\":\"listing containing the telemetry.enabled event\",\"probe_kind\":\"cli\",\"argv\":[\"beacon\",\"traces\"],\"stdin\":\"\",\"expected_text\":\"telemetry.enabled\",\"cwd\":\"<guest-path>\"}\n]\nEOF\ncat > .coldpass/cycles.json <<'EOF'\n{\"detected\":true,\"checks\":[{\"claim\":\"Scheduled endpoint inventory heartbeat writes one heartbeat event\",\"source\":\"cli/beacon/internal/endpoint/service/inventory.go\",\"quote\":\"args := []string{\\\"endpoint\\\", \\\"inventory\\\", \\\"heartbeat\\\", \\\"--scheduled\\\"}\",\"schedule\":\"beacon-inventory.timer: OnUnitActiveSec=21600s (every 6h); not installed as a timer in this user-mode guest\",\"method\":\"run-once: same command the timer runs, triggered by hand in user mode (--user instead of --system, since the guest user is not root)\",\"input\":\"no input; reads endpoint config and inventory state\",\"expected\":\"JSON result with written:true\",\"kind\":\"cli\",\"argv\":[\"beacon\",\"endpoint\",\"inventory\",\"heartbeat\",\"--scheduled\",\"--user\",\"--json\"],\"cwd\":\"<guest-path>\",\"expected_text\":\"\\\"written\\\":true\"}]}\nEOF\ncat > .coldpass/examples.json <<'EOF'\n[\n{\"kind\":\"example\",\"claim\":\"Browse local endpoint traces in the terminal\",\"source\":\"README.md\",\"input\":\"beacon traces (stdin closed, no TTY)\",\"expected\":\"prints the local trace listing including the telemetry.enabled event\",\"argv\":[\"beacon\",\"traces\"],\"cwd\":\"<guest-path>\",\"env\":{},\"stdin\":\"\",\"expected_text\":\"telemetry.enabled\"},\n{\"kind\":\"example\",\"claim\":\"Inspect the account used during interactive setup\",\"source\":\"README.md\",\"reason\":\"Requires a Beacon sign-in through beacon.sh (beacon login), which needs credentials not available in this guest. Ran nothing for this step; beacon whoami reports 'Not signed in. Run `beacon login`.'\"}\n]\nEOF\npython3 -I -c 'import json,sys\nfor f in [\"probe\",\"claims\",\"cycles\",\"examples\"]:\n    json.load(open(\".coldpass/%s.json\"%f)); print(f,\"ok\")'; ls -la .coldpass",
    "cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay; echo \"exit=$?\"",
    "(sudo -n ss -ltnp 2>/dev/null || ss -ltnp 2>/dev/null) | grep -i beacon || echo \"no beacon listeners in ss\"; systemctl is-active beacon-collector.service beacon-inventory.timer 2>&1; pgrep -fa \"beacon (mcp|endpoint dashboard)\" || echo \"no beacon mcp/dashboard processes\"",
    "sudo -n systemctl stop beacon-collector.service beacon-inventory.timer && sleep 2; systemctl is-active beacon-collector.service beacon-inventory.timer; (sudo -n ss -ltn 2>/dev/null | grep -E ':(4317|4318|13133|8765|8766)\\b') || echo \"ports 4317/4318/13133/8765/8766 free\"; cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay | python3 -c 'import json,sys; d=json.load(sys.stdin); print(\"valid=\",d[\"valid\"], d[\"problems\"]); r=d.get(\"replay\",{}); print(\"replay=\",r.get(\"status\")); [print(c[\"verdict\"], c[\"claim\"][:60]) for c in r.get(\"details\",{}).get(\"claims\",[])+r.get(\"cycle_checks\",[])+r.get(\"example_checks\",[])]'; echo \"exit=${PIPESTATUS[0]}\"",
    "cd <guest-path> && cat .coldpass/claims.json; echo; cat .coldpass/probe.json; echo; <env-var>=<guest-path> python3 -I <guest-path> --validate --replay | head -c 4000",
    "cd <guest-path> && beacon endpoint traces reindex; echo \"reindex exit=$?\"; beacon traces | grep -c telemetry.enabled; <env-var>=<guest-path> python3 -I <guest-path> --validate --replay | python3 -c 'import json,sys; d=json.load(sys.stdin); print(\"valid=\",d[\"valid\"], d[\"problems\"])'; echo \"exit=${PIPESTATUS[0]}\"",
    "cd <guest-path> && find / -xdev -path /proc -prune -o \\( -name '*.jsonl' -path '*beacon*' \\) -print 2>/dev/null | head; grep -rl telemetry.enabled <guest-path> /root/.beacon ~/.beacon 2>/dev/null | head; beacon endpoint traces --help 2>&1 | head -20"
  ],
  "stuck_step": "beacon mcp serve",
  "error_excerpt": "README smoke check did not pass",
  "what_it_did": null,
  "suggested_fix": "Inspect the recorded blocker and correct the README prerequisites or harness error.",
  "tokens_in": 1092648,
  "tokens_out": 22506,
  "cost_usd": 0.0405356,
  "usage_complete": true,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": false,
        "argv": [
          "beacon",
          "mcp",
          "serve"
        ],
        "kind": "mcp",
        "serverInfo": {
          "name": "beacon",
          "version": "1.3.46"
        },
        "tools": [
          "search_activity",
          "summarize_activity",
          "get_activity_event",
          "list_activity_filters",
          "search_memory",
          "get_memory",
          "get_memory_context"
        ],
        "tool_schema_bytes": 7199,
        "tool_result": {
          "content": [
            {
              "type": "text",
              "text": "{\"meta\":{\"total_matched\":0,\"malformed_lines\":0,\"limit\":100,\"returned\":0,\"truncated\":false,\"filters\":{\"action\":\"telemetry.enabled\"}},\"summary\":{\"total_events\":0,\"active_sessions\":0,\"malformed_lines\":0,\"counts_by_action\":{},\"counts_by_harness\":{},\"counts_by_severity\":{},\"counts_by_category\":{},\"counts_by_approval_decision\":{},\"counts_by_mcp_server\":{},\"counts_by_repository\":{},\"counts_by_model\":{},\"prompt_events\":0,\"tool_events\":0,\"command_events\":0,\"file_events\":0,\"mcp_events\":0,\"approval_events\":0,\"high_severity_events\":0,\"critical_severity_events\":0,\"needs_review_events\":0,\"failed_tool_events\":0,\"denied_approval_events\":0,\"policy_blocked_events\":0,\"top_actions\":[],\"top_harnesses\":[],\"top_models\":[],\"top_repositories\":[],\"top_mcp_servers\":[]}}"
            }
          ]
        },
        "tool_result_checked": true,
        "scope": "product operation"
      }
    }
  ],
  "safety": {
    "version": "z2x-1",
    "rules_version": "z2x-1",
    "summary": "Review signals: 1 connection review, 1 download and execute, 1 hardcoded secret, 4 known vulnerability. 23 static matches retained as context.",
    "findings": [
      {
        "kind": "connection-review",
        "count": 1,
        "note": "Repository processes attempted these non-loopback connections; proxies can hide the final hostname.",
        "location_count": 5,
        "process_count": 4
      },
      {
        "kind": "download-and-execute",
        "count": 1,
        "note": "Source contains download and execute; review its purpose.",
        "location_count": 1,
        "path": "packaging/linux/install.sh"
      },
      {
        "kind": "hardcoded-secret",
        "count": 1,
        "note": "Gitleaks found a possible hardcoded secret; value withheld.",
        "location_count": 1,
        "path": "cli/beacon/internal/hermessession/collect.go"
      },
      {
        "kind": "known-vulnerability",
        "count": 2,
        "note": "OSV reports a known vulnerability in this dependency version.",
        "location_count": 1,
        "path": "@vitest/mocker"
      }
    ],
    "context": [
      {
        "kind": "download-and-execute",
        "count": 1,
        "note": "Source contains download and execute; review its purpose.",
        "location_count": 1,
        "path": "cli/beacon/internal/endpoint/dashboard/testdata/lens-e2e/tests/builtin-approvals.spec.ts"
      },
      {
        "kind": "hardcoded-secret",
        "count": 21,
        "note": "Gitleaks found a possible hardcoded secret; value withheld.",
        "location_count": 5
      }
    ],
    "limitations": [
      "A short run cannot establish that code is safe.",
      "Connections show IP addresses; proxies can hide the final hostname.",
      "Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing."
    ],
    "static": {
      "dependency_note": "OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check."
    },
    "evidence_url": "/safety/?run=Asymptote-Labs--agent-beacon-claude-haiku-5-5-1792759228538345703",
    "evidence_file": "/data/safety/Asymptote-Labs--agent-beacon-claude-haiku-5-5-1792759228538345703.json.gz"
  },
  "agent_execution": "native_agent",
  "agent_runtime": "claude-code",
  "agent_runtime_version": "2.1.300 (Claude Code)",
  "tool_transport": "mcp-assigned-vm",
  "platform": "linux",
  "reasoning": "low",
  "service_tier": null,
  "resources": {
    "cpus": 2,
    "memory_mib": 4096,
    "disk_mib": 32768
  },
  "native_tool_calls": 33,
  "native_bundle": null,
  "architecture": null,
  "backend": "hyperv",
  "platform_details": {
    "backend": "hyperv",
    "os": "linux"
  },
  "platform_conflicts": null,
  "sandbox_source": null,
  "source_pin": {
    "commit": "cfbd7b1d721664e3b1b5ca2fca5eac4327532c07",
    "url": "https://github.com/Asymptote-Labs/agent-beacon"
  },
  "purpose": "initial",
  "profile": {
    "model": "claude-haiku-5-5",
    "reasoning": "low"
  },
  "fault": {
    "owner": "unknown",
    "status": "pending",
    "reason": "README smoke check did not pass"
  },
  "fix_id": "fix-fe263b9a1e1bad5fa2e5",
  "verifies_run_id": null,
  "hosting": null,
  "operation_scope": "product operation",
  "tool_calls": 33,
  "guest_setup": null,
  "runtime": null,
  "runtime_version": null,
  "runtime_revision": null,
  "source_revision": null,
  "evidence_version": null,
  "failure_origin": "task",
  "evidence_strength": "partly_checked",
  "works": "no",
  "install_s": null,
  "first_use_s": null,
  "mcp": "local",
  "needs": [],
  "needs_which": null,
  "agent_interface": [
    "mcp"
  ],
  "license": "MIT",
  "repo_url": "https://github.com/Asymptote-Labs/agent-beacon",
  "cost_to_try": null,
  "hardware": null,
  "what_failed": "README smoke check did not pass",
  "local_or_hosted": "local",
  "cycle_checks": [
    {
      "kind": "cycle",
      "claim": "Scheduled endpoint inventory heartbeat writes one heartbeat event",
      "source": "cli/beacon/internal/endpoint/service/inventory.go",
      "input": "no input; reads endpoint config and inventory state",
      "expected": "JSON result with written:true",
      "command": "beacon endpoint inventory heartbeat --scheduled --user --json",
      "schedule": "beacon-inventory.timer: OnUnitActiveSec=21600s (every 6h); not installed as a timer in this user-mode guest",
      "method": "run-once: same command the timer runs, triggered by hand in user mode (--user instead of --system, since the guest user is not root)",
      "verdict": "yes",
      "outcome": "Triggered one cycle by hand (run-once: same command the timer runs, triggered by hand in user mode (--user instead of --system, since the guest user is not root); normal trigger: beacon-inventory.timer: OnUnitActiveSec=21600s (every 6h); not installed as a timer in this user-mode guest): {\"written\":true,\"snapshot_written\":false,\"snapshot_digest\":\"sha256:01e3f6f6e0b3bbc109193d28a41fe59a5a7632311907b2755652e534a5b42fb2\",\"previous_snapshot_digest\":\"sha256:01e3f6f6e0b3bbc109193d28a41fe59a5a7632311907b2755652e534a5b42fb2\"}",
      "evidence": "{\"written\":true,\"snapshot_written\":false,\"snapshot_digest\":\"sha256:01e3f6f6e0b3bbc109193d28a41fe59a5a7632311907b2755652e534a5b42fb2\",\"previous_snapshot_digest\":\"sha256:01e3f6f6e0b3bbc109193d28a41fe59a5a7632311907b2755652e534a5b42fb2\"}",
      "returncode": 0
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "The local beacon MCP server runs over stdio and answers a real activity-summary tool call without network access",
      "source": "The local `beacon` MCP server (`beacon mcp serve`) is separate and never touches the network.",
      "input": "{\"tool\": \"summarize_activity\", \"arguments\": {\"action\": \"telemetry.enabled\"}}",
      "expected": "summary containing the telemetry.enabled event",
      "command": "beacon mcp serve tools/call {\"tool\": \"summarize_activity\", \"arguments\": {\"action\": \"telemetry.enabled\"}}",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: telemetry.enabled",
      "evidence": "telemetry.enabled\\\"}},\\\"summary\\\":{\\\"total_events\\\":0,\\\"active_sessions\\\":0,\\\"malformed_lines\\\":0,\\\"counts_by_action\\\":{},\\\"counts_by_harness\\\":{},\\\"counts_by_severity\\\":{},\\\"counts_by_category\\\":{},\\\"counts_by_approval_decision\\\":{},\\\"counts_by_mcp_server\\\":{},\\\"counts_by_repository\\\":{},\\\"counts_by_model\\\":{},\\\"prompt_events\\\":0,\\\"tool_events\\\":0,\\\"command_events\\\":0,\\\"file_events\\\":0,\\\"mcp_events\\\":0,\\\"approval_events\\\":0,\\\"high_severity_events\\\":0,\\\"critical_severity_events\\\":0,\\\"needs_review_events\\\":0,\\\"failed_tool_events\\\":0,\\\"denied_approval_events\\\":0,\\\"policy_blocked_events\\\":0,\\\"top",
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "Beacon writes endpoint telemetry to local JSONL, and the local traces view reads it back",
      "source": "Beacon writes endpoint telemetry to local JSONL by default.",
      "input": "beacon traces (non-interactive)",
      "expected": "listing containing the telemetry.enabled event",
      "command": "beacon traces",
      "verdict": "blocked",
      "outcome": "Probe produced no output.",
      "evidence": "Probe produced no output.",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": "Browse local endpoint traces in the terminal",
      "source": "README.md",
      "input": "beacon traces (stdin closed, no TTY)",
      "command": "beacon traces",
      "evidence": "",
      "deferred": false,
      "expected": "prints the local trace listing including the telemetry.enabled event",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully with no output"
    },
    {
      "kind": "example",
      "claim": "Inspect the account used during interactive setup",
      "source": "README.md",
      "input": "",
      "command": "",
      "evidence": "Requires a Beacon sign-in through beacon.sh (beacon login), which needs credentials not available in this guest. Ran nothing for this step; beacon whoami reports 'Not signed in. Run `beacon login`.'",
      "deferred": false,
      "expected": "documented command completes successfully",
      "verdict": "blocked",
      "outcome": "Requires a Beacon sign-in through beacon.sh (beacon login), which needs credentials not available in this guest. Ran nothing for this step; beacon whoami reports 'Not signed in. Run `beacon login`.'"
    }
  ],
  "does_what_it_says": "partly",
  "maintenance": {
    "last_commit_at": "2026-10-22T20:43:17Z",
    "commits_90d": 1900,
    "merged_prs_90d": 618,
    "open_issues": 8,
    "open_prs": 7,
    "reply_share": 0.0,
    "reply_threads": 11,
    "median_reply_hours": null,
    "last_release_at": "2026-10-22T19:39:43Z",
    "archived": false,
    "verdict": "slow",
    "note": "slow: last commit 0 days ago; 1900 commits and 618 merged PRs in 90 days; 8 open issues, 7 open PRs; 0 of 11 recent threads got a maintainer reply; latest release 2026-10-22"
  },
  "maintenance_verdict": "slow",
  "maintenance_note": "slow: last commit 0 days ago; 1900 commits and 618 merged PRs in 90 days; 8 open issues, 7 open PRs; 0 of 11 recent threads got a maintainer reply; latest release 2026-10-22",
  "maintained": "active",
  "maintained_note": "last commit 0 days ago",
  "last_commit_at": "2026-10-22T20:47:09Z",
  "last_release_at": "2026-10-22T19:39:43Z",
  "open_issues": null,
  "answered_issues": null,
  "platforms_claimed": [
    "linux",
    "mac",
    "windows"
  ],
  "topic": "mcp-server",
  "agent_interfaces": [
    {
      "interface": "mcp",
      "evidence": "independent checker",
      "observed": true,
      "operation_checked": false
    }
  ],
  "agent_interfaces_note": "README metadata is a discovery hint, not pinned documentation proof. Observed interfaces were exercised in this run. An empty list means unknown.",
  "mcp_context": {
    "tool_count": 7,
    "schema_bytes": 7199,
    "tokens_approx": 1800,
    "estimate_method": "ceil(compact UTF-8 tools/list JSON bytes / 4)",
    "scope": "returned tools/list page only; excludes client framing and tool results"
  },
  "tested_at": "2026-10-23T12:45:09.897706+00:00",
  "tested_commit": "cfbd7b1d721664e3b1b5ca2fca5eac4327532c07",
  "tested_with": {
    "agent": "claude-code",
    "agent_version": "2.1.300 (Claude Code)",
    "model": "claude-haiku-5-5",
    "model_route": "claude-haiku-5-5",
    "reasoning": "low",
    "os": "linux",
    "backend": "hyperv",
    "transport": "mcp-assigned-vm"
  },
  "setup_identity": {
    "repo": "Asymptote-Labs/agent-beacon",
    "source": "https://github.com/Asymptote-Labs/agent-beacon",
    "commit": "cfbd7b1d721664e3b1b5ca2fca5eac4327532c07",
    "source_revision": null,
    "os": "linux",
    "architecture": null,
    "backend": "hyperv",
    "model": "claude-haiku-5-5",
    "model_version": "claude-haiku-5-5",
    "agent_execution": "native_agent",
    "agent_runtime": "claude-code",
    "agent_runtime_version": "2.1.300 (Claude Code)",
    "tool_transport": "mcp-assigned-vm",
    "runtime": null,
    "runtime_version": null,
    "runtime_revision": null,
    "sandbox_source": null,
    "guest_setup": null,
    "source_pin": {
      "commit": "cfbd7b1d721664e3b1b5ca2fca5eac4327532c07",
      "url": "https://github.com/Asymptote-Labs/agent-beacon"
    },
    "platform_details": {
      "os": "linux",
      "backend": "hyperv"
    },
    "platform_conflicts": null,
    "reasoning": "low",
    "service_tier": null,
    "resources": {
      "cpus": 2,
      "memory_mib": 4096,
      "disk_mib": 32768
    },
    "operation": null,
    "operation_scope": "product operation",
    "hosting": null,
    "kind": "mcp",
    "test_version": "readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9",
    "evidence_version": null
  },
  "other_model": null,
  "other_run_id": null,
  "models_agree": null,
  "furthest_model": null,
  "transcript_url": null,
  "report_url": "/reports/Asymptote-Labs--agent-beacon-claude-haiku-5-5-1792759228538345703.json"
}
