UNPKG

@defikitdotnet/x-ai-combat

Version:

XCombatAI - Social Media Engagement Template for the Agent Framework

61 lines 1.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pluginManager = exports.PluginManager = void 0; const logger_1 = require("../utils/logger"); /** * Plugin Manager * * Registers and manages plugins for the application */ class PluginManager { constructor() { this.plugins = new Map(); } /** * Register a plugin */ registerPlugin(plugin) { if (this.plugins.has(plugin.name)) { (0, logger_1.warn)(`Plugin ${plugin.name} is already registered. Skipping.`); return; } this.plugins.set(plugin.name, plugin); (0, logger_1.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() { (0, logger_1.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; } (0, logger_1.log)(`Plugin ${plugin.name} initialized`); } catch (err) { (0, logger_1.error)(`Error initializing plugin ${plugin.name}:`, err); } } (0, logger_1.log)("All plugins initialized"); } /** * Get all registered plugins */ getAllPlugins() { return Array.from(this.plugins.values()); } } exports.PluginManager = PluginManager; // Create singleton instance exports.pluginManager = new PluginManager(); //# sourceMappingURL=plugin-manager.js.map