- 创建 5 个领域 store:runtimeStore, marketStore, portfolioStore, agentStore, uiStore - 更新 CLAUDE.md 记录架构改进 - Zustand 已安装但 stores 尚未在 App.jsx 中使用(渐进迁移) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
59 lines
2.0 KiB
JavaScript
59 lines
2.0 KiB
JavaScript
import { create } from 'zustand';
|
|
|
|
/**
|
|
* Agent Store - Agent skills, profiles, workspaces
|
|
*/
|
|
export const useAgentStore = create((set) => ({
|
|
// Selected agent for skill/workspace editing
|
|
selectedSkillAgentId: null,
|
|
setSelectedSkillAgentId: (selectedSkillAgentId) => set({ selectedSkillAgentId }),
|
|
|
|
// Agent profiles
|
|
agentProfilesByAgent: {},
|
|
setAgentProfilesByAgent: (agentProfilesByAgent) => set({ agentProfilesByAgent }),
|
|
|
|
// Agent skills
|
|
agentSkillsByAgent: {},
|
|
setAgentSkillsByAgent: (agentSkillsByAgent) => set({ agentSkillsByAgent }),
|
|
|
|
// Skill details
|
|
skillDetailsByName: {},
|
|
setSkillDetailsByName: (skillDetailsByName) => set({ skillDetailsByName }),
|
|
|
|
// Local skill drafts
|
|
localSkillDraftsByKey: {},
|
|
setLocalSkillDraftsByKey: (localSkillDraftsByKey) => set({ localSkillDraftsByKey }),
|
|
|
|
// Loading states
|
|
isAgentSkillsLoading: false,
|
|
setIsAgentSkillsLoading: (isAgentSkillsLoading) => set({ isAgentSkillsLoading }),
|
|
|
|
skillDetailLoadingKey: null,
|
|
setSkillDetailLoadingKey: (skillDetailLoadingKey) => set({ skillDetailLoadingKey }),
|
|
|
|
agentSkillsSavingKey: null,
|
|
setAgentSkillsSavingKey: (agentSkillsSavingKey) => set({ agentSkillsSavingKey }),
|
|
|
|
agentSkillsFeedback: null,
|
|
setAgentSkillsFeedback: (agentSkillsFeedback) => set({ agentSkillsFeedback }),
|
|
|
|
// Workspace files
|
|
selectedWorkspaceFile: null,
|
|
setSelectedWorkspaceFile: (selectedWorkspaceFile) => set({ selectedWorkspaceFile }),
|
|
|
|
workspaceFilesByAgent: {},
|
|
setWorkspaceFilesByAgent: (workspaceFilesByAgent) => set({ workspaceFilesByAgent }),
|
|
|
|
workspaceDraftContent: '',
|
|
setWorkspaceDraftContent: (workspaceDraftContent) => set({ workspaceDraftContent }),
|
|
|
|
isWorkspaceFileLoading: false,
|
|
setIsWorkspaceFileLoading: (isWorkspaceFileLoading) => set({ isWorkspaceFileLoading }),
|
|
|
|
workspaceFileSavingKey: null,
|
|
setWorkspaceFileSavingKey: (workspaceFileSavingKey) => set({ workspaceFileSavingKey }),
|
|
|
|
workspaceFileFeedback: null,
|
|
setWorkspaceFileFeedback: (workspaceFileFeedback) => set({ workspaceFileFeedback }),
|
|
}));
|