Files
johndoe6345789 af4a9d8d8d feat: Add workflow plugins for standalone project integration
Created TypeScript workflow plugins to integrate all standalone projects:

Plugins (8 files):
- cadquery.ts - 3D CAD modeling (box, cylinder, execute)
- gameengine.ts - SDL3 game engine (build, run, listPackages)
- pastebin.ts - Code snippets (create, get, list)
- pcb.ts - PCB design (generate, createBoard, listFootprints)
- docker.ts - Container management (run, stop, scale, deploy)
- smtp.ts - Email relay (sendEmail, status, start)
- mojo.ts - Systems programming (run, build, runExample)
- postgres.ts - Database admin (query, execute, backup)

Total: 30+ workflow nodes for cross-project automation

Example workflow: cross-project-workflow.json
- Demonstrates parallel execution across 6 projects
- Database check, Docker status, 3D modeling, Mojo benchmark
- Results aggregation, pastebin sharing, email notification

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 18:15:45 +00:00

4.7 KiB

Projects Plugin

Workflow integration for MetaBuilder's standalone projects. This plugin provides workflow nodes to interact with all 15 standalone projects in the monorepo.

Available Nodes

CadQuery (3D CAD)

  • cadquery.execute - Execute a CadQuery Python script
  • cadquery.box - Create a 3D box
  • cadquery.cylinder - Create a 3D cylinder

Game Engine (C++ SDL3)

  • gameengine.build - Build the SDL3 game engine
  • gameengine.run - Run a game engine executable
  • gameengine.listPackages - List available game engine packages

Pastebin (Code Snippets)

  • pastebin.create - Create a new code snippet
  • pastebin.get - Get a paste by ID
  • pastebin.list - List recent pastes

PCB Generator

  • pcb.generate - Execute a PCB generation script
  • pcb.createBoard - Create a PCB with components and traces
  • pcb.listFootprints - List available PCB footprints

Docker (Container Management)

  • docker.listContainers - List Docker containers
  • docker.listServices - List Docker Swarm services
  • docker.run - Run a Docker container
  • docker.stop - Stop a Docker container
  • docker.scaleService - Scale a Docker Swarm service
  • docker.deployStack - Deploy a stack to Docker Swarm

SMTP (Email Relay)

  • smtp.sendEmail - Send an email via SMTP relay
  • smtp.status - Check SMTP server status
  • smtp.start - Start the SMTP relay server

Mojo (Systems Programming)

  • mojo.run - Run Mojo code directly
  • mojo.build - Build Mojo file to native binary
  • mojo.runExample - Run a Mojo example
  • mojo.listExamples - List available Mojo examples

PostgreSQL (Database Admin)

  • postgres.query - Execute a SQL query and return results
  • postgres.execute - Execute a SQL command
  • postgres.listTables - List all tables in the database
  • postgres.describeTable - Get table schema/columns
  • postgres.checkConnection - Check database connection
  • postgres.backup - Create a database backup

Example Workflows

Create 3D Model and Share

{
  "version": "2.2.0",
  "name": "create-and-share-3d",
  "nodes": [
    {
      "id": "create-model",
      "type": "operation",
      "op": "cadquery.box",
      "params": {
        "length": 100,
        "width": 50,
        "height": 25,
        "outputPath": "/tmp/model.step"
      }
    },
    {
      "id": "share-model",
      "type": "operation",
      "op": "pastebin.create",
      "params": {
        "content": "{{ $nodes['create-model'].outputPath }}",
        "title": "3D Model Path",
        "language": "plaintext"
      }
    }
  ],
  "connections": [
    { "from": "create-model", "to": "share-model" }
  ]
}

Deploy Container and Send Notification

{
  "version": "2.2.0",
  "name": "deploy-and-notify",
  "nodes": [
    {
      "id": "deploy",
      "type": "operation",
      "op": "docker.run",
      "params": {
        "image": "nginx:latest",
        "name": "my-nginx",
        "ports": ["8080:80"],
        "detach": true
      }
    },
    {
      "id": "notify",
      "type": "operation",
      "op": "smtp.sendEmail",
      "params": {
        "from": "deploy@metabuilder.local",
        "to": "admin@example.com",
        "subject": "Container Deployed",
        "body": "Container {{ $nodes['deploy'].containerId }} is now running"
      }
    }
  ],
  "connections": [
    { "from": "deploy", "to": "notify" }
  ]
}

Database Backup Workflow

{
  "version": "2.2.0",
  "name": "daily-backup",
  "nodes": [
    {
      "id": "check-db",
      "type": "operation",
      "op": "postgres.checkConnection",
      "params": {
        "host": "localhost",
        "database": "myapp"
      }
    },
    {
      "id": "backup",
      "type": "operation",
      "op": "postgres.backup",
      "params": {
        "host": "localhost",
        "database": "myapp",
        "outputPath": "/backups/myapp-{{ $date }}.sql"
      }
    },
    {
      "id": "notify",
      "type": "operation",
      "op": "smtp.sendEmail",
      "params": {
        "from": "backup@metabuilder.local",
        "to": "dba@example.com",
        "subject": "Backup Complete",
        "body": "Database backup saved to {{ $nodes['backup'].backupPath }}"
      }
    }
  ],
  "connections": [
    { "from": "check-db", "to": "backup" },
    { "from": "backup", "to": "notify" }
  ]
}

Requirements

Each plugin requires the corresponding project dependencies:

  • cadquery: Python 3, CadQuery library
  • gameengine: CMake, SDL3, C++ compiler
  • pastebin: Pastebin service running (default: localhost:3001)
  • pcb: Python 3, boardforge library
  • docker: Docker CLI installed
  • smtp: SMTP relay service or external SMTP server
  • mojo: Mojo SDK installed
  • postgres: PostgreSQL client (psql, pg_dump)