Skip to main content

Plugin Registry

The Plugin Registry is the core of Conductor’s plugin system. It’s a global singleton that stores all operations (built-in and custom) and makes them available across all contexts.

Key Concepts

Universal Operations

Once an operation is registered, it works everywhere:
  • ✅ Ensembles
  • ✅ Pages
  • ✅ Forms
  • ✅ APIs
  • ✅ Webhooks
No context-specific code needed!

Singleton Pattern

The registry is a singleton - there’s only one instance per Worker:

Built-in Operations

Conductor includes these built-in operations:

fetch-data

Fetch data from various sources:

transform

Declarative data transformations - return literal values, apply modifiers (pick/omit/defaults), or merge data:
The transform operation is a first-class agent operation. Expression interpolation (${...}) is resolved by the runtime before the agent executes. See the Transform Agent documentation for full details.

custom-code

Execute custom JavaScript:

Registering Operations

Basic Registration

With Metadata

Operation Context

Operations receive a context object:
Example:

Executing Operations

Direct Execution

With Custom Handler

Override the registered handler for a specific invocation:

Discovery API

List All Operations

List by Context

List by Tag

Check if Operation Exists

Get Metadata

Context-Aware Operations

Operations can check their execution context:

Metadata Schema

Complete metadata interface:

Testing Operations

Best Practices

Naming Convention: Use namespace:operation format
Metadata is Documentation: Include comprehensive metadata
Error Handling: Throw meaningful errors
Type Safety: Use TypeScript

Management API

Unregister Operation

Clear All Operations

Reset to Initial State

Next Steps

The Plugin Registry was previously known as the “Operation Registry”. The API remains the same, but the class and function names now use “Plugin” prefix for consistency with the plugin system terminology.