Files
agent-aide/.aide/project-docs/blocks/aide-program-decide.md
2025-12-15 22:23:16 +08:00

101 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# aide-program-decide
> 路径aide-program/aide/decide/
> 最后更新2025-12-15
## 概述
待定项确认模块,提供 Web 界面让用户对任务中的待定项进行决策。服务在后台运行,用户提交后自动关闭。
## 文件清单
| 文件 | 说明 |
|------|------|
| `__init__.py` | 模块初始化,导出 cmd 函数 |
| `cli.py` | CLI 入口(~134 行) |
| `server.py` | HTTP 服务器管理(~280 行) |
| `daemon.py` | 后台进程启动器(~30 行) |
| `handlers.py` | HTTP 请求处理器(~170 行) |
| `storage.py` | 数据存储(~155 行) |
| `types.py` | 数据结构定义(~300 行) |
| `errors.py` | 自定义异常 |
| `web/` | Web 前端资源 |
## 核心组件
### CLI 入口
- **职责**:解析参数并调度功能
- **位置**`cli.py`
- **关键函数**
- `cmd_decide_submit(file_path)` - 提交待定项数据
- `cmd_decide_result()` - 获取决策结果
### DecideServer
- **职责**HTTP 服务器生命周期管理
- **位置**`server.py:26`
- **关键方法**
- `start()` - 前台启动服务
- `start_daemon(pid)` - 后台启动服务
- `stop(reason)` - 停止服务
### DecideStorage
- **职责**:管理待定项和决策结果的存储
- **位置**`storage.py`
- **关键方法**
- `save_pending(input)` - 保存待定项到 pending.json
- `load_pending()` - 加载待定项
- `save_result(result)` - 保存决策结果
- `load_result()` - 加载决策结果
- `is_server_running()` - 检查服务是否运行
### 数据结构
- `DecideInput` - 待定项输入数据
- `DecideItem` - 单个待定项(含多个选项)
- `DecideOption` - 选项value, label, score, pros, cons
- `DecideResult` - 决策结果
- `DecidedItem` - 单个决策chosen, note
## 接口说明
```python
# CLI 入口
aide decide submit <file> # 提交待定项,启动后台服务
aide decide result # 获取决策结果
# Web 界面
GET / # 主页面
GET /api/data # 获取待定项数据
POST /api/submit # 提交决策
```
## 配置项
`.aide/config.toml``[decide]` 节:
| 配置项 | 默认值 | 说明 |
|--------|--------|------|
| `port` | 3721 | 起始端口 |
| `bind` | 127.0.0.1 | 监听地址 |
| `url` | "" | 自定义访问地址 |
| `timeout` | 0 | 超时时间(秒) |
## 数据文件
- `.aide/decisions/pending.json` - 当前待定项数据
- `.aide/decisions/{timestamp}.json` - 决策记录归档
## 依赖关系
- 依赖coreoutput, config
- 被依赖main.py
## 注意事项
- 服务作为后台进程运行,与 CLI 脱离
- 用户提交决策后服务自动关闭
- 如果 recommend 字段存在,对应选项默认选中