diff --git a/packages/cli/src/acp-integration/acp.ts b/packages/cli/src/acp-integration/acp.ts index 9725cdb01..c3705a98c 100644 --- a/packages/cli/src/acp-integration/acp.ts +++ b/packages/cli/src/acp-integration/acp.ts @@ -286,6 +286,10 @@ class Connection { return RequestError.authRequired(details).toResult(); } + if (details?.includes('/auth')) { + return RequestError.authRequired(details).toResult(); + } + return RequestError.internalError(details).toResult(); } } diff --git a/packages/cli/src/acp-integration/acpAgent.ts b/packages/cli/src/acp-integration/acpAgent.ts index 1c766e7a2..ac16921ea 100644 --- a/packages/cli/src/acp-integration/acpAgent.ts +++ b/packages/cli/src/acp-integration/acpAgent.ts @@ -380,10 +380,10 @@ class GeminiAgent { const allConfiguredModels = config.getAllConfiguredModels(); const baseCurrentModelId = parseAcpBaseModelId(rawCurrentModelId); - const currentModelId = - currentAuthType && baseCurrentModelId - ? formatAcpModelId(baseCurrentModelId, currentAuthType) - : baseCurrentModelId; + const currentModelId = this.formatCurrentModelId( + baseCurrentModelId, + currentAuthType, + ); const availableModels = allConfiguredModels; @@ -396,26 +396,20 @@ class GeminiAgent { }, })); - if ( - currentModelId && - !mappedAvailableModels.some((model) => model.modelId === currentModelId) - ) { - const currentContextWindowSize = - config.getContentGeneratorConfig()?.contextWindowSize ?? - tokenLimit(currentModelId); - mappedAvailableModels.unshift({ - modelId: currentModelId, - name: currentModelId, - description: null, - _meta: { - contextLimit: currentContextWindowSize, - }, - }); - } - return { currentModelId, availableModels: mappedAvailableModels, }; } + + private formatCurrentModelId( + baseModelId: string, + authType?: AuthType, + ): string { + if (!baseModelId) { + return baseModelId; + } + + return authType ? formatAcpModelId(baseModelId, authType) : baseModelId; + } } diff --git a/packages/cli/src/acp-integration/session/Session.ts b/packages/cli/src/acp-integration/session/Session.ts index a819ccd2a..7f16f8ecb 100644 --- a/packages/cli/src/acp-integration/session/Session.ts +++ b/packages/cli/src/acp-integration/session/Session.ts @@ -371,7 +371,9 @@ export class Session implements SessionContext { const selectedAuthType = parsed.authType ?? previousAuthType; if (!selectedAuthType) { - throw acp.RequestError.invalidParams('authType cannot be determined'); + throw acp.RequestError.invalidParams( + `authType cannot be determined for modelId "${parsed.modelId}"`, + ); } await this.config.switchModel(