/** * omx doctor - Validate oh-my-codex installation */ import { spawnSync } from "child_process"; interface DoctorOptions { verbose?: boolean; force?: boolean; dryRun?: boolean; team?: boolean; } interface Check { name: string; status: "pass" | "warn" | "fail"; message: string; } interface RepoArtifactStats { uid?: number; gid?: number; isSymbolicLink(): boolean; isDirectory(): boolean; } interface RepoArtifactScanOptions { currentUid?: number; currentGid?: number; maxExamples?: number; statPath?: (path: string) => Promise; readDir?: (path: string) => Promise; accessPath?: (path: string, mode: number) => Promise; } interface RepoArtifactRepairOptions extends RepoArtifactScanOptions { chownPath?: (path: string, uid: number, gid: number) => Promise; } interface NativeHookDistSmokeOptions { packageRoot?: string; nodePath?: string; runner?: typeof spawnSync; } interface DoctorPaths { codexHomeDir: string; configPath: string; hooksPath: string; promptsDir: string; skillsDir: string; agentsDir: string; stateDir: string; } export declare function doctor(options?: DoctorOptions): Promise; export declare function checkExploreHarness(platform?: NodeJS.Platform, env?: NodeJS.ProcessEnv, options?: { exploreRoutingEnabled?: boolean; }): Check; export declare function checkRepoArtifactOwnership(repoRoot: string, options?: RepoArtifactScanOptions): Promise; export declare function repairRepoArtifactOwnership(repoRoot: string, options?: RepoArtifactRepairOptions): Promise<{ repaired: number; skipped: string[]; }>; interface ExternalCodexProcessGuardOptions { platform?: NodeJS.Platform; homeDir?: string; } export declare function checkExternalCodexProcessGuards(options?: ExternalCodexProcessGuardOptions): Promise; export declare function checkNativeHookDistSmoke(options?: NativeHookDistSmokeOptions): Promise; export declare function classifyPostCompactHookStdout(stdout: string): Check | null; interface PostCompactSmokeSpawnInvocation { command: string; args: string[]; shell: boolean; } export declare function buildPostCompactSmokeSpawnInvocation(expectedCommand: string, options?: { platform?: NodeJS.Platform; env?: NodeJS.ProcessEnv; }): PostCompactSmokeSpawnInvocation; /** * Surface effective Spark/model lane routing and flag the common reasons the * `gpt-5.3-codex-spark` quota stays unused even though resolution is wired * (issue #2757): a missing/stale installed Spark-lane agent toml, a model that * diverges from the resolved Spark default, or a non-default provider that does * not draw from native Spark quota. */ export declare function checkSparkRouting(paths: DoctorPaths): Check; export {}; //# sourceMappingURL=doctor.d.ts.map