Skip to main content

Pipeline de Jobs com SQLite e Auto-Recovery para CLIs de código

Project description

Orchestrador v3

Python 3.10+ License: MIT

🇧🇷 Português | 🇺🇸 English

Job Pipeline with SQLite and Auto-Recovery for code CLIs (Claude Code, Codex CLI).

✨ Features

  • Job Pipeline: Execute multiple jobs in sequence with dependencies
  • SQLite Persistence: State preserved between restarts
  • Auto-Recovery: Interrupted jobs are detected and can be resumed
  • Auto-Review: Automatic build, tests, and code review after each task
  • Multiple CLIs: Support for Claude Code and Codex CLI
  • Notifications: Webhook to notify when jobs finish (with channel support)
  • Concurrency: Run multiple pipelines simultaneously
  • 18 Built-in Skills: Code patterns, security, TDD, and more

📦 Installation

# Via pip (recommended)
pip install orchestrador

# Via pip local (development)
pip install -e /path/to/orchestrador

# Via pip + git
pip install git+https://github.com/Lordymine/orchestrador.git

OpenClaw Integration

After installing, run to add the skill to OpenClaw:

# Install the orchestrator-client skill
orchestrador install-skill

# The skill allows the OpenClaw agent to control the orchestrator
# Enable in openclaw.json:
# "skills": {"allowBundled": ["orchestrator-client"]}

🚀 Usage

CLI

# Start server
orchestrador start

# Check status
orchestrador status

# View logs
orchestrador logs -f

# Stop server
orchestrador stop

# Recover interrupted jobs
orchestrador recover --auto-retry

API

The server exposes a REST API on port 8765 (configurable):

# Create job with callback
curl -X POST http://localhost:8765/execute \
  -H "Content-Type: application/json" \
  -d '{
    "tipo": "backend",
    "projeto": "my-app",
    "descricao": "Create REST API with Express + TypeScript",
    "callback_session": "agent:main:main",
    "callback_channel": "telegram",
    "callback_to": "123456789"
  }'

# Create pipeline
curl -X POST http://localhost:8765/pipeline \
  -H "Content-Type: application/json" \
  -d '{
    "jobs": [
      {"tipo": "architecture", "projeto": "my-app", "descricao": "Initial setup"},
      {"tipo": "backend", "projeto": "my-app", "descricao": "Create API"},
      {"tipo": "review", "projeto": "my-app", "descricao": "Code review"}
    ],
    "callback_session": "agent:main:main",
    "callback_channel": "telegram",
    "callback_to": "123456789"
  }'

# List pipelines
curl http://localhost:8765/pipelines

# Check job status
curl http://localhost:8765/jobs/{job_id}

# Retry failed job
curl -X POST http://localhost:8765/jobs/{job_id}/retry

# Recover interrupted jobs
curl -X POST http://localhost:8765/recover?auto_retry=true

⚙️ Configuration

Environment variables:

Variable Default Description
ORCHESTRADOR_PORT 8765 Server port
ORCHESTRADOR_HOST 127.0.0.1 Server host
PROJECTS_DIR ~/workspaces/projects Projects directory
JOBS_DIR ~/.openclaw/orchestrador/jobs SQLite database directory
GATEWAY_URL http://127.0.0.1:18789 Gateway URL for webhooks
GATEWAY_HOOK_TOKEN orchestrador-hook-token Authentication token

📋 Job Types

Type CLI Description
backend Claude Backend, API, services
frontend Claude UI, components
fullstack Claude Complete projects
database Claude Schemas, migrations
api Claude REST endpoints
architecture Claude Initial setup, structure
landing Claude Landing pages
ui Claude UI/styling
devops Claude CI/CD, Docker, infra
review Codex Code review
security Codex Security analysis
bugfix Codex Bug fixes
refactor Codex Refactoring
docs Codex Documentation
e2e Codex E2E tests
analysis Codex Code analysis

🔔 Callback Notifications

The orchestrator can notify users when jobs complete:

{
  "callback_session": "agent:main:main",
  "callback_channel": "telegram",
  "callback_to": "123456789"
}

Supported channels: telegram, whatsapp, discord, slack, signal

📚 API Endpoints

Method Endpoint Description
POST /execute Start async job
POST /execute/sync Execute and wait
POST /pipeline Create job pipeline
GET /jobs List all jobs
GET /jobs/{id} Job status
GET /jobs/interrupted Interrupted jobs
POST /jobs/{id}/retry Re-execute job
GET /pipelines List pipelines
GET /pipelines/{id} Pipeline status
POST /recover Recover interrupted jobs
GET /stats Database statistics
POST /cleanup?days=30 Remove old jobs
GET /skills List skills
GET /types List job types
GET /health Health check

🔧 Development

# Clone repository
git clone https://github.com/Lordymine/orchestrador.git
cd orchestrador

# Create venv
python3 -m venv venv
source venv/bin/activate

# Install in dev mode
pip install -e ".[dev]"

# Run tests
pytest

# Format code
black src/
ruff check src/ --fix

📄 License

MIT License - see LICENSE for details.


Made with ⚡ by Lex Luthor Bot

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orchestrador-3.0.0.tar.gz (84.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

orchestrador-3.0.0-py3-none-any.whl (94.6 kB view details)

Uploaded Python 3

File details

Details for the file orchestrador-3.0.0.tar.gz.

File metadata

  • Download URL: orchestrador-3.0.0.tar.gz
  • Upload date:
  • Size: 84.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for orchestrador-3.0.0.tar.gz
Algorithm Hash digest
SHA256 5ff35c173e38832bdcbea5008e8792dc06bafa00203021220658087496aec9d6
MD5 5e81ac3756771798ff79e356fa9b374e
BLAKE2b-256 a6e7feb498df9fd128362b081c4d8d12a7d8e2d5e53b93c0177116061a0c50a2

See more details on using hashes here.

File details

Details for the file orchestrador-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: orchestrador-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 94.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for orchestrador-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a6355cec6ba621634af2fb12a629c59bf345ee4fa3e70104b46b6f12d7cd3234
MD5 7df3f59494b9649a8fa01be918adc7eb
BLAKE2b-256 cdb1192ec6b6bed84c537c41b61ca43e2f2f45d099ce2f4144f2acec5b1c9e11

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page