/** * Session State Module * * Contains SessionState interface, Todo interface, createSession, and updateProgress. * Extracted from shared.ts to reduce file size. */ export interface Todo { id: string; content?: string; title?: string; status: string; } export interface SessionState { timer: ReturnType | null; lastProgressAt: number; actionStartedAt: number; lastOutputAt: number; lastOutputLength: number; attempts: number; lastRecoveryTime: number; backoffAttempts: number; autoSubmitCount: number; aborting: boolean; recoveryStartTime: number; stallDetections: number; recoverySuccessful: number; recoveryFailed: number; lastRecoverySuccess: number; totalRecoveryTimeMs: number; recoveryTimes: number[]; lastStallPartType: string; stallPatterns: Record; continueTimestamps: number[]; userCancelled: boolean; planning: boolean; planBuffer: string; compacting: boolean; sessionCreatedAt: number; messageCount: number; lastKnownStatus: string; estimatedTokens: number; realTokens: number; lastCompactionAt: number; tokenLimitHits: number; hardCompactionInProgress: boolean; lastHardCompactionAt: number; compactionSafetyTimer: ReturnType | null; proactiveCompactCount: number; hardCompactCount: number; nudgeTimer: ReturnType | null; lastNudgeAt: number; nudgeCount: number; nudgeFailureCount: number; lastNudgeFailureAt: number; lastTodoSnapshot: string; nudgePaused: boolean; hasOpenTodos: boolean; lastKnownTodos: Array<{ id: string; status: string; content?: string; title?: string; }>; needsContinue: boolean; continueMessageText: string; continueRetryCount: number; lastContinueRetryAt: number; continueInProgress: boolean; lastContinueAt: number; timerGeneration: number; planningStartedAt: number; reviewFired: boolean; reviewDebounceTimer: ReturnType | null; lastUserMessageId: string; sentMessageAt: number; lastAdvisoryAdvice: { action: string; confidence: number; reasoning: string; stallPattern?: string; customPrompt?: string; contextSummary?: string; } | null; lastPlanItemDescription: string; lastFileEdited: string; lastToolCall: string; lastToolSummary: string; statusHistory: Array<{ timestamp: string; status: string; actionDuration: string; progressAgo: string; }>; stoppedByCondition: string | null; } export declare function createSession(): SessionState; export declare function updateProgress(s: SessionState): void; export declare function getTokenCount(s: SessionState): number; //# sourceMappingURL=session-state.d.ts.map