UNPKG

@vooodooo/magic

Version:

Vooodooo - AI orchestration platform

111 lines (110 loc) 3.01 kB
import { Extension, Plugin, PluginCommand, PluginState } from '../index.js'; /** * Options for plugin manager */ export interface PluginManagerOptions { /** Whether to automatically enable plugins after registration */ autoEnable?: boolean; /** Configuration for all plugins */ config?: Record<string, Record<string, unknown>>; /** Current platform version */ platformVersion?: string; } /** * Manager for Vooodooo plugins */ export declare class PluginManager { /** Map of plugin ID to plugin instance */ private plugins; /** Extension registry */ private extensionRegistry; /** Knowledge system for plugins */ private knowledgeSystem; /** Plugin configuration storage */ private config; /** Registered CLI commands */ private commands; /** Options for the plugin manager */ private options; constructor(options?: PluginManagerOptions); /** * Register a plugin with the system */ registerPlugin(plugin: Plugin): Promise<void>; /** * Enable a plugin */ enablePlugin(pluginId: string): Promise<void>; /** * Disable a plugin */ disablePlugin(pluginId: string): Promise<void>; /** * Unregister a plugin from the system */ unregisterPlugin(pluginId: string): Promise<void>; /** * Get all registered plugins */ getPlugins(): Plugin[]; /** * Get plugin state */ getPluginState(pluginId: string): PluginState; /** * Get all plugins in a specific state */ getPluginsByState(state: PluginState): Plugin[]; /** * Get plugin by ID */ getPlugin(pluginId: string): Plugin | undefined; /** * Execute a function on all extensions for a specific extension point */ executeExtensions<T, R>(extensionPointId: string, fn: (extension: Extension<T>) => Promise<R>): Promise<R[]>; /** * Get all registered commands */ getCommands(): PluginCommand[]; /** * Get a specific command by name */ getCommand(name: string): PluginCommand | undefined; /** * Execute a command */ executeCommand(name: string, args: any, options: any): Promise<void>; /** * Extract dependencies from a plugin */ private extractDependencies; /** * Create a log function for a plugin */ private createLogFunction; /** * Create a register extension function for a plugin */ private createRegisterExtensionFunction; /** * Create knowledge system API for a plugin */ private createKnowledgeSystemAPI; /** * Register a CLI command provided by a plugin */ private registerPluginCommand; /** * Get plugin configuration */ private getPluginConfig; /** * Set plugin configuration */ private setPluginConfig; } /** * Create a plugin manager instance */ export declare function createPluginManager(options?: PluginManagerOptions): PluginManager;