Draw On Board
convyy_drawCompose board content from primitive elements (shapes, stickies, frames, text, connectors) with explicit layout control to prevent overlaps. Renders the composed board with server-managed styling.
Instructions
Render any board content you compose from native primitives. Provide elements (shape, sticky, frame, text, connector); the server owns ids and styling, but YOU own the layout — give explicit x/y/width/height so nothing overlaps. LAYOUT RULES: (1) Stickies are ALWAYS square; the side equals the width you send (height is ignored), so reserve a square footprint and leave >=40px gaps between boxes. (2) Lay diagrams out on a clean grid (left-to-right or top-to-bottom) and connect adjacent boxes; do NOT place any shape on the straight line between two boxes you connect, or the arrow will cross it. (3) For a branch/decision, offset the branch target to the side or below with clear space so its connector has an empty corridor — the server routes arrows from the nearest edges with elbow bends, which only stays clean when you leave room. Use this for anything that does not fit a named template. THINKING SIGNAL: when you START handling the user's request, call this once with empty elements: [] so the board shows your cursor 'thinking'; then call it again with the real elements once you have composed the answer.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| layout | No | Layout hint: free | flow-lr | grid. Default free. | |
| prompt | Yes | Short description of what to draw. | |
| elements | No | Elements you generate from the request. Each is one of: { kind:'shape', id, text, shapeType, x?,y?,width?,height?, fill? } — fill is one of: transparent | white | ink | amber | emerald | sky | violet | rose. | { kind:'sticky', id, text, color?, x?,y?,width?,height? } — color is one of: amber | sky | emerald | rose | violet | orange (default amber). Use these tokens, NOT plain color names like yellow/blue/green. | { kind:'frame', id, title, x?,y?,width?,height? } | { kind:'text', id, text, x?,y?,width?,height?, fontSize?, bold? } | { kind:'connector', from, to, label? }. Omit coordinates to let the server lay them out. |