mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 14:25:02 +00:00
The TypeScript core engine now lives inside executor/ts/ alongside the
TypeScript runtime, creating a cleaner structure where each executor
folder is self-contained.
Structure:
executor/ts/ # TypeScript runtime + core engine
├── executor/ # DAG executor
├── registry/ # Plugin registry
├── utils/ # Priority queue, template engine
├── types.ts # Type definitions
└── index.ts # Main exports
executor/python/ # Python runtime
executor/cpp/ # C++ runtime (Phase 3)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
73 lines
2.6 KiB
Markdown
73 lines
2.6 KiB
Markdown
# 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}/`
|