Files
metabuilder/workflow/plugins/go
johndoe6345789 bb17f395fe feat: complete fakemui accessibility integration with data-testid and ARIA
Complete implementation of accessibility utilities across fakemui components:

**New Files**:
- src/utils/accessibility.ts - Core accessibility utilities (moved from legacy)
- src/utils/accessibility.module.scss - Accessibility SCSS styles
- src/utils/useAccessible.ts - React hooks for accessibility:
  * useAccessible() - Generate test IDs and ARIA attributes
  * useKeyboardNavigation() - Handle keyboard events
  * useFocusManagement() - Programmatic focus control
  * useLiveRegion() - Screen reader announcements
  * useFocusTrap() - Focus trapping for modals

**Component Updates**:
- Button.tsx - Added data-testid and ARIA support via useAccessible hook
- TextField.tsx - Added data-testid, aria-invalid, aria-describedby support

**Documentation**:
- docs/ACCESSIBILITY_INTEGRATION.md - Complete integration guide with examples

**Features**:
- 50+ preset test ID generators (form, canvas, settings, navigation, etc.)
- ARIA attribute patterns for buttons, toggles, dialogs, tabs, live regions
- Keyboard navigation helpers (Enter, Escape, Arrow keys, Tab)
- Accessibility validators (hasLabel, isKeyboardAccessible, etc.)
- Fully typed TypeScript with AccessibilityFeature, Component, Action types

All components now support reliable testing via data-testid and screen reader access via ARIA attributes.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-23 17:25:48 +00:00
..

Go Workflow Plugins

Go plugins for MetaBuilder workflow engine. Follows the same interface pattern as Python plugins.

Plugin Interface

// All plugins implement this signature
func Run(runtime *plugin.Runtime, inputs map[string]interface{}) (map[string]interface{}, error)

The runtime object provides:

  • Store - Workflow state storage (persists between nodes)
  • Context - Shared context (clients, configuration)
  • Logger - Logging interface

Categories

Category Plugins Purpose
convert to_string, to_number, to_boolean, to_json, parse_json Type conversion
list concat, length, slice, reverse List operations
logic and, or, not, equals, gt, lt Boolean logic
math add, subtract, multiply, divide Arithmetic
string concat, split, replace, upper, lower String manipulation
var get, set, delete Variable management

Example Usage

In Workflow JSON

{
  "version": "2.2.0",
  "nodes": [
    {
      "id": "add-numbers",
      "type": "operation",
      "op": "go.math.add",
      "params": {
        "numbers": [1, 2, 3, 4, 5]
      }
    },
    {
      "id": "format-result",
      "type": "operation",
      "op": "go.string.concat",
      "params": {
        "strings": ["Sum: ", "{{ $nodes['add-numbers'].result }}"],
        "separator": ""
      }
    }
  ],
  "connections": [
    { "from": "add-numbers", "to": "format-result" }
  ]
}

Performance

Go plugins are compiled to native code, offering:

  • 10-100x faster than Python for CPU-bound operations
  • Low memory footprint for concurrent execution
  • No GIL - true parallelism

Best for:

  • High-throughput data processing
  • Concurrent operations
  • Memory-efficient batch operations