cc-zh-watcher 0.2.1 → 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.
Files changed (3) hide show
  1. package/README.md +19 -6
  2. package/dist/cli.js +355 -261
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -73,8 +73,8 @@ cc-zh-watcher
73
73
  **第一次启动会自动引导**:
74
74
 
75
75
  - 没配过 API key → 内联提问 4 个字段(`api_key` / `base_url` / `model` / `timeout_seconds`),写到 `~/.config/cc-zh-watcher/config.json`(自动 0o600 权限)。任何 OpenAI 兼容 endpoint 都行(OpenAI、DeepSeek、Together、Groq、本地 vLLM 等)
76
- - 让你选要监听哪个 Claude Code session(picker 列出本项目所有 session
77
- - 选完后,watcher 从 session 的 JSONL 读出**它对应的项目目录**,提示你"要在这里装 `/i` slash command 吗?[Y/n]",回车确认即装
76
+ - 让你选要监听哪个 Claude Code session(picker 列出**所有项目**的所有 session,按最近活跃排序;不限于当前目录)
77
+ - 选完后,watcher 从 session 的 JSONL 读出**它对应的项目目录**,**静默**在那里装 `/i` slash command(不再问 Y/n —— 如果已存在就跳过,stderr 打印一行 `✓ installed /i …`)
78
78
 
79
79
  之后启动直接进 watcher,不再问。
80
80
 
@@ -86,6 +86,8 @@ cc-zh-watcher
86
86
 
87
87
  Claude 用英文流式回复时,watcher 同步翻译并显示中文,**同时把 Bash / Edit / Read 等 tool 调用按 CC 同款样式显示出来**。
88
88
 
89
+ > **macOS Claude 桌面应用用户**:桌面应用不支持 custom slash command(`/i` 不可用)。watcher 检测到 session 来自桌面应用(cwd 在 `<repo>/.claude/worktrees/<name>/` 下)时会自动改提示成「粘贴 `@.claude/cache/user-input.md` 到 Claude 桌面应用」—— 桌面应用支持 `@mention` 语法把文件内容内联进 prompt。watcher 还提供 `Ctrl+Y` 一键复制这条命令、`Ctrl+B` 一键复制英文翻译。
90
+ >
89
91
  > 想跳过引导直接编辑配置:`~/.config/cc-zh-watcher/config.json`,schema 见 [配置文件](#配置文件) 段。要再次配置 endpoint,直接 `Ctrl+E` 进 watcher 设置面板。
90
92
 
91
93
  ---
@@ -195,12 +197,14 @@ Claude 用英文流式回复时,watcher 同步翻译并显示中文,**同时
195
197
 
196
198
  | Toggle | 默认 | 说明 |
197
199
  |---|:---:|---|
198
- | `notify_on_complete` | **on** | Claude 一个 turn 结束 2 秒后响终端 bell(`\x07`)|
200
+ | `notify_on_complete` | **on** | Claude 一个 turn 结束(`stop_reason=end_turn`)**且** en→zh 翻译队列耗尽时响一次终端 bell(`\x07`)。中间 tool 调用或 thinking 不响 |
199
201
  | `translate_thinking` | off | 译 Claude 的 thinking 块(Opus 4.7 多为 redacted;空块自动跳过)|
200
202
  | `translate_todos` | **on** | 译 TodoWrite 计划项(按当前状态自动选 `content` 或 `activeForm`)|
201
203
  | `translate_agent` | **on** | 译 Agent/Task 子代理派遣(description + prompt)|
202
204
  | `context_enabled` | **on** | zh→en 翻译时用 Claude 上一条 text 作消歧 context |
203
- | `show_tool_calls` | **on** | 显示原始 tool 调用 + 结果(Bash/Read/Edit 等,CC 同款样式)|
205
+ | `show_tool_calls` | session-aware ¹ | 显示原始 tool 调用 + 结果(Bash/Read/Edit 等,CC 同款样式)|
206
+
207
+ ¹ `show_tool_calls` 默认值取决于 session 类型:CLI session 默认 **on**,macOS Claude 桌面应用 session 默认 **off**(桌面应用界面里已经能看到 tool 调用,watcher 再渲染一遍是噪音)。在 config 里显式写 `"show_tool_calls": true/false` 始终覆盖这个 session-aware 默认值。
204
208
 
205
209
  ### User prompt(3 个,每翻译方向一个)
206
210
  - Enter 弹满屏多行编辑器,Ctrl+S 保存、Esc 取消
@@ -249,9 +253,13 @@ cc-zh-watcher -h / --help
249
253
  |---|---|
250
254
  | `Enter` | 翻译并发送(pre-flight check 触发警告时,再按一次 Enter 确认)|
251
255
  | `Ctrl+E` | 打开设置面板 |
256
+ | `Ctrl+Y` | 复制「触发命令」到系统剪贴板:CLI 上是 `/i`,桌面应用 session 上是 `@.claude/cache/user-input.md` |
257
+ | `Ctrl+B` | 复制最近一次英文翻译到系统剪贴板(任意场合粘贴用)|
252
258
  | `Esc` | 清空输入 + 已显示结果 + 错误状态 |
253
259
  | `Ctrl+C` | 退出 watcher |
254
260
 
261
+ > `Ctrl+Y` / `Ctrl+B` 在没有翻译可复制时不动作。剪贴板调用走系统原生工具(macOS `pbcopy` / Windows `clip` / Linux `xclip`)—— Linux 上若没装 xclip / wl-copy,状态栏会提示。
262
+
255
263
  Session picker(Ctrl+E → Enter on session row,或首次启动 / `--pick`):
256
264
 
257
265
  | 键 | 动作 |
@@ -395,7 +403,7 @@ cc-zh-watcher prompts show zh-to-en --base
395
403
  "translate_todos": true, // 默认 true
396
404
  "translate_agent": true, // 默认 true
397
405
  "context_enabled": true, // 默认 true
398
- "show_tool_calls": true, // 默认 true
406
+ "show_tool_calls": true, // 默认 session-aware:CLI on, 桌面应用 off
399
407
 
400
408
  // ── 可选:user prompt(非空替换内置 default) ──
401
409
  "prompts": {
@@ -487,9 +495,14 @@ Opus 4.7 的 thinking 几乎全是 signature-only redacted(空块),译了
487
495
 
488
496
  很多终端默认禁用音频 bell(用闪屏代替)。iTerm2: `Profiles → Terminal → Silence terminal bell` 取消勾选;Terminal.app: `View → Allow Audible Bell`。或者把 `notify_on_complete` 关掉。
489
497
 
498
+ 注意:watcher **每个 turn 只响一次**,时机是「Claude 给出最终输出(`stop_reason=end_turn`)+ 中文翻译队列耗尽」—— 中间的 tool 调用和 thinking 不会触发响铃。如果你 0.2.x 时代记得"每段都响"或"译到一半就响",是当时基于 2 秒 debounce 的旧策略,0.3.0 改了。
499
+
490
500
  ### Claude Code 找不到 `/i` 命令?
491
501
 
492
- 第一次启动 watcher 时若你点了 `n` 跳过自动安装,重新启动 watcher 会再问一次(只要 `.claude/commands/i.md` 不存在就会问)。或者直接复制 [assets/i.md](./assets/i.md) 到项目的 `.claude/commands/i.md`。
502
+ watcher 启动时只要 `<projectDir>/.claude/commands/i.md` 不存在就会**静默装上**(stderr 打印一行 `✓ installed /i …`)。如果还是找不到:
503
+ - 看启动日志里有没有 `note: couldn't install /i …`(写入失败时会打印原因,不阻塞启动)
504
+ - 或者直接复制 [assets/i.md](./assets/i.md) 到项目的 `.claude/commands/i.md`
505
+ - **macOS Claude 桌面应用用户**:桌面应用不支持 custom slash command —— 用 `@.claude/cache/user-input.md` 替代(按 `Ctrl+Y` 一键复制这条命令,粘贴到桌面应用即可)
493
506
 
494
507
  ### 卸载?
495
508