/** * State Tracker * * Responsável por persistir e gerenciar o estado do pipeline * em arquivo YAML (.ralph/state.yaml). */ import { PipelineState, PipelineStatus, PipelineEvent, TaskResult } from '../../shared/types/index.js'; /** * Opções do State Tracker */ export interface StateTrackerOptions { workingDirectory: string; stateDir?: string; stateFile?: string; } /** * State Tracker */ export declare class StateTracker { private workingDirectory; private stateDir; private stateFile; private statePath; private currentState; constructor(options: StateTrackerOptions); /** * Inicializa um novo estado de pipeline */ initialize(pipelineId: string, featureId: string, taskIds: string[]): PipelineState; /** * Salva o estado atual no arquivo */ save(state?: PipelineState): void; /** * Carrega o estado do arquivo */ load(pipelineId?: string): PipelineState | null; /** * Obtém o estado atual */ getState(): PipelineState | null; /** * Verifica se existe um estado salvo */ exists(): boolean; /** * Remove o arquivo de estado */ clear(): void; /** * Atualiza o status do pipeline */ updateStatus(status: PipelineStatus): void; /** * Define a task atual */ setCurrentTask(taskId: string): void; /** * Marca uma task como completada */ completeTask(result: TaskResult): void; /** * Marca uma task como falha */ failTask(taskId: string, errorMessage: string): void; /** * Pula uma task */ skipTask(taskId: string, reason: string): void; /** * Registra um commit */ recordCommit(taskId: string, sha: string, message: string): void; /** * Adiciona um evento ao histórico */ addEvent(type: PipelineEvent['type'], taskId?: string, details?: Record): void; /** * Obtém lista de tasks completadas */ getCompletedTasks(): TaskResult[]; /** * Obtém lista de IDs de tasks pendentes */ getPendingTasks(): string[]; /** * Obtém lista de IDs de tasks que falharam */ getFailedTasks(): string[]; /** * Obtém a task atual */ getCurrentTask(): string | undefined; /** * Verifica se o pipeline está completo */ isComplete(): boolean; /** * Verifica se o pipeline falhou */ hasFailed(): boolean; /** * Obtém progresso do pipeline */ getProgress(): { completed: number; pending: number; failed: number; total: number; percentage: number; }; /** * Atualiza métricas de execução */ private updateMetrics; /** * Obtém o caminho do arquivo de estado */ getStatePath(): string; /** * Exporta o estado como YAML */ exportYaml(): string; /** * Importa estado de YAML */ importYaml(yaml: string): PipelineState; } /** * Cria uma instância do StateTracker */ export declare function createStateTracker(workingDirectory: string): StateTracker; //# sourceMappingURL=state-tracker.d.ts.map