Plugin Helpers
Generated from crates/node/plugin.d.ts.
Import from nemo-relay-node/plugin.
Plugin configuration, validation, activation, and registration helpers.
Interfaces
ConfigPolicy
Plugin-level policy for unknown or unsupported plugin configuration.
ConfigDiagnostic
One validation or compatibility diagnostic produced by the plugin system.
ConfigReport
Validation or activation report for a plugin configuration.
RuntimeDiagnostic
One bounded aggregate of a runtime plugin failure.
ComponentSpec interface
One top-level plugin component.
PluginConfig
Canonical plugin configuration document.
PluginHostActivation
PluginHostReport
DynamicPluginValidationStatus
DynamicPluginFailure
DynamicPluginValidationReport
ToolExecutionInterceptOutcome
Canonical result returned by a tool execution intercept.
result is passed to the remaining middleware and application. pendingMarks are Relay-owned lifecycle metadata emitted after the tool-end event and are not included in the application-visible result.
PluginContext
Component-scoped registration context passed to plugin handlers.
Plugin
Plugin callback contract.
Functions
defaultConfig
Create an empty plugin configuration.
Returns the canonical top-level config shape with version = 1 and no configured components so callers can build a document incrementally before validating or activating it.
Returns
A new PluginConfig object ready for mutation or validation.
Remarks
Mutating the returned object does not affect runtime state until it is passed to initialize.
ComponentSpec function
Create a plugin component entry for a plugin config document.
Packages a plugin kind, component-local config, and enablement flag into the object shape expected by PluginConfig.components.
Parameters
kind: Registered plugin kind to reference.config: Component-local config passed to plugin hooks.options: Optional component-level flags.
Returns
A ComponentSpec ready to insert into a plugin config.
Remarks
Setting options.enabled = false preserves the component for validation while skipping runtime registration during initialize.
initialize
Initialize the core-owned static and dynamic plugin host.
Resolves an explicit or discovered user file with the system configuration, then applies programmatic config and activates one owned lifetime.
Parameters
config: Programmatic configuration. It overrides file values.additionalPluginsToml: Optional explicitplugins.tomllayer. A missing explicit file is reported as aplugin.configuration_file_missingwarning in the host report.
Returns
An owned activation with the unified host report.
Remarks
Keep the returned activation alive while callbacks may run and call close() or use await using for deterministic teardown.
validate
Validate the plugin host without loading plugin code.
Resolves the same layered configuration and trust policy used by activation while leaving the process-wide host lease untouched.
Parameters
config: Programmatic configuration. It overrides file values.additionalPluginsToml: Optional explicitplugins.tomllayer. A missing explicit file is reported as aplugin.configuration_file_missingwarning in the host report.
Returns
Structured static and dynamic validation report.
Remarks
Validation performs no activation and does not acquire the host lease.
validateExact
Validate only the supplied static plugin configuration.
Unlike validate, this does not discover or merge plugins.toml files. Use it for component-specific validation when config is the complete document to check.
Parameters
config: Complete static plugin configuration.
Returns
Static validation results with no dynamic plugins.
listKinds
List registered plugin kinds.
Returns the plugin kind identifiers currently known to the global registry so callers can inspect what can be referenced from plugin configs.
Returns
The registered plugin kind names.
Remarks
The list reflects registry state only; it does not indicate whether a plugin kind is currently active in the runtime configuration.
register
Register a plugin kind with JavaScript validation and registration hooks.
Adapts the higher-level Plugin object contract to the native callback shape expected by the Node binding.
Parameters
pluginKind: Unique plugin kind identifier to register.plugin: Plugin implementation withvalidateandregisterhooks.
Returns
Nothing.
Remarks
Omitting plugin.validate makes the plugin permissive during validation; plugin.register still runs later during initialize.
deregister
Remove a previously registered plugin kind.
Deletes the plugin kind from the registry so future config validation and initialization calls can no longer reference it.
Parameters
pluginKind: Registered plugin kind identifier to remove.
Returns
true when a plugin kind was removed, otherwise false.
Remarks
Active runtime registrations remain until the owning plugin-host activation closes.
Type Aliases
UnsupportedBehavior
Policy behavior for unsupported configuration.
DynamicPluginKind
Execution lane for a dynamically loaded Relay plugin.