174 Commits

Author SHA1 Message Date
Dominik Jain
0715697cac Add information on layoutChild 2026-01-30 14:11:53 +01:00
Dominik Jain
cbb0863746 Add helper function PenpotUtils.addFlexLayout for adding a layout without changing relative child positions
Resolves #33

Additional changes: Improve prompts pertaining to layouts
2026-01-29 14:28:56 +01:00
Dominik Jain
d3e531ec7c Improve REPL
- Add full command history navigation with arrow up/down keys
- Show history indicator while browsing (yellow box with position)
- Auto-resize textarea to fit content
- Improve scroll behavior to show output after execution
- Remove redundant auto-fill of previous code
- Streamline page layout (remove heading, fix scrollbar issues)
2026-01-28 19:50:21 +01:00
Dominik Jain
9903bdf2dd Add instructions to work around counter-intuitive child ordering #28 #32
This is a temporary solution until the issue can be resolved in the API
2026-01-27 23:17:46 +01:00
Dominik Jain
8480ff63e8 Improve prompts on layouts 2026-01-27 14:42:42 +01:00
Dominik Jain
128a4fd5cb Update Serena project 2026-01-27 14:37:59 +01:00
Dominik Jain
c931e6978b Update @penpot/plugin-types to v1.4.1, removing corresponding TODO #25
Update @penpot/plugin-styles to v1.4.1
2026-01-21 16:15:43 +01:00
Dominik Jain
669a931b07 Add information on text resizing and asynchronous property updates 2026-01-20 12:25:50 +01:00
Dominik Jain
ef37434fa4 Improve prompts on containment checks 2026-01-20 12:25:50 +01:00
Dominik Jain
b055eafd0c Mention reverse order of children in flex layouts 2026-01-20 12:23:33 +01:00
Dominik Jain
20524a3a0d Instruct model to copy selection immediately 2026-01-19 21:40:41 +01:00
Dominik Jain
b82fd2cea8 Retain the readonly designation in API docs 2026-01-19 17:31:21 +01:00
Dominik Jain
c2484f312a PluginBridge: Improve logging 2026-01-15 23:50:47 +01:00
Dominik Jain
45f8c9b1df Add small section on revising designs, minor reordering #26 2026-01-15 18:08:44 +01:00
Dominik Jain
892098d63e Encourage use of the storage object 2026-01-15 17:32:59 +01:00
Dominik Jain
07300fea2d PenpotUtils.analyzeDescendants: Try more explicit args (root, shape) for evaluator #26
This can perhaps prevent usage errors
2026-01-15 17:30:36 +01:00
Dominik Jain
e993c74636 Improve prompt pertaining to image handling 2026-01-15 17:02:52 +01:00
Dominik Jain
d23b0dbe91 Improve prompts pertaining to hierarchy/reparenting #26
Remove redundant section
2026-01-15 17:02:38 +01:00
Dominik Jain
90459f0ba4 Add PenpotUtils.analyzeDescendants as a powerful utility function for validation #26 2026-01-15 16:42:47 +01:00
Dominik Jain
c4c37adb25 PenpotUtils: Add isContainedIn and setParentXY #26 2026-01-14 22:21:20 +01:00
Dominik Jain
3c1bd875d8 PenpotUtils.shapeStructure: Add essential information on layouts #26 2026-01-14 21:49:52 +01:00
Dominik Jain
4353f67322 Move 'Executing Code' section to the top 2026-01-14 21:49:52 +01:00
Dominik Jain
57c99d98f7 Initial prompt improvements inspired by design linter experiment #26 2026-01-14 21:49:42 +01:00
Dominik Jain
528a2e15f2 PenpotUtils.importImage: Fix assigned shape name 2026-01-14 19:31:18 +01:00
Dominik Jain
3dc2411130 Extend ExportShapeTool to support the export of image fill content
Add new tool parameter `mode` ("shape" or "fill") to support this

Since the fill's format is not guaranteed to be PNG, include dependency
`sharp` to handle image format conversion

Because the export logic has become more complex, introduce
PenpotUtils.exportImage utility function for minimal code to be
sent to the plugin for execution

Resolves #12
2026-01-14 16:15:36 +01:00
Dominik Jain
ec798e0363 Improve docstrings 2026-01-13 21:09:44 +01:00
Dominik Jain
28cad04e50 Remove test code 2026-01-13 20:55:56 +01:00
Dominik Jain
2b1a287f15 Update dependencies 2026-01-13 20:12:19 +01:00
Dominik Jain
567a33113b Streamline instructions for remote server configurations 2026-01-13 18:18:32 +01:00
Dominik Jain
c40fd3aefd Make MCP server listen address configurable, using localhost by default 2026-01-13 18:13:04 +01:00
Dominik Jain
14b01cd5b1 README: Fix table syntax error 2026-01-12 23:06:36 +01:00
Dominik Jain
b27ff03fbb
Merge pull request #23 2026-01-12 22:59:37 +01:00
Dominik Jain
055f717207 Standardise configuration with environment variables
Replace CLI parameters with environment variables, keeping only --multi-user and --help

Environment variables:
- PENPOT_MCP_SERVER_PORT (new, replaces CLI param)
- PENPOT_MCP_WEBSOCKET_PORT (new)
- PENPOT_MCP_REPL_PORT (new)
- PENPOT_MCP_SERVER_ADDRESS (new)
- PENPOT_MCP_REMOTE_MODE (existing)
- PENPOT_MCP_LOG_LEVEL (renamed from LOG_LEVEL, replaces CLI param)
- PENPOT_MCP_LOG_DIR (renamed from LOG_DIR, replaces CLI param)
- PENPOT_MCP_PLUGIN_SERVER_LISTEN_ADDRESS (renamed from PENPOT_MCP_PLUGIN_SERVER_ALLOWED_HOSTS)

Additional changes:
- Plugin now constructs WebSocket URL from server address and port (replaces PENPOT_MCP_WEBSOCKET_URL)
- Use configured server address in all startup log messages
- Document all configuration options in README.md
2026-01-12 22:55:17 +01:00
Dominik Jain
ab97a625e6 Add documentation on environment variables for remote mode 2026-01-12 21:14:29 +01:00
Dominik Jain
2598a57080 Add new concept of 'remote mode' (configurable via env var)
In particular, remote mode disables file system access
2026-01-12 20:51:32 +01:00
Dominik Jain
7f60e78594 Merge branch 'develop' into server
Conflicts:
  penpot-plugin/src/main.ts
2026-01-12 20:32:04 +01:00
Dominik Jain
4c875ba736 Change default allowedHosts to [], allowing only local connections (as before) 2026-01-12 20:20:57 +01:00
Dominik Jain
b67e6abdd5 Use more specific environment variable names
* VITE_ALLOWED_HOSTS -> PENPOT_MCP_PLUGIN_SERVER_ALLOWED_HOSTS
  * VITE_MCP_WS_URL -> PENPOT_MCP_WEBSOCKET_URL
2026-01-12 20:17:17 +01:00
Dominik Jain
c51255cbe0 System prompt: Add new information on z-order handling 2026-01-12 14:01:50 +01:00
Dominik Jain
04a67ca60c Update API docs 2026-01-12 13:41:16 +01:00
Dominik Jain
914903ed84 Move multi-user mode documentation to a separate file 2026-01-12 12:40:13 +01:00
Fernando Basello
dc3c407ac5 feat(plugin): support running the MCP server on a remote host (not just localhost) 2026-01-11 18:12:31 -03:00
Dominik Jain
922eeb579f Add information on multi-user mode #20 2025-12-17 12:17:42 +01:00
Dominik Jain
3f8a66f6ed Improve README structure, moving 'Repository Structure' down 2025-12-17 12:06:20 +01:00
Dominik Jain
96a6ab7535 Merge remote-tracking branch 'origin/develop' into feature/multi-user 2025-12-17 11:50:17 +01:00
Dominik Jain
445cf728b8 In multi-user mode, disable file system access in tools #20 2025-12-16 22:50:10 +01:00
Dominik Jain
02da2b4b19 Plugin: Add multi-user mode option (alt. run script, which sets constant)
User token is a dummy token for now; shall be provided by Penpot in the future
2025-12-16 22:28:02 +01:00
Dominik Jain
4c6b7844b1 Improve comments 2025-12-16 22:28:02 +01:00
Dominik Jain
a27f2d5122 Plugin: Display WebSocket errors (e.g. missing token) in UI #20 2025-12-16 22:28:02 +01:00
Dominik Jain
3766124961 Introduce MCP server launch argument --multi-user and adjust NPM scripts
(adding :multi-user variants) #20
2025-12-16 22:28:02 +01:00