VisionResultReadyPayload vision.result.ready@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/events/payloads/vision.result.ready.v1.json

vision.result.ready v1 (OpenVibe.Vision): a visual result is ready for its owner or caller. Envelope: source vision, subject { type: user, id: <requester> } (or { type: service, id: <caller> } when no person asked), visibility subject for a person and internal otherwise. The payload carries the identifiers, the engine and provenance, cost, latency and retention, never an image, a template or an answer text.

Fields

FieldTypeRequiredDescriptionConstraints
result_idstring | nullyes
  • pattern ^(vis|vuc|fme|ftg|fco)_[0-9A-HJKMNP-TV-Z]{26}$
taskenumyes
  • one of "ask", "describe", "identify", "count", "translate", "ocr", "compare", "alt", "find", "receipt", "product", "watch", "moments", "ui_check", "face_detect", "face_blur"
sourceenumyes
  • one of "upload", "url", "data", "html", "screenshot", "none"
modelstring | nullyes
providerstring | nullyes
routestring | nullyes
cost_usdnumberyes
  • minimum 0
latency_msintegeryes
  • minimum 0
confidencenumber | nullyes
retentionstringyes
  • maxLength 200
consent_idstring | nullyes
  • pattern ^fco_[0-9A-HJKMNP-TV-Z]{26}$
created_atstringyes
  • format date-time

Examples

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

Valid: one
{
  "result_id": "vis_01J8Z3Q4R5S6T7V8W9X0Y1Z2A4",
  "task": "ask",
  "source": "upload",
  "model": "gpt-4o-mini",
  "provider": "openai",
  "route": "ai.fast",
  "cost_usd": 0.0002,
  "latency_ms": 900,
  "confidence": null,
  "retention": "not stored",
  "consent_id": null,
  "created_at": "2026-10-29T10:00:00.000Z"
}
Rejected: one
{
  "result_id": "vis_01J8Z3Q4R5S6T7V8W9X0Y1Z2A4",
  "task": "look",
  "source": "upload",
  "model": null,
  "provider": null,
  "route": null,
  "cost_usd": 0,
  "latency_ms": 0,
  "confidence": null,
  "retention": "x",
  "consent_id": null,
  "created_at": "2026-10-29T10:00:00.000Z"
}

Validate

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