{"ok":true,"site":{"host":"languel.github.io","url":"https://languel.github.io/p5comp/","type":"live","desc":"p5comp","tools":[{"name":"p5comp_p5_parameters","kind":"act","impl":"imperative","description":"Read live @param/@watch p5 variables and declared connections; set an editable variable by name without restarting the sketch.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":["number","boolean"]}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_drawing","kind":"act","impl":"imperative","description":"Read/load the Poliplan document, discover its native tools, call a discovered tool, toggle the circuit drawing layer, or export PNG/SVG to project assets. Drawing changes persist and are captured by process recording. Requires the vendored editor.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"action":{"enum":["get","load","tools","call","active","export"]},"document":{"type":"object"},"name":{"type":"string"},"arguments":{"type":"object"},"active":{"type":"boolean"},"format":{"enum":["png","svg"]},"ids":{"type":"array","items":{"type":"string"}}},"required":["action"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_export","kind":"act","impl":"imperative","description":"Export a project JSON, ZIP, SVG or PNG as text/base64, or download a PDF with code.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"format":{"enum":["json","zip","svg","png","pdf"]},"includeCode":{"type":"boolean"}},"required":["format"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_library","kind":"act","impl":"imperative","description":"List/get/save/remove user Arduino and p5 sketches. Export by reading an item; import with save.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"action":{"enum":["list","get","save","remove"]},"id":{"type":"string"},"kind":{"enum":["arduino","p5"]},"name":{"type":"string"},"item":{"type":"object"}},"required":["action"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_settings","kind":"act","impl":"imperative","description":"Read or set global theme, editor theme/font size, icon size and PWM refresh. Project backgrounds are in workbench.settings.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"theme":{"enum":["dark","light"]},"editorTheme":{"enum":["subdued","subdued-light","subdued-dark","github-light","github-dark"]},"fontSize":{"type":"number","minimum":8,"maximum":32},"iconSize":{"type":"number","minimum":12,"maximum":28},"pwmRefreshHz":{"type":"number","minimum":10,"maximum":120}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_describe","kind":"act","impl":"imperative","description":"Discover the versioned p5comp command surface and replay limitations.","annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_state","kind":"answer","impl":"imperative","description":"Read runtime, selection, diagnostics, and revision.","annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_catalog","kind":"act","impl":"imperative","description":"List searchable component definitions, terminal names, attributes and simulation support.","annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"query":{"type":"string"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_project_get","kind":"act","impl":"imperative","description":"Read the complete portable project (code, diagram, media, assets, layout and firmware).","annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_project_open","kind":"act","impl":"imperative","description":"Validate and replace the current project. Stops simulation; does not request devices.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"project":{"type":"object"}},"required":["project"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_project_patch","kind":"act","impl":"imperative","description":"Apply an atomic RFC6902 add/replace/remove/test patch with optional optimistic revision.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"patches":{"type":"array","items":{"type":"object"},"maxItems":500},"expectedRevision":{"type":"integer"}},"required":["patches"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_part_put","kind":"act","impl":"imperative","description":"Create or replace a component. IDs, types, positions, rotation, flips, labels and attrs are explicit.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"part":{"type":"object"},"expectedRevision":{"type":"integer"}},"required":["part"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_part_remove","kind":"act","impl":"imperative","description":"Remove a component and its attached wires.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_wire_put","kind":"act","impl":"imperative","description":"Append or replace a connection [from,to,color,bends]. Terminals are partId:pinName.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"connection":{"type":"array","minItems":2,"maxItems":4},"index":{"type":"integer","minimum":0}},"required":["connection"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_wire_remove","kind":"act","impl":"imperative","description":"Remove a wire by zero-based index.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"index":{"type":"integer","minimum":0}},"required":["index"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_code_set","kind":"act","impl":"imperative","description":"Set a source file; main Arduino and active p5 files update their live editors.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"language":{"enum":["arduino","p5"]},"name":{"type":"string"},"source":{"type":"string"}},"required":["language","source"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_control_set","kind":"act","impl":"imperative","description":"Set a simulated input value (button, pot, sensor, keypad, switch).","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"id":{"type":"string"},"value":{}},"required":["id","value"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_runtime","kind":"act","impl":"imperative","description":"Control simulated Arduino/p5. Physical connect, upload and media acquisition require the human UI.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"action":{"enum":["start","stop","pause","resume","p5_start","p5_stop","compile"]}},"required":["action"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_canvas","kind":"act","impl":"imperative","description":"Manipulate routing, history, camera and selection using semantic actions.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"action":{"enum":["fit","cleanup","autoroute","undo","redo","view","select","group","ungroup","unplug"]},"index":{"type":"integer","minimum":0},"mode":{"enum":["simple","careful"]},"view":{"type":"object"},"ids":{"type":"array","items":{"type":"string"}}},"required":["action"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_media_put","kind":"act","impl":"imperative","description":"Create/update a note, image, video or inactive capture frame. Sources can be data URLs; no automatic camera permissions.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"media":{"type":"object"}},"required":["media"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_media_remove","kind":"act","impl":"imperative","description":"Remove scene media and release its active stream.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_asset","kind":"act","impl":"imperative","description":"List/get/put/remove portable project assets.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"action":{"enum":["list","get","put","remove"]},"name":{"type":"string"},"asset":{"type":"object"}},"required":["action"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_view","kind":"act","impl":"imperative","description":"Select an inspector tab, bottom tool tab, main view/layout, or p5 docking mode.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"inspector":{"enum":["arduino","p5","properties","help","settings"]},"bottom":{"enum":["simulation","serial","console"]},"main":{"enum":["circuit","p5","draw"]},"layout":{"enum":["tabs","horizontal","vertical"]},"dock":{"type":"string"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_examples","kind":"act","impl":"imperative","description":"List bundled examples or load one by its catalog path.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"path":{"type":"string"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_serial","kind":"act","impl":"imperative","description":"Read serial/console or write text to the active simulated connection.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"action":{"enum":["read","write"]},"text":{"type":"string"}},"required":["action"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_recording","kind":"act","impl":"imperative","description":"Start/stop/export/list/import/delete a semantic recording, or annotate the sequence.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"action":{"enum":["start","stop","get","list","import","remove","mark"]},"id":{"type":"string"},"title":{"type":"string"},"note":{"type":"string"},"recording":{"type":"object"}},"required":["action"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_replay","kind":"act","impl":"imperative","description":"Load a recording for ordered replay; step, play, cancel or inspect it. Timing is optional.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"action":{"enum":["load","step","play","cancel","state"]},"id":{"type":"string"},"recording":{"type":"object"},"timed":{"type":"boolean"},"speed":{"type":"number"}},"required":["action"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]},{"name":"p5comp_events","kind":"answer","impl":"imperative","description":"Read bounded ordered event history after a sequence number.","annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"since":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/p5comp/","pages":["/p5comp/"]}],"category":"Developer Tools","apiSurface":"spec","toolCount":28}}