From 6fa11a7baeeb8381850f96f56420597086acc2b9 Mon Sep 17 00:00:00 2001 From: "mingholy.lmh" Date: Tue, 27 Jan 2026 10:08:49 +0800 Subject: [PATCH] fix: remove unshifted current modelId and add auth error response --- packages/cli/src/acp-integration/acp.ts | 4 +++ packages/cli/src/acp-integration/acpAgent.ts | 36 ++++++++----------- .../src/acp-integration/session/Session.ts | 4 ++- 3 files changed, 22 insertions(+), 22 deletions(-) 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(