Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
refactor(web): use discriminated union for selectConfiguredLanguageMo…
…del result; askCodebase drops impossible fallback branch
  • Loading branch information
Harsh Kashyap authored and Harsh23Kashyap committed Jul 17, 2026
commit 392ad3c69a0b7615fefe875fbaa443f6c57f57c6
15 changes: 4 additions & 11 deletions packages/web/src/ee/features/mcp/askCodebase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,21 +72,14 @@ export const askCodebase = (params: AskCodebaseParams): Promise<AskCodebaseResul

let languageModelConfig = configuredModels[0];
if (requestedLanguageModel) {
const { languageModelConfig: selectedLanguageModel, error } = selectConfiguredLanguageModel(
const result = selectConfiguredLanguageModel(
configuredModels,
requestedLanguageModel
);
if (error) {
return error;
if (result.error) {
return result.error;
}
if (!selectedLanguageModel) {
return {
statusCode: StatusCodes.INTERNAL_SERVER_ERROR,
errorCode: ErrorCode.UNEXPECTED_ERROR,
message: "Failed to resolve the requested language model.",
} satisfies ServiceError;
}
languageModelConfig = selectedLanguageModel;
languageModelConfig = result.languageModelConfig;
}

const { model, providerOptions, temperature } = await getAISDKLanguageModelAndOptions(languageModelConfig);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ const formatConfiguredLanguageModelLabel = (model: Pick<LanguageModelInfo, 'prov
export const selectConfiguredLanguageModel = <T extends Pick<LanguageModelInfo, 'provider' | 'model' | 'displayName'>>(
configuredModels: T[],
requestedLanguageModel: Pick<LanguageModelInfo, 'provider' | 'model' | 'displayName'>
): {
languageModelConfig?: T;
error?: ServiceError;
} => {
): (
| { languageModelConfig: T; error?: never }
| { languageModelConfig?: never; error: ServiceError }
) => {
const candidateModels = configuredModels.filter(
(model) => model.provider === requestedLanguageModel.provider && model.model === requestedLanguageModel.model
);
Expand Down