Skip to main content
Glama

Create Revision

createRevision

Create a new revision for an existing agent.

Input Schema

NameRequiredDescriptionDefault
nameYesBuild name
configNoBuild configuration. An agent step takes the latest agent schema (legacy v1 agent configs are not accepted); a code step takes a code-step config. Omit it to get the step family's default first build.
agent_idYesThe agent's unique identifier
handover_toNoThe single agent or code step to run after this one completes ("Handover to"). Mutually exclusive with handover_target_ids.
source_build_idNoBuild ID to copy integrations and queue links from. A numbered revision copied this way is recorded as the new build's parent.
handover_optionsNoCode steps only. The targets the program may request, and whether it must. Null clears them; omit to inherit the source build's. Mutually exclusive with handover_to.
handover_target_idsNoAgent IDs that this agent can hand work off to, used exactly as sent; an empty list means none. Send null or omit it to use the agents the AOP mentions with <DUVO:AGENT> tags. Targets are never copied from the source build.
selected_automation_revision_idNoThe automation revision this edit is being made at. Pass a draft and the edit is folded into that draft itself; pass the active revision and the edit lands on a draft branched from it. A historic revision is rejected — it cannot be activated from without an explicit rebase. A revision belonging to a different automation is ignored, and the edit targets the automation the addressed agent belongs to. Omit to target the automation's active revision.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / handover_target_ids / anyOf
      Added value: +[
      +  {
      +    "items": {
      +      "format": "uuid",
      +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / handover_target_ids / description
      Previous value: -"Agent IDs that this agent can hand work off to. Omit to inherit the source build's targets when the AOP has no agent mentions and handover_to is not sent; an empty list clears them."New value: +"Agent IDs that this agent can hand work off to, used exactly as sent; an empty list means none. Send null or omit it to use the agents the AOP mentions with <DUVO:AGENT> tags. Targets are never copied from the source build."
    • removedInput schema / properties / handover_target_ids / items
      Removed value: -{
      -  "format": "uuid",
      -  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      -  "type": "string"
      -}
    • removedInput schema / properties / handover_target_ids / type
      Removed value: -"array"
  2. Changed1 schema field changed
    • changedInput schema / properties / config / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Agent configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      -          },
      -          "input": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "items": {
      -                  "properties": {
      -                    "content": {
      -                      "anyOf": [
      -                        {
      -                          "type": "string"
      -                        },
      -                        {
      -                          "items": {
      -                            "anyOf": [
      -                              {
      -                                "properties": {
      -                                  "text": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_text",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "text"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "detail": {
      -                                    "anyOf": [
      -                                      {
      -                                        "enum": [
      -                                          "low",
      -                                          "high",
      -                                          "auto"
      -                                        ],
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "file_id": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "type": {
      -                                    "const": "input_image",
      -                                    "type": "string"
      -                                  },
      -                                  "url": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "file_id": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_file",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "file_id"
      -                                ],
      -                                "type": "object"
      -                              }
      -                            ]
      -                          },
      -                          "type": "array"
      -                        }
      -                      ]
      -                    },
      -                    "role": {
      -                      "enum": [
      -                        "system",
      -                        "user",
      -                        "assistant"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "type": {
      -                      "anyOf": [
      -                        {
      -                          "const": "message",
      -                          "type": "string"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "role",
      -                    "content"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              }
      -            ],
      -            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      -          },
      -          "models": {
      -            "description": "Model configuration for each capability the agent uses",
      -            "properties": {
      -              "agent": {
      -                "description": "Primary agent model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      -                    "enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-haiku-5-5",
      -                      "claude-haiku-5-5[1m]",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-sonnet-5-5",
      -                      "claude-sonnet-5-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "claude-opus-5-5",
      -                      "claude-opus-5-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4.1-flash",
      -                      "minimax-m3",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]",
      -                      "glm-5.2",
      -                      "qwen3.6-27b",
      -                      "qwen3.8-max",
      -                      "deepseek-v4-flash"
      -                    ],
      -                    "type": "string",
      -                    "x-extensible-enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-haiku-5-5",
      -                      "claude-haiku-5-5[1m]",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-sonnet-5-5",
      -                      "claude-sonnet-5-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "claude-opus-5-5",
      -                      "claude-opus-5-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4.1-flash",
      -                      "minimax-m3",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]",
      -                      "glm-5.2",
      -                      "qwen3.6-27b",
      -                      "qwen3.8-max",
      -                      "deepseek-v4-flash"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "model"
      -                ],
      -                "type": "object"
      -              },
      -              "browsing": {
      -                "description": "Browsing/computer-use model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier for the browsing provider",
      -                    "enum": [
      -                      "gemini-2.5-pro",
      -                      "gemini-2.5-flash",
      -                      "gemini-3-pro-preview",
      -                      "claude-haiku-4-5",
      -                      "claude-sonnet-4-5",
      -                      "claude-opus-4-1"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "provider": {
      -                    "description": "Provider backing the browsing/computer-use model",
      -                    "enum": [
      -                      "google",
      -                      "anthropic"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "provider",
      -                  "model"
      -                ],
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "agent",
      -              "browsing"
      -            ],
      -            "type": "object"
      -          },
      -          "options": {
      -            "additionalProperties": {},
      -            "description": "Optional runtime options controlling how the agent executes",
      -            "properties": {
      -              "benchmarkExpectedOutcomes": {
      -                "description": "Expected outcomes used when running benchmark scenarios",
      -                "items": {
      -                  "properties": {
      -                    "criteria": {
      -                      "description": "Pass/fail criteria used to evaluate the outcome",
      -                      "type": "string"
      -                    },
      -                    "description": {
      -                      "description": "Human-readable description of the expected outcome",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "description",
      -                    "criteria"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "browserProvider": {
      -                "description": "Browser infrastructure provider",
      -                "enum": [
      -                  "browserbase",
      -                  "browser-use"
      -                ],
      -                "type": "string"
      -              },
      -              "evaluationSchemaId": {
      -                "description": "ID of the evaluation schema to apply to runs of this agent",
      -                "type": "string"
      -              },
      -              "supervisedMode": {
      -                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      -                "type": "boolean"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "plugins": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      -          },
      -          "skills": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "IDs of skills (team or system) that should be available to the agent"
      -          },
      -          "subAgents": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      -          }
      -        },
      -        "required": [
      -          "models",
      -          "input"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v2",
      -        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Code step configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team file paths this step can read at run time"
      -          },
      -          "handoverRequired": {
      -            "default": false,
      -            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      -            "type": "boolean"
      -          },
      -          "language": {
      -            "description": "Language the step's program is written in",
      -            "enum": [
      -              "python"
      -            ],
      -            "type": "string"
      -          },
      -          "maxConcurrency": {
      -            "description": "Most runs of this step that may be in flight at once on one queue, on top of the queue's own concurrency. Absent means only the queue's limit applies. Every claim enforces it; only cases handed to the step (handover, postpone, reprocess) are also kept out of the queue's free slots while the step is full. Cases a trigger or a revision route sends straight to a capped step can still take queue slots and wait there, delaying other steps on the same queue.",
      -            "exclusiveMinimum": 0,
      -            "maximum": 1000,
      -            "type": "integer"
      -          },
      -          "source": {
      -            "description": "Where the step's program comes from",
      -            "oneOf": [
      -              {
      -                "properties": {
      -                  "code": {
      -                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "kind": {
      -                    "const": "inline",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "code"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "properties": {
      -                  "bundle": {
      -                    "description": "The program's files, as a content-addressed manifest",
      -                    "properties": {
      -                      "bucket": {
      -                        "description": "GCS bucket the bundle's blobs are stored in",
      -                        "minLength": 1,
      -                        "type": "string"
      -                      },
      -                      "files": {
      -                        "description": "The program's files, one manifest entry each",
      -                        "items": {
      -                          "properties": {
      -                            "path": {
      -                              "description": "Path the file is materialised at, relative to the work dir",
      -                              "minLength": 1,
      -                              "type": "string"
      -                            },
      -                            "sha256": {
      -                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      -                              "maxLength": 64,
      -                              "minLength": 64,
      -                              "pattern": "^[0-9a-f]{64}$",
      -                              "type": "string"
      -                            },
      -                            "sizeBytes": {
      -                              "description": "UTF-8 byte length of the file's contents",
      -                              "maximum": 131072,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "path",
      -                            "sha256",
      -                            "sizeBytes"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "maxItems": 200,
      -                        "type": "array"
      -                      }
      -                    },
      -                    "required": [
      -                      "bucket",
      -                      "files"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "kind": {
      -                    "const": "files",
      -                    "type": "string"
      -                  },
      -                  "startCommand": {
      -                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      -                    "maxLength": 2000,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "startCommand"
      -                ],
      -                "type": "object"
      -              }
      -            ]
      -          },
      -          "timeoutMs": {
      -            "default": 600000,
      -            "description": "Wall-clock budget for one execution of the step",
      -            "exclusiveMinimum": 0,
      -            "maximum": 3600000,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "language",
      -          "source"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v1",
      -        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Agent configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      +          },
      +          "input": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "items": {
      +                  "properties": {
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "properties": {
      +                                  "text": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_text",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "text"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "detail": {
      +                                    "anyOf": [
      +                                      {
      +                                        "enum": [
      +                                          "low",
      +                                          "high",
      +                                          "auto"
      +                                        ],
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "file_id": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "type": {
      +                                    "const": "input_image",
      +                                    "type": "string"
      +                                  },
      +                                  "url": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "file_id": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_file",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "file_id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        }
      +                      ]
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "system",
      +                        "user",
      +                        "assistant"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "anyOf": [
      +                        {
      +                          "const": "message",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "content"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      +          },
      +          "models": {
      +            "description": "Model configuration for each capability the agent uses",
      +            "properties": {
      +              "agent": {
      +                "description": "Primary agent model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      +                    "enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-haiku-5-5",
      +                      "claude-haiku-5-5[1m]",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "claude-opus-5-5",
      +                      "claude-opus-5-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4.1-flash",
      +                      "deepseek-v4.1-flash-1017",
      +                      "minimax-m3",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2",
      +                      "qwen3.6-27b",
      +                      "qwen3.8-max",
      +                      "deepseek-v4-flash"
      +                    ],
      +                    "type": "string",
      +                    "x-extensible-enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-haiku-5-5",
      +                      "claude-haiku-5-5[1m]",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "claude-opus-5-5",
      +                      "claude-opus-5-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4.1-flash",
      +                      "deepseek-v4.1-flash-1017",
      +                      "minimax-m3",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2",
      +                      "qwen3.6-27b",
      +                      "qwen3.8-max",
      +                      "deepseek-v4-flash"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "model"
      +                ],
      +                "type": "object"
      +              },
      +              "browsing": {
      +                "description": "Browsing/computer-use model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier for the browsing provider",
      +                    "enum": [
      +                      "gemini-2.5-pro",
      +                      "gemini-2.5-flash",
      +                      "gemini-3-pro-preview",
      +                      "claude-haiku-4-5",
      +                      "claude-sonnet-4-5",
      +                      "claude-opus-4-1"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "provider": {
      +                    "description": "Provider backing the browsing/computer-use model",
      +                    "enum": [
      +                      "google",
      +                      "anthropic"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "provider",
      +                  "model"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "agent",
      +              "browsing"
      +            ],
      +            "type": "object"
      +          },
      +          "options": {
      +            "additionalProperties": {},
      +            "description": "Optional runtime options controlling how the agent executes",
      +            "properties": {
      +              "benchmarkExpectedOutcomes": {
      +                "description": "Expected outcomes used when running benchmark scenarios",
      +                "items": {
      +                  "properties": {
      +                    "criteria": {
      +                      "description": "Pass/fail criteria used to evaluate the outcome",
      +                      "type": "string"
      +                    },
      +                    "description": {
      +                      "description": "Human-readable description of the expected outcome",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "description",
      +                    "criteria"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "browserProvider": {
      +                "description": "Browser infrastructure provider",
      +                "enum": [
      +                  "browserbase",
      +                  "browser-use"
      +                ],
      +                "type": "string"
      +              },
      +              "evaluationSchemaId": {
      +                "description": "ID of the evaluation schema to apply to runs of this agent",
      +                "type": "string"
      +              },
      +              "supervisedMode": {
      +                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "plugins": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      +          },
      +          "skills": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of skills (team or system) that should be available to the agent"
      +          },
      +          "subAgents": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      +          }
      +        },
      +        "required": [
      +          "models",
      +          "input"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v2",
      +        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Code step configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team file paths this step can read at run time"
      +          },
      +          "handoverRequired": {
      +            "default": false,
      +            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      +            "type": "boolean"
      +          },
      +          "language": {
      +            "description": "Language the step's program is written in",
      +            "enum": [
      +              "python"
      +            ],
      +            "type": "string"
      +          },
      +          "maxConcurrency": {
      +            "description": "Most runs of this step that may be in flight at once on one queue, on top of the queue's own concurrency. Absent means only the queue's limit applies. Every claim enforces it; only cases handed to the step (handover, postpone, reprocess) are also kept out of the queue's free slots while the step is full. Cases a trigger or a revision route sends straight to a capped step can still take queue slots and wait there, delaying other steps on the same queue.",
      +            "exclusiveMinimum": 0,
      +            "maximum": 1000,
      +            "type": "integer"
      +          },
      +          "source": {
      +            "description": "Where the step's program comes from",
      +            "oneOf": [
      +              {
      +                "properties": {
      +                  "code": {
      +                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "const": "inline",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "code"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "properties": {
      +                  "bundle": {
      +                    "description": "The program's files, as a content-addressed manifest",
      +                    "properties": {
      +                      "bucket": {
      +                        "description": "GCS bucket the bundle's blobs are stored in",
      +                        "minLength": 1,
      +                        "type": "string"
      +                      },
      +                      "files": {
      +                        "description": "The program's files, one manifest entry each",
      +                        "items": {
      +                          "properties": {
      +                            "path": {
      +                              "description": "Path the file is materialised at, relative to the work dir",
      +                              "minLength": 1,
      +                              "type": "string"
      +                            },
      +                            "sha256": {
      +                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      +                              "maxLength": 64,
      +                              "minLength": 64,
      +                              "pattern": "^[0-9a-f]{64}$",
      +                              "type": "string"
      +                            },
      +                            "sizeBytes": {
      +                              "description": "UTF-8 byte length of the file's contents",
      +                              "maximum": 131072,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "path",
      +                            "sha256",
      +                            "sizeBytes"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "maxItems": 200,
      +                        "type": "array"
      +                      }
      +                    },
      +                    "required": [
      +                      "bucket",
      +                      "files"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "kind": {
      +                    "const": "files",
      +                    "type": "string"
      +                  },
      +                  "startCommand": {
      +                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      +                    "maxLength": 2000,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "startCommand"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "timeoutMs": {
      +            "default": 600000,
      +            "description": "Wall-clock budget for one execution of the step",
      +            "exclusiveMinimum": 0,
      +            "maximum": 3600000,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v1",
      +        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / config / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Agent configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      -          },
      -          "input": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "items": {
      -                  "properties": {
      -                    "content": {
      -                      "anyOf": [
      -                        {
      -                          "type": "string"
      -                        },
      -                        {
      -                          "items": {
      -                            "anyOf": [
      -                              {
      -                                "properties": {
      -                                  "text": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_text",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "text"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "detail": {
      -                                    "anyOf": [
      -                                      {
      -                                        "enum": [
      -                                          "low",
      -                                          "high",
      -                                          "auto"
      -                                        ],
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "file_id": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "type": {
      -                                    "const": "input_image",
      -                                    "type": "string"
      -                                  },
      -                                  "url": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "file_id": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_file",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "file_id"
      -                                ],
      -                                "type": "object"
      -                              }
      -                            ]
      -                          },
      -                          "type": "array"
      -                        }
      -                      ]
      -                    },
      -                    "role": {
      -                      "enum": [
      -                        "system",
      -                        "user",
      -                        "assistant"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "type": {
      -                      "anyOf": [
      -                        {
      -                          "const": "message",
      -                          "type": "string"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "role",
      -                    "content"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              }
      -            ],
      -            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      -          },
      -          "models": {
      -            "description": "Model configuration for each capability the agent uses",
      -            "properties": {
      -              "agent": {
      -                "description": "Primary agent model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      -                    "enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-haiku-5-5",
      -                      "claude-haiku-5-5[1m]",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-sonnet-5-5",
      -                      "claude-sonnet-5-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "claude-opus-5-5",
      -                      "claude-opus-5-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "deepseek-v4.1-flash",
      -                      "minimax-m3",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]",
      -                      "glm-5.2",
      -                      "qwen3.6-27b",
      -                      "qwen3.8-max"
      -                    ],
      -                    "type": "string",
      -                    "x-extensible-enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-haiku-5-5",
      -                      "claude-haiku-5-5[1m]",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-sonnet-5-5",
      -                      "claude-sonnet-5-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "claude-opus-5-5",
      -                      "claude-opus-5-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "deepseek-v4.1-flash",
      -                      "minimax-m3",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]",
      -                      "glm-5.2",
      -                      "qwen3.6-27b",
      -                      "qwen3.8-max"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "model"
      -                ],
      -                "type": "object"
      -              },
      -              "browsing": {
      -                "description": "Browsing/computer-use model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier for the browsing provider",
      -                    "enum": [
      -                      "gemini-2.5-pro",
      -                      "gemini-2.5-flash",
      -                      "gemini-3-pro-preview",
      -                      "claude-haiku-4-5",
      -                      "claude-sonnet-4-5",
      -                      "claude-opus-4-1"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "provider": {
      -                    "description": "Provider backing the browsing/computer-use model",
      -                    "enum": [
      -                      "google",
      -                      "anthropic"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "provider",
      -                  "model"
      -                ],
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "agent",
      -              "browsing"
      -            ],
      -            "type": "object"
      -          },
      -          "options": {
      -            "additionalProperties": {},
      -            "description": "Optional runtime options controlling how the agent executes",
      -            "properties": {
      -              "benchmarkExpectedOutcomes": {
      -                "description": "Expected outcomes used when running benchmark scenarios",
      -                "items": {
      -                  "properties": {
      -                    "criteria": {
      -                      "description": "Pass/fail criteria used to evaluate the outcome",
      -                      "type": "string"
      -                    },
      -                    "description": {
      -                      "description": "Human-readable description of the expected outcome",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "description",
      -                    "criteria"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "browserProvider": {
      -                "description": "Browser infrastructure provider",
      -                "enum": [
      -                  "browserbase",
      -                  "browser-use"
      -                ],
      -                "type": "string"
      -              },
      -              "evaluationSchemaId": {
      -                "description": "ID of the evaluation schema to apply to runs of this agent",
      -                "type": "string"
      -              },
      -              "supervisedMode": {
      -                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      -                "type": "boolean"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "plugins": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      -          },
      -          "skills": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "IDs of skills (team or system) that should be available to the agent"
      -          },
      -          "subAgents": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      -          }
      -        },
      -        "required": [
      -          "models",
      -          "input"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v2",
      -        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Code step configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team file paths this step can read at run time"
      -          },
      -          "handoverRequired": {
      -            "default": false,
      -            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      -            "type": "boolean"
      -          },
      -          "language": {
      -            "description": "Language the step's program is written in",
      -            "enum": [
      -              "python"
      -            ],
      -            "type": "string"
      -          },
      -          "maxConcurrency": {
      -            "description": "Most runs of this step that may be in flight at once on one queue, on top of the queue's own concurrency. Absent means only the queue's limit applies. Every claim enforces it; only cases handed to the step (handover, postpone, reprocess) are also kept out of the queue's free slots while the step is full. Cases a trigger or a revision route sends straight to a capped step can still take queue slots and wait there, delaying other steps on the same queue.",
      -            "exclusiveMinimum": 0,
      -            "maximum": 1000,
      -            "type": "integer"
      -          },
      -          "source": {
      -            "description": "Where the step's program comes from",
      -            "oneOf": [
      -              {
      -                "properties": {
      -                  "code": {
      -                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "kind": {
      -                    "const": "inline",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "code"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "properties": {
      -                  "bundle": {
      -                    "description": "The program's files, as a content-addressed manifest",
      -                    "properties": {
      -                      "bucket": {
      -                        "description": "GCS bucket the bundle's blobs are stored in",
      -                        "minLength": 1,
      -                        "type": "string"
      -                      },
      -                      "files": {
      -                        "description": "The program's files, one manifest entry each",
      -                        "items": {
      -                          "properties": {
      -                            "path": {
      -                              "description": "Path the file is materialised at, relative to the work dir",
      -                              "minLength": 1,
      -                              "type": "string"
      -                            },
      -                            "sha256": {
      -                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      -                              "maxLength": 64,
      -                              "minLength": 64,
      -                              "pattern": "^[0-9a-f]{64}$",
      -                              "type": "string"
      -                            },
      -                            "sizeBytes": {
      -                              "description": "UTF-8 byte length of the file's contents",
      -                              "maximum": 131072,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "path",
      -                            "sha256",
      -                            "sizeBytes"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "maxItems": 200,
      -                        "type": "array"
      -                      }
      -                    },
      -                    "required": [
      -                      "bucket",
      -                      "files"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "kind": {
      -                    "const": "files",
      -                    "type": "string"
      -                  },
      -                  "startCommand": {
      -                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      -                    "maxLength": 2000,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "startCommand"
      -                ],
      -                "type": "object"
      -              }
      -            ]
      -          },
      -          "timeoutMs": {
      -            "default": 600000,
      -            "description": "Wall-clock budget for one execution of the step",
      -            "exclusiveMinimum": 0,
      -            "maximum": 3600000,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "language",
      -          "source"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v1",
      -        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Agent configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      +          },
      +          "input": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "items": {
      +                  "properties": {
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "properties": {
      +                                  "text": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_text",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "text"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "detail": {
      +                                    "anyOf": [
      +                                      {
      +                                        "enum": [
      +                                          "low",
      +                                          "high",
      +                                          "auto"
      +                                        ],
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "file_id": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "type": {
      +                                    "const": "input_image",
      +                                    "type": "string"
      +                                  },
      +                                  "url": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "file_id": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_file",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "file_id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        }
      +                      ]
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "system",
      +                        "user",
      +                        "assistant"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "anyOf": [
      +                        {
      +                          "const": "message",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "content"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      +          },
      +          "models": {
      +            "description": "Model configuration for each capability the agent uses",
      +            "properties": {
      +              "agent": {
      +                "description": "Primary agent model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      +                    "enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-haiku-5-5",
      +                      "claude-haiku-5-5[1m]",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "claude-opus-5-5",
      +                      "claude-opus-5-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4.1-flash",
      +                      "minimax-m3",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2",
      +                      "qwen3.6-27b",
      +                      "qwen3.8-max",
      +                      "deepseek-v4-flash"
      +                    ],
      +                    "type": "string",
      +                    "x-extensible-enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-haiku-5-5",
      +                      "claude-haiku-5-5[1m]",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "claude-opus-5-5",
      +                      "claude-opus-5-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4.1-flash",
      +                      "minimax-m3",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2",
      +                      "qwen3.6-27b",
      +                      "qwen3.8-max",
      +                      "deepseek-v4-flash"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "model"
      +                ],
      +                "type": "object"
      +              },
      +              "browsing": {
      +                "description": "Browsing/computer-use model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier for the browsing provider",
      +                    "enum": [
      +                      "gemini-2.5-pro",
      +                      "gemini-2.5-flash",
      +                      "gemini-3-pro-preview",
      +                      "claude-haiku-4-5",
      +                      "claude-sonnet-4-5",
      +                      "claude-opus-4-1"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "provider": {
      +                    "description": "Provider backing the browsing/computer-use model",
      +                    "enum": [
      +                      "google",
      +                      "anthropic"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "provider",
      +                  "model"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "agent",
      +              "browsing"
      +            ],
      +            "type": "object"
      +          },
      +          "options": {
      +            "additionalProperties": {},
      +            "description": "Optional runtime options controlling how the agent executes",
      +            "properties": {
      +              "benchmarkExpectedOutcomes": {
      +                "description": "Expected outcomes used when running benchmark scenarios",
      +                "items": {
      +                  "properties": {
      +                    "criteria": {
      +                      "description": "Pass/fail criteria used to evaluate the outcome",
      +                      "type": "string"
      +                    },
      +                    "description": {
      +                      "description": "Human-readable description of the expected outcome",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "description",
      +                    "criteria"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "browserProvider": {
      +                "description": "Browser infrastructure provider",
      +                "enum": [
      +                  "browserbase",
      +                  "browser-use"
      +                ],
      +                "type": "string"
      +              },
      +              "evaluationSchemaId": {
      +                "description": "ID of the evaluation schema to apply to runs of this agent",
      +                "type": "string"
      +              },
      +              "supervisedMode": {
      +                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "plugins": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      +          },
      +          "skills": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of skills (team or system) that should be available to the agent"
      +          },
      +          "subAgents": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      +          }
      +        },
      +        "required": [
      +          "models",
      +          "input"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v2",
      +        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Code step configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team file paths this step can read at run time"
      +          },
      +          "handoverRequired": {
      +            "default": false,
      +            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      +            "type": "boolean"
      +          },
      +          "language": {
      +            "description": "Language the step's program is written in",
      +            "enum": [
      +              "python"
      +            ],
      +            "type": "string"
      +          },
      +          "maxConcurrency": {
      +            "description": "Most runs of this step that may be in flight at once on one queue, on top of the queue's own concurrency. Absent means only the queue's limit applies. Every claim enforces it; only cases handed to the step (handover, postpone, reprocess) are also kept out of the queue's free slots while the step is full. Cases a trigger or a revision route sends straight to a capped step can still take queue slots and wait there, delaying other steps on the same queue.",
      +            "exclusiveMinimum": 0,
      +            "maximum": 1000,
      +            "type": "integer"
      +          },
      +          "source": {
      +            "description": "Where the step's program comes from",
      +            "oneOf": [
      +              {
      +                "properties": {
      +                  "code": {
      +                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "const": "inline",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "code"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "properties": {
      +                  "bundle": {
      +                    "description": "The program's files, as a content-addressed manifest",
      +                    "properties": {
      +                      "bucket": {
      +                        "description": "GCS bucket the bundle's blobs are stored in",
      +                        "minLength": 1,
      +                        "type": "string"
      +                      },
      +                      "files": {
      +                        "description": "The program's files, one manifest entry each",
      +                        "items": {
      +                          "properties": {
      +                            "path": {
      +                              "description": "Path the file is materialised at, relative to the work dir",
      +                              "minLength": 1,
      +                              "type": "string"
      +                            },
      +                            "sha256": {
      +                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      +                              "maxLength": 64,
      +                              "minLength": 64,
      +                              "pattern": "^[0-9a-f]{64}$",
      +                              "type": "string"
      +                            },
      +                            "sizeBytes": {
      +                              "description": "UTF-8 byte length of the file's contents",
      +                              "maximum": 131072,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "path",
      +                            "sha256",
      +                            "sizeBytes"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "maxItems": 200,
      +                        "type": "array"
      +                      }
      +                    },
      +                    "required": [
      +                      "bucket",
      +                      "files"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "kind": {
      +                    "const": "files",
      +                    "type": "string"
      +                  },
      +                  "startCommand": {
      +                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      +                    "maxLength": 2000,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "startCommand"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "timeoutMs": {
      +            "default": 600000,
      +            "description": "Wall-clock budget for one execution of the step",
      +            "exclusiveMinimum": 0,
      +            "maximum": 3600000,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v1",
      +        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  }
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / config / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Agent configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      -          },
      -          "input": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "items": {
      -                  "properties": {
      -                    "content": {
      -                      "anyOf": [
      -                        {
      -                          "type": "string"
      -                        },
      -                        {
      -                          "items": {
      -                            "anyOf": [
      -                              {
      -                                "properties": {
      -                                  "text": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_text",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "text"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "detail": {
      -                                    "anyOf": [
      -                                      {
      -                                        "enum": [
      -                                          "low",
      -                                          "high",
      -                                          "auto"
      -                                        ],
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "file_id": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "type": {
      -                                    "const": "input_image",
      -                                    "type": "string"
      -                                  },
      -                                  "url": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "file_id": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_file",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "file_id"
      -                                ],
      -                                "type": "object"
      -                              }
      -                            ]
      -                          },
      -                          "type": "array"
      -                        }
      -                      ]
      -                    },
      -                    "role": {
      -                      "enum": [
      -                        "system",
      -                        "user",
      -                        "assistant"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "type": {
      -                      "anyOf": [
      -                        {
      -                          "const": "message",
      -                          "type": "string"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "role",
      -                    "content"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              }
      -            ],
      -            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      -          },
      -          "models": {
      -            "description": "Model configuration for each capability the agent uses",
      -            "properties": {
      -              "agent": {
      -                "description": "Primary agent model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      -                    "enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-haiku-5-5",
      -                      "claude-haiku-5-5[1m]",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-sonnet-5-5",
      -                      "claude-sonnet-5-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "claude-opus-5-5",
      -                      "claude-opus-5-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]",
      -                      "glm-5.2",
      -                      "qwen3.6-27b",
      -                      "qwen3.8-max"
      -                    ],
      -                    "type": "string",
      -                    "x-extensible-enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-haiku-5-5",
      -                      "claude-haiku-5-5[1m]",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-sonnet-5-5",
      -                      "claude-sonnet-5-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "claude-opus-5-5",
      -                      "claude-opus-5-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]",
      -                      "glm-5.2",
      -                      "qwen3.6-27b",
      -                      "qwen3.8-max"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "model"
      -                ],
      -                "type": "object"
      -              },
      -              "browsing": {
      -                "description": "Browsing/computer-use model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier for the browsing provider",
      -                    "enum": [
      -                      "gemini-2.5-pro",
      -                      "gemini-2.5-flash",
      -                      "gemini-3-pro-preview",
      -                      "claude-haiku-4-5",
      -                      "claude-sonnet-4-5",
      -                      "claude-opus-4-1"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "provider": {
      -                    "description": "Provider backing the browsing/computer-use model",
      -                    "enum": [
      -                      "google",
      -                      "anthropic"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "provider",
      -                  "model"
      -                ],
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "agent",
      -              "browsing"
      -            ],
      -            "type": "object"
      -          },
      -          "options": {
      -            "additionalProperties": {},
      -            "description": "Optional runtime options controlling how the agent executes",
      -            "properties": {
      -              "benchmarkExpectedOutcomes": {
      -                "description": "Expected outcomes used when running benchmark scenarios",
      -                "items": {
      -                  "properties": {
      -                    "criteria": {
      -                      "description": "Pass/fail criteria used to evaluate the outcome",
      -                      "type": "string"
      -                    },
      -                    "description": {
      -                      "description": "Human-readable description of the expected outcome",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "description",
      -                    "criteria"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "browserProvider": {
      -                "description": "Browser infrastructure provider",
      -                "enum": [
      -                  "browserbase",
      -                  "browser-use"
      -                ],
      -                "type": "string"
      -              },
      -              "evaluationSchemaId": {
      -                "description": "ID of the evaluation schema to apply to runs of this agent",
      -                "type": "string"
      -              },
      -              "supervisedMode": {
      -                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      -                "type": "boolean"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "plugins": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      -          },
      -          "skills": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "IDs of skills (team or system) that should be available to the agent"
      -          },
      -          "subAgents": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      -          }
      -        },
      -        "required": [
      -          "models",
      -          "input"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v2",
      -        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Code step configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team file paths this step can read at run time"
      -          },
      -          "handoverRequired": {
      -            "default": false,
      -            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      -            "type": "boolean"
      -          },
      -          "language": {
      -            "description": "Language the step's program is written in",
      -            "enum": [
      -              "python"
      -            ],
      -            "type": "string"
      -          },
      -          "maxConcurrency": {
      -            "description": "Most runs of this step that may be in flight at once on one queue, on top of the queue's own concurrency. Absent means only the queue's limit applies. Every claim enforces it; only cases handed to the step (handover, postpone, reprocess) are also kept out of the queue's free slots while the step is full. Cases a trigger or a revision route sends straight to a capped step can still take queue slots and wait there, delaying other steps on the same queue.",
      -            "exclusiveMinimum": 0,
      -            "maximum": 1000,
      -            "type": "integer"
      -          },
      -          "source": {
      -            "description": "Where the step's program comes from",
      -            "oneOf": [
      -              {
      -                "properties": {
      -                  "code": {
      -                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "kind": {
      -                    "const": "inline",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "code"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "properties": {
      -                  "bundle": {
      -                    "description": "The program's files, as a content-addressed manifest",
      -                    "properties": {
      -                      "bucket": {
      -                        "description": "GCS bucket the bundle's blobs are stored in",
      -                        "minLength": 1,
      -                        "type": "string"
      -                      },
      -                      "files": {
      -                        "description": "The program's files, one manifest entry each",
      -                        "items": {
      -                          "properties": {
      -                            "path": {
      -                              "description": "Path the file is materialised at, relative to the work dir",
      -                              "minLength": 1,
      -                              "type": "string"
      -                            },
      -                            "sha256": {
      -                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      -                              "maxLength": 64,
      -                              "minLength": 64,
      -                              "pattern": "^[0-9a-f]{64}$",
      -                              "type": "string"
      -                            },
      -                            "sizeBytes": {
      -                              "description": "UTF-8 byte length of the file's contents",
      -                              "maximum": 131072,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "path",
      -                            "sha256",
      -                            "sizeBytes"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "maxItems": 200,
      -                        "type": "array"
      -                      }
      -                    },
      -                    "required": [
      -                      "bucket",
      -                      "files"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "kind": {
      -                    "const": "files",
      -                    "type": "string"
      -                  },
      -                  "startCommand": {
      -                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      -                    "maxLength": 2000,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "startCommand"
      -                ],
      -                "type": "object"
      -              }
      -            ]
      -          },
      -          "timeoutMs": {
      -            "default": 600000,
      -            "description": "Wall-clock budget for one execution of the step",
      -            "exclusiveMinimum": 0,
      -            "maximum": 3600000,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "language",
      -          "source"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v1",
      -        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Agent configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      +          },
      +          "input": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "items": {
      +                  "properties": {
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "properties": {
      +                                  "text": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_text",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "text"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "detail": {
      +                                    "anyOf": [
      +                                      {
      +                                        "enum": [
      +                                          "low",
      +                                          "high",
      +                                          "auto"
      +                                        ],
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "file_id": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "type": {
      +                                    "const": "input_image",
      +                                    "type": "string"
      +                                  },
      +                                  "url": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "file_id": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_file",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "file_id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        }
      +                      ]
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "system",
      +                        "user",
      +                        "assistant"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "anyOf": [
      +                        {
      +                          "const": "message",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "content"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      +          },
      +          "models": {
      +            "description": "Model configuration for each capability the agent uses",
      +            "properties": {
      +              "agent": {
      +                "description": "Primary agent model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      +                    "enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-haiku-5-5",
      +                      "claude-haiku-5-5[1m]",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "claude-opus-5-5",
      +                      "claude-opus-5-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "deepseek-v4.1-flash",
      +                      "minimax-m3",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2",
      +                      "qwen3.6-27b",
      +                      "qwen3.8-max"
      +                    ],
      +                    "type": "string",
      +                    "x-extensible-enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-haiku-5-5",
      +                      "claude-haiku-5-5[1m]",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "claude-opus-5-5",
      +                      "claude-opus-5-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "deepseek-v4.1-flash",
      +                      "minimax-m3",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2",
      +                      "qwen3.6-27b",
      +                      "qwen3.8-max"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "model"
      +                ],
      +                "type": "object"
      +              },
      +              "browsing": {
      +                "description": "Browsing/computer-use model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier for the browsing provider",
      +                    "enum": [
      +                      "gemini-2.5-pro",
      +                      "gemini-2.5-flash",
      +                      "gemini-3-pro-preview",
      +                      "claude-haiku-4-5",
      +                      "claude-sonnet-4-5",
      +                      "claude-opus-4-1"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "provider": {
      +                    "description": "Provider backing the browsing/computer-use model",
      +                    "enum": [
      +                      "google",
      +                      "anthropic"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "provider",
      +                  "model"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "agent",
      +              "browsing"
      +            ],
      +            "type": "object"
      +          },
      +          "options": {
      +            "additionalProperties": {},
      +            "description": "Optional runtime options controlling how the agent executes",
      +            "properties": {
      +              "benchmarkExpectedOutcomes": {
      +                "description": "Expected outcomes used when running benchmark scenarios",
      +                "items": {
      +                  "properties": {
      +                    "criteria": {
      +                      "description": "Pass/fail criteria used to evaluate the outcome",
      +                      "type": "string"
      +                    },
      +                    "description": {
      +                      "description": "Human-readable description of the expected outcome",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "description",
      +                    "criteria"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "browserProvider": {
      +                "description": "Browser infrastructure provider",
      +                "enum": [
      +                  "browserbase",
      +                  "browser-use"
      +                ],
      +                "type": "string"
      +              },
      +              "evaluationSchemaId": {
      +                "description": "ID of the evaluation schema to apply to runs of this agent",
      +                "type": "string"
      +              },
      +              "supervisedMode": {
      +                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "plugins": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      +          },
      +          "skills": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of skills (team or system) that should be available to the agent"
      +          },
      +          "subAgents": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      +          }
      +        },
      +        "required": [
      +          "models",
      +          "input"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v2",
      +        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Code step configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team file paths this step can read at run time"
      +          },
      +          "handoverRequired": {
      +            "default": false,
      +            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      +            "type": "boolean"
      +          },
      +          "language": {
      +            "description": "Language the step's program is written in",
      +            "enum": [
      +              "python"
      +            ],
      +            "type": "string"
      +          },
      +          "maxConcurrency": {
      +            "description": "Most runs of this step that may be in flight at once on one queue, on top of the queue's own concurrency. Absent means only the queue's limit applies. Every claim enforces it; only cases handed to the step (handover, postpone, reprocess) are also kept out of the queue's free slots while the step is full. Cases a trigger or a revision route sends straight to a capped step can still take queue slots and wait there, delaying other steps on the same queue.",
      +            "exclusiveMinimum": 0,
      +            "maximum": 1000,
      +            "type": "integer"
      +          },
      +          "source": {
      +            "description": "Where the step's program comes from",
      +            "oneOf": [
      +              {
      +                "properties": {
      +                  "code": {
      +                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "const": "inline",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "code"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "properties": {
      +                  "bundle": {
      +                    "description": "The program's files, as a content-addressed manifest",
      +                    "properties": {
      +                      "bucket": {
      +                        "description": "GCS bucket the bundle's blobs are stored in",
      +                        "minLength": 1,
      +                        "type": "string"
      +                      },
      +                      "files": {
      +                        "description": "The program's files, one manifest entry each",
      +                        "items": {
      +                          "properties": {
      +                            "path": {
      +                              "description": "Path the file is materialised at, relative to the work dir",
      +                              "minLength": 1,
      +                              "type": "string"
      +                            },
      +                            "sha256": {
      +                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      +                              "maxLength": 64,
      +                              "minLength": 64,
      +                              "pattern": "^[0-9a-f]{64}$",
      +                              "type": "string"
      +                            },
      +                            "sizeBytes": {
      +                              "description": "UTF-8 byte length of the file's contents",
      +                              "maximum": 131072,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "path",
      +                            "sha256",
      +                            "sizeBytes"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "maxItems": 200,
      +                        "type": "array"
      +                      }
      +                    },
      +                    "required": [
      +                      "bucket",
      +                      "files"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "kind": {
      +                    "const": "files",
      +                    "type": "string"
      +                  },
      +                  "startCommand": {
      +                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      +                    "maxLength": 2000,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "startCommand"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "timeoutMs": {
      +            "default": 600000,
      +            "description": "Wall-clock budget for one execution of the step",
      +            "exclusiveMinimum": 0,
      +            "maximum": 3600000,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v1",
      +        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  }
      +]
  5. Changed2 schema fields changed
    • changedInput schema / properties / handover_target_ids / description
      Previous value: -"Agent IDs that this agent can hand work off to"New value: +"Agent IDs that this agent can hand work off to. Omit to inherit the source build's targets when the AOP has no agent mentions and handover_to is not sent; an empty list clears them."
    • changedInput schema / properties / source_build_id / description
      Previous value: -"Build ID to copy integrations and queue links from"New value: +"Build ID to copy integrations and queue links from. A numbered revision copied this way is recorded as the new build's parent."
  6. Changed1 schema field changed
    • changedInput schema / properties / config / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Agent configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      -          },
      -          "input": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "items": {
      -                  "properties": {
      -                    "content": {
      -                      "anyOf": [
      -                        {
      -                          "type": "string"
      -                        },
      -                        {
      -                          "items": {
      -                            "anyOf": [
      -                              {
      -                                "properties": {
      -                                  "text": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_text",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "text"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "detail": {
      -                                    "anyOf": [
      -                                      {
      -                                        "enum": [
      -                                          "low",
      -                                          "high",
      -                                          "auto"
      -                                        ],
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "file_id": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "type": {
      -                                    "const": "input_image",
      -                                    "type": "string"
      -                                  },
      -                                  "url": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "file_id": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_file",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "file_id"
      -                                ],
      -                                "type": "object"
      -                              }
      -                            ]
      -                          },
      -                          "type": "array"
      -                        }
      -                      ]
      -                    },
      -                    "role": {
      -                      "enum": [
      -                        "system",
      -                        "user",
      -                        "assistant"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "type": {
      -                      "anyOf": [
      -                        {
      -                          "const": "message",
      -                          "type": "string"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "role",
      -                    "content"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              }
      -            ],
      -            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      -          },
      -          "models": {
      -            "description": "Model configuration for each capability the agent uses",
      -            "properties": {
      -              "agent": {
      -                "description": "Primary agent model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      -                    "enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-sonnet-5-5",
      -                      "claude-sonnet-5-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "claude-opus-5-5",
      -                      "claude-opus-5-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]",
      -                      "glm-5.2",
      -                      "qwen3.6-27b",
      -                      "qwen3.8-max"
      -                    ],
      -                    "type": "string",
      -                    "x-extensible-enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-sonnet-5-5",
      -                      "claude-sonnet-5-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "claude-opus-5-5",
      -                      "claude-opus-5-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]",
      -                      "glm-5.2",
      -                      "qwen3.6-27b",
      -                      "qwen3.8-max"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "model"
      -                ],
      -                "type": "object"
      -              },
      -              "browsing": {
      -                "description": "Browsing/computer-use model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier for the browsing provider",
      -                    "enum": [
      -                      "gemini-2.5-pro",
      -                      "gemini-2.5-flash",
      -                      "gemini-3-pro-preview",
      -                      "claude-haiku-4-5",
      -                      "claude-sonnet-4-5",
      -                      "claude-opus-4-1"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "provider": {
      -                    "description": "Provider backing the browsing/computer-use model",
      -                    "enum": [
      -                      "google",
      -                      "anthropic"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "provider",
      -                  "model"
      -                ],
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "agent",
      -              "browsing"
      -            ],
      -            "type": "object"
      -          },
      -          "options": {
      -            "additionalProperties": {},
      -            "description": "Optional runtime options controlling how the agent executes",
      -            "properties": {
      -              "benchmarkExpectedOutcomes": {
      -                "description": "Expected outcomes used when running benchmark scenarios",
      -                "items": {
      -                  "properties": {
      -                    "criteria": {
      -                      "description": "Pass/fail criteria used to evaluate the outcome",
      -                      "type": "string"
      -                    },
      -                    "description": {
      -                      "description": "Human-readable description of the expected outcome",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "description",
      -                    "criteria"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "browserProvider": {
      -                "description": "Browser infrastructure provider",
      -                "enum": [
      -                  "browserbase",
      -                  "browser-use"
      -                ],
      -                "type": "string"
      -              },
      -              "evaluationSchemaId": {
      -                "description": "ID of the evaluation schema to apply to runs of this agent",
      -                "type": "string"
      -              },
      -              "supervisedMode": {
      -                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      -                "type": "boolean"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "plugins": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      -          },
      -          "skills": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "IDs of skills (team or system) that should be available to the agent"
      -          },
      -          "subAgents": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      -          }
      -        },
      -        "required": [
      -          "models",
      -          "input"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v2",
      -        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Code step configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team file paths this step can read at run time"
      -          },
      -          "handoverRequired": {
      -            "default": false,
      -            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      -            "type": "boolean"
      -          },
      -          "language": {
      -            "description": "Language the step's program is written in",
      -            "enum": [
      -              "python"
      -            ],
      -            "type": "string"
      -          },
      -          "source": {
      -            "description": "Where the step's program comes from",
      -            "oneOf": [
      -              {
      -                "properties": {
      -                  "code": {
      -                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "kind": {
      -                    "const": "inline",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "code"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "properties": {
      -                  "bundle": {
      -                    "description": "The program's files, as a content-addressed manifest",
      -                    "properties": {
      -                      "bucket": {
      -                        "description": "GCS bucket the bundle's blobs are stored in",
      -                        "minLength": 1,
      -                        "type": "string"
      -                      },
      -                      "files": {
      -                        "description": "The program's files, one manifest entry each",
      -                        "items": {
      -                          "properties": {
      -                            "path": {
      -                              "description": "Path the file is materialised at, relative to the work dir",
      -                              "minLength": 1,
      -                              "type": "string"
      -                            },
      -                            "sha256": {
      -                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      -                              "maxLength": 64,
      -                              "minLength": 64,
      -                              "pattern": "^[0-9a-f]{64}$",
      -                              "type": "string"
      -                            },
      -                            "sizeBytes": {
      -                              "description": "UTF-8 byte length of the file's contents",
      -                              "maximum": 131072,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "path",
      -                            "sha256",
      -                            "sizeBytes"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "maxItems": 200,
      -                        "type": "array"
      -                      }
      -                    },
      -                    "required": [
      -                      "bucket",
      -                      "files"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "kind": {
      -                    "const": "files",
      -                    "type": "string"
      -                  },
      -                  "startCommand": {
      -                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      -                    "maxLength": 2000,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "startCommand"
      -                ],
      -                "type": "object"
      -              }
      -            ]
      -          },
      -          "timeoutMs": {
      -            "default": 600000,
      -            "description": "Wall-clock budget for one execution of the step",
      -            "exclusiveMinimum": 0,
      -            "maximum": 3600000,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "language",
      -          "source"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v1",
      -        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Agent configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      +          },
      +          "input": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "items": {
      +                  "properties": {
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "properties": {
      +                                  "text": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_text",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "text"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "detail": {
      +                                    "anyOf": [
      +                                      {
      +                                        "enum": [
      +                                          "low",
      +                                          "high",
      +                                          "auto"
      +                                        ],
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "file_id": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "type": {
      +                                    "const": "input_image",
      +                                    "type": "string"
      +                                  },
      +                                  "url": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "file_id": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_file",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "file_id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        }
      +                      ]
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "system",
      +                        "user",
      +                        "assistant"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "anyOf": [
      +                        {
      +                          "const": "message",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "content"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      +          },
      +          "models": {
      +            "description": "Model configuration for each capability the agent uses",
      +            "properties": {
      +              "agent": {
      +                "description": "Primary agent model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      +                    "enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-haiku-5-5",
      +                      "claude-haiku-5-5[1m]",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "claude-opus-5-5",
      +                      "claude-opus-5-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2",
      +                      "qwen3.6-27b",
      +                      "qwen3.8-max"
      +                    ],
      +                    "type": "string",
      +                    "x-extensible-enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-haiku-5-5",
      +                      "claude-haiku-5-5[1m]",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "claude-opus-5-5",
      +                      "claude-opus-5-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2",
      +                      "qwen3.6-27b",
      +                      "qwen3.8-max"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "model"
      +                ],
      +                "type": "object"
      +              },
      +              "browsing": {
      +                "description": "Browsing/computer-use model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier for the browsing provider",
      +                    "enum": [
      +                      "gemini-2.5-pro",
      +                      "gemini-2.5-flash",
      +                      "gemini-3-pro-preview",
      +                      "claude-haiku-4-5",
      +                      "claude-sonnet-4-5",
      +                      "claude-opus-4-1"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "provider": {
      +                    "description": "Provider backing the browsing/computer-use model",
      +                    "enum": [
      +                      "google",
      +                      "anthropic"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "provider",
      +                  "model"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "agent",
      +              "browsing"
      +            ],
      +            "type": "object"
      +          },
      +          "options": {
      +            "additionalProperties": {},
      +            "description": "Optional runtime options controlling how the agent executes",
      +            "properties": {
      +              "benchmarkExpectedOutcomes": {
      +                "description": "Expected outcomes used when running benchmark scenarios",
      +                "items": {
      +                  "properties": {
      +                    "criteria": {
      +                      "description": "Pass/fail criteria used to evaluate the outcome",
      +                      "type": "string"
      +                    },
      +                    "description": {
      +                      "description": "Human-readable description of the expected outcome",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "description",
      +                    "criteria"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "browserProvider": {
      +                "description": "Browser infrastructure provider",
      +                "enum": [
      +                  "browserbase",
      +                  "browser-use"
      +                ],
      +                "type": "string"
      +              },
      +              "evaluationSchemaId": {
      +                "description": "ID of the evaluation schema to apply to runs of this agent",
      +                "type": "string"
      +              },
      +              "supervisedMode": {
      +                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "plugins": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      +          },
      +          "skills": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of skills (team or system) that should be available to the agent"
      +          },
      +          "subAgents": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      +          }
      +        },
      +        "required": [
      +          "models",
      +          "input"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v2",
      +        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Code step configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team file paths this step can read at run time"
      +          },
      +          "handoverRequired": {
      +            "default": false,
      +            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      +            "type": "boolean"
      +          },
      +          "language": {
      +            "description": "Language the step's program is written in",
      +            "enum": [
      +              "python"
      +            ],
      +            "type": "string"
      +          },
      +          "maxConcurrency": {
      +            "description": "Most runs of this step that may be in flight at once on one queue, on top of the queue's own concurrency. Absent means only the queue's limit applies. Every claim enforces it; only cases handed to the step (handover, postpone, reprocess) are also kept out of the queue's free slots while the step is full. Cases a trigger or a revision route sends straight to a capped step can still take queue slots and wait there, delaying other steps on the same queue.",
      +            "exclusiveMinimum": 0,
      +            "maximum": 1000,
      +            "type": "integer"
      +          },
      +          "source": {
      +            "description": "Where the step's program comes from",
      +            "oneOf": [
      +              {
      +                "properties": {
      +                  "code": {
      +                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "const": "inline",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "code"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "properties": {
      +                  "bundle": {
      +                    "description": "The program's files, as a content-addressed manifest",
      +                    "properties": {
      +                      "bucket": {
      +                        "description": "GCS bucket the bundle's blobs are stored in",
      +                        "minLength": 1,
      +                        "type": "string"
      +                      },
      +                      "files": {
      +                        "description": "The program's files, one manifest entry each",
      +                        "items": {
      +                          "properties": {
      +                            "path": {
      +                              "description": "Path the file is materialised at, relative to the work dir",
      +                              "minLength": 1,
      +                              "type": "string"
      +                            },
      +                            "sha256": {
      +                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      +                              "maxLength": 64,
      +                              "minLength": 64,
      +                              "pattern": "^[0-9a-f]{64}$",
      +                              "type": "string"
      +                            },
      +                            "sizeBytes": {
      +                              "description": "UTF-8 byte length of the file's contents",
      +                              "maximum": 131072,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "path",
      +                            "sha256",
      +                            "sizeBytes"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "maxItems": 200,
      +                        "type": "array"
      +                      }
      +                    },
      +                    "required": [
      +                      "bucket",
      +                      "files"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "kind": {
      +                    "const": "files",
      +                    "type": "string"
      +                  },
      +                  "startCommand": {
      +                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      +                    "maxLength": 2000,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "startCommand"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "timeoutMs": {
      +            "default": 600000,
      +            "description": "Wall-clock budget for one execution of the step",
      +            "exclusiveMinimum": 0,
      +            "maximum": 3600000,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v1",
      +        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  }
      +]
  7. Changed1 schema field changed
    • changedInput schema / properties / config / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Agent configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      -          },
      -          "input": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "items": {
      -                  "properties": {
      -                    "content": {
      -                      "anyOf": [
      -                        {
      -                          "type": "string"
      -                        },
      -                        {
      -                          "items": {
      -                            "anyOf": [
      -                              {
      -                                "properties": {
      -                                  "text": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_text",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "text"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "detail": {
      -                                    "anyOf": [
      -                                      {
      -                                        "enum": [
      -                                          "low",
      -                                          "high",
      -                                          "auto"
      -                                        ],
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "file_id": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "type": {
      -                                    "const": "input_image",
      -                                    "type": "string"
      -                                  },
      -                                  "url": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "file_id": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_file",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "file_id"
      -                                ],
      -                                "type": "object"
      -                              }
      -                            ]
      -                          },
      -                          "type": "array"
      -                        }
      -                      ]
      -                    },
      -                    "role": {
      -                      "enum": [
      -                        "system",
      -                        "user",
      -                        "assistant"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "type": {
      -                      "anyOf": [
      -                        {
      -                          "const": "message",
      -                          "type": "string"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "role",
      -                    "content"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              }
      -            ],
      -            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      -          },
      -          "models": {
      -            "description": "Model configuration for each capability the agent uses",
      -            "properties": {
      -              "agent": {
      -                "description": "Primary agent model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      -                    "enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-sonnet-5-5",
      -                      "claude-sonnet-5-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "claude-opus-5-5",
      -                      "claude-opus-5-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.8-max",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]",
      -                      "glm-5.2",
      -                      "qwen3.6-27b"
      -                    ],
      -                    "type": "string",
      -                    "x-extensible-enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-sonnet-5-5",
      -                      "claude-sonnet-5-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "claude-opus-5-5",
      -                      "claude-opus-5-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.8-max",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]",
      -                      "glm-5.2",
      -                      "qwen3.6-27b"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "model"
      -                ],
      -                "type": "object"
      -              },
      -              "browsing": {
      -                "description": "Browsing/computer-use model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier for the browsing provider",
      -                    "enum": [
      -                      "gemini-2.5-pro",
      -                      "gemini-2.5-flash",
      -                      "gemini-3-pro-preview",
      -                      "claude-haiku-4-5",
      -                      "claude-sonnet-4-5",
      -                      "claude-opus-4-1"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "provider": {
      -                    "description": "Provider backing the browsing/computer-use model",
      -                    "enum": [
      -                      "google",
      -                      "anthropic"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "provider",
      -                  "model"
      -                ],
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "agent",
      -              "browsing"
      -            ],
      -            "type": "object"
      -          },
      -          "options": {
      -            "additionalProperties": {},
      -            "description": "Optional runtime options controlling how the agent executes",
      -            "properties": {
      -              "benchmarkExpectedOutcomes": {
      -                "description": "Expected outcomes used when running benchmark scenarios",
      -                "items": {
      -                  "properties": {
      -                    "criteria": {
      -                      "description": "Pass/fail criteria used to evaluate the outcome",
      -                      "type": "string"
      -                    },
      -                    "description": {
      -                      "description": "Human-readable description of the expected outcome",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "description",
      -                    "criteria"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "browserProvider": {
      -                "description": "Browser infrastructure provider",
      -                "enum": [
      -                  "browserbase",
      -                  "browser-use"
      -                ],
      -                "type": "string"
      -              },
      -              "evaluationSchemaId": {
      -                "description": "ID of the evaluation schema to apply to runs of this agent",
      -                "type": "string"
      -              },
      -              "supervisedMode": {
      -                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      -                "type": "boolean"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "plugins": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      -          },
      -          "skills": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "IDs of skills (team or system) that should be available to the agent"
      -          },
      -          "subAgents": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      -          }
      -        },
      -        "required": [
      -          "models",
      -          "input"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v2",
      -        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Code step configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team file paths this step can read at run time"
      -          },
      -          "handoverRequired": {
      -            "default": false,
      -            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      -            "type": "boolean"
      -          },
      -          "language": {
      -            "description": "Language the step's program is written in",
      -            "enum": [
      -              "python"
      -            ],
      -            "type": "string"
      -          },
      -          "source": {
      -            "description": "Where the step's program comes from",
      -            "oneOf": [
      -              {
      -                "properties": {
      -                  "code": {
      -                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "kind": {
      -                    "const": "inline",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "code"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "properties": {
      -                  "bundle": {
      -                    "description": "The program's files, as a content-addressed manifest",
      -                    "properties": {
      -                      "bucket": {
      -                        "description": "GCS bucket the bundle's blobs are stored in",
      -                        "minLength": 1,
      -                        "type": "string"
      -                      },
      -                      "files": {
      -                        "description": "The program's files, one manifest entry each",
      -                        "items": {
      -                          "properties": {
      -                            "path": {
      -                              "description": "Path the file is materialised at, relative to the work dir",
      -                              "minLength": 1,
      -                              "type": "string"
      -                            },
      -                            "sha256": {
      -                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      -                              "maxLength": 64,
      -                              "minLength": 64,
      -                              "pattern": "^[0-9a-f]{64}$",
      -                              "type": "string"
      -                            },
      -                            "sizeBytes": {
      -                              "description": "UTF-8 byte length of the file's contents",
      -                              "maximum": 131072,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "path",
      -                            "sha256",
      -                            "sizeBytes"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "maxItems": 200,
      -                        "type": "array"
      -                      }
      -                    },
      -                    "required": [
      -                      "bucket",
      -                      "files"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "kind": {
      -                    "const": "files",
      -                    "type": "string"
      -                  },
      -                  "startCommand": {
      -                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      -                    "maxLength": 2000,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "startCommand"
      -                ],
      -                "type": "object"
      -              }
      -            ]
      -          },
      -          "timeoutMs": {
      -            "default": 600000,
      -            "description": "Wall-clock budget for one execution of the step",
      -            "exclusiveMinimum": 0,
      -            "maximum": 3600000,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "language",
      -          "source"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v1",
      -        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Agent configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      +          },
      +          "input": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "items": {
      +                  "properties": {
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "properties": {
      +                                  "text": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_text",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "text"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "detail": {
      +                                    "anyOf": [
      +                                      {
      +                                        "enum": [
      +                                          "low",
      +                                          "high",
      +                                          "auto"
      +                                        ],
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "file_id": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "type": {
      +                                    "const": "input_image",
      +                                    "type": "string"
      +                                  },
      +                                  "url": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "file_id": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_file",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "file_id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        }
      +                      ]
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "system",
      +                        "user",
      +                        "assistant"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "anyOf": [
      +                        {
      +                          "const": "message",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "content"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      +          },
      +          "models": {
      +            "description": "Model configuration for each capability the agent uses",
      +            "properties": {
      +              "agent": {
      +                "description": "Primary agent model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      +                    "enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "claude-opus-5-5",
      +                      "claude-opus-5-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2",
      +                      "qwen3.6-27b",
      +                      "qwen3.8-max"
      +                    ],
      +                    "type": "string",
      +                    "x-extensible-enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "claude-opus-5-5",
      +                      "claude-opus-5-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2",
      +                      "qwen3.6-27b",
      +                      "qwen3.8-max"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "model"
      +                ],
      +                "type": "object"
      +              },
      +              "browsing": {
      +                "description": "Browsing/computer-use model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier for the browsing provider",
      +                    "enum": [
      +                      "gemini-2.5-pro",
      +                      "gemini-2.5-flash",
      +                      "gemini-3-pro-preview",
      +                      "claude-haiku-4-5",
      +                      "claude-sonnet-4-5",
      +                      "claude-opus-4-1"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "provider": {
      +                    "description": "Provider backing the browsing/computer-use model",
      +                    "enum": [
      +                      "google",
      +                      "anthropic"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "provider",
      +                  "model"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "agent",
      +              "browsing"
      +            ],
      +            "type": "object"
      +          },
      +          "options": {
      +            "additionalProperties": {},
      +            "description": "Optional runtime options controlling how the agent executes",
      +            "properties": {
      +              "benchmarkExpectedOutcomes": {
      +                "description": "Expected outcomes used when running benchmark scenarios",
      +                "items": {
      +                  "properties": {
      +                    "criteria": {
      +                      "description": "Pass/fail criteria used to evaluate the outcome",
      +                      "type": "string"
      +                    },
      +                    "description": {
      +                      "description": "Human-readable description of the expected outcome",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "description",
      +                    "criteria"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "browserProvider": {
      +                "description": "Browser infrastructure provider",
      +                "enum": [
      +                  "browserbase",
      +                  "browser-use"
      +                ],
      +                "type": "string"
      +              },
      +              "evaluationSchemaId": {
      +                "description": "ID of the evaluation schema to apply to runs of this agent",
      +                "type": "string"
      +              },
      +              "supervisedMode": {
      +                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "plugins": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      +          },
      +          "skills": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of skills (team or system) that should be available to the agent"
      +          },
      +          "subAgents": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      +          }
      +        },
      +        "required": [
      +          "models",
      +          "input"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v2",
      +        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Code step configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team file paths this step can read at run time"
      +          },
      +          "handoverRequired": {
      +            "default": false,
      +            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      +            "type": "boolean"
      +          },
      +          "language": {
      +            "description": "Language the step's program is written in",
      +            "enum": [
      +              "python"
      +            ],
      +            "type": "string"
      +          },
      +          "source": {
      +            "description": "Where the step's program comes from",
      +            "oneOf": [
      +              {
      +                "properties": {
      +                  "code": {
      +                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "const": "inline",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "code"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "properties": {
      +                  "bundle": {
      +                    "description": "The program's files, as a content-addressed manifest",
      +                    "properties": {
      +                      "bucket": {
      +                        "description": "GCS bucket the bundle's blobs are stored in",
      +                        "minLength": 1,
      +                        "type": "string"
      +                      },
      +                      "files": {
      +                        "description": "The program's files, one manifest entry each",
      +                        "items": {
      +                          "properties": {
      +                            "path": {
      +                              "description": "Path the file is materialised at, relative to the work dir",
      +                              "minLength": 1,
      +                              "type": "string"
      +                            },
      +                            "sha256": {
      +                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      +                              "maxLength": 64,
      +                              "minLength": 64,
      +                              "pattern": "^[0-9a-f]{64}$",
      +                              "type": "string"
      +                            },
      +                            "sizeBytes": {
      +                              "description": "UTF-8 byte length of the file's contents",
      +                              "maximum": 131072,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "path",
      +                            "sha256",
      +                            "sizeBytes"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "maxItems": 200,
      +                        "type": "array"
      +                      }
      +                    },
      +                    "required": [
      +                      "bucket",
      +                      "files"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "kind": {
      +                    "const": "files",
      +                    "type": "string"
      +                  },
      +                  "startCommand": {
      +                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      +                    "maxLength": 2000,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "startCommand"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "timeoutMs": {
      +            "default": 600000,
      +            "description": "Wall-clock budget for one execution of the step",
      +            "exclusiveMinimum": 0,
      +            "maximum": 3600000,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v1",
      +        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  }
      +]
  8. Changed1 schema field changed
    • changedInput schema / properties / config / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Agent configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      -          },
      -          "input": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "items": {
      -                  "properties": {
      -                    "content": {
      -                      "anyOf": [
      -                        {
      -                          "type": "string"
      -                        },
      -                        {
      -                          "items": {
      -                            "anyOf": [
      -                              {
      -                                "properties": {
      -                                  "text": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_text",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "text"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "detail": {
      -                                    "anyOf": [
      -                                      {
      -                                        "enum": [
      -                                          "low",
      -                                          "high",
      -                                          "auto"
      -                                        ],
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "file_id": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "type": {
      -                                    "const": "input_image",
      -                                    "type": "string"
      -                                  },
      -                                  "url": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "file_id": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_file",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "file_id"
      -                                ],
      -                                "type": "object"
      -                              }
      -                            ]
      -                          },
      -                          "type": "array"
      -                        }
      -                      ]
      -                    },
      -                    "role": {
      -                      "enum": [
      -                        "system",
      -                        "user",
      -                        "assistant"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "type": {
      -                      "anyOf": [
      -                        {
      -                          "const": "message",
      -                          "type": "string"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "role",
      -                    "content"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              }
      -            ],
      -            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      -          },
      -          "models": {
      -            "description": "Model configuration for each capability the agent uses",
      -            "properties": {
      -              "agent": {
      -                "description": "Primary agent model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      -                    "enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-sonnet-5-5",
      -                      "claude-sonnet-5-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "claude-opus-5-5",
      -                      "claude-opus-5-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.6-27b",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]",
      -                      "glm-5.2"
      -                    ],
      -                    "type": "string",
      -                    "x-extensible-enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-sonnet-5-5",
      -                      "claude-sonnet-5-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "claude-opus-5-5",
      -                      "claude-opus-5-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.6-27b",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]",
      -                      "glm-5.2"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "model"
      -                ],
      -                "type": "object"
      -              },
      -              "browsing": {
      -                "description": "Browsing/computer-use model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier for the browsing provider",
      -                    "enum": [
      -                      "gemini-2.5-pro",
      -                      "gemini-2.5-flash",
      -                      "gemini-3-pro-preview",
      -                      "claude-haiku-4-5",
      -                      "claude-sonnet-4-5",
      -                      "claude-opus-4-1"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "provider": {
      -                    "description": "Provider backing the browsing/computer-use model",
      -                    "enum": [
      -                      "google",
      -                      "anthropic"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "provider",
      -                  "model"
      -                ],
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "agent",
      -              "browsing"
      -            ],
      -            "type": "object"
      -          },
      -          "options": {
      -            "additionalProperties": {},
      -            "description": "Optional runtime options controlling how the agent executes",
      -            "properties": {
      -              "benchmarkExpectedOutcomes": {
      -                "description": "Expected outcomes used when running benchmark scenarios",
      -                "items": {
      -                  "properties": {
      -                    "criteria": {
      -                      "description": "Pass/fail criteria used to evaluate the outcome",
      -                      "type": "string"
      -                    },
      -                    "description": {
      -                      "description": "Human-readable description of the expected outcome",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "description",
      -                    "criteria"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "browserProvider": {
      -                "description": "Browser infrastructure provider",
      -                "enum": [
      -                  "browserbase",
      -                  "browser-use"
      -                ],
      -                "type": "string"
      -              },
      -              "evaluationSchemaId": {
      -                "description": "ID of the evaluation schema to apply to runs of this agent",
      -                "type": "string"
      -              },
      -              "supervisedMode": {
      -                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      -                "type": "boolean"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "plugins": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      -          },
      -          "skills": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "IDs of skills (team or system) that should be available to the agent"
      -          },
      -          "subAgents": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      -          }
      -        },
      -        "required": [
      -          "models",
      -          "input"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v2",
      -        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Code step configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team file paths this step can read at run time"
      -          },
      -          "handoverRequired": {
      -            "default": false,
      -            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      -            "type": "boolean"
      -          },
      -          "language": {
      -            "description": "Language the step's program is written in",
      -            "enum": [
      -              "python"
      -            ],
      -            "type": "string"
      -          },
      -          "source": {
      -            "description": "Where the step's program comes from",
      -            "oneOf": [
      -              {
      -                "properties": {
      -                  "code": {
      -                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "kind": {
      -                    "const": "inline",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "code"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "properties": {
      -                  "bundle": {
      -                    "description": "The program's files, as a content-addressed manifest",
      -                    "properties": {
      -                      "bucket": {
      -                        "description": "GCS bucket the bundle's blobs are stored in",
      -                        "minLength": 1,
      -                        "type": "string"
      -                      },
      -                      "files": {
      -                        "description": "The program's files, one manifest entry each",
      -                        "items": {
      -                          "properties": {
      -                            "path": {
      -                              "description": "Path the file is materialised at, relative to the work dir",
      -                              "minLength": 1,
      -                              "type": "string"
      -                            },
      -                            "sha256": {
      -                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      -                              "maxLength": 64,
      -                              "minLength": 64,
      -                              "pattern": "^[0-9a-f]{64}$",
      -                              "type": "string"
      -                            },
      -                            "sizeBytes": {
      -                              "description": "UTF-8 byte length of the file's contents",
      -                              "maximum": 131072,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "path",
      -                            "sha256",
      -                            "sizeBytes"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "maxItems": 200,
      -                        "type": "array"
      -                      }
      -                    },
      -                    "required": [
      -                      "bucket",
      -                      "files"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "kind": {
      -                    "const": "files",
      -                    "type": "string"
      -                  },
      -                  "startCommand": {
      -                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      -                    "maxLength": 2000,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "startCommand"
      -                ],
      -                "type": "object"
      -              }
      -            ]
      -          },
      -          "timeoutMs": {
      -            "default": 600000,
      -            "description": "Wall-clock budget for one execution of the step",
      -            "exclusiveMinimum": 0,
      -            "maximum": 3600000,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "language",
      -          "source"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v1",
      -        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Agent configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      +          },
      +          "input": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "items": {
      +                  "properties": {
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "properties": {
      +                                  "text": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_text",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "text"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "detail": {
      +                                    "anyOf": [
      +                                      {
      +                                        "enum": [
      +                                          "low",
      +                                          "high",
      +                                          "auto"
      +                                        ],
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "file_id": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "type": {
      +                                    "const": "input_image",
      +                                    "type": "string"
      +                                  },
      +                                  "url": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "file_id": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_file",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "file_id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        }
      +                      ]
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "system",
      +                        "user",
      +                        "assistant"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "anyOf": [
      +                        {
      +                          "const": "message",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "content"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      +          },
      +          "models": {
      +            "description": "Model configuration for each capability the agent uses",
      +            "properties": {
      +              "agent": {
      +                "description": "Primary agent model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      +                    "enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "claude-opus-5-5",
      +                      "claude-opus-5-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.8-max",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2",
      +                      "qwen3.6-27b"
      +                    ],
      +                    "type": "string",
      +                    "x-extensible-enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "claude-opus-5-5",
      +                      "claude-opus-5-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.8-max",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2",
      +                      "qwen3.6-27b"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "model"
      +                ],
      +                "type": "object"
      +              },
      +              "browsing": {
      +                "description": "Browsing/computer-use model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier for the browsing provider",
      +                    "enum": [
      +                      "gemini-2.5-pro",
      +                      "gemini-2.5-flash",
      +                      "gemini-3-pro-preview",
      +                      "claude-haiku-4-5",
      +                      "claude-sonnet-4-5",
      +                      "claude-opus-4-1"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "provider": {
      +                    "description": "Provider backing the browsing/computer-use model",
      +                    "enum": [
      +                      "google",
      +                      "anthropic"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "provider",
      +                  "model"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "agent",
      +              "browsing"
      +            ],
      +            "type": "object"
      +          },
      +          "options": {
      +            "additionalProperties": {},
      +            "description": "Optional runtime options controlling how the agent executes",
      +            "properties": {
      +              "benchmarkExpectedOutcomes": {
      +                "description": "Expected outcomes used when running benchmark scenarios",
      +                "items": {
      +                  "properties": {
      +                    "criteria": {
      +                      "description": "Pass/fail criteria used to evaluate the outcome",
      +                      "type": "string"
      +                    },
      +                    "description": {
      +                      "description": "Human-readable description of the expected outcome",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "description",
      +                    "criteria"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "browserProvider": {
      +                "description": "Browser infrastructure provider",
      +                "enum": [
      +                  "browserbase",
      +                  "browser-use"
      +                ],
      +                "type": "string"
      +              },
      +              "evaluationSchemaId": {
      +                "description": "ID of the evaluation schema to apply to runs of this agent",
      +                "type": "string"
      +              },
      +              "supervisedMode": {
      +                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "plugins": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      +          },
      +          "skills": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of skills (team or system) that should be available to the agent"
      +          },
      +          "subAgents": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      +          }
      +        },
      +        "required": [
      +          "models",
      +          "input"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v2",
      +        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Code step configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team file paths this step can read at run time"
      +          },
      +          "handoverRequired": {
      +            "default": false,
      +            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      +            "type": "boolean"
      +          },
      +          "language": {
      +            "description": "Language the step's program is written in",
      +            "enum": [
      +              "python"
      +            ],
      +            "type": "string"
      +          },
      +          "source": {
      +            "description": "Where the step's program comes from",
      +            "oneOf": [
      +              {
      +                "properties": {
      +                  "code": {
      +                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "const": "inline",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "code"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "properties": {
      +                  "bundle": {
      +                    "description": "The program's files, as a content-addressed manifest",
      +                    "properties": {
      +                      "bucket": {
      +                        "description": "GCS bucket the bundle's blobs are stored in",
      +                        "minLength": 1,
      +                        "type": "string"
      +                      },
      +                      "files": {
      +                        "description": "The program's files, one manifest entry each",
      +                        "items": {
      +                          "properties": {
      +                            "path": {
      +                              "description": "Path the file is materialised at, relative to the work dir",
      +                              "minLength": 1,
      +                              "type": "string"
      +                            },
      +                            "sha256": {
      +                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      +                              "maxLength": 64,
      +                              "minLength": 64,
      +                              "pattern": "^[0-9a-f]{64}$",
      +                              "type": "string"
      +                            },
      +                            "sizeBytes": {
      +                              "description": "UTF-8 byte length of the file's contents",
      +                              "maximum": 131072,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "path",
      +                            "sha256",
      +                            "sizeBytes"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "maxItems": 200,
      +                        "type": "array"
      +                      }
      +                    },
      +                    "required": [
      +                      "bucket",
      +                      "files"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "kind": {
      +                    "const": "files",
      +                    "type": "string"
      +                  },
      +                  "startCommand": {
      +                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      +                    "maxLength": 2000,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "startCommand"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "timeoutMs": {
      +            "default": 600000,
      +            "description": "Wall-clock budget for one execution of the step",
      +            "exclusiveMinimum": 0,
      +            "maximum": 3600000,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v1",
      +        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  }
      +]
  9. Changed1 schema field changed
    • changedInput schema / properties / config / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Agent configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      -          },
      -          "input": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "items": {
      -                  "properties": {
      -                    "content": {
      -                      "anyOf": [
      -                        {
      -                          "type": "string"
      -                        },
      -                        {
      -                          "items": {
      -                            "anyOf": [
      -                              {
      -                                "properties": {
      -                                  "text": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_text",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "text"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "detail": {
      -                                    "anyOf": [
      -                                      {
      -                                        "enum": [
      -                                          "low",
      -                                          "high",
      -                                          "auto"
      -                                        ],
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "file_id": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "type": {
      -                                    "const": "input_image",
      -                                    "type": "string"
      -                                  },
      -                                  "url": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "file_id": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_file",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "file_id"
      -                                ],
      -                                "type": "object"
      -                              }
      -                            ]
      -                          },
      -                          "type": "array"
      -                        }
      -                      ]
      -                    },
      -                    "role": {
      -                      "enum": [
      -                        "system",
      -                        "user",
      -                        "assistant"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "type": {
      -                      "anyOf": [
      -                        {
      -                          "const": "message",
      -                          "type": "string"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "role",
      -                    "content"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              }
      -            ],
      -            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      -          },
      -          "models": {
      -            "description": "Model configuration for each capability the agent uses",
      -            "properties": {
      -              "agent": {
      -                "description": "Primary agent model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      -                    "enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-sonnet-5-5",
      -                      "claude-sonnet-5-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.6-27b",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]",
      -                      "glm-5.2"
      -                    ],
      -                    "type": "string",
      -                    "x-extensible-enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-sonnet-5-5",
      -                      "claude-sonnet-5-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.6-27b",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]",
      -                      "glm-5.2"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "model"
      -                ],
      -                "type": "object"
      -              },
      -              "browsing": {
      -                "description": "Browsing/computer-use model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier for the browsing provider",
      -                    "enum": [
      -                      "gemini-2.5-pro",
      -                      "gemini-2.5-flash",
      -                      "gemini-3-pro-preview",
      -                      "claude-haiku-4-5",
      -                      "claude-sonnet-4-5",
      -                      "claude-opus-4-1"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "provider": {
      -                    "description": "Provider backing the browsing/computer-use model",
      -                    "enum": [
      -                      "google",
      -                      "anthropic"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "provider",
      -                  "model"
      -                ],
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "agent",
      -              "browsing"
      -            ],
      -            "type": "object"
      -          },
      -          "options": {
      -            "additionalProperties": {},
      -            "description": "Optional runtime options controlling how the agent executes",
      -            "properties": {
      -              "benchmarkExpectedOutcomes": {
      -                "description": "Expected outcomes used when running benchmark scenarios",
      -                "items": {
      -                  "properties": {
      -                    "criteria": {
      -                      "description": "Pass/fail criteria used to evaluate the outcome",
      -                      "type": "string"
      -                    },
      -                    "description": {
      -                      "description": "Human-readable description of the expected outcome",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "description",
      -                    "criteria"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "browserProvider": {
      -                "description": "Browser infrastructure provider",
      -                "enum": [
      -                  "browserbase",
      -                  "browser-use"
      -                ],
      -                "type": "string"
      -              },
      -              "evaluationSchemaId": {
      -                "description": "ID of the evaluation schema to apply to runs of this agent",
      -                "type": "string"
      -              },
      -              "supervisedMode": {
      -                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      -                "type": "boolean"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "plugins": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      -          },
      -          "skills": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "IDs of skills (team or system) that should be available to the agent"
      -          },
      -          "subAgents": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      -          }
      -        },
      -        "required": [
      -          "models",
      -          "input"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v2",
      -        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Code step configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team file paths this step can read at run time"
      -          },
      -          "handoverRequired": {
      -            "default": false,
      -            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      -            "type": "boolean"
      -          },
      -          "language": {
      -            "description": "Language the step's program is written in",
      -            "enum": [
      -              "python"
      -            ],
      -            "type": "string"
      -          },
      -          "source": {
      -            "description": "Where the step's program comes from",
      -            "oneOf": [
      -              {
      -                "properties": {
      -                  "code": {
      -                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "kind": {
      -                    "const": "inline",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "code"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "properties": {
      -                  "bundle": {
      -                    "description": "The program's files, as a content-addressed manifest",
      -                    "properties": {
      -                      "bucket": {
      -                        "description": "GCS bucket the bundle's blobs are stored in",
      -                        "minLength": 1,
      -                        "type": "string"
      -                      },
      -                      "files": {
      -                        "description": "The program's files, one manifest entry each",
      -                        "items": {
      -                          "properties": {
      -                            "path": {
      -                              "description": "Path the file is materialised at, relative to the work dir",
      -                              "minLength": 1,
      -                              "type": "string"
      -                            },
      -                            "sha256": {
      -                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      -                              "maxLength": 64,
      -                              "minLength": 64,
      -                              "pattern": "^[0-9a-f]{64}$",
      -                              "type": "string"
      -                            },
      -                            "sizeBytes": {
      -                              "description": "UTF-8 byte length of the file's contents",
      -                              "maximum": 131072,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "path",
      -                            "sha256",
      -                            "sizeBytes"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "maxItems": 200,
      -                        "type": "array"
      -                      }
      -                    },
      -                    "required": [
      -                      "bucket",
      -                      "files"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "kind": {
      -                    "const": "files",
      -                    "type": "string"
      -                  },
      -                  "startCommand": {
      -                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      -                    "maxLength": 2000,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "startCommand"
      -                ],
      -                "type": "object"
      -              }
      -            ]
      -          },
      -          "timeoutMs": {
      -            "default": 600000,
      -            "description": "Wall-clock budget for one execution of the step",
      -            "exclusiveMinimum": 0,
      -            "maximum": 3600000,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "language",
      -          "source"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v1",
      -        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Agent configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      +          },
      +          "input": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "items": {
      +                  "properties": {
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "properties": {
      +                                  "text": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_text",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "text"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "detail": {
      +                                    "anyOf": [
      +                                      {
      +                                        "enum": [
      +                                          "low",
      +                                          "high",
      +                                          "auto"
      +                                        ],
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "file_id": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "type": {
      +                                    "const": "input_image",
      +                                    "type": "string"
      +                                  },
      +                                  "url": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "file_id": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_file",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "file_id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        }
      +                      ]
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "system",
      +                        "user",
      +                        "assistant"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "anyOf": [
      +                        {
      +                          "const": "message",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "content"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      +          },
      +          "models": {
      +            "description": "Model configuration for each capability the agent uses",
      +            "properties": {
      +              "agent": {
      +                "description": "Primary agent model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      +                    "enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "claude-opus-5-5",
      +                      "claude-opus-5-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2"
      +                    ],
      +                    "type": "string",
      +                    "x-extensible-enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "claude-opus-5-5",
      +                      "claude-opus-5-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "model"
      +                ],
      +                "type": "object"
      +              },
      +              "browsing": {
      +                "description": "Browsing/computer-use model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier for the browsing provider",
      +                    "enum": [
      +                      "gemini-2.5-pro",
      +                      "gemini-2.5-flash",
      +                      "gemini-3-pro-preview",
      +                      "claude-haiku-4-5",
      +                      "claude-sonnet-4-5",
      +                      "claude-opus-4-1"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "provider": {
      +                    "description": "Provider backing the browsing/computer-use model",
      +                    "enum": [
      +                      "google",
      +                      "anthropic"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "provider",
      +                  "model"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "agent",
      +              "browsing"
      +            ],
      +            "type": "object"
      +          },
      +          "options": {
      +            "additionalProperties": {},
      +            "description": "Optional runtime options controlling how the agent executes",
      +            "properties": {
      +              "benchmarkExpectedOutcomes": {
      +                "description": "Expected outcomes used when running benchmark scenarios",
      +                "items": {
      +                  "properties": {
      +                    "criteria": {
      +                      "description": "Pass/fail criteria used to evaluate the outcome",
      +                      "type": "string"
      +                    },
      +                    "description": {
      +                      "description": "Human-readable description of the expected outcome",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "description",
      +                    "criteria"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "browserProvider": {
      +                "description": "Browser infrastructure provider",
      +                "enum": [
      +                  "browserbase",
      +                  "browser-use"
      +                ],
      +                "type": "string"
      +              },
      +              "evaluationSchemaId": {
      +                "description": "ID of the evaluation schema to apply to runs of this agent",
      +                "type": "string"
      +              },
      +              "supervisedMode": {
      +                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "plugins": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      +          },
      +          "skills": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of skills (team or system) that should be available to the agent"
      +          },
      +          "subAgents": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      +          }
      +        },
      +        "required": [
      +          "models",
      +          "input"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v2",
      +        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Code step configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team file paths this step can read at run time"
      +          },
      +          "handoverRequired": {
      +            "default": false,
      +            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      +            "type": "boolean"
      +          },
      +          "language": {
      +            "description": "Language the step's program is written in",
      +            "enum": [
      +              "python"
      +            ],
      +            "type": "string"
      +          },
      +          "source": {
      +            "description": "Where the step's program comes from",
      +            "oneOf": [
      +              {
      +                "properties": {
      +                  "code": {
      +                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "const": "inline",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "code"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "properties": {
      +                  "bundle": {
      +                    "description": "The program's files, as a content-addressed manifest",
      +                    "properties": {
      +                      "bucket": {
      +                        "description": "GCS bucket the bundle's blobs are stored in",
      +                        "minLength": 1,
      +                        "type": "string"
      +                      },
      +                      "files": {
      +                        "description": "The program's files, one manifest entry each",
      +                        "items": {
      +                          "properties": {
      +                            "path": {
      +                              "description": "Path the file is materialised at, relative to the work dir",
      +                              "minLength": 1,
      +                              "type": "string"
      +                            },
      +                            "sha256": {
      +                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      +                              "maxLength": 64,
      +                              "minLength": 64,
      +                              "pattern": "^[0-9a-f]{64}$",
      +                              "type": "string"
      +                            },
      +                            "sizeBytes": {
      +                              "description": "UTF-8 byte length of the file's contents",
      +                              "maximum": 131072,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "path",
      +                            "sha256",
      +                            "sizeBytes"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "maxItems": 200,
      +                        "type": "array"
      +                      }
      +                    },
      +                    "required": [
      +                      "bucket",
      +                      "files"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "kind": {
      +                    "const": "files",
      +                    "type": "string"
      +                  },
      +                  "startCommand": {
      +                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      +                    "maxLength": 2000,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "startCommand"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "timeoutMs": {
      +            "default": 600000,
      +            "description": "Wall-clock budget for one execution of the step",
      +            "exclusiveMinimum": 0,
      +            "maximum": 3600000,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v1",
      +        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  }
      +]
  10. Changed1 schema field changed
    • changedInput schema / properties / config / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Agent configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      -          },
      -          "input": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "items": {
      -                  "properties": {
      -                    "content": {
      -                      "anyOf": [
      -                        {
      -                          "type": "string"
      -                        },
      -                        {
      -                          "items": {
      -                            "anyOf": [
      -                              {
      -                                "properties": {
      -                                  "text": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_text",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "text"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "detail": {
      -                                    "anyOf": [
      -                                      {
      -                                        "enum": [
      -                                          "low",
      -                                          "high",
      -                                          "auto"
      -                                        ],
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "file_id": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "type": {
      -                                    "const": "input_image",
      -                                    "type": "string"
      -                                  },
      -                                  "url": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "file_id": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_file",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "file_id"
      -                                ],
      -                                "type": "object"
      -                              }
      -                            ]
      -                          },
      -                          "type": "array"
      -                        }
      -                      ]
      -                    },
      -                    "role": {
      -                      "enum": [
      -                        "system",
      -                        "user",
      -                        "assistant"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "type": {
      -                      "anyOf": [
      -                        {
      -                          "const": "message",
      -                          "type": "string"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "role",
      -                    "content"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              }
      -            ],
      -            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      -          },
      -          "models": {
      -            "description": "Model configuration for each capability the agent uses",
      -            "properties": {
      -              "agent": {
      -                "description": "Primary agent model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      -                    "enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.2",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.6-27b",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]"
      -                    ],
      -                    "type": "string",
      -                    "x-extensible-enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.2",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.6-27b",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "model"
      -                ],
      -                "type": "object"
      -              },
      -              "browsing": {
      -                "description": "Browsing/computer-use model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier for the browsing provider",
      -                    "enum": [
      -                      "gemini-2.5-pro",
      -                      "gemini-2.5-flash",
      -                      "gemini-3-pro-preview",
      -                      "claude-haiku-4-5",
      -                      "claude-sonnet-4-5",
      -                      "claude-opus-4-1"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "provider": {
      -                    "description": "Provider backing the browsing/computer-use model",
      -                    "enum": [
      -                      "google",
      -                      "anthropic"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "provider",
      -                  "model"
      -                ],
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "agent",
      -              "browsing"
      -            ],
      -            "type": "object"
      -          },
      -          "options": {
      -            "additionalProperties": {},
      -            "description": "Optional runtime options controlling how the agent executes",
      -            "properties": {
      -              "benchmarkExpectedOutcomes": {
      -                "description": "Expected outcomes used when running benchmark scenarios",
      -                "items": {
      -                  "properties": {
      -                    "criteria": {
      -                      "description": "Pass/fail criteria used to evaluate the outcome",
      -                      "type": "string"
      -                    },
      -                    "description": {
      -                      "description": "Human-readable description of the expected outcome",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "description",
      -                    "criteria"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "browserProvider": {
      -                "description": "Browser infrastructure provider",
      -                "enum": [
      -                  "browserbase",
      -                  "browser-use"
      -                ],
      -                "type": "string"
      -              },
      -              "evaluationSchemaId": {
      -                "description": "ID of the evaluation schema to apply to runs of this agent",
      -                "type": "string"
      -              },
      -              "supervisedMode": {
      -                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      -                "type": "boolean"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "plugins": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      -          },
      -          "skills": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "IDs of skills (team or system) that should be available to the agent"
      -          },
      -          "subAgents": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      -          }
      -        },
      -        "required": [
      -          "models",
      -          "input"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v2",
      -        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Code step configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team file paths this step can read at run time"
      -          },
      -          "handoverRequired": {
      -            "default": false,
      -            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      -            "type": "boolean"
      -          },
      -          "language": {
      -            "description": "Language the step's program is written in",
      -            "enum": [
      -              "python"
      -            ],
      -            "type": "string"
      -          },
      -          "source": {
      -            "description": "Where the step's program comes from",
      -            "oneOf": [
      -              {
      -                "properties": {
      -                  "code": {
      -                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "kind": {
      -                    "const": "inline",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "code"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "properties": {
      -                  "bundle": {
      -                    "description": "The program's files, as a content-addressed manifest",
      -                    "properties": {
      -                      "bucket": {
      -                        "description": "GCS bucket the bundle's blobs are stored in",
      -                        "minLength": 1,
      -                        "type": "string"
      -                      },
      -                      "files": {
      -                        "description": "The program's files, one manifest entry each",
      -                        "items": {
      -                          "properties": {
      -                            "path": {
      -                              "description": "Path the file is materialised at, relative to the work dir",
      -                              "minLength": 1,
      -                              "type": "string"
      -                            },
      -                            "sha256": {
      -                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      -                              "maxLength": 64,
      -                              "minLength": 64,
      -                              "pattern": "^[0-9a-f]{64}$",
      -                              "type": "string"
      -                            },
      -                            "sizeBytes": {
      -                              "description": "UTF-8 byte length of the file's contents",
      -                              "maximum": 131072,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "path",
      -                            "sha256",
      -                            "sizeBytes"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "maxItems": 200,
      -                        "type": "array"
      -                      }
      -                    },
      -                    "required": [
      -                      "bucket",
      -                      "files"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "kind": {
      -                    "const": "files",
      -                    "type": "string"
      -                  },
      -                  "startCommand": {
      -                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      -                    "maxLength": 2000,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "startCommand"
      -                ],
      -                "type": "object"
      -              }
      -            ]
      -          },
      -          "timeoutMs": {
      -            "default": 600000,
      -            "description": "Wall-clock budget for one execution of the step",
      -            "exclusiveMinimum": 0,
      -            "maximum": 3600000,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "language",
      -          "source"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v1",
      -        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Agent configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      +          },
      +          "input": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "items": {
      +                  "properties": {
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "properties": {
      +                                  "text": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_text",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "text"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "detail": {
      +                                    "anyOf": [
      +                                      {
      +                                        "enum": [
      +                                          "low",
      +                                          "high",
      +                                          "auto"
      +                                        ],
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "file_id": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "type": {
      +                                    "const": "input_image",
      +                                    "type": "string"
      +                                  },
      +                                  "url": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "file_id": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_file",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "file_id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        }
      +                      ]
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "system",
      +                        "user",
      +                        "assistant"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "anyOf": [
      +                        {
      +                          "const": "message",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "content"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      +          },
      +          "models": {
      +            "description": "Model configuration for each capability the agent uses",
      +            "properties": {
      +              "agent": {
      +                "description": "Primary agent model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      +                    "enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2"
      +                    ],
      +                    "type": "string",
      +                    "x-extensible-enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-sonnet-5-5",
      +                      "claude-sonnet-5-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]",
      +                      "glm-5.2"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "model"
      +                ],
      +                "type": "object"
      +              },
      +              "browsing": {
      +                "description": "Browsing/computer-use model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier for the browsing provider",
      +                    "enum": [
      +                      "gemini-2.5-pro",
      +                      "gemini-2.5-flash",
      +                      "gemini-3-pro-preview",
      +                      "claude-haiku-4-5",
      +                      "claude-sonnet-4-5",
      +                      "claude-opus-4-1"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "provider": {
      +                    "description": "Provider backing the browsing/computer-use model",
      +                    "enum": [
      +                      "google",
      +                      "anthropic"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "provider",
      +                  "model"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "agent",
      +              "browsing"
      +            ],
      +            "type": "object"
      +          },
      +          "options": {
      +            "additionalProperties": {},
      +            "description": "Optional runtime options controlling how the agent executes",
      +            "properties": {
      +              "benchmarkExpectedOutcomes": {
      +                "description": "Expected outcomes used when running benchmark scenarios",
      +                "items": {
      +                  "properties": {
      +                    "criteria": {
      +                      "description": "Pass/fail criteria used to evaluate the outcome",
      +                      "type": "string"
      +                    },
      +                    "description": {
      +                      "description": "Human-readable description of the expected outcome",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "description",
      +                    "criteria"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "browserProvider": {
      +                "description": "Browser infrastructure provider",
      +                "enum": [
      +                  "browserbase",
      +                  "browser-use"
      +                ],
      +                "type": "string"
      +              },
      +              "evaluationSchemaId": {
      +                "description": "ID of the evaluation schema to apply to runs of this agent",
      +                "type": "string"
      +              },
      +              "supervisedMode": {
      +                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "plugins": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      +          },
      +          "skills": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of skills (team or system) that should be available to the agent"
      +          },
      +          "subAgents": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      +          }
      +        },
      +        "required": [
      +          "models",
      +          "input"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v2",
      +        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Code step configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team file paths this step can read at run time"
      +          },
      +          "handoverRequired": {
      +            "default": false,
      +            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      +            "type": "boolean"
      +          },
      +          "language": {
      +            "description": "Language the step's program is written in",
      +            "enum": [
      +              "python"
      +            ],
      +            "type": "string"
      +          },
      +          "source": {
      +            "description": "Where the step's program comes from",
      +            "oneOf": [
      +              {
      +                "properties": {
      +                  "code": {
      +                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "const": "inline",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "code"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "properties": {
      +                  "bundle": {
      +                    "description": "The program's files, as a content-addressed manifest",
      +                    "properties": {
      +                      "bucket": {
      +                        "description": "GCS bucket the bundle's blobs are stored in",
      +                        "minLength": 1,
      +                        "type": "string"
      +                      },
      +                      "files": {
      +                        "description": "The program's files, one manifest entry each",
      +                        "items": {
      +                          "properties": {
      +                            "path": {
      +                              "description": "Path the file is materialised at, relative to the work dir",
      +                              "minLength": 1,
      +                              "type": "string"
      +                            },
      +                            "sha256": {
      +                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      +                              "maxLength": 64,
      +                              "minLength": 64,
      +                              "pattern": "^[0-9a-f]{64}$",
      +                              "type": "string"
      +                            },
      +                            "sizeBytes": {
      +                              "description": "UTF-8 byte length of the file's contents",
      +                              "maximum": 131072,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "path",
      +                            "sha256",
      +                            "sizeBytes"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "maxItems": 200,
      +                        "type": "array"
      +                      }
      +                    },
      +                    "required": [
      +                      "bucket",
      +                      "files"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "kind": {
      +                    "const": "files",
      +                    "type": "string"
      +                  },
      +                  "startCommand": {
      +                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      +                    "maxLength": 2000,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "startCommand"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "timeoutMs": {
      +            "default": 600000,
      +            "description": "Wall-clock budget for one execution of the step",
      +            "exclusiveMinimum": 0,
      +            "maximum": 3600000,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v1",
      +        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  }
      +]
  11. Changed2 schema fields changed
    • changedInput schema / properties / config / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Agent configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      -          },
      -          "input": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "items": {
      -                  "properties": {
      -                    "content": {
      -                      "anyOf": [
      -                        {
      -                          "type": "string"
      -                        },
      -                        {
      -                          "items": {
      -                            "anyOf": [
      -                              {
      -                                "properties": {
      -                                  "text": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_text",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "text"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "detail": {
      -                                    "anyOf": [
      -                                      {
      -                                        "enum": [
      -                                          "low",
      -                                          "high",
      -                                          "auto"
      -                                        ],
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "file_id": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "type": {
      -                                    "const": "input_image",
      -                                    "type": "string"
      -                                  },
      -                                  "url": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "file_id": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_file",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "file_id"
      -                                ],
      -                                "type": "object"
      -                              }
      -                            ]
      -                          },
      -                          "type": "array"
      -                        }
      -                      ]
      -                    },
      -                    "role": {
      -                      "enum": [
      -                        "system",
      -                        "user",
      -                        "assistant"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "type": {
      -                      "anyOf": [
      -                        {
      -                          "const": "message",
      -                          "type": "string"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "role",
      -                    "content"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              }
      -            ],
      -            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      -          },
      -          "models": {
      -            "description": "Model configuration for each capability the agent uses",
      -            "properties": {
      -              "agent": {
      -                "description": "Primary agent model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      -                    "enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.2",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.6-27b",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]"
      -                    ],
      -                    "type": "string",
      -                    "x-extensible-enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.2",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.6-27b",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "model"
      -                ],
      -                "type": "object"
      -              },
      -              "browsing": {
      -                "description": "Browsing/computer-use model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier for the browsing provider",
      -                    "enum": [
      -                      "gemini-2.5-pro",
      -                      "gemini-2.5-flash",
      -                      "gemini-3-pro-preview",
      -                      "claude-haiku-4-5",
      -                      "claude-sonnet-4-5",
      -                      "claude-opus-4-1"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "provider": {
      -                    "description": "Provider backing the browsing/computer-use model",
      -                    "enum": [
      -                      "google",
      -                      "anthropic"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "provider",
      -                  "model"
      -                ],
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "agent",
      -              "browsing"
      -            ],
      -            "type": "object"
      -          },
      -          "options": {
      -            "additionalProperties": {},
      -            "description": "Optional runtime options controlling how the agent executes",
      -            "properties": {
      -              "benchmarkExpectedOutcomes": {
      -                "description": "Expected outcomes used when running benchmark scenarios",
      -                "items": {
      -                  "properties": {
      -                    "criteria": {
      -                      "description": "Pass/fail criteria used to evaluate the outcome",
      -                      "type": "string"
      -                    },
      -                    "description": {
      -                      "description": "Human-readable description of the expected outcome",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "description",
      -                    "criteria"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "browserProvider": {
      -                "description": "Browser infrastructure provider",
      -                "enum": [
      -                  "browserbase",
      -                  "browser-use"
      -                ],
      -                "type": "string"
      -              },
      -              "evaluationSchemaId": {
      -                "description": "ID of the evaluation schema to apply to runs of this agent",
      -                "type": "string"
      -              },
      -              "supervisedMode": {
      -                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      -                "type": "boolean"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "plugins": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      -          },
      -          "skills": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "IDs of skills (team or system) that should be available to the agent"
      -          },
      -          "subAgents": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      -          }
      -        },
      -        "required": [
      -          "models",
      -          "input"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v2",
      -        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Code step configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team file paths this step can read at run time"
      -          },
      -          "language": {
      -            "description": "Language the step's program is written in",
      -            "enum": [
      -              "python"
      -            ],
      -            "type": "string"
      -          },
      -          "source": {
      -            "description": "Where the step's program comes from",
      -            "oneOf": [
      -              {
      -                "properties": {
      -                  "code": {
      -                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "kind": {
      -                    "const": "inline",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "code"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "properties": {
      -                  "bundle": {
      -                    "description": "The program's files, as a content-addressed manifest",
      -                    "properties": {
      -                      "bucket": {
      -                        "description": "GCS bucket the bundle's blobs are stored in",
      -                        "minLength": 1,
      -                        "type": "string"
      -                      },
      -                      "files": {
      -                        "description": "The program's files, one manifest entry each",
      -                        "items": {
      -                          "properties": {
      -                            "path": {
      -                              "description": "Path the file is materialised at, relative to the work dir",
      -                              "minLength": 1,
      -                              "type": "string"
      -                            },
      -                            "sha256": {
      -                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      -                              "maxLength": 64,
      -                              "minLength": 64,
      -                              "pattern": "^[0-9a-f]{64}$",
      -                              "type": "string"
      -                            },
      -                            "sizeBytes": {
      -                              "description": "UTF-8 byte length of the file's contents",
      -                              "maximum": 131072,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "path",
      -                            "sha256",
      -                            "sizeBytes"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "maxItems": 200,
      -                        "type": "array"
      -                      }
      -                    },
      -                    "required": [
      -                      "bucket",
      -                      "files"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "kind": {
      -                    "const": "files",
      -                    "type": "string"
      -                  },
      -                  "startCommand": {
      -                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      -                    "maxLength": 2000,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "startCommand"
      -                ],
      -                "type": "object"
      -              }
      -            ]
      -          },
      -          "timeoutMs": {
      -            "default": 600000,
      -            "description": "Wall-clock budget for one execution of the step",
      -            "exclusiveMinimum": 0,
      -            "maximum": 3600000,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "language",
      -          "source"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v1",
      -        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Agent configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      +          },
      +          "input": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "items": {
      +                  "properties": {
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "properties": {
      +                                  "text": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_text",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "text"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "detail": {
      +                                    "anyOf": [
      +                                      {
      +                                        "enum": [
      +                                          "low",
      +                                          "high",
      +                                          "auto"
      +                                        ],
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "file_id": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "type": {
      +                                    "const": "input_image",
      +                                    "type": "string"
      +                                  },
      +                                  "url": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "file_id": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_file",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "file_id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        }
      +                      ]
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "system",
      +                        "user",
      +                        "assistant"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "anyOf": [
      +                        {
      +                          "const": "message",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "content"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      +          },
      +          "models": {
      +            "description": "Model configuration for each capability the agent uses",
      +            "properties": {
      +              "agent": {
      +                "description": "Primary agent model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      +                    "enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.2",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]"
      +                    ],
      +                    "type": "string",
      +                    "x-extensible-enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.2",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "model"
      +                ],
      +                "type": "object"
      +              },
      +              "browsing": {
      +                "description": "Browsing/computer-use model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier for the browsing provider",
      +                    "enum": [
      +                      "gemini-2.5-pro",
      +                      "gemini-2.5-flash",
      +                      "gemini-3-pro-preview",
      +                      "claude-haiku-4-5",
      +                      "claude-sonnet-4-5",
      +                      "claude-opus-4-1"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "provider": {
      +                    "description": "Provider backing the browsing/computer-use model",
      +                    "enum": [
      +                      "google",
      +                      "anthropic"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "provider",
      +                  "model"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "agent",
      +              "browsing"
      +            ],
      +            "type": "object"
      +          },
      +          "options": {
      +            "additionalProperties": {},
      +            "description": "Optional runtime options controlling how the agent executes",
      +            "properties": {
      +              "benchmarkExpectedOutcomes": {
      +                "description": "Expected outcomes used when running benchmark scenarios",
      +                "items": {
      +                  "properties": {
      +                    "criteria": {
      +                      "description": "Pass/fail criteria used to evaluate the outcome",
      +                      "type": "string"
      +                    },
      +                    "description": {
      +                      "description": "Human-readable description of the expected outcome",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "description",
      +                    "criteria"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "browserProvider": {
      +                "description": "Browser infrastructure provider",
      +                "enum": [
      +                  "browserbase",
      +                  "browser-use"
      +                ],
      +                "type": "string"
      +              },
      +              "evaluationSchemaId": {
      +                "description": "ID of the evaluation schema to apply to runs of this agent",
      +                "type": "string"
      +              },
      +              "supervisedMode": {
      +                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "plugins": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      +          },
      +          "skills": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of skills (team or system) that should be available to the agent"
      +          },
      +          "subAgents": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      +          }
      +        },
      +        "required": [
      +          "models",
      +          "input"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v2",
      +        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Code step configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team file paths this step can read at run time"
      +          },
      +          "handoverRequired": {
      +            "default": false,
      +            "description": "When the step declares handover options, whether a run that exits cleanly without requesting one fails. Ignored when the step declares no options.",
      +            "type": "boolean"
      +          },
      +          "language": {
      +            "description": "Language the step's program is written in",
      +            "enum": [
      +              "python"
      +            ],
      +            "type": "string"
      +          },
      +          "source": {
      +            "description": "Where the step's program comes from",
      +            "oneOf": [
      +              {
      +                "properties": {
      +                  "code": {
      +                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "const": "inline",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "code"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "properties": {
      +                  "bundle": {
      +                    "description": "The program's files, as a content-addressed manifest",
      +                    "properties": {
      +                      "bucket": {
      +                        "description": "GCS bucket the bundle's blobs are stored in",
      +                        "minLength": 1,
      +                        "type": "string"
      +                      },
      +                      "files": {
      +                        "description": "The program's files, one manifest entry each",
      +                        "items": {
      +                          "properties": {
      +                            "path": {
      +                              "description": "Path the file is materialised at, relative to the work dir",
      +                              "minLength": 1,
      +                              "type": "string"
      +                            },
      +                            "sha256": {
      +                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      +                              "maxLength": 64,
      +                              "minLength": 64,
      +                              "pattern": "^[0-9a-f]{64}$",
      +                              "type": "string"
      +                            },
      +                            "sizeBytes": {
      +                              "description": "UTF-8 byte length of the file's contents",
      +                              "maximum": 131072,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "path",
      +                            "sha256",
      +                            "sizeBytes"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "maxItems": 200,
      +                        "type": "array"
      +                      }
      +                    },
      +                    "required": [
      +                      "bucket",
      +                      "files"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "kind": {
      +                    "const": "files",
      +                    "type": "string"
      +                  },
      +                  "startCommand": {
      +                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      +                    "maxLength": 2000,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "startCommand"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "timeoutMs": {
      +            "default": 600000,
      +            "description": "Wall-clock budget for one execution of the step",
      +            "exclusiveMinimum": 0,
      +            "maximum": 3600000,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v1",
      +        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / handover_options
      Added value: +{
      +  "anyOf": [
      +    {
      +      "properties": {
      +        "required": {
      +          "description": "When true, a run that exits cleanly without requesting a handover fails",
      +          "type": "boolean"
      +        },
      +        "target_agent_ids": {
      +          "description": "Steps in the same automation this code step's program may request",
      +          "items": {
      +            "format": "uuid",
      +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +            "type": "string"
      +          },
      +          "minItems": 1,
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "target_agent_ids",
      +        "required"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Code steps only. The targets the program may request, and whether it must. Null clears them; omit to inherit the source build's. Mutually exclusive with handover_to."
      +}
  12. Changed1 schema field changed
    • changedInput schema / properties / config / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Agent configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      -          },
      -          "input": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "items": {
      -                  "properties": {
      -                    "content": {
      -                      "anyOf": [
      -                        {
      -                          "type": "string"
      -                        },
      -                        {
      -                          "items": {
      -                            "anyOf": [
      -                              {
      -                                "properties": {
      -                                  "text": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_text",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "text"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "detail": {
      -                                    "anyOf": [
      -                                      {
      -                                        "enum": [
      -                                          "low",
      -                                          "high",
      -                                          "auto"
      -                                        ],
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "file_id": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "type": {
      -                                    "const": "input_image",
      -                                    "type": "string"
      -                                  },
      -                                  "url": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "file_id": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_file",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "file_id"
      -                                ],
      -                                "type": "object"
      -                              }
      -                            ]
      -                          },
      -                          "type": "array"
      -                        }
      -                      ]
      -                    },
      -                    "role": {
      -                      "enum": [
      -                        "system",
      -                        "user",
      -                        "assistant"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "type": {
      -                      "anyOf": [
      -                        {
      -                          "const": "message",
      -                          "type": "string"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "role",
      -                    "content"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              }
      -            ],
      -            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      -          },
      -          "models": {
      -            "description": "Model configuration for each capability the agent uses",
      -            "properties": {
      -              "agent": {
      -                "description": "Primary agent model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      -                    "enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.2",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.6-27b",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]"
      -                    ],
      -                    "type": "string",
      -                    "x-extensible-enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.2",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.6-27b",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "model"
      -                ],
      -                "type": "object"
      -              },
      -              "browsing": {
      -                "description": "Browsing/computer-use model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier for the browsing provider",
      -                    "enum": [
      -                      "gemini-2.5-pro",
      -                      "gemini-2.5-flash",
      -                      "gemini-3-pro-preview",
      -                      "claude-haiku-4-5",
      -                      "claude-sonnet-4-5",
      -                      "claude-opus-4-1"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "provider": {
      -                    "description": "Provider backing the browsing/computer-use model",
      -                    "enum": [
      -                      "google",
      -                      "anthropic"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "provider",
      -                  "model"
      -                ],
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "agent",
      -              "browsing"
      -            ],
      -            "type": "object"
      -          },
      -          "options": {
      -            "additionalProperties": {},
      -            "description": "Optional runtime options controlling how the agent executes",
      -            "properties": {
      -              "benchmarkExpectedOutcomes": {
      -                "description": "Expected outcomes used when running benchmark scenarios",
      -                "items": {
      -                  "properties": {
      -                    "criteria": {
      -                      "description": "Pass/fail criteria used to evaluate the outcome",
      -                      "type": "string"
      -                    },
      -                    "description": {
      -                      "description": "Human-readable description of the expected outcome",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "description",
      -                    "criteria"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "browserProvider": {
      -                "description": "Browser infrastructure provider",
      -                "enum": [
      -                  "browserbase",
      -                  "browser-use"
      -                ],
      -                "type": "string"
      -              },
      -              "evaluationSchemaId": {
      -                "description": "ID of the evaluation schema to apply to runs of this agent",
      -                "type": "string"
      -              },
      -              "supervisedMode": {
      -                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      -                "type": "boolean"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "plugins": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      -          },
      -          "skills": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "IDs of skills (team or system) that should be available to the agent"
      -          },
      -          "subAgents": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      -          }
      -        },
      -        "required": [
      -          "models",
      -          "input"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v2",
      -        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Code step configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team file paths this step can read at run time"
      -          },
      -          "language": {
      -            "description": "Language the step's program is written in",
      -            "enum": [
      -              "python"
      -            ],
      -            "type": "string"
      -          },
      -          "source": {
      -            "description": "Where the step's program comes from",
      -            "oneOf": [
      -              {
      -                "properties": {
      -                  "code": {
      -                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "kind": {
      -                    "const": "inline",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "code"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "properties": {
      -                  "kind": {
      -                    "const": "files",
      -                    "type": "string"
      -                  },
      -                  "startCommand": {
      -                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      -                    "maxLength": 2000,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "startCommand"
      -                ],
      -                "type": "object"
      -              }
      -            ]
      -          },
      -          "timeoutMs": {
      -            "default": 600000,
      -            "description": "Wall-clock budget for one execution of the step",
      -            "exclusiveMinimum": 0,
      -            "maximum": 3600000,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "language",
      -          "source"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v1",
      -        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Agent configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      +          },
      +          "input": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "items": {
      +                  "properties": {
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "properties": {
      +                                  "text": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_text",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "text"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "detail": {
      +                                    "anyOf": [
      +                                      {
      +                                        "enum": [
      +                                          "low",
      +                                          "high",
      +                                          "auto"
      +                                        ],
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "file_id": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "type": {
      +                                    "const": "input_image",
      +                                    "type": "string"
      +                                  },
      +                                  "url": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "file_id": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_file",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "file_id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        }
      +                      ]
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "system",
      +                        "user",
      +                        "assistant"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "anyOf": [
      +                        {
      +                          "const": "message",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "content"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      +          },
      +          "models": {
      +            "description": "Model configuration for each capability the agent uses",
      +            "properties": {
      +              "agent": {
      +                "description": "Primary agent model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      +                    "enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.2",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]"
      +                    ],
      +                    "type": "string",
      +                    "x-extensible-enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.2",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "model"
      +                ],
      +                "type": "object"
      +              },
      +              "browsing": {
      +                "description": "Browsing/computer-use model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier for the browsing provider",
      +                    "enum": [
      +                      "gemini-2.5-pro",
      +                      "gemini-2.5-flash",
      +                      "gemini-3-pro-preview",
      +                      "claude-haiku-4-5",
      +                      "claude-sonnet-4-5",
      +                      "claude-opus-4-1"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "provider": {
      +                    "description": "Provider backing the browsing/computer-use model",
      +                    "enum": [
      +                      "google",
      +                      "anthropic"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "provider",
      +                  "model"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "agent",
      +              "browsing"
      +            ],
      +            "type": "object"
      +          },
      +          "options": {
      +            "additionalProperties": {},
      +            "description": "Optional runtime options controlling how the agent executes",
      +            "properties": {
      +              "benchmarkExpectedOutcomes": {
      +                "description": "Expected outcomes used when running benchmark scenarios",
      +                "items": {
      +                  "properties": {
      +                    "criteria": {
      +                      "description": "Pass/fail criteria used to evaluate the outcome",
      +                      "type": "string"
      +                    },
      +                    "description": {
      +                      "description": "Human-readable description of the expected outcome",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "description",
      +                    "criteria"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "browserProvider": {
      +                "description": "Browser infrastructure provider",
      +                "enum": [
      +                  "browserbase",
      +                  "browser-use"
      +                ],
      +                "type": "string"
      +              },
      +              "evaluationSchemaId": {
      +                "description": "ID of the evaluation schema to apply to runs of this agent",
      +                "type": "string"
      +              },
      +              "supervisedMode": {
      +                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "plugins": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      +          },
      +          "skills": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of skills (team or system) that should be available to the agent"
      +          },
      +          "subAgents": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      +          }
      +        },
      +        "required": [
      +          "models",
      +          "input"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v2",
      +        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Code step configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team file paths this step can read at run time"
      +          },
      +          "language": {
      +            "description": "Language the step's program is written in",
      +            "enum": [
      +              "python"
      +            ],
      +            "type": "string"
      +          },
      +          "source": {
      +            "description": "Where the step's program comes from",
      +            "oneOf": [
      +              {
      +                "properties": {
      +                  "code": {
      +                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "const": "inline",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "code"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "properties": {
      +                  "bundle": {
      +                    "description": "The program's files, as a content-addressed manifest",
      +                    "properties": {
      +                      "bucket": {
      +                        "description": "GCS bucket the bundle's blobs are stored in",
      +                        "minLength": 1,
      +                        "type": "string"
      +                      },
      +                      "files": {
      +                        "description": "The program's files, one manifest entry each",
      +                        "items": {
      +                          "properties": {
      +                            "path": {
      +                              "description": "Path the file is materialised at, relative to the work dir",
      +                              "minLength": 1,
      +                              "type": "string"
      +                            },
      +                            "sha256": {
      +                              "description": "Digest of the file's bytes, and the key its blob is stored at",
      +                              "maxLength": 64,
      +                              "minLength": 64,
      +                              "pattern": "^[0-9a-f]{64}$",
      +                              "type": "string"
      +                            },
      +                            "sizeBytes": {
      +                              "description": "UTF-8 byte length of the file's contents",
      +                              "maximum": 131072,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "path",
      +                            "sha256",
      +                            "sizeBytes"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "maxItems": 200,
      +                        "type": "array"
      +                      }
      +                    },
      +                    "required": [
      +                      "bucket",
      +                      "files"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "kind": {
      +                    "const": "files",
      +                    "type": "string"
      +                  },
      +                  "startCommand": {
      +                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      +                    "maxLength": 2000,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "startCommand"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "timeoutMs": {
      +            "default": 600000,
      +            "description": "Wall-clock budget for one execution of the step",
      +            "exclusiveMinimum": 0,
      +            "maximum": 3600000,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v1",
      +        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  }
      +]
  13. Changed2 schema fields changed
    • changedInput schema / properties / config / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Agent configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      -          },
      -          "input": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "items": {
      -                  "properties": {
      -                    "content": {
      -                      "anyOf": [
      -                        {
      -                          "type": "string"
      -                        },
      -                        {
      -                          "items": {
      -                            "anyOf": [
      -                              {
      -                                "properties": {
      -                                  "text": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_text",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "text"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "detail": {
      -                                    "anyOf": [
      -                                      {
      -                                        "enum": [
      -                                          "low",
      -                                          "high",
      -                                          "auto"
      -                                        ],
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "file_id": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "type": {
      -                                    "const": "input_image",
      -                                    "type": "string"
      -                                  },
      -                                  "url": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "file_id": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_file",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "file_id"
      -                                ],
      -                                "type": "object"
      -                              }
      -                            ]
      -                          },
      -                          "type": "array"
      -                        }
      -                      ]
      -                    },
      -                    "role": {
      -                      "enum": [
      -                        "system",
      -                        "user",
      -                        "assistant"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "type": {
      -                      "anyOf": [
      -                        {
      -                          "const": "message",
      -                          "type": "string"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "role",
      -                    "content"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              }
      -            ],
      -            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      -          },
      -          "models": {
      -            "description": "Model configuration for each capability the agent uses",
      -            "properties": {
      -              "agent": {
      -                "description": "Primary agent model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      -                    "enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.2",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.6-27b",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]"
      -                    ],
      -                    "type": "string",
      -                    "x-extensible-enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.2",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.6-27b",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "model"
      -                ],
      -                "type": "object"
      -              },
      -              "browsing": {
      -                "description": "Browsing/computer-use model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier for the browsing provider",
      -                    "enum": [
      -                      "gemini-2.5-pro",
      -                      "gemini-2.5-flash",
      -                      "gemini-3-pro-preview",
      -                      "claude-haiku-4-5",
      -                      "claude-sonnet-4-5",
      -                      "claude-opus-4-1"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "provider": {
      -                    "description": "Provider backing the browsing/computer-use model",
      -                    "enum": [
      -                      "google",
      -                      "anthropic"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "provider",
      -                  "model"
      -                ],
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "agent",
      -              "browsing"
      -            ],
      -            "type": "object"
      -          },
      -          "options": {
      -            "additionalProperties": {},
      -            "description": "Optional runtime options controlling how the agent executes",
      -            "properties": {
      -              "benchmarkExpectedOutcomes": {
      -                "description": "Expected outcomes used when running benchmark scenarios",
      -                "items": {
      -                  "properties": {
      -                    "criteria": {
      -                      "description": "Pass/fail criteria used to evaluate the outcome",
      -                      "type": "string"
      -                    },
      -                    "description": {
      -                      "description": "Human-readable description of the expected outcome",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "description",
      -                    "criteria"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "browserProvider": {
      -                "description": "Browser infrastructure provider",
      -                "enum": [
      -                  "browserbase",
      -                  "browser-use"
      -                ],
      -                "type": "string"
      -              },
      -              "evaluationSchemaId": {
      -                "description": "ID of the evaluation schema to apply to runs of this agent",
      -                "type": "string"
      -              },
      -              "supervisedMode": {
      -                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      -                "type": "boolean"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "plugins": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      -          },
      -          "skills": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "IDs of skills (team or system) that should be available to the agent"
      -          },
      -          "subAgents": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "IDs of other agents (in the same team) to expose to this agent as Claude Code subagents. Each sub-agent runs with its own AOP and connections; the parent can delegate to them via the Agent tool."
      -          }
      -        },
      -        "required": [
      -          "models",
      -          "input"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v2",
      -        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Code step configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team file paths this step can read at run time"
      -          },
      -          "language": {
      -            "description": "Language the step's program is written in",
      -            "enum": [
      -              "python"
      -            ],
      -            "type": "string"
      -          },
      -          "source": {
      -            "description": "Where the step's program comes from",
      -            "oneOf": [
      -              {
      -                "properties": {
      -                  "code": {
      -                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "kind": {
      -                    "const": "inline",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "code"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "properties": {
      -                  "kind": {
      -                    "const": "files",
      -                    "type": "string"
      -                  },
      -                  "startCommand": {
      -                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      -                    "maxLength": 2000,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "startCommand"
      -                ],
      -                "type": "object"
      -              }
      -            ]
      -          },
      -          "timeoutMs": {
      -            "default": 600000,
      -            "description": "Wall-clock budget for one execution of the step",
      -            "exclusiveMinimum": 0,
      -            "maximum": 3600000,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "language",
      -          "source"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v1",
      -        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Agent configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      +          },
      +          "input": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "items": {
      +                  "properties": {
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "properties": {
      +                                  "text": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_text",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "text"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "detail": {
      +                                    "anyOf": [
      +                                      {
      +                                        "enum": [
      +                                          "low",
      +                                          "high",
      +                                          "auto"
      +                                        ],
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "file_id": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "type": {
      +                                    "const": "input_image",
      +                                    "type": "string"
      +                                  },
      +                                  "url": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "file_id": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_file",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "file_id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        }
      +                      ]
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "system",
      +                        "user",
      +                        "assistant"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "anyOf": [
      +                        {
      +                          "const": "message",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "content"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      +          },
      +          "models": {
      +            "description": "Model configuration for each capability the agent uses",
      +            "properties": {
      +              "agent": {
      +                "description": "Primary agent model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      +                    "enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.2",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]"
      +                    ],
      +                    "type": "string",
      +                    "x-extensible-enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.2",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "model"
      +                ],
      +                "type": "object"
      +              },
      +              "browsing": {
      +                "description": "Browsing/computer-use model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier for the browsing provider",
      +                    "enum": [
      +                      "gemini-2.5-pro",
      +                      "gemini-2.5-flash",
      +                      "gemini-3-pro-preview",
      +                      "claude-haiku-4-5",
      +                      "claude-sonnet-4-5",
      +                      "claude-opus-4-1"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "provider": {
      +                    "description": "Provider backing the browsing/computer-use model",
      +                    "enum": [
      +                      "google",
      +                      "anthropic"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "provider",
      +                  "model"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "agent",
      +              "browsing"
      +            ],
      +            "type": "object"
      +          },
      +          "options": {
      +            "additionalProperties": {},
      +            "description": "Optional runtime options controlling how the agent executes",
      +            "properties": {
      +              "benchmarkExpectedOutcomes": {
      +                "description": "Expected outcomes used when running benchmark scenarios",
      +                "items": {
      +                  "properties": {
      +                    "criteria": {
      +                      "description": "Pass/fail criteria used to evaluate the outcome",
      +                      "type": "string"
      +                    },
      +                    "description": {
      +                      "description": "Human-readable description of the expected outcome",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "description",
      +                    "criteria"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "browserProvider": {
      +                "description": "Browser infrastructure provider",
      +                "enum": [
      +                  "browserbase",
      +                  "browser-use"
      +                ],
      +                "type": "string"
      +              },
      +              "evaluationSchemaId": {
      +                "description": "ID of the evaluation schema to apply to runs of this agent",
      +                "type": "string"
      +              },
      +              "supervisedMode": {
      +                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "plugins": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      +          },
      +          "skills": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of skills (team or system) that should be available to the agent"
      +          },
      +          "subAgents": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      +          }
      +        },
      +        "required": [
      +          "models",
      +          "input"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v2",
      +        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Code step configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team file paths this step can read at run time"
      +          },
      +          "language": {
      +            "description": "Language the step's program is written in",
      +            "enum": [
      +              "python"
      +            ],
      +            "type": "string"
      +          },
      +          "source": {
      +            "description": "Where the step's program comes from",
      +            "oneOf": [
      +              {
      +                "properties": {
      +                  "code": {
      +                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "const": "inline",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "code"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "properties": {
      +                  "kind": {
      +                    "const": "files",
      +                    "type": "string"
      +                  },
      +                  "startCommand": {
      +                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      +                    "maxLength": 2000,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "startCommand"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "timeoutMs": {
      +            "default": 600000,
      +            "description": "Wall-clock budget for one execution of the step",
      +            "exclusiveMinimum": 0,
      +            "maximum": 3600000,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v1",
      +        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / handover_to
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "uuid",
      +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The single agent or code step to run after this one completes (\"Handover to\"). Mutually exclusive with handover_target_ids."
      +}
  14. Changed5 schema fields changed
    • addedInput schema / properties / config / anyOf
      Added value: +[
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Agent configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      +          },
      +          "input": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "items": {
      +                  "properties": {
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "properties": {
      +                                  "text": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_text",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "text"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "detail": {
      +                                    "anyOf": [
      +                                      {
      +                                        "enum": [
      +                                          "low",
      +                                          "high",
      +                                          "auto"
      +                                        ],
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "file_id": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "type": {
      +                                    "const": "input_image",
      +                                    "type": "string"
      +                                  },
      +                                  "url": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "file_id": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_file",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "file_id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        }
      +                      ]
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "system",
      +                        "user",
      +                        "assistant"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "anyOf": [
      +                        {
      +                          "const": "message",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "content"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      +          },
      +          "models": {
      +            "description": "Model configuration for each capability the agent uses",
      +            "properties": {
      +              "agent": {
      +                "description": "Primary agent model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      +                    "enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.2",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]"
      +                    ],
      +                    "type": "string",
      +                    "x-extensible-enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.2",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "model"
      +                ],
      +                "type": "object"
      +              },
      +              "browsing": {
      +                "description": "Browsing/computer-use model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier for the browsing provider",
      +                    "enum": [
      +                      "gemini-2.5-pro",
      +                      "gemini-2.5-flash",
      +                      "gemini-3-pro-preview",
      +                      "claude-haiku-4-5",
      +                      "claude-sonnet-4-5",
      +                      "claude-opus-4-1"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "provider": {
      +                    "description": "Provider backing the browsing/computer-use model",
      +                    "enum": [
      +                      "google",
      +                      "anthropic"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "provider",
      +                  "model"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "agent",
      +              "browsing"
      +            ],
      +            "type": "object"
      +          },
      +          "options": {
      +            "additionalProperties": {},
      +            "description": "Optional runtime options controlling how the agent executes",
      +            "properties": {
      +              "benchmarkExpectedOutcomes": {
      +                "description": "Expected outcomes used when running benchmark scenarios",
      +                "items": {
      +                  "properties": {
      +                    "criteria": {
      +                      "description": "Pass/fail criteria used to evaluate the outcome",
      +                      "type": "string"
      +                    },
      +                    "description": {
      +                      "description": "Human-readable description of the expected outcome",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "description",
      +                    "criteria"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "browserProvider": {
      +                "description": "Browser infrastructure provider",
      +                "enum": [
      +                  "browserbase",
      +                  "browser-use"
      +                ],
      +                "type": "string"
      +              },
      +              "evaluationSchemaId": {
      +                "description": "ID of the evaluation schema to apply to runs of this agent",
      +                "type": "string"
      +              },
      +              "supervisedMode": {
      +                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "plugins": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      +          },
      +          "skills": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of skills (team or system) that should be available to the agent"
      +          },
      +          "subAgents": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of other agents (in the same team) to expose to this agent as Claude Code subagents. Each sub-agent runs with its own AOP and connections; the parent can delegate to them via the Agent tool."
      +          }
      +        },
      +        "required": [
      +          "models",
      +          "input"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v2",
      +        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Code step configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team file paths this step can read at run time"
      +          },
      +          "language": {
      +            "description": "Language the step's program is written in",
      +            "enum": [
      +              "python"
      +            ],
      +            "type": "string"
      +          },
      +          "source": {
      +            "description": "Where the step's program comes from",
      +            "oneOf": [
      +              {
      +                "properties": {
      +                  "code": {
      +                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "const": "inline",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "code"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "properties": {
      +                  "kind": {
      +                    "const": "files",
      +                    "type": "string"
      +                  },
      +                  "startCommand": {
      +                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      +                    "maxLength": 2000,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "startCommand"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "timeoutMs": {
      +            "default": 600000,
      +            "description": "Wall-clock budget for one execution of the step",
      +            "exclusiveMinimum": 0,
      +            "maximum": 3600000,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v1",
      +        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / config / description
      Previous value: -"Build configuration (latest schema version only; legacy v1 configs are not accepted)"New value: +"Build configuration. An agent step takes the latest agent schema (legacy v1 agent configs are not accepted); a code step takes a code-step config. Omit it to get the step family's default first build."
    • removedInput schema / properties / config / properties
      Removed value: -{
      -  "data": {
      -    "description": "Agent configuration payload",
      -    "properties": {
      -      "files": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": [],
      -        "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      -      },
      -      "input": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "items": {
      -              "properties": {
      -                "content": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "items": {
      -                        "anyOf": [
      -                          {
      -                            "properties": {
      -                              "text": {
      -                                "type": "string"
      -                              },
      -                              "type": {
      -                                "const": "input_text",
      -                                "type": "string"
      -                              }
      -                            },
      -                            "required": [
      -                              "type",
      -                              "text"
      -                            ],
      -                            "type": "object"
      -                          },
      -                          {
      -                            "properties": {
      -                              "detail": {
      -                                "anyOf": [
      -                                  {
      -                                    "enum": [
      -                                      "low",
      -                                      "high",
      -                                      "auto"
      -                                    ],
      -                                    "type": "string"
      -                                  },
      -                                  {
      -                                    "type": "null"
      -                                  }
      -                                ]
      -                              },
      -                              "file_id": {
      -                                "anyOf": [
      -                                  {
      -                                    "type": "string"
      -                                  },
      -                                  {
      -                                    "type": "null"
      -                                  }
      -                                ]
      -                              },
      -                              "type": {
      -                                "const": "input_image",
      -                                "type": "string"
      -                              },
      -                              "url": {
      -                                "anyOf": [
      -                                  {
      -                                    "type": "string"
      -                                  },
      -                                  {
      -                                    "type": "null"
      -                                  }
      -                                ]
      -                              }
      -                            },
      -                            "required": [
      -                              "type"
      -                            ],
      -                            "type": "object"
      -                          },
      -                          {
      -                            "properties": {
      -                              "file_id": {
      -                                "type": "string"
      -                              },
      -                              "type": {
      -                                "const": "input_file",
      -                                "type": "string"
      -                              }
      -                            },
      -                            "required": [
      -                              "type",
      -                              "file_id"
      -                            ],
      -                            "type": "object"
      -                          }
      -                        ]
      -                      },
      -                      "type": "array"
      -                    }
      -                  ]
      -                },
      -                "role": {
      -                  "enum": [
      -                    "system",
      -                    "user",
      -                    "assistant"
      -                  ],
      -                  "type": "string"
      -                },
      -                "type": {
      -                  "anyOf": [
      -                    {
      -                      "const": "message",
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                }
      -              },
      -              "required": [
      -                "role",
      -                "content"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        ],
      -        "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      -      },
      -      "models": {
      -        "description": "Model configuration for each capability the agent uses",
      -        "properties": {
      -          "agent": {
      -            "description": "Primary agent model configuration",
      -            "properties": {
      -              "model": {
      -                "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      -                "enum": [
      -                  "claude-haiku-4-5-20251001",
      -                  "claude-sonnet-5",
      -                  "claude-sonnet-5[1m]",
      -                  "claude-opus-5",
      -                  "claude-opus-5[1m]",
      -                  "kimi-k3",
      -                  "kimi-k3-duvo",
      -                  "glm-5.2",
      -                  "glm-5.3-flash",
      -                  "deepseek-v4-flash",
      -                  "minimax-m3",
      -                  "qwen3.6-27b",
      -                  "d1-max",
      -                  "duvo-1-max",
      -                  "duvo-1-max-sonnet-1m",
      -                  "duvo-1-max-sonnet-4.5",
      -                  "duvo-1-max-sonnet-4.5-1m",
      -                  "duvo-1-max-opus",
      -                  "duvo-1-max-opus-4.5",
      -                  "gpt-4.1",
      -                  "gpt-4o",
      -                  "gpt-4o-mini",
      -                  "gpt-5",
      -                  "gpt-5.1",
      -                  "claude-sonnet-4-20250514",
      -                  "claude-sonnet-4-20250514[1m]",
      -                  "claude-sonnet-4-5-20250929",
      -                  "claude-sonnet-4-5-20250929[1m]",
      -                  "claude-sonnet-4-6",
      -                  "claude-sonnet-4-6[1m]",
      -                  "claude-opus-4-1-20250805",
      -                  "claude-opus-4-5-20251101",
      -                  "claude-opus-4-6",
      -                  "claude-opus-4-6[1m]",
      -                  "claude-opus-4-7",
      -                  "claude-opus-4-7[1m]",
      -                  "claude-opus-4-8",
      -                  "claude-opus-4-8[1m]"
      -                ],
      -                "type": "string",
      -                "x-extensible-enum": [
      -                  "claude-haiku-4-5-20251001",
      -                  "claude-sonnet-5",
      -                  "claude-sonnet-5[1m]",
      -                  "claude-opus-5",
      -                  "claude-opus-5[1m]",
      -                  "kimi-k3",
      -                  "kimi-k3-duvo",
      -                  "glm-5.2",
      -                  "glm-5.3-flash",
      -                  "deepseek-v4-flash",
      -                  "minimax-m3",
      -                  "qwen3.6-27b",
      -                  "d1-max",
      -                  "duvo-1-max",
      -                  "duvo-1-max-sonnet-1m",
      -                  "duvo-1-max-sonnet-4.5",
      -                  "duvo-1-max-sonnet-4.5-1m",
      -                  "duvo-1-max-opus",
      -                  "duvo-1-max-opus-4.5",
      -                  "gpt-4.1",
      -                  "gpt-4o",
      -                  "gpt-4o-mini",
      -                  "gpt-5",
      -                  "gpt-5.1",
      -                  "claude-sonnet-4-20250514",
      -                  "claude-sonnet-4-20250514[1m]",
      -                  "claude-sonnet-4-5-20250929",
      -                  "claude-sonnet-4-5-20250929[1m]",
      -                  "claude-sonnet-4-6",
      -                  "claude-sonnet-4-6[1m]",
      -                  "claude-opus-4-1-20250805",
      -                  "claude-opus-4-5-20251101",
      -                  "claude-opus-4-6",
      -                  "claude-opus-4-6[1m]",
      -                  "claude-opus-4-7",
      -                  "claude-opus-4-7[1m]",
      -                  "claude-opus-4-8",
      -                  "claude-opus-4-8[1m]"
      -                ]
      -              }
      -            },
      -            "required": [
      -              "model"
      -            ],
      -            "type": "object"
      -          },
      -          "browsing": {
      -            "description": "Browsing/computer-use model configuration",
      -            "properties": {
      -              "model": {
      -                "description": "Model identifier for the browsing provider",
      -                "enum": [
      -                  "gemini-2.5-pro",
      -                  "gemini-2.5-flash",
      -                  "gemini-3-pro-preview",
      -                  "claude-haiku-4-5",
      -                  "claude-sonnet-4-5",
      -                  "claude-opus-4-1"
      -                ],
      -                "type": "string"
      -              },
      -              "provider": {
      -                "description": "Provider backing the browsing/computer-use model",
      -                "enum": [
      -                  "google",
      -                  "anthropic"
      -                ],
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "provider",
      -              "model"
      -            ],
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "agent",
      -          "browsing"
      -        ],
      -        "type": "object"
      -      },
      -      "options": {
      -        "additionalProperties": {},
      -        "description": "Optional runtime options controlling how the agent executes",
      -        "properties": {
      -          "benchmarkExpectedOutcomes": {
      -            "description": "Expected outcomes used when running benchmark scenarios",
      -            "items": {
      -              "properties": {
      -                "criteria": {
      -                  "description": "Pass/fail criteria used to evaluate the outcome",
      -                  "type": "string"
      -                },
      -                "description": {
      -                  "description": "Human-readable description of the expected outcome",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "description",
      -                "criteria"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "browserProvider": {
      -            "description": "Browser infrastructure provider",
      -            "enum": [
      -              "browserbase",
      -              "browser-use"
      -            ],
      -            "type": "string"
      -          },
      -          "evaluationSchemaId": {
      -            "description": "ID of the evaluation schema to apply to runs of this agent",
      -            "type": "string"
      -          },
      -          "supervisedMode": {
      -            "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "plugins": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": [],
      -        "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      -      },
      -      "skills": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": [],
      -        "description": "IDs of skills (team or system) that should be available to the agent"
      -      },
      -      "subAgents": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": [],
      -        "description": "IDs of other agents (in the same team) to expose to this agent as Claude Code subagents. Each sub-agent runs with its own AOP and connections; the parent can delegate to them via the Agent tool."
      -      }
      -    },
      -    "required": [
      -      "models",
      -      "input"
      -    ],
      -    "type": "object"
      -  },
      -  "version": {
      -    "const": "v2",
      -    "description": "Schema version discriminator — must be \"v2\" for the current schema",
      -    "type": "string"
      -  }
      -}
    • removedInput schema / properties / config / required
      Removed value: -[
      -  "version",
      -  "data"
      -]
    • removedInput schema / properties / config / type
      Removed value: -"object"
  15. Changed2 schema fields changed
    • changedInput schema / properties / config / properties / data / properties / models / properties / agent / properties / model / enum
      Previous value: -[
      -  "claude-haiku-4-5-20251001",
      -  "claude-sonnet-5",
      -  "claude-sonnet-5[1m]",
      -  "claude-opus-5",
      -  "claude-opus-5[1m]",
      -  "kimi-k3",
      -  "kimi-k3-duvo",
      -  "glm-5.2",
      -  "deepseek-v4-flash",
      -  "minimax-m3",
      -  "qwen3.6-27b",
      -  "d1-max",
      -  "duvo-1-max",
      -  "duvo-1-max-sonnet-1m",
      -  "duvo-1-max-sonnet-4.5",
      -  "duvo-1-max-sonnet-4.5-1m",
      -  "duvo-1-max-opus",
      -  "duvo-1-max-opus-4.5",
      -  "gpt-4.1",
      -  "gpt-4o",
      -  "gpt-4o-mini",
      -  "gpt-5",
      -  "gpt-5.1",
      -  "claude-sonnet-4-20250514",
      -  "claude-sonnet-4-20250514[1m]",
      -  "claude-sonnet-4-5-20250929",
      -  "claude-sonnet-4-5-20250929[1m]",
      -  "claude-sonnet-4-6",
      -  "claude-sonnet-4-6[1m]",
      -  "claude-opus-4-1-20250805",
      -  "claude-opus-4-5-20251101",
      -  "claude-opus-4-6",
      -  "claude-opus-4-6[1m]",
      -  "claude-opus-4-7",
      -  "claude-opus-4-7[1m]",
      -  "claude-opus-4-8",
      -  "claude-opus-4-8[1m]"
      -]New value: +[
      +  "claude-haiku-4-5-20251001",
      +  "claude-sonnet-5",
      +  "claude-sonnet-5[1m]",
      +  "claude-opus-5",
      +  "claude-opus-5[1m]",
      +  "kimi-k3",
      +  "kimi-k3-duvo",
      +  "glm-5.2",
      +  "glm-5.3-flash",
      +  "deepseek-v4-flash",
      +  "minimax-m3",
      +  "qwen3.6-27b",
      +  "d1-max",
      +  "duvo-1-max",
      +  "duvo-1-max-sonnet-1m",
      +  "duvo-1-max-sonnet-4.5",
      +  "duvo-1-max-sonnet-4.5-1m",
      +  "duvo-1-max-opus",
      +  "duvo-1-max-opus-4.5",
      +  "gpt-4.1",
      +  "gpt-4o",
      +  "gpt-4o-mini",
      +  "gpt-5",
      +  "gpt-5.1",
      +  "claude-sonnet-4-20250514",
      +  "claude-sonnet-4-20250514[1m]",
      +  "claude-sonnet-4-5-20250929",
      +  "claude-sonnet-4-5-20250929[1m]",
      +  "claude-sonnet-4-6",
      +  "claude-sonnet-4-6[1m]",
      +  "claude-opus-4-1-20250805",
      +  "claude-opus-4-5-20251101",
      +  "claude-opus-4-6",
      +  "claude-opus-4-6[1m]",
      +  "claude-opus-4-7",
      +  "claude-opus-4-7[1m]",
      +  "claude-opus-4-8",
      +  "claude-opus-4-8[1m]"
      +]
    • changedInput schema / properties / config / properties / data / properties / models / properties / agent / properties / model / x-extensible-enum
      Previous value: -[
      -  "claude-haiku-4-5-20251001",
      -  "claude-sonnet-5",
      -  "claude-sonnet-5[1m]",
      -  "claude-opus-5",
      -  "claude-opus-5[1m]",
      -  "kimi-k3",
      -  "kimi-k3-duvo",
      -  "glm-5.2",
      -  "deepseek-v4-flash",
      -  "minimax-m3",
      -  "qwen3.6-27b",
      -  "d1-max",
      -  "duvo-1-max",
      -  "duvo-1-max-sonnet-1m",
      -  "duvo-1-max-sonnet-4.5",
      -  "duvo-1-max-sonnet-4.5-1m",
      -  "duvo-1-max-opus",
      -  "duvo-1-max-opus-4.5",
      -  "gpt-4.1",
      -  "gpt-4o",
      -  "gpt-4o-mini",
      -  "gpt-5",
      -  "gpt-5.1",
      -  "claude-sonnet-4-20250514",
      -  "claude-sonnet-4-20250514[1m]",
      -  "claude-sonnet-4-5-20250929",
      -  "claude-sonnet-4-5-20250929[1m]",
      -  "claude-sonnet-4-6",
      -  "claude-sonnet-4-6[1m]",
      -  "claude-opus-4-1-20250805",
      -  "claude-opus-4-5-20251101",
      -  "claude-opus-4-6",
      -  "claude-opus-4-6[1m]",
      -  "claude-opus-4-7",
      -  "claude-opus-4-7[1m]",
      -  "claude-opus-4-8",
      -  "claude-opus-4-8[1m]"
      -]New value: +[
      +  "claude-haiku-4-5-20251001",
      +  "claude-sonnet-5",
      +  "claude-sonnet-5[1m]",
      +  "claude-opus-5",
      +  "claude-opus-5[1m]",
      +  "kimi-k3",
      +  "kimi-k3-duvo",
      +  "glm-5.2",
      +  "glm-5.3-flash",
      +  "deepseek-v4-flash",
      +  "minimax-m3",
      +  "qwen3.6-27b",
      +  "d1-max",
      +  "duvo-1-max",
      +  "duvo-1-max-sonnet-1m",
      +  "duvo-1-max-sonnet-4.5",
      +  "duvo-1-max-sonnet-4.5-1m",
      +  "duvo-1-max-opus",
      +  "duvo-1-max-opus-4.5",
      +  "gpt-4.1",
      +  "gpt-4o",
      +  "gpt-4o-mini",
      +  "gpt-5",
      +  "gpt-5.1",
      +  "claude-sonnet-4-20250514",
      +  "claude-sonnet-4-20250514[1m]",
      +  "claude-sonnet-4-5-20250929",
      +  "claude-sonnet-4-5-20250929[1m]",
      +  "claude-sonnet-4-6",
      +  "claude-sonnet-4-6[1m]",
      +  "claude-opus-4-1-20250805",
      +  "claude-opus-4-5-20251101",
      +  "claude-opus-4-6",
      +  "claude-opus-4-6[1m]",
      +  "claude-opus-4-7",
      +  "claude-opus-4-7[1m]",
      +  "claude-opus-4-8",
      +  "claude-opus-4-8[1m]"
      +]
  16. Changed1 schema field changed
    • changedInput schema / properties / config / properties / data / properties / files / description
      Previous value: -"IDs of team files that should be available to the agent"New value: +"Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
  17. Changed2 schema fields changed
    • changedInput schema / properties / config / properties / data / properties / models / properties / agent / properties / model / enum
      Previous value: -[
      -  "claude-haiku-4-5-20251001",
      -  "claude-sonnet-5",
      -  "claude-sonnet-5[1m]",
      -  "claude-opus-5",
      -  "claude-opus-5[1m]",
      -  "kimi-k3",
      -  "glm-5.2",
      -  "deepseek-v4-flash",
      -  "minimax-m3",
      -  "qwen3.6-27b",
      -  "d1-max",
      -  "duvo-1-max",
      -  "duvo-1-max-sonnet-1m",
      -  "duvo-1-max-sonnet-4.5",
      -  "duvo-1-max-sonnet-4.5-1m",
      -  "duvo-1-max-opus",
      -  "duvo-1-max-opus-4.5",
      -  "gpt-4.1",
      -  "gpt-4o",
      -  "gpt-4o-mini",
      -  "gpt-5",
      -  "gpt-5.1",
      -  "claude-sonnet-4-20250514",
      -  "claude-sonnet-4-20250514[1m]",
      -  "claude-sonnet-4-5-20250929",
      -  "claude-sonnet-4-5-20250929[1m]",
      -  "claude-sonnet-4-6",
      -  "claude-sonnet-4-6[1m]",
      -  "claude-opus-4-1-20250805",
      -  "claude-opus-4-5-20251101",
      -  "claude-opus-4-6",
      -  "claude-opus-4-6[1m]",
      -  "claude-opus-4-7",
      -  "claude-opus-4-7[1m]",
      -  "claude-opus-4-8",
      -  "claude-opus-4-8[1m]"
      -]New value: +[
      +  "claude-haiku-4-5-20251001",
      +  "claude-sonnet-5",
      +  "claude-sonnet-5[1m]",
      +  "claude-opus-5",
      +  "claude-opus-5[1m]",
      +  "kimi-k3",
      +  "kimi-k3-duvo",
      +  "glm-5.2",
      +  "deepseek-v4-flash",
      +  "minimax-m3",
      +  "qwen3.6-27b",
      +  "d1-max",
      +  "duvo-1-max",
      +  "duvo-1-max-sonnet-1m",
      +  "duvo-1-max-sonnet-4.5",
      +  "duvo-1-max-sonnet-4.5-1m",
      +  "duvo-1-max-opus",
      +  "duvo-1-max-opus-4.5",
      +  "gpt-4.1",
      +  "gpt-4o",
      +  "gpt-4o-mini",
      +  "gpt-5",
      +  "gpt-5.1",
      +  "claude-sonnet-4-20250514",
      +  "claude-sonnet-4-20250514[1m]",
      +  "claude-sonnet-4-5-20250929",
      +  "claude-sonnet-4-5-20250929[1m]",
      +  "claude-sonnet-4-6",
      +  "claude-sonnet-4-6[1m]",
      +  "claude-opus-4-1-20250805",
      +  "claude-opus-4-5-20251101",
      +  "claude-opus-4-6",
      +  "claude-opus-4-6[1m]",
      +  "claude-opus-4-7",
      +  "claude-opus-4-7[1m]",
      +  "claude-opus-4-8",
      +  "claude-opus-4-8[1m]"
      +]
    • changedInput schema / properties / config / properties / data / properties / models / properties / agent / properties / model / x-extensible-enum
      Previous value: -[
      -  "claude-haiku-4-5-20251001",
      -  "claude-sonnet-5",
      -  "claude-sonnet-5[1m]",
      -  "claude-opus-5",
      -  "claude-opus-5[1m]",
      -  "kimi-k3",
      -  "glm-5.2",
      -  "deepseek-v4-flash",
      -  "minimax-m3",
      -  "qwen3.6-27b",
      -  "d1-max",
      -  "duvo-1-max",
      -  "duvo-1-max-sonnet-1m",
      -  "duvo-1-max-sonnet-4.5",
      -  "duvo-1-max-sonnet-4.5-1m",
      -  "duvo-1-max-opus",
      -  "duvo-1-max-opus-4.5",
      -  "gpt-4.1",
      -  "gpt-4o",
      -  "gpt-4o-mini",
      -  "gpt-5",
      -  "gpt-5.1",
      -  "claude-sonnet-4-20250514",
      -  "claude-sonnet-4-20250514[1m]",
      -  "claude-sonnet-4-5-20250929",
      -  "claude-sonnet-4-5-20250929[1m]",
      -  "claude-sonnet-4-6",
      -  "claude-sonnet-4-6[1m]",
      -  "claude-opus-4-1-20250805",
      -  "claude-opus-4-5-20251101",
      -  "claude-opus-4-6",
      -  "claude-opus-4-6[1m]",
      -  "claude-opus-4-7",
      -  "claude-opus-4-7[1m]",
      -  "claude-opus-4-8",
      -  "claude-opus-4-8[1m]"
      -]New value: +[
      +  "claude-haiku-4-5-20251001",
      +  "claude-sonnet-5",
      +  "claude-sonnet-5[1m]",
      +  "claude-opus-5",
      +  "claude-opus-5[1m]",
      +  "kimi-k3",
      +  "kimi-k3-duvo",
      +  "glm-5.2",
      +  "deepseek-v4-flash",
      +  "minimax-m3",
      +  "qwen3.6-27b",
      +  "d1-max",
      +  "duvo-1-max",
      +  "duvo-1-max-sonnet-1m",
      +  "duvo-1-max-sonnet-4.5",
      +  "duvo-1-max-sonnet-4.5-1m",
      +  "duvo-1-max-opus",
      +  "duvo-1-max-opus-4.5",
      +  "gpt-4.1",
      +  "gpt-4o",
      +  "gpt-4o-mini",
      +  "gpt-5",
      +  "gpt-5.1",
      +  "claude-sonnet-4-20250514",
      +  "claude-sonnet-4-20250514[1m]",
      +  "claude-sonnet-4-5-20250929",
      +  "claude-sonnet-4-5-20250929[1m]",
      +  "claude-sonnet-4-6",
      +  "claude-sonnet-4-6[1m]",
      +  "claude-opus-4-1-20250805",
      +  "claude-opus-4-5-20251101",
      +  "claude-opus-4-6",
      +  "claude-opus-4-6[1m]",
      +  "claude-opus-4-7",
      +  "claude-opus-4-7[1m]",
      +  "claude-opus-4-8",
      +  "claude-opus-4-8[1m]"
      +]
  18. First observed

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a non-read-only, non-idempotent, non-destructive local mutation, so the description should add operational context — but it adds none. It doesn't say whether the new revision is a draft or active, whether creating it affects live agent traffic, or what side effects (build creation, integration copying via source_build_id) occur. For a mutation on an automation pipeline, that is a real gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short, front-loaded sentence with no filler or repetition. It is efficient, though the brevity is under-specification rather than genuine density of information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 8 parameters, a large nested config union (agent v2 vs code-step v1), no output schema, and a sibling set full of revision-related operations, a single sentence is insufficient. Key facts an agent needs — draft vs active state, required permissions, downstream promotion/publish steps, and whether config omission yields a default build — are all absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 8 parameters — including the complex config union, source_build_id, and selected_automation_revision_id — are documented in the schema itself. The description contributes no additional parameter meaning, which matches the baseline-3 rule when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ("Create a new revision") scoped to "an existing agent," so the agent knows the target entity. It stops short of distinguishing this from nearby siblings such as createSkillRevision, generateRevision, updateRevision, or duplicateAgent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus generateRevision, duplicateAgent, or updateRevision, nor any prerequisite (e.g., does a revision require a source build, an automation revision, or a promotion step afterward?). Usage is only inferable from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources