fix(migrate): add error handling to migration functions and ensure state integrity during updates
This commit is contained in:
parent
3bb294e698
commit
9976ad9ed0
@ -455,135 +455,183 @@ const migrateConfig = {
|
|||||||
return state
|
return state
|
||||||
},
|
},
|
||||||
'54': (state: RootState) => {
|
'54': (state: RootState) => {
|
||||||
if (state.shortcuts) {
|
try {
|
||||||
state.shortcuts.shortcuts.push({
|
if (state.shortcuts) {
|
||||||
key: 'search_message',
|
state.shortcuts.shortcuts.push({
|
||||||
shortcut: [isMac ? 'Command' : 'Ctrl', 'F'],
|
key: 'search_message',
|
||||||
editable: true,
|
shortcut: [isMac ? 'Command' : 'Ctrl', 'F'],
|
||||||
enabled: true,
|
editable: true,
|
||||||
system: false
|
enabled: true,
|
||||||
})
|
system: false
|
||||||
}
|
})
|
||||||
state.settings.sidebarIcons = {
|
}
|
||||||
visible: DEFAULT_SIDEBAR_ICONS,
|
|
||||||
disabled: []
|
|
||||||
}
|
|
||||||
return state
|
|
||||||
},
|
|
||||||
'55': (state: RootState) => {
|
|
||||||
if (!state.settings.sidebarIcons) {
|
|
||||||
state.settings.sidebarIcons = {
|
state.settings.sidebarIcons = {
|
||||||
visible: DEFAULT_SIDEBAR_ICONS,
|
visible: DEFAULT_SIDEBAR_ICONS,
|
||||||
disabled: []
|
disabled: []
|
||||||
}
|
}
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'55': (state: RootState) => {
|
||||||
|
try {
|
||||||
|
if (!state.settings.sidebarIcons) {
|
||||||
|
state.settings.sidebarIcons = {
|
||||||
|
visible: DEFAULT_SIDEBAR_ICONS,
|
||||||
|
disabled: []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
return state
|
|
||||||
},
|
},
|
||||||
'57': (state: RootState) => {
|
'57': (state: RootState) => {
|
||||||
if (state.shortcuts) {
|
try {
|
||||||
state.shortcuts.shortcuts.push({
|
if (state.shortcuts) {
|
||||||
key: 'mini_window',
|
state.shortcuts.shortcuts.push({
|
||||||
shortcut: [isMac ? 'Command' : 'Ctrl', 'E'],
|
key: 'mini_window',
|
||||||
editable: true,
|
shortcut: [isMac ? 'Command' : 'Ctrl', 'E'],
|
||||||
enabled: false,
|
editable: true,
|
||||||
system: true
|
enabled: false,
|
||||||
})
|
system: true
|
||||||
}
|
})
|
||||||
|
|
||||||
state.llm.providers.forEach((provider) => {
|
|
||||||
if (provider.id === 'qwenlm') {
|
|
||||||
provider.type = 'qwenlm'
|
|
||||||
}
|
}
|
||||||
})
|
|
||||||
|
|
||||||
state.settings.enableQuickAssistant = false
|
state.llm.providers.forEach((provider) => {
|
||||||
state.settings.clickTrayToShowQuickAssistant = true
|
if (provider.id === 'qwenlm') {
|
||||||
|
provider.type = 'qwenlm'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
return state
|
state.settings.enableQuickAssistant = false
|
||||||
|
state.settings.clickTrayToShowQuickAssistant = true
|
||||||
|
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'58': (state: RootState) => {
|
'58': (state: RootState) => {
|
||||||
if (state.shortcuts) {
|
try {
|
||||||
state.shortcuts.shortcuts.push(
|
if (state.shortcuts) {
|
||||||
{
|
state.shortcuts.shortcuts.push(
|
||||||
key: 'clear_topic',
|
{
|
||||||
shortcut: [isMac ? 'Command' : 'Ctrl', 'L'],
|
key: 'clear_topic',
|
||||||
editable: true,
|
shortcut: [isMac ? 'Command' : 'Ctrl', 'L'],
|
||||||
enabled: true,
|
editable: true,
|
||||||
system: false
|
enabled: true,
|
||||||
},
|
system: false
|
||||||
{
|
},
|
||||||
key: 'toggle_new_context',
|
{
|
||||||
shortcut: [isMac ? 'Command' : 'Ctrl', 'R'],
|
key: 'toggle_new_context',
|
||||||
editable: true,
|
shortcut: [isMac ? 'Command' : 'Ctrl', 'R'],
|
||||||
enabled: true,
|
editable: true,
|
||||||
system: false
|
enabled: true,
|
||||||
}
|
system: false
|
||||||
)
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
return state
|
|
||||||
},
|
},
|
||||||
'59': (state: RootState) => {
|
'59': (state: RootState) => {
|
||||||
if (state.minapps) {
|
try {
|
||||||
const flowith = DEFAULT_MIN_APPS.find((app) => app.id === 'flowith')
|
if (state.minapps) {
|
||||||
if (flowith) {
|
const flowith = DEFAULT_MIN_APPS.find((app) => app.id === 'flowith')
|
||||||
state.minapps.enabled.push(flowith)
|
if (flowith) {
|
||||||
|
state.minapps.enabled.push(flowith)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
return state
|
|
||||||
},
|
},
|
||||||
'60': (state: RootState) => {
|
'60': (state: RootState) => {
|
||||||
state.settings.multiModelMessageStyle = 'fold'
|
try {
|
||||||
return state
|
state.settings.multiModelMessageStyle = 'fold'
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'61': (state: RootState) => {
|
'61': (state: RootState) => {
|
||||||
state.llm.providers.forEach((provider) => {
|
try {
|
||||||
if (provider.id === 'qwenlm') {
|
state.llm.providers.forEach((provider) => {
|
||||||
provider.type = 'qwenlm'
|
if (provider.id === 'qwenlm') {
|
||||||
}
|
provider.type = 'qwenlm'
|
||||||
})
|
}
|
||||||
return state
|
})
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'62': (state: RootState) => {
|
'62': (state: RootState) => {
|
||||||
state.llm.providers.forEach((provider) => {
|
try {
|
||||||
if (provider.id === 'azure-openai') {
|
state.llm.providers.forEach((provider) => {
|
||||||
provider.type = 'azure-openai'
|
if (provider.id === 'azure-openai') {
|
||||||
}
|
provider.type = 'azure-openai'
|
||||||
})
|
}
|
||||||
state.settings.translateModelPrompt = TRANSLATE_PROMPT
|
})
|
||||||
return state
|
state.settings.translateModelPrompt = TRANSLATE_PROMPT
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'63': (state: RootState) => {
|
'63': (state: RootState) => {
|
||||||
if (state.minapps) {
|
try {
|
||||||
const mintop = DEFAULT_MIN_APPS.find((app) => app.id === '3mintop')
|
if (state.minapps) {
|
||||||
if (mintop) {
|
const mintop = DEFAULT_MIN_APPS.find((app) => app.id === '3mintop')
|
||||||
state.minapps.enabled.push(mintop)
|
if (mintop) {
|
||||||
|
state.minapps.enabled.push(mintop)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
return state
|
|
||||||
},
|
},
|
||||||
'64': (state: RootState) => {
|
'64': (state: RootState) => {
|
||||||
state.llm.providers = state.llm.providers.filter((provider) => provider.id !== 'qwenlm')
|
try {
|
||||||
addProvider(state, 'baidu-cloud')
|
state.llm.providers = state.llm.providers.filter((provider) => provider.id !== 'qwenlm')
|
||||||
return state
|
addProvider(state, 'baidu-cloud')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'65': (state: RootState) => {
|
'65': (state: RootState) => {
|
||||||
state.settings.targetLanguage = 'english'
|
try {
|
||||||
return state
|
state.settings.targetLanguage = 'english'
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'66': (state: RootState) => {
|
'66': (state: RootState) => {
|
||||||
addProvider(state, 'gitee-ai')
|
try {
|
||||||
addProvider(state, 'ppio')
|
addProvider(state, 'gitee-ai')
|
||||||
|
addProvider(state, 'ppio')
|
||||||
|
|
||||||
state.llm.providers = state.llm.providers.filter((provider) => provider.id !== 'graphrag-kylin-mountain')
|
state.llm.providers = state.llm.providers.filter((provider) => provider.id !== 'graphrag-kylin-mountain')
|
||||||
|
|
||||||
if (state.minapps) {
|
if (state.minapps) {
|
||||||
const aistudio = DEFAULT_MIN_APPS.find((app) => app.id === 'aistudio')
|
const aistudio = DEFAULT_MIN_APPS.find((app) => app.id === 'aistudio')
|
||||||
if (aistudio) {
|
if (aistudio) {
|
||||||
state.minapps.enabled.push(aistudio)
|
state.minapps.enabled.push(aistudio)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return state
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'67': (state: RootState) => {
|
'67': (state: RootState) => {
|
||||||
if (state.minapps) {
|
if (state.minapps) {
|
||||||
@ -606,208 +654,283 @@ const migrateConfig = {
|
|||||||
return state
|
return state
|
||||||
},
|
},
|
||||||
'68': (state: RootState) => {
|
'68': (state: RootState) => {
|
||||||
if (state.minapps) {
|
try {
|
||||||
const notebooklm = DEFAULT_MIN_APPS.find((app) => app.id === 'notebooklm')
|
if (state.minapps) {
|
||||||
if (notebooklm) {
|
const notebooklm = DEFAULT_MIN_APPS.find((app) => app.id === 'notebooklm')
|
||||||
state.minapps.enabled.push(notebooklm)
|
if (notebooklm) {
|
||||||
|
state.minapps.enabled.push(notebooklm)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addProvider(state, 'modelscope')
|
||||||
|
addProvider(state, 'lmstudio')
|
||||||
|
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
|
|
||||||
addProvider(state, 'modelscope')
|
|
||||||
addProvider(state, 'lmstudio')
|
|
||||||
|
|
||||||
return state
|
|
||||||
},
|
},
|
||||||
'69': (state: RootState) => {
|
'69': (state: RootState) => {
|
||||||
if (state.minapps) {
|
try {
|
||||||
const coze = DEFAULT_MIN_APPS.find((app) => app.id === 'coze')
|
if (state.minapps) {
|
||||||
if (coze) {
|
const coze = DEFAULT_MIN_APPS.find((app) => app.id === 'coze')
|
||||||
state.minapps.enabled.push(coze)
|
if (coze) {
|
||||||
|
state.minapps.enabled.push(coze)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
state.settings.gridColumns = 2
|
||||||
|
state.settings.gridPopoverTrigger = 'hover'
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
state.settings.gridColumns = 2
|
|
||||||
state.settings.gridPopoverTrigger = 'hover'
|
|
||||||
return state
|
|
||||||
},
|
},
|
||||||
'70': (state: RootState) => {
|
'70': (state: RootState) => {
|
||||||
state.llm.providers.forEach((provider) => {
|
try {
|
||||||
if (provider.id === 'dmxapi') {
|
state.llm.providers.forEach((provider) => {
|
||||||
provider.apiHost = 'https://www.dmxapi.cn'
|
if (provider.id === 'dmxapi') {
|
||||||
}
|
provider.apiHost = 'https://www.dmxapi.cn'
|
||||||
})
|
}
|
||||||
return state
|
})
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'71': (state: RootState) => {
|
'71': (state: RootState) => {
|
||||||
const appIds = ['dify', 'wpslingxi', 'lechat', 'abacus', 'lambdachat', 'baidu-ai-search']
|
try {
|
||||||
|
const appIds = ['dify', 'wpslingxi', 'lechat', 'abacus', 'lambdachat', 'baidu-ai-search']
|
||||||
|
|
||||||
if (state.minapps) {
|
if (state.minapps) {
|
||||||
appIds.forEach((id) => {
|
appIds.forEach((id) => {
|
||||||
const app = DEFAULT_MIN_APPS.find((app) => app.id === id)
|
const app = DEFAULT_MIN_APPS.find((app) => app.id === id)
|
||||||
if (app) {
|
if (app) {
|
||||||
state.minapps.enabled.push(app)
|
state.minapps.enabled.push(app)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
// remove zhihu-zhiada
|
// remove zhihu-zhiada
|
||||||
state.minapps.enabled = state.minapps.enabled.filter((app) => app.id !== 'zhihu-zhiada')
|
state.minapps.enabled = state.minapps.enabled.filter((app) => app.id !== 'zhihu-zhiada')
|
||||||
state.minapps.disabled = state.minapps.disabled.filter((app) => app.id !== 'zhihu-zhiada')
|
state.minapps.disabled = state.minapps.disabled.filter((app) => app.id !== 'zhihu-zhiada')
|
||||||
|
}
|
||||||
|
|
||||||
|
state.settings.thoughtAutoCollapse = true
|
||||||
|
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
|
|
||||||
state.settings.thoughtAutoCollapse = true
|
|
||||||
|
|
||||||
return state
|
|
||||||
},
|
},
|
||||||
'72': (state: RootState) => {
|
'72': (state: RootState) => {
|
||||||
if (state.minapps) {
|
try {
|
||||||
const monica = DEFAULT_MIN_APPS.find((app) => app.id === 'monica')
|
if (state.minapps) {
|
||||||
if (monica) {
|
const monica = DEFAULT_MIN_APPS.find((app) => app.id === 'monica')
|
||||||
state.minapps.enabled.push(monica)
|
if (monica) {
|
||||||
}
|
state.minapps.enabled.push(monica)
|
||||||
}
|
|
||||||
|
|
||||||
// remove duplicate lmstudio providers
|
|
||||||
const emptyLmStudioProviderIndex = state.llm.providers.findLastIndex(
|
|
||||||
(provider) => provider.id === 'lmstudio' && provider.models.length === 0
|
|
||||||
)
|
|
||||||
|
|
||||||
if (emptyLmStudioProviderIndex !== -1) {
|
|
||||||
state.llm.providers.splice(emptyLmStudioProviderIndex, 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
return state
|
|
||||||
},
|
|
||||||
'73': (state: RootState) => {
|
|
||||||
if (state.websearch) {
|
|
||||||
state.websearch.searchWithTime = true
|
|
||||||
state.websearch.maxResults = 5
|
|
||||||
state.websearch.excludeDomains = []
|
|
||||||
}
|
|
||||||
|
|
||||||
addProvider(state, 'lmstudio')
|
|
||||||
addProvider(state, 'o3')
|
|
||||||
moveProvider(state.llm.providers, 'o3', 2)
|
|
||||||
|
|
||||||
state.assistants.assistants.forEach((assistant) => {
|
|
||||||
const leadingEmoji = getLeadingEmoji(assistant.name)
|
|
||||||
if (leadingEmoji) {
|
|
||||||
assistant.emoji = leadingEmoji
|
|
||||||
assistant.name = assistant.name.replace(leadingEmoji, '').trim()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
state.agents.agents.forEach((agent) => {
|
|
||||||
const leadingEmoji = getLeadingEmoji(agent.name)
|
|
||||||
if (leadingEmoji) {
|
|
||||||
agent.emoji = leadingEmoji
|
|
||||||
agent.name = agent.name.replace(leadingEmoji, '').trim()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const defaultAssistantEmoji = getLeadingEmoji(state.assistants.defaultAssistant.name)
|
|
||||||
|
|
||||||
if (defaultAssistantEmoji) {
|
|
||||||
state.assistants.defaultAssistant.emoji = defaultAssistantEmoji
|
|
||||||
state.assistants.defaultAssistant.name = state.assistants.defaultAssistant.name
|
|
||||||
.replace(defaultAssistantEmoji, '')
|
|
||||||
.trim()
|
|
||||||
}
|
|
||||||
|
|
||||||
return state
|
|
||||||
},
|
|
||||||
'74': (state: RootState) => {
|
|
||||||
addProvider(state, 'xirang')
|
|
||||||
return state
|
|
||||||
},
|
|
||||||
'75': (state: RootState) => {
|
|
||||||
if (state.minapps) {
|
|
||||||
const you = DEFAULT_MIN_APPS.find((app) => app.id === 'you')
|
|
||||||
const cici = DEFAULT_MIN_APPS.find((app) => app.id === 'cici')
|
|
||||||
const zhihu = DEFAULT_MIN_APPS.find((app) => app.id === 'zhihu')
|
|
||||||
you && state.minapps.enabled.push(you)
|
|
||||||
cici && state.minapps.enabled.push(cici)
|
|
||||||
zhihu && state.minapps.enabled.push(zhihu)
|
|
||||||
}
|
|
||||||
return state
|
|
||||||
},
|
|
||||||
'76': (state: RootState) => {
|
|
||||||
addProvider(state, 'tencent-cloud-ti')
|
|
||||||
return state
|
|
||||||
},
|
|
||||||
'77': (state: RootState) => {
|
|
||||||
if (state.websearch) {
|
|
||||||
if (!state.websearch.providers.find((p) => p.id === 'searxng')) {
|
|
||||||
state.websearch.providers.push(
|
|
||||||
{
|
|
||||||
id: 'searxng',
|
|
||||||
name: 'Searxng',
|
|
||||||
apiHost: ''
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'exa',
|
|
||||||
name: 'Exa',
|
|
||||||
apiKey: ''
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
state.websearch.providers.forEach((p) => {
|
|
||||||
// @ts-ignore eslint-disable-next-line
|
|
||||||
delete p.enabled
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return state
|
|
||||||
},
|
|
||||||
'78': (state: RootState) => {
|
|
||||||
state.llm.providers = moveProvider(state.llm.providers, 'ppio', 9)
|
|
||||||
state.llm.providers = moveProvider(state.llm.providers, 'infini', 10)
|
|
||||||
removeMiniAppIconsFromState(state)
|
|
||||||
return state
|
|
||||||
},
|
|
||||||
'79': (state: RootState) => {
|
|
||||||
addProvider(state, 'gpustack')
|
|
||||||
return state
|
|
||||||
},
|
|
||||||
'80': (state: RootState) => {
|
|
||||||
addProvider(state, 'alayanew')
|
|
||||||
state.llm.providers = moveProvider(state.llm.providers, 'alayanew', 10)
|
|
||||||
return state
|
|
||||||
},
|
|
||||||
'81': (state: RootState) => {
|
|
||||||
addProvider(state, 'copilot')
|
|
||||||
return state
|
|
||||||
},
|
|
||||||
'82': (state: RootState) => {
|
|
||||||
const runtimeState = state.runtime as any
|
|
||||||
if (runtimeState?.webdavSync) {
|
|
||||||
state.backup = state.backup || {}
|
|
||||||
state.backup = {
|
|
||||||
...state.backup,
|
|
||||||
webdavSync: {
|
|
||||||
lastSyncTime: runtimeState.webdavSync.lastSyncTime || null,
|
|
||||||
syncing: runtimeState.webdavSync.syncing || false,
|
|
||||||
lastSyncError: runtimeState.webdavSync.lastSyncError || null
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delete runtimeState.webdavSync
|
|
||||||
|
// remove duplicate lmstudio providers
|
||||||
|
const emptyLmStudioProviderIndex = state.llm.providers.findLastIndex(
|
||||||
|
(provider) => provider.id === 'lmstudio' && provider.models.length === 0
|
||||||
|
)
|
||||||
|
|
||||||
|
if (emptyLmStudioProviderIndex !== -1) {
|
||||||
|
state.llm.providers.splice(emptyLmStudioProviderIndex, 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'73': (state: RootState) => {
|
||||||
|
try {
|
||||||
|
if (state.websearch) {
|
||||||
|
state.websearch.searchWithTime = true
|
||||||
|
state.websearch.maxResults = 5
|
||||||
|
state.websearch.excludeDomains = []
|
||||||
|
}
|
||||||
|
|
||||||
|
addProvider(state, 'lmstudio')
|
||||||
|
addProvider(state, 'o3')
|
||||||
|
moveProvider(state.llm.providers, 'o3', 2)
|
||||||
|
|
||||||
|
state.assistants.assistants.forEach((assistant) => {
|
||||||
|
const leadingEmoji = getLeadingEmoji(assistant.name)
|
||||||
|
if (leadingEmoji) {
|
||||||
|
assistant.emoji = leadingEmoji
|
||||||
|
assistant.name = assistant.name.replace(leadingEmoji, '').trim()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
state.agents.agents.forEach((agent) => {
|
||||||
|
const leadingEmoji = getLeadingEmoji(agent.name)
|
||||||
|
if (leadingEmoji) {
|
||||||
|
agent.emoji = leadingEmoji
|
||||||
|
agent.name = agent.name.replace(leadingEmoji, '').trim()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const defaultAssistantEmoji = getLeadingEmoji(state.assistants.defaultAssistant.name)
|
||||||
|
|
||||||
|
if (defaultAssistantEmoji) {
|
||||||
|
state.assistants.defaultAssistant.emoji = defaultAssistantEmoji
|
||||||
|
state.assistants.defaultAssistant.name = state.assistants.defaultAssistant.name
|
||||||
|
.replace(defaultAssistantEmoji, '')
|
||||||
|
.trim()
|
||||||
|
}
|
||||||
|
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'74': (state: RootState) => {
|
||||||
|
try {
|
||||||
|
addProvider(state, 'xirang')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'75': (state: RootState) => {
|
||||||
|
try {
|
||||||
|
if (state.minapps) {
|
||||||
|
const you = DEFAULT_MIN_APPS.find((app) => app.id === 'you')
|
||||||
|
const cici = DEFAULT_MIN_APPS.find((app) => app.id === 'cici')
|
||||||
|
const zhihu = DEFAULT_MIN_APPS.find((app) => app.id === 'zhihu')
|
||||||
|
you && state.minapps.enabled.push(you)
|
||||||
|
cici && state.minapps.enabled.push(cici)
|
||||||
|
zhihu && state.minapps.enabled.push(zhihu)
|
||||||
|
}
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'76': (state: RootState) => {
|
||||||
|
try {
|
||||||
|
addProvider(state, 'tencent-cloud-ti')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'77': (state: RootState) => {
|
||||||
|
try {
|
||||||
|
if (state.websearch) {
|
||||||
|
if (!state.websearch.providers.find((p) => p.id === 'searxng')) {
|
||||||
|
state.websearch.providers.push(
|
||||||
|
{
|
||||||
|
id: 'searxng',
|
||||||
|
name: 'Searxng',
|
||||||
|
apiHost: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'exa',
|
||||||
|
name: 'Exa',
|
||||||
|
apiKey: ''
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
state.websearch.providers.forEach((p) => {
|
||||||
|
// @ts-ignore eslint-disable-next-line
|
||||||
|
delete p.enabled
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'78': (state: RootState) => {
|
||||||
|
try {
|
||||||
|
state.llm.providers = moveProvider(state.llm.providers, 'ppio', 9)
|
||||||
|
state.llm.providers = moveProvider(state.llm.providers, 'infini', 10)
|
||||||
|
removeMiniAppIconsFromState(state)
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'79': (state: RootState) => {
|
||||||
|
try {
|
||||||
|
addProvider(state, 'gpustack')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'80': (state: RootState) => {
|
||||||
|
try {
|
||||||
|
addProvider(state, 'alayanew')
|
||||||
|
state.llm.providers = moveProvider(state.llm.providers, 'alayanew', 10)
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'81': (state: RootState) => {
|
||||||
|
try {
|
||||||
|
addProvider(state, 'copilot')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'82': (state: RootState) => {
|
||||||
|
try {
|
||||||
|
const runtimeState = state.runtime as any
|
||||||
|
if (runtimeState?.webdavSync) {
|
||||||
|
state.backup = state.backup || {}
|
||||||
|
state.backup = {
|
||||||
|
...state.backup,
|
||||||
|
webdavSync: {
|
||||||
|
lastSyncTime: runtimeState.webdavSync.lastSyncTime || null,
|
||||||
|
syncing: runtimeState.webdavSync.syncing || false,
|
||||||
|
lastSyncError: runtimeState.webdavSync.lastSyncError || null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delete runtimeState.webdavSync
|
||||||
|
}
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
return state
|
||||||
}
|
}
|
||||||
return state
|
|
||||||
},
|
},
|
||||||
'83': (state: RootState) => {
|
'83': (state: RootState) => {
|
||||||
state.settings.messageNavigation = 'buttons'
|
try {
|
||||||
state.settings.launchOnBoot = false
|
state.settings.messageNavigation = 'buttons'
|
||||||
state.settings.launchToTray = false
|
state.settings.launchOnBoot = false
|
||||||
state.settings.trayOnClose = true
|
state.settings.launchToTray = false
|
||||||
return state
|
state.settings.trayOnClose = true
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error)
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'84': (state: RootState) => {
|
'84': (state: RootState) => {
|
||||||
addProvider(state, 'voyageai')
|
try {
|
||||||
return state
|
addProvider(state, 'voyageai')
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error)
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'85': (state: RootState) => {
|
'85': (state: RootState) => {
|
||||||
// @ts-ignore eslint-disable-next-line
|
try {
|
||||||
state.settings.autoCheckUpdate = !state.settings.manualUpdateCheck
|
// @ts-ignore eslint-disable-next-line
|
||||||
// @ts-ignore eslint-disable-next-line
|
state.settings.autoCheckUpdate = !state.settings.manualUpdateCheck
|
||||||
delete state.settings.manualUpdateCheck
|
// @ts-ignore eslint-disable-next-line
|
||||||
state.settings.gridPopoverTrigger = 'click'
|
delete state.settings.manualUpdateCheck
|
||||||
return state
|
state.settings.gridPopoverTrigger = 'click'
|
||||||
|
return state
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error)
|
||||||
|
return state
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'86': (state: RootState) => {
|
'86': (state: RootState) => {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user