{
  "tokens_out": 11133,
  "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": "repair",
  "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": "00b86e6e810e3807c558bd107ed375996c9c6cca",
  "failure_origin": null,
  "stuck_step": null,
  "repo_url": null,
  "needs": null,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "/usr/bin/npx",
          "-y",
          "@chronary/mcp"
        ],
        "kind": "mcp",
        "serverInfo": {
          "name": "chronary-mcp",
          "version": "1.5.3"
        },
        "tools": [
          "list_calendars",
          "get_calendar",
          "create_calendar",
          "update_calendar",
          "delete_calendar",
          "create_booking_page",
          "list_booking_pages",
          "get_booking_page",
          "delete_booking_page",
          "list_events",
          "get_event",
          "create_event",
          "update_event",
          "cancel_event",
          "confirm_event",
          "release_event",
          "create_agent",
          "list_agents",
          "get_agent",
          "update_agent",
          "delete_agent",
          "get_availability",
          "find_meeting_time",
          "create_connection_link",
          "get_connection_link",
          "cancel_connection_link",
          "get_calendar_context",
          "create_proposal",
          "list_proposals",
          "get_proposal",
          "respond_to_proposal",
          "resolve_proposal",
          "cancel_proposal",
          "set_availability_rules",
          "get_availability_rules",
          "clear_availability_rules",
          "list_webhooks",
          "get_webhook",
          "create_webhook",
          "update_webhook",
          "delete_webhook",
          "list_webhook_deliveries",
          "list_ical_subscriptions",
          "get_ical_subscription",
          "subscribe_ical",
          "update_ical_subscription",
          "delete_ical_subscription",
          "sync_ical_subscription",
          "create_scoped_key",
          "list_scoped_keys",
          "revoke_scoped_key",
          "get_audit_log",
          "accept_terms",
          "get_usage"
        ],
        "scope": "product operation"
      }
    }
  ],
  "open_issues": null,
  "agent_runtime_version": "2.1.300 (Claude Code)",
  "verifies_run_id": "Chronary--chronary-mcp-claude-haiku-5-5-1792340885790568326",
  "total_s": 267.1435112953186,
  "license": null,
  "tool_calls": 14,
  "model_version": "claude-haiku-5-5",
  "example_checks": [],
  "mcp": null,
  "other_model": null,
  "first_use_s": null,
  "native_tool_calls": 14,
  "last_commit_at": null,
  "source": "https://github.com/Chronary/chronary-mcp",
  "models_agree": null,
  "maintenance_verdict": null,
  "cost_usd": 0.014240899999999999,
  "safety": null,
  "answered_issues": null,
  "what_failed": null,
  "steps": [
    "cd <host-path> && ls -la && cat README.md 2>/dev/null | head -200 && git log --oneline -1 2>/dev/null; ls -la .coldpass 2>/dev/null",
    "cd <host-path> && sed -n 200,400p README.md; echo ---; cat package.json; echo ---; ls src test; ls .github/workflows 2>/dev/null; echo; cat .chronary-release.json; echo; node -v; npm -v",
    "(sudo -n true 2>/dev/null && echo SUDO_OK); id -u; (apt-get update -qq && DEBIAN_FRONTEND=noninteractive apt-get install -y -qq nodejs npm >/tmp/apt.log 2>&1); echo rc=$?; node -v; npm -v; cat <host-path>; cat <host-path> | head -80",
    "sudo -n env DEBIAN_FRONTEND=noninteractive apt-get update -qq >/tmp/apt.log 2>&1; sudo -n env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq nodejs npm >>/tmp/apt.log 2>&1; echo rc=$?; node -v; npm -v; tail -5 /tmp/apt.log",
    "cd <host-path> && export NODE_USE_ENV_PROXY=1 && npm view @chronary/sdk version 2>&1 | tail -2; npm view @chronary/toolkit version 2>&1 | tail -2; npm view @chronary/mcp version 2>&1 | tail -2; npm view typescript@6 version 2>&1 | tail -1",
    "cd <host-path> && export NODE_USE_ENV_PROXY=1 && timeout 600 npm install 2>&1 | tail -20; echo rc=${PIPESTATUS[0]}",
    "cd <host-path> && cat src/index.ts | head -120; echo ----; cat src/args.ts | head -80; echo ----; cat Dockerfile; echo ----; cat smithery.yaml",
    "cd /tmp && export NODE_USE_ENV_PROXY=1 && CHRONARY_API_KEY=test timeout 180 npx -y @chronary/mcp --help 2>&1 | head -30; echo rc=${PIPESTATUS[0]}; ls ~/.npm/_npx 2>/dev/null | head; ",
    "mkdir -p <host-path> && cat > <host-path> <<'EOF'\nimport json, subprocess, sys, os\nenv = dict(os.environ, CHRONARY_API_KEY=\"placeholder-for-introspection\", NODE_USE_ENV_PROXY=\"1\")\np = subprocess.Popen([\"/usr/bin/npx\", \"-y\", \"@chronary/mcp\"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, env=env, cwd=\"<host-path>\")\ndef send(m): p.stdin.write(json.dumps(m) + \"\\n\"); p.stdin.flush()\ndef recv():\n    while True:\n        line = p.stdout.readline()\n        if not line: raise SystemExit(\"EOF: \" + p.stderr.read())\n        line = line.strip()\n        if line.startswith(\"{\"): return json.loads(line)\nsend({\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{},\"clientInfo\":{\"name\":\"probe\",\"version\":\"0\"}}})\nprint(\"init:\", recv()[\"result\"][\"serverInfo\"])\nsend({\"jsonrpc\":\"2.0\",\"method\":\"notifications/initialized\"})\nsend({\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/list\",\"params\":{}})\nr = recv()\ntools = r[\"result\"][\"tools\"]\nprint(\"tools:\", len(tools), [t[\"name\"] for t in tools][:5])\np.stdin.close(); p.wait(timeout=10)\nEOF\ncd <host-path> && timeout 300 python3 -I mcp_list.py; echo rc=$?; which npx",
    "export NODE_USE_ENV_PROXY=1 CHRONARY_API_KEY=test; cd <host-path> && timeout 120 /usr/bin/npx -y @chronary/mcp --help 2>&1 | tail -3; echo \"rc(in workspace)=${PIPESTATUS[0]}\"; cd /tmp && timeout 120 /usr/bin/npx -y @chronary/mcp --version 2>&1 | tail -2; echo \"rc(in /tmp)=${PIPESTATUS[0]}\"; cd <host-path> && git status 2>&1 | head -2; ls node_modules 2>/dev/null | head -2",
    "export NODE_USE_ENV_PROXY=1 CHRONARY_API_KEY=test; cd <host-path> && timeout 180 /usr/bin/npx -y --package=@chronary/mcp chronary-mcp --version 2>&1 | tail -2; echo \"rc=${PIPESTATUS[0]}\"",
    "cd <host-path> && sed -i 's#cwd=\"<host-path>\"#cwd=\"<host-path>\"#' mcp_list.py && timeout 300 python3 -I mcp_list.py; echo rc=$?",
    "mkdir -p <host-path> && cd <host-path> && rm -f probe.json report.json && cat > probe.json <<'EOF'\n{\n  \"kind\": \"mcp\",\n  \"argv\": [\"/usr/bin/npx\", \"-y\", \"@chronary/mcp\"],\n  \"cwd\": \"<host-path>\",\n  \"env\": {\"CHRONARY_API_KEY\": \"placeholder-for-introspection\", \"NODE_USE_ENV_PROXY\": \"1\"}\n}\nEOF\npython3 -I -m json.tool probe.json >/dev/null && echo ok; <env-var>=<host-path> python3 -I <host-path> --validate; echo rc=$?",
    "cd <host-path> && cat > report.json <<'EOF'\n{\n  \"outcome\": \"working\",\n  \"operation\": \"Start the published @chronary/mcp stdio MCP server via the README command `npx -y @chronary/mcp`, perform the MCP initialize handshake, and call tools/list (returned 54 tools, e.g. list_calendars, get_calendar, create_calendar).\",\n  \"operation_scope\": \"Verified MCP start and tools/list only. Did not call any Chronary API endpoint (no real chr_sk_ key; placeholder key is enough for tools/list). Repo source was not built: package.json uses pnpm `workspace:*` deps that npm cannot install (EUNSUPPORTEDPROTOCOL), and the Dockerfile/smithery.yaml both run the published package. Full unit/lint suites were not run per task instructions.\",\n  \"steps\": [\n    \"Read README.md and package.json; found the README's documented runtime command `npx -y @chronary/mcp` and verify command `CHRONARY_API_KEY=test npx -y @chronary/mcp --help`.\",\n    \"Installed Node.js 18.19.1 and npm 9.2.0 via `sudo apt-get install nodejs npm` (node was not present in the guest).\",\n    \"Ran `npm view @chronary/sdk`, `@chronary/toolkit`, `@chronary/mcp` (all resolve on the registry).\",\n    \"Ran README verify command `CHRONARY_API_KEY=test npx -y @chronary/mcp --help` from /tmp: exit 0, printed help (only an EBADENGINE warning for Node 18).\",\n    \"Ran a stdio MCP driver (outside the source tree) against `/usr/bin/npx -y @chronary/mcp`: initialize returned serverInfo chronary-mcp 1.5.3; tools/list returned 54 tools.\",\n    \"Wrote <host-path> (kind mcp) and report.json; ran the checker --validate: valid.\"\n  ],\n  \"deviations\": [\n    \"`npm install` in <host-path> failed with `npm ERR! code EUNSUPPORTEDPROTOCOL: Unsupported URL Type \\\"workspace:\\\": workspace:*`. Expected: the repo's workspace deps only resolve inside the monorepo (the release workflow rewrites them to published versions before install). Not built from source; the README's published-package path was used instead.\",\n    \"Earlier failure `sh: 1: chronary-mcp: not found` (exit 127) reproduced when `npx -y @chronary/mcp` runs with cwd=<host-path> Cause: the workspace package.json is itself named @chronary/mcp and has a bin `chronary-mcp`, so npx resolves the local project, whose node_modules were never installed, instead of fetching the package. The same command succeeds from /tmp and <host-path> `--package=@chronary/mcp chronary-mcp` also fails from the workspace cwd.\",\n    \"Probe cwd set to <host-path> (no package.json) instead of <host-path>, so npx fetches the published package. The argv itself is unchanged.\",\n    \"tools/list returned 54 tools; the README says 50. Documentation count mismatch only, not a blocker.\",\n    \"Node 18 used (guest default via apt); package engines and the Dockerfile target Node 20+. npm printed EBADENGINE warnings for transitive deps but the server ran.\"\n  ],\n  \"stuck_step\": null,\n  \"main_blocker\": null,\n  \"suggested_fix\": null,\n  \"fault_owner\": \"test\",\n  \"test_correction\": \"Run the probe with cwd outside the source tree (e.g. <host-path> or /tmp). Running `npx -y @chronary/mcp` in <host-path> resolves the repo's own package.json (name @chronary/mcp, bin chronary-mcp) and returns 127 because its dependencies are not installed. Also, the probe cwd should not be the source tree for README npx commands. Repo source was left unchanged; no patch was needed.\"\n}\nEOF\npython3 -I -m json.tool report.json >/dev/null && echo report-ok; pgrep -fa \"chronary|mcp_list\" || echo \"no leftover processes\"; <env-var>=<host-path> python3 -I <host-path> --validate; echo rc=$?"
  ],
  "platform_conflicts": null,
  "claims_note": null,
  "maintained_note": null,
  "repo": "Chronary/chronary-mcp",
  "service_tier": null,
  "maintained": null,
  "source_pin": null,
  "operation_scope": "product operation",
  "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:36:17.159832+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": "Chronary--chronary-mcp-claude-haiku-5-5-1792341110016306215",
  "last_release_at": null,
  "furthest_model": null,
  "model": "claude-haiku-5-5",
  "what_it_did": "Start the published @chronary/mcp stdio MCP server via the README command `npx -y @chronary/mcp`, perform the MCP initialize handshake, and call tools/list (returned 54 tools, e.g. list_calendars, get_calendar, create_calendar).",
  "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": "fix-7da829582286fa58751e",
  "tokens_in": 285789,
  "tested_at": null,
  "test_version": "readme-797299040babdff22d933be01479ded089f23b3df93106460b253e295f66c1ad",
  "recovery": {
    "source": "legacy-oct16-18",
    "original_run_id": "Chronary--chronary-mcp-claude-haiku-5-5-1792341110016306215",
    "historical": true,
    "ledger_sha256": "c5e6a833c182c1e2aecf69d0bd0020aec63c65d98f3e933e4b32232340312736"
  },
  "transcript_url": "/transcripts/Chronary--chronary-mcp-claude-haiku-5-5-1792341110016306215.txt",
  "report_url": "/reports/Chronary--chronary-mcp-claude-haiku-5-5-1792341110016306215.json"
}
