Something went wrong. Try again.
fork of prime agent with changes i want but are not upstreamable probqbly (and some fixes)
Something went wrong. Try again.
795 B · 33 lines
TypeScript
at main
12345678910111213141516171819202122232425262728293031323334import { EventEmitter } from "node:events";
export interface EventBus { emit(channel: string, data: unknown): void; on(channel: string, handler: (data: unknown) => void): () => void;}
export interface EventBusController extends EventBus { clear(): void;}
export function createEventBus(): EventBusController { const emitter = new EventEmitter(); return { emit: (channel, data) => { emitter.emit(channel, data); }, on: (channel, handler) => { const safeHandler = async (data: unknown) => { try { await handler(data); } catch (err) { console.error(`Event handler error (${channel}):`, err); } }; emitter.on(channel, safeHandler); return () => emitter.off(channel, safeHandler); }, clear: () => { emitter.removeAllListeners(); }, };}