2025-12-15 22:23:16 +08:00
|
|
|
|
# aide-program-core
|
|
|
|
|
|
|
2025-12-17 02:28:46 +08:00
|
|
|
|
> 路径:aide-program/aide/core/ 及 aide-program/aide/
|
|
|
|
|
|
> 最后更新:2025-12-17
|
2025-12-15 22:23:16 +08:00
|
|
|
|
|
|
|
|
|
|
## 概述
|
|
|
|
|
|
|
2025-12-17 02:28:46 +08:00
|
|
|
|
Aide CLI 工具的核心模块,包含配置管理、输出格式化和命令行入口。本区块是整个 aide 程序的基础设施层,被所有其他模块依赖。
|
|
|
|
|
|
|
|
|
|
|
|
## 目录结构
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
aide-program/aide/
|
|
|
|
|
|
├── __init__.py 包初始化
|
|
|
|
|
|
├── __main__.py 模块入口
|
|
|
|
|
|
├── main.py 命令行主入口
|
|
|
|
|
|
└── core/
|
|
|
|
|
|
├── __init__.py 核心模块初始化
|
|
|
|
|
|
├── config.py 配置管理
|
|
|
|
|
|
└── output.py 输出格式工具
|
|
|
|
|
|
```
|
2025-12-15 22:23:16 +08:00
|
|
|
|
|
|
|
|
|
|
## 文件清单
|
|
|
|
|
|
|
2025-12-17 02:28:46 +08:00
|
|
|
|
| 文件 | 类型 | 说明 |
|
|
|
|
|
|
|------|------|------|
|
|
|
|
|
|
| aide/__init__.py | 源码 | 包初始化,定义包描述 |
|
|
|
|
|
|
| aide/__main__.py | 源码 | 模块入口,支持 `python -m aide` |
|
|
|
|
|
|
| aide/main.py | 源码 | 命令行主入口,解析参数并分发命令 |
|
|
|
|
|
|
| core/__init__.py | 源码 | 核心模块初始化,定义模块描述 |
|
|
|
|
|
|
| core/config.py | 源码 | 配置管理器,处理 TOML 配置 |
|
|
|
|
|
|
| core/output.py | 源码 | 输出格式工具,统一输出前缀 |
|
2025-12-15 22:23:16 +08:00
|
|
|
|
|
|
|
|
|
|
## 核心组件
|
|
|
|
|
|
|
2025-12-17 02:28:46 +08:00
|
|
|
|
### ConfigManager 类
|
2025-12-15 22:23:16 +08:00
|
|
|
|
|
2025-12-17 02:28:46 +08:00
|
|
|
|
- **职责**:管理 .aide 目录和 config.toml 配置文件
|
|
|
|
|
|
- **位置**:`aide/core/config.py:240`
|
2025-12-15 22:23:16 +08:00
|
|
|
|
- **关键方法**:
|
2025-12-17 02:28:46 +08:00
|
|
|
|
- `ensure_base_dirs()` - 创建 .aide 目录结构
|
|
|
|
|
|
- `ensure_gitignore()` - 根据配置更新 .gitignore
|
|
|
|
|
|
- `ensure_config()` - 确保配置文件存在
|
|
|
|
|
|
- `load_config()` - 加载 TOML 配置
|
|
|
|
|
|
- `get_value(key)` - 读取配置值(支持点号分隔键)
|
|
|
|
|
|
- `set_value(key, value)` - 设置配置值(保留注释)
|
|
|
|
|
|
- `_update_config_value()` - 保守更新配置,保留原文件注释
|
2025-12-15 22:23:16 +08:00
|
|
|
|
|
|
|
|
|
|
### DEFAULT_CONFIG
|
|
|
|
|
|
|
2025-12-17 02:28:46 +08:00
|
|
|
|
- **职责**:默认配置模板,包含完整注释说明
|
|
|
|
|
|
- **位置**:`aide/core/config.py:13-237`
|
|
|
|
|
|
- **配置节**:
|
|
|
|
|
|
- `[general]` - 通用配置(gitignore_aide)
|
|
|
|
|
|
- `[runtime]` - 运行时要求(python_min, use_uv)
|
|
|
|
|
|
- `[task]` - 任务文档路径(source, spec)
|
|
|
|
|
|
- `[env]` - 环境检测模块配置
|
|
|
|
|
|
- `[docs]` - 项目文档配置
|
|
|
|
|
|
- `[flow]` - 流程追踪配置
|
|
|
|
|
|
- `[plantuml]` - PlantUML 工具配置
|
|
|
|
|
|
- `[decide]` - 待定项确认配置
|
2025-12-15 22:23:16 +08:00
|
|
|
|
|
|
|
|
|
|
### output 模块
|
|
|
|
|
|
|
|
|
|
|
|
- **职责**:统一输出格式
|
2025-12-17 02:28:46 +08:00
|
|
|
|
- **位置**:`aide/core/output.py`
|
|
|
|
|
|
- **函数**:
|
|
|
|
|
|
- `ok(msg)` - 成功输出(✓ 前缀)
|
|
|
|
|
|
- `warn(msg)` - 警告输出(⚠ 前缀)
|
|
|
|
|
|
- `err(msg)` - 错误输出(✗ 前缀)
|
|
|
|
|
|
- `info(msg)` - 信息输出(→ 前缀)
|
|
|
|
|
|
- `step(msg, current, total)` - 步骤输出([n/m] 前缀)
|
|
|
|
|
|
|
|
|
|
|
|
### main() 函数
|
|
|
|
|
|
|
|
|
|
|
|
- **职责**:命令行入口,构建解析器并分发命令
|
|
|
|
|
|
- **位置**:`aide/main.py:16`
|
|
|
|
|
|
- **支持的命令**:
|
|
|
|
|
|
- `aide init` - 初始化 .aide 目录
|
|
|
|
|
|
- `aide env {ensure|list|set}` - 环境管理
|
|
|
|
|
|
- `aide config {get|set}` - 配置管理
|
|
|
|
|
|
- `aide flow {start|next-step|back-step|next-part|back-part|issue|error|status|list|show}` - 进度追踪
|
|
|
|
|
|
- `aide decide {submit|result}` - 待定项确认
|
2025-12-15 22:23:16 +08:00
|
|
|
|
|
|
|
|
|
|
## 接口说明
|
|
|
|
|
|
|
2025-12-17 02:28:46 +08:00
|
|
|
|
### 配置读写 API
|
|
|
|
|
|
|
2025-12-15 22:23:16 +08:00
|
|
|
|
```python
|
|
|
|
|
|
from aide.core.config import ConfigManager
|
2025-12-17 02:28:46 +08:00
|
|
|
|
|
|
|
|
|
|
cfg = ConfigManager(Path.cwd())
|
|
|
|
|
|
cfg.ensure_config() # 确保配置存在
|
|
|
|
|
|
value = cfg.get_value("env.venv.path") # 读取嵌套键
|
|
|
|
|
|
cfg.set_value("task.source", "my-task.md") # 设置值
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 输出格式 API
|
|
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
|
from aide.core import output
|
|
|
|
|
|
|
|
|
|
|
|
output.ok("操作成功") # ✓ 操作成功
|
|
|
|
|
|
output.warn("警告信息") # ⚠ 警告信息
|
|
|
|
|
|
output.err("错误信息") # ✗ 错误信息
|
|
|
|
|
|
output.info("提示信息") # → 提示信息
|
2025-12-15 22:23:16 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 依赖关系
|
|
|
|
|
|
|
2025-12-17 02:28:46 +08:00
|
|
|
|
- 依赖:tomllib(标准库)、tomli_w(第三方)
|
|
|
|
|
|
- 被依赖:aide/env、aide/flow、aide/decide
|
2025-12-15 22:23:16 +08:00
|
|
|
|
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
|
|
2025-12-17 02:28:46 +08:00
|
|
|
|
- `set_value()` 使用正则替换保留原文件注释格式
|
|
|
|
|
|
- 配置键支持点号分隔的嵌套访问(如 `env.venv.path`)
|
|
|
|
|
|
- 新增配置键时会回退到完全重写模式(丢失注释)
|