feat(core): initialize project skeleton with Electron + React + TypeScript

Set up the complete project foundation for ClawX, a graphical AI assistant:

- Electron main process with IPC handlers, menu, tray, and gateway management
- React renderer with routing, layout components, and page scaffolding
- Zustand state management for gateway, settings, channels, skills, chat, and cron
- shadcn/ui components with Tailwind CSS and CSS variable theming
- Build tooling with Vite, electron-builder, and TypeScript configuration
- Testing setup with Vitest and Playwright
- Development configurations (ESLint, Prettier, gitignore, env example)
This commit is contained in:
Haze
2026-02-05 23:09:17 +08:00
Unverified
parent 9442e5f77a
commit b8ab0208d0
71 changed files with 14086 additions and 3 deletions

6
resources/icons/.gitkeep Normal file
View File

@@ -0,0 +1,6 @@
# Placeholder for icon files
# Add the following icons:
# - icon.icns (macOS)
# - icon.ico (Windows)
# - icon.png (Linux)
# - tray-icon.png (System tray)

View File

@@ -0,0 +1,101 @@
{
"bundles": [
{
"id": "productivity",
"name": "Productivity",
"nameZh": "效率办公",
"description": "Calendar, reminders, notes, email management",
"descriptionZh": "日历、提醒、笔记、邮件管理",
"icon": "📋",
"skills": [
"apple-reminders",
"apple-notes",
"himalaya",
"notion",
"obsidian",
"trello"
],
"recommended": true
},
{
"id": "developer",
"name": "Developer Tools",
"nameZh": "开发者工具",
"description": "GitHub, coding assistant, terminal management",
"descriptionZh": "GitHub、代码助手、终端管理",
"icon": "💻",
"skills": [
"github",
"coding-agent",
"tmux"
],
"recommended": true
},
{
"id": "smart-home",
"name": "Smart Home",
"nameZh": "智能家居",
"description": "Lights, music, device control",
"descriptionZh": "灯光、音乐、设备控制",
"icon": "🏠",
"skills": [
"openhue",
"sonoscli",
"spotify-player"
]
},
{
"id": "media",
"name": "Media & Creative",
"nameZh": "多媒体创作",
"description": "Image generation, video processing, audio transcription",
"descriptionZh": "图片生成、视频处理、音频转写",
"icon": "🎨",
"skills": [
"openai-image-gen",
"nano-banana-pro",
"video-frames",
"openai-whisper-api"
]
},
{
"id": "communication",
"name": "Communication",
"nameZh": "通讯增强",
"description": "Messaging, voice calls, notifications",
"descriptionZh": "消息管理、语音通话、通知",
"icon": "💬",
"skills": [
"discord",
"slack",
"voice-call",
"imsg"
]
},
{
"id": "security",
"name": "Security & Privacy",
"nameZh": "安全隐私",
"description": "Password management, secrets",
"descriptionZh": "密码管理、密钥存储",
"icon": "🔐",
"skills": [
"1password"
]
},
{
"id": "information",
"name": "Information",
"nameZh": "信息获取",
"description": "Weather, news, web browsing",
"descriptionZh": "天气、新闻、网页浏览",
"icon": "🌐",
"skills": [
"weather",
"blogwatcher",
"web-browse",
"summarize"
]
}
]
}