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
This commit is contained in:
Lukas May
2026-01-30 20:33:36 +01:00
parent 9f24c1ffc0
commit f54ec5e07e
2 changed files with 50 additions and 1 deletions

View File

@@ -25,6 +25,10 @@ export type {
AgentCrashedEvent,
AgentResumedEvent,
AgentWaitingEvent,
TaskQueuedEvent,
TaskDispatchedEvent,
TaskCompletedEvent,
TaskBlockedEvent,
DomainEventMap,
DomainEventType,
} from './types.js';

View File

@@ -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