AiProvider ai.provider@1

Generated at from openvibe-contracts v0.53.0 and openvibe-sdk v0.11.0.

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

ai.provider@1: one model provider as OpenVibe.AI's registry API shows it (server/registry.js publicProvider): never a secret value, only the secret reference name (env:NAME) and whether it resolves (credentials), plus the circuit-breaker health.

Fields

FieldTypeRequiredDescriptionConstraints
keystringyes
  • pattern ^[a-z][a-z0-9_-]*(\.[a-z0-9_-]+)*$
display_namestring | null
kindenumyes
  • one of "stub", "openai", "anthropic", "http", "whisper"
statusenumyes
  • one of "active", "disabled"
base_urlstring | null
auth_modeenumyes
  • one of "none", "bearer", "x-api-key"
secret_refstring | nullenv:NAME, a reference; never the secret.
default_modelstring | null
capabilitiesarray of enumyes
  • items: one of "chat", "generate", "summarize", "classify", "extract", "enrich", "embed", "vision", "json", "transcribe"
timeout_msinteger | null
prioritynumber | null
metadataobject
originstring | null
created_atstring | null
updated_atstring | null
credentialsenumyes
  • one of "not_required", "configured", "missing"
healthobject | null

Examples

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

Valid: anthropic
{
  "key": "anthropic",
  "display_name": "Anthropic",
  "kind": "anthropic",
  "status": "active",
  "base_url": null,
  "auth_mode": "x-api-key",
  "secret_ref": "env:ANTHROPIC_API_KEY",
  "default_model": "claude-sonnet-4-5",
  "capabilities": [
    "chat",
    "generate",
    "summarize",
    "json"
  ],
  "timeout_ms": 30000,
  "priority": 10,
  "metadata": {},
  "origin": "admin",
  "created_at": "2026-09-20T10:00:00.000Z",
  "updated_at": "2026-09-25T18:00:00.000Z",
  "credentials": "configured",
  "health": {
    "provider_key": "anthropic",
    "state": "closed",
    "consecutive_failures": 0,
    "opened_at": null,
    "last_error": null
  }
}
Rejected: secret-in-credentials
{
  "key": "anthropic",
  "kind": "anthropic",
  "status": "active",
  "auth_mode": "x-api-key",
  "capabilities": [
    "chat"
  ],
  "credentials": "sk-ant-secret"
}

Validate

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