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
+82
View File
@@ -0,0 +1,82 @@
{
"name": "metona-ai-desktop",
"version": "0.1.0",
"description": "MetonaAI Desktop — 生产级通用 AI Agent 智能体桌面应用",
"main": "dist-electron/main/main.js",
"author": "Metona Team",
"license": "MIT",
"type": "module",
"scripts": {
"dev": "electron-vite dev",
"build": "electron-vite build && electron-builder",
"build:renderer": "electron-vite build --rendererOnly",
"build:electron": "tsc -p tsconfig.node.json",
"preview": "vite preview",
"lint": "eslint . --ext .ts,.tsx",
"lint:fix": "eslint . --ext .ts,.tsx --fix",
"format": "prettier --write \"src/**/*.{ts,tsx,css}\" \"electron/**/*.ts\"",
"typecheck": "tsc --noEmit",
"typecheck:node": "tsc -p tsconfig.node.json --noEmit",
"test": "vitest run",
"test:watch": "vitest",
"test:e2e": "playwright test"
},
"dependencies": {
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.1",
"@modelcontextprotocol/sdk": "^1.12.1",
"@mui/icons-material": "^9.1.1",
"@mui/material": "^9.1.2",
"better-sqlite3": "^11.9.1",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"date-fns": "^4.1.0",
"electron-log": "^5.3.3",
"electron-store": "^10.0.1",
"fuse.js": "^7.1.0",
"lru-cache": "^11.1.0",
"metona-toast": "^2.0.0",
"nanoid": "^5.1.5",
"radix-ui": "^1.6.0",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-markdown": "^10.1.0",
"react-router-dom": "^7.6.1",
"rehype-highlight": "^7.0.2",
"rehype-raw": "^7.0.0",
"remark-gfm": "^4.0.1",
"sql.js": "^1.12.0",
"tailwind-merge": "^3.6.0",
"zod": "^3.25.67",
"zustand": "^5.0.5"
},
"devDependencies": {
"@electron-toolkit/preload": "^3.0.1",
"@electron-toolkit/utils": "^4.0.0",
"@playwright/test": "^1.52.0",
"@tailwindcss/typography": "^0.5.16",
"@tailwindcss/vite": "^4.1.7",
"@types/better-sqlite3": "^7.6.13",
"@types/node": "^22.15.29",
"@types/react": "^19.1.6",
"@types/react-dom": "^19.1.6",
"@vitejs/plugin-react": "^4.5.2",
"autoprefixer": "^10.4.21",
"electron": "^35.5.1",
"electron-builder": "^26.0.12",
"electron-vite": "^3.1.0",
"eslint": "^9.28.0",
"lucide-react": "^0.511.0",
"postcss": "^8.5.4",
"prettier": "^3.5.3",
"tailwindcss": "^4.1.7",
"typescript": "^5.8.3",
"vite": "^6.3.5",
"vitest": "^3.2.1"
},
"allowScripts": {
"electron@35.7.5": true,
"better-sqlite3@11.10.0": true,
"esbuild@0.25.12": true
}
}