AiMePreferencesV1 ai.me-preferences@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/me-preferences.v1.json
ai.me-preferences@1 (OpenVibe.AI; L36 Y1/Y3): how one person's AI runs route, stored per person under GET/PUT /api/v1/me/ai/preferences. `only_my_keys` means exactly that: a failed or missing key is never quietly replaced by a paid route. `free_first` puts free tiers ahead of paid ones. `price_ceiling_usd_per_mtok` caps the network's paid fallback per million tokens; the person's own keys are never capped. Each default is a model id or `auto`.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
only_my_keys | boolean | yes | ||
free_first | boolean | yes | ||
price_ceiling_usd_per_mtok | number | null | yes |
| |
defaults | object | yes |
| |
defaults.text | https://openvibe.network/contracts/ai/me-preferences.v1.json#/$defs/modelChoice | yes | ||
defaults.code | https://openvibe.network/contracts/ai/me-preferences.v1.json#/$defs/modelChoice | yes | ||
defaults.vision | https://openvibe.network/contracts/ai/me-preferences.v1.json#/$defs/modelChoice | yes | ||
defaults.image | https://openvibe.network/contracts/ai/me-preferences.v1.json#/$defs/modelChoice | yes | ||
defaults.search | https://openvibe.network/contracts/ai/me-preferences.v1.json#/$defs/modelChoice | |||
updated_at | string | null |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: defaults
{
"only_my_keys": true,
"free_first": true,
"price_ceiling_usd_per_mtok": 5,
"defaults": {
"text": "auto",
"code": "claude-sonnet-5-5",
"vision": "auto",
"image": "auto"
},
"updated_at": "2026-10-31T09:00:00.000Z"
}Rejected: missing-image
{
"only_my_keys": false,
"free_first": false,
"price_ceiling_usd_per_mtok": null,
"defaults": {
"text": "auto",
"code": "auto",
"vision": "auto"
}
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('ai.me-preferences@1', value); // { valid, errors: [{ path, message }] }