export type RecoveryActionKind = 'recover'; export type RecoveryActionResult = /** failed → pending via RecoverySweepService.recoverFailedTask */ 'recovered' /** needs_human_review → pending via owner authority reset */ | 'requeued'; export interface RecoveryActionRecord { /** Random id for this audit line */ actionId: string; taskId: string; action: RecoveryActionKind; /** Status before the recovery mutation (e.g. 'failed', 'needs_human_review') */ previousStatus: string; /** Who triggered the action (e.g. 'console'); null when unknown */ operator: string | null; /** Optional owner-supplied reason (bounded free text) */ reason: string | null; /** * True when the recovery bypassed an exhausted attempt budget * (recoverFailedTask force path). Absent on records written before this * field existed and on non-forced recoveries. */ forceApplied?: boolean; createdAt: string; result: RecoveryActionResult; } export interface AppendRecoveryActionInput { taskId: string; previousStatus: string; result: RecoveryActionResult; operator?: string; reason?: string | null; forceApplied?: boolean; } /** * Append a recovery action record to the audit log. * * Best-effort by design: an audit-write failure must not turn an already * committed task recovery into a reported failure, but it is never silent — * the error propagates to the caller, which logs it (rc-9). */ export declare function appendRecoveryAction(workspaceDir: string, input: AppendRecoveryActionInput): RecoveryActionRecord; /** * List recovery action records from the audit log. * * @param workspaceDir - The workspace root directory * @param filter - Optional filter by taskId * @returns Array of recovery action records (oldest first) */ export declare function listRecoveryActions(workspaceDir: string, filter?: { taskId?: string; }): RecoveryActionRecord[]; //# sourceMappingURL=recovery-actions-log.d.ts.map