.agents/skills/builtin-tool/references/ui/principles.md
这些原则用于判断一个 builtin tool 的 Inspector / Render / Placeholder / Streaming / Intervention / Portal 应该做什么,以及做到什么程度。
args 还在 streaming、工具执行中、执行完成、执行失败时都应该有稳定展示;必要时同时读取 args、partialArgs 和 pluginState,避免出现空白、跳变或只显示半截参数。<api>.loading / <api>.completed 一对键(见 lobe-agent.apiName.callSubAgent.{loading,completed} 与 lobe-claude-code.task.{create,list,update,get}.{loading,completed}),渲染时按 isArgumentsStreaming || isLoading 决定取哪一个。只读 / 查询类(“查看任务” 这种本来就是名词性的)可以共用一个键。args 解释意图,用 pluginState 展示真实执行结果;但 pluginState 只放结果域数据,不要反向塞入可以从 args 推导出的内容。@lobehub/ui / base-ui、Flexbox、createStaticStyles 和 cssVar.*,遵循现有间距、圆角、颜色、字号;不要为单个工具发明一套独立视觉语言。具体的样式约定见 shared-rules.md。/devtools 里准备覆盖典型态、loading/streaming、空态、错误态、长内容态的 fixture;一个 API 如果在真实聊天里会出现,就不应该在 devtools 中缺席。