chore: initialize qiming workspace repository
This commit is contained in:
130
qimingclaw/crates/agent-electron-client/README.md
Normal file
130
qimingclaw/crates/agent-electron-client/README.md
Normal file
@@ -0,0 +1,130 @@
|
||||
# QimingClaw
|
||||
|
||||
Electron-based desktop client for Qiming Agent, inspired by LobsterAI architecture.
|
||||
|
||||
## Features
|
||||
|
||||
- **AI Chat** - Claude models integration via Anthropic API
|
||||
- **Skills System** - Extensible skill plugins with permission control
|
||||
- **Permission Approval** - Tool execution requires user approval
|
||||
- **MCP Servers** - Dynamic MCP server management with China mirrors
|
||||
- **Local SQLite storage** - Persistent sessions and messages
|
||||
- **Process isolation** - Secure IPC communication
|
||||
- **System tray** - Background operation
|
||||
- **Application menu** - Native menu bar
|
||||
- **Settings** - Configure API keys and model preferences
|
||||
- **Session management** - Create, switch, delete chat sessions
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Node.js >= 20
|
||||
- npm or pnpm
|
||||
|
||||
### Install & Run
|
||||
|
||||
```bash
|
||||
cd crates/agent-electron-client
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### Build for Production
|
||||
|
||||
```bash
|
||||
npm run dist
|
||||
```
|
||||
|
||||
### 发布与 OSS 同步
|
||||
|
||||
将指定 tag 的 Electron 构建产物同步到阿里云 OSS(用于自动更新等)时,可在本 crate 目录下执行:
|
||||
|
||||
```bash
|
||||
./scripts/sync-oss.sh electron-v0.8.0
|
||||
```
|
||||
|
||||
或从仓库根目录:
|
||||
|
||||
```bash
|
||||
./crates/agent-electron-client/scripts/sync-oss.sh electron-v0.8.0
|
||||
```
|
||||
|
||||
依赖:`gh`(GitHub CLI)、`jq`,且需已 `gh auth login`。脚本会触发 `release-electron.yml` workflow 并轮询直至完成。
|
||||
|
||||
## Skills & Commands
|
||||
|
||||
| Command | Description | Requires Permission |
|
||||
|---------|-------------|-------------------|
|
||||
| `!command` | Run shell command | ✅ |
|
||||
| `cat:path` | Read file | ✅ |
|
||||
| `fetch:url` | Network request | ✅ |
|
||||
| `search:query` | Web search | ❌ |
|
||||
| `2+2*3` | Calculator | ❌ |
|
||||
|
||||
## MCP Servers
|
||||
|
||||
### Supported MCP Servers
|
||||
- Filesystem - File system access
|
||||
- Brave Search - Web search
|
||||
- GitHub - GitHub API
|
||||
- SQLite - Database queries
|
||||
- Puppeteer - Browser automation
|
||||
- Fetch - HTTP requests
|
||||
|
||||
### NPM Mirrors (China)
|
||||
- 🇺🇸 npmjs.org (default)
|
||||
- 🇨🇳 淘宝镜像 (npmmirror)
|
||||
- 🇨🇳 腾讯镜像
|
||||
- 🇨🇳 阿里云镜像
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
src/
|
||||
├── main/ # Electron main process
|
||||
│ ├── main.ts # Main entry
|
||||
│ ├── preload.ts # Context bridge
|
||||
│ ├── ipc/ # IPC handlers
|
||||
│ └── services/ # Main process services
|
||||
│ ├── engines/ # Agent engines
|
||||
│ ├── packages/ # Package management (MCP)
|
||||
│ └── system/ # System utilities
|
||||
├── renderer/ # Renderer process (React)
|
||||
│ ├── main.tsx # React entry
|
||||
│ ├── App.tsx # Main app
|
||||
│ ├── components/ # React components
|
||||
│ └── services/ # Renderer services
|
||||
│ ├── ai.ts # Anthropic Claude API
|
||||
│ ├── skills.ts # Skill system
|
||||
│ ├── mcp.ts # MCP management
|
||||
│ └── permissions.ts # Permission manager
|
||||
└── shared/ # Shared code
|
||||
├── constants.ts # Shared constants
|
||||
└── types/ # TypeScript definitions
|
||||
```
|
||||
|
||||
## IPC Channels
|
||||
|
||||
### Session
|
||||
- `session:list`, `session:create`, `session:delete`
|
||||
|
||||
### Message
|
||||
- `message:list`, `message:add`
|
||||
|
||||
### Settings
|
||||
- `settings:get`, `settings:set`
|
||||
|
||||
### MCP
|
||||
- `mcp:install`, `mcp:uninstall`, `mcp:start`, `mcp:stop`
|
||||
|
||||
## Configuration
|
||||
|
||||
1. Open Settings (⚙️ or Cmd+,)
|
||||
2. Enter your Anthropic API Key
|
||||
3. Select default model
|
||||
4. Adjust max tokens and temperature
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
Reference in New Issue
Block a user