11import * as acp from "@agentclientprotocol/sdk" ;
2- import {
3- RequestError ,
4- type SessionId ,
5- type SessionModelState ,
6- type SessionModeState
7- } from "@agentclientprotocol/sdk" ;
2+ import { RequestError , type SessionId , type SessionModelState , type SessionModeState } from "@agentclientprotocol/sdk" ;
83import { CodexEventHandler } from "./CodexEventHandler" ;
94import { CodexApprovalHandler } from "./CodexApprovalHandler" ;
105import { CodexElicitationHandler } from "./CodexElicitationHandler" ;
11- import { getCodexAuthMethods , type CodexAuthRequest } from "./CodexAuthMethod" ;
6+ import { type CodexAuthRequest , getCodexAuthMethods } from "./CodexAuthMethod" ;
127import { CodexAcpClient , type SessionMetadata , type SessionMetadataWithThread } from "./CodexAcpClient" ;
138import type { McpStartupResult } from "./CodexAppServerClient" ;
149import { ACPSessionConnection , type UpdateSessionEvent } from "./ACPSessionConnection" ;
@@ -17,10 +12,10 @@ import type {
1712 Account ,
1813 CollabAgentToolCallStatus ,
1914 Model ,
15+ ReasoningEffortOption ,
2016 Thread ,
2117 ThreadItem ,
22- UserInput ,
23- ReasoningEffortOption
18+ UserInput
2419} from "./app-server/v2" ;
2520import type { RateLimitsMap } from "./RateLimitsMap" ;
2621import { ModelId } from "./ModelId" ;
@@ -164,7 +159,7 @@ export class CodexAcpServer implements acp.Agent {
164159 sessionMetadata = await this . runWithProcessCheck ( ( ) => this . codexAcpClient . newSession ( request ) ) ;
165160 }
166161
167- const accountResponse = await this . runWithProcessCheck ( ( ) => this . codexAcpClient . getAccount ( ) ) ;
162+ const account = await this . getActiveAccount ( ) ;
168163 const { sessionId, currentModelId, models} = sessionMetadata ;
169164 const sessionMcpServers = this . resolveSessionMcpServers ( requestedMcpServers , "sessionId" in request ) ;
170165 const currentModel = this . findCurrentModel ( models , currentModelId ) ;
@@ -179,7 +174,7 @@ export class CodexAcpServer implements acp.Agent {
179174 totalTokenUsage : null ,
180175 modelContextWindow : null ,
181176 rateLimits : null ,
182- account : accountResponse . account ,
177+ account : account ,
183178 cwd : request . cwd ,
184179 sessionMcpServers : sessionMcpServers ,
185180 }
@@ -200,6 +195,14 @@ export class CodexAcpServer implements acp.Agent {
200195 return [ sessionId , sessionModelState , sessionModeState ] ;
201196 }
202197
198+ private async getActiveAccount ( ) {
199+ if ( this . codexAcpClient . getModelProvider ( ) ) {
200+ return null
201+ }
202+ const accountResponse = await this . runWithProcessCheck ( ( ) => this . codexAcpClient . getAccount ( ) ) ;
203+ return accountResponse . account ;
204+ }
205+
203206 async loadSession ( params : acp . LoadSessionRequest ) : Promise < acp . LoadSessionResponse > {
204207 logger . log ( "Loading session..." , { sessionId : params . sessionId } ) ;
205208 const {
@@ -381,7 +384,7 @@ export class CodexAcpServer implements acp.Agent {
381384 this . codexAcpClient . loadSession ( request )
382385 ) ;
383386
384- const accountResponse = await this . runWithProcessCheck ( ( ) => this . codexAcpClient . getAccount ( ) ) ;
387+ const account = await this . getActiveAccount ( ) ;
385388 const { sessionId, currentModelId, models, thread} = sessionMetadata ;
386389 const sessionMcpServers = this . resolveSessionMcpServers ( requestedMcpServers , true ) ;
387390 const currentModel = this . findCurrentModel ( models , currentModelId ) ;
@@ -396,7 +399,7 @@ export class CodexAcpServer implements acp.Agent {
396399 totalTokenUsage : null ,
397400 modelContextWindow : null ,
398401 rateLimits : null ,
399- account : accountResponse . account ,
402+ account : account ,
400403 cwd : request . cwd ,
401404 sessionMcpServers : sessionMcpServers ,
402405 } ;
0 commit comments