Skip to main content
Glama

Revise a run

revise_run

Start a new render of an existing faceless video with changes or a document; identical requests reuse the started run, and attempt 2 starts another. Quote first before revising.

Instructions

Input: the same fields as quote_revision, plus attempt. A NEW run rendering a make_faceless video again with changes or document (exactly one). Repeating an identical request returns the run it started, starting nothing new; pass attempt 2 for another one. A revision that delivers is charged its quoted total; one that fails is charged nothing. Limits on revisions running and failed, and a close some days after the original, are named by the refusal. While paid edits are closed it answers editing_disabled and charges nothing. Poll get_run. Price: each shot generated anew: picture 7, clip 49, clip with a new picture 56; plus 13 to render. A revision that generates nothing: 13. A kept candidate adds nothing. Quote first with quote_revision.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "run_id": "<run_id>"
    },
    "name": "revise_run"
  }
}

Input Schema

NameRequiredDescriptionDefault
run_idYes
attemptNo
changesNo
documentNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changedv0.39.0
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / properties / attempt / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / attempt / minimum
      Removed value: -1
    • removedInput schema / properties / changes / description
      Removed value: -"Shots to generate anew over the run as it is: each a shot_id and the operation to generate for it."
    • removedInput schema / properties / changes / items / additionalProperties
      Removed value: -false
    • removedInput schema / properties / changes / items / properties
      Removed value: -{
      -  "operation": {
      -    "oneOf": [
      -      {
      -        "additionalProperties": false,
      -        "properties": {
      -          "mode": {
      -            "const": "retake",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "mode"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "additionalProperties": false,
      -        "properties": {
      -          "description": {
      -            "maxLength": 600,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "mode": {
      -            "const": "new_picture",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "mode",
      -          "description"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "additionalProperties": false,
      -        "properties": {
      -          "instruction": {
      -            "maxLength": 600,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "mode": {
      -            "const": "edit_picture",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "mode",
      -          "instruction"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "additionalProperties": false,
      -        "properties": {
      -          "mode": {
      -            "const": "animate",
      -            "type": "string"
      -          },
      -          "motion": {
      -            "maxLength": 300,
      -            "minLength": 1,
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "mode"
      -        ],
      -        "type": "object"
      -      }
      -    ]
      -  },
      -  "shot_id": {
      -    "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -    "type": "string"
      -  }
      -}
    • removedInput schema / properties / changes / items / required
      Removed value: -[
      -  "shot_id",
      -  "operation"
      -]
    • removedInput schema / properties / changes / maxItems
      Removed value: -500
    • removedInput schema / properties / changes / minItems
      Removed value: -1
    • removedInput schema / properties / document / additionalProperties
      Removed value: -false
    • removedInput schema / properties / document / description
      Removed value: -"The whole edited document, as the run's draft holds it; retimes, deletions and uploads go this way."
    • removedInput schema / properties / document / properties
      Removed value: -{
      -  "discarded": {
      -    "default": [],
      -    "items": {
      -      "pattern": "^run_[a-zA-Z0-9]+$",
      -      "type": "string"
      -    },
      -    "maxItems": 500,
      -    "type": "array"
      -  },
      -  "duration_frames": {
      -    "exclusiveMinimum": 0,
      -    "maximum": 9007199254740991,
      -    "type": "integer"
      -  },
      -  "shots": {
      -    "items": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "asset": {
      -          "oneOf": [
      -            {
      -              "additionalProperties": false,
      -              "properties": {
      -                "from": {
      -                  "const": "source",
      -                  "type": "string"
      -                },
      -                "shot_id": {
      -                  "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "from",
      -                "shot_id"
      -              ],
      -              "type": "object"
      -            },
      -            {
      -              "additionalProperties": false,
      -              "properties": {
      -                "from": {
      -                  "const": "candidate",
      -                  "type": "string"
      -                },
      -                "run_id": {
      -                  "pattern": "^run_[a-zA-Z0-9]+$",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "from",
      -                "run_id"
      -              ],
      -              "type": "object"
      -            },
      -            {
      -              "additionalProperties": false,
      -              "properties": {
      -                "from": {
      -                  "const": "upload",
      -                  "type": "string"
      -                },
      -                "upload_id": {
      -                  "pattern": "^upl_[a-f0-9]{32}$",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "from",
      -                "upload_id"
      -              ],
      -              "type": "object"
      -            },
      -            {
      -              "additionalProperties": false,
      -              "properties": {
      -                "from": {
      -                  "const": "generate",
      -                  "type": "string"
      -                },
      -                "operation": {
      -                  "oneOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "mode": {
      -                          "const": "retake",
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "mode"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "description": {
      -                          "maxLength": 600,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "mode": {
      -                          "const": "new_picture",
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "mode",
      -                        "description"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "instruction": {
      -                          "maxLength": 600,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "mode": {
      -                          "const": "edit_picture",
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "mode",
      -                        "instruction"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "mode": {
      -                          "const": "animate",
      -                          "type": "string"
      -                        },
      -                        "motion": {
      -                          "maxLength": 300,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "mode"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  ]
      -                }
      -              },
      -              "required": [
      -                "from",
      -                "operation"
      -              ],
      -              "type": "object"
      -            }
      -          ]
      -        },
      -        "end_frame": {
      -          "exclusiveMinimum": 0,
      -          "maximum": 9007199254740991,
      -          "type": "integer"
      -        },
      -        "id": {
      -          "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -          "type": "string"
      -        },
      -        "kind": {
      -          "enum": [
      -            "picture",
      -            "clip",
      -            "presenter"
      -          ],
      -          "type": "string"
      -        },
      -        "media_offset_frames": {
      -          "maximum": 9007199254740991,
      -          "minimum": 0,
      -          "type": "integer"
      -        },
      -        "start_frame": {
      -          "maximum": 9007199254740991,
      -          "minimum": 0,
      -          "type": "integer"
      -        },
      -        "track": {
      -          "enum": [
      -            "visual",
      -            "presenter"
      -          ],
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "id",
      -        "track",
      -        "kind",
      -        "start_frame",
      -        "end_frame",
      -        "asset"
      -      ],
      -      "type": "object"
      -    },
      -    "maxItems": 500,
      -    "minItems": 1,
      -    "type": "array"
      -  },
      -  "source_run_id": {
      -    "pattern": "^run_[a-zA-Z0-9]+$",
      -    "type": "string"
      -  },
      -  "timebase": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "fps": {
      -        "exclusiveMinimum": 0,
      -        "maximum": 9007199254740991,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "fps"
      -    ],
      -    "type": "object"
      -  },
      -  "v": {
      -    "const": 1,
      -    "type": "number"
      -  }
      -}
    • removedInput schema / properties / document / required
      Removed value: -[
      -  "v",
      -  "source_run_id",
      -  "timebase",
      -  "duration_frames",
      -  "shots"
      -]
    • removedInput schema / properties / run_id / description
      Removed value: -"The run to revise: a succeeded make_faceless run, an original or a revision."
    • removedInput schema / properties / run_id / pattern
      Removed value: -"^run_[a-zA-Z0-9]+$"
  2. Addedv0.28.0

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the annotations, the description discloses idempotency ('Repeating an identical request returns the run it started'), charging behavior on success and failure, revision limits, the editing_disabled refusal, and detailed pricing. This is substantial behavioral context for a mutation tool with readOnlyHint=false and destructiveHint=false. It does not contradict the annotations.

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?

The text is dense but every sentence carries operational information: purpose, idempotency, charging, limits, refusal state, polling, and pricing. It is not front-loaded with the core action, and some phrasing such as 'Limits on revisions running and failed... are named by the refusal' is convoluted, but there is no filler.

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

Completeness4/5

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

For a complex paid mutation with no output schema, the description covers the key operational concerns: quoting first, starting a new run, retry semantics, billing on success and failure, refusal states, and polling get_run. The remaining gap is that it defers input-field details to quote_revision and does not describe the nested changes or document structures.

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?

With 0% schema description coverage, the description adds meaningful semantics for attempt ('pass attempt 2 for another one') and the mutual exclusivity of changes or document ('exactly one'). However, it does not explain run_id, the structure of the changes array, or what document contains, leaving the nested object shapes undocumented.

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 states that this creates 'A NEW run rendering a make_faceless video again with changes or document,' which is a specific action and resource. It distinguishes the operation from quote_revision and get_run by telling the agent to quote first and poll get_run. However, the purpose is not front-loaded; the first sentence is an input cross-reference rather than the action itself.

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

Usage Guidelines4/5

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

It gives clear sequencing guidance: 'Quote first with quote_revision' and 'Poll get_run.' It also explains the attempt parameter for starting another run and the editing_disabled state when paid edits are closed. It does not explicitly contrast revise_run with make_faceless for creating an original video, so the alternative is only implied by 'again.'

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