{
  "tool_id": "art-597-c2pa-aiml-assertion-decoder",
  "tool_version": "1.0.0",
  "display_name": "C2PA AI/ML Assertion Decoder",
  "mcp_name": "decode_c2pa_aiml_assertions",
  "mandate_type": "compliance_control",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-597-c2pa-aiml-assertion-decoder.html",
  "description": "Decodes AI/ML provenance assertions off a C2PA manifest's assertion array: ALL entries in every c2pa.actions/c2pa.actions.v2 assertion (a manifest can carry a created -> edited -> published history; this reads the whole chain, not just the first action, generalizing beyond art-361's single-action IDV-scoped read), the full IPTC digitalsourcetype NewsCodes vocabulary (raw code always surfaced, an unrecognized code is never silently dropped -- it lands in unrecognized_source_types), and c2pa.ai_training / c2pa.ai_generative_training training-and-data-mining opt-out assertions (training_mining_opt_out: true/false/not_asserted, read only from an explicit boolean, never inferred). Reports assertions only -- never adjudicates whether an assertion is true, and absence of an AI/ML assertion means nothing (not evidence of human authorship, not proof of AI generation). Reuses art-123's assertion-array input shape as a sibling stage; zero edits to art-123 or art-361. Zero network calls, zero PII.",
  "input_schema_ref": "chaingraph/art-597-c2pa-aiml-assertion-decoder.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:d620138d5260a51255c0c89c76d6ae0e99a18d4a396f6b5443ca9aff00e2bd6e",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-13"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "L6IUpGV+YgGCpxQK/UxcUv74dN6PneV4jaE9quUgIeESZPlgMMUScr1+pyopk+ZUiACOmFaBmDYNzkY82MEJGBvT43THt9E8aueUDA7ofgpVqYspVNcKOVO0c09KcMoRKZ3s+j5MPBbgS5RsfL3bcfEX4iz+ZoqdZvXgr9oWZnIsXs0ahF7ECZMZ0hpXEkx//Y8cgj/x6sw+PFyWWTJe8iXx4fKyPDVHVCU1QFa2KIveWJSY/kNFhT2xtGlBjA4kFobcr6u3Ndlbb+kjQWzG4cJ5bvpg9RRklHnhkEFaEqIk19FvJ2l4r3fQxoUKcumX/gKe0KiLIxfgChwJ2ZChnA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:d620138d5260a51255c0c89c76d6ae0e99a18d4a396f6b5443ca9aff00e2bd6e",
      "output": {
        "actions": [
          {
            "action": "c2pa.created",
            "digital_source_type": "http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture",
            "software_agent": "Pixel Camera App 3.2",
            "when": "2026-08-01T10:00:00Z"
          },
          {
            "action": "c2pa.edited",
            "digital_source_type": "http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture",
            "software_agent": "Adobe Photoshop 26.0",
            "when": "2026-08-01T11:00:00Z"
          },
          {
            "action": "c2pa.published",
            "digital_source_type": "http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture",
            "software_agent": "Adobe Photoshop 26.0",
            "when": "2026-08-01T12:00:00Z"
          }
        ],
        "digital_source_type_summary": [
          "http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture"
        ],
        "note": "Reports assertions as declared by the manifest generator only -- never adjudicated. Absence of an AI/ML assertion means nothing: it is never evidence of human authorship, and its presence is never proof of AI generation. Assertions only, not a trust-chain or signature claim.",
        "training_mining_opt_out": "not_asserted",
        "unrecognized_source_types": []
      }
    }
  }
}
