hamster-wheel-cli 0.2.0 → 0.3.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 CHANGED
@@ -2,6 +2,36 @@
2
2
 
3
3
  本项目遵循语义化版本,变更日志以时间倒序记录。
4
4
 
5
+ ## [0.3.1] - 2025-12-24
6
+ ### Added
7
+ - webhook 在“计划生成”阶段新增 `plan` 字段,携带计划原文便于下游对接。
8
+
9
+ ### Fixed
10
+ - webhook 发送的 `plan` 内容统一为 `\n` 换行,确保换行不丢失。
11
+
12
+ ## [0.3.0] - 2025-12-24
13
+ ### Added
14
+ - 新增 `alias set/list/delete` 命令,用于管理全局 alias 配置。
15
+ - `run` 支持多次 `--use-alias` 叠加,并按命令行顺序覆盖同名选项。
16
+ - `run` 新增 `--use-agent`,支持叠加 agent 配置并参与覆盖合并。
17
+
18
+ ### Changed
19
+ - alias 管理方式调整为 `alias set/list/delete`,便于显式维护与查看。
20
+ - alias 列表仅展示 `[alias]` 段,避免与 shortcut 混淆。
21
+ - run 参数合并规则统一为“同名选项后出现覆盖前出现”。
22
+
23
+ ## [0.2.1] - 2025-12-24
24
+ ### Added
25
+ - webhook payload 新增 `project` 字段,值为当前工作目录名称(仅文件夹名)。
26
+ - webhook payload 新增 `commit` 与 `pr` 字段,用于提交与 PR 链接(无链接时为空字符串)。
27
+ - 新增 `agent add/delete/set/list` 命令,支持管理 AI CLI 命令配置。
28
+ - 支持在全局配置中存储与解析 `[agent]` 表(兼容 `[agents]` 读取),便于复用 AI CLI 命令。
29
+
30
+ ### Changed
31
+ - 仅在 `task_start` 事件发送 `task` 字段,其余阶段不再携带。
32
+ - webhook 时间戳改为本地时区 `YYYYMMDD-HHmmss` 格式。
33
+ - logs 列表支持 PageUp/PageDown 翻页,并补充按键提示。
34
+
5
35
  ## [0.2.0] - 2025-12-24
6
36
  ### Added
7
37
  - 新增 `alias run` 子命令,支持执行 alias 时追加参数并覆盖同名选项。
package/README.md CHANGED
@@ -27,6 +27,7 @@ node dist/cli.js run \
27
27
  ```
28
28
  - `-t, --task`:任务描述,可重复传入多个任务,默认按接力模式依次执行。
29
29
  - `--ai-cli`/`--ai-args`:指向系统已有的 AI CLI,提示文本通过 stdin(或 `--ai-prompt-arg`)传入。
30
+ - `--use-alias`/`--use-agent`:叠加 alias/agent 配置参数,重复传入时按命令行顺序覆盖。
30
31
  - `--worktree`:在独立分支 worktree 中作业;基线分支通过 `--base-branch` 指定。
31
32
  - 使用 `--worktree` 创建的临时工作目录,在确认分支已提交、推送且存在 PR 后会自动清理(仅删除本次创建的 worktree)。
32
33
  - `--run-tests`/`--run-e2e`:运行测试命令(默认 `yarn test`、`yarn e2e`)。
@@ -63,31 +64,60 @@ wheel-ai run --task "补充文档" --ai-cli "claude" --ai-args "--model" "claude
63
64
  - 仅支持一个 `[shortcut]`,且 `name` 不能包含空白字符。
64
65
  - 配置文件不存在或内容不合法会被忽略,不影响正常使用。
65
66
 
66
- ## alias 浏览
67
- 可在 `~/.wheel-ai/config.toml` 中维护多个 alias,便于集中查看常用命令组合:
67
+ ## alias 管理与使用
68
+ 可在 `~/.wheel-ai/config.toml` 中维护多个 alias,便于复用常用参数组合:
68
69
 
69
70
  ```toml
70
71
  [alias]
71
- daily = "--task \"补充文档\" --ai-cli \"claude\""
72
- weekly = "run --task \"补充测试\" --run-tests"
72
+ daily = "--task \"补充文档\" --run-tests"
73
+ weekly = "--task \"补充测试\" --run-tests --run-e2e"
73
74
  ```
74
75
 
75
- 运行 `wheel-ai alias` 进入交互式列表:
76
- - ↑/↓ 选择 alias
77
- - 底部会显示选中的命令内容
78
- - alias 名称不能包含空白字符
76
+ 命令示例:
77
+ ```bash
78
+ wheel-ai alias set daily --task "补充文档" --run-tests
79
+ wheel-ai alias list
80
+ wheel-ai alias delete daily
81
+ ```
82
+
83
+ 在 run 中叠加 alias:
84
+ ```bash
85
+ wheel-ai run --use-alias daily --use-alias weekly -t "balabala"
86
+ ```
87
+
88
+ - alias 名称不能为空且不能包含空白字符。
89
+ - `--use-alias` 可重复传入,按出现顺序叠加参数。
90
+ - 当出现同名选项时,后出现的 alias 覆盖前面的。
79
91
 
80
- 也可以使用命令行直接写入 alias:
92
+ ## agent 配置
93
+ 可在 `~/.wheel-ai/config.toml` 中维护多个 AI CLI 命令,便于复用:
94
+
95
+ ```toml
96
+ [agent]
97
+ claude = "claude --model sonnet"
98
+ openai = "openai --model gpt-4o"
99
+ ```
100
+
101
+ 命令示例:
81
102
  ```bash
82
- wheel-ai set alias daily --task "补充文档" --run-tests
103
+ wheel-ai agent add claude claude --model sonnet
104
+ wheel-ai agent set openai openai --model gpt-4o
105
+ wheel-ai agent delete claude
106
+ wheel-ai agent list
83
107
  ```
84
108
 
85
- 也可以直接执行 alias,并在末尾追加命令:
109
+ run 中使用 agent:
86
110
  ```bash
87
- wheel-ai alias run daily --run-e2e --task "补充 e2e"
111
+ wheel-ai run --use-agent claude -t "补充文档"
88
112
  ```
89
- - `<addition...>` 支持多个命令/参数组合,等价于将追加内容放在 alias 命令末尾。
90
- - 当追加的命令/参数与 alias 内已有内容重复时,以追加的为准。
113
+
114
+ - `--use-agent` 会叠加 agent 配置的参数,冲突时按命令行出现顺序覆盖。
115
+
116
+ - `add` 仅新增,已存在会报错。
117
+ - `set` 新增或覆盖。
118
+ - `delete` 删除指定 agent。
119
+ - `list` 输出全部 agent 配置。
120
+ - agent 名称不能为空且不能包含空白字符。
91
121
 
92
122
  ## 持久化记忆
93
123
  - `docs/ai-workflow.md`:AI 执行前的工作流基线,需作为提示前置输入。
@@ -99,26 +129,33 @@ wheel-ai alias run daily --run-e2e --task "补充 e2e"
99
129
  - 在监控界面按 `t` 触发终止,会弹出确认框(y/n)。
100
130
 
101
131
  ## Webhook 通知
102
- 可通过 `--webhook` 配置通知回调地址,系统会在任务开始、第 N 轮开始、任务结束时发送 POST JSON
132
+ 可通过 `--webhook` 配置通知回调地址,系统会在任务开始、第 N 轮开始、任务结束时发送 POST JSON;其中“计划生成”阶段(`iteration_start` 且 `stage` 为“计划生成”)会额外携带 `plan` 字段,换行统一为 `\n`。
103
133
 
104
134
  Payload 示例:
105
135
  ```json
106
136
  {
107
137
  "event": "task_start",
108
138
  "task": "修复依赖安装错误",
139
+ "project": "webhook-start-task-project",
109
140
  "branch": "feat/webhooks",
110
141
  "iteration": 0,
111
142
  "stage": "任务开始",
112
- "timestamp": "2024-01-01T00:00:00.000Z"
143
+ "timestamp": "20251224-210815",
144
+ "commit": "",
145
+ "pr": ""
113
146
  }
114
147
  ```
115
148
  字段说明:
116
149
  - `event`:`task_start` / `iteration_start` / `task_end`
117
- - `task`:任务描述
150
+ - `task`:任务描述(仅 `task_start` 会携带)
151
+ - `project`:当前工作目录名称(仅文件夹名,不含路径)
118
152
  - `branch`:分支名(可能为空)
119
153
  - `iteration`:当前轮次(任务开始为 0)
120
154
  - `stage`:当前节点描述
121
- - `timestamp`:ISO 时间戳
155
+ - `timestamp`:本地时区 `YYYYMMDD-HHmmss` 时间戳
156
+ - `commit`:提交链接(仅在自动提交且推送成功时写入,否则为空字符串)
157
+ - `pr`:PR 链接(存在时写入,否则为空字符串)
158
+ - `plan`:计划原文(仅 `iteration_start` 且 `stage` 为“计划生成”时携带,换行标准化为 `\n`)
122
159
 
123
160
  ## 开发约束
124
161
  - 使用 yarn 管理依赖,TypeScript 避免 `any`。