Skip to content

agents / Exports / AbstractPlugin

Class: AbstractPlugin<TOptions, TStats>

Abstract class for all plugins with type parameter support Provides plugin lifecycle management and common functionality

Enhanced with:

  • Plugin classification system (categories and priorities)
  • EventEmitter integration for module event subscription
  • Improved statistics tracking
  • Better error handling and recovery

Type parameters

NameTypeDescription
TOptionsextends IPluginOptions = IPluginOptionsPlugin options type that extends IPluginOptions
TStatsextends IPluginStats = IPluginStatsPlugin statistics type (defaults to IPluginStats for type safety)

Hierarchy

Implements

Table of contents

Constructors

Properties

Methods

Constructors

constructor

new AbstractPlugin<TOptions, TStats>(): AbstractPlugin<TOptions, TStats>

Type parameters

NameType
TOptionsextends IPluginOptions = IPluginOptions
TStatsextends IPluginStats = IPluginStats

Returns

AbstractPlugin<TOptions, TStats>

Properties

name

Readonly Abstract name: string

Plugin name

Implementation of

ITypeSafePlugin.name

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:301


version

Readonly Abstract version: string

Plugin version

Implementation of

ITypeSafePlugin.version

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:304


enabled

enabled: boolean = true

Plugin enabled state

Implementation of

ITypeSafePlugin.enabled

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:307


category

category: PluginCategory = PluginCategory.CUSTOM

Plugin category for classification

Implementation of

ITypeSafePlugin.category

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:310


priority

priority: number = PluginPriority.NORMAL

Plugin priority for execution order

Implementation of

ITypeSafePlugin.priority

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:313

Methods

initialize

initialize(options?): Promise<void>

Initialize the plugin with type-safe options

Parameters

NameType
options?TOptions

Returns

Promise<void>

Implementation of

ITypeSafePlugin.initialize

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:338


subscribeToModuleEvents

subscribeToModuleEvents(eventEmitter): Promise<void>

Subscribe to module events through EventEmitter

Parameters

NameType
eventEmitterEventEmitterPlugin

Returns

Promise<void>

Implementation of

ITypeSafePlugin.subscribeToModuleEvents

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:366


unsubscribeFromModuleEvents

unsubscribeFromModuleEvents(eventEmitter): Promise<void>

Unsubscribe from module events

Parameters

NameType
eventEmitterEventEmitterPlugin

Returns

Promise<void>

Implementation of

ITypeSafePlugin.unsubscribeFromModuleEvents

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:423


dispose

dispose(): Promise<void>

Cleanup plugin resources

Returns

Promise<void>

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:438


enable

enable(): void

Enable the plugin

Returns

void

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:450


disable

disable(): void

Disable the plugin

Returns

void

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:457


isEnabled

isEnabled(): boolean

Check if plugin is enabled

Returns

boolean

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:464


getConfig

getConfig(): IPluginConfig

Get plugin configuration

Returns

IPluginConfig

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:471


updateConfig

updateConfig(_config): void

Update plugin configuration

Parameters

NameType
_configIPluginConfig

Returns

void

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:478


getData

getData(): IPluginData

Get plugin data - enhanced with classification information

Returns

IPluginData

Implementation of

ITypeSafePlugin.getData

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:485


clearData

clearData(): void

Clear plugin data - common interface for all plugins This method should be implemented by plugins that store data

Returns

void

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:505


getStatus

getStatus(): Object

Get plugin status - enhanced with classification information

Returns

Object

NameType
namestring
versionstring
enabledboolean
initializedboolean
categoryPluginCategory
prioritynumber
subscribedEventsCountnumber
hasEventEmitterboolean

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:510


getStats

getStats(): TStats

Get plugin statistics - enhanced with module event tracking

Returns

TStats

Implementation of

ITypeSafePlugin.getStats

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:535


beforeRun

beforeRun(input, options?): Promise<void>

Called before agent run

Parameters

NameType
inputstring
options?IRunOptions

Returns

Promise<void>

Implementation of

IPluginHooks.beforeRun

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:564


afterRun

afterRun(input, response, options?): Promise<void>

Called after agent run

Parameters

NameType
inputstring
responsestring
options?IRunOptions

Returns

Promise<void>

Implementation of

IPluginHooks.afterRun

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:565


beforeExecution

beforeExecution(context): Promise<void>

Called before execution with context

Parameters

NameType
contextIPluginExecutionContext

Returns

Promise<void>

Implementation of

IPluginHooks.beforeExecution

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:566


afterExecution

afterExecution(context, result): Promise<void>

Called after execution with context and result

Parameters

NameType
contextIPluginExecutionContext
resultIPluginExecutionResult

Returns

Promise<void>

Implementation of

IPluginHooks.afterExecution

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:567


beforeConversation

beforeConversation(context): Promise<void>

Called before conversation with context

Parameters

NameType
contextIPluginExecutionContext

Returns

Promise<void>

Implementation of

IPluginHooks.beforeConversation

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:568


afterConversation

afterConversation(context, result): Promise<void>

Called after conversation with context and result

Parameters

NameType
contextIPluginExecutionContext
resultIPluginExecutionResult

Returns

Promise<void>

Implementation of

IPluginHooks.afterConversation

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:569


beforeToolCall

beforeToolCall(toolName, parameters): Promise<void>

Called before tool execution

Parameters

NameType
toolNamestring
parametersTToolParameters

Returns

Promise<void>

Implementation of

IPluginHooks.beforeToolCall

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:570


beforeToolExecution

beforeToolExecution(context, toolData): Promise<void>

Called before tool execution with context

Parameters

NameType
contextIPluginExecutionContext
toolDataIToolExecutionContext

Returns

Promise<void>

Implementation of

IPluginHooks.beforeToolExecution

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:571


afterToolCall

afterToolCall(toolName, parameters, result): Promise<void>

Called after tool execution

Parameters

NameType
toolNamestring
parametersTToolParameters
resultIToolExecutionResult

Returns

Promise<void>

Implementation of

IPluginHooks.afterToolCall

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:572


afterToolExecution

afterToolExecution(context, toolResults): Promise<void>

Called after tool execution with context

Parameters

NameType
contextIPluginExecutionContext
toolResultsIPluginExecutionResult

Returns

Promise<void>

Implementation of

IPluginHooks.afterToolExecution

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:573


beforeProviderCall

beforeProviderCall(messages): Promise<void>

Called before AI provider call

Parameters

NameType
messagesTUniversalMessage[]

Returns

Promise<void>

Implementation of

IPluginHooks.beforeProviderCall

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:574


afterProviderCall

afterProviderCall(messages, response): Promise<void>

Called after AI provider call

Parameters

NameType
messagesTUniversalMessage[]
responseTUniversalMessage

Returns

Promise<void>

Implementation of

IPluginHooks.afterProviderCall

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:575


onStreamingChunk

onStreamingChunk(chunk): Promise<void>

Called on streaming chunk

Parameters

NameType
chunkTUniversalMessage

Returns

Promise<void>

Implementation of

IPluginHooks.onStreamingChunk

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:576


onError

onError(error, context?): Promise<void>

Called on error

Parameters

NameType
errorError
context?IPluginErrorContext

Returns

Promise<void>

Implementation of

IPluginHooks.onError

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:577


onMessageAdded

onMessageAdded(message): Promise<void>

Called on message added to history

Parameters

NameType
messageTUniversalMessage

Returns

Promise<void>

Implementation of

IPluginHooks.onMessageAdded

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:578


onModuleEvent

onModuleEvent(eventType, eventData): Promise<void>

Called when module events are received

Parameters

NameType
eventTypeEventType
eventDataEventData

Returns

Promise<void>

Implementation of

IPluginHooks.onModuleEvent

Defined in

packages/agents/src/abstracts/abstract-plugin.ts:579

Released under the MIT License.