mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-26 03:31:24 +08:00
refactor(agents): rename agents to presets and add new agents array
The old 'agents' array was actually storing presets, so it's renamed for clarity. Added new 'agentsNew' array for actual agent entities in preparation for autonomous agent feature.
This commit is contained in:
parent
6b0a1a42ad
commit
3e04c9493f
@ -1,5 +1,11 @@
|
||||
import { useAppDispatch, useAppSelector } from '@renderer/store'
|
||||
import { addAgent, removeAgent, updateAgent, updateAgents, updateAgentSettings } from '@renderer/store/agents'
|
||||
import {
|
||||
addAssistantPreset,
|
||||
removeAssistantPreset,
|
||||
setAssistantPresets,
|
||||
updateAssistantPreset,
|
||||
updateAssistantPresetSettings
|
||||
} from '@renderer/store/agents'
|
||||
import { AssistantPreset, AssistantSettings } from '@renderer/types'
|
||||
|
||||
export function useAgents() {
|
||||
@ -8,9 +14,9 @@ export function useAgents() {
|
||||
|
||||
return {
|
||||
agents,
|
||||
updateAgents: (agents: AssistantPreset[]) => dispatch(updateAgents(agents)),
|
||||
addAgent: (agent: AssistantPreset) => dispatch(addAgent(agent)),
|
||||
removeAgent: (id: string) => dispatch(removeAgent({ id }))
|
||||
setAgents: (agents: AssistantPreset[]) => dispatch(setAssistantPresets(agents)),
|
||||
addAgent: (agent: AssistantPreset) => dispatch(addAssistantPreset(agent)),
|
||||
removeAgent: (id: string) => dispatch(removeAssistantPreset({ id }))
|
||||
}
|
||||
}
|
||||
|
||||
@ -20,9 +26,9 @@ export function useAgent(id: string) {
|
||||
|
||||
return {
|
||||
agent,
|
||||
updateAgent: (agent: AssistantPreset) => dispatch(updateAgent(agent)),
|
||||
updateAgent: (agent: AssistantPreset) => dispatch(updateAssistantPreset(agent)),
|
||||
updateAgentSettings: (settings: Partial<AssistantSettings>) => {
|
||||
dispatch(updateAgentSettings({ assistantId: agent.id, settings }))
|
||||
dispatch(updateAssistantPresetSettings({ assistantId: agent.id, settings }))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -352,7 +352,7 @@ export const useKnowledgeBases = () => {
|
||||
const dispatch = useDispatch()
|
||||
const bases = useSelector((state: RootState) => state.knowledge.bases)
|
||||
const { assistants, updateAssistants } = useAssistants()
|
||||
const { agents, updateAgents } = useAgents()
|
||||
const { agents, setAgents } = useAgents()
|
||||
|
||||
const addKnowledgeBase = (base: KnowledgeBase) => {
|
||||
dispatch(addBase(base))
|
||||
@ -390,7 +390,7 @@ export const useKnowledgeBases = () => {
|
||||
})
|
||||
|
||||
updateAssistants(_assistants)
|
||||
updateAgents(_agents)
|
||||
setAgents(_agents)
|
||||
}
|
||||
|
||||
const updateKnowledgeBases = (bases: KnowledgeBase[]) => {
|
||||
|
||||
@ -11,7 +11,7 @@ import styled from 'styled-components'
|
||||
const PopupContainer: React.FC = () => {
|
||||
const [open, setOpen] = useState(true)
|
||||
const { t } = useTranslation()
|
||||
const { agents, updateAgents } = useAgents()
|
||||
const { agents, setAgents } = useAgents()
|
||||
|
||||
const onOk = () => {
|
||||
setOpen(false)
|
||||
@ -43,7 +43,7 @@ const PopupContainer: React.FC = () => {
|
||||
centered>
|
||||
<Container>
|
||||
{agents.length > 0 && (
|
||||
<DraggableList list={agents} onUpdate={updateAgents}>
|
||||
<DraggableList list={agents} onUpdate={setAgents}>
|
||||
{(item) => (
|
||||
<AgentItem>
|
||||
<Box mr={8}>
|
||||
|
||||
@ -1,33 +1,38 @@
|
||||
import { createSlice, PayloadAction } from '@reduxjs/toolkit'
|
||||
import { DEFAULT_CONTEXTCOUNT, DEFAULT_TEMPERATURE } from '@renderer/config/constant'
|
||||
import { AssistantPreset, AssistantSettings } from '@renderer/types'
|
||||
import { AgentEntity, AssistantPreset, AssistantSettings } from '@renderer/types'
|
||||
|
||||
export interface AgentsState {
|
||||
/** @deprecated They are actually assistant presets. */
|
||||
/** They are actually assistant presets.
|
||||
* They should not be in this slice. However, since redux will be removed
|
||||
* in the future, I just don't care where should they are. */
|
||||
agents: AssistantPreset[]
|
||||
/** For new autonomous agent feature. They are actual agent entities. */
|
||||
agentsNew: AgentEntity[]
|
||||
}
|
||||
|
||||
const initialState: AgentsState = {
|
||||
agents: []
|
||||
agents: [],
|
||||
agentsNew: []
|
||||
}
|
||||
|
||||
const assistantsSlice = createSlice({
|
||||
name: 'agents',
|
||||
initialState,
|
||||
reducers: {
|
||||
updateAgents: (state, action: PayloadAction<AssistantPreset[]>) => {
|
||||
setAssistantPresets: (state, action: PayloadAction<AssistantPreset[]>) => {
|
||||
state.agents = action.payload
|
||||
},
|
||||
addAgent: (state, action: PayloadAction<AssistantPreset>) => {
|
||||
addAssistantPreset: (state, action: PayloadAction<AssistantPreset>) => {
|
||||
state.agents.push(action.payload)
|
||||
},
|
||||
removeAgent: (state, action: PayloadAction<{ id: string }>) => {
|
||||
removeAssistantPreset: (state, action: PayloadAction<{ id: string }>) => {
|
||||
state.agents = state.agents.filter((c) => c.id !== action.payload.id)
|
||||
},
|
||||
updateAgent: (state, action: PayloadAction<AssistantPreset>) => {
|
||||
updateAssistantPreset: (state, action: PayloadAction<AssistantPreset>) => {
|
||||
state.agents = state.agents.map((c) => (c.id === action.payload.id ? action.payload : c))
|
||||
},
|
||||
updateAgentSettings: (
|
||||
updateAssistantPresetSettings: (
|
||||
state,
|
||||
action: PayloadAction<{ assistantId: string; settings: Partial<AssistantSettings> }>
|
||||
) => {
|
||||
@ -52,6 +57,12 @@ const assistantsSlice = createSlice({
|
||||
}
|
||||
})
|
||||
|
||||
export const { updateAgents, addAgent, removeAgent, updateAgent, updateAgentSettings } = assistantsSlice.actions
|
||||
export const {
|
||||
setAssistantPresets,
|
||||
addAssistantPreset,
|
||||
removeAssistantPreset,
|
||||
updateAssistantPreset,
|
||||
updateAssistantPresetSettings
|
||||
} = assistantsSlice.actions
|
||||
|
||||
export default assistantsSlice.reducer
|
||||
|
||||
Loading…
Reference in New Issue
Block a user