{
  "slug": "ai-thetahealth-mirobody",
  "name": "Mirobody",
  "auditedAt": "2026-11-02T12:22:20Z",
  "version": "1.5.10",
  "ecosystem": "pypi",
  "package": "mirobody",
  "disclaimer": "Automated smoke test, not a security guarantee.",
  "complete": true,
  "checks": {
    "versionPin": {
      "status": "pass",
      "detail": "Pinned pypi mirobody@1.5.10",
      "version": "1.5.10"
    },
    "vulnerabilities": {
      "status": "pass",
      "detail": "No critical, high, or medium advisories were returned.",
      "critical": 0,
      "high": 0,
      "medium": 0,
      "low": 0,
      "packagesScanned": 1
    },
    "license": {
      "status": "pass",
      "detail": "Apache-2.0",
      "spdx": "Apache-2.0"
    },
    "installScripts": {
      "status": "pass",
      "detail": "No preinstall, install, postinstall, or prepare script.",
      "scripts": []
    },
    "secrets": {
      "status": "pass",
      "detail": "No credential patterns in the published artifact.",
      "findings": []
    },
    "packageSize": {
      "status": "pass",
      "detail": "19759946 bytes",
      "bytes": 19759946
    },
    "activity": {
      "status": "pass",
      "detail": "Active 7 days ago.",
      "ageDays": 7
    },
    "sandbox": {
      "status": "pass",
      "detail": "MCP handshake completed. 6 tools listed.",
      "starts": true,
      "handshake": true,
      "timeToReadyMs": 83,
      "tools": [
        {
          "name": "standardize_reading",
          "description": "Turn lab or vital-sign readings as printed (any language) into FHIR Observations with their LOINC code and UCUM unit, offline and without a key. The unit takes part in choosing the code (cholesterol in mmol/L and in mg/dL are different code"
        },
        {
          "name": "standardize_complaint",
          "description": "Classify a complaint or a diagnosis in a person's own words (\u5934\u75bc, sore throat, \u9ad8\u8840\u538b) on ICPC-3, offline. kind=symptom for what someone feels, kind=condition for a named diagnosis; the two use different ICPC-3 components and must not be mixed."
        },
        {
          "name": "standardize_report",
          "description": "Read a lab report (PDF, image, spreadsheet, text) and return every reading as a FHIR Observation with its LOINC code. Reading the document takes a model: this sends it to the model provider configured on this machine, and needs `pip install"
        },
        {
          "name": "resolve_indicator",
          "description": "Resolve indicator names to LOINC codes, offline. Same code from two names means the same test. Unresolved is an honest no: report it unmatched, never invent a code. A panel name answers with the panel's code (blood pressure gives 85354-9); "
        },
        {
          "name": "normalize_unit",
          "description": "Normalize units as printed (mg/dL, \u6beb\u6469\u5c14\u6bcf\u5347, \u6b21/\u5206) to canonical UCUM and their LOINC property family. An empty `ucum` means unrecognized. The family does not decide convertibility; convert_unit does."
        },
        {
          "name": "convert_unit",
          "description": "Convert one value between units before comparing readings recorded differently. Crossing mass and substance concentration (mg/dL and mmol/L) needs the reading's LOINC code for the molar mass. A null `converted` is an answer: the units measu"
        }
      ],
      "toolCount": 6,
      "resourceCount": 2,
      "promptCount": 4,
      "stderrExcerpt": "",
      "network": "disabled",
      "networkAttemptedWhileOffline": false,
      "outboundHosts": [],
      "requiresCredentials": false
    }
  },
  "tier": "gold",
  "tierReason": "Sandbox handshake completed and the published checks passed.",
  "logExcerpt": ""
}