Download src/migrations/migrateLegacyOpusToCurrent.ts from chenbhao/codev: direct link, hf CLI and curl.
- Browser
- Download file 1.97 kB
-
https://huggingface.co/chenbhao/codev/resolve/afbc7edaae4e6bb0102ba024b49ce8be89d2264c/src/migrations/migrateLegacyOpusToCurrent.ts
- Command line
-
hf download hf://chenbhao/codev@afbc7edaae4e6bb0102ba024b49ce8be89d2264c/src/migrations/migrateLegacyOpusToCurrent.ts
-
curl -L -o migrateLegacyOpusToCurrent.ts https://huggingface.co/chenbhao/codev/resolve/afbc7edaae4e6bb0102ba024b49ce8be89d2264c/src/migrations/migrateLegacyOpusToCurrent.ts
1.97 kB
| import { | |
| type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, | |
| logEvent, | |
| } from '../services/analytics/index.js' | |
| import { saveGlobalConfig } from '../utils/config.js' | |
| import { isLegacyModelRemapEnabled } from '../utils/model/model.js' | |
| import { getAPIProvider } from '../utils/model/providers.js' | |
| import { | |
| getSettingsForSource, | |
| updateSettingsForSource, | |
| } from '../utils/settings/settings.js' | |
| /** | |
| * Migrate first-party users off explicit Opus 4.0/4.1 model strings. | |
| * | |
| * The 'opus' alias already resolves to Opus 4.6 for 1P, so anyone still | |
| * on an explicit 4.0/4.1 string pinned it in settings before 4.5 launched. | |
| * parseUserSpecifiedModel now silently remaps these at runtime anyway — | |
| * this migration cleans up the settings file so /model shows the right | |
| * thing, and sets a timestamp so the REPL can show a one-time notification. | |
| * | |
| * Only touches userSettings. Legacy strings in project/local/policy settings | |
| * are left alone (we can't/shouldn't rewrite those) and are still remapped at | |
| * runtime by parseUserSpecifiedModel. Reading and writing the same source | |
| * keeps this idempotent without a completion flag, and avoids silently | |
| * promoting 'opus' to the global default for users who only pinned it in one | |
| * project. | |
| */ | |
| export function migrateLegacyOpusToCurrent(): void { | |
| if (getAPIProvider() !== 'firstParty') { | |
| return | |
| } | |
| if (!isLegacyModelRemapEnabled()) { | |
| return | |
| } | |
| const model = getSettingsForSource('userSettings')?.model | |
| if ( | |
| model !== 'claude-opus-4-20250514' && | |
| model !== 'claude-opus-4-1-20250805' && | |
| model !== 'claude-opus-4-0' && | |
| model !== 'claude-opus-4-1' | |
| ) { | |
| return | |
| } | |
| updateSettingsForSource('userSettings', { model: 'opus' }) | |
| saveGlobalConfig(current => ({ | |
| ...current, | |
| legacyOpusMigrationTimestamp: Date.now(), | |
| })) | |
| logEvent('tengu_legacy_opus_migration', { | |
| from_model: | |
| model as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, | |
| }) | |
| } | |