Drupal is a registered trademark of Dries Buytaert
Release: Leaflet 10.4.11 Minor update available for module leaflet (10.4.11). Release: Session Inspector 1.0.8 Minor update available for module session_inspector (1.0.8). Release: Migrate QA 2.0.4 Minor update available for module migrate_qa (2.0.4). Release: CKEditor Description List 3.0.0 Major update available for module ckeditor_descriptionlist (3.0.0). Release: FlowDrop 2.4.0 Minor update available for module flowdrop (2.4.0). Release: JWT Token Refresh 1.0.4 Minor update available for module jwt_token_refresh (1.0.4). Release: ConReg 1.0.0-beta1 First beta version released for module conreg (1.0.0-beta1). Release: AI Image Studio 1.0.0-beta8 New beta version released for module ai_image_studio (1.0.0-beta8). Usage Milestone: Role Theme Switcher Module role_theme_switcher crossed 1,000 active installs. Module Revived: Decoupled Router 2.0.7 Module decoupled_router updated after 11 months of inactivity (2.0.7).

This module allows for direct, deterministic edits to Canvas components without using AI. It reads your theme's component schemas to resolve changes like "set the color to blue" or "bigger" with high accuracy. Any edits that cannot be resolved directly are then passed to the AI agent system.

When users make simple changes to Canvas components ("set the color to blue," "change the heading to Welcome"), the correct result is deterministic. The prop name and value can be resolved directly from the SDC component schema without any AI reasoning.

This module does exactly that. It reads your theme's component YAML schemas, builds prop alias and enum value maps, and resolves edits through seven match tiers:

  • Exact and alias matches: "set text_color to primary" or "set the color to blue"
  • Bare value inference: Just "blue" resolves to the correct prop when unambiguous
  • Relative adjustments: "bigger" or "smaller" navigates enum ordinals
  • Boolean toggles: "show the header" or "hide the footer"
  • Reset patterns: "reset the color" returns the prop to its default
  • Compound edits: "change the heading to Welcome and set the color to blue"

Anything the matcher can't resolve with certainty gets a 422 response, routing the request to the existing AI agent chain. Zero false positives by design.

Key features

  • 8 Tool API plugins with automatic MCP, CLI, and AI agent discovery
  • HTTP bridge controller at the same endpoint the Canvas frontend already calls
  • Optional MCP server submodule (JSON-RPC 2.0) for external clients
  • Schema-driven: adapts automatically when theme components change
  • Config-driven verb and alias lists for customization without patching
  • Opt-in telemetry with PII-safe defaults (SHA-256 hashing, no raw text storage)
  • Works without AI providers configured (Canvas Direct mode: deterministic edits succeed, unmatched edits return 503 instead of routing to AI)

Measured results

All measurements on a 15-component demo page:

  • Deterministic path: 0 tokens, <7ms
  • AI baseline: ~101K tokens, 16.4s
  • Hit rate: 60% on 20 mixed edits, zero false positives

59 kernel tests, 221 assertions. PHPCS clean (Drupal + DrupalPractice).

Requires: AI Agents, Tool, Canvas.

Activity

Tracked releases
3
Tracked since
Apr 2026
Latest release
1 month ago
Releases (12 mo)
3 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Release date
1.0.0-alpha2 Pre-release Jun 25, 2026
1.0.x-dev Dev Apr 1, 2026
1.0.0-alpha1 Pre-release Apr 1, 2026