Files
connectai/src/core/events.ts
T

36 lines
993 B
TypeScript

import { EventEmitter } from 'events';
/**
* AgentEvents: 시스템 전체의 이벤트를 관리하는 관찰자(Observer) 허브.
* 모듈 간 결합도를 낮추기 위해 직접 호출 대신 이벤트를 발행-구독합니다.
*/
export class AgentEvents extends EventEmitter {
private static instance: AgentEvents;
private constructor() {
super();
this.setMaxListeners(20);
}
public static getInstance(): AgentEvents {
if (!AgentEvents.instance) {
AgentEvents.instance = new AgentEvents();
}
return AgentEvents.instance;
}
}
/**
* 표준 이벤트 타입 정의
*/
export enum AgentEventTypes {
DATA_READY = 'data:ready',
TASK_STARTED = 'task:started',
TASK_COMPLETED = 'task:completed',
ERROR_OCCURRED = 'error:occurred',
TRANSACTION_COMMITTED = 'transaction:committed',
TRANSACTION_ROLLED_BACK = 'transaction:rolled_back'
}
export const agentEvents = AgentEvents.getInstance();