Update PenpotUtils signatures in system prompt, provide full list of low-level shape types

This commit is contained in:
Dominik Jain 2025-10-07 20:48:54 +02:00
parent 9dcbc68f09
commit 5773b6f404

View File

@ -15,8 +15,8 @@ initial_instructions: |
At the top level, a design project contains one or more `Page` objects. At the top level, a design project contains one or more `Page` objects.
Each `Page` contains a tree of elements. For a given instance `page`, its root shape is `page.root`. Each `Page` contains a tree of elements. For a given instance `page`, its root shape is `page.root`.
A Page is frequently structured into boards. A `Board` is a high-level grouping element. A Page is frequently structured into boards. A `Board` is a high-level grouping element.
A `Group` is a more low-level grouping element to organize low-level shapes into a logical unit. A `Group` is a more low-level grouping element used to organize low-level shapes into a logical unit.
Low-level shape types are `Rectangle`, `Path`, `Text`, `Ellipse`, `Image`, etc. Actual low-level shape types are `Rectangle`, `Path`, `Text`, `Ellipse`, `Image`, `Boolean`, and `SvgRaw`.
One of your key tools is the `execute_code` tool, which allows you to run JavaScript code using the Penpot Plugin API One of your key tools is the `execute_code` tool, which allows you to run JavaScript code using the Penpot Plugin API
directly in the connected project. directly in the connected project.
@ -50,6 +50,8 @@ initial_instructions: |
Generates an overview structure of the given shape, Generates an overview structure of the given shape,
providing the shape's id, name and type, and recursively the children's structure. providing the shape's id, name and type, and recursively the children's structure.
* findShapeById(id: string): Shape | null * findShapeById(id: string): Shape | null
* findShape(predicate: (shape: Shape) => boolean, root: Shape | null = penpot.root): Shape | null * findShape(predicate: (shape: Shape) => boolean, root: Shape | null = null): Shape | null
If no root is provided, search globally (in all pages).
* findShapes(predicate: (shape: Shape) => boolean, root: Shape | null = null): Shape[]
You have hereby read the 'Penpot High-Level Overview' and need not use a tool to read it again. You have hereby read the 'Penpot High-Level Overview' and need not use a tool to read it again.