AiDefinitionVersionRequest ai.definition-version-request@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/definition-version-request.v1.json

ai.definition-version-request@1: bodies of ai.workflow.manage on OpenVibe.AI. An edit is always a new version (the previous one stays readable); fields left out are taken from the newest existing version. POST /api/v1/templates/:key/versions: a prompt template (input_schema and output_schema must compile as JSON Schema; visibility public, first-party or internal). POST /api/v1/workflows/:key/versions (key <namespace>.<name>): steps (at least one; kind llm (naming an existing template), passthrough, transcribe or embed), schemas, default route, cache mode. POST /api/v1/routes/:key/versions: primary { provider, model } and fallbacks (every provider must exist), or alias_of another route. POST …/:key/versions/:version/status: { status } (templates and workflows draft|active|deprecated|archived; routes active|disabled). Refusals are 422 ai.invalid.

Fields

This schema has no named fields.

Examples

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

Valid: route
{
  "primary": {
    "provider": "anthropic",
    "model": "claude-sonnet-4-5"
  },
  "fallbacks": [
    {
      "provider": "openai",
      "model": "gpt-4.1-mini"
    }
  ],
  "response_format": "json"
}
Valid: template
{
  "name": "Clip title",
  "system_prompt": "You title stream clips.",
  "user_prompt": "Transcript: {{transcript}}",
  "input_schema": {
    "type": "object",
    "required": [
      "transcript"
    ]
  },
  "output_schema": {
    "type": "object",
    "required": [
      "title"
    ]
  },
  "visibility": "first-party",
  "status": "draft"
}
Valid: workflow
{
  "steps": [
    {
      "kind": "llm",
      "template": "live.clip_title"
    }
  ],
  "cache_mode": "service",
  "cache_ttl_sec": 86400
}
Rejected: unknown-status
{
  "status": "live"
}

Validate

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