task: #3611165 Initialize AI Penpot module

Initializes the AI Penpot module (issue https://www.drupal.org/project/ai_penpot/issues/3611165).

AI Penpot reads live Penpot design context (colours, typography, verbatim text and a shape outline) via the Penpot RPC API from server-side PHP and exposes it as AI Agent tools, so the Drupal Canvas AI assistant can build from a real Penpot design — paste a Penpot link, the system reads it. General-purpose, config-driven, theme- and framework-agnostic.

This MR adds:

  • The base Penpot RPC client (access token from the Key module, SSRF-guarded base URL, Penpot URL parsing, get-file / get-page, design-token summary).
  • The admin settings form at /admin/config/ai/penpot (instance URL, token Key, default file id, Test connection) + an install hook provisioning an encrypted penpot Key.
  • Two AI Agent tools: ai_penpot:list_design_pages and ai_penpot:design_context.
  • GitLab CI (.gitlab-ci.yml with PHPCS/PHPStan gates + a webship-js functional lane) and issue/MR templates.
  • A webship-js (Playwright + Cucumber-js) functional test suite — 25 scenarios covering the settings form, permissions, AI tool registration, status report and access control (no live-LLM / live-Penpot scenarios).

By: Natshah This includes contributions generated with the assistance of AI (Claude).

Checkpoints

  • File an issue about this project
  • Addition/Change/Update/Fix to this project
  • Testing to ensure no regression
  • Automated unit/functional testing coverage
  • Developer Documentation support on feature change/addition
  • User Guide Documentation support on feature change/addition
  • UX/UI designer responsibilities
  • Accessibility and Readability
  • Reviewed by a human
  • Code review by maintainers
  • Full testing and approval
  • Credit contributors
  • Review with the product owner
  • Update Release Notes
  • Release
Edited by Rajab Natshah

Merge request reports

Loading