# 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`,包含统一添加菜单、文件来源子菜单、专家选择面板。当前专家子菜单实际显示“暂无可用专家”,因此选中后的页面呈现、实际专家执行及附件发送链路尚未实测,不能根据组件源码宣称闭环通过。 ## 统一入口 输入框左下角“+”是“更多操作”,不是直接打开文件选择器。当前主菜单: 1. 添加文件。 2. 分隔线。 3. 模式。 4. 专家。 5. 技能。 6. 连接器。 鼠标进入条目即打开二级菜单,支持在主菜单和二级菜单之间移动。源码对子菜单离开采用 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 后续落地顺序 1. 共用一个 Composer 添加菜单组件,覆盖新建任务、项目内输入及已有对话;将现有技能和连接器选择整合到统一 + 入口,保留其真实能力选择逻辑。 2. 实现本地文件选择、草稿附件移除、提交/失败恢复、对话重载与分支引用,以及后端实际读取/图片输入合同。项目文件引用独立记录来源,不能只有一个显示用标签。 3. 按 P3 实现专家登记、依赖校验、选择和指令注入;非空会话切换专家按既定方案新建分支/聊天,不能静默替换已有历史的角色。 4. 验收菜单的悬停迁移、键盘/Escape、点击外部、边缘避让、六档字号,以及生成中操作对当前回合不产生影响。附件发送与专家执行必须使用私有测试会话验证实际后端链路。 上述为最初参照调查。后续已落地统一添加菜单与本地附件,具体已实现行为和真实验收边界见 [输入框菜单与附件进度](ygent-attachments.md);专家、项目资产和云来源仍未实现。