Tool tree
gradeNot graded
getCanvasSceneAnswer
Read the complete motion scene plus the human-selected layer and live playback state. Call this before editing so your changes continue the user’s current work.
View tool JSON
{
"name": "getCanvasScene",
"kind": "answer",
"impl": "imperative",
"description": "Read the complete motion scene plus the human-selected layer and live playback state. Call this before editing so your changes continue the user’s current work.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}addVectorShapeAction
Add a rectangle, circle, heart, star, or sparkle layer to the shared canvas. The new layer becomes the human’s current selection.
View tool JSON
{
"name": "addVectorShape",
"kind": "act",
"impl": "imperative",
"description": "Add a rectangle, circle, heart, star, or sparkle layer to the shared canvas. The new layer becomes the human’s current selection.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Friendly name for the layer (e.g. \"Pulse Halo\", \"CTA Heart\")"
},
"type": {
"type": "string",
"enum": [
"rect",
"circle",
"path"
],
"description": "Primitive geometry type"
},
"x": {
"type": "number",
"description": "X position in pixels"
},
"y": {
"type": "number",
"description": "Y position in pixels"
},
"width": {
"type": "number",
"description": "Width in pixels"
},
"height": {
"type": "number",
"description": "Height in pixels"
},
"fill": {
"type": "string",
"description": "Fill color in hex or CSS color"
}
},
"required": [
"name",
"type",
"x",
"y",
"width",
"height",
"fill"
],
"additionalProperties": false
}
}updateVectorElementAction
Update the selected layer, or a layer by ID, without replacing its animation tracks. Use this to collaboratively refine position, dimensions, color, rotation, scale, opacity, stroke, or name.
View tool JSON
{
"name": "updateVectorElement",
"kind": "act",
"impl": "imperative",
"description": "Update the selected layer, or a layer by ID, without replacing its animation tracks. Use this to collaboratively refine position, dimensions, color, rotation, scale, opacity, stroke, or name.",
"inputSchema": {
"type": "object",
"properties": {
"elementId": {
"type": "string",
"description": "Layer ID. Omit to update the layer currently selected by the human."
},
"updates": {
"type": "object",
"description": "One or more visual properties to change.",
"properties": {
"name": {
"type": "string",
"description": "New human-readable layer name"
},
"x": {
"type": "number",
"description": "X position in pixels"
},
"y": {
"type": "number",
"description": "Y position in pixels"
},
"width": {
"type": "number",
"description": "Width in pixels",
"minimum": 1
},
"height": {
"type": "number",
"description": "Height in pixels",
"minimum": 1
},
"fill": {
"type": "string",
"description": "Fill color as a CSS color"
},
"stroke": {
"type": "string",
"description": "Stroke color as a CSS color"
},
"strokeWidth": {
"type": "number",
"description": "Stroke width in pixels",
"minimum": 0
},
"rotation": {
"type": "number",
"description": "Rotation in degrees"
},
"scale": {
"type": "number",
"description": "Scale multiplier",
"minimum": 0.01
},
"opacity": {
"type": "number",
"description": "Opacity from 0 to 1",
"minimum": 0,
"maximum": 1
}
},
"minProperties": 1,
"additionalProperties": false
}
},
"required": [
"updates"
],
"additionalProperties": false
}
}applyAnimationKeyframesAction
Create or replace timed values on one animation track. Omit elementId to animate the layer currently selected by the human, enabling a direct handoff from canvas selection to agent action.
View tool JSON
{
"name": "applyAnimationKeyframes",
"kind": "act",
"impl": "imperative",
"description": "Create or replace timed values on one animation track. Omit elementId to animate the layer currently selected by the human, enabling a direct handoff from canvas selection to agent action.",
"inputSchema": {
"type": "object",
"properties": {
"elementId": {
"type": "string",
"description": "Layer ID. Omit to animate the layer currently selected by the human."
},
"property": {
"type": "string",
"enum": [
"x",
"y",
"scale",
"rotation",
"opacity",
"width",
"height"
],
"description": "Property to animate"
},
"keyframes": {
"type": "array",
"description": "Array of keyframe objects { timeMs, value, easing }",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"timeMs": {
"type": "number",
"description": "Time in milliseconds",
"minimum": 0
},
"value": {
"type": "number",
"description": "Numeric property value"
},
"easing": {
"type": "string",
"enum": [
"linear",
"easeIn",
"easeOut",
"easeInOut",
"spring"
],
"description": "Easing curve or spring physics"
}
},
"required": [
"timeMs",
"value"
]
},
"minItems": 1,
"maxItems": 60
}
},
"required": [
"property",
"keyframes"
],
"additionalProperties": false
}
}loadMotionPresetAction
Replace the canvas with a polished KineticFlow motion recipe that the human and agent can continue refining together.
View tool JSON
{
"name": "loadMotionPreset",
"kind": "act",
"impl": "imperative",
"description": "Replace the canvas with a polished KineticFlow motion recipe that the human and agent can continue refining together.",
"inputSchema": {
"type": "object",
"properties": {
"preset": {
"type": "string",
"enum": [
"ctaPulse",
"bouncingHeart",
"staggeredEntry"
],
"description": "Built-in motion recipe to load"
}
},
"required": [
"preset"
],
"additionalProperties": false
}
}controlPlaybackAction
Play, pause, or seek the live motion preview so the human can immediately review the agent’s changes on the shared canvas.
View tool JSON
{
"name": "controlPlayback",
"kind": "act",
"impl": "imperative",
"description": "Play, pause, or seek the live motion preview so the human can immediately review the agent’s changes on the shared canvas.",
"inputSchema": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"play",
"pause",
"seek"
],
"description": "Playback command"
},
"timeMs": {
"type": "number",
"description": "Target time in ms if action is \"seek\""
}
},
"required": [
"action"
],
"additionalProperties": false
}
}exportSceneAction
Compile the current shared scene into reusable CSS/HTML, standalone animated SVG, or Lottie JSON. This does not modify the editor.
View tool JSON
{
"name": "exportScene",
"kind": "act",
"impl": "imperative",
"description": "Compile the current shared scene into reusable CSS/HTML, standalone animated SVG, or Lottie JSON. This does not modify the editor.",
"inputSchema": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"css",
"svg",
"lottie"
],
"description": "Export format target"
}
},
"required": [
"format"
],
"additionalProperties": false
}
}