{
  "run_id": "kaelorlabs--smitline-claude-haiku-5-5-1792814787192125279",
  "checker": {
    "claims": [
      {
        "claim": "Smitline exposes call tools to MCP-capable agents such as Claude Desktop",
        "command": "sudo -n docker exec -i smitline smitline mcp tools/call {\"tool\": \"list_voices\", \"arguments\": {}}",
        "evidence": "marin\\\",\\\"voices\\\":[\\\"marin\\\",\\\"vesper\\\",\\\"quartz\\\",\\\"ripple\\\",\\\"willow\\\",\\\"stone\\\",\\\"gleam\\\",\\\"meridian\\\",\\\"bossa\\\",\\\"tempo\\\",\\\"beacon\\\",\\\"delta\\\",\\\"cinder\\\"]}\"}], \"structuredContent\": {\"default\": \"marin\", \"voices\": [\"marin\", \"vesper\", \"quartz\", \"ripple\", \"willow\", \"stone\", \"gleam\", \"meridian\", \"bossa\", \"tempo\", \"beacon\", \"delta\", \"cinder\"]}, \"isError\": false}",
        "expected": "the GPT-Live voice list, default marin",
        "input": "{\"tool\": \"list_voices\", \"arguments\": {}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: marin",
        "source": "**Works with your agent.** Claude Code, Codex, Cursor, Claude Desktop, OpenClaw, Hermes, and anything that can use MCP, a CLI or a REST API.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "Calls need your own OpenAI key; without it the brief check reports the missing key",
        "command": "sudo -n docker exec -i smitline smitline mcp tools/call {\"tool\": \"check_call_brief\", \"arguments\": {\"channel\": \"phone\", \"to\": \"+14155550142\", \"objective\": \"Book a table for 4 at 7pm\", \"onBehalfOf\": \"Sam\"}}",
        "evidence": "openai is not configured: set OPENAI_API_KEY\\\"],\\\"carried\\\":0}\"}], \"structuredContent\": {\"ok\": false, \"brief\": {\"channel\": \"phone\", \"to\": \"+14155550142\", \"onBehalfOf\": \"Sam\", \"objective\": \"Book a table for 4 at 7pm\", \"mayAgreeTo\": [], \"mustNotShare\": [], \"maxMinutes\": 10, \"rehearsal\": false}, \"problems\": [\"Smitline calls people between 8:00 AM and 9:00 PM their time. It is 9:10 PM for +14155550142 (America/Los_Angeles). Try again later, or set afterHours to true if the user confirms this person expects a call now.\", \"openai is not configured: set OPENAI_API_KEY\"], \"carried\": 0}, \"isError\": fal",
        "expected": "ok false with problem 'openai is not configured'",
        "input": "{\"tool\": \"check_call_brief\", \"arguments\": {\"channel\": \"phone\", \"to\": \"+14155550142\", \"objective\": \"Book a table for 4 at 7pm\", \"onBehalfOf\": \"Sam\"}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: openai is not configured",
        "source": "**Runs on your computer.** One Docker container, your own OpenAI and phone keys, open source under Apache-2.0.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected (start-*.sh, Dockerfile, packages/cli, meeting-runtime, control-panel). No cron, --once/--now, or product scheduler loop was found. The only setInterval calls are console UI refresh timers in control-panel/app.js and calls.js. The daemon is a request-driven HTTP/MCP server; calls are placed on demand, not on a schedule.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected (start-*.sh, Dockerfile, packages/cli, meeting-runtime, control-panel). No cron, --once/--now, or product scheduler loop was found. The only setInterval calls are console UI refresh timers in control-panel/app.js and calls.js. The daemon is a request-driven HTTP/MCP server; calls are placed on demand, not on a schedule.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "sudo",
        "-n",
        "docker",
        "exec",
        "-i",
        "smitline",
        "smitline",
        "mcp"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "name": "smitline",
        "version": "0.3.0"
      },
      "tool_result": {
        "content": [
          {
            "text": "{\"default\":\"marin\",\"voices\":[\"marin\",\"vesper\",\"quartz\",\"ripple\",\"willow\",\"stone\",\"gleam\",\"meridian\",\"bossa\",\"tempo\",\"beacon\",\"delta\",\"cinder\"]}",
            "type": "text"
          }
        ],
        "isError": false,
        "structuredContent": {
          "default": "marin",
          "voices": [
            "marin",
            "vesper",
            "quartz",
            "ripple",
            "willow",
            "stone",
            "gleam",
            "meridian",
            "bossa",
            "tempo",
            "beacon",
            "delta",
            "cinder"
          ]
        }
      },
      "tool_result_checked": true,
      "tool_schema_bytes": 22031,
      "tools": [
        "start_call",
        "check_call_brief",
        "wait_for_call",
        "get_call",
        "list_calls",
        "save_call_note",
        "list_contacts",
        "send_call_instruction",
        "reply_to_call_request",
        "end_call",
        "transfer_call_to_me",
        "list_voices",
        "get_profile",
        "update_profile"
      ],
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "The smitline CLI lists GPT-Live voices inside the running container",
        "command": "sudo -n docker exec smitline smitline voices",
        "deferred": false,
        "evidence": "{\n  \"default\": \"marin\",\n  \"voices\": [\n    \"marin\",\n    \"vesper\",\n    \"quartz\",\n    \"ripple\",\n    \"willow\",\n    \"stone\",\n    \"gleam\",\n    \"meridian\",\n    \"bossa\",\n    \"tempo\",\n    \"beacon\",\n    \"delta\",\n    \"cinder\"\n  ]\n}",
        "expected": "JSON with default marin",
        "input": "voices",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Prefer to set it up yourself? / docs/agents.md CLI",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
