





















@@ -96,22 +96,55 @@ function readLegacySharedCodexAppServerClientState(
9696return value as LegacySharedCodexAppServerClientState;
9797}
989899-type SharedCodexAppServerClientOptions = {
99+type CodexAppServerClientOptions = {
100100startOptions?: CodexAppServerStartOptions;
101101timeoutMs?: number;
102102authProfileId?: string | null;
103103agentDir?: string;
104104config?: Parameters<typeof resolveCodexAppServerAuthProfileIdForAgent>[0]["config"];
105105};
106106107+type ResolvedCodexAppServerClientStartContext = {
108+agentDir: string;
109+usesNativeAuth: boolean;
110+authProfileId: string | undefined;
111+startOptions: CodexAppServerStartOptions;
112+};
113+114+async function resolveCodexAppServerClientStartContext(
115+options?: CodexAppServerClientOptions,
116+): Promise<ResolvedCodexAppServerClientStartContext> {
117+const agentDir = options?.agentDir ?? resolveDefaultAgentDir(options?.config ?? {});
118+const usesNativeAuth = options?.authProfileId === null;
119+const requestedAuthProfileId =
120+options?.authProfileId === null ? undefined : options?.authProfileId;
121+const authProfileId = usesNativeAuth
122+ ? undefined
123+ : resolveCodexAppServerAuthProfileIdForAgent({
124+authProfileId: requestedAuthProfileId,
125+ agentDir,
126+config: options?.config,
127+});
128+const requestedStartOptions =
129+options?.startOptions ?? resolveCodexAppServerRuntimeOptions().start;
130+const managedStartOptions = await resolveManagedCodexAppServerStartOptions(requestedStartOptions);
131+const startOptions = await bridgeCodexAppServerStartOptions({
132+startOptions: managedStartOptions,
133+ agentDir,
134+authProfileId: usesNativeAuth ? null : authProfileId,
135+config: options?.config,
136+});
137+return { agentDir, usesNativeAuth, authProfileId, startOptions };
138+}
139+107140export async function getSharedCodexAppServerClient(
108-options?: SharedCodexAppServerClientOptions,
141+options?: CodexAppServerClientOptions,
109142): Promise<CodexAppServerClient> {
110143return (await acquireSharedCodexAppServerClient(options)).client;
111144}
112145113146export async function getLeasedSharedCodexAppServerClient(
114-options?: SharedCodexAppServerClientOptions,
147+options?: CodexAppServerClientOptions,
115148): Promise<CodexAppServerClient> {
116149const acquired = await acquireSharedCodexAppServerClient(options, { leased: true });
117150const state = getSharedCodexAppServerClientState();
@@ -139,36 +172,18 @@ export function releaseLeasedSharedCodexAppServerClient(client: CodexAppServerCl
139172}
140173141174async function acquireSharedCodexAppServerClient(
142-options?: SharedCodexAppServerClientOptions,
175+options?: CodexAppServerClientOptions,
143176): Promise<{ client: CodexAppServerClient }>;
144177async function acquireSharedCodexAppServerClient(
145-options: SharedCodexAppServerClientOptions | undefined,
178+options: CodexAppServerClientOptions | undefined,
146179leaseOptions: { leased: true },
147180): Promise<{ client: CodexAppServerClient; release: () => void }>;
148181async function acquireSharedCodexAppServerClient(
149-options?: SharedCodexAppServerClientOptions,
182+options?: CodexAppServerClientOptions,
150183leaseOptions?: { leased: true },
151184): Promise<{ client: CodexAppServerClient; release?: () => void }> {
152-const agentDir = options?.agentDir ?? resolveDefaultAgentDir(options?.config ?? {});
153-const usesNativeAuth = options?.authProfileId === null;
154-const requestedAuthProfileId =
155-options?.authProfileId === null ? undefined : options?.authProfileId;
156-const authProfileId = usesNativeAuth
157- ? undefined
158- : resolveCodexAppServerAuthProfileIdForAgent({
159-authProfileId: requestedAuthProfileId,
160- agentDir,
161-config: options?.config,
162-});
163-const requestedStartOptions =
164-options?.startOptions ?? resolveCodexAppServerRuntimeOptions().start;
165-const managedStartOptions = await resolveManagedCodexAppServerStartOptions(requestedStartOptions);
166-const startOptions = await bridgeCodexAppServerStartOptions({
167-startOptions: managedStartOptions,
168- agentDir,
169-authProfileId: usesNativeAuth ? null : authProfileId,
170-config: options?.config,
171-});
185+const { agentDir, usesNativeAuth, authProfileId, startOptions } =
186+await resolveCodexAppServerClientStartContext(options);
172187const fallbackApiKeyCacheKey = authProfileId
173188 ? undefined
174189 : resolveCodexAppServerFallbackApiKeyCacheKey({ startOptions });
@@ -219,33 +234,11 @@ async function acquireSharedCodexAppServerClient(
219234}
220235}
221236222-export async function createIsolatedCodexAppServerClient(options?: {
223-startOptions?: CodexAppServerStartOptions;
224-timeoutMs?: number;
225-authProfileId?: string | null;
226-agentDir?: string;
227-config?: Parameters<typeof resolveCodexAppServerAuthProfileIdForAgent>[0]["config"];
228-}): Promise<CodexAppServerClient> {
229-const agentDir = options?.agentDir ?? resolveDefaultAgentDir(options?.config ?? {});
230-const usesNativeAuth = options?.authProfileId === null;
231-const requestedAuthProfileId =
232-options?.authProfileId === null ? undefined : options?.authProfileId;
233-const authProfileId = usesNativeAuth
234- ? undefined
235- : resolveCodexAppServerAuthProfileIdForAgent({
236-authProfileId: requestedAuthProfileId,
237- agentDir,
238-config: options?.config,
239-});
240-const requestedStartOptions =
241-options?.startOptions ?? resolveCodexAppServerRuntimeOptions().start;
242-const managedStartOptions = await resolveManagedCodexAppServerStartOptions(requestedStartOptions);
243-const startOptions = await bridgeCodexAppServerStartOptions({
244-startOptions: managedStartOptions,
245- agentDir,
246-authProfileId: usesNativeAuth ? null : authProfileId,
247-config: options?.config,
248-});
237+export async function createIsolatedCodexAppServerClient(
238+options?: CodexAppServerClientOptions,
239+): Promise<CodexAppServerClient> {
240+const { agentDir, usesNativeAuth, authProfileId, startOptions } =
241+await resolveCodexAppServerClientStartContext(options);
249242const client = CodexAppServerClient.start(startOptions);
250243const initialize = client.initialize();
251244try {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。