UNPKG

@just-every/ensemble

Version:

LLM provider abstraction layer with unified streaming interface

53 lines 1.5 kB
import { exportAgent } from './agent.js'; class EventControllerImpl { eventHandler = null; setEventHandler(handler) { this.eventHandler = handler; if (handler) { console.log('[EventController] Event handler set'); } else { console.log('[EventController] Event handler cleared'); } } getEventHandler() { return this.eventHandler; } hasEventHandler() { return this.eventHandler !== null; } async emit(event) { if (this.eventHandler) { try { await Promise.resolve(this.eventHandler(event)); } catch (error) { console.error('[EventController] Error in event handler:', error); } } } } let eventControllerInstance = null; export function getEventController() { if (!eventControllerInstance) { eventControllerInstance = new EventControllerImpl(); } return eventControllerInstance; } export function setEventHandler(handler) { getEventController().setEventHandler(handler); } export async function emitEvent(event, agent, model) { let eventToEmit = event; if (agent) { eventToEmit = { ...event, agent: exportAgent(agent, model), }; } return getEventController().emit(eventToEmit); } export function hasEventHandler() { return getEventController().hasEventHandler(); } //# sourceMappingURL=event_controller.js.map