@just-every/ensemble
Version:
LLM provider abstraction layer with unified streaming interface
59 lines • 1.73 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEventController = getEventController;
exports.setEventHandler = setEventHandler;
exports.emitEvent = emitEvent;
exports.hasEventHandler = hasEventHandler;
const agent_js_1 = require("./agent.cjs");
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;
function getEventController() {
if (!eventControllerInstance) {
eventControllerInstance = new EventControllerImpl();
}
return eventControllerInstance;
}
function setEventHandler(handler) {
getEventController().setEventHandler(handler);
}
async function emitEvent(event, agent, model) {
let eventToEmit = event;
if (agent) {
eventToEmit = {
...event,
agent: (0, agent_js_1.exportAgent)(agent, model),
};
}
return getEventController().emit(eventToEmit);
}
function hasEventHandler() {
return getEventController().hasEventHandler();
}
//# sourceMappingURL=event_controller.js.map
;