{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/vertesiahq/main/json-schema/vertesiahq-agent-run-schema.json",
  "title": "AgentRun",
  "description": "AgentRun — the client-facing stable identity for a running or completed agent.\n\nAll operations use `id` as the sole identifier. Temporal workflow internals are never exposed to clients.",
  "x-generated": "2026-10-22",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/vertesia-openapi.json#/components/schemas/AgentRun",
  "type": "object",
  "properties": {
    "interaction": {
      "type": "string",
      "description": "Interaction ID or code (e.g. \"sys:generic_question\")."
    },
    "data": {
      "type": "object",
      "additionalProperties": true,
      "description": "Input parameters, typed per interaction"
    },
    "config": {
      "$ref": "#/$defs/InteractionExecutionConfiguration",
      "description": "Execution configuration (environment, model, model_options, etc.)"
    },
    "interactive": {
      "type": "boolean",
      "description": "Whether the agent accepts user input"
    },
    "tool_approval_mode": {
      "$ref": "#/$defs/AgentToolApprovalMode",
      "description": "How side-effecting tool actions are approved for interactive runs."
    },
    "tool_names": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tools configured for this run (+/- syntax supported)"
    },
    "initial_skills": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Builtin system skills activated before the first model turn."
    },
    "initial_tool_calls": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/InitialToolCall"
      },
      "description": "Ordered, bounded hydration/read calls executed before the first model turn."
    },
    "excluded_tools": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Hard denylist of tool names: never exposed to the model, refused at execution time."
    },
    "collection_id": {
      "type": "string",
      "description": "Scoped collection (if any)"
    },
    "disabled_mcp_collections": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Denylist of MCP tool-collection ids deactivated for this run. `undefined`/empty means all installed/connected MCP collections are active (back-compat, and new servers stay active by default). Listed collections are excluded even if connected."
    },
    "content_type": {
      "$ref": "#/$defs/ContentObjectTypeRef",
      "description": "Content type linked to this run — defines the schema for `properties`"
    },
    "visibility": {
      "$ref": "#/$defs/ConversationVisibility",
      "description": "Conversation/process visibility"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "User-defined or system tags for categorization"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Categories for organizing runs"
    },
    "properties": {
      "type": "object",
      "additionalProperties": true,
      "description": "Business metadata — typed by the linked content_type schema"
    },
    "source": {
      "$ref": "#/$defs/RunSource",
      "description": "How the run was started"
    },
    "schedule_id": {
      "type": "string",
      "description": "Schedule ID — set when this run was triggered by a Temporal schedule"
    },
    "source_type": {
      "$ref": "#/$defs/AgentRunType",
      "description": "Replacement for legacy AgentRun.type"
    },
    "type": {
      "deprecated": true,
      "x-deprecated-message": "Use source_type for creation source and run_type for runtime mode.",
      "$ref": "#/$defs/AgentRunType",
      "description": "Deprecated: Use source_type for creation source and run_type for runtime mode."
    },
    "id": {
      "type": "string",
      "description": "The stable identifier used by all client code"
    },
    "run_kind": {
      "type": "string",
      "const": "agent",
      "description": "Internal discriminator key"
    },
    "parent_run_id": {
      "type": "string",
      "description": "Process run this agent belongs to — set when a process agent node recorded this run. Its conversation lives on the parent run under `workstream_id`."
    },
    "workstream_id": {
      "type": "string",
      "description": "Workstream this run occupies inside its parent run (the process node id)."
    },
    "run_type": {
      "type": "string",
      "const": "autonomous",
      "description": "Public-facing runtime mode"
    },
    "account": {
      "type": "string",
      "description": "Account ID"
    },
    "project": {
      "type": "string",
      "description": "Project ID"
    },
    "workflow_id": {
      "type": "string",
      "description": "Temporal workflow ID (stable across continueAsNew)"
    },
    "first_workflow_run_id": {
      "type": "string",
      "description": "First Temporal workflow run ID (used for Redis channel and artifact resolution)"
    },
    "artifacts_path": {
      "type": "string",
      "description": "Artifact storage path for this run"
    },
    "status": {
      "$ref": "#/$defs/AgentRunStatus",
      "description": "Current status of the agent run"
    },
    "activity_state": {
      "$ref": "#/$defs/ConversationActivityState",
      "description": "Whether the agent is currently working or idle (waiting for user input)"
    },
    "started_by": {
      "type": "string",
      "description": "User or service that initiated the run"
    },
    "started_at": {
      "type": "string",
      "format": "date-time",
      "description": "When the run started"
    },
    "completed_at": {
      "type": "string",
      "format": "date-time",
      "description": "When the run completed (or failed/cancelled)"
    },
    "title": {
      "type": "string",
      "description": "Conversation title (short, human-readable)"
    },
    "event_subscription_id": {
      "type": "string",
      "description": "Event subscription ID — set when this run was triggered by the event bus."
    },
    "event_ref": {
      "$ref": "#/$defs/EventRef",
      "description": "Event reference — set when this run was triggered by the event bus."
    },
    "archive_state": {
      "$ref": "#/$defs/AgentRunArchiveState",
      "description": "Archive lifecycle state"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the document was created"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the document was last updated"
    },
    "interaction_name": {
      "type": "string",
      "description": "Human-readable interaction name"
    },
    "interactionRef": {
      "$ref": "#/$defs/InteractionRef"
    },
    "environmentRef": {
      "$ref": "#/$defs/ResourceRef",
      "description": "Resolved environment reference (name resolved from `config.environment` id). Populated by the list endpoint; may be absent on other endpoints or when the id cannot be resolved, in which case consumers should fall back to `config.environment`."
    },
    "topic": {
      "type": "string",
      "description": "Conversation topic (longer description from topic analysis)"
    },
    "generate_topic": {
      "type": "boolean",
      "description": "Whether automatic conversation title/topic generation is enabled for this run."
    },
    "generate_lessons": {
      "type": "boolean",
      "description": "Whether automatic lessons generation is enabled for this run."
    },
    "lessons_learned": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Lessons learned from the conversation (extracted at completion)"
    },
    "evaluate": {
      "type": "boolean",
      "description": "Request LLM evaluation when the project evaluation policy is opt_in. Defaults to false. Cannot override disabled or opt out of always_on."
    },
    "evaluation": {
      "$ref": "#/$defs/AgentRunEvaluation",
      "description": "Evaluation summary of the run."
    },
    "feedback": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/AgentRunFeedbackEntry"
      },
      "description": "Retained user ratings on the run."
    },
    "archived_at": {
      "type": "string",
      "format": "date-time",
      "description": "When the last successful archive completed"
    },
    "archive_version": {
      "type": "number",
      "description": "Archive format version (for forward compatibility)"
    },
    "last_archive_error": {
      "type": "string",
      "description": "Last archive error message (when archive_state === 'failed')"
    },
    "forked_from": {
      "type": "string",
      "description": "Source agent run ID when this run was forked (enables message history chaining)"
    }
  },
  "required": [
    "interaction",
    "id",
    "run_kind",
    "run_type",
    "account",
    "project",
    "status",
    "started_by",
    "started_at",
    "created_at",
    "updated_at",
    "interactionRef"
  ],
  "additionalProperties": false,
  "$defs": {
    "AgentBudgetConfiguration": {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "token",
            "dollar"
          ],
          "description": "Run budget mode. An omitted mode preserves weighted-token budgeting."
        },
        "limit_usd": {
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 9007199.25474099,
          "description": "Soft USD allowance for priced model calls; dollar mode also requires limit_tokens for unpriced calls."
        },
        "reminder_at_remaining_fractions": {
          "type": "array",
          "items": {
            "type": "number",
            "exclusiveMinimum": 0,
            "exclusiveMaximum": 1
          }
        },
        "limit_tokens": {
          "type": "number",
          "description": "Weighted token budget shared by the run and every subagent workstream it launches. When the run and its workstreams together use this many weighted tokens, the agent gets one final turn without tools to summarize its work, and the run ends. This is a soft limit, not a spending cap: workstreams running concurrently and the final summary turns can go over it. Unset or <=0 means no budget."
        },
        "reminder_at_remaining_tokens": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "Remaining-budget thresholds, in weighted tokens, at which the agent is told how much budget is left. Each threshold is delivered once per context window (again after a checkpoint). Values outside (0, limit_tokens) are ignored. Unset means reminders at 25% and 10% remaining."
        },
        "output_token_weight": {
          "type": "number",
          "minimum": 0,
          "description": "Weight applied to output tokens, reasoning included, when charging the budget. Default 5."
        },
        "input_token_weight": {
          "type": "number",
          "minimum": 0,
          "description": "Weight applied to input tokens not read from the prompt cache. Default 1."
        },
        "cached_input_token_weight": {
          "type": "number",
          "minimum": 0,
          "description": "Weight applied to input tokens read from the prompt cache. Default 0.1, so a long conversation that mostly re-reads cached context is charged a tenth of the uncached rate for it."
        }
      },
      "additionalProperties": false,
      "description": "Weighted token budget for an agent run and its subagent workstreams. A call is charged output × output_token_weight + uncached input × input_token_weight + cached input × cached_input_token_weight."
    },
    "AgentCheckpointConfiguration": {
      "type": "object",
      "properties": {
        "context_threshold": {
          "type": "number",
          "description": "Fraction of the model's context window to use before the conversation is summarized and compacted (0-1, e.g. 0.95). Model-independent: applies to whatever model each run uses. Setting it replaces the default hard cap — a project asking for 0.95 of a 1M-window model checkpoints at 950k. Clamped at runtime to 0.95 so the prompt still fits."
        },
        "max_tokens": {
          "type": "number",
          "description": "Absolute hard cap in tokens, regardless of the window fraction. Alone it acts as the threshold; combined with context_threshold the lower of the two wins. Clamped at runtime to 95% of the model's window. Unset means the default cap (500k), or no cap beyond the 95% clamp when context_threshold is set."
        }
      },
      "additionalProperties": false
    },
    "AgentRunArchiveState": {
      "type": "string",
      "enum": [
        "none",
        "pending",
        "archiving",
        "complete",
        "failed"
      ],
      "description": "Archive lifecycle state for an agent run.\n\n- `none`:      No archive exists (default)\n- `pending`:   Terminal status recorded; archive workflow triggered\n- `archiving`: Archive workflow is running\n- `complete`:  Archive stored in GCS successfully\n- `failed`:    Archive attempt failed (see `last_archive_error`)"
    },
    "AgentRunContradictionReason": {
      "type": "string",
      "enum": [
        "feedback_down_on_clean_run",
        "evaluation_failure_on_clean_run"
      ]
    },
    "AgentRunEvaluation": {
      "type": "object",
      "properties": {
        "rev": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Bumped on every change to any part of the summary."
        },
        "rollup": {
          "$ref": "#/$defs/AgentRunEvaluationRollup"
        },
        "feedback_counts": {
          "$ref": "#/$defs/AgentRunFeedbackCounts"
        },
        "llm_evaluation": {
          "$ref": "#/$defs/AgentRunLlmEvaluationResult"
        },
        "severity": {
          "$ref": "#/$defs/EvaluationSeverity"
        },
        "flags": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TurnEvaluationFlag"
          }
        },
        "contradicted": {
          "type": "boolean"
        },
        "contradiction_reasons": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AgentRunContradictionReason"
          }
        },
        "deployment_env": {
          "type": "string"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "rev",
        "severity",
        "flags",
        "contradicted",
        "updated_at"
      ],
      "additionalProperties": false,
      "description": "Evaluation summary of an agent run."
    },
    "AgentRunEvaluationRollup": {
      "type": "object",
      "properties": {
        "seq": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991,
          "description": "Monotonic per run; the server ignores a rollup older than the one it holds."
        },
        "detector_version": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "turns": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "severity": {
          "$ref": "#/$defs/EvaluationSeverity"
        },
        "flags": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TurnEvaluationFlag"
          }
        },
        "worst_turn_seq": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "last_terminal_type": {
          "$ref": "#/$defs/TurnTerminalType"
        },
        "terminal_error_class": {
          "type": "string"
        },
        "partial": {
          "type": "boolean"
        },
        "totals": {
          "type": "object",
          "properties": {
            "tool_calls": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "error_tool_results": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "unrecovered_tools": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "llm_calls": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "prompt_tokens": {
              "type": "number"
            },
            "completion_tokens": {
              "type": "number"
            },
            "cached_tokens": {
              "type": "number"
            },
            "retry_completion_tokens": {
              "type": "number"
            },
            "active_ms": {
              "type": "number"
            },
            "ask_user_wait_ms": {
              "type": "number"
            },
            "approval_wait_ms": {
              "type": "number"
            },
            "followups": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "approvals_requested": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "approvals_denied": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "stop_requests": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "stall_trips": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "tool_calls",
            "error_tool_results",
            "unrecovered_tools",
            "llm_calls",
            "prompt_tokens",
            "completion_tokens",
            "cached_tokens",
            "retry_completion_tokens",
            "active_ms",
            "ask_user_wait_ms",
            "approval_wait_ms",
            "followups",
            "approvals_requested",
            "approvals_denied",
            "stop_requests"
          ],
          "additionalProperties": false
        },
        "updated_at": {
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "seq",
        "detector_version",
        "turns",
        "severity",
        "flags",
        "totals",
        "updated_at"
      ],
      "additionalProperties": false,
      "description": "Fold of the turn evaluations of a run."
    },
    "AgentRunFeedbackCounts": {
      "type": "object",
      "properties": {
        "up": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "down": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "last_rating": {
          "$ref": "#/$defs/AgentRunFeedbackRating"
        },
        "last_reason_code": {
          "$ref": "#/$defs/AgentRunFeedbackReasonCode"
        }
      },
      "required": [
        "up",
        "down"
      ],
      "additionalProperties": false,
      "description": "Ratings over the retained feedback entries, one vote per rater: a user who rated the run and one of its answers counts once, by their latest rating."
    },
    "AgentRunFeedbackEntry": {
      "type": "object",
      "properties": {
        "feedback_id": {
          "type": "string"
        },
        "rating": {
          "$ref": "#/$defs/AgentRunFeedbackRating"
        },
        "reason_code": {
          "$ref": "#/$defs/AgentRunFeedbackReasonCode"
        },
        "comment": {
          "type": "string"
        },
        "message_id": {
          "type": "string"
        },
        "message_seq": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "message_scoped": {
          "type": "boolean"
        },
        "user_id": {
          "type": "string"
        },
        "rated_at": {
          "type": "string",
          "format": "date-time"
        },
        "replaced_at": {
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "feedback_id",
        "rating",
        "message_scoped",
        "user_id",
        "rated_at"
      ],
      "additionalProperties": false,
      "description": "One recorded rating on an agent run."
    },
    "AgentRunFeedbackRating": {
      "type": "string",
      "enum": [
        "up",
        "down"
      ],
      "description": "Thumbs up or thumbs down on an agent run."
    },
    "AgentRunFeedbackReasonCode": {
      "type": "string",
      "enum": [
        "accurate",
        "helpful",
        "fast",
        "well_explained",
        "wrong_result",
        "incomplete",
        "misunderstood_request",
        "too_slow",
        "tool_failure",
        "unsafe_action",
        "other"
      ],
      "description": "Why the run was rated the way it was."
    },
    "AgentRunLlmEvaluationResult": {
      "type": "object",
      "properties": {
        "rev": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "gate": {
          "$ref": "#/$defs/EvaluationGateReason"
        },
        "sample_rate": {
          "type": "number"
        },
        "selected_probability": {
          "type": "number"
        },
        "outcome": {
          "$ref": "#/$defs/EvaluationOutcome"
        },
        "verdict": {
          "$ref": "#/$defs/EvaluationVerdict"
        },
        "score": {
          "type": "number"
        },
        "model": {
          "type": "string"
        },
        "prompt_version": {
          "type": "string"
        },
        "turns_evaluated": {
          "type": "array",
          "items": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "evaluated_at": {
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "rev",
        "gate",
        "sample_rate",
        "selected_probability",
        "outcome",
        "prompt_version",
        "evaluated_at"
      ],
      "additionalProperties": false,
      "description": "Latest LLM evaluation result for a run."
    },
    "AgentRunStatus": {
      "type": "string",
      "enum": [
        "created",
        "running",
        "completed",
        "failed",
        "cancelled"
      ],
      "description": "Status of an agent run through its lifecycle."
    },
    "AgentRunType": {
      "type": "string",
      "enum": [
        "api",
        "schedule",
        "event_subscription"
      ],
      "description": "How the agent run was created."
    },
    "AgentRunnerOptions": {
      "type": "object",
      "properties": {
        "is_agent": {
          "type": "boolean",
          "description": "Whether this interaction is an agent (executable in Agent Runner)."
        },
        "is_tool": {
          "type": "boolean",
          "description": "Whether this interaction is available as a tool (sub-agent)."
        },
        "is_skill": {
          "type": "boolean",
          "description": "Whether this interaction is a skill (provides instructions without execution). Skills are injected into the agent's context based on context_triggers."
        },
        "context_triggers": {
          "$ref": "#/$defs/SkillContextTriggers",
          "description": "Context triggers for auto-injection of this skill. Only used when is_skill is true."
        },
        "skill_priority": {
          "type": "number",
          "description": "Injection priority for skills (higher = more likely to be selected when multiple match). Only used when is_skill is true."
        },
        "tool_names": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Array of default tool names available to this agent. For interactions: defines default tools. For execution payloads: you can use + and - to add or remove from default, if no sign, then list replaces default."
        },
        "search_scope": {
          "$ref": "#/$defs/AgentSearchScope",
          "description": "On which scope should the search be applied by the search_tool. Only supports 'collection' scope or undefined for now."
        },
        "collection_id": {
          "type": "string",
          "description": "The ID of the collection to restrict agent operations to. When specified, the agent's search and retrieval operations are limited to documents within this collection'."
        },
        "request_template": {
          "type": "string",
          "description": "Optional user-facing template for rendering run input as the first conversation entry. Supports {{field_name}}, {{nested.field}}, {{items.0.name}}, and {{json}} placeholders resolved from the run data."
        },
        "checkpoint": {
          "$ref": "#/$defs/AgentCheckpointConfiguration",
          "description": "Per-agent context checkpoint configuration. Field-wise it overrides the project's `configuration.agent.checkpoint`; a per-run `checkpoint_tokens` override still wins over both."
        },
        "budget": {
          "$ref": "#/$defs/AgentBudgetConfiguration",
          "description": "Per-agent token budget. Field-wise it overrides the project's `configuration.agent.budget`; the per-run `budget` wins over both."
        }
      },
      "additionalProperties": false,
      "description": "Configuration options for Agent Runner functionality. These options control how interactions are exposed and executed in the Agent Runner."
    },
    "AgentSearchScope": {
      "type": "string",
      "const": "collection",
      "description": "Defines the scope for agent search operations."
    },
    "AgentToolApprovalMode": {
      "type": "string",
      "enum": [
        "ask",
        "auto_review",
        "full_control"
      ]
    },
    "AnthropicClaudeOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "anthropic-claude"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "top_k": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "effort": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high",
            "xhigh",
            "max"
          ]
        },
        "thinking_mode": {
          "type": "string",
          "enum": [
            "adaptive",
            "between_tools"
          ],
          "description": "Thinking mode override. Sonnet 5.5 supports between_tools at low, medium, or high effort. It omits display and budget fields; keep effort fixed during the conversation. When unset, existing model-specific thinking behavior is preserved."
        },
        "thinking_budget_tokens": {
          "type": "number"
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "cache_enabled": {
          "type": "boolean"
        },
        "cache_ttl": {
          "type": "string",
          "enum": [
            "5m",
            "1h"
          ]
        },
        "speed": {
          "type": "string",
          "enum": [
            "standard",
            "fast"
          ]
        }
      },
      "additionalProperties": false
    },
    "AzureFoundryChatOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "azure-foundry-chat"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "frequency_penalty": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "seed": {
          "type": "number"
        },
        "image_detail": {
          "type": "string",
          "enum": [
            "low",
            "high",
            "auto"
          ]
        },
        "include_thoughts": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "BedrockAI21Options": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-ai21"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "frequency_penalty": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "BedrockClaudeOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-claude"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "top_k": {
          "type": "number"
        },
        "thinking_mode": {
          "type": "string",
          "enum": [
            "adaptive",
            "between_tools"
          ],
          "description": "Thinking mode override. Sonnet 5.5 supports between_tools at low, medium, or high effort. It omits display and budget fields; keep effort fixed during the conversation. When unset, existing model-specific thinking behavior is preserved."
        },
        "thinking_budget_tokens": {
          "type": "number"
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "effort": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high",
            "xhigh",
            "max"
          ]
        },
        "cache_enabled": {
          "type": "boolean"
        },
        "cache_ttl": {
          "type": "string",
          "enum": [
            "5m",
            "1h"
          ]
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "BedrockCohereCommandOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-cohere-command"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "top_k": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "frequency_penalty": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "BedrockConverseOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-converse"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "effort": {
          "$ref": "#/$defs/ReasoningEffort"
        },
        "reasoning_effort": {
          "$ref": "#/$defs/ReasoningEffort"
        },
        "verbosity": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high"
          ]
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "BedrockGptOssOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-gpt-oss"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "reasoning_effort": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high"
          ]
        },
        "frequency_penalty": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "BedrockMantleChatCompletionsOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-mantle-chat-completions"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "effort": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high"
          ]
        },
        "reasoning_effort": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high"
          ]
        },
        "include_thoughts": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "BedrockMantleClaudeOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-mantle-claude"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "top_k": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "effort": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high",
            "xhigh",
            "max"
          ]
        },
        "thinking_mode": {
          "type": "string",
          "enum": [
            "adaptive",
            "between_tools"
          ],
          "description": "Thinking mode override. Sonnet 5.5 supports between_tools at low, medium, or high effort. It omits display and budget fields; keep effort fixed during the conversation. When unset, existing model-specific thinking behavior is preserved."
        },
        "thinking_budget_tokens": {
          "type": "number"
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "cache_enabled": {
          "type": "boolean"
        },
        "cache_ttl": {
          "type": "string",
          "enum": [
            "5m",
            "1h"
          ]
        }
      },
      "additionalProperties": false
    },
    "BedrockMantleResponsesOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-mantle-responses"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "effort": {
          "type": "string",
          "enum": [
            "none",
            "low",
            "medium",
            "high",
            "xhigh",
            "max"
          ]
        },
        "reasoning_effort": {
          "type": "string",
          "enum": [
            "none",
            "low",
            "medium",
            "high",
            "xhigh",
            "max"
          ]
        },
        "verbosity": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high"
          ]
        },
        "image_detail": {
          "type": "string",
          "enum": [
            "low",
            "high",
            "auto"
          ]
        },
        "include_thoughts": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "BedrockMistralOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-mistral"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "top_k": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "BedrockNovaOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-nova"
        },
        "effort": {
          "$ref": "#/$defs/ReasoningEffort"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "top_k": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "BedrockPalmyraOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-palmyra"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "min_tokens": {
          "type": "number"
        },
        "seed": {
          "type": "number"
        },
        "frequency_penalty": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "ConfigModes": {
      "type": "string",
      "enum": [
        "RUN_AND_INTERACTION_CONFIG",
        "RUN_CONFIG_ONLY",
        "INTERACTION_CONFIG_ONLY"
      ]
    },
    "ContentObjectTypeRef": {
      "oneOf": [
        {
          "$ref": "#/$defs/StoredTypeRef"
        },
        {
          "$ref": "#/$defs/InCodeTypeRef"
        }
      ],
      "type": "object",
      "required": [
        "ref_type"
      ]
    },
    "ConversationActivityState": {
      "type": "string",
      "enum": [
        "working",
        "idle"
      ]
    },
    "ConversationVisibility": {
      "type": "string",
      "enum": [
        "private",
        "project"
      ]
    },
    "EvaluationGateReason": {
      "type": "string",
      "enum": [
        "signal",
        "sample",
        "opt_in",
        "always_on"
      ],
      "description": "Why a run was selected for LLM evaluation."
    },
    "EvaluationOutcome": {
      "type": "string",
      "enum": [
        "evaluated",
        "skipped_unarchived",
        "failed"
      ],
      "description": "Outcome of an LLM evaluation run."
    },
    "EvaluationSeverity": {
      "type": "string",
      "enum": [
        "none",
        "low",
        "medium",
        "high"
      ],
      "description": "Worst deterministic detector level. `none` means no detector fired, not success."
    },
    "EvaluationVerdict": {
      "type": "string",
      "enum": [
        "success",
        "partial",
        "failure"
      ],
      "description": "LLM evaluation verdict for a turn."
    },
    "EventCategory": {
      "type": "string",
      "enum": [
        "content",
        "workflow",
        "security",
        "billing",
        "system",
        "external"
      ]
    },
    "EventRef": {
      "type": "object",
      "properties": {
        "event_id": {
          "type": "string"
        },
        "root_event_id": {
          "type": "string"
        },
        "caused_by_event_id": {
          "type": "string"
        },
        "hop_count": {
          "type": "number"
        },
        "event_category": {
          "$ref": "#/$defs/EventCategory"
        },
        "action": {
          "type": "string"
        },
        "resource_type": {
          "type": "string"
        },
        "resource_id": {
          "type": "string"
        },
        "account_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "project_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "tenant_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "event_id",
        "root_event_id",
        "hop_count",
        "event_category",
        "action",
        "resource_type",
        "resource_id",
        "account_id",
        "project_id",
        "tenant_id"
      ],
      "additionalProperties": false
    },
    "GroqOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "groq-deepseek-thinking"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "frequency_penalty": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "reasoning_format": {
          "type": "string",
          "enum": [
            "parsed",
            "raw",
            "hidden"
          ]
        }
      },
      "required": [
        "reasoning_format"
      ],
      "additionalProperties": false
    },
    "HttpTimeoutOptions": {
      "type": "object",
      "properties": {
        "headersTimeout": {
          "type": "number",
          "description": "Time (ms) to wait for the first response byte after the request is sent."
        },
        "bodyTimeout": {
          "type": "number",
          "description": "Time (ms) between body chunks once streaming has started."
        },
        "connectTimeout": {
          "type": "number",
          "description": "TCP/TLS connect timeout (ms)."
        },
        "keepAliveTimeout": {
          "type": "number",
          "description": "Idle socket reuse timeout (ms)."
        }
      },
      "additionalProperties": false,
      "description": "HTTP timeouts applied to a driver's upstream LLM-provider calls.\n\nAll values are in milliseconds. Drivers should map these onto whatever HTTP client their SDK uses; the defaults applied in `@llumiverse/core/createDriverHttpAgent` are:   - headersTimeout:   900_000   - bodyTimeout:      900_000   - connectTimeout:   60_000   - keepAliveTimeout: 300_000\n\nThe response defaults are deliberately longer than the hosting request boundary. Application-level cancellation should end user work first; driver timeouts are bounded-resource safety nets."
    },
    "ImagenMaskMode": {
      "type": "string",
      "enum": [
        "MASK_MODE_USER_PROVIDED",
        "MASK_MODE_BACKGROUND",
        "MASK_MODE_FOREGROUND",
        "MASK_MODE_SEMANTIC"
      ]
    },
    "ImagenOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "vertexai-imagen"
        },
        "number_of_images": {
          "type": "number"
        },
        "seed": {
          "type": "number"
        },
        "person_generation": {
          "type": "string",
          "enum": [
            "dont_allow",
            "allow_adults",
            "allow_all",
            "allow_adult"
          ]
        },
        "safety_setting": {
          "type": "string",
          "enum": [
            "block_none",
            "block_only_high",
            "block_medium_and_above",
            "block_low_and_above"
          ]
        },
        "image_file_type": {
          "type": "string",
          "enum": [
            "image/jpeg",
            "image/png"
          ]
        },
        "jpeg_compression_quality": {
          "type": "number"
        },
        "aspect_ratio": {
          "type": "string",
          "enum": [
            "1:1",
            "4:3",
            "3:4",
            "16:9",
            "9:16"
          ]
        },
        "add_watermark": {
          "type": "boolean"
        },
        "enhance_prompt": {
          "type": "boolean"
        },
        "edit_mode": {
          "$ref": "#/$defs/ImagenTaskType"
        },
        "guidance_scale": {
          "type": "number"
        },
        "edit_steps": {
          "type": "number"
        },
        "mask_mode": {
          "$ref": "#/$defs/ImagenMaskMode"
        },
        "mask_dilation": {
          "type": "number"
        },
        "mask_class": {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        "controlType": {
          "type": "string",
          "enum": [
            "CONTROL_TYPE_FACE_MESH",
            "CONTROL_TYPE_CANNY",
            "CONTROL_TYPE_SCRIBBLE"
          ]
        },
        "controlImageComputation": {
          "type": "boolean"
        },
        "subjectType": {
          "type": "string",
          "enum": [
            "SUBJECT_TYPE_PERSON",
            "SUBJECT_TYPE_ANIMAL",
            "SUBJECT_TYPE_PRODUCT",
            "SUBJECT_TYPE_DEFAULT"
          ]
        }
      },
      "additionalProperties": false
    },
    "ImagenTaskType": {
      "type": "string",
      "enum": [
        "TEXT_IMAGE",
        "EDIT_MODE_INPAINT_REMOVAL",
        "EDIT_MODE_INPAINT_INSERTION",
        "EDIT_MODE_BGSWAP",
        "EDIT_MODE_OUTPAINT",
        "CUSTOMIZATION_SUBJECT",
        "CUSTOMIZATION_STYLE",
        "CUSTOMIZATION_CONTROLLED",
        "CUSTOMIZATION_INSTRUCT"
      ]
    },
    "InCodeTypeRef": {
      "type": "object",
      "properties": {
        "ref_type": {
          "type": "string",
          "const": "incode"
        },
        "id": {
          "type": "string",
          "description": "Namespaced identifier for in-code types (e.g. \"sys:Invoice\", \"app:myapp:Contract\")"
        },
        "name": {
          "type": "string"
        },
        "default_view": {
          "type": "string",
          "enum": [
            "auto",
            "text",
            "pdf",
            "image",
            "properties"
          ],
          "description": "Display hint from the type's intake policy (`intake.default_view`). Enriched by the API on single-object reads so clients can pick the initial view without fetching the type. Absent on list responses and older servers."
        }
      },
      "required": [
        "ref_type",
        "id",
        "name"
      ],
      "additionalProperties": false
    },
    "InferenceProfileId": {
      "type": "string",
      "pattern": "^[a-fA-F0-9]{24}$",
      "description": "MongoDB ObjectId of the inference profile."
    },
    "InitialToolCall": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Stable identifier used to make initialization replay-safe."
        },
        "tool": {
          "type": "string",
          "description": "Read-only builtin activity tool name. Skills are configured separately through initial_skills."
        },
        "input": {
          "type": "object",
          "additionalProperties": true,
          "description": "Tool input parameters."
        },
        "on_error": {
          "type": "string",
          "enum": [
            "fail",
            "continue"
          ],
          "description": "Whether a failed initialization call aborts the conversation start."
        }
      },
      "required": [
        "id",
        "tool"
      ],
      "additionalProperties": false,
      "description": "A tool invocation executed before the first model turn of a conversation. Results are injected into the initial context so the agent starts with them in hand."
    },
    "InteractionExecutionConfiguration": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "inference_profile": {
          "anyOf": [
            {
              "$ref": "#/$defs/InferenceProfileId"
            },
            {
              "type": "null"
            }
          ],
          "description": "Select a project inference profile. Null bypasses profile defaults."
        },
        "inherit_model_config": {
          "type": "boolean",
          "description": "Treat the supplied environment, model and inference_profile as the caller's settings, inherited as a fallback: the interaction's bound or attached profile, or its own model, replaces them."
        },
        "environment": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "do_validate": {
          "type": "boolean"
        },
        "run_data": {
          "$ref": "#/$defs/RunDataStorageLevel"
        },
        "configMode": {
          "$ref": "#/$defs/ConfigModes"
        },
        "model_options": {
          "$ref": "#/$defs/ModelOptions"
        },
        "prompt_cache_key": {
          "type": "string",
          "description": "Stable provider-side routing key for automatic prompt caching."
        },
        "prompt_cache_mode": {
          "$ref": "#/$defs/PromptCacheMode",
          "description": "Controls provider-side explicit caching: auto falls back safely, off disables it, and required surfaces cache preparation failures for diagnostics."
        },
        "prompt_cache_ttl_seconds": {
          "type": "integer",
          "minimum": 60,
          "maximum": 9007199254740991,
          "description": "Caller-selected explicit cache lifetime in seconds. Defaults remain provider-specific; Vertex Gemini requires at least 60 seconds."
        },
        "prompt_cache_schema_suffix": {
          "type": "boolean",
          "description": "Put the result schema after the cached prefix; Vertesia still validates the returned JSON against it."
        },
        "http_timeout": {
          "$ref": "#/$defs/HttpTimeoutOptions",
          "description": "Per-run HTTP timeouts for upstream LLM-provider calls."
        }
      },
      "additionalProperties": false
    },
    "InteractionRef": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "endpoint": {
          "type": "string"
        },
        "parent": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "status": {
          "$ref": "#/$defs/InteractionStatus"
        },
        "visibility": {
          "$ref": "#/$defs/InteractionVisibility"
        },
        "version": {
          "type": "number"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "agent_runner_options": {
          "$ref": "#/$defs/AgentRunnerOptions"
        },
        "prompts": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PromptSegmentRef_PromptTemplateRef"
          }
        },
        "updated_at": {
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "id",
        "name",
        "endpoint",
        "status",
        "version",
        "tags",
        "updated_at"
      ],
      "additionalProperties": false
    },
    "InteractionStatus": {
      "type": "string",
      "enum": [
        "draft",
        "published",
        "archived",
        "code",
        "unknown"
      ]
    },
    "InteractionVisibility": {
      "type": "string",
      "enum": [
        "public",
        "private"
      ]
    },
    "MistralTextOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "mistral-text"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "frequency_penalty": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "effort": {
          "$ref": "#/$defs/ReasoningEffort"
        },
        "random_seed": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "safe_prompt": {
          "type": "boolean"
        },
        "parallel_tool_calls": {
          "type": "boolean"
        },
        "tool_choice": {
          "type": "string",
          "enum": [
            "auto",
            "none",
            "any",
            "required"
          ]
        },
        "prompt_mode": {
          "type": "string",
          "const": "reasoning"
        },
        "include_thoughts": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "ModelOptions": {
      "anyOf": [
        {
          "$ref": "#/$defs/TextFallbackOptions"
        },
        {
          "$ref": "#/$defs/AzureFoundryChatOptions"
        },
        {
          "$ref": "#/$defs/ImagenOptions"
        },
        {
          "$ref": "#/$defs/VertexAIClaudeOptions"
        },
        {
          "$ref": "#/$defs/VertexAIGeminiOptions"
        },
        {
          "$ref": "#/$defs/VertexAIGeminiOmniVideoOptions"
        },
        {
          "$ref": "#/$defs/VertexAIGrokOptions"
        },
        {
          "$ref": "#/$defs/NovaCanvasOptions"
        },
        {
          "$ref": "#/$defs/BedrockConverseOptions"
        },
        {
          "$ref": "#/$defs/BedrockNovaOptions"
        },
        {
          "$ref": "#/$defs/BedrockMistralOptions"
        },
        {
          "$ref": "#/$defs/BedrockAI21Options"
        },
        {
          "$ref": "#/$defs/BedrockCohereCommandOptions"
        },
        {
          "$ref": "#/$defs/BedrockClaudeOptions"
        },
        {
          "$ref": "#/$defs/BedrockPalmyraOptions"
        },
        {
          "$ref": "#/$defs/BedrockGptOssOptions"
        },
        {
          "$ref": "#/$defs/TwelvelabsPegasusOptions"
        },
        {
          "$ref": "#/$defs/BedrockMantleResponsesOptions"
        },
        {
          "$ref": "#/$defs/BedrockMantleChatCompletionsOptions"
        },
        {
          "$ref": "#/$defs/BedrockMantleClaudeOptions"
        },
        {
          "$ref": "#/$defs/OpenAiThinkingOptions"
        },
        {
          "$ref": "#/$defs/OpenAiTextOptions"
        },
        {
          "$ref": "#/$defs/OpenRouterTextOptions"
        },
        {
          "$ref": "#/$defs/OpenAiDalleOptions"
        },
        {
          "$ref": "#/$defs/OpenAiGptImageOptions"
        },
        {
          "$ref": "#/$defs/OpenAiTranscriptionOptions"
        },
        {
          "$ref": "#/$defs/OpenAiSpeechOptions"
        },
        {
          "$ref": "#/$defs/OpenAiAudioOptions"
        },
        {
          "$ref": "#/$defs/XAIGrokImageOptions"
        },
        {
          "$ref": "#/$defs/GroqOptions"
        },
        {
          "$ref": "#/$defs/MistralTextOptions"
        },
        {
          "$ref": "#/$defs/AnthropicClaudeOptions"
        }
      ],
      "type": "object"
    },
    "NovaCanvasOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-nova-canvas"
        },
        "taskType": {
          "type": "string",
          "enum": [
            "TEXT_IMAGE",
            "TEXT_IMAGE_WITH_IMAGE_CONDITIONING",
            "COLOR_GUIDED_GENERATION",
            "IMAGE_VARIATION",
            "INPAINTING",
            "OUTPAINTING",
            "BACKGROUND_REMOVAL"
          ]
        },
        "width": {
          "type": "number"
        },
        "height": {
          "type": "number"
        },
        "quality": {
          "type": "string",
          "enum": [
            "standard",
            "premium"
          ]
        },
        "cfgScale": {
          "type": "number"
        },
        "seed": {
          "type": "number"
        },
        "numberOfImages": {
          "type": "number"
        },
        "controlMode": {
          "type": "string",
          "enum": [
            "CANNY_EDGE",
            "SEGMENTATION"
          ]
        },
        "controlStrength": {
          "type": "number"
        },
        "colors": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "similarityStrength": {
          "type": "number"
        },
        "outPaintingMode": {
          "type": "string",
          "enum": [
            "DEFAULT",
            "PRECISE"
          ]
        }
      },
      "required": [
        "taskType"
      ],
      "additionalProperties": false
    },
    "OpenAiAudioOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "openai-audio"
        },
        "voice": {
          "type": "string",
          "minLength": 1
        },
        "response_format": {
          "type": "string",
          "enum": [
            "wav",
            "mp3",
            "flac",
            "opus",
            "pcm16"
          ]
        }
      },
      "additionalProperties": false
    },
    "OpenAiDalleOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "openai-dalle"
        },
        "size": {
          "type": "string",
          "enum": [
            "256x256",
            "512x512",
            "1024x1024",
            "1792x1024",
            "1024x1792"
          ]
        },
        "image_quality": {
          "type": "string",
          "enum": [
            "standard",
            "hd"
          ]
        },
        "style": {
          "type": "string",
          "enum": [
            "vivid",
            "natural"
          ]
        },
        "response_format": {
          "type": "string",
          "enum": [
            "url",
            "b64_json"
          ]
        },
        "n": {
          "type": "number"
        }
      },
      "additionalProperties": false
    },
    "OpenAiGptImageOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "openai-gpt-image"
        },
        "size": {
          "type": "string"
        },
        "width": {
          "type": "number"
        },
        "height": {
          "type": "number"
        },
        "image_quality": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high",
            "xhigh",
            "max",
            "auto"
          ]
        },
        "background": {
          "type": "string",
          "enum": [
            "transparent",
            "opaque",
            "auto"
          ]
        },
        "output_format": {
          "type": "string",
          "enum": [
            "png",
            "webp",
            "jpeg"
          ]
        },
        "n": {
          "type": "number"
        },
        "output_compression": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100
        },
        "moderation": {
          "type": "string",
          "enum": [
            "auto",
            "low"
          ]
        },
        "input_fidelity": {
          "type": "string",
          "enum": [
            "low",
            "high"
          ]
        },
        "partial_images": {
          "type": "number"
        }
      },
      "additionalProperties": false
    },
    "OpenAiImageGenerationMask": {
      "type": "object",
      "properties": {
        "file_id": {
          "type": "string"
        },
        "image_url": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "OpenAiImageGenerationOptions": {
      "type": "object",
      "properties": {
        "model": {
          "type": "string"
        },
        "force": {
          "type": "boolean"
        },
        "action": {
          "type": "string",
          "enum": [
            "auto",
            "generate",
            "edit"
          ]
        },
        "size": {
          "type": "string"
        },
        "quality": {
          "type": "string",
          "enum": [
            "auto",
            "low",
            "medium",
            "high",
            "xhigh",
            "max"
          ]
        },
        "background": {
          "type": "string",
          "enum": [
            "auto",
            "opaque",
            "transparent"
          ]
        },
        "output_format": {
          "type": "string",
          "enum": [
            "png",
            "jpeg",
            "webp"
          ]
        },
        "output_compression": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100
        },
        "moderation": {
          "type": "string",
          "enum": [
            "auto",
            "low"
          ]
        },
        "input_fidelity": {
          "type": "string",
          "enum": [
            "low",
            "high"
          ]
        },
        "partial_images": {
          "type": "number"
        },
        "input_image_mask": {
          "$ref": "#/$defs/OpenAiImageGenerationMask"
        }
      },
      "required": [
        "model"
      ],
      "additionalProperties": false
    },
    "OpenAiSpeechOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "openai-speech"
        },
        "voice": {
          "type": "string",
          "minLength": 1
        },
        "response_format": {
          "type": "string",
          "enum": [
            "mp3",
            "wav",
            "opus",
            "aac",
            "flac",
            "pcm"
          ]
        },
        "speed": {
          "type": "number",
          "minimum": 0.25,
          "maximum": 4
        },
        "instructions": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "OpenAiTextOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "openai-text"
        },
        "image_generation": {
          "$ref": "#/$defs/OpenAiImageGenerationOptions"
        },
        "seed": {
          "type": "number"
        },
        "max_tokens": {
          "type": "number"
        },
        "tool_choice": {
          "type": "string",
          "enum": [
            "auto",
            "none",
            "any",
            "required"
          ]
        },
        "effort": {
          "$ref": "#/$defs/ReasoningEffort"
        },
        "reasoning_effort": {
          "$ref": "#/$defs/ReasoningEffort"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "frequency_penalty": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "image_detail": {
          "type": "string",
          "enum": [
            "low",
            "high",
            "auto"
          ]
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        },
        "extra_body": {
          "type": "object",
          "additionalProperties": true,
          "description": "Additional provider-specific fields merged into the OpenAI-compatible request body."
        }
      },
      "additionalProperties": false
    },
    "OpenAiThinkingOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "openai-thinking"
        },
        "image_generation": {
          "$ref": "#/$defs/OpenAiImageGenerationOptions"
        },
        "max_tokens": {
          "type": "number"
        },
        "tool_choice": {
          "type": "string",
          "enum": [
            "auto",
            "none",
            "any",
            "required"
          ]
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "effort": {
          "$ref": "#/$defs/ReasoningEffort"
        },
        "reasoning_effort": {
          "$ref": "#/$defs/ReasoningEffort"
        },
        "reasoning_context": {
          "type": "string",
          "enum": [
            "auto",
            "current_turn",
            "all_turns"
          ]
        },
        "image_detail": {
          "type": "string",
          "enum": [
            "low",
            "high",
            "auto"
          ]
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        },
        "extra_body": {
          "type": "object",
          "additionalProperties": true,
          "description": "Additional provider-specific fields merged into the OpenAI-compatible request body."
        }
      },
      "additionalProperties": false
    },
    "OpenAiTranscriptionOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "openai-transcription"
        },
        "language": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "OpenRouterTextOptions": {
      "type": "object",
      "properties": {
        "seed": {
          "type": "number"
        },
        "max_tokens": {
          "type": "number"
        },
        "tool_choice": {
          "type": "string",
          "enum": [
            "auto",
            "none",
            "any",
            "required"
          ]
        },
        "effort": {
          "$ref": "#/$defs/ReasoningEffort"
        },
        "reasoning_effort": {
          "$ref": "#/$defs/ReasoningEffort"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "frequency_penalty": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "image_detail": {
          "type": "string",
          "enum": [
            "low",
            "high",
            "auto"
          ]
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        },
        "_option_id": {
          "type": "string",
          "const": "openrouter-text"
        },
        "provider_sort": {
          "type": "string",
          "enum": [
            "price",
            "throughput",
            "latency",
            "exacto"
          ]
        },
        "provider_order": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "provider_only": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "provider_ignore": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "provider_allow_fallbacks": {
          "type": "boolean"
        },
        "provider_require_parameters": {
          "type": "boolean"
        },
        "provider_data_collection": {
          "type": "string",
          "enum": [
            "allow",
            "deny"
          ]
        },
        "provider_zdr": {
          "type": "boolean"
        },
        "provider_quantizations": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "int4",
              "int8",
              "fp4",
              "mxfp4",
              "nvfp4",
              "fp6",
              "fp8",
              "mxfp8",
              "fp16",
              "bf16",
              "fp32",
              "unknown"
            ]
          }
        }
      },
      "additionalProperties": false
    },
    "PromptCacheMode": {
      "type": "string",
      "enum": [
        "auto",
        "off",
        "required"
      ]
    },
    "PromptRole": {
      "type": "string",
      "enum": [
        "safety",
        "system",
        "user",
        "assistant",
        "negative",
        "mask",
        "tool"
      ]
    },
    "PromptSegmentDefType": {
      "type": "string",
      "enum": [
        "chat",
        "template"
      ]
    },
    "PromptSegmentRef_PromptTemplateRef": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "$ref": "#/$defs/PromptSegmentDefType"
        },
        "template": {
          "$ref": "#/$defs/PromptTemplateRef"
        },
        "configuration": {}
      },
      "required": [
        "id",
        "type"
      ],
      "additionalProperties": false
    },
    "PromptStatus": {
      "type": "string",
      "enum": [
        "draft",
        "published",
        "archived"
      ]
    },
    "PromptTemplateRef": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "role": {
          "$ref": "#/$defs/PromptRole"
        },
        "version": {
          "type": "number"
        },
        "status": {
          "$ref": "#/$defs/PromptStatus"
        },
        "content_type": {
          "$ref": "#/$defs/TemplateType"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "created_at": {
          "type": "string",
          "format": "date-time"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "id",
        "name",
        "role",
        "version",
        "status",
        "created_at",
        "updated_at"
      ],
      "additionalProperties": false
    },
    "ReasoningEffort": {
      "type": "string",
      "enum": [
        "none",
        "minimal",
        "low",
        "medium",
        "high",
        "xhigh",
        "max"
      ]
    },
    "ResourceRef": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "version": {
          "type": "number"
        },
        "status": {
          "type": "string"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "endpoint": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name",
        "type"
      ],
      "additionalProperties": false
    },
    "RunDataStorageLevel": {
      "type": "string",
      "enum": [
        "STANDARD",
        "RESTRICTED",
        "DEBUG"
      ]
    },
    "RunSource": {
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/$defs/RunSourceTypes"
        },
        "label": {
          "type": "string"
        },
        "principal_type": {
          "type": "string",
          "enum": [
            "user",
            "oauth_access",
            "group",
            "apikey",
            "service_account",
            "agent",
            "schedule"
          ]
        },
        "principal_id": {
          "type": "string"
        },
        "client_ip": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "label",
        "principal_type",
        "principal_id",
        "client_ip"
      ],
      "additionalProperties": false
    },
    "RunSourceTypes": {
      "type": "string",
      "enum": [
        "api",
        "cli",
        "ui",
        "webhook",
        "test-data",
        "system",
        "schedule"
      ]
    },
    "SkillContextTriggers": {
      "type": "object",
      "properties": {
        "keywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Keywords in user input that should trigger this skill"
        },
        "tool_names": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "If these tools are being used, suggest this skill"
        },
        "data_patterns": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Regex patterns to match against input data"
        }
      },
      "additionalProperties": false,
      "description": "Context triggers for auto-injection of skills. When these conditions match, the skill is automatically injected into the agent context."
    },
    "StoredTypeRef": {
      "type": "object",
      "properties": {
        "ref_type": {
          "type": "string",
          "const": "stored"
        },
        "id": {
          "type": "string",
          "description": "MongoDB ObjectId string for stored types"
        },
        "name": {
          "type": "string"
        },
        "default_view": {
          "type": "string",
          "enum": [
            "auto",
            "text",
            "pdf",
            "image",
            "properties"
          ],
          "description": "Display hint from the type's intake policy (`intake.default_view`). Enriched by the API on single-object reads so clients can pick the initial view without fetching the type. Absent on list responses and older servers."
        }
      },
      "required": [
        "ref_type",
        "id",
        "name"
      ],
      "additionalProperties": false
    },
    "TemplateType": {
      "type": "string",
      "enum": [
        "jst",
        "handlebars",
        "text"
      ]
    },
    "TextFallbackOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "text-fallback"
        },
        "max_tokens": {
          "type": "number"
        },
        "tool_choice": {
          "type": "string",
          "enum": [
            "auto",
            "none",
            "any",
            "required"
          ]
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "top_k": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "frequency_penalty": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "include_thoughts": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "ThinkingLevel": {
      "type": "string",
      "enum": [
        "HIGH",
        "MEDIUM",
        "LOW",
        "MINIMAL",
        "THINKING_LEVEL_UNSPECIFIED"
      ]
    },
    "TurnEvaluationFlag": {
      "type": "string",
      "enum": [
        "user_stopped_after_failure",
        "mutation_unsuccessful",
        "run_failed",
        "unrecovered_tool",
        "fail_streak",
        "identical_retry",
        "reread",
        "high_gather",
        "overhead",
        "followup_after_answer",
        "approval_denied",
        "circuit_breaker",
        "no_visible_answer",
        "answer_in_tool_preamble"
      ],
      "description": "Reason behind an evaluation severity."
    },
    "TurnTerminalType": {
      "type": "string",
      "enum": [
        "answer",
        "user_stopped",
        "completed",
        "failed",
        "cancelled",
        "interrupted"
      ],
      "description": "How an agent turn ended."
    },
    "TwelvelabsPegasusOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-twelvelabs-pegasus"
        },
        "temperature": {
          "type": "number"
        },
        "max_tokens": {
          "type": "number"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "VertexAIClaudeOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "vertexai-claude"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "top_k": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "effort": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high",
            "xhigh",
            "max"
          ]
        },
        "thinking_mode": {
          "type": "string",
          "enum": [
            "adaptive",
            "between_tools"
          ],
          "description": "Thinking mode override. Sonnet 5.5 supports between_tools at low, medium, or high effort. It omits display and budget fields; keep effort fixed during the conversation. When unset, existing model-specific thinking behavior is preserved."
        },
        "thinking_budget_tokens": {
          "type": "number"
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "cache_enabled": {
          "type": "boolean"
        },
        "cache_ttl": {
          "type": "string",
          "enum": [
            "5m",
            "1h"
          ]
        }
      },
      "additionalProperties": false
    },
    "VertexAIGeminiOmniVideoOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "vertexai-gemini-omni-video"
        },
        "task": {
          "type": "string",
          "enum": [
            "text_to_video",
            "image_to_video",
            "reference_to_video",
            "edit",
            "extend"
          ]
        },
        "aspect_ratio": {
          "type": "string",
          "enum": [
            "16:9",
            "9:16"
          ]
        },
        "duration_seconds": {
          "type": "integer",
          "minimum": 3,
          "maximum": 10
        },
        "resolution": {
          "type": "string",
          "enum": [
            "360p",
            "720p",
            "1080p",
            "4k"
          ]
        }
      },
      "additionalProperties": false
    },
    "VertexAIGeminiOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "vertexai-gemini"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "top_k": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "presence_penalty": {
          "type": "number"
        },
        "frequency_penalty": {
          "type": "number"
        },
        "seed": {
          "type": "number"
        },
        "effort": {
          "type": "string",
          "enum": [
            "minimal",
            "low",
            "medium",
            "high"
          ]
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "thinking_budget_tokens": {
          "type": "number"
        },
        "thinking_level": {
          "$ref": "#/$defs/ThinkingLevel"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        },
        "flex": {
          "type": "boolean",
          "deprecated": true,
          "x-deprecated-message": "Use service_tier=\"flex\" instead.",
          "description": "Deprecated: Use service_tier=\"flex\" instead."
        },
        "speech_voice": {
          "type": "string"
        },
        "speech_language": {
          "type": "string"
        },
        "transcription_language_codes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "transcription_diarization": {
          "type": "boolean"
        },
        "transcription_word_timestamps": {
          "type": "boolean"
        },
        "transcription_vocabulary": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "image_aspect_ratio": {
          "type": "string",
          "enum": [
            "1:1",
            "2:3",
            "3:2",
            "3:4",
            "4:3",
            "9:16",
            "16:9",
            "21:9"
          ]
        },
        "image_size": {
          "type": "string",
          "enum": [
            "1K",
            "2K",
            "4K"
          ]
        },
        "person_generation": {
          "type": "string",
          "enum": [
            "ALLOW_ALL",
            "ALLOW_ADULT",
            "ALLOW_NONE"
          ]
        },
        "prominent_people": {
          "type": "string",
          "enum": [
            "PROMINENT_PEOPLE_UNSPECIFIED",
            "ALLOW_PROMINENT_PEOPLE",
            "BLOCK_PROMINENT_PEOPLE"
          ]
        },
        "output_mime_type": {
          "type": "string",
          "enum": [
            "image/png",
            "image/jpeg"
          ]
        },
        "output_compression_quality": {
          "type": "number"
        }
      },
      "additionalProperties": false
    },
    "VertexAIGrokOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "vertexai-grok"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "XAIGrokImageOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "xai-grok-image"
        },
        "aspect_ratio": {
          "type": "string",
          "enum": [
            "1:1",
            "16:9",
            "9:16",
            "4:3",
            "3:4",
            "3:2",
            "2:3",
            "2:1",
            "1:2",
            "19.5:9",
            "9:19.5",
            "20:9",
            "9:20",
            "auto"
          ]
        },
        "resolution": {
          "type": "string",
          "enum": [
            "1k",
            "2k"
          ]
        },
        "quality": {
          "type": "string",
          "enum": [
            "low",
            "medium"
          ]
        },
        "response_format": {
          "type": "string",
          "enum": [
            "url",
            "b64_json"
          ]
        },
        "n": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10
        }
      },
      "additionalProperties": false
    }
  }
}