| 783 | // ===== Store 类型 ===== |
| 784 | |
| 785 | interface AppState { |
| 786 | // 模式 |
| 787 | appMode: AppMode |
| 788 | setAppMode: (mode: AppMode) => void |
| 789 | |
| 790 | // 设置 |
| 791 | settings: AppSettings |
| 792 | setSettings: (s: Partial<AppSettings>) => void |
| 793 | dismissedCodexCliPrompts: string[] |
| 794 | dismissCodexCliPrompt: (key: string) => void |
| 795 | |
| 796 | // 输入 |
| 797 | prompt: string |
| 798 | setPrompt: (p: string) => void |
| 799 | inputImages: InputImage[] |
| 800 | addInputImage: (img: InputImage) => void |
| 801 | replaceInputImage: (idx: number, img: InputImage) => void |
| 802 | removeInputImage: (idx: number) => void |
| 803 | clearInputImages: () => void |
| 804 | setInputImages: (imgs: InputImage[], options?: { equivalentImageIds?: Record<string, string> }) => void |
| 805 | moveInputImage: (fromIdx: number, toIdx: number) => void |
| 806 | maskDraft: MaskDraft | null |
| 807 | setMaskDraft: (draft: MaskDraft | null) => void |
| 808 | clearMaskDraft: () => void |
| 809 | maskEditorImageId: string | null |
| 810 | setMaskEditorImageId: (id: string | null) => void |
| 811 | galleryInputDraft: AgentInputDraft | null |
| 812 | |
| 813 | // 参数 |
| 814 | params: TaskParams |
| 815 | setParams: (p: Partial<TaskParams>) => void |
| 816 | reusedTaskApiProfileId: string | null |
| 817 | reusedTaskApiProfileName: string | null |
| 818 | reusedTaskApiProfileMissing: boolean |
| 819 | setReusedTaskApiProfile: (profileId: string | null, missing?: boolean, profileName?: string | null) => void |
| 820 | |
| 821 | // Agent |
| 822 | agentConversations: AgentConversation[] |
| 823 | agentConversationsLoaded: boolean |
| 824 | activeAgentConversationId: string | null |
| 825 | agentInputDrafts: Record<string, AgentInputDraft> |
| 826 | agentSidebarCollapsed: boolean |
| 827 | agentAssetTab: 'references' | 'outputs' |
| 828 | agentAssetPanelCollapsed: boolean |
| 829 | agentMobileHeaderVisible: boolean |
| 830 | agentEditingRoundId: string | null |
| 831 | agentEditingConversationId: string | null |
| 832 | agentGeneratingTitleIds: Record<string, true> |
| 833 | createAgentConversation: () => string |
| 834 | setActiveAgentConversationId: (id: string | null) => void |
| 835 | setActiveAgentRoundId: (conversationId: string, roundId: string | null) => void |
| 836 | renameAgentConversation: (id: string, title: string) => void |
| 837 | deleteAgentConversation: (id: string) => void |
| 838 | setAgentSidebarCollapsed: (collapsed: boolean) => void |
| 839 | setAgentAssetTab: (tab: 'references' | 'outputs') => void |
| 840 | setAgentAssetPanelCollapsed: (collapsed: boolean) => void |
| 841 | setAgentMobileHeaderVisible: (visible: boolean) => void |
| 842 | setAgentEditingRoundId: (id: string | null) => void |
nothing calls this directly
no outgoing calls
no test coverage detected