diff --git a/src/events/index.ts b/src/events/index.ts index 8904ed8..3f283b6 100644 --- a/src/events/index.ts +++ b/src/events/index.ts @@ -25,6 +25,10 @@ export type { AgentCrashedEvent, AgentResumedEvent, AgentWaitingEvent, + TaskQueuedEvent, + TaskDispatchedEvent, + TaskCompletedEvent, + TaskBlockedEvent, DomainEventMap, DomainEventType, } from './types.js'; diff --git a/src/events/types.ts b/src/events/types.ts index d245b17..e8a1bd9 100644 --- a/src/events/types.ts +++ b/src/events/types.ts @@ -187,6 +187,47 @@ export interface AgentWaitingEvent extends DomainEvent { }; } +/** + * Task Dispatch Events + */ + +export interface TaskQueuedEvent extends DomainEvent { + type: 'task:queued'; + payload: { + taskId: string; + priority: string; + dependsOn: string[]; + }; +} + +export interface TaskDispatchedEvent extends DomainEvent { + type: 'task:dispatched'; + payload: { + taskId: string; + agentId: string; + agentName: string; + }; +} + +export interface TaskCompletedEvent extends DomainEvent { + type: 'task:completed'; + payload: { + taskId: string; + agentId: string; + success: boolean; + message: string; + }; +} + +export interface TaskBlockedEvent extends DomainEvent { + type: 'task:blocked'; + payload: { + taskId: string; + reason: string; + blockedBy?: string[]; + }; +} + /** * Union of all domain events - enables type-safe event handling */ @@ -205,7 +246,11 @@ export type DomainEventMap = | AgentStoppedEvent | AgentCrashedEvent | AgentResumedEvent - | AgentWaitingEvent; + | AgentWaitingEvent + | TaskQueuedEvent + | TaskDispatchedEvent + | TaskCompletedEvent + | TaskBlockedEvent; /** * Event type literal union for type checking