ace-tool-windows 0.2.6 → 0.2.8

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/README.md CHANGED
@@ -1,243 +1,264 @@
1
- # ace-tool-windows
2
-
3
- Windows 平台的 ACE MCP Server(Rust + Win32,stdio 模式),提供 `search_context` 与 `enhance_prompt`。
4
-
5
- > 原项目:<https://github.com/eastxiaodong/ace-tool>
6
-
7
- ## 1. 安装
8
-
9
- ```powershell
10
- npm i -g ace-tool-windows
11
- ```
12
-
13
- ## 2. 获取 Token
14
-
15
- 在 <https://acemcp.heroman.wtf> 生成并复制 `token`。
1
+ # ace-tool-windows
2
+
3
+ Windows 平台的 ACE MCP Server(Rust + Win32,stdio 模式),提供 `search_context` 与 `enhance_prompt`。
4
+
5
+ > 原项目:<https://github.com/eastxiaodong/ace-tool>
6
+
7
+ ## 1. 安装
8
+
9
+ ```powershell
10
+ npm i -g ace-tool-windows
11
+ ```
12
+
13
+ ## 2. 获取 Token / API Key
14
+
15
+ 在 <https://acemcp.heroman.wtf> 生成并复制 `token`,供 `search_context` 使用。
16
+
17
+ `codex` 模式下的增强请求改为直连 GPT API,需要额外准备:
18
+ - `codex api base`(例如 `http://your-gpt-gateway/v1`)
19
+ - `codex api key`
20
+ - 可选 `model`(默认 `gpt-5.4`)
16
21
 
17
22
  建议:
18
23
  - 不要把 token 提交到 Git 仓库。
19
24
  - 优先通过环境变量或本地 MCP 配置注入。
20
- - 即便使用 `codex` provider,`search_context` 仍依赖远端服务,必须配置 token
21
-
22
- ## 3. 本地快速验证
23
-
24
- 远端增强(`remote`,默认):
25
+ - 即便使用 `codex` provider,`search_context` 仍依赖远端服务,必须配置 `--base-url` 与 `--token`。
26
+
27
+ ## 3. 模式速览(先选一个)
28
+
29
+ ### 3.1 `remote` 模式
30
+ - 适合:不依赖本机 `codex` CLI,开箱可用。
31
+ - 依赖:远端 token/credits。
32
+ - 启动示例:
33
+
34
+ ```powershell
35
+ ace-tool-win --base-url https://acemcp.heroman.wtf/relay/ --token <YOUR_TOKEN> --provider remote
36
+ ```
37
+
38
+ ### 3.2 `codex` 模式
39
+ - 适合:希望增强链路直连 GPT API,减少本地 CLI 拉起与进程管理开销。
40
+ - 依赖:可访问的 GPT API 网关、有效 API Key、可用模型名。
41
+ - 启动示例:
25
42
 
26
43
  ```powershell
27
- ace-tool-win --base-url https://acemcp.heroman.wtf/relay/ --token <YOUR_TOKEN>
44
+ ace-tool-win --base-url https://acemcp.heroman.wtf/relay/ --token <YOUR_TOKEN> --provider codex --codex-api-base http://your-gpt-gateway/v1 --codex-api-key <YOUR_GPT_KEY> --codex-model gpt-5.4
28
45
  ```
29
46
 
30
- 本地 Codex 增强(需要已安装可执行的 `codex` CLI):
31
-
32
- ```powershell
33
- ace-tool-win --base-url https://acemcp.heroman.wtf/relay/ --token <YOUR_TOKEN> --provider codex --codex-cmd codex
34
- ```
35
-
36
- 可选参数:
37
- - `--enable-log`:写入项目 `.ace-tool/ace-tool.log`
38
- - `--provider remote|codex`:默认 `remote`
39
- - `--codex-cmd codex`:Codex 命令,支持绝对路径
40
- - `--codex-reasoning-effort <none|minimal|low|medium|high|xhigh>`:Codex 推理强度,默认 `low`
41
- - `--enhance-timeout-sec 90`:增强调用超时(10-600 秒);未显式配置时 `remote` 默认 90 秒,`codex` 默认 180 秒
42
-
43
- Windows 说明:
44
- - 当前版本不会写死单一路径:`args.codex_cmd` > 启动参数/环境变量 > 默认 `codex`,再按“直接路径 -> PATH 查找 -> Windows 常见位置(Volta/npm)”解析可执行文件。
45
- - 调用 Codex 时默认附加 `-c "mcp_servers.mcp-router.enabled=false"`,避免 Codex 内部 `mcp-router` 启动抖动影响首轮增强。
46
- - Codex 超时时会自动降级重试一次 `reasoning_effort=none`(仅在首轮超时时触发)。
47
- - `--ui-timeout-sec 480`:UI 会话超时(30-3600 秒)
48
- - UI 窗口支持自适应布局(拖拽/缩放窗口时,编辑区与按钮区域会自动重排)。
49
-
50
- ## 4. 配置为 MCP Server
51
-
52
- ### 通用 JSON(mcpServers)
53
-
54
- ```json
55
- {
56
- "mcpServers": {
57
- "ace-tool-windows": {
47
+ 关键说明:
48
+ - `search_context` 始终走远端,所以即便是 `codex` 模式也必须有可用 token。
49
+ - `codex` 模式现在通过 HTTP 直连 GPT API,不再依赖本机 `codex` CLI。
50
+ - 交互窗口支持自适应布局;增强结果仍会经过现有 UI 确认流程。
51
+
52
+ ## 4. MCP 配置模板(按模式复制)
53
+
54
+ ### 4.1 `remote` 模式模板
55
+
56
+ JSON(适用于支持 `mcpServers` 的客户端):
57
+
58
+ ```json
59
+ {
60
+ "mcpServers": {
61
+ "ace-tool-windows": {
62
+ "command": "ace-tool-win",
63
+ "args": [
64
+ "--base-url", "https://acemcp.heroman.wtf/relay/",
65
+ "--token", "<YOUR_TOKEN>",
66
+ "--provider", "remote"
67
+ ]
68
+ }
69
+ }
70
+ }
71
+ ```
72
+
73
+ TOML(Codex CLI):
74
+
75
+ ```toml
76
+ [mcpServers."ace-tool-windows"]
77
+ command = "ace-tool-win"
78
+ args = [
79
+ "--base-url", "https://acemcp.heroman.wtf/relay/",
80
+ "--token", "<YOUR_TOKEN>",
81
+ "--provider", "remote"
82
+ ]
83
+ ```
84
+
85
+ ### 4.2 `codex` 模式模板
86
+
87
+ JSON(适用于支持 `mcpServers` 的客户端):
88
+
89
+ ```json
90
+ {
91
+ "mcpServers": {
92
+ "ace-tool-windows": {
58
93
  "command": "ace-tool-win",
59
94
  "args": [
60
95
  "--base-url", "https://acemcp.heroman.wtf/relay/",
61
96
  "--token", "<YOUR_TOKEN>",
62
- "--provider", "remote"
97
+ "--provider", "codex",
98
+ "--codex-api-base", "http://your-gpt-gateway/v1",
99
+ "--codex-api-key", "<YOUR_GPT_KEY>",
100
+ "--codex-model", "gpt-5.4"
63
101
  ]
64
102
  }
65
103
  }
66
104
  }
67
- ```
68
-
69
- ### Claude Code(JSON)
70
-
71
- ```json
72
- {
73
- "mcpServers": {
74
- "ace-tool-windows": {
75
- "command": "ace-tool-win",
76
- "args": [
77
- "--base-url", "https://acemcp.heroman.wtf/relay/",
78
- "--token", "<YOUR_TOKEN>",
79
- "--provider", "remote"
80
- ]
81
- }
82
- }
83
- }
84
- ```
85
-
86
- ### Codex CLI(TOML)
87
-
88
- ```toml
89
- [mcpServers."ace-tool-windows"]
105
+ ```
106
+
107
+ TOML(Codex CLI):
108
+
109
+ ```toml
110
+ [mcpServers."ace-tool-windows"]
90
111
  command = "ace-tool-win"
91
112
  args = [
92
113
  "--base-url", "https://acemcp.heroman.wtf/relay/",
93
114
  "--token", "<YOUR_TOKEN>",
94
- "--provider", "remote"
115
+ "--provider", "codex",
116
+ "--codex-api-base", "http://your-gpt-gateway/v1",
117
+ "--codex-api-key", "<YOUR_GPT_KEY>",
118
+ "--codex-model", "gpt-5.4"
95
119
  ]
96
120
  ```
121
+
122
+ ## 5. Provider 行为(当前版本)
123
+
124
+ - 启动时确定 provider:`--provider` / `ACE_TOOL_ENHANCE_PROVIDER`,默认 `remote`。
125
+ - 请求参数里的 `provider` 仅作为提示,不用于切换模式。
126
+ - 如果请求里的 `provider` 与启动 provider 不一致,会自动忽略,仍以启动 provider 为准。
127
+ - 不会再自动从 `codex` 降级到 `remote`。
128
+ - `codex` provider 当前通过 `/chat/completions` 直连 GPT API。
129
+
130
+ ## 6. 在 AI CLI 中触发增强
131
+
132
+ 配置好 MCP 后,输入包含 `-enhance` 或 `-enhancer` 的请求即可触发 `enhance_prompt`。
133
+
134
+ 示例:
135
+
136
+ ```text
137
+ 为当前项目的代码添加详细注释 -enhance
138
+ ```
139
+
140
+ 补充:
141
+ - 用户输入里的触发后缀(`-enhance` / `-enhancer`)会在增强前自动剥离,不会进入最终增强文本。
142
+ - 若本次调用的 `prompt` 仅包含触发后缀,服务端会自动回退到 `conversation_history` 提取可用提示,不再直接报错中断。
143
+ - 工具入口统一为 `enhance_prompt`,避免同义工具名导致重复触发。
144
+ - 服务端会对短时间内完全相同的增强请求做去重(约 180 秒),避免“窗口刚关又被同参再次拉起”。
145
+ - 增强文本采用“语义自适应”排版:在不改变语义前提下提升细节和可读性,不强制固定模板。
146
+
147
+ ## 7. 环境变量(按模式)
148
+
149
+ ### 7.1 `remote` 模式
150
+
151
+ ```powershell
152
+ $env:ACE_TOOL_ENHANCE_PROVIDER = "remote"
153
+ ```
154
+
155
+ ### 7.2 `codex` 模式
97
156
 
98
- 如果使用 `codex` provider,请在 `args` 中追加:
99
- - `--provider`, `codex`
100
- - `--codex-cmd`, `<codex 可执行路径或命令>`
101
-
102
- ## 5. Provider 选择(remote / codex)
103
-
104
- 优先级:
105
- 1. 启动参数 `--provider` / 环境变量
106
- 2. 默认 `remote`
107
- 3. `enhance_prompt` 调用参数 `provider` 只做一致性校验,不用于切换
108
-
109
- 注意:
110
- - 仅 `enhance_prompt` 使用 provider 配置;`search_context` 始终使用远端。
111
- - `provider` 只允许 `remote` / `codex`,非法值会导致启动报错。
112
- - 请求级 `provider` 不允许与启动 provider 不一致;不一致会直接报错并拒绝执行(默认强约束,避免会话中途切到 remote)。
113
- - `codex` provider 需要本地 `codex` CLI 可执行(可用 `--codex-cmd` 指定路径)。
114
- - `codex_cmd` 不是固定绝对路径,默认会按当前机器环境自动解析;跨设备建议先用 `codex`,失败再改绝对路径。
115
-
116
- `enhance_prompt` 示例(可选 `provider`):
117
-
118
- ```json
119
- {
120
- "prompt": "为当前项目添加登录功能 -enhance",
121
- "conversation_history": "User: ...\nAssistant: ...",
122
- "project_root_path": "F:/GitlabProjects/ace-tool-windows",
123
- "provider": "codex",
124
- "codex_cmd": "C:/Users/X1/AppData/Local/Volta/bin/codex"
125
- }
126
- ```
127
-
128
- 说明:
129
- - `codex_cmd` 是 `enhance_prompt` 的可选外部覆盖参数,优先级高于启动参数和环境变量。
130
- - 用户输入里的触发后缀(`-enhance` / `-enhancer`)会在增强前自动剥离,不会进入最终增强文本。
131
-
132
- ## 6. 在 AI CLI 中触发增强
133
-
134
- 配置好 MCP 后,输入包含 `-enhance` 或 `-enhancer` 的请求即可触发 `enhance_prompt`。
135
-
136
- 示例:
137
-
138
- ```text
139
- 为当前项目的代码添加详细注释 -enhance
157
+ ```powershell
158
+ $env:ACE_TOOL_ENHANCE_PROVIDER = "codex"
159
+ $env:ACE_TOOL_CODEX_API_BASE = "http://your-gpt-gateway/v1"
160
+ $env:ACE_TOOL_CODEX_API_KEY = "<YOUR_GPT_KEY>"
161
+ $env:ACE_TOOL_CODEX_MODEL = "gpt-5.4"
140
162
  ```
141
-
142
- 补充:
143
- - 增强文本默认遵循“语义自适应”的排版策略:优先保留原语义并细化细节;可用分段/小标题/列表提升可读性,但不强制固定模板。
144
- - 当前工具名同时支持 `enhance_prompt` `enhancer`(别名),用于提高不同客户端的工具路由命中率。
145
-
146
- ## 7. 常用环境变量
147
-
148
- - `ACE_TOOL_ENHANCE_PROVIDER=remote|codex`
149
- - `ACE_TOOL_CODEX_CMD=codex`
150
- - `ACE_TOOL_CODEX_REASONING_EFFORT=low`
151
- - `ACE_TOOL_ENHANCE_TIMEOUT_SEC=90`(未设置时 `remote` 默认 90 秒,`codex` 默认 180 秒)
152
- - `ACE_TOOL_UI_TIMEOUT_SEC=480`
153
- - `ACE_TOOL_HEADLESS=1`
154
- - `ACE_TOOL_HEADLESS_ACTION=enhanced|end|timeout`
155
- - `ACE_TOOL_DEBUG=1`
156
- - `ACE_TOOL_DEBUG_VERBOSE=1`
157
- - `ACE_TOOL_DEBUG_FILE=<path>`
158
-
163
+
164
+ ### 7.3 通用变量
165
+
166
+ - `ACE_TOOL_ENHANCE_TIMEOUT_SEC=90`(范围 10-600;未显式配置时 `remote` 默认 90 秒,`codex` 默认 180 秒)
167
+ - `ACE_TOOL_UI_TIMEOUT_SEC=480`(范围 30-3600)
168
+ - `ACE_TOOL_HEADLESS=1`
169
+ - `ACE_TOOL_HEADLESS_ACTION=enhanced|end|timeout`
170
+ - `ACE_TOOL_DEBUG=1`
171
+ - `ACE_TOOL_DEBUG_VERBOSE=1`
172
+ - `ACE_TOOL_DEBUG_FILE=<path>`
173
+
159
174
  ## 8. 超时规则
160
175
 
161
176
  - `--enhance-timeout-sec` / `ACE_TOOL_ENHANCE_TIMEOUT_SEC`:增强请求超时,范围 10-600 秒;未显式配置时 `remote` 默认 90 秒,`codex` 默认 180 秒。
162
177
  - `--ui-timeout-sec` / `ACE_TOOL_UI_TIMEOUT_SEC`:UI 会话超时(默认 480 秒,范围 30-3600)。
163
178
  - 超出范围的配置会回退到默认值。
164
179
  - 交互模式下 UI 超时会回退到原始 prompt;headless 模式不显示 UI,由 `ACE_TOOL_HEADLESS_ACTION` 决定动作。
165
- - `codex` provider 在首轮超时时会自动重试一次(`reasoning_effort=none`),用于降低“首次增强卡住”的概率。
166
-
167
- ## 9. 故障排查
168
-
169
- ### 9.1 MCP 启动超时 / 连接失败
180
+ - `codex` provider 的 HTTP 请求会复用上述增强超时。
181
+ - `codex` provider 会对 `429 / 502 / 503 / 504` 以及连接超时自动做最多 3 次重试。
182
+
183
+ ## 9. 故障排查
184
+
185
+ ### 9.1 MCP 启动超时 / 连接失败
186
+
187
+ 检查项:
188
+ - 必须使用 stdio 模式。
189
+ - `command` 路径可执行(绝对路径优先)。
190
+ - `--base-url` 与 `--token` 是否正确。
191
+ - 开启 `ACE_TOOL_DEBUG=1` 查看日志链路。
192
+
193
+ ### 9.2 窗口不弹出或卡住
194
+
195
+ 检查项:
196
+ - 是否启用了 `ACE_TOOL_HEADLESS=1`。
197
+ - Windows 权限或安全软件是否拦截窗口创建。
198
+ - 调试日志中是否出现 `enhance_prompt: opening ui`。
199
+
200
+ ### 9.3 Token 认证失败
201
+
202
+ 典型返回:401 / 403。
203
+
204
+ 处理:
205
+ - 到 <https://acemcp.heroman.wtf> 重新生成 token。
206
+ - 更新 MCP 配置后重启客户端。
207
+
208
+ ### 9.4 中文显示异常 / 乱码
209
+
210
+ 当前版本已增加 UTF-8/BOM/GBK 等解码兜底。若仍异常:
211
+ - 确认终端与编辑器编码为 UTF-8。
212
+ - 打开 `ACE_TOOL_DEBUG=1`,附带日志定位具体节点。
213
+
214
+ ### 9.5 Codex provider 调用失败 / HTTP 返回异常
170
215
 
171
216
  检查项:
172
- - 必须使用 stdio 模式。
173
- - `command` 路径可执行(绝对路径优先)。
174
- - `--base-url` `--token` 是否正确。
175
- - 开启 `ACE_TOOL_DEBUG=1` 查看日志链路。
217
+ - `--codex-api-base` / `ACE_TOOL_CODEX_API_BASE` 是否正确。
218
+ - `--codex-api-key` / `ACE_TOOL_CODEX_API_KEY` 是否有效。
219
+ - `--codex-model` / `ACE_TOOL_CODEX_MODEL` 是否为网关支持的模型名。
220
+ - 开启 `ACE_TOOL_DEBUG=1` 查看错误类型(timeout/auth/network/rate_limit 等)。
176
221
 
177
- ### 9.2 窗口不弹出或卡住
222
+ ### 9.6 Codex 增强慢 / 高概率超时
178
223
 
179
224
  检查项:
180
- - 是否启用了 `ACE_TOOL_HEADLESS=1`。
181
- - Windows 权限或安全软件是否拦截窗口创建。
182
- - 调试日志中是否出现 `enhance_prompt: opening ui`。
183
-
184
- ### 9.3 Token 认证失败
185
-
186
- 典型返回:401 / 403。
187
-
188
- 处理:
189
- - 到 <https://acemcp.heroman.wtf> 重新生成 token。
190
- - 更新 MCP 配置后重启客户端。
191
-
192
- ### 9.4 中文显示异常 / 乱码
193
-
194
- 当前版本已增加 UTF-8/BOM/GBK 等解码兜底。若仍异常:
195
- - 确认终端与编辑器编码为 UTF-8。
196
- - 打开 `ACE_TOOL_DEBUG=1`,附带日志定位具体节点。
197
-
198
- ### 9.5 Codex provider 无法执行 / 退出码非 0
199
-
200
- 检查项:
201
- - `--codex-cmd` 是否指向可执行文件,PATH 是否包含 `codex`。
202
- - 使用相同命令在终端直接执行一次,确认 CLI 可运行。
203
- - 开启 `ACE_TOOL_DEBUG=1` 查看退出码与错误类型(timeout/auth/network 等)。
204
-
205
- ### 9.6 Codex 首次增强慢 / 高概率超时
206
-
207
- 检查项:
208
- - 日志是否长时间停在 `mcp: mcp-router starting`(已默认禁用内部 mcp-router;若仍出现,确认当前进程已重启到新版本)。
209
- - 将 `--codex-reasoning-effort` 临时降到 `none` 或 `low` 观察改善幅度。
225
+ - GPT 网关本身是否响应慢,或上游模型负载是否过高。
226
+ - `--enhance-timeout-sec` 是否过低。
227
+ - 返回是否出现 429 / 5xx,确认是否为限流或服务端波动。
210
228
  - 适当提高 `--enhance-timeout-sec`(例如 240)验证是否为纯耗时问题。
211
229
 
212
- ## 10. 从源码构建
213
-
214
- ```powershell
215
- # release
216
- npm run release
217
-
218
- # 构建并拷贝 bin/ace-tool-win.exe
219
- npm run build:bin
220
-
221
- # 本地打包验证
222
- npm run pack:local
223
- ```
224
-
225
- ## 11. 发布到 npm
226
-
227
- ```powershell
228
- npm publish --access public
229
- ```
230
-
231
- > 若启用 npm 2FA,请使用支持 publish token 或完成二次验证。
232
-
233
- ## 12. 发布前检查清单
234
-
235
- - [ ] `npm run release` 无 error / warning
236
- - [ ] MCP 可启动并能成功 `tools/list`
237
- - [ ] `enhance_prompt` 在 `remote` 与 `codex` 均可回包
238
- - [ ] 中文增强回归通过(无 `???`)
239
- - [ ] README 中配置示例可在新机器复现
240
-
241
- ## License
242
-
230
+ 补充:
231
+ - 当前版本遇到 `429 / 502 / 503 / 504` 或连接超时会自动重试;若仍失败,通常说明上游服务确实不稳定,而不是本地参数拼错。
232
+
233
+ ## 10. 从源码构建
234
+
235
+ ```powershell
236
+ # release
237
+ npm run release
238
+
239
+ # 构建并拷贝 bin/ace-tool-win.exe
240
+ npm run build:bin
241
+
242
+ # 本地打包验证
243
+ npm run pack:local
244
+ ```
245
+
246
+ ## 11. 发布到 npm
247
+
248
+ ```powershell
249
+ npm publish --access public
250
+ ```
251
+
252
+ > 若启用 npm 2FA,请使用支持 publish 的 token 或完成二次验证。
253
+
254
+ ## 12. 发布前检查清单
255
+
256
+ - [ ] `npm run release` 无 error / warning
257
+ - [ ] MCP 可启动并能成功 `tools/list`
258
+ - [ ] `enhance_prompt` 在 `remote` 与 `codex` 均可回包
259
+ - [ ] 中文增强回归通过(无 `???`)
260
+ - [ ] README 中配置示例可在新机器复现
261
+
262
+ ## License
263
+
243
264
  Apache-2.0
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ace-tool-windows",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "ACE MCP server for Windows (Win32)",
5
5
  "bin": {
6
6
  "ace-tool-win": "bin/ace-tool-win.exe"
@@ -17,12 +17,12 @@
17
17
  "LICENSE"
18
18
  ],
19
19
  "license": "Apache-2.0",
20
- "scripts": {
21
- "release": "cargo build --release",
22
- "check:release": "npm run release && cargo test --lib",
23
- "build:bin": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/build-bin.ps1",
24
- "pack:local": "npm run build:bin && npm pack"
25
- },
20
+ "scripts": {
21
+ "release": "cargo build --release",
22
+ "check:release": "npm run release && cargo test --lib",
23
+ "build:bin": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/build-bin.ps1",
24
+ "pack:local": "npm run build:bin && npm pack"
25
+ },
26
26
  "repository": {
27
27
  "type": "git",
28
28
  "url": "git+https://github.com/doudouHubs/ace-tool-windows.git"