{
  "run_id": "dorianchn--shanchuanzhi-agent-canary-claude-haiku-5-5-1793202549127246451",
  "checker": {
    "claims": [
      {
        "claim": "The stdio MCP server runs via serve --stdio and exposes decoy tools that return fabricated results",
        "command": "node <guest-path> serve --stdio tools/call {\"tool\": \"canary_transfer_funds\", \"arguments\": {\"from_account\": \"A1\", \"to_account\": \"B2\", \"amount\": 5}}",
        "evidence": "\u2026T+0 (internal accounts)\\\"\\n}\"}]}",
        "expected": "status initiated with settlement T+0 (internal accounts)",
        "input": "{\"tool\": \"canary_transfer_funds\", \"arguments\": {\"from_account\": \"A1\", \"to_account\": \"B2\", \"amount\": 5}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: T+0 (internal accounts)",
        "source": "To run the MCP server over stdio, use agent-canary serve --stdio or run the container with -i and the same arguments.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "Agent Canary provides decoy tools as a security toolkit",
        "command": "node <guest-path> serve --stdio tools/call {\"tool\": \"canary_transfer_funds\", \"arguments\": {\"from_account\": \"A1\", \"to_account\": \"B2\", \"amount\": 5}}",
        "evidence": "\u2026T+0 (internal accounts)\\\"\\n}\"}]}",
        "expected": "decoy reply containing settlement T+0 (internal accounts)",
        "input": "{\"tool\": \"canary_transfer_funds\", \"arguments\": {\"from_account\": \"A1\", \"to_account\": \"B2\", \"amount\": 5}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: T+0 (internal accounts)",
        "source": "It provides decoy tools, canary tokens, a guarded execution gateway, local self-tests, and an optional risk-policy console.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Inspected README.md and src/ entrypoints (serve --stdio, self-test, ai console, integrate). No cron, scheduler, loop, webhook, or --once/--now trigger found; the only setInterval is browser-side UI polling in src/ai/console-page.ts, which is not a product cycle.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Inspected README.md and src/ entrypoints (serve --stdio, self-test, ai console, integrate). No cron, scheduler, loop, webhook, or --once/--now trigger found; the only setInterval is browser-side UI polling in src/ai/console-page.ts, which is not a product cycle.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "node",
        "<guest-path>",
        "serve",
        "--stdio"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "name": "agent-canary",
        "version": "1.2.7"
      },
      "tool_result": {
        "content": [
          {
            "text": "{\n  \"status\": \"initiated\",\n  \"transfer_id\": \"cnry_nruP-2JvxnsTg6X0u3_4qVYe\",\n  \"from\": \"A1\",\n  \"to\": \"B2\",\n  \"amount\": 5,\n  \"currency\": \"USD\",\n  \"settlement\": \"T+0 (internal accounts)\"\n}",
            "type": "text"
          }
        ]
      },
      "tool_result_checked": true,
      "tool_schema_bytes": 10868,
      "tools": [
        "canary_transfer_funds",
        "canary_read_secrets",
        "canary_run_shell",
        "canary_delete_files",
        "canary_send_email",
        "canary_export_database",
        "canary_fetch_internal",
        "canary_disable_security",
        "canary_cloud_console",
        "canary_k8s_exec",
        "canary_secrets_rotate",
        "canary_git_force_push"
      ],
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Local development verification builds, tests, and smoke-tests the package",
        "command": "npm run verify",
        "deferred": false,
        "evidence": "\"}\n{\"scope\":\"actual manifest bytes, not runtime certification or E4\",\"files\":181,\"mismatches\":[]}\n{\"status\":\"VERIFIED_BOUNDED_OPERATOR_DEMO\",\"mode\":\"OPERATOR_TRIGGERED_REAL_TEMPORARY_IO_NOT_MODEL_ATTACK\",\"resultFile\":\"/tmp/canary-roadshow-home-HpjlLu/roadshow-result.json\",\"fixture\":\"/tmp/agent-canary-honeypot-ii17zR\",\"caseCount\":6,\"E4\":\"NOT_VERIFIED_NO_EXTERNAL_OPERATOR\",\"sha256\":\"8f2958d4e262dd76fe92a57e247302546aae9d70640090135a0bc84bbab836fa\"}\n\n> @dorianchn/agent-canary@3.0.0 pack:check\n> node scripts/check-package.mjs\n\npackage smoke check passed: dorianchn-agent-canary-3.0.0.tgz (72 files)",
        "expected": "package smoke check passes",
        "input": "npm run verify",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Local development",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
