- AgentSpawnedEvent for new agent creation - AgentStoppedEvent with reason (user_requested, task_complete, error, waiting_for_input) - AgentCrashedEvent for unexpected failures - AgentResumedEvent for session resumption - AgentWaitingEvent when agent pauses on AskUserQuestion - Updated DomainEventMap union with all agent events
48 lines
1.1 KiB
TypeScript
48 lines
1.1 KiB
TypeScript
/**
|
|
* Events Module - Public API
|
|
*
|
|
* Exports the EventBus port interface and EventEmitter adapter.
|
|
* All modules should import from this index file.
|
|
*/
|
|
|
|
// Port interface (what consumers depend on)
|
|
export type { EventBus, DomainEvent } from './types.js';
|
|
|
|
// Domain event types
|
|
export type {
|
|
ProcessSpawnedEvent,
|
|
ProcessStoppedEvent,
|
|
ProcessCrashedEvent,
|
|
ServerStartedEvent,
|
|
ServerStoppedEvent,
|
|
LogEntryEvent,
|
|
WorktreeCreatedEvent,
|
|
WorktreeRemovedEvent,
|
|
WorktreeMergedEvent,
|
|
WorktreeConflictEvent,
|
|
AgentSpawnedEvent,
|
|
AgentStoppedEvent,
|
|
AgentCrashedEvent,
|
|
AgentResumedEvent,
|
|
AgentWaitingEvent,
|
|
DomainEventMap,
|
|
DomainEventType,
|
|
} from './types.js';
|
|
|
|
// Adapter implementation
|
|
export { EventEmitterBus } from './bus.js';
|
|
|
|
// Factory function for creating event bus instances
|
|
import { EventEmitterBus } from './bus.js';
|
|
import type { EventBus } from './types.js';
|
|
|
|
/**
|
|
* Create a new EventBus instance.
|
|
*
|
|
* Returns the default in-process EventEmitter adapter.
|
|
* This factory allows swapping implementations without changing call sites.
|
|
*/
|
|
export function createEventBus(): EventBus {
|
|
return new EventEmitterBus();
|
|
}
|