From f54ec5e07efd4f9a52e02a506b6358f5b423e521 Mon Sep 17 00:00:00 2001 From: Lukas May Date: Fri, 30 Jan 2026 20:33:36 +0100 Subject: [PATCH] feat(05-03): add dispatch domain events - TaskQueuedEvent for task queue operations - TaskDispatchedEvent when task assigned to agent - TaskCompletedEvent for task completion with success/failure - TaskBlockedEvent for blocked tasks with reason --- src/events/index.ts | 4 ++++ src/events/types.ts | 47 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 50 insertions(+), 1 deletion(-) 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