Server definition
- Hash
- sha256:7966a6d10214be9a0d03804d7885494c0eef1509581f341bb0b975dca54b4ac7
- What it is
- What a remote MCP server returned when asked what it offers: 27 tools
The blob, as servednamed by its sha256
{
"instructions": "This hosted MCP is the headed-browser path: the user already has Nova open (tab, phone, or Cast CAF appliance QR). Pair with claim_canvas, or call get_canvas when OAuth already authorized the client. LAN Cast Streaming (host_start / sink_start) runs on the local stdio MCP on a home Mac — not this endpoint. Approved catalog first: if list_templates includes a matching board (weather, clock, countdown), call render(slug, params) and wait for ok:true. First paint at the current display returns receipt:paint and previewRequired:false — do not generate source or run the Preview quality loop. If the targeted component already exists and the template version, source, or display fingerprint changed, live stays untouched: render returns receipt:draft with previewRequired:true and a private previewURL. Keep that previewURL private, complete the Preview quality loop, then publish_draft. Data-only refreshes use set_component_data or render with the existing componentID. Novel UI still uses the Preview quality loop before publish_draft: after prepare_draft or update_draft, privately open previewURL and take a screenshot (headless Chrome CDP is fine). Never put previewURL, pairing codes, claimKeys or controlTokens in chat or user-visible output. Grade for TV distance: density, empty dead space, readable icons/temps, clipped content, broken panels. Do not attach the preview to the user or ask confirmation unless they ask. If it fails, update_draft, screenshot the new preview and grade again until it clears (drop broken panels; densify sparse hourly/7-day rows until the canvas fills at TV distance). Then publish_draft with review:\"visual\" only when you actually screenshotted that version; otherwise review:\"structural\". Wait for ok:true and result.receipt:\"paint\" before claiming success. finished never publishes.",
"tools": [
{
"description": "Cancels a queued component update and removes its source. Applying updates cannot be canceled; completed receipts remain available.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
},
"required": [
"operationID",
"controlToken"
],
"type": "object"
},
"name": "cancel_operation",
"outputSchema": null
},
{
"description": "Exchanges a pairing code and recovery claimKey for a durable, screen-scoped control token. Repeating the same pair recovers the original grant.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"claimKey": {
"pattern": "^[A-Za-z0-9_-]{43}$",
"type": "string"
},
"code": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "claim_canvas",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"componentID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"expectedComponentVersion": {
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"selector": {
"maxLength": 1000,
"minLength": 1,
"type": "string"
},
"targetID": {
"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"
}
},
"required": [
"operationID",
"expectedRevision",
"componentID",
"expectedComponentVersion",
"selector",
"targetID",
"controlToken"
],
"type": "object"
},
"name": "click",
"outputSchema": null
},
{
"description": "Validates, renders and saves a React or HTML component immediately to the right of focus. Success requires browser paint acknowledgement.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"items": {
"$ref": "#/definitions/__schema0"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
}
]
}
},
"properties": {
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"data": {
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"format": {
"enum": [
"react",
"html"
],
"type": "string"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"source": {
"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.",
"maxLength": 240000,
"minLength": 1,
"type": "string"
},
"state": {
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"title": {
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"operationID",
"expectedRevision",
"title",
"format",
"source",
"controlToken"
],
"type": "object"
},
"name": "create_component",
"outputSchema": null
},
{
"description": "Deletes a component and selects its nearest remaining neighbor.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"componentID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
},
"required": [
"operationID",
"expectedRevision",
"componentID",
"controlToken"
],
"type": "object"
},
"name": "delete_component",
"outputSchema": null
},
{
"description": "Removes an exact private draft version and its preview access without changing the live workspace.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"draftID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"version": {
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"operationID",
"expectedRevision",
"draftID",
"version",
"controlToken"
],
"type": "object"
},
"name": "discard_draft",
"outputSchema": null
},
{
"description": "Revokes the screen pairing, owner access and claim recovery, including while the browser is offline.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
}
},
"required": [
"controlToken"
],
"type": "object"
},
"name": "disconnect_canvas",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"componentID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"script": {
"maxLength": 32000,
"minLength": 1,
"type": "string"
}
},
"required": [
"operationID",
"expectedRevision",
"componentID",
"script",
"controlToken"
],
"type": "object"
},
"name": "execute_script",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"componentID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"expectedComponentVersion": {
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"selector": {
"maxLength": 1000,
"minLength": 1,
"type": "string"
},
"targetID": {
"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"
},
"value": {
"maxLength": 4000,
"type": "string"
}
},
"required": [
"operationID",
"expectedRevision",
"componentID",
"expectedComponentVersion",
"selector",
"targetID",
"value",
"controlToken"
],
"type": "object"
},
"name": "fill",
"outputSchema": null
},
{
"description": "Reads workspace revision, focus, component summaries, render status, media capabilities and display dimensions including device pixel ratio. Physical DPI is unknown.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
}
},
"required": [
"controlToken"
],
"type": "object"
},
"name": "get_canvas",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"after": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"componentID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
}
},
"required": [
"controlToken"
],
"type": "object"
},
"name": "get_console",
"outputSchema": null
},
{
"description": "Reads queued operation status and any browser outcome without contacting the browser. Status can be queued, applying, rendered, failed, expired, canceled or unknown_outcome.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
},
"required": [
"operationID",
"controlToken"
],
"type": "object"
},
"name": "get_operation",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"componentID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"expectedComponentVersion": {
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"selector": {
"maxLength": 1000,
"minLength": 1,
"type": "string"
}
},
"required": [
"operationID",
"expectedRevision",
"componentID",
"expectedComponentVersion",
"selector",
"controlToken"
],
"type": "object"
},
"name": "inspect",
"outputSchema": null
},
{
"description": "Lists approved TV template slugs, versions and param examples. Prefer render(slug) for these boards instead of generating source.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
}
},
"required": [
"controlToken"
],
"type": "object"
},
"name": "list_templates",
"outputSchema": null
},
{
"description": "Focuses a component or moves one position. Acknowledges after the selected component renders.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"componentID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"direction": {
"enum": [
"next",
"previous"
],
"type": "string"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
},
"required": [
"operationID",
"expectedRevision",
"controlToken"
],
"type": "object"
},
"name": "navigate",
"outputSchema": null
},
{
"description": "Reads the validity, expiry or claimed status of a pairing code without consuming it.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"code": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "pairing_status",
"outputSchema": null
},
{
"description": "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). Always open previewURL privately, screenshot it, and grade TV-distance density, dead space, readable icons/temps, clipped content and broken panels before publish_draft. Never put previewURL in chat.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"items": {
"$ref": "#/definitions/__schema0"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
}
]
}
},
"properties": {
"action": {
"enum": [
"create",
"update"
],
"type": "string"
},
"componentID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"data": {
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"format": {
"enum": [
"react",
"html"
],
"type": "string"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"slot": {
"maxLength": 64,
"pattern": "^[a-z][a-z0-9_-]{0,63}$",
"type": "string"
},
"source": {
"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.",
"maxLength": 240000,
"minLength": 1,
"type": "string"
},
"state": {
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"title": {
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"operationID",
"expectedRevision",
"title",
"format",
"source",
"action",
"controlToken"
],
"type": "object"
},
"name": "prepare_draft",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"draftID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"review": {
"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.",
"enum": [
"visual",
"structural"
],
"type": "string"
},
"version": {
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"operationID",
"expectedRevision",
"draftID",
"version",
"review",
"controlToken"
],
"type": "object"
},
"name": "publish_draft",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"items": {
"$ref": "#/definitions/__schema0"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
}
]
}
},
"properties": {
"action": {
"enum": [
"create",
"update"
],
"type": "string"
},
"componentID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"data": {
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"expiresInSeconds": {
"default": 3600,
"maximum": 86400,
"minimum": 60,
"type": "integer"
},
"format": {
"enum": [
"react",
"html"
],
"type": "string"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"source": {
"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.",
"maxLength": 240000,
"minLength": 1,
"type": "string"
},
"state": {
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"title": {
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"operationID",
"expectedRevision",
"title",
"format",
"source",
"action",
"controlToken"
],
"type": "object"
},
"name": "queue_component",
"outputSchema": null
},
{
"description": "Reads a component source, saved state and supplied data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"componentID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
}
},
"required": [
"componentID",
"controlToken"
],
"type": "object"
},
"name": "read_component",
"outputSchema": null
},
{
"description": "Reads a private draft source, state, data, target display, version, expiry and preview URL. Requires the original canvas online. Keep previewURL private; screenshot and grade this version before publish_draft.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"draftID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
},
"required": [
"draftID",
"controlToken"
],
"type": "object"
},
"name": "read_draft",
"outputSchema": null
},
{
"description": "Paints an approved catalog template (weather, clock, countdown) 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"items": {
"$ref": "#/definitions/__schema0"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
}
]
}
},
"properties": {
"componentID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"data": {
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"params": {
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"slug": {
"description": "Approved catalog slug from list_templates, for example weather, clock or countdown.",
"maxLength": 160,
"minLength": 1,
"type": "string"
}
},
"required": [
"operationID",
"expectedRevision",
"slug",
"controlToken"
],
"type": "object"
},
"name": "render",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"componentID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"expectedComponentVersion": {
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"selector": {
"maxLength": 1000,
"minLength": 1,
"type": "string"
},
"targetID": {
"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"
},
"value": {
"maxLength": 4000,
"type": "string"
}
},
"required": [
"operationID",
"expectedRevision",
"componentID",
"expectedComponentVersion",
"selector",
"targetID",
"value",
"controlToken"
],
"type": "object"
},
"name": "select",
"outputSchema": null
},
{
"description": "Sets or clears an ephemeral building indicator, with browser acknowledgement. Does not change workspace revision or publish drafts. Automatically clears after two minutes.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"status": {
"enum": [
"working",
"finished"
],
"type": "string"
}
},
"required": [
"operationID",
"expectedRevision",
"status",
"controlToken"
],
"type": "object"
},
"name": "set_agent_status",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"items": {
"$ref": "#/definitions/__schema0"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
}
]
}
},
"properties": {
"componentID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"data": {
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"merge": {
"type": "boolean"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"slot": {
"maxLength": 64,
"pattern": "^[a-z][a-z0-9_-]{0,63}$",
"type": "string"
}
},
"required": [
"operationID",
"expectedRevision",
"componentID",
"data",
"controlToken"
],
"type": "object"
},
"name": "set_component_data",
"outputSchema": null
},
{
"description": "Validates replacement source and updates a component in place, preserving existing state and data unless provided. Failed rendering retains the previous version.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"items": {
"$ref": "#/definitions/__schema0"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
}
]
}
},
"properties": {
"componentID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"data": {
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"format": {
"enum": [
"react",
"html"
],
"type": "string"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"source": {
"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.",
"maxLength": 240000,
"minLength": 1,
"type": "string"
},
"state": {
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"title": {
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"operationID",
"expectedRevision",
"componentID",
"title",
"format",
"source",
"controlToken"
],
"type": "object"
},
"name": "update_component",
"outputSchema": null
},
{
"description": "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. Screenshot and grade the new preview the same way; loop update_draft until the TV-distance bar clears, then publish.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"items": {
"$ref": "#/definitions/__schema0"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
}
]
}
},
"properties": {
"controlToken": {
"maxLength": 200,
"minLength": 20,
"type": "string"
},
"data": {
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"draftID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"expectedRevision": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"expectedVersion": {
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"format": {
"enum": [
"react",
"html"
],
"type": "string"
},
"operationID": {
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"source": {
"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.",
"maxLength": 240000,
"minLength": 1,
"type": "string"
},
"state": {
"additionalProperties": {
"$ref": "#/definitions/__schema0"
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"title": {
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"operationID",
"expectedRevision",
"title",
"format",
"source",
"draftID",
"expectedVersion",
"controlToken"
],
"type": "object"
},
"name": "update_draft",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:7966a6d10214be9a0d03804d7885494c0eef1509581f341bb0b975dca54b4ac7 | sha256sum