import type { resolveCodexAppServerAuthProfileIdForAgent } from "./auth-bridge.js"; import type { CodexAppServerStartOptions } from "./config.js"; import type { CodexAppServerRequestMethod, CodexAppServerRequestParams, CodexAppServerRequestResult, JsonValue, } from "./protocol.js"; import { getSharedCodexAppServerClient } from "./shared-client.js"; import { withTimeout } from "./timeout.js"; export async function requestCodexAppServerJson(params: { method: M; requestParams: CodexAppServerRequestParams; timeoutMs?: number; startOptions?: CodexAppServerStartOptions; authProfileId?: string; config?: Parameters[0]["config"]; }): Promise>; export async function requestCodexAppServerJson(params: { method: string; requestParams?: unknown; timeoutMs?: number; startOptions?: CodexAppServerStartOptions; authProfileId?: string; config?: Parameters[0]["config"]; }): Promise; export async function requestCodexAppServerJson(params: { method: string; requestParams?: unknown; timeoutMs?: number; startOptions?: CodexAppServerStartOptions; authProfileId?: string; config?: Parameters[0]["config"]; }): Promise { const timeoutMs = params.timeoutMs ?? 60_000; return await withTimeout( (async () => { const client = await getSharedCodexAppServerClient({ startOptions: params.startOptions, timeoutMs, authProfileId: params.authProfileId, config: params.config, }); return await client.request(params.method, params.requestParams, { timeoutMs }); })(), timeoutMs, `codex app-server ${params.method} timed out`, ); }