Files
ycode/docs/reference/workbuddy-composer-reference.md

5.7 KiB
Raw Permalink Blame History

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、点击外部、边缘避让、六档字号,以及生成中操作对当前回合不产生影响。附件发送与专家执行必须使用私有测试会话验证实际后端链路。

上述为最初参照调查。后续已落地统一添加菜单与本地附件,具体已实现行为和真实验收边界见 输入框菜单与附件进度;专家、项目资产和云来源仍未实现。