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

71 lines
5.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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);专家、项目资产和云来源仍未实现。