68cc5d19cc
`auto_reasoning::select` is the per-turn classifier that picks `reasoning_effort` for `reasoning_effort = "auto"`. Today it only recognises English keywords (`debug`, `error`, `search`, `lookup`), so a user typing in Chinese or Japanese never trips the tier shifts: "帮我调试代码" stays on `High` instead of escalating to `Max`, "搜索一下文件" stays on `High` instead of dropping to `Low`. For a non-English Auto-mode user that's both wrong-side-of-cheap and wrong-side-of-careful on every turn. Extracts the keyword sets into `HIGH_EFFORT_KEYWORDS` and `LOW_EFFORT_KEYWORDS` constants and adds the Chinese / Japanese vocabulary that maps to the same intents: * HIGH (→ `Max`): 调试 / 错误 / 报错 / 出错 / 崩溃 / 調試 / 錯誤 in Chinese; デバッグ / エラー / バグ in Japanese. * LOW (→ `Low`): 搜索 / 查找 / 查询 in Chinese; 検索 in Japanese. Latin lowercase is preserved (the caller still lowercases the message), and CJK matches the literal form because CJK has no case. Four new tests cover Chinese debug keywords, Japanese debug keywords, Chinese search keywords, the single Japanese search keyword, and a sanity test that ordinary CJK prose (without keyword hits) still returns `High` — matching the English-only behaviour the function already had. All previous tests (`subagent_returns_low`, `debug_or_error_returns_max`, `search_or_lookup_returns_low`, `default_returns_high`) continue to pass — the original English-only paths are unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>