@vooodooo/magic
Version:
Vooodooo - AI orchestration platform
111 lines (110 loc) • 3.01 kB
TypeScript
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;