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
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
result_id | string | null | yes |
| |
task | enum | yes |
| |
source | enum | yes |
| |
model | string | null | yes | ||
provider | string | null | yes | ||
route | string | null | yes | ||
cost_usd | number | yes |
| |
latency_ms | integer | yes |
| |
confidence | number | null | yes | ||
retention | string | yes |
| |
consent_id | string | null | yes |
| |
created_at | string | yes |
|
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 }] }