source dump of claude code
at main 64 lines 1.8 kB view raw
1import { getFeatureValue_CACHED_MAY_BE_STALE } from 'src/services/analytics/growthbook.js' 2import type { EffortLevel } from '../effort.js' 3 4export type AntModel = { 5 alias: string 6 model: string 7 label: string 8 description?: string 9 defaultEffortValue?: number 10 defaultEffortLevel?: EffortLevel 11 contextWindow?: number 12 defaultMaxTokens?: number 13 upperMaxTokensLimit?: number 14 /** Model defaults to adaptive thinking and rejects `thinking: { type: 'disabled' }`. */ 15 alwaysOnThinking?: boolean 16} 17 18export type AntModelSwitchCalloutConfig = { 19 modelAlias?: string 20 description: string 21 version: string 22} 23 24export type AntModelOverrideConfig = { 25 defaultModel?: string 26 defaultModelEffortLevel?: EffortLevel 27 defaultSystemPromptSuffix?: string 28 antModels?: AntModel[] 29 switchCallout?: AntModelSwitchCalloutConfig 30} 31 32// @[MODEL LAUNCH]: Update tengu_ant_model_override with new ant-only models 33// @[MODEL LAUNCH]: Add the codename to scripts/excluded-strings.txt to prevent it from leaking to external builds. 34export function getAntModelOverrideConfig(): AntModelOverrideConfig | null { 35 if (process.env.USER_TYPE !== 'ant') { 36 return null 37 } 38 return getFeatureValue_CACHED_MAY_BE_STALE<AntModelOverrideConfig | null>( 39 'tengu_ant_model_override', 40 null, 41 ) 42} 43 44export function getAntModels(): AntModel[] { 45 if (process.env.USER_TYPE !== 'ant') { 46 return [] 47 } 48 return getAntModelOverrideConfig()?.antModels ?? [] 49} 50 51export function resolveAntModel( 52 model: string | undefined, 53): AntModel | undefined { 54 if (process.env.USER_TYPE !== 'ant') { 55 return undefined 56 } 57 if (model === undefined) { 58 return undefined 59 } 60 const lower = model.toLowerCase() 61 return getAntModels().find( 62 m => m.alias === model || lower.includes(m.model.toLowerCase()), 63 ) 64}