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
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
key | string | yes |
| |
display_name | string | null | |||
kind | enum | yes |
| |
status | enum | yes |
| |
base_url | string | null | |||
auth_mode | enum | yes |
| |
secret_ref | string | null | env:NAME, a reference; never the secret. | ||
default_model | string | null | |||
capabilities | array of enum | yes |
| |
timeout_ms | integer | null | |||
priority | number | null | |||
metadata | object | |||
origin | string | null | |||
created_at | string | null | |||
updated_at | string | null | |||
credentials | enum | yes |
| |
health | object | 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 }] }