52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import { logEvent } from 'src/services/analytics/index.js'
|
|
import { isProSubscriber } from '../utils/auth.js'
|
|
import { getGlobalConfig, saveGlobalConfig } from '../utils/config.js'
|
|
import { getAPIProvider } from '../utils/model/providers.js'
|
|
import { getSettings_DEPRECATED } from '../utils/settings/settings.js'
|
|
|
|
export function resetProToOpusDefault(): void {
|
|
const config = getGlobalConfig()
|
|
|
|
if (config.opusProMigrationComplete) {
|
|
return
|
|
}
|
|
|
|
const apiProvider = getAPIProvider()
|
|
|
|
// Pro users on firstParty get auto-migrated to Opus 4.5 default
|
|
if (apiProvider !== 'firstParty' || !isProSubscriber()) {
|
|
saveGlobalConfig(current => ({
|
|
...current,
|
|
opusProMigrationComplete: true,
|
|
}))
|
|
logEvent('tengu_reset_pro_to_opus_default', { skipped: true })
|
|
return
|
|
}
|
|
|
|
const settings = getSettings_DEPRECATED()
|
|
|
|
// Only show notification if user was on default (no custom model setting)
|
|
if (settings?.model === undefined) {
|
|
const opusProMigrationTimestamp = Date.now()
|
|
saveGlobalConfig(current => ({
|
|
...current,
|
|
opusProMigrationComplete: true,
|
|
opusProMigrationTimestamp,
|
|
}))
|
|
logEvent('tengu_reset_pro_to_opus_default', {
|
|
skipped: false,
|
|
had_custom_model: false,
|
|
})
|
|
} else {
|
|
// User has a custom model setting, just mark migration complete
|
|
saveGlobalConfig(current => ({
|
|
...current,
|
|
opusProMigrationComplete: true,
|
|
}))
|
|
logEvent('tengu_reset_pro_to_opus_default', {
|
|
skipped: false,
|
|
had_custom_model: true,
|
|
})
|
|
}
|
|
}
|