export type EffectStatus = 'pending' | 'executed' | 'confirmed' | 'failed' | 'ambiguous'; export interface EffectRecord { v: 1; id: string; idempotencyKey: string; operationType: string; args: unknown; status: EffectStatus; sessionId?: string; taskId?: string; timestamp: number; result?: unknown; reconciledAt?: number; } export interface EffectQuery { sessionId?: string; operationType?: string; status?: EffectStatus; idempotencyKey?: string; } export interface PendingEffectInput { idempotencyKey: string; operationType: string; args: unknown; sessionId?: string; taskId?: string; } export interface ExecuteEffectInput { id: string; status: Exclude; result?: unknown; }