5.7 KiB
WorkBuddy 输入框:添加文件与专家参照
采集日期:2026-10-08。本文记录实际运行界面与安装包源码,不代表 Ygent 已实现附件或专家。
证据与范围
通过 WorkBuddy 原生 Electron CDP 9223 获取 DOM、计算样式和矩形,通过 app.asar 读取组件逻辑;未使用 computer-use。实测视口 1334×888、DPR 1。真实对话 DOM 仅保存在用户私有目录 ~/.ygent/imports/hello-layout-20261008/,不提交。
主要源码:renderer/assets/wb-status-chips-CEdDJaZl.js,包含统一添加菜单、文件来源子菜单、专家选择面板。当前专家子菜单实际显示“暂无可用专家”,因此选中后的页面呈现、实际专家执行及附件发送链路尚未实测,不能根据组件源码宣称闭环通过。
统一入口
输入框左下角“+”是“更多操作”,不是直接打开文件选择器。当前主菜单:
- 添加文件。
- 分隔线。
- 模式。
- 专家。
- 技能。
- 连接器。
鼠标进入条目即打开二级菜单,支持在主菜单和二级菜单之间移动。源码对子菜单离开采用 120ms 延迟收起,触屏通过 pointer down 选择。关闭主菜单会清空当前子菜单。菜单项是否展示取决于调用方是否提供对应功能;源码还存在引用文件、应用入口,但当前界面未展示。
布局测量
以下为当前字号下的实测值,位置仅用于定位此次采集,不应硬编码到 Ygent:
| 元素 | 位置 / 尺寸 | 样式 |
|---|---|---|
| +触发器 | x428、y807,32×32 | 圆形;展开背景 rgb(242,242,242),图标16×16 |
| 主菜单 | x428、y602,200×197 | 内边距8,圆角16,白底 |
| 普通条目 | 宽182、高32 | 水平内边距8,圆角8,14px / 22px |
| 文件子菜单 | x623、y611,200×186 | 内边距8,圆角16 |
| 专家空态子菜单 | x623、y690,240×50 | 内边距8,圆角16 |
条目字体为 "PingFang SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif。菜单阴影为 0 6px 24px rgba(0,0,0,.04), 0 4px 6px rgba(0,0,0,.04)。主菜单向上展开,子菜单向右并沿相应条目定位;不是全屏居中的弹窗。Ygent 应接入现有六档字号管理,不能把此处实测14px作为全局固定字号。
添加文件
当前二级菜单实际包含:本地文件、项目资产、腾讯文档、ima、乐享知识库。
源码提供独立来源回调:本地文件、腾讯文档、ima、乐享,另外可由调用方注入额外来源;当前项目资产属于界面提供的额外来源。点击来源调用相应回调,然后关闭添加菜单。来源选择与文件选择/导入分层,云服务不能等同于本地上传。
本轮没有选择真实文件或连接外部服务。文件类型限制、数量/大小上限、导入进度、草稿附件显示与失败重试尚未验收;当前 DOM 没有 input[type=file],不能据此推断不支持多选或没有限制。
Ygent 当前差距:普通对话的 + 仅显示“附件上传:M4 落地”,新建任务显示“附件上传:开发中”。两个入口都没有真正文件选择、草稿附件和发送数据链路,不能只替换弹出菜单就称为上传完成。
建议首期实现本地文件与项目文件引用;腾讯文档等入口在对应连接器真正可用后增加。先明确“上传副本”与“引用现有项目文件”的区别,不因添加到草稿就隐式移动文件或扩大执行目录。
专家
当前界面空态为“暂无可用专家”。以下为同一组件源码确认的能力,受调用方配置限制,不保证当前页面全部启用:
- 专家使用
selectedExpertId单选;选中项显示勾选,再选同一专家仅关闭菜单,不重复触发选择。 - 行结构是16px头像、名称与右侧操作。名称优先使用 profession,其次 name、id;不是直接显示原始文件名。
- 可选搜索框支持中文输入法组合事件;搜索具有加载、不可用、无结果等独立状态。
- 普通列表由置顶、最近使用、推荐项合并去重;推荐补足目标5项,超过10项启用滚动。置顶点击阻止冒泡,不触发选择专家。
- 搜索结果走独立召唤回调;回调返回 false 时不关闭菜单。普通列表走选择回调,选择后关闭。
- 调用方可提供“更多专家”入口,也可关闭推荐和搜索。因此当前只有空态不能作为完整专家面板的样式参照。
Ygent 当前差距:专家管理与选择未实现;Skill/MCP 已有能力登记与会话选择,但不是专家本身。专家执行仍按 ygent-capability-integration-plan.md 的 P3 处理,不能用角色标签冒充指令、依赖和回合快照已经接入。
Ygent 后续落地顺序
- 共用一个 Composer 添加菜单组件,覆盖新建任务、项目内输入及已有对话;将现有技能和连接器选择整合到统一 + 入口,保留其真实能力选择逻辑。
- 实现本地文件选择、草稿附件移除、提交/失败恢复、对话重载与分支引用,以及后端实际读取/图片输入合同。项目文件引用独立记录来源,不能只有一个显示用标签。
- 按 P3 实现专家登记、依赖校验、选择和指令注入;非空会话切换专家按既定方案新建分支/聊天,不能静默替换已有历史的角色。
- 验收菜单的悬停迁移、键盘/Escape、点击外部、边缘避让、六档字号,以及生成中操作对当前回合不产生影响。附件发送与专家执行必须使用私有测试会话验证实际后端链路。
上述为最初参照调查。后续已落地统一添加菜单与本地附件,具体已实现行为和真实验收边界见 输入框菜单与附件进度;专家、项目资产和云来源仍未实现。