{
      "tool_id": "art-189-markdown-document-converter",
      "tool_version": "1.0.0",
      "display_name": "Markdown Document Converter",
      "mcp_name": "convert_markdown_document",
      "mandate_type": "compliance_mandate",
      "wave": 34,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-189-markdown-document-converter.html",
      "description": "Deterministic Markdown to HTML and plain text over a hand-rolled CommonMark subset (headings, bold/italic/code spans, fenced code, blockquotes, one-level lists, links, images as links, horizontal rules, GFM pipe tables). All raw HTML in the input is escaped, so the output is injection-safe. Returns html, plain_text, stats (headings, links, code_blocks, tables, words), and SHA-256 digests of the input, HTML, and plain text computed over exact UTF-8 bytes with no normalization. Feeds the conversion receipt builder. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-189-markdown-document-converter.html#manifest",
      "consumes": [],
      "feeds": [
        "art-191-conversion-receipt-builder"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:366d56b7225bb3a094fb31f8ff393b6a63adf21a07735d58df87c49b385b71cd","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-02"}],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "B12U6vyDFqbOPrcDYbYcgJBHBAFnFI6lY0C+T0o/O24kLpLG/VEc+OdElqwo5jTfh5wUhvqS+gb744bvPRYfdAdHOMf5Ev0GYNqFTPwgW2mUNd6QizJx6Z8u6i5e9wsAD5utqtcVAqTP3OjJ2fwcw978R/1fy21NJGtoe01V318LCiVLIfIEPOusiiLjDPofZqCdeMiBV+TztTV077MvwwlFXjn/MAkgrOD1qqoT+E8yUDtw9Pl/wHYiZOOwJyOZLzvLbwuj7+HzyxVkRygzZs9PwWhSur+InpG9nAJWEccYF5i9hJZ1XGggJTt2cDFAGPfxDtRTrCmCf2yjKjFTxQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:366d56b7225bb3a094fb31f8ff393b6a63adf21a07735d58df87c49b385b71cd",
      "output": {
        "digest_basis": "utf8-bytes-no-normalization",
        "html": "<h1 id=\"title\">Title</h1>\n<p>Hello <strong>world</strong>, see <a href=\"https://ainumbers.co\">docs</a>.</p>\n<ul><li>one</li><li>two</li></ul>\n<table><thead><tr><th>Col A</th><th>Col B</th></tr></thead><tbody><tr><td>1</td><td>2</td></tr></tbody></table>\n<pre><code class=\"language-js\">const x = 1;</code></pre>",
        "html_sha256": "c49cf9924398223cb01a5795ea60f6e702a54aac39baceef4be72219168ef4c6",
        "input_sha256": "28d294f76701db2241538a4179d6af0a20300b93c8f2f1e636ff572b03afbf04",
        "plain_text": "Title\n\nHello world, see docs.\n\n- one\n- two\n\nCol A\tCol B\n1\t2\n\nconst x = 1;",
        "plain_text_sha256": "11ae6f0d37921a9cc5dc2f546badfd051dc846a99825cc51c6814c35109c66b9",
        "stats": {
          "code_blocks": 1,
          "headings": 1,
          "links": 1,
          "tables": 1,
          "words": 19
        }
      }
    }
  },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    }
