mirror of
https://github.com/qingchencloud/clawpanel.git
synced 2026-05-25 10:20:06 +08:00
90 lines
3.1 KiB
Markdown
90 lines
3.1 KiB
Markdown
# ClawPanel v0.9.0 规划
|
||
|
||
## 命令执行权限管理 (Issue #55)
|
||
|
||
### 需求
|
||
AI 助手执行终端命令时,允许用户配置白名单/黑名单规则,控制哪些命令可以执行。
|
||
|
||
### 规则类型
|
||
|
||
| 类型 | 示例 | 说明 |
|
||
|------|------|------|
|
||
| 精确匹配 | `go run main.go` | 只允许/禁止这一条完整命令 |
|
||
| 前缀通配 | `go *` | 允许/禁止所有 go 开头的命令 |
|
||
| 全局 | `*` | 允许/禁止所有命令 |
|
||
|
||
### 配置模式
|
||
|
||
- **确认模式**(默认)— 每条命令都弹窗确认
|
||
- **白名单模式** — 匹配白名单的命令自动执行,其余弹窗确认
|
||
- **黑名单模式** — 匹配黑名单的命令直接拒绝,其余弹窗确认
|
||
- **无限模式** — 所有命令自动执行(当前已有的 unlimited 模式)
|
||
|
||
### 存储位置
|
||
|
||
`~/.openclaw/clawpanel.json` → `commandRules` 字段:
|
||
|
||
```json
|
||
{
|
||
"commandRules": {
|
||
"mode": "whitelist",
|
||
"rules": [
|
||
{ "pattern": "go run *", "action": "allow" },
|
||
{ "pattern": "npm *", "action": "allow" },
|
||
{ "pattern": "rm -rf /", "action": "deny" },
|
||
{ "pattern": "git *", "action": "allow" }
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
### 实现方案
|
||
|
||
1. **设置页面 UI** — 安全设置页面新增「命令规则」区域
|
||
- 规则列表(增删改)
|
||
- 模式切换(确认/白名单/黑名单/无限)
|
||
- 预设模板(开发者常用、安全最小权限等)
|
||
|
||
2. **存储** — 读写 `clawpanel.json` 的 `commandRules`
|
||
|
||
3. **拦截逻辑** — `assistant.js` 的 `assistant_exec` 调用前
|
||
- 解析命令字符串
|
||
- 按规则列表逐条匹配(支持 glob 通配符)
|
||
- 匹配到 allow → 自动执行
|
||
- 匹配到 deny → 直接拒绝并提示
|
||
- 无匹配 → 按模式决定(弹窗确认或拒绝)
|
||
|
||
4. **Rust 后端** — `assistant_exec` 命令增加规则检查
|
||
- 从 `clawpanel.json` 读取规则
|
||
- glob 匹配逻辑
|
||
- 返回 `{ allowed: bool, rule: string }` 给前端
|
||
|
||
### 优先级
|
||
|
||
中等。当前 AI 助手已有 4 种模式(聊天/规划/执行/无限),命令规则是对「执行」模式的细化增强。
|
||
|
||
---
|
||
|
||
## 安装体验优化
|
||
|
||
### 默认安装原版包
|
||
当前版本选择器默认选中「汉化版」,改为默认「原版」(official)。用户可切换。
|
||
|
||
### 安装页面环境检测实时生效
|
||
保存自定义 Node.js 路径后,检查是否需要重启才生效。v0.8.0 已改用 RwLock 支持运行时刷新,需验证是否完全生效。
|
||
|
||
### Linux Web 版后台更新机制
|
||
Linux Web 版检测到新版本后,目前只能手动 `git pull`。需要实现:
|
||
- 面板内一键更新按钮(自动 git pull + npm install + 重启服务)
|
||
- 或者 systemd 服务自动拉取更新
|
||
|
||
---
|
||
|
||
## 其他待规划功能
|
||
|
||
- [ ] 消息渠道:渠道级别的消息统计(收发量、响应时间)
|
||
- [ ] 模型配置:支持更多服务商预设(硅基流动、智谱、百川、通义千问等国内模型)
|
||
- [ ] Docker 桌面版:Rust 原生 Docker API(bollard crate)替代 Node.js 后端
|
||
- [ ] 前端热更新增量包:只下载变更文件,减小更新包体积
|
||
- [ ] 多语言支持:i18n 框架(中/英双语)
|