SuperAPI AI 工具集

widgets-state-security-distribution

编程与开发

查看项目

更新于 10-15 23:42

技能介绍

用途:当 TUI 需要产品级交互模式、健壮的应用状态、安全的终端处理、用户自定义或发布指导时使用本技能。

主要能力: 组件设计:每个组件需考虑状态、焦点规则、键盘行为、鼠标行为(如支持)、校验、无障碍回退与快照测试。交互保持可预测:列表导航、表格排序/筛选/分页、表单就近校验、对话框焦点锁定、命令面板搜索命令、滚动条指示位置但非必需。大列表/表格/树需虚拟化,并在状态中保存视口偏移、选中项与展开节点。图表、进度条、加载动画与仪表盘需提供文本摘要及减少动效/无动画模式。

状态与事件架构:推荐显式的模型-更新-视图或 reducer 架构。模型保存领域状态与 UI 状态;事件/消息表示按键、鼠标、粘贴、缩放、定时器、worker 结果与错误;更新转换状态并调度副作用;视图根据状态与尺寸渲染;副作用异步运行并返回消息。这使渲染确定、测试成本低,并防止后台任务直接写终端。

配置与定制:类 Unix 系统适当使用 XDG 基础目录,Windows 与 macOS 使用平台原生配置/缓存/状态位置。允许高级用户及 tmux/Zellij 等冲突环境重映射键位。主题按语义角色存储,而非组件专用原始颜色。严格校验配置文件,TUI 无法启动时以纯文本输出可操作的错误。

终端安全:终端输出是解释器。写入终端或日后可能在终端查看的日志前,须净化不可信文本。转义序列注入可更改标题、写入剪贴板、伪造提示、隐藏文本或破坏显示状态。除非有意渲染,否则剥离或可见转义不可信数据中的控制字符。将粘贴文本视为数据而非命令,限制粘贴长度并在完成后校验。避免从不可信内容自动执行 OSC 52 剪贴板写入。超链接应可见,避免误导性链接文本。

分发规则:记录支持的终端与回退方案。提供 --no-tui 路径用于自动化、无障碍与事故恢复。按平台惯例打包:尽量静态二进制,适当使用 Homebrew/Scoop/Winget/MSI/包管理器,附带 shell 补全、manpage 与校验和。容器中检测缺失 TTY 并提供面向行的行为。确保崩溃清理在发布构建中有效,而非仅开发环境。

参考文件:references/widget-patterns.md 与 references/state-config-distribution-security.md。