AiModelReadResult ai.model-read-result@1

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

Version
1.0.0
Owner
ai
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/ai/model-read-result.v1.json

ai.model-read-result@1: response from GET /v1/models (a list) or GET /v1/models/:id (a single model).

Fields

This schema has no named fields.

Examples

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

Valid: list
{
  "models": [
    {
      "provider_key": "qwen",
      "model_key": "qwen3-9b-abliterated",
      "type": "chat",
      "status": "active",
      "cost": {
        "in_per_mtok": 3,
        "out_per_mtok": 15,
        "cached_per_mtok": 0.3
      },
      "supports": {
        "json": true,
        "tools": true,
        "streaming": true,
        "vision": false
      },
      "id": "qwen/qwen3-9b-abliterated:q4_k_m@3f2a1c9"
    }
  ],
  "count": 1,
  "cursor": null
}
Valid: single
{
  "provider_key": "qwen",
  "model_key": "qwen3-9b-abliterated",
  "type": "chat",
  "status": "active",
  "cost": {
    "in_per_mtok": 3,
    "out_per_mtok": 15,
    "cached_per_mtok": 0.3
  },
  "supports": {
    "json": true,
    "tools": true,
    "streaming": true,
    "vision": false
  },
  "id": "qwen/qwen3-9b-abliterated:q4_k_m@3f2a1c9",
  "availability": "available"
}
Rejected: bad-list
{
  "models": [
    {
      "provider_key": "qwen",
      "model_key": "qwen3-9b-abliterated",
      "type": "chat",
      "status": "active",
      "cost": {
        "in_per_mtok": 3,
        "out_per_mtok": 15,
        "cached_per_mtok": 0.3
      },
      "supports": {
        "json": true,
        "tools": true,
        "streaming": true,
        "vision": false
      },
      "retail_rate": {
        "input_nano_usd_per_m": 3000
      }
    }
  ],
  "count": 1,
  "cursor": null
}
Rejected: missing-required
{
  "provider_key": "qwen",
  "model_key": "qwen3-9b-abliterated",
  "type": "chat",
  "status": "active",
  "supports": {
    "json": true,
    "tools": true,
    "streaming": true,
    "vision": false
  },
  "id": "qwen/qwen3-9b-abliterated:q4_k_m@3f2a1c9"
}
Rejected: neither
{
  "cursor": null
}

Validate

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