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
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
signed_out | ai.choice | yes | ||
signed_in | ai.choice | yes | ||
fallbacks | ai.choice | yes |
| |
image_model | one of | yes | ||
search_engines | array of object | yes |
| |
search_engines[].engine | string | yes |
| |
search_engines[].enabled | boolean | yes | ||
max_cost_usd | number | null | yes |
| |
effort | enum | Concrete effort used when a request selects auto. Omitted uses the workflow default, then medium. |
|
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 }] }