import { type ActiveAgentSessionIdentity, type CodexOpenRootRolloutInventory } from "./agent-session-provider.js"; import { type CodexProcessSnapshot, type CodexThreadRow } from "./codex-session-provider.js"; import type { CodexLocalSessionAdapter } from "./codex-local-session-provider.js"; import type { TerminalThreadLifecycleCandidate, TerminalThreadLifecycleCandidateProvider, TerminalThreadLifecycleCandidateRequest, TerminalThreadLifecycleCandidateToken, TerminalThreadLifecycleCandidateValidation } from "./terminal-agent-adapter.js"; import { type ProcessCommandResult } from "./terminal-process-source.js"; export { parseLsofCwdMap, parsePsProcessSnapshots, type ProcessCommandResult as CommandResult } from "./terminal-process-source.js"; export interface CodexStoreAdapterOptions { codexHome?: string; runCommand?: (command: string, args: string[]) => ProcessCommandResult; runSqliteThreadQuery?: CodexSqliteThreadQueryRunner; sqliteCantOpenRetryDelaysMs?: readonly number[]; sleep?: (milliseconds: number) => Promise; maxSessions?: number; } export type CodexSqliteOpenMode = "readonly" | "query_only"; export interface CodexSqliteThreadQueryRequest { dbPath: string; openMode: CodexSqliteOpenMode; maxSessions: number; nativeThreadId?: string; filters?: CodexThreadQueryFilters; afterSchema?: (columns: readonly string[]) => void | Promise; } export interface CodexThreadQueryFilters { cwd?: string; source?: string; archived?: boolean; modelProvider?: string; } export interface CodexSqliteThreadQueryResult { columns: string[]; rows: CodexThreadRow[]; } export type CodexSqliteThreadQueryRunner = (request: CodexSqliteThreadQueryRequest) => Promise; export declare class CodexStoreAdapter implements CodexLocalSessionAdapter, TerminalThreadLifecycleCandidateProvider { private readonly codexHome; private readonly runCommand; private readonly runSqliteThreadQuery; private readonly sqliteCantOpenRetryDelaysMs; private readonly sleep; private readonly maxSessions; constructor(options?: CodexStoreAdapterOptions); listThreadRows(): Promise; listThreadLifecycleCandidates(request: TerminalThreadLifecycleCandidateRequest): Promise; revalidateThreadLifecycleCandidate(candidate: TerminalThreadLifecycleCandidate | TerminalThreadLifecycleCandidateToken, request: TerminalThreadLifecycleCandidateRequest): Promise; private getThreadRow; readRollout(rolloutPath: string): Promise; listProcessSnapshots(): Promise; resolveActiveSessionIdentityForPid(pid: number, cwd?: string, preferredSessionId?: string, allowedCompanionIdentity?: ActiveAgentSessionIdentity, allowedAdditionalIdentities?: readonly ActiveAgentSessionIdentity[]): Promise; /** * Return a complete, exact inventory of every open Codex TUI root rollout. * * A successful `unbound` result is deliberately different from an * inspection failure: all descriptors and root metadata were verified, but * more than one root is open so this layer cannot name the foreground one. * Command, descriptor, ownership, cwd, or metadata failures throw and must * remain fail-closed at the caller. */ inspectOpenRootRolloutInventoryForPid(pid: number, cwd?: string): Promise; private queryThreadRows; } export declare function runCodexSqliteThreadQuery(request: CodexSqliteThreadQueryRequest): Promise; export declare function latestStateDbPath(codexHome: string): string | undefined; export interface LsofOpenFileRecord { fd?: string; type?: string; device?: string; inode?: string; path?: string; } export declare function parseLsofOpenFiles(text: string): LsofOpenFileRecord[]; export declare function resolveCodexOpenRolloutIdentity({ codexHome, pid, cwd, preferredSessionId, allowedCompanionIdentity, allowedAdditionalIdentities, processBirth, lsofOutput }: { codexHome: string; pid: number; cwd?: string; preferredSessionId?: string; allowedCompanionIdentity?: ActiveAgentSessionIdentity; allowedAdditionalIdentities?: readonly ActiveAgentSessionIdentity[]; processBirth: string; lsofOutput: string; }): ActiveAgentSessionIdentity | undefined; export declare function inspectCodexOpenRootRolloutInventory({ codexHome, pid, cwd, processBirth, lsofOutput }: { codexHome: string; pid: number; cwd?: string; processBirth: string; lsofOutput: string; }): CodexOpenRootRolloutInventory; export declare function buildThreadSelect(columns: string[], limit: number, filters?: CodexThreadQueryFilters): string; export declare function buildThreadByIdSelect(columns: string[], nativeThreadId: string): string;