Spaces:
Running
Running
| /** | |
| * Plugin Manager | |
| * Verwaltet das automatische Laden und Initialisieren von Plugins | |
| */ | |
| const plugins = new Map() | |
| export function registerPlugin(name, plugin) { | |
| plugins.set(name, plugin) | |
| console.log(`✓ Plugin registered: ${name}`) | |
| } | |
| export function getPlugin(name) { | |
| return plugins.get(name) | |
| } | |
| export function getAllPlugins() { | |
| return Array.from(plugins.values()) | |
| } | |
| export async function initializePlugins() { | |
| console.log('🔌 Initializing plugin system...') | |
| // Globale Plugin API bereitstellen | |
| window.PluginAPI = { | |
| register: registerPlugin, | |
| get: getPlugin, | |
| getAll: getAllPlugins, | |
| // Event Emitter für Plugins | |
| on: (event, callback) => { | |
| window.addEventListener(event, callback) | |
| }, | |
| off: (event, callback) => { | |
| window.removeEventListener(event, callback) | |
| }, | |
| emit: (event, data) => { | |
| window.dispatchEvent(new CustomEvent(event, { detail: data })) | |
| }, | |
| } | |
| console.log('✓ Plugin API ready') | |
| } | |
| // Plugin Hook System | |
| export const PluginHooks = { | |
| PLUGIN_INIT: 'onPluginInit', | |
| MESSAGE_SENT: 'onMessageSent', | |
| RESPONSE_RECEIVED: 'onResponseReceived', | |
| ERROR: 'onError', | |
| } | |