diff --git a/src/renderer/src/pages/home/Inputbar/InputbarTools.tsx b/src/renderer/src/pages/home/Inputbar/InputbarTools.tsx index 017e2491a..fb1495c91 100644 --- a/src/renderer/src/pages/home/Inputbar/InputbarTools.tsx +++ b/src/renderer/src/pages/home/Inputbar/InputbarTools.tsx @@ -19,6 +19,7 @@ import { getModelUniqId } from '@renderer/services/ModelService' import { useAppDispatch, useAppSelector } from '@renderer/store' import { setIsCollapsed, setToolOrder } from '@renderer/store/inputTools' import { FileType, FileTypes, KnowledgeBase, Model } from '@renderer/types' +import { InputBarToolType } from '@renderer/types/chat' import { classNames } from '@renderer/utils' import { isPromptToolUse, isSupportedToolUse } from '@renderer/utils/mcp-tools' import { Divider, Dropdown, Tooltip } from 'antd' @@ -85,7 +86,7 @@ export interface InputbarToolsProps { } interface ToolButtonConfig { - key: string + key: InputBarToolType component: ReactNode condition?: boolean visible?: boolean @@ -184,7 +185,7 @@ const InputbarTools = ({ const clearTopicShortcut = useShortcutDisplay('clear_topic') const toggleToolVisibility = useCallback( - (toolKey: string, isVisible: boolean | undefined) => { + (toolKey: InputBarToolType, isVisible: boolean | undefined) => { const newToolOrder = { visible: [...toolOrder.visible], hidden: [...toolOrder.hidden] diff --git a/src/renderer/src/store/assistants.ts b/src/renderer/src/store/assistants.ts index 575e44859..98454097c 100644 --- a/src/renderer/src/store/assistants.ts +++ b/src/renderer/src/store/assistants.ts @@ -1,7 +1,7 @@ import { createSelector, createSlice, PayloadAction } from '@reduxjs/toolkit' import { DEFAULT_CONTEXTCOUNT, DEFAULT_TEMPERATURE } from '@renderer/config/constant' import { TopicManager } from '@renderer/hooks/useTopic' -import { getDefaultAssistant, getDefaultTopic } from '@renderer/services/AssistantService' +import { DEFAULT_ASSISTANT_SETTINGS, getDefaultAssistant, getDefaultTopic } from '@renderer/services/AssistantService' import { Assistant, AssistantPreset, AssistantSettings, Model, Topic } from '@renderer/types' import { isEmpty, uniqBy } from 'lodash' @@ -215,13 +215,7 @@ const assistantsSlice = createSlice({ if (agent.id === action.payload.assistantId) { for (const key in settings) { if (!agent.settings) { - agent.settings = { - temperature: DEFAULT_TEMPERATURE, - contextCount: DEFAULT_CONTEXTCOUNT, - enableMaxTokens: false, - maxTokens: 0, - streamOutput: true - } + agent.settings = DEFAULT_ASSISTANT_SETTINGS } agent.settings[key] = settings[key] } diff --git a/src/renderer/src/store/inputTools.ts b/src/renderer/src/store/inputTools.ts index be6ef212c..4906bb58c 100644 --- a/src/renderer/src/store/inputTools.ts +++ b/src/renderer/src/store/inputTools.ts @@ -1,8 +1,9 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import { InputBarToolType } from '@renderer/types/chat' -export type ToolOrder = { - visible: string[] - hidden: string[] +type ToolOrder = { + visible: InputBarToolType[] + hidden: InputBarToolType[] } export const DEFAULT_TOOL_ORDER: ToolOrder = { @@ -20,7 +21,7 @@ export const DEFAULT_TOOL_ORDER: ToolOrder = { hidden: ['quick_phrases', 'clear_topic', 'toggle_expand', 'new_context'] } -export type InputToolsState = { +type InputToolsState = { toolOrder: ToolOrder isCollapsed: boolean } diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index 0b41970cb..b0b4e36a8 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -2708,6 +2708,13 @@ const migrateConfig = { if (state.assistants.presets === undefined) { state.assistants.presets = [] } + state.assistants.presets.forEach((preset) => { + if (!preset.settings) { + preset.settings = DEFAULT_ASSISTANT_SETTINGS + } else if (!preset.settings.toolUseMode) { + preset.settings.toolUseMode = DEFAULT_ASSISTANT_SETTINGS.toolUseMode + } + }) return state } catch (error) { logger.error('migrate 166 error', error as Error) diff --git a/src/renderer/src/types/chat.ts b/src/renderer/src/types/chat.ts index 2961b8d06..043674c31 100644 --- a/src/renderer/src/types/chat.ts +++ b/src/renderer/src/types/chat.ts @@ -1 +1,16 @@ export type Tab = 'assistants' | 'topic' | 'settings' + +export type InputBarToolType = + | 'new_topic' + | 'attachment' + | 'thinking' + | 'web_search' + | 'url_context' + | 'knowledge_base' + | 'mcp_tools' + | 'generate_image' + | 'mention_models' + | 'quick_phrases' + | 'clear_topic' + | 'toggle_expand' + | 'new_context'