WP Manifestindependent plugin directory
manifest / ai / dragwyb-ai-agent-workflows

Dragwyb AI Agent Workflows

A visual, drag-and-drop workflow automation and AI Agent orchestrator for WordPress. Connect webhooks, automate tasks, and integrate LLMs (OpenAI, Claude, Gemini).

by Dragwyb · github.com/dragwyb/dragwyb-ai-agent-workflows · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/dragwyb/dragwyb-ai-agent-workflows/archive/refs/heads/main.zip

Readme

Workflow Automate

A from-scratch WordPress workflow automation plugin. See CURSOR_INSTRUCTIONS.md for the governing process, docs/internal/bitpi-analysis.md for the competitive analysis that informed this design, and docs/internal/architecture.md for the architecture this codebase follows.

Requirements

  • PHP 7.4+
  • WordPress 5.8+
  • Optional: Composer for dependency management and code-quality tooling.

Local setup

  1. Place (or symlink) this directory into wp-content/plugins/.
  2. If you have Composer available:
    composer install

    This generates vendor/autoload.php, which the plugin will use automatically in preference to its built-in fallback autoloader.

  3. If Composer is not available in your environment, no action is needed — the plugin ships a small dependency-free PSR-4 autoloader (src/autoload.php) that is used automatically when vendor/autoload.php is missing. This keeps the plugin fully functional in environments without a Composer/PHP CLI on PATH (e.g. some local Windows setups), while still preferring the standard Composer-generated autoloader when one exists.
  4. Build the workflow builder's front-end app:
    npm install
    npm run build

    This compiles assets/builder/src/ into assets/builder/build/ (not committed to version control). The "Workflow Editor" admin screen shows an admin notice instead of a blank page if this step is skipped.

  5. Activate Workflow Automate from the WordPress admin Plugins screen.

Coding standards & linting

  • PHP: WordPress Coding Standards via PHPCS, configured in phpcs.xml.dist.
    composer install
    composer phpcs   # report violations
    composer phpcbf  # auto-fix what can be fixed
  • JavaScript: @wordpress/eslint-plugin, configured in .eslintrc.
    npm install
    npm run lint:js
    npm run lint:js:fix

    @wordpress/scripts is intentionally pinned to ^27.x rather than latest — see the comment in webpack.config.js for why (v28+ requires WordPress 6.6's react-jsx-runtime script, but this plugin supports WordPress 5.8+).

Project structure

dragwyb-ai-agent-workflows.php   Plugin bootstrap (header, version gate, autoload, activation hooks)
uninstall.php           WordPress-invoked cleanup entry point
src/
  autoload.php           Fallback PSR-4 autoloader (see "Local setup" above)
  Core/                  Bootstrap: Plugin, Container, Requirements, Activator, Deactivator, Uninstaller, Options, Encryption, Capabilities
  Database/              Migration base class/runner, table-name helper, migrations (dbDelta-based schema)
  Domain/                Plain, persistence-agnostic entities (Workflow, WorkflowNode, WorkflowRun, WorkflowRunLog, Connection, Webhook)
  Domain/Contracts/      Public extension interfaces (TriggerInterface, ActionInterface)
  Persistence/            Repositories wrapping $wpdb access (one per aggregate root)
  Service/               Application services orchestrating domain + persistence (WorkflowService, NodeTypeRegistry, NodeExecutionService, WorkflowExecutionService, BackgroundRunner, SettingsService, RunRetentionService, ConnectionAuthTypes, ConnectionService, WebhookService)
  Integration/           Built-in trigger/action node types (Triggers/, Actions/: WpHookTrigger, HttpRequestAction, SendEmailAction, WooCommerceOrderCompletedTrigger when WooCommerce is active), registered via daiaw/nodes/register (BuiltInNodeTypes); WorkflowTriggerBinder binds active workflows' triggers to WorkflowExecutionService::queue()/run() (per SettingsService::backgroundExecutionEnabled()) on init
  Rest/                  WP_REST_Controller subclass (WorkflowsController) plus plain route classes (NodeTypesController, ConnectionsController, public WebhookIngressController) + rest_api_init bootstrap (daiaw/v1 namespace)
  Admin/                 Admin menu bootstrap, AdminPage contract, EmptyState helper, screens, list tables, admin-post handlers (WorkflowActionsController, RunActionsController, SettingsController, ConnectionActionsController, WebhookActionsController), status badge/duration/timestamp display helpers (RunStatusBadge, RunDuration, RunTimestamp, ConnectionStatusBadge)
  Admin/Pages/           WorkflowsPage (list), BuilderPage (visual editor shell), RunsPage (execution history list), RunDetailPage (single run + node log), SettingsPage (General/Retention/Advanced tabs), ConnectionsPage (list), ConnectionFormPage (create/edit), WebhooksPage (list), WebhookFormPage (create/edit)
assets/
  admin/css/             Admin screen CSS, enqueued only on the plugin's own screens
  builder/src/           React builder app source (built with @wordpress/scripts; see "Local setup")
  builder/build/         Compiled builder app (generated by `npm run build`, not committed)
webpack.config.js        Points @wordpress/scripts at assets/builder/src -> assets/builder/build
docs/
  hooks-reference.md     Public extensibility reference (actions, PHP contracts, capabilities) — authoritative list of shipped extension points
  rest-api.md            REST API endpoint reference (daiaw/v1)
  integrations.md        Every shipped integration: what it is, and how (or whether) it stores/uses credentials
  internal/              Development-only docs (analysis, architecture, roadmap) — excluded from release builds

Development process

This project follows a strict, incremental, feature-by-feature workflow with a mandatory self/security/performance/standards review after every increment. See CURSOR_INSTRUCTIONS.md Sections 9–11 and docs/internal/roadmap.md for the current status of each increment.

Release packaging

  • /docs/internal/ must be excluded from any distributable ZIP built for release; it is development-only documentation.
  • npm run build must be run before packaging a release ZIP: assets/builder/build/ is not committed to version control, and the plugin has no build step at install time (WordPress sites just get the shipped files as-is).

Read the full README on GitHub →