39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
"""Rich 控制台主题: 统一 dark 终端友好的配色。
|
|
|
|
设计目标: 在黑底终端上,所有文字 readable,且语义有层次。
|
|
- 弱化用 grey50/grey70 而不是 dim —— 一些终端把 dim 渲染得过暗。
|
|
- 强调色一律走 bright_* —— 8 色版的 blue/cyan 在 Windows 深底太黯。
|
|
- 用语义样式名(user / assistant / tool / ok / warn / err / info / muted),
|
|
避免在调用处硬编码颜色,以后改主题只动这一处。
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from rich.console import Console
|
|
from rich.theme import Theme
|
|
|
|
ZCBOT_THEME = Theme(
|
|
{
|
|
# 通用层次
|
|
"info": "grey70", # 普通信息(系统反馈、路径、命令提示)
|
|
"muted": "grey50", # 真要弱化的次要内容(预览、spinner 文本)
|
|
"accent": "bright_cyan", # 强调(模型名等)
|
|
# 角色
|
|
"user": "bold bright_magenta",
|
|
"assistant": "bold bright_cyan",
|
|
"tool": "bold bright_yellow",
|
|
# 状态
|
|
"ok": "bright_green",
|
|
"warn": "bright_yellow",
|
|
"err": "bold bright_red",
|
|
# task 状态列
|
|
"status.active": "bright_cyan",
|
|
"status.completed": "bright_green",
|
|
"status.abandoned": "grey50",
|
|
}
|
|
)
|
|
|
|
|
|
def make_console() -> Console:
|
|
"""创建带 zcbot 主题的 Console。所有 TUI 入口都应通过这个工厂拿 console。"""
|
|
return Console(theme=ZCBOT_THEME)
|