chore(store): update migration logic and increment version to 87
* Updated migration functions to include error handling for provider additions. * Incremented the version number in the persisted reducer configuration.
This commit is contained in:
parent
9e977f4b35
commit
b363cb06a4
@ -42,7 +42,7 @@ const persistedReducer = persistReducer(
|
|||||||
{
|
{
|
||||||
key: 'cherry-studio',
|
key: 'cherry-studio',
|
||||||
storage,
|
storage,
|
||||||
version: 86,
|
version: 87,
|
||||||
blacklist: ['runtime', 'messages'],
|
blacklist: ['runtime', 'messages'],
|
||||||
migrate
|
migrate
|
||||||
},
|
},
|
||||||
|
|||||||
@ -35,420 +35,609 @@ function addProvider(state: RootState, id: string) {
|
|||||||
|
|
||||||
const migrateConfig = {
|
const migrateConfig = {
|
||||||
'2': (state: RootState) => {
|
'2': (state: RootState) => {
|
||||||
addProvider(state, 'yi')
|
try {
|
||||||
return state
|
addProvider(state, 'yi')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'3': (state: RootState) => {
|
'3': (state: RootState) => {
|
||||||
addProvider(state, 'zhipu')
|
try {
|
||||||
return state
|
addProvider(state, 'zhipu')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'4': (state: RootState) => {
|
'4': (state: RootState) => {
|
||||||
addProvider(state, 'ollama')
|
try {
|
||||||
return state
|
addProvider(state, 'ollama')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'5': (state: RootState) => {
|
'5': (state: RootState) => {
|
||||||
addProvider(state, 'moonshot')
|
try {
|
||||||
return state
|
addProvider(state, 'moonshot')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'6': (state: RootState) => {
|
'6': (state: RootState) => {
|
||||||
addProvider(state, 'openrouter')
|
try {
|
||||||
return state
|
addProvider(state, 'openrouter')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'7': (state: RootState) => {
|
'7': (state: RootState) => {
|
||||||
return {
|
try {
|
||||||
...state,
|
return {
|
||||||
settings: {
|
...state,
|
||||||
...state.settings,
|
settings: {
|
||||||
language: navigator.language
|
...state.settings,
|
||||||
|
language: navigator.language
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'8': (state: RootState) => {
|
'8': (state: RootState) => {
|
||||||
const fixAssistantName = (assistant: Assistant) => {
|
try {
|
||||||
if (isEmpty(assistant.name)) {
|
const fixAssistantName = (assistant: Assistant) => {
|
||||||
assistant.name = i18n.t(`assistant.${assistant.id}.name`)
|
if (isEmpty(assistant.name)) {
|
||||||
}
|
assistant.name = i18n.t(`assistant.${assistant.id}.name`)
|
||||||
|
|
||||||
assistant.topics = assistant.topics.map((topic) => {
|
|
||||||
if (isEmpty(topic.name)) {
|
|
||||||
topic.name = i18n.t(`assistant.${assistant.id}.topic.name`)
|
|
||||||
}
|
}
|
||||||
return topic
|
|
||||||
})
|
|
||||||
|
|
||||||
return assistant
|
assistant.topics = assistant.topics.map((topic) => {
|
||||||
}
|
if (isEmpty(topic.name)) {
|
||||||
|
topic.name = i18n.t(`assistant.${assistant.id}.topic.name`)
|
||||||
|
}
|
||||||
|
return topic
|
||||||
|
})
|
||||||
|
|
||||||
return {
|
return assistant
|
||||||
...state,
|
|
||||||
assistants: {
|
|
||||||
...state.assistants,
|
|
||||||
defaultAssistant: fixAssistantName(state.assistants.defaultAssistant),
|
|
||||||
assistants: state.assistants.assistants.map((assistant) => fixAssistantName(assistant))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
assistants: {
|
||||||
|
...state.assistants,
|
||||||
|
defaultAssistant: fixAssistantName(state.assistants.defaultAssistant),
|
||||||
|
assistants: state.assistants.assistants.map((assistant) => fixAssistantName(assistant))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'9': (state: RootState) => {
|
'9': (state: RootState) => {
|
||||||
return {
|
try {
|
||||||
...state,
|
return {
|
||||||
llm: {
|
...state,
|
||||||
...state.llm,
|
llm: {
|
||||||
providers: state.llm.providers.map((provider) => {
|
...state.llm,
|
||||||
if (provider.id === 'zhipu' && provider.models[0] && provider.models[0].id === 'llama3-70b-8192') {
|
providers: state.llm.providers.map((provider) => {
|
||||||
provider.models = SYSTEM_MODELS.zhipu
|
if (provider.id === 'zhipu' && provider.models[0] && provider.models[0].id === 'llama3-70b-8192') {
|
||||||
}
|
provider.models = SYSTEM_MODELS.zhipu
|
||||||
return provider
|
}
|
||||||
})
|
return provider
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'10': (state: RootState) => {
|
'10': (state: RootState) => {
|
||||||
addProvider(state, 'baichuan')
|
try {
|
||||||
return state
|
addProvider(state, 'baichuan')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'11': (state: RootState) => {
|
'11': (state: RootState) => {
|
||||||
addProvider(state, 'dashscope')
|
try {
|
||||||
addProvider(state, 'anthropic')
|
addProvider(state, 'dashscope')
|
||||||
return state
|
addProvider(state, 'anthropic')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'12': (state: RootState) => {
|
'12': (state: RootState) => {
|
||||||
addProvider(state, 'aihubmix')
|
try {
|
||||||
return state
|
addProvider(state, 'aihubmix')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'13': (state: RootState) => {
|
'13': (state: RootState) => {
|
||||||
return {
|
try {
|
||||||
...state,
|
return {
|
||||||
assistants: {
|
...state,
|
||||||
...state.assistants,
|
assistants: {
|
||||||
defaultAssistant: {
|
...state.assistants,
|
||||||
...state.assistants.defaultAssistant,
|
defaultAssistant: {
|
||||||
name: ['Default Assistant', '默认助手'].includes(state.assistants.defaultAssistant.name)
|
...state.assistants.defaultAssistant,
|
||||||
? i18n.t(`assistant.default.name`)
|
name: ['Default Assistant', '默认助手'].includes(state.assistants.defaultAssistant.name)
|
||||||
: state.assistants.defaultAssistant.name
|
? i18n.t(`assistant.default.name`)
|
||||||
|
: state.assistants.defaultAssistant.name
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'14': (state: RootState) => {
|
'14': (state: RootState) => {
|
||||||
return {
|
try {
|
||||||
...state,
|
return {
|
||||||
settings: {
|
...state,
|
||||||
...state.settings,
|
settings: {
|
||||||
showAssistants: true,
|
...state.settings,
|
||||||
proxyUrl: undefined
|
showAssistants: true,
|
||||||
|
proxyUrl: undefined
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'15': (state: RootState) => {
|
'15': (state: RootState) => {
|
||||||
return {
|
try {
|
||||||
...state,
|
return {
|
||||||
settings: {
|
...state,
|
||||||
...state.settings,
|
settings: {
|
||||||
userName: '',
|
...state.settings,
|
||||||
showMessageDivider: true
|
userName: '',
|
||||||
|
showMessageDivider: true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'16': (state: RootState) => {
|
'16': (state: RootState) => {
|
||||||
return {
|
try {
|
||||||
...state,
|
return {
|
||||||
settings: {
|
...state,
|
||||||
...state.settings,
|
settings: {
|
||||||
messageFont: 'system',
|
...state.settings,
|
||||||
showInputEstimatedTokens: false
|
messageFont: 'system',
|
||||||
|
showInputEstimatedTokens: false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'17': (state: RootState) => {
|
'17': (state: RootState) => {
|
||||||
return {
|
try {
|
||||||
...state,
|
return {
|
||||||
settings: {
|
...state,
|
||||||
...state.settings,
|
settings: {
|
||||||
theme: 'auto'
|
...state.settings,
|
||||||
|
theme: 'auto'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'19': (state: RootState) => {
|
'19': (state: RootState) => {
|
||||||
return {
|
try {
|
||||||
...state,
|
return {
|
||||||
agents: {
|
...state,
|
||||||
agents: []
|
agents: {
|
||||||
},
|
agents: []
|
||||||
llm: {
|
},
|
||||||
...state.llm,
|
llm: {
|
||||||
settings: {
|
...state.llm,
|
||||||
ollama: {
|
settings: {
|
||||||
keepAliveTime: 5
|
ollama: {
|
||||||
|
keepAliveTime: 5
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'20': (state: RootState) => {
|
'20': (state: RootState) => {
|
||||||
return {
|
try {
|
||||||
...state,
|
return {
|
||||||
settings: {
|
...state,
|
||||||
...state.settings,
|
settings: {
|
||||||
fontSize: 14
|
...state.settings,
|
||||||
|
fontSize: 14
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'21': (state: RootState) => {
|
'21': (state: RootState) => {
|
||||||
addProvider(state, 'gemini')
|
try {
|
||||||
addProvider(state, 'stepfun')
|
addProvider(state, 'gemini')
|
||||||
addProvider(state, 'doubao')
|
addProvider(state, 'stepfun')
|
||||||
return state
|
addProvider(state, 'doubao')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'22': (state: RootState) => {
|
'22': (state: RootState) => {
|
||||||
addProvider(state, 'minimax')
|
try {
|
||||||
return state
|
addProvider(state, 'minimax')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'23': (state: RootState) => {
|
'23': (state: RootState) => {
|
||||||
return {
|
try {
|
||||||
...state,
|
return {
|
||||||
settings: {
|
...state,
|
||||||
...state.settings,
|
settings: {
|
||||||
showTopics: true,
|
...state.settings,
|
||||||
windowStyle: 'transparent'
|
showTopics: true,
|
||||||
|
windowStyle: 'transparent'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'24': (state: RootState) => {
|
'24': (state: RootState) => {
|
||||||
return {
|
try {
|
||||||
...state,
|
return {
|
||||||
assistants: {
|
...state,
|
||||||
...state.assistants,
|
assistants: {
|
||||||
assistants: state.assistants.assistants.map((assistant) => ({
|
...state.assistants,
|
||||||
...assistant,
|
assistants: state.assistants.assistants.map((assistant) => ({
|
||||||
topics: assistant.topics.map((topic) => ({
|
...assistant,
|
||||||
...topic,
|
topics: assistant.topics.map((topic) => ({
|
||||||
createdAt: new Date().toISOString(),
|
...topic,
|
||||||
updatedAt: new Date().toISOString()
|
createdAt: new Date().toISOString(),
|
||||||
|
updatedAt: new Date().toISOString()
|
||||||
|
}))
|
||||||
}))
|
}))
|
||||||
}))
|
},
|
||||||
},
|
settings: {
|
||||||
settings: {
|
...state.settings,
|
||||||
...state.settings,
|
topicPosition: 'right'
|
||||||
topicPosition: 'right'
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'25': (state: RootState) => {
|
'25': (state: RootState) => {
|
||||||
addProvider(state, 'github')
|
try {
|
||||||
return state
|
addProvider(state, 'github')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'26': (state: RootState) => {
|
'26': (state: RootState) => {
|
||||||
addProvider(state, 'ocoolai')
|
try {
|
||||||
return state
|
addProvider(state, 'ocoolai')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'27': (state: RootState) => {
|
'27': (state: RootState) => {
|
||||||
return {
|
try {
|
||||||
...state,
|
return {
|
||||||
settings: {
|
...state,
|
||||||
...state.settings,
|
settings: {
|
||||||
renderInputMessageAsMarkdown: true
|
...state.settings,
|
||||||
|
renderInputMessageAsMarkdown: true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'28': (state: RootState) => {
|
'28': (state: RootState) => {
|
||||||
addProvider(state, 'together')
|
try {
|
||||||
addProvider(state, 'fireworks')
|
addProvider(state, 'together')
|
||||||
addProvider(state, 'zhinao')
|
addProvider(state, 'fireworks')
|
||||||
addProvider(state, 'hunyuan')
|
addProvider(state, 'zhinao')
|
||||||
addProvider(state, 'nvidia')
|
addProvider(state, 'hunyuan')
|
||||||
|
addProvider(state, 'nvidia')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'29': (state: RootState) => {
|
'29': (state: RootState) => {
|
||||||
return {
|
try {
|
||||||
...state,
|
return {
|
||||||
assistants: {
|
...state,
|
||||||
...state.assistants,
|
assistants: {
|
||||||
assistants: state.assistants.assistants.map((assistant) => {
|
...state.assistants,
|
||||||
assistant.topics = assistant.topics.map((topic) => ({
|
assistants: state.assistants.assistants.map((assistant) => {
|
||||||
...topic,
|
assistant.topics = assistant.topics.map((topic) => ({
|
||||||
assistantId: assistant.id
|
...topic,
|
||||||
}))
|
assistantId: assistant.id
|
||||||
return assistant
|
}))
|
||||||
})
|
return assistant
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'30': (state: RootState) => {
|
'30': (state: RootState) => {
|
||||||
addProvider(state, 'azure-openai')
|
try {
|
||||||
return state
|
addProvider(state, 'azure-openai')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'31': (state: RootState) => {
|
'31': (state: RootState) => {
|
||||||
return {
|
try {
|
||||||
...state,
|
return {
|
||||||
llm: {
|
...state,
|
||||||
...state.llm,
|
llm: {
|
||||||
providers: state.llm.providers.map((provider) => {
|
...state.llm,
|
||||||
if (provider.id === 'azure-openai') {
|
providers: state.llm.providers.map((provider) => {
|
||||||
provider.models = provider.models.map((model) => ({ ...model, provider: 'azure-openai' }))
|
if (provider.id === 'azure-openai') {
|
||||||
}
|
provider.models = provider.models.map((model) => ({ ...model, provider: 'azure-openai' }))
|
||||||
return provider
|
}
|
||||||
})
|
return provider
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'32': (state: RootState) => {
|
'32': (state: RootState) => {
|
||||||
addProvider(state, 'hunyuan')
|
try {
|
||||||
return state
|
addProvider(state, 'hunyuan')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'33': (state: RootState) => {
|
'33': (state: RootState) => {
|
||||||
state.assistants.defaultAssistant.type = 'assistant'
|
try {
|
||||||
|
state.assistants.defaultAssistant.type = 'assistant'
|
||||||
|
|
||||||
state.agents.agents.forEach((agent) => {
|
state.agents.agents.forEach((agent) => {
|
||||||
agent.type = 'agent'
|
agent.type = 'agent'
|
||||||
// @ts-ignore eslint-disable-next-line
|
// @ts-ignore eslint-disable-next-line
|
||||||
delete agent.group
|
delete agent.group
|
||||||
})
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
assistants: {
|
assistants: {
|
||||||
...state.assistants,
|
...state.assistants,
|
||||||
assistants: [...state.assistants.assistants].map((assistant) => {
|
assistants: [...state.assistants.assistants].map((assistant) => {
|
||||||
// @ts-ignore eslint-disable-next-line
|
// @ts-ignore eslint-disable-next-line
|
||||||
delete assistant.group
|
delete assistant.group
|
||||||
return {
|
return {
|
||||||
...assistant,
|
...assistant,
|
||||||
id: assistant.id.length === 36 ? assistant.id : uuid(),
|
id: assistant.id.length === 36 ? assistant.id : uuid(),
|
||||||
type: assistant.type === 'system' ? assistant.type : 'assistant'
|
type: assistant.type === 'system' ? assistant.type : 'assistant'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'34': (state: RootState) => {
|
'34': (state: RootState) => {
|
||||||
state.assistants.assistants.forEach((assistant) => {
|
try {
|
||||||
assistant.topics.forEach((topic) => {
|
state.assistants.assistants.forEach((assistant) => {
|
||||||
topic.assistantId = assistant.id
|
assistant.topics.forEach((topic) => {
|
||||||
runAsyncFunction(async () => {
|
topic.assistantId = assistant.id
|
||||||
const _topic = await db.topics.get(topic.id)
|
runAsyncFunction(async () => {
|
||||||
if (_topic) {
|
const _topic = await db.topics.get(topic.id)
|
||||||
const messages = (_topic?.messages || []).map((message) => ({ ...message, assistantId: assistant.id }))
|
if (_topic) {
|
||||||
db.topics.put({ ..._topic, messages }, topic.id)
|
const messages = (_topic?.messages || []).map((message) => ({ ...message, assistantId: assistant.id }))
|
||||||
}
|
db.topics.put({ ..._topic, messages }, topic.id)
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
return state
|
||||||
return state
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'35': (state: RootState) => {
|
'35': (state: RootState) => {
|
||||||
state.settings.mathEngine = 'KaTeX'
|
try {
|
||||||
return state
|
state.settings.mathEngine = 'KaTeX'
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'36': (state: RootState) => {
|
'36': (state: RootState) => {
|
||||||
state.settings.topicPosition = 'left'
|
try {
|
||||||
return state
|
state.settings.topicPosition = 'left'
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'37': (state: RootState) => {
|
'37': (state: RootState) => {
|
||||||
state.settings.messageStyle = 'plain'
|
try {
|
||||||
return state
|
state.settings.messageStyle = 'plain'
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'38': (state: RootState) => {
|
'38': (state: RootState) => {
|
||||||
addProvider(state, 'grok')
|
try {
|
||||||
addProvider(state, 'hyperbolic')
|
addProvider(state, 'grok')
|
||||||
addProvider(state, 'mistral')
|
addProvider(state, 'hyperbolic')
|
||||||
return state
|
addProvider(state, 'mistral')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'39': (state: RootState) => {
|
'39': (state: RootState) => {
|
||||||
state.settings.codeStyle = 'auto'
|
try {
|
||||||
return state
|
state.settings.codeStyle = 'auto'
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'40': (state: RootState) => {
|
'40': (state: RootState) => {
|
||||||
state.settings.tray = true
|
try {
|
||||||
return state
|
state.settings.tray = true
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'41': (state: RootState) => {
|
'41': (state: RootState) => {
|
||||||
state.llm.providers.forEach((provider) => {
|
try {
|
||||||
if (provider.id === 'gemini') {
|
state.llm.providers.forEach((provider) => {
|
||||||
provider.type = 'gemini'
|
if (provider.id === 'gemini') {
|
||||||
} else if (provider.id === 'anthropic') {
|
provider.type = 'gemini'
|
||||||
provider.type = 'anthropic'
|
} else if (provider.id === 'anthropic') {
|
||||||
} else {
|
provider.type = 'anthropic'
|
||||||
provider.type = 'openai'
|
} else {
|
||||||
}
|
provider.type = 'openai'
|
||||||
})
|
}
|
||||||
return state
|
})
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'42': (state: RootState) => {
|
'42': (state: RootState) => {
|
||||||
state.settings.proxyMode = state.settings.proxyUrl ? 'custom' : 'none'
|
try {
|
||||||
return state
|
state.settings.proxyMode = state.settings.proxyUrl ? 'custom' : 'none'
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'43': (state: RootState) => {
|
'43': (state: RootState) => {
|
||||||
if (state.settings.proxyMode === 'none') {
|
try {
|
||||||
state.settings.proxyMode = 'system'
|
if (state.settings.proxyMode === 'none') {
|
||||||
|
state.settings.proxyMode = 'system'
|
||||||
|
}
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
return state
|
|
||||||
},
|
},
|
||||||
'44': (state: RootState) => {
|
'44': (state: RootState) => {
|
||||||
state.settings.translateModelPrompt = TRANSLATE_PROMPT
|
try {
|
||||||
return state
|
state.settings.translateModelPrompt = TRANSLATE_PROMPT
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'45': (state: RootState) => {
|
'45': (state: RootState) => {
|
||||||
state.settings.enableTopicNaming = true
|
state.settings.enableTopicNaming = true
|
||||||
return state
|
return state
|
||||||
},
|
},
|
||||||
'46': (state: RootState) => {
|
'46': (state: RootState) => {
|
||||||
if (
|
try {
|
||||||
state.settings?.translateModelPrompt?.includes(
|
if (
|
||||||
'If the target language is the same as the source language, do not translate'
|
state.settings?.translateModelPrompt?.includes(
|
||||||
)
|
'If the target language is the same as the source language, do not translate'
|
||||||
) {
|
)
|
||||||
state.settings.translateModelPrompt = TRANSLATE_PROMPT
|
) {
|
||||||
|
state.settings.translateModelPrompt = TRANSLATE_PROMPT
|
||||||
|
}
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
return state
|
|
||||||
},
|
},
|
||||||
'47': (state: RootState) => {
|
'47': (state: RootState) => {
|
||||||
state.llm.providers.forEach((provider) => {
|
try {
|
||||||
provider.models.forEach((model) => {
|
state.llm.providers.forEach((provider) => {
|
||||||
model.group = getDefaultGroupName(model.id)
|
provider.models.forEach((model) => {
|
||||||
|
model.group = getDefaultGroupName(model.id)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
return state
|
||||||
return state
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'48': (state: RootState) => {
|
'48': (state: RootState) => {
|
||||||
if (state.shortcuts) {
|
try {
|
||||||
state.shortcuts.shortcuts.forEach((shortcut) => {
|
if (state.shortcuts) {
|
||||||
shortcut.system = shortcut.key !== 'new_topic'
|
state.shortcuts.shortcuts.forEach((shortcut) => {
|
||||||
})
|
shortcut.system = shortcut.key !== 'new_topic'
|
||||||
state.shortcuts.shortcuts.push({
|
})
|
||||||
key: 'toggle_show_assistants',
|
state.shortcuts.shortcuts.push({
|
||||||
shortcut: [isMac ? 'Command' : 'Ctrl', '['],
|
key: 'toggle_show_assistants',
|
||||||
editable: true,
|
shortcut: [isMac ? 'Command' : 'Ctrl', '['],
|
||||||
enabled: true,
|
editable: true,
|
||||||
system: false
|
enabled: true,
|
||||||
})
|
system: false
|
||||||
state.shortcuts.shortcuts.push({
|
})
|
||||||
key: 'toggle_show_topics',
|
state.shortcuts.shortcuts.push({
|
||||||
shortcut: [isMac ? 'Command' : 'Ctrl', ']'],
|
key: 'toggle_show_topics',
|
||||||
editable: true,
|
shortcut: [isMac ? 'Command' : 'Ctrl', ']'],
|
||||||
enabled: true,
|
editable: true,
|
||||||
system: false
|
enabled: true,
|
||||||
})
|
system: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
return state
|
|
||||||
},
|
},
|
||||||
'49': (state: RootState) => {
|
'49': (state: RootState) => {
|
||||||
state.settings.pasteLongTextThreshold = 1500
|
try {
|
||||||
if (state.shortcuts) {
|
state.settings.pasteLongTextThreshold = 1500
|
||||||
state.shortcuts.shortcuts = [
|
if (state.shortcuts) {
|
||||||
...state.shortcuts.shortcuts,
|
state.shortcuts.shortcuts = [
|
||||||
{
|
...state.shortcuts.shortcuts,
|
||||||
key: 'copy_last_message',
|
{
|
||||||
shortcut: [isMac ? 'Command' : 'Ctrl', 'Shift', 'C'],
|
key: 'copy_last_message',
|
||||||
editable: true,
|
shortcut: [isMac ? 'Command' : 'Ctrl', 'Shift', 'C'],
|
||||||
enabled: false,
|
editable: true,
|
||||||
system: false
|
enabled: false,
|
||||||
}
|
system: false
|
||||||
]
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
return state
|
|
||||||
},
|
},
|
||||||
'50': (state: RootState) => {
|
'50': (state: RootState) => {
|
||||||
addProvider(state, 'jina')
|
try {
|
||||||
return state
|
addProvider(state, 'jina')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'51': (state: RootState) => {
|
'51': (state: RootState) => {
|
||||||
state.settings.topicNamingPrompt = ''
|
state.settings.topicNamingPrompt = ''
|
||||||
@ -634,24 +823,28 @@ const migrateConfig = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
'67': (state: RootState) => {
|
'67': (state: RootState) => {
|
||||||
if (state.minapps) {
|
try {
|
||||||
const xiaoyi = DEFAULT_MIN_APPS.find((app) => app.id === 'xiaoyi')
|
if (state.minapps) {
|
||||||
if (xiaoyi) {
|
const xiaoyi = DEFAULT_MIN_APPS.find((app) => app.id === 'xiaoyi')
|
||||||
state.minapps.enabled.push(xiaoyi)
|
if (xiaoyi) {
|
||||||
|
state.minapps.enabled.push(xiaoyi)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addProvider(state, 'modelscope')
|
||||||
|
addProvider(state, 'lmstudio')
|
||||||
|
addProvider(state, 'perplexity')
|
||||||
|
addProvider(state, 'infini')
|
||||||
|
addProvider(state, 'dmxapi')
|
||||||
|
|
||||||
|
state.llm.settings.lmstudio = {
|
||||||
|
keepAliveTime: 5
|
||||||
|
}
|
||||||
|
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
|
|
||||||
addProvider(state, 'modelscope')
|
|
||||||
addProvider(state, 'lmstudio')
|
|
||||||
addProvider(state, 'perplexity')
|
|
||||||
addProvider(state, 'infini')
|
|
||||||
addProvider(state, 'dmxapi')
|
|
||||||
|
|
||||||
state.llm.settings.lmstudio = {
|
|
||||||
keepAliveTime: 5
|
|
||||||
}
|
|
||||||
|
|
||||||
return state
|
|
||||||
},
|
},
|
||||||
'68': (state: RootState) => {
|
'68': (state: RootState) => {
|
||||||
try {
|
try {
|
||||||
@ -946,6 +1139,15 @@ const migrateConfig = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return state
|
return state
|
||||||
|
},
|
||||||
|
'87': (state: RootState) => {
|
||||||
|
try {
|
||||||
|
state.settings.maxKeepAliveMinapps = 3
|
||||||
|
state.settings.showOpenedMinappsInSidebar = true
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user