Files
metabuilder/workflow/executor
johndoe6345789 3d6ae4cbf7 feat: Add complete Python workflow executor from AutoMetabuilder
Add full Python workflow execution engine with:

Core Executor:
- engine.py: WorkflowEngine for running n8n configs
- n8n_executor.py: N8N-style workflow execution with connections
- node_executor.py: Individual node execution with plugin dispatch
- loop_executor.py: Loop node execution with iteration control
- execution_order.py: Topological sort for node ordering

Schema & Validation:
- n8n_schema.py: N8N workflow schema types and validation
- n8n_converter.py: Legacy to n8n schema conversion

Plugin System:
- plugin_loader.py: Dynamic plugin loading
- plugin_registry.py: Plugin discovery and registration
- plugin_map.json: 116 plugin type mappings

Runtime & Context:
- runtime.py: Workflow runtime container
- input_resolver.py: Binding and coercion resolution
- value_helpers.py: Value normalization helpers
- workflow_context_builder.py: Runtime context assembly
- workflow_config_loader.py: Configuration loading
- workflow_engine_builder.py: Engine assembly with dependencies

Utilities:
- tool_calls_handler.py: LLM tool call handling
- tool_runner.py: Tool execution with logging
- notification_helpers.py: Slack/Discord notifications
- workflow_adapter.py: N8N format handling
- workflow_graph.py: Node/edge graph for visualization

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 16:42:30 +00:00
..

Workflow Executor Runtimes

This folder contains language-specific runtime executors for the workflow engine.

Structure

executor/
├── cpp/        # C++ runtime (high-performance)
├── python/     # Python runtime (AI/ML capabilities)
└── ts/         # TypeScript runtime + core engine
    ├── executor/   # DAG executor
    ├── registry/   # Plugin registry
    ├── utils/      # Priority queue, template engine
    ├── types.ts    # Type definitions
    └── index.ts    # Main exports

Purpose

Each runtime provides the execution environment for plugins written in that language:

TypeScript Runtime (ts/)

  • Contains the core engine (DAG executor, registry, utils)
  • Default runtime for orchestration
  • Direct JavaScript/TypeScript execution
  • Full type safety
  • Fastest startup time

Python Runtime (python/)

  • Child process execution
  • AI/ML library access (TensorFlow, PyTorch, transformers)
  • Data science capabilities (pandas, numpy)
  • NLP processing (spaCy, NLTK)

C++ Runtime (cpp/)

  • Native FFI bindings
  • 100-1000x faster than TypeScript
  • Low memory footprint
  • Ideal for bulk data processing

How It Works

┌─────────────────────────────────────────┐
│  DAGExecutor (TypeScript Core)          │
│  - Orchestrates workflow execution      │
│  - Resolves dependencies                │
│  - Manages execution state              │
└─────────────────┬───────────────────────┘
                  │
        ┌─────────┼─────────┐
        │         │         │
        ↓         ↓         ↓
    ┌────────┬────────┬────────┐
    │   TS   │  C++   │ Python │
    │Runtime │Runtime │Runtime │
    └────────┴────────┴────────┘
        │         │         │
        ↓         ↓         ↓
    ┌────────┬────────┬────────┐
    │Direct  │Native  │Child   │
    │Import  │FFI     │Process │
    └────────┴────────┴────────┘

Adding a New Runtime

  1. Create folder: executor/{language}/
  2. Implement PluginLoader interface
  3. Register loader in ts/registry/node-executor-registry.ts
  4. Add plugins to plugins/{language}/