# Interface IPluginRegistry

Plugin registry — manages plugin lifecycle and resolution.

Registry is frozen after startup — no runtime registration.

interface IPluginRegistry {
register(plugin: PipelinePlugin): Result<void, RegistrationError>;
resolve(pluginId: string): PipelinePlugin | undefined;
listEnabled(): readonly {
id: string;
version: string;
description: string;
stages: (
"analyze"
| "validate"
| "aggregate"
| "execute"
| "gate"
| "route"
)[];
requiredCapabilities: string[];
trustLevel: "external" | "standard" | "core" | "experimental";
experimental: boolean;
}[];
isEnabled(pluginId: string): boolean;
freeze(): void;
frozen: boolean;
}

#### Implemented by

- PluginRegistry

- Defined in packages/nexus-agents/src/pipeline/plugin-types.ts:141

##### Index

### Properties

frozen

### Methods

register
resolve
listEnabled
isEnabled
freeze

## Properties

### `Readonly` frozen

frozen: boolean

Whether the registry is frozen.

- Defined in packages/nexus-agents/src/pipeline/plugin-types.ts:161

## Methods

### register

- register(plugin: PipelinePlugin): Result<void, RegistrationError>

  Register a plugin. Validates manifest and config. Returns error if plugin ID conflicts or capabilities missing.

  #### Parameters

  - plugin: PipelinePlugin

  #### Returns Result<void, RegistrationError>

  - Defined in packages/nexus-agents/src/pipeline/plugin-types.ts:146

### resolve

- resolve(pluginId: string): PipelinePlugin | undefined

  Resolve a plugin by ID. Returns undefined if not registered or disabled.

  #### Parameters

  - pluginId: string

  #### Returns PipelinePlugin | undefined

  - Defined in packages/nexus-agents/src/pipeline/plugin-types.ts:149

### listEnabled

- listEnabled(): readonly {
  id: string;
  version: string;
  description: string;
  stages: (
  "analyze"
  | "validate"
  | "aggregate"
  | "execute"
  | "gate"
  | "route"
  )[];
  requiredCapabilities: string[];
  trustLevel: "external" | "standard" | "core" | "experimental";
  experimental: boolean;
  }[]

  List all enabled plugins with their manifests.

  #### Returns readonly {
  id: string;
  version: string;
  description: string;
  stages: (
  "analyze"
  | "validate"
  | "aggregate"
  | "execute"
  | "gate"
  | "route"
  )[];
  requiredCapabilities: string[];
  trustLevel: "external" | "standard" | "core" | "experimental";
  experimental: boolean;
  }[]

  - Defined in packages/nexus-agents/src/pipeline/plugin-types.ts:152

### isEnabled

- isEnabled(pluginId: string): boolean

  Check if a plugin is registered and enabled.

  #### Parameters

  - pluginId: string

  #### Returns boolean

  - Defined in packages/nexus-agents/src/pipeline/plugin-types.ts:155

### freeze

- freeze(): void

  Freeze the registry — no further registrations allowed.

  #### Returns void

  - Defined in packages/nexus-agents/src/pipeline/plugin-types.ts:158