MCPcopy Create free account
hub / github.com/MoonshotAI/kimi-code / selectDefaultModel

Function selectDefaultModel

packages/oauth/src/managed-kimi-code.ts:659–695  ·  view source on GitHub ↗
(
  config: ManagedKimiConfigShape,
  models: readonly ManagedKimiCodeModelInfo[],
  options: { readonly preserveExisting: boolean },
)

Source from the content-addressed store, hash-verified

657}
658
659function selectDefaultModel(
660 config: ManagedKimiConfigShape,
661 models: readonly ManagedKimiCodeModelInfo[],
662 options: { readonly preserveExisting: boolean },
663): SelectedDefaultModel {
664 const firstModel = models[0];
665 if (firstModel === undefined) {
666 throw new Error('No models available for Kimi Code.');
667 }
668
669 const managedModels = new Map(models.map((model) => [managedModelKey(model.id), model]));
670 const existingModels = config.models ?? {};
671 const currentDefault =
672 typeof config.defaultModel === 'string' && config.defaultModel.length > 0
673 ? config.defaultModel
674 : undefined;
675
676 if (
677 options.preserveExisting &&
678 currentDefault !== undefined &&
679 canPreserveDefaultModel(existingModels, currentDefault, managedModels)
680 ) {
681 const preservedModel = managedModels.get(currentDefault);
682 return {
683 modelKey: currentDefault,
684 thinking: forcedThinking(
685 preservedModel,
686 config.thinking?.enabled ?? preservedModel?.supportsReasoning ?? false,
687 ),
688 };
689 }
690
691 return {
692 modelKey: managedModelKey(firstModel.id),
693 thinking: forcedThinking(firstModel, config.thinking?.enabled ?? firstModel.supportsReasoning),
694 };
695}
696
697function canPreserveDefaultModel(
698 existingModels: Record<string, ManagedKimiModelAlias | Record<string, unknown>>,

Callers 1

Calls 4

managedModelKeyFunction · 0.85
canPreserveDefaultModelFunction · 0.85
forcedThinkingFunction · 0.85
getMethod · 0.65

Tested by

no test coverage detected