AiTaskDefaultsV1 ai.task-defaults@1

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

Version
1.1.0
Owner
ai
Visibility
public
Status
active
Compatibility
backward
Decision
ADR-001
Schema
https://openvibe.network/contracts/ai/task-defaults.v1.json

The owner's default for one task (GET|PUT /api/v1/admin/task-defaults, owner or admin role): the choice signed out and signed in, an ordered list of fallbacks, the image model for image tasks, the search engines in order for search tasks, and a per-run cost ceiling in USD. A change is audited and reaches services within a minute.

Fields

FieldTypeRequiredDescriptionConstraints
signed_outai.choiceyes
signed_inai.choiceyes
fallbacksai.choiceyes
  • maxItems 10
image_modelone ofyes
search_enginesarray of objectyes
  • maxItems 10
  • items: no other fields
search_engines[].enginestringyes
  • pattern ^[a-z][a-z0-9_-]{0,39}$
search_engines[].enabledbooleanyes
max_cost_usdnumber | nullyes
  • minimum 0
  • maximum 1000
effortenumConcrete effort used when a request selects auto. Omitted uses the workflow default, then medium.
  • one of "low", "medium", "high", "max"

Examples

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

Valid: basic
{
  "signed_out": {
    "model": "openvibe/cheapest",
    "source": "openvibe"
  },
  "signed_in": {
    "model": "anthropic/claude-opus-5-5",
    "source": "openvibe"
  },
  "fallbacks": [],
  "image_model": null,
  "search_engines": [],
  "max_cost_usd": 0.5
}
Valid: effort
{
  "signed_out": {
    "model": "openvibe/cheapest",
    "source": "openvibe"
  },
  "signed_in": {
    "model": "anthropic/claude-opus-5-5",
    "source": "openvibe"
  },
  "fallbacks": [],
  "image_model": null,
  "search_engines": [],
  "max_cost_usd": 0.5,
  "effort": "high"
}
Rejected: basic
{
  "signed_out": {},
  "max_cost_usd": -1
}
Rejected: recursive-effort
{
  "signed_out": {
    "model": "openvibe/cheapest",
    "source": "openvibe"
  },
  "signed_in": {
    "model": "anthropic/claude-opus-5-5",
    "source": "openvibe"
  },
  "fallbacks": [],
  "image_model": null,
  "search_engines": [],
  "max_cost_usd": 0.5,
  "effort": "auto"
}

Validate

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