UNPKG

@defikitdotnet/x-ai-combat

Version:

XCombatAI - Social Media Engagement Template for the Agent Framework

57 lines 1.59 kB
import { log, warn, error } from '../utils/logger'; /** * Plugin Manager * * Registers and manages plugins for the application */ export class PluginManager { constructor() { this.plugins = new Map(); } /** * Register a plugin */ registerPlugin(plugin) { if (this.plugins.has(plugin.name)) { warn(`Plugin ${plugin.name} is already registered. Skipping.`); return; } this.plugins.set(plugin.name, plugin); log(`Plugin ${plugin.name} v${plugin.version} registered`); } /** * Get a plugin by name */ getPlugin(name) { return this.plugins.get(name) || null; } /** * Initialize all registered plugins */ async initializeAll() { log("Initializing all plugins..."); for (const plugin of this.plugins.values()) { try { const result = plugin.initialize(); // If initialize returns a promise, await it if (result instanceof Promise) { await result; } log(`Plugin ${plugin.name} initialized`); } catch (err) { error(`Error initializing plugin ${plugin.name}:`, err); } } log("All plugins initialized"); } /** * Get all registered plugins */ getAllPlugins() { return Array.from(this.plugins.values()); } } // Create singleton instance export const pluginManager = new PluginManager(); //# sourceMappingURL=plugin-manager.js.map