AiModelDirectoryEntry ai.model-directory-entry@1

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

Version
1.0.0
Owner
ai
Visibility
public
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/ai/model-directory-entry.v1.json

ai.model-directory-entry@1: one public model, including provider-listed models with routing off and sourced pre-list sightings. Spotted never means available.

Fields

FieldTypeRequiredDescriptionConstraints
idstringyes
  • minLength 3
  • maxLength 256
providerstringyes
  • minLength 1
provider_namestring | null
modelstringyes
  • minLength 1
namestringyes
  • minLength 1
familystring | null
versionstring | null
statusenumyes
  • one of "available", "preview", "spotted", "retired"
routing_enabledbooleanyes
context_windowinteger | null
  • minimum 0
max_outputinteger | null
  • minimum 0
typestring
modalitiesarray of string
priceobject
price.input_per_millionnumber | null
  • minimum 0
price.output_per_millionnumber | null
  • minimum 0
price.cached_per_millionnumber | null
  • minimum 0
price.sourcestring | null
  • format uri
price.checked_atstring | null
sourcestring | null
  • format uri
sourcesarray of object
sources[].urlstringyes
  • format uri
sources[].observed_atstringyes
sources[].published_atstring
first_seen_atstring | null
updated_atstring | null
retired_atstring | null

Examples

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

Valid: spotted
{
  "id": "arena/anonymous-silver",
  "provider": "arena",
  "model": "anonymous-silver",
  "name": "anonymous-silver",
  "status": "spotted",
  "routing_enabled": false,
  "sources": [
    {
      "url": "https://lmarena.ai/leaderboard/text",
      "observed_at": "2026-11-11T00:00:00Z"
    }
  ]
}
Rejected: spotted-routable
{
  "id": "arena/anonymous-silver",
  "provider": "arena",
  "model": "anonymous-silver",
  "name": "anonymous-silver",
  "status": "spotted",
  "routing_enabled": true
}

Validate

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