mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 06:14:59 +00:00
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>
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
- Create folder:
executor/{language}/ - Implement
PluginLoaderinterface - Register loader in
ts/registry/node-executor-registry.ts - Add plugins to
plugins/{language}/