feat: MetonaAI Desktop 初始项目

- Electron + React + TypeScript 架构
- 三栏布局: Sidebar | ChatPanel | DetailPanel
- 9 个内置工具 (文件系统/网络/记忆/命令)
- SQLite 持久化 (better-sqlite3)
- MUI 暗色/亮色主题系统
- Agent Loop ReAct 状态机引擎
- DeepSeek / Agnes AI / Ollama Provider 适配器
- MCP 协议集成
- 系统托盘 + 全局快捷键
- Tailwind CSS v4 + Tailwind Merge
- 修复: Sidebar 缺失 TextField 导入导致黑屏
This commit is contained in:
thzxx
2026-06-27 21:33:27 +08:00
commit 1d185db6b3
109 changed files with 39155 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
/**
* Zustand Store — UI 状态管理
*
* 主题、设置弹窗、引导向导等全局 UI 状态。
*/
import { create } from 'zustand';
export type ThemeMode = 'dark' | 'light' | 'auto';
interface UIState {
// 主题
theme: ThemeMode;
resolvedTheme: 'dark' | 'light';
// 弹窗
settingsOpen: boolean;
onboardingCompleted: boolean;
// Actions
setTheme: (theme: ThemeMode) => void;
setResolvedTheme: (theme: 'dark' | 'light') => void;
openSettings: () => void;
closeSettings: () => void;
setOnboardingCompleted: (completed: boolean) => void;
}
export const useUIStore = create<UIState>((set) => ({
theme: 'auto',
resolvedTheme: 'dark',
settingsOpen: false,
onboardingCompleted: false,
setTheme: (theme) => set({ theme }),
setResolvedTheme: (resolvedTheme) => set({ resolvedTheme }),
openSettings: () => set({ settingsOpen: true }),
closeSettings: () => set({ settingsOpen: false }),
setOnboardingCompleted: (completed) => set({ onboardingCompleted: completed }),
}));