hamster-wheel-cli 0.1.0 → 0.2.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -1
- package/README.md +29 -0
- package/dist/cli.js +1747 -309
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +1747 -309
- package/dist/index.js.map +1 -1
- package/docs/ai-workflow.md +27 -36
- package/package.json +1 -1
- package/src/ai.ts +346 -1
- package/src/alias-viewer.ts +221 -0
- package/src/cli.ts +263 -29
- package/src/config.ts +6 -2
- package/src/gh.ts +20 -0
- package/src/git.ts +38 -3
- package/src/global-config.ts +149 -11
- package/src/log-tailer.ts +103 -0
- package/src/logs-viewer.ts +33 -11
- package/src/logs.ts +1 -0
- package/src/loop.ts +458 -120
- package/src/monitor.ts +240 -23
- package/src/multi-task.ts +117 -0
- package/src/plan.ts +61 -0
- package/src/quality.ts +48 -0
- package/src/runtime-tracker.ts +2 -1
- package/src/types.ts +23 -0
- package/tests/branch-name.test.ts +28 -0
- package/tests/e2e/cli.e2e.test.ts +41 -0
- package/tests/global-config.test.ts +52 -1
- package/tests/monitor.test.ts +17 -0
- package/tests/multi-task.test.ts +77 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
本项目遵循语义化版本,变更日志以时间倒序记录。
|
|
4
4
|
|
|
5
|
+
## [0.2.0] - 2025-12-24
|
|
6
|
+
### Added
|
|
7
|
+
- 支持多任务执行与 multi-task 模式,提供 relay(接力)、serial(串行)、serial-continue(串行继续)、parallel(并行)四种执行方式。
|
|
8
|
+
- 新增 `alias` 命令,提供交互式 alias 配置浏览界面,支持上下键选择与 q 退出。
|
|
9
|
+
- Monitor 支持通过 `t` 键终止运行中的任务,增加确认对话框防止误操作。
|
|
10
|
+
- 前台运行时支持按 Esc 切入后台运行,日志自动输出到文件。
|
|
11
|
+
- 日志查看器(logs)支持单行滚动与翻页浏览,Esc 或 b 返回列表。
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
- 优化 AI 多阶段流程与交付闭环,改进分阶段 session 执行逻辑。
|
|
15
|
+
- 项目从 hamster-wheel-cli 重命名为 wheel-ai,更新相关引用与命令入口。
|
|
16
|
+
- GitHub Actions 工作流 Node.js 版本从 18 升级到 20。
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
- 修复分支名格式生成逻辑,确保符合 git 分支命名规范。
|
|
20
|
+
|
|
21
|
+
## [0.1.1] - 2025-12-24
|
|
22
|
+
### Added
|
|
23
|
+
- 引入分阶段 AI session 流程:分支名生成、计划执行、质量检查、测试、文档更新。
|
|
24
|
+
- 支持根据任务生成分支名(AI 优先,失败兜底)。
|
|
25
|
+
- 自动检测并执行代码质量检查,支持失败修复循环。
|
|
26
|
+
- 新增 `--skip-quality` 与 `--auto-merge` CLI 选项。
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
- 多任务未显式指定分支时不再自动生成分支名,改由 AI 在运行时生成。
|
|
30
|
+
- 迭代记录补充阶段与质量检查结果,便于回溯。
|
|
31
|
+
|
|
5
32
|
## [0.1.0] - 2025-12-23
|
|
6
33
|
### Added
|
|
7
34
|
- 基于 commander 的 AI 驱动 CLI,支持通过外部 AI CLI 运行迭代流程。
|
|
@@ -9,4 +36,3 @@
|
|
|
9
36
|
- 支持单元测试与 e2e 测试的统一触发与结果收集。
|
|
10
37
|
- 提供计划与记录持久化(`memory/plan.md`、`memory/notes.md`),便于多轮迭代复用。
|
|
11
38
|
- 支持 webhook 通知、日志查看与本地配置快捷指令,提升可观测性与易用性。
|
|
12
|
-
|
package/README.md
CHANGED
|
@@ -13,8 +13,10 @@ yarn build
|
|
|
13
13
|
```bash
|
|
14
14
|
node dist/cli.js run \
|
|
15
15
|
--task "为现有项目补充自动化 CI" \
|
|
16
|
+
--task "补充测试覆盖" \
|
|
16
17
|
--ai-cli "claude" \
|
|
17
18
|
--ai-args "--model" "claude-3-opus" \
|
|
19
|
+
--multi-task-mode relay \
|
|
18
20
|
--worktree \
|
|
19
21
|
--base-branch main \
|
|
20
22
|
--branch wheel-ai/ci-upgrade \
|
|
@@ -23,17 +25,21 @@ node dist/cli.js run \
|
|
|
23
25
|
--pr --pr-title "chore: 自动化 CI" \
|
|
24
26
|
--stop-signal "<<DONE>>"
|
|
25
27
|
```
|
|
28
|
+
- `-t, --task`:任务描述,可重复传入多个任务,默认按接力模式依次执行。
|
|
26
29
|
- `--ai-cli`/`--ai-args`:指向系统已有的 AI CLI,提示文本通过 stdin(或 `--ai-prompt-arg`)传入。
|
|
27
30
|
- `--worktree`:在独立分支 worktree 中作业;基线分支通过 `--base-branch` 指定。
|
|
28
31
|
- 使用 `--worktree` 创建的临时工作目录,在确认分支已提交、推送且存在 PR 后会自动清理(仅删除本次创建的 worktree)。
|
|
29
32
|
- `--run-tests`/`--run-e2e`:运行测试命令(默认 `yarn test`、`yarn e2e`)。
|
|
30
33
|
- `--auto-commit`/`--auto-push`:迭代结束后自动提交与推送。
|
|
31
34
|
- `--pr`:使用 `gh pr create` 创建 PR,可配合 `--pr-title`/`--pr-body`/`--draft`/`--reviewer`,未提供标题时会自动生成默认标题。
|
|
35
|
+
- `--auto-merge`:为 PR 启用自动合并(通过后自动 merge)。
|
|
32
36
|
- `--skip-install`:任务启动前跳过依赖检查与自动安装。
|
|
37
|
+
- `--skip-quality`:跳过代码质量检查环节。
|
|
33
38
|
- `--log-file`:将日志写入指定文件(相对路径基于当前工作目录)。
|
|
34
39
|
- `-v, --verbose`:输出完整调试日志(包含执行命令、stdout/stderr),便于开发排查。
|
|
35
40
|
- `--webhook`:配置通知回调地址(可重复设置多个 URL)。
|
|
36
41
|
- `--webhook-timeout`:webhook 请求超时(毫秒),默认 8000。
|
|
42
|
+
- `--multi-task-mode`:多任务执行模式,支持 `relay`(默认接力)、`serial`、`serial-continue`、`parallel`,也可用中文描述。
|
|
37
43
|
|
|
38
44
|
## 全局配置快捷指令
|
|
39
45
|
支持在 `~/.wheel-ai/config.toml` 配置一个快捷指令,用于减少重复的命令行参数书写。
|
|
@@ -57,11 +63,34 @@ wheel-ai run --task "补充文档" --ai-cli "claude" --ai-args "--model" "claude
|
|
|
57
63
|
- 仅支持一个 `[shortcut]`,且 `name` 不能包含空白字符。
|
|
58
64
|
- 配置文件不存在或内容不合法会被忽略,不影响正常使用。
|
|
59
65
|
|
|
66
|
+
## alias 浏览
|
|
67
|
+
可在 `~/.wheel-ai/config.toml` 中维护多个 alias,便于集中查看常用命令组合:
|
|
68
|
+
|
|
69
|
+
```toml
|
|
70
|
+
[alias]
|
|
71
|
+
daily = "--task \"补充文档\" --ai-cli \"claude\""
|
|
72
|
+
weekly = "run --task \"补充测试\" --run-tests"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
运行 `wheel-ai alias` 进入交互式列表:
|
|
76
|
+
- ↑/↓ 选择 alias
|
|
77
|
+
- 底部会显示选中的命令内容
|
|
78
|
+
- alias 名称不能包含空白字符
|
|
79
|
+
|
|
80
|
+
也可以使用命令行直接写入 alias:
|
|
81
|
+
```bash
|
|
82
|
+
wheel-ai set alias daily --task "补充文档" --run-tests
|
|
83
|
+
```
|
|
84
|
+
|
|
60
85
|
## 持久化记忆
|
|
61
86
|
- `docs/ai-workflow.md`:AI 执行前的工作流基线,需作为提示前置输入。
|
|
62
87
|
- `memory/plan.md`:分阶段计划(可被 AI 重写保持最新)。
|
|
63
88
|
- `memory/notes.md`:每轮迭代的输出、结论、风险与下一步。
|
|
64
89
|
|
|
90
|
+
## 运行中任务监控
|
|
91
|
+
- `wheel-ai monitor` 启动交互式监控,←/→ 切换任务,↑/↓ 上下 1 行,PageUp/PageDown 翻页。
|
|
92
|
+
- 在监控界面按 `t` 触发终止,会弹出确认框(y/n)。
|
|
93
|
+
|
|
65
94
|
## Webhook 通知
|
|
66
95
|
可通过 `--webhook` 配置通知回调地址,系统会在任务开始、第 N 轮开始、任务结束时发送 POST JSON。
|
|
67
96
|
|