diff --git a/src/events/index.ts b/src/events/index.ts index 4424fd9..0499377 100644 --- a/src/events/index.ts +++ b/src/events/index.ts @@ -16,6 +16,10 @@ export type { ServerStartedEvent, ServerStoppedEvent, LogEntryEvent, + WorktreeCreatedEvent, + WorktreeRemovedEvent, + WorktreeMergedEvent, + WorktreeConflictEvent, DomainEventMap, DomainEventType, } from './types.js'; diff --git a/src/events/types.ts b/src/events/types.ts index 86381a1..f5a70c5 100644 --- a/src/events/types.ts +++ b/src/events/types.ts @@ -92,6 +92,46 @@ export interface LogEntryEvent extends DomainEvent { }; } +/** + * Git Worktree Events + */ + +export interface WorktreeCreatedEvent extends DomainEvent { + type: 'worktree:created'; + payload: { + worktreeId: string; + branch: string; + path: string; + }; +} + +export interface WorktreeRemovedEvent extends DomainEvent { + type: 'worktree:removed'; + payload: { + worktreeId: string; + branch: string; + }; +} + +export interface WorktreeMergedEvent extends DomainEvent { + type: 'worktree:merged'; + payload: { + worktreeId: string; + sourceBranch: string; + targetBranch: string; + }; +} + +export interface WorktreeConflictEvent extends DomainEvent { + type: 'worktree:conflict'; + payload: { + worktreeId: string; + sourceBranch: string; + targetBranch: string; + conflictingFiles: string[]; + }; +} + /** * Union of all domain events - enables type-safe event handling */ @@ -101,7 +141,11 @@ export type DomainEventMap = | ProcessCrashedEvent | ServerStartedEvent | ServerStoppedEvent - | LogEntryEvent; + | LogEntryEvent + | WorktreeCreatedEvent + | WorktreeRemovedEvent + | WorktreeMergedEvent + | WorktreeConflictEvent; /** * Event type literal union for type checking