Files
ycode/docs/专家技能连接器拆解-2026-10-16.md

92 lines
10 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.
# 专家、技能、连接器:复刻拆解(2026-10-16)
本轮完成原版实拍与源码评估,未修改 YCode 生产代码。观察对象为 WorkBuddy 5.8.2,全部通过 REA;没有安装、启用、授权或保存任何原版能力,也没有向原版发消息。取证结束已恢复原版首页。
结论:该入口包含统一管理页面、三套能力生命周期,以及与输入框、会话和运行时的联动。YCode 当前侧栏入口仍为占位,历史消息中的工具卡或词典不能算这些能力已经实现。
## 功能边界
| 部分 | 原版已确认内容 | 实际运行所需 |
| --- | --- | --- |
| 统一入口 | 侧栏三项菜单、顶部专家/技能/连接器 tabs;各自搜索、主题、滚动、窄布局与返回导航 | 页面状态管理;切换页面保留会话、草稿与右栏状态 |
| 专家 | 市场推广、分类、专家/专家团、综合/最热/最新、详情/案例、我的专家及创建/购买分类 | 专家目录与包;本地/云状态;激活、依赖检查、会话身份与助理显示快照 |
| 技能 | 精选、推荐/SkillHub/套件、分类搜索、详情、已安装及批量管理;查找/上传/创建菜单 | 技能扫描/安装/升级/删除/启停、内容与资源读取、运行时刷新;用户调用与模型自动调用的开关语义 |
| 连接器 | 商店、详情、示例、连接状态、Token/OAuth/device-code 配置;自定义 MCP 管理 | 目录与连接状态服务、凭据/授权、服务器生命周期、工具发现/开关/调用/重连/取消 |
| 会话联动 | 输入框选择专家、技能、连接器;recent/pin、引用块、依赖提示、错误/安装进度与调用结果 | 会话级配置、持久化、回合配置快照、OMP/备用内核的上下文与工具适配 |
三部分各自有不同契约:专家可以激活插件并带入技能与连接器依赖;技能提供可加载的指令、资源与流程;连接器向运行时提供外部能力。不能统一缩成同一种列表和一个 installed 布尔值。
## 专家拆分
1. 市场与详情:推广场景、分类、搜索排序、专家/专家团、头像标签、案例与召唤入口。
2. 我的专家:创建/购买来源、本地与云状态、编辑、导入导出、删除、同步、覆盖确认与空态。
3. 对话式创建/编辑:原版通过 `expert-manager` 技能与提示词返回首页,监听会话产出的专家包再刷新列表。需要恢复该技能正文、包格式与发现机制,不能先换成普通 prompt 编辑表再宣称等价。
4. 激活与会话绑定:调用 summon/插件激活,检查依赖,保存运行时身份与助理显示快照;切换失败回滚,处理草稿/会话并发。
5. 专家团:成员展示可以单独恢复;实际团队调度、各成员执行及云服务仍需额外证据和单独验收。
关键事实:选择专家不只是修改输入框标签;创建入口也不只是新增一条 JSON 记录。精确函数、字段、IPC 与未知见 [专家评估](assessment-experts-2026-10-16.md)。
## 技能拆分
1. 市场与详情:推荐、SkillHub、套件、分类、搜索、文档/文件树、资源预览、安装/使用入口。
2. 本地注册表:来源、路径、版本、可用性、启用状态、套件成员、安装来源;读取技能正文与随包资源。
3. 安装生命周期:文件夹/ZIP/URL导入、同名覆盖与更新、修改检测、卸载及文件变化刷新。
4. 扫描与权益:扫描中、失败、风险确认、阻断、超时;付费、已购、授权、云端仅存在等状态。这些状态已有源逻辑,真实扫描/权益结果不能由本地假成功替代。
5. 调用:输入框添加、slash/引用块、最近与置顶;区分用户可调用、模型可自动调用、是否已在当前运行时就绪。安装完成后还需等待运行时命令刷新。
当前原版账号实拍为五个已安装条目,包含套件徽标;这只是账号当前状态,不作为写死的产品规格。具体源码与九个有界任务见 [技能评估](assessment-skills-2026-10-16.md)。
## 连接器拆分
1. 商店与详情:搜索、列表加载与分页、已有/可添加状态、企业目录条件、详情、使用示例、工具信息。
2. 连接状态机:未连接、连接中、已连接、待授权、未授权、错误及修复;连接、取消、重授权、断开与删除有不同语义。
3. 授权:Token多字段配置、OAuth外部跳转与回调、device-code 倒计时和轮询;具体应用各自有服务要求。
4. 自定义 MCP:服务器添加配置、健康状态、搜索、工具计数、整服务与逐工具启停、编辑、删除、信任审批和工具过多提示。
5. MCP host 与会话注入:配置读取不等于工具可调用。需要实际连接/发现/调用,处理工具名称映射、取消、断线重连、进程释放与会话配置隔离。
实拍确认卡片主体打开详情,加号是独立连接动作;QQ 邮箱详情收到 Escape 后仍打开,应按它自己的关闭规则恢复。官方账号解绑、自定义 MCP 删除、临时断开不能合并成一个删除动作。详细状态矩阵和A–G任务见 [连接器评估](assessment-connectors-2026-10-16.md)。
## YCode 当前基线
| 可复用的现有能力 | 当前缺少的部分 |
| --- | --- |
| 真实模型管理与两种 API 协议、OMP/备用网关、preload/IPC、会话持久化、回合配置快照、工作空间、工具执行/审批与结果渲染 | 专家/技能/连接器页面路由与数据服务、三个注册表、包安装器、专家包激活、MCP client/host与授权管理、输入引用/选择与会话能力配置 |
| 原版已采 JS/CSS/SVG 与 REA 画面;当前 theme/layout/host adapter 的恢复经验 | 原版完整 daemon 行为、专家包 schema、`expert-manager` 正文、真实扫描/授权/云目录与同步服务、完整响应式与全状态像素验收 |
源码依据:`src/renderer/src/mock.ts` 的 experts 项仍 `implemented:false`;Sidebar 非新任务入口只显示未实现提示;Composer 的添加菜单当前提供文件和路径引用,未接专家/技能/连接器。YCode现有工具展示不能证明能力管理已实现。
## 推荐实施顺序与验收
以下是 YCode 的实现建议,不冒充原版内部架构。最终目标仍是完整复刻;云服务与团队调度按用户此前安排分后续阶段。
| 阶段 | 有界工作包 | 完成标准 |
| --- | --- | --- |
| 0 | 补专家包/技能目录/daemon 契约证据,确定三个能力注册表与会话接口 | 未知字段显式列出;包格式、状态与scope有证据,现有模型/空间/对话不被覆盖 |
| 1 | 原版统一页面、三类列表/搜索/详情、我的/已安装视图和弹层 | 恢复源DOM/CSS/SVG/状态逻辑;真实路由可切换;数据占位和功能实现分开记录 |
| 2 | 本地技能管理与运行时加载 | 临时工作空间真实导入/启停/升级/卸载;下一回合确实加载/卸载技能,文件变化与scope隔离正确 |
| 3 | 自定义 MCP host 与管理页 | 实际受控 MCP 服务可连接、列工具、执行、取消、重连和释放;禁用工具不再发给模型,凭据不进正文 |
| 4 | 专家本地创建/编辑/导入、依赖与会话激活 | 对话产生真实专家包、被发现并显示;选用后改变实际执行;身份/依赖/切会话/重启恢复正确 |
| 5 | 三类输入框选择、slash/引用、recent/pin、状态与工具反馈 | 明确引用发送到正确会话与空间;失败回滚、重复点击、安装中调用和运行中切换均实测 |
| 6 | 应用连接器、云目录/同步/扫描/权益、企业功能和专家团 | 使用自有/获授权服务完成真实端到端验收;源码接口或相似界面不能替代服务结果 |
| 7 | 全状态1:1验收 | 固定版本/视口/主题/渲染环境;正常、loading、空态、搜索无结果、失败、安装/授权/连接中、禁用、更新、窄窗、键盘与动效逐项对照 |
页面恢复可以与本地能力服务并行;专家功能链路依赖技能和连接器的能力,建议先落实后两者的运行时接口再集成专家。不要将所有数据和状态放进聊天 store;建议三类服务各自管理生命周期,由会话层保存稳定引用与回合快照。
## 原版证据与本轮限制
WorkBuddy 5.8.2,ASAR SHA `035254bc76310ea46317433e4840602094543ef323d2d5c5aff7c131729de918`。静态源码以 REA `ev_717fa5e846e64d67ac19c8925d121bff632c0d3aefb3603b10858559cabb2dcb` 与本轮 `ev_e91787b1d4dea651582c6cf12827775b9068b0ee8b80c68ba08d4c1d87d94e90` 为主,相关脚本SHA已核对;各模块报告保留具体SHA、UTF-16 offset与证据范围。
| 实拍范围 | REA Evidence |
| --- | --- |
| 专家市场稳定页面 | `ev_20de2f04c99b1c27bc39b61f5e2f5a430c3c7029b09afb76b363652eb4fadc89` |
| 我的专家空态稳定页面 | `ev_6f00d8b339cb4baf0af2a68f797e93dd6b5ce3ab18da2b43aa63ec09952c1d93` |
| 技能市场动作帧(partial) | `ev_c827c8dc7dee0c67c7870f6bf8417b87ec7b4d90d507ecc5dc592b5878579f10` |
| 已安装技能稳定页面 | `ev_9d8628a28fed60291e628cebaec55537bfb8274d4b6c8f746bffadcbc277d3fb` |
| 添加技能菜单动作帧(partial) | `ev_ddef9315aaf0ff534cf02573212e205ba70e5b69dfc1b3dcf555b430920faf22` |
| 连接器市场稳定页面 | `ev_e91bdc6e46275f4460985cfff25fd7f7bc334afc45f49fac1935de1249f4cb22` |
| QQ邮箱详情与Escape动作帧(partial) | `ev_b898a87832d1e800810d391145a6ec6c6999e98b5cea6c7f382a3fc19aa7b3ac` |
| 自定义MCP稳定页面 | `ev_b89281177f6a1cf2e4697887d576b8ddf7d811a8fa2d1148b7024a4ec898906f` |
| 取证结束恢复首页稳定页面 | `ev_57f37739095ddd23938918a3cb0e299186b1febc05a002be1468ee7cfa0cb9a8` |
部分 action 的原生点击/等待及PNG已成功,但末尾 neutral-pointer cleanup 被取消,REA probe整体标failed;保留该失败,不说整条场景通过。对应帧只证明图中的操作后画面,顶层layout仍是操作前;另采静态页才作为稳定布局证据。验证命令 `node scripts/audit-capability-runtime.mjs`,输出 `.tmp/capability-assessment-20261016/runtime-index.json`。本轮未实现功能、未做YCode像素比较,也没有真实安装/扫描/授权/专家执行验收。