问题
flexllm 现有 CLI 没有 TTY 感知,违反 agent-cli-guide P4。agent 调用场景几乎都在非 TTY,但:
- 非 TTY 下仍然输出 ANSI 颜色 / rich 表格
- `chat` 多轮模式在非 TTY 下会挂起等待输入(agent 无法判断)
- 未支持 `NO_COLOR` / `TERM=dumb` 环境变量
- 没有统一的 `--yes` / `--no-interactive` 绕过确认
目标
- 顶层加一个 `_detect_non_tty()` helper,检测 `not sys.stdout.isatty()`
- 非 TTY 时:
- 默认 `--format json`(如命令支持)
- 禁用 rich 颜色输出(`Console(no_color=True, force_terminal=False)`)
- 禁用所有 `Prompt.ask`,缺输入直接报错退出码 2
- 尊重 `NO_COLOR` 和 `TERM=dumb` 环境变量
- 新增全局标志:
- `--no-interactive` / `-y`:跳过所有确认提示
- `--no-color`:强制禁用颜色
- `--color`:强制启用颜色
- 在顶层 help 的 "Global Options" 说明 TTY 行为差异
验收
问题
flexllm 现有 CLI 没有 TTY 感知,违反 agent-cli-guide P4。agent 调用场景几乎都在非 TTY,但:
目标
验收