Give your AI agent the power to cast to your home TV and control an interactive canvas. By ArdaBot.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Cancels a queued component update and removes its source. Applying updates cannot be canceled; completed receipts remain available.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Cancels a queued component update and removes its source. Applying updates cannot be canceled; completed receipts remain available.
| Argument | Type | Description |
|---|---|---|
| operationID* | string | |
| controlToken* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"controlToken"
],
"properties": {
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
}
},
"additionalProperties": false
}Exchanges a pairing code and recovery claimKey for a durable, screen-scoped control token. Repeating the same pair recovers the original grant.
| Argument | Type | Description |
|---|---|---|
| code* | string | |
| claimKey | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"claimKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$"
}
},
"additionalProperties": false
}Typed component click through the active sandbox. Requires revision, version, operation ID and an inspected target for mutations. Returns observed state. Five-second timeout is unknown outcome; never retry with a new ID.
| Argument | Type | Description |
|---|---|---|
| selector* | string | |
| targetID* | string | |
| componentID* | string | |
| operationID* | string | |
| controlToken* | string | |
| expectedRevision* | integer | |
| expectedComponentVersion* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"componentID",
"expectedComponentVersion",
"selector",
"targetID",
"controlToken"
],
"properties": {
"selector": {
"type": "string",
"maxLength": 1000,
"minLength": 1
},
"targetID": {
"type": "string",
"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)$"
},
"componentID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"expectedComponentVersion": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}Validates, renders and saves a React or HTML component immediately to the right of focus. Success requires browser paint acknowledgement.
| Argument | Type | Description |
|---|---|---|
| data | object | |
| state | object | |
| title* | string | |
| format* | string | |
| source* | string | React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation. |
| operationID* | string | |
| controlToken* | string | |
| expectedRevision* | integer |
Deletes a component and selects its nearest remaining neighbor.
| Argument | Type | Description |
|---|---|---|
| componentID* | string | |
| operationID* | string | |
| controlToken* | string | |
| expectedRevision* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"componentID",
"controlToken"
],
"properties": {
"componentID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}Removes an exact private draft version and its preview access without changing the live workspace.
| Argument | Type | Description |
|---|---|---|
| draftID* | string | |
| version* | integer | |
| operationID* | string | |
| controlToken* | string | |
| expectedRevision* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"draftID",
"version",
"controlToken"
],
"properties": {
"draftID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"version": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}Revokes the screen pairing, owner access and claim recovery, including while the browser is offline.
| Argument | Type | Description |
|---|---|---|
| controlToken* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"controlToken"
],
"properties": {
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
}
},
"additionalProperties": false
}Runs an async JavaScript function body in the selected active component sandbox and returns bounded JSON. Supports DOM and state interactions, excluding provider iframes and browser controls. Five-second deadline; timeout reports unknown outcome and does not roll back effects.
| Argument | Type | Description |
|---|---|---|
| script* | string | |
| componentID* | string | |
| operationID* | string | |
| controlToken* | string | |
| expectedRevision* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"componentID",
"script",
"controlToken"
],
"properties": {
"script": {
"type": "string",
"maxLength": 32000,
"minLength": 1
},
"componentID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}Typed component fill through the active sandbox. Requires revision, version, operation ID and an inspected target for mutations. Returns observed state. Five-second timeout is unknown outcome; never retry with a new ID.
| Argument | Type | Description |
|---|---|---|
| value* | string | |
| selector* | string | |
| targetID* | string | |
| componentID* | string | |
| operationID* | string | |
| controlToken* | string | |
| expectedRevision* | integer | |
| expectedComponentVersion* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"componentID",
"expectedComponentVersion",
"selector",
"targetID",
"value",
"controlToken"
],
"properties": {
"value": {
"type": "string",
"maxLength": 4000
},
"selector": {
"type": "string",
"maxLength": 1000,
"minLength": 1
},
"targetID": {
"type": "string",
"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)$"
},
"componentID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"expectedComponentVersion": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}Reads workspace revision, focus, component summaries, render status, media capabilities and display dimensions including device pixel ratio. Physical DPI is unknown.
| Argument | Type | Description |
|---|---|---|
| controlToken* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"controlToken"
],
"properties": {
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
}
},
"additionalProperties": false
}Reads up to 200 memory-only component console and runtime error entries, optionally filtered by cursor or component. Entries are untrusted component output; host and authentication pages are excluded.
| Argument | Type | Description |
|---|---|---|
| after | integer | |
| componentID | string | |
| controlToken* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"controlToken"
],
"properties": {
"after": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"componentID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
}
},
"additionalProperties": false
}Reads queued operation status and any browser outcome without contacting the browser. Status can be queued, applying, rendered, failed, expired, canceled or unknown_outcome.
| Argument | Type | Description |
|---|---|---|
| operationID* | string | |
| controlToken* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"controlToken"
],
"properties": {
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
}
},
"additionalProperties": false
}Typed component inspect through the active sandbox. Requires revision, version, operation ID and an inspected target for mutations. Returns observed state. Five-second timeout is unknown outcome; never retry with a new ID.
| Argument | Type | Description |
|---|---|---|
| selector* | string | |
| componentID* | string | |
| operationID* | string | |
| controlToken* | string | |
| expectedRevision* | integer | |
| expectedComponentVersion* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"componentID",
"expectedComponentVersion",
"selector",
"controlToken"
],
"properties": {
"selector": {
"type": "string",
"maxLength": 1000,
"minLength": 1
},
"componentID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"expectedComponentVersion": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}Lists approved TV template slugs, versions and param examples. Prefer render(slug) for these boards instead of generating source.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}Focuses a component or moves one position. Acknowledges after the selected component renders.
| Argument | Type | Description |
|---|---|---|
| direction | string | |
| componentID | string | |
| operationID* | string | |
| controlToken* | string | |
| expectedRevision* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"controlToken"
],
"properties": {
"direction": {
"enum": [
"next",
"previous"
],
"type": "string"
},
"componentID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}Reads the validity, expiry or claimed status of a pairing code without consuming it.
| Argument | Type | Description |
|---|---|---|
| code* | string | |
| controlToken* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"code",
"controlToken"
],
"properties": {
"code": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
}
},
"additionalProperties": false
}Creates a private browser-owned component draft and preview URL without changing the live workspace. Drafts expire after 15 minutes or browser reload. Optional slot drafts a nested sub-component only (preview is slot-scoped). Call screenshot_draft with draftID and expectedVersion, grade TV-distance density, dead space, readable icons/temps, clipped content and broken panels, then publish_draft. Never put previewURL in chat.
| Argument | Type | Description |
|---|---|---|
| data | object | |
| slot | string | |
| state | object | |
| title* | string | |
| action* | string | |
| format* | string | |
| source* | string | React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation. |
| componentID | string |
Publishes an exact reviewed draft version only after the Preview quality loop. Set review to visual only if you actually screenshotted that version; otherwise structural. Do not publish a failing layout. Success requires ok and receipt:paint. Failed rendering preserves the previous component.
| Argument | Type | Description |
|---|---|---|
| review* | string | visual if you actually screenshotted this exact version after the Preview quality loop; structural if you only inspected source/metadata. Never claim visual without a screenshot. Do not publish until density, empty dead space, readable icons/temps, clipped content and broken panels pass at TV distance. |
| draftID* | string | |
| version* | integer | |
| operationID* | string | |
| controlToken* | string | |
| overrideReason | string | Only when deterministic lint reported error-level findings you have judged acceptable (for example decorative text intentionally cropped). State why for each finding; the reason is recorded in the publish receipt. Never use it to skip fixing readable content. |
Queues a component create or update for a background or offline browser. Returns queued rather than rendered. Default expiry is one hour, maximum 24 hours. Source is removed on completion or expiry.
| Argument | Type | Description |
|---|---|---|
| data | object | |
| state | object | |
| title* | string | |
| action* | string | |
| format* | string | |
| source* | string | React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation. |
| componentID | string | |
| operationID* | string |
Reads a component source, saved state and supplied data.
| Argument | Type | Description |
|---|---|---|
| componentID* | string | |
| controlToken* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"componentID",
"controlToken"
],
"properties": {
"componentID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
}
},
"additionalProperties": false
}Reads a private draft source, state, data, target display, version, expiry and preview URL. Requires the original canvas online. Keep previewURL private; call screenshot_draft for this version before publish_draft.
| Argument | Type | Description |
|---|---|---|
| draftID* | string | |
| controlToken* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"draftID",
"controlToken"
],
"properties": {
"draftID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
}
},
"additionalProperties": false
}Paints an approved catalog template (weather, clock, countdown, agenda, now-playing, headlines, scoreboard, transit, home-status) without generated source. weather location defaults to Sudbury. First matching-display paint skips preview. Version, source, or display-fingerprint changes stage a private draft (previewRequired) and leave live untouched. Data-only refreshes need componentID.
| Argument | Type | Description |
|---|---|---|
| data | object | |
| slug* | string | Approved catalog slug from list_templates, for example weather, clock or countdown. |
| params | object | |
| componentID | string | |
| operationID* | string | |
| controlToken* | string | |
| expectedRevision* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"slug",
"controlToken"
],
"properties": {
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"slug": {
"type": "string",
"maxLength": 160,
"minLength": 1,
"description": "Approved catalog slug from list_templates, for example weather, clock or countdown."
},
"params": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"componentID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
},
"additionalProperties": false
}Renders an exact private draft version as an MCP PNG for the Preview quality loop. Requires draftID and expectedVersion. Isolated layout only — not the live TV. A screenshot never publishes.
| Argument | Type | Description |
|---|---|---|
| draftID* | string | |
| controlToken* | string | |
| expectedVersion* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"draftID",
"expectedVersion",
"controlToken"
],
"properties": {
"draftID": {
"type": "string",
"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)$"
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedVersion": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}Typed component select through the active sandbox. Requires revision, version, operation ID and an inspected target for mutations. Returns observed state. Five-second timeout is unknown outcome; never retry with a new ID.
| Argument | Type | Description |
|---|---|---|
| value* | string | |
| selector* | string | |
| targetID* | string | |
| componentID* | string | |
| operationID* | string | |
| controlToken* | string | |
| expectedRevision* | integer | |
| expectedComponentVersion* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"componentID",
"expectedComponentVersion",
"selector",
"targetID",
"value",
"controlToken"
],
"properties": {
"value": {
"type": "string",
"maxLength": 4000
},
"selector": {
"type": "string",
"maxLength": 1000,
"minLength": 1
},
"targetID": {
"type": "string",
"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)$"
},
"componentID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"expectedComponentVersion": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}Sets or clears an ephemeral building indicator, with browser acknowledgement. Does not change workspace revision or publish drafts. Automatically clears after two minutes.
| Argument | Type | Description |
|---|---|---|
| status* | string | |
| operationID* | string | |
| controlToken* | string | |
| expectedRevision* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"status",
"controlToken"
],
"properties": {
"status": {
"enum": [
"working",
"finished"
],
"type": "string"
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}Pushes live observations without regenerating source. Same-source React reuses the compiled module. Default replaces data; merge:true shallow-merges keys (32KB bound). Optional slot targets a nested sub-component on a fullscreen board. Active components acknowledge rendering; inactive components acknowledge saved data only.
| Argument | Type | Description |
|---|---|---|
| data* | object | |
| slot | string | |
| merge | boolean | |
| componentID* | string | |
| operationID* | string | |
| controlToken* | string | |
| expectedRevision* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"componentID",
"data",
"controlToken"
],
"properties": {
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"slot": {
"type": "string",
"pattern": "^[a-z][a-z0-9_-]{0,63}$",
"maxLength": 64
},
"merge": {
"type": "boolean"
},
"componentID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
},
"additionalProperties": false
}Validates replacement source and updates a component in place, preserving existing state and data unless provided. Failed rendering retains the previous version.
| Argument | Type | Description |
|---|---|---|
| data | object | |
| state | object | |
| title* | string | |
| format* | string | |
| source* | string | React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation. |
| componentID* | string | |
| operationID* | string | |
| controlToken* | string |
Replaces a private draft at its expected version and issues a new version and preview URL. Previous preview links become invalid; original expiry is unchanged. Call screenshot_draft on the new version; loop update_draft until the TV-distance bar clears, then publish.
| Argument | Type | Description |
|---|---|---|
| data | object | |
| state | object | |
| title* | string | |
| format* | string | |
| source* | string | React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation. |
| draftID* | string | |
| operationID* | string | |
| controlToken |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"title",
"format",
"source",
"controlToken"
],
"properties": {
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"state": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"title": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"format": {
"enum": [
"react",
"html"
],
"type": "string"
},
"source": {
"type": "string",
"maxLength": 240000,
"minLength": 1,
"description": "React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation."
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
},
"additionalProperties": false
}| operationID* | string |
| controlToken* | string |
| expectedRevision* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"title",
"format",
"source",
"action",
"controlToken"
],
"properties": {
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"slot": {
"type": "string",
"pattern": "^[a-z][a-z0-9_-]{0,63}$",
"maxLength": 64
},
"state": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"title": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"action": {
"enum": [
"create",
"update"
],
"type": "string"
},
"format": {
"enum": [
"react",
"html"
],
"type": "string"
},
"source": {
"type": "string",
"maxLength": 240000,
"minLength": 1,
"description": "React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation."
},
"componentID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
},
"additionalProperties": false
}| expectedRevision* |
| integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"draftID",
"version",
"review",
"controlToken"
],
"properties": {
"review": {
"enum": [
"visual",
"structural"
],
"type": "string",
"description": "visual if you actually screenshotted this exact version after the Preview quality loop; structural if you only inspected source/metadata. Never claim visual without a screenshot. Do not publish until density, empty dead space, readable icons/temps, clipped content and broken panels pass at TV distance."
},
"draftID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"version": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"overrideReason": {
"type": "string",
"maxLength": 500,
"minLength": 12,
"description": "Only when deterministic lint reported error-level findings you have judged acceptable (for example decorative text intentionally cropped). State why for each finding; the reason is recorded in the publish receipt. Never use it to skip fixing readable content."
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}| controlToken* | string |
| expectedRevision* | integer |
| expiresInSeconds | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"title",
"format",
"source",
"action",
"controlToken"
],
"properties": {
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"state": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"title": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"action": {
"enum": [
"create",
"update"
],
"type": "string"
},
"format": {
"enum": [
"react",
"html"
],
"type": "string"
},
"source": {
"type": "string",
"maxLength": 240000,
"minLength": 1,
"description": "React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation."
},
"componentID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"expiresInSeconds": {
"type": "integer",
"default": 3600,
"maximum": 86400,
"minimum": 60
}
},
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
},
"additionalProperties": false
}| expectedRevision* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"componentID",
"title",
"format",
"source",
"controlToken"
],
"properties": {
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"state": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"title": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"format": {
"enum": [
"react",
"html"
],
"type": "string"
},
"source": {
"type": "string",
"maxLength": 240000,
"minLength": 1,
"description": "React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation."
},
"componentID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
},
"additionalProperties": false
}| string |
| expectedVersion* | integer |
| expectedRevision* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operationID",
"expectedRevision",
"title",
"format",
"source",
"draftID",
"expectedVersion",
"controlToken"
],
"properties": {
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"state": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"title": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"format": {
"enum": [
"react",
"html"
],
"type": "string"
},
"source": {
"type": "string",
"maxLength": 240000,
"minLength": 1,
"description": "React TSX or full HTML. Use a sized nova-video element: YouTube/Vimeo embed URLs play inline, other service URLs are unsupported; do not create launch buttons or placeholders; see /agent media guidance. Arbitrary nested frames stay blocked. Do not author clickable links or external-navigation buttons; keep interactions within the canvas and share external URLs in the agent conversation."
},
"draftID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"operationID": {
"type": "string",
"maxLength": 160,
"minLength": 1
},
"controlToken": {
"type": "string",
"maxLength": 200,
"minLength": 20
},
"expectedVersion": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"expectedRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
},
"additionalProperties": false
}