Skip to content

Plugin Architecture

Plugins are runtime transform executors. New extensions use the versioned, artifact-native v2 contract; the original text contract is retained as a compatibility surface.

Main components

Component Purpose
PluginTransformV2 typed single/collection artifact transform contract
PluginRegistryV2 explicit duplicate and capability-safe replacement policy
PluginExecutionContext scoped store, process, cancellation, progress, and identity services
PluginLifecycleObserver immutable lifecycle event observations without mutation authority
PluginExecutor trait implemented by the plugin
PluginRegistry stores executors and metadata
PluginMetadata discovery, validation, and diagnostics
PluginContext working directory, temp dir, dry-run flag, namespaced config
PluginTransform adapter that lets a plugin participate like a transform

Lifecycle

sequenceDiagram
  participant Host
  participant Registry as PluginRegistryV2
  participant RF as Renderflow
  participant Plugin
  Host->>Registry: register(...)
  RF->>Registry: lookup by plugin name
  Registry-->>RF: transform + descriptor
  RF->>Plugin: execute(artifacts, scoped context)
  Plugin-->>RF: artifacts + diagnostics + metrics

Capabilities

V2 plugins declare:

  • input cardinality and supported formats
  • capability, implementation version, and required providers
  • determinism and enforceable cache policy
  • loss/fidelity behavior
  • typed configuration schema

Current CLI scope

The core CLI does not auto-discover plugin binaries or dynamic libraries. Plugin registration is a library concern today.