resetProToOpusDefault.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { logEvent } from 'src/services/analytics/index.js'
  2. import { isProSubscriber } from '../utils/auth.js'
  3. import { getGlobalConfig, saveGlobalConfig } from '../utils/config.js'
  4. import { getAPIProvider } from '../utils/model/providers.js'
  5. import { getSettings_DEPRECATED } from '../utils/settings/settings.js'
  6. export function resetProToOpusDefault(): void {
  7. const config = getGlobalConfig()
  8. if (config.opusProMigrationComplete) {
  9. return
  10. }
  11. const apiProvider = getAPIProvider()
  12. // Pro users on firstParty get auto-migrated to Opus 4.5 default
  13. if (apiProvider !== 'firstParty' || !isProSubscriber()) {
  14. saveGlobalConfig(current => ({
  15. ...current,
  16. opusProMigrationComplete: true,
  17. }))
  18. logEvent('tengu_reset_pro_to_opus_default', { skipped: true })
  19. return
  20. }
  21. const settings = getSettings_DEPRECATED()
  22. // Only show notification if user was on default (no custom model setting)
  23. if (settings?.model === undefined) {
  24. const opusProMigrationTimestamp = Date.now()
  25. saveGlobalConfig(current => ({
  26. ...current,
  27. opusProMigrationComplete: true,
  28. opusProMigrationTimestamp,
  29. }))
  30. logEvent('tengu_reset_pro_to_opus_default', {
  31. skipped: false,
  32. had_custom_model: false,
  33. })
  34. } else {
  35. // User has a custom model setting, just mark migration complete
  36. saveGlobalConfig(current => ({
  37. ...current,
  38. opusProMigrationComplete: true,
  39. }))
  40. logEvent('tengu_reset_pro_to_opus_default', {
  41. skipped: false,
  42. had_custom_model: true,
  43. })
  44. }
  45. }