AI Agent Input
Agent 输入框:hairline 白卡 + 附件 chips + 发送/spinner + enhancing 渐变环。优先级 P2,已移植(1:1 aicss.dev;MVP 接线核心交互,菜单系样式类全量入库)。
① 活体演示
可真实输入、增删附件 chip。四态映射(输入端组件语义):empty(无输入,placeholder)/ ok(有内容,发送钮反色激活)/ running(已提交,spinner)/ error(发送失败,hairline 染 danger)。「Enhancing」开关演示 conic 渐变环 + 文本 shimmer(上游特色态)。
② 对比台
左:wb-ui 活体(带附件 chip 的就绪态);右:aicss.dev 原站截图存档(2026-08-13 采集,可滚动)。

③ 真实字段说明
无消费型真实事件,输入端组件:本组件不消费 run event(字段真源 packages/contracts/workbench-events.mjs:11-77 的 9 个 type 都是产出侧),而是产生输入——文本经 composer 提交为 POST /runs 的 prompt,附件走 WORKBENCH_RUN_DIR/attachments 物化管道。run 状态只用于回显发送钮形态:
| 数据流向 | 字段 / 通道 | 驱动行为 |
|---|---|---|
| 产出:提交 prompt | POST /runs(composer 现有提交管道) | onSend(text) 回调,随后 running(spinner) |
| 产出:附件 | composer 附件上传 → run 目录 attachments/ | chips 增删(渲染层,不改上传管道) |
回显:workbench.run.status | payload.status | running → spinner;终态恢复可输入;提交失败 → error |
| (未输入) | — | empty 态:placeholder |
上游完整交互中的「+菜单 / 技能 pill / slash 面板 / 模型 flyout」样式类已全量入库(ai-agent-input.css),MVP 行为层未接线——workbench 已有自己的命令面板(docs/71)与模型选择,接入轮按需复用这些类,不重复造轮子。
④ 用在 workbench 哪个位置
接入点:composer 输入区(apps/web/index.html 底部输入框与发送钮)——轮 3b 在 ?ui=next 灰度下 composer 换皮:frame/hairline/按钮行/chips 用本组件样式。硬红线(契约 3.D.4):不改 Enter/IME 发送行为,cc:test:composer-keys 必绿——只换 class 与视觉,键盘事件处理逻辑一行不动。
⑤ 复制即用代码
引入 tokens + 组件 CSS/JS。全部相对路径、零依赖。
<link rel="stylesheet" href="design/wb-ui/lib/tokens.css"> <link rel="stylesheet" href="design/wb-ui/lib/components/ai-agent-input.css"> <script src="design/wb-ui/lib/components/ai-agent-input.js"></script>
var h = WbUI.promptInput.render(el, {
placeholder: "Ask anything",
chips: [{ name: "design.pdf" }],
onSend: function (text) { // 对接 composer 现有提交管道
h.set("running"); // POST /runs 后 spinner
}
});
h.set("ok"); // run 终态恢复
h.set("error"); // 提交失败(hairline 染 danger)
h.setEnhancing(true); // 上游 enhancing:conic 环 + shimmer