VisionUiCheckResult vision.ui-check-result@1

Generated at from openvibe-contracts v0.419.0 and openvibe-sdk v0.161.0.

Version
1.0.0
Owner
vision
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/vision/ui-check-result.v1.json

vision.ui-check-result@1: the answer of POST /api/v1/ui-check and GET /api/v1/ui-checks/:id on OpenVibe.Vision. `check` names the engine that ran (static HTML/CSS or a screenshot through OCR boxes and pixels), the viewport, every finding with its stable kind and severity, and the summary the saved row keeps. No image bytes are returned; a screenshot is identified only by its sha256.

Fields

FieldTypeRequiredDescriptionConstraints
checkobjectyes
  • no other fields
check.idstringyes
  • pattern ^vuc_[0-9A-HJKMNP-TV-Z]{26}$
check.sourceenumyes
  • one of "html", "url", "screenshot"
check.urlstring | null
  • format uri
check.image_sha256string | null
  • pattern ^[0-9a-f]{64}$
check.viewportobjectyes
  • no other fields
check.viewport.wintegeryes
  • minimum 160
  • maximum 10000
check.viewport.hintegeryes
  • minimum 160
  • maximum 10000
check.engineenumyes
  • one of "static-html", "screenshot"
check.findingsarray of objectyes
  • items: no other fields
check.findings[].kindenumyes
  • one of "overflow", "cut_off", "contrast", "overlap", "layering"
check.findings[].severityenumyes
  • one of "high", "medium", "low"
check.findings[].selectorstringyes
check.findings[].detailstringyes
check.findings[].evidenceobject
check.summaryobject
check.countsobject
check.severityobject
check.warningsarray of string
check.summary_textstring
check.created_atstringyes
  • format date-time

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: overflow
{
  "check": {
    "id": "vuc_01JAB2C3D4E5F6G7H8J9K0MNPQ",
    "source": "html",
    "url": null,
    "image_sha256": null,
    "viewport": {
      "w": 390,
      "h": 844
    },
    "engine": "static-html",
    "findings": [
      {
        "kind": "overflow",
        "severity": "medium",
        "selector": "div.card",
        "detail": "the box is 1400px wide and reaches 1400px in a 390px viewport",
        "evidence": {
          "width": 1400,
          "right": 1400,
          "viewport": 390
        }
      }
    ],
    "summary": {
      "ok": false,
      "engine": "static-html",
      "source": "html",
      "viewport": {
        "w": 390,
        "h": 844
      },
      "counts": {
        "overflow": 1
      },
      "severity": {
        "high": 0,
        "medium": 1,
        "low": 0
      },
      "findings": 1,
      "summary": "1 UI fault found (1 overflow)",
      "warnings": []
    },
    "counts": {
      "overflow": 1
    },
    "severity": {
      "high": 0,
      "medium": 1,
      "low": 0
    },
    "warnings": [],
    "summary_text": "1 UI fault found (1 overflow)",
    "created_at": "2026-10-28T12:00:00.000Z"
  }
}
Rejected: missing-fields
{
  "check": {
    "id": "not-a-check"
  }
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('vision.ui-check-result@1', value);   // { valid, errors: [{ path, message }] }