kuaifan
|
a3d5bdf93c
|
feat(ai-assistant): 重构页面操作为统一执行器(Web DOM floor + Electron CDP 双后端)
页面操作(doo page → /ws → 浮窗 operation-module → action-executor)原用手写
iView-only 选择器 + 朴素 value= 赋值,在 React+Radix 同源 iframe 业务表单上几乎
填不进。重构为「复用 Playwright 注入脚本的描述层 + 按环境选后端的执行层」:
描述层(共用):
- 新增 aria/aria-bundle.js,vendoring Playwright ariaSnapshot/roleUtils/domUtils
子集预构建为 ESM(Apache-2.0 NOTICE + 固定上游 commit),产出 YAML 快照与活的
ref→Element Map。
- page-context-collector 改用 buildSnapshot 采集,operation-module 经 setRefMap
以 Map 直接持有元素取代 selector 反查。
执行层(按环境选后端,失败回退):
- web-backend:原生 prototype value setter + beforeinput/input/change/blur 序列
+ 回读校验(不符报 value_not_applied,绝不假报成功);自定义下拉/日期 open→click。
- electron-backend + electron/lib/page-input.js:经 webContents.debugger 走 CDP
Input 域产生 isTrusted=true 可信输入(insertText/dispatchMouseEvent/KeyEvent),
任一步失败回退 Web 后端。
- 复杂控件(动态明细表/成员选择器/文件上传)如实返回 unsupported_widget。
协议与链路(doo page、active-context 失效守卫、导航类 action)保持不变。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-17 02:03:59 +00:00 |
|
kuaifan
|
88fed0744c
|
feat(ai-assistant): 页面操作穿透到当前微应用 iframe 内部
- 新增 active-context.js:按 microApps 解析最前的同源微应用 iframe(src 匹配 + contentDocument 同源探测),给出 doc/frameKey
- 采集器/执行器从只认主 document 泛化为按 el.ownerDocument 自适应,覆盖主文档与 iframe;视口与事件构造器取元素所在 window
- operation-module 加 scope(auto/main/app)、跨源/未就绪降级、frame 标注,并存活动上下文供失效守卫
- ai-kb 同步 page-action / page-context-tool / element-action 三 chunk
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-12 07:02:35 +00:00 |
|
kuaifan
|
da095a1a80
|
feat(ai-assistant): 页面操作搬到主程序 /ws + doo task notify + 删 OCR
页面操作传输层从 MCP 独立 WebSocket 迁到主程序常驻 /ws:
- 后端 AssistantController 加 operation__dispatch/result(fd 归属校验 +
PushTask 精推 + Cache 轮询取结果),WebSocketService onMessage 加
operationResult 回包分支
- 前端 actions.js 加 case "operation" 经 emitter 桥接到浮窗执行后回包;
float-button.vue 接 aiOperationRequest;operation-module.js 解耦、
executor 惰性化;删除 operation-client.js(不再单连 MCP WS)
ai-kb 同步:tool-binding.yaml 去掉 4 个工具(3 页面 + OCR),相关 chunk
reconcile(措辞去 MCP 化、OCR 改多模态识图),工具数 33→29
i18n:后端新增文案登记 original-api.txt
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-12 01:31:21 +00:00 |
|
kuaifan
|
39b9a72b16
|
refactor(ai-assistant): 用内联深链替代 driver.js 页面引导
「带我去」分步引导(driver.js + 四级元素定位 + show_guide)定位不稳、
二级菜单不可达、点高亮按钮触发跳转即被杀,体验差。改为 AI 回复正文里把
可定位的页面/面板渲染成可点深链 chip,点击直达那一屏。
- 新增深链目录:_meta/page-links.yaml(语义,供 AI 选择)+ deep-links.js
(可执行映射,21 个无需运行时 id 的导航目的地),两端 id 一致性由
tests/deep-links-parity.mjs 校验
- markdown.js 加 processDeepLinks:[文字](dootask://link/<id>) 合法 id →
chip,非法 id → 纯文字(绝不渲染死链);复用现有 dootask:// 点击拦截链路
- DialogMarkdown 加 link 分支调 openDeepLink;system.vue 支持 query.tab
初始化,系统设置二级 Tab 可深链直达
- 彻底移除 driver.js 引导:删 guide-renderer.js/guide.css、show_guide
前端通道、aiGuideStarted 监听、driver.js 依赖
- 同步 ai-kb:改写 guide/start-guide 两 chunk、tool-binding 去 show_guide
- 插件侧 prompt 改动规格见 docs/ai-deeplink-plugin-spec.md(独立仓库实施)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-10 23:55:09 +00:00 |
|
kuaifan
|
4de6c69972
|
feat(ai-assistant): RAG 反馈闭环 + driver.js 页面操作引导
方向7 反馈闭环:
- 新增 ai_assistant_search_logs / ai_assistant_feedbacks 两表 + 模型
- AssistantController 加 log__search / feedback__save 端点,auth 透传 session_id→context_key
- 前端 AI 回复下方 👍/👎(可改票、随会话持久化回显),extractSourceIds 解析引用
- ai-kb:feedback chunk + README 运营 SQL 口径(低分 top query / 👎 source)
方向4 页面操作引导:
- 渲染层用 driver.js(高亮可点击挖洞 + 稳定定位),编排层自研
(脚本 schema / 四级元素定位 / 跨页 pre_action 导航 / 找不到降级文字)
- leave-semantics:跳转动作在点「下一步」后才执行
- markdown.js 渲染 ```ai-guide 围栏为「带我去」按钮;DialogMarkdown 点击启动
- 近义词归一化(创建/新建/新增/添加互通)提升 target 命中
- ai-kb:guide/start-guide chunk + tool-binding 加 show_guide
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-10 16:07:08 +00:00 |
|
kuaifan
|
f8b335a003
|
feat(ai-assistant): 增加元素向量匹配与关键词搜索能力
- 新增后端 match_elements API,使用向量相似度匹配页面元素
- 页面上下文采集支持关键词过滤,按 name/aria-label/placeholder/title 匹配
- 关键词匹配失败时自动降级为向量搜索
- 改进 findElementByRef 函数,使用 selector + name 双重匹配提高准确性
|
2026-01-18 11:50:27 +00:00 |
|
kuaifan
|
0ac4b546ba
|
feat(ai-assistant): 实现 AI 前端操作能力
新增三个 MCP 工具的前端支持:
- get_page_context: 基于 ARIA 角色收集页面元素,支持分页和区域筛选
- execute_action: 执行导航操作(打开任务/对话、切换项目/页面)
- execute_element_action: 元素级操作(click/type/select/focus/scroll/hover)
新增文件:
- operation-client.js: WebSocket 客户端,处理与 MCP Server 的通信
- page-context-collector.js: 页面上下文收集器,ref 系统和 cursor:pointer 扫描
- action-executor.js: 操作执行器,支持智能解析如 open_task_123
- operation-module.js: 模块编排,整合上述模块
修改文件:
- float-button.vue: 集成 operation-module,AI 助手打开时启用
- index.vue: 发射关闭事件供 float-button 监听
|
2026-01-18 01:35:13 +00:00 |
|