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

FieldTypeRequiredDescriptionConstraints
only_my_keysbooleanyes
free_firstbooleanyes
price_ceiling_usd_per_mtoknumber | nullyes
  • minimum 0
  • maximum 1000
defaultsobjectyes
  • no other fields
defaults.texthttps://openvibe.network/contracts/ai/me-preferences.v1.json#/$defs/modelChoiceyes
defaults.codehttps://openvibe.network/contracts/ai/me-preferences.v1.json#/$defs/modelChoiceyes
defaults.visionhttps://openvibe.network/contracts/ai/me-preferences.v1.json#/$defs/modelChoiceyes
defaults.imagehttps://openvibe.network/contracts/ai/me-preferences.v1.json#/$defs/modelChoiceyes
defaults.searchhttps://openvibe.network/contracts/ai/me-preferences.v1.json#/$defs/modelChoice
updated_atstring | null
  • format date-time

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 }] }