helixlife-v5-cli 1.1.5 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -44,6 +44,26 @@
|
|
|
44
44
|
- **定位与多命中**:推荐 `page.locator('main').getByText('部分章节匹配', { exact: true })`;多卡并列时**必须先缩小到目标课程卡片**,避免 strict 或误触。
|
|
45
45
|
- 自测(2026-05-11):`/edu/search?keywords=…` 课程结果首条 `hover` 后,可见 tooltip 浮层(`helixlife-v5-cli run-code --filename=scripts/hover-partial-chapter-match.js` 返回 `tooltipLikeCount ≥ 1`)。
|
|
46
46
|
- **数据分析 · 详情页 · 上传文件**:用户说「上传文件 / 上传数据 / 换数据文件 / 导入 csv xlsx」等,且 `pathname` 为 `/analysis/{toolId}` 时,**一律走 D-2 三步弹窗流程**(打开弹窗 → 弹窗内选文件 → 弹窗内「确认」),**禁止**把左侧参数卡片底部「确认」(D-6 生成结果)当成上传确认。细则见下文「上传文件 · Agent 硬门禁」。
|
|
47
|
+
- **AI 应用 · 详情页 · 复制文本 / 编辑文本(须先 hover)**:用户说「复制文本 / 复制这段 / 复制这一块 / 编辑文本 / 编辑生成的结果 / 修改生成内容 / 改一下输出」等,且 `pathname` 为 `/application/{appId}`、右侧「生成结果」区已有输出块时,**必须先 `hover` 目标输出块**,再 `click` 该块浮动按钮 `getByLabel('复制文本')` 或 `getByLabel('编辑文本')`(见 AP-10 / AP-14、规约 C)。**禁止**在未 hover 时直接 `click` 这两个按钮(会 `visibility: hidden` 超时);**禁止**把输出区顶栏「全部复制」(AP-11,无需 hover)与单块「复制文本」混用;**禁止**在编辑模式下直接向 markdown 预览区 `type`/`fill`——须先点「编辑文本」进入编辑态(出现 `textbox` + 「保存」)再改内容。
|
|
48
|
+
|
|
49
|
+
#### AI 应用 · 详情页 · 复制/编辑输出 · Agent 硬门禁
|
|
50
|
+
|
|
51
|
+
**适用范围**:`pathname` 为 `/application/{appId}`;右侧「生成结果」区已有至少一块 AI 输出(markdown / 文本块等);用户要求复制或编辑**某一块**生成内容。
|
|
52
|
+
|
|
53
|
+
- **悬停前置(必做)**:「复制文本」「编辑文本」按钮默认隐藏,仅当鼠标悬停在**该输出块**(块标题或块正文区域)上时才显示(规约 C)。Agent **不得**跳过 hover 直接 `click`;也不得因 `snapshot` 未列出这两个按钮而判定「页面无编辑/复制能力」——应先 `hover` 目标块后再 `snapshot` 或 `click`。
|
|
54
|
+
- **用户说法 → 动作**:
|
|
55
|
+
- 「复制文本 / 复制这段 / 复制这一块 / 复制输出」→ **AP-10**(先 hover 目标块 → `getByLabel('复制文本')`)。
|
|
56
|
+
- 「编辑文本 / 编辑生成的结果 / 修改生成内容 / 改一下输出 / 我想编辑结果」→ **AP-14**(先 hover 目标块 → `getByLabel('编辑文本')` → 在 `textbox` 内修改 → `getByRole('button', { name: '保存' })`)。
|
|
57
|
+
- 「全部复制 / 复制全部 / 复制整份输出」→ **AP-11**(输出区顶栏 `getByLabel('全部复制')`,**无需** hover 某块)。
|
|
58
|
+
- **命令衔接**:hover 与 click 须在**同一次** `run-code`(或等价脚本)内连续执行;分两条 CLI 命令时 hover 态会丢失,导致 click 超时。推荐:
|
|
59
|
+
|
|
60
|
+
```js
|
|
61
|
+
await page.getByText('<输出块标题>', { exact: true }).hover();
|
|
62
|
+
await page.getByLabel('编辑文本').click(); // 或 '复制文本'
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
- **编辑态验收**:点击「编辑文本」后,该块内出现可编辑 `textbox` 与「保存」按钮;修改完成后须点「保存」,再用 `snapshot` 确认回到 markdown 预览态。取消编辑可点「保存」旁的关闭图标(以页面实测为准)。
|
|
66
|
+
- **禁止误导**:不得向用户声称「已进入编辑模式」或「已复制」而未执行 hover → click 或未通过上述验收。
|
|
47
67
|
|
|
48
68
|
#### 任务范围与跨域
|
|
49
69
|
|
|
@@ -155,8 +175,9 @@
|
|
|
155
175
|
| 对话 · 新建会话 | S-09 |
|
|
156
176
|
| 工作站 · 新建任务弹窗 | S-10 |
|
|
157
177
|
| 工作台 · 进入子工作台 | S-11 |
|
|
158
|
-
| 应用 · 标准操作(搜索 / 级联分类 / 滚动加载 / 收藏 / 进入详情 / 多块复制 / mindmap) | S-12(细则 AP-1~AP-
|
|
178
|
+
| 应用 · 标准操作(搜索 / 级联分类 / 滚动加载 / 收藏 / 进入详情 / 多块复制 / mindmap) | S-12(细则 AP-1~AP-14 + 规约 A~H) |
|
|
159
179
|
| 应用 · 取消收藏 · 二次确认弹窗 | AP-8(规约 E) |
|
|
180
|
+
| 应用 · 详情 · 单块复制文本 / 编辑文本(须先 hover 输出块) | AP-10 / AP-14(规约 C · 硬门禁见上文) |
|
|
160
181
|
| 应用 · 多块输出 · 单块复制 vs 全部复制 | AP-10 / AP-11(规约 F) |
|
|
161
182
|
| 应用 · mindmap 缩放 vs 页面滚动 | AP-12 / AP-13(规约 G) |
|
|
162
183
|
| 应用 · 级联分类(必选到叶子级) | AP-3(规约 H) |
|
|
@@ -377,12 +398,14 @@ div.side-menu--item[to='/edu/courses']
|
|
|
377
398
|
|
|
378
399
|
**规约 C · 悬停才显示的隐藏操作按钮**
|
|
379
400
|
|
|
380
|
-
|
|
401
|
+
列表项/输入输出块上部分操作按钮(**复制文本**、**编辑文本**、复制、收藏、删除、重新生成、举报等)默认隐藏,仅在 `hover` 时出现:
|
|
381
402
|
|
|
382
|
-
1. 先 `hover`
|
|
403
|
+
1. 先 `hover` 目标项目块(应用详情「生成结果」区:悬停在**该输出块的标题或正文区域**);
|
|
383
404
|
2. 再 `click` 出现的按钮(按规约 A 优先 `aria-label`)。
|
|
384
405
|
|
|
385
406
|
> 直接对未 hover 的按钮 `click`:常因 `visibility: hidden` / `pointer-events: none` 超时或被遮挡;勿用 `force: true` 绕过业务态。
|
|
407
|
+
>
|
|
408
|
+
> **应用详情 · 高频踩坑**:「复制文本」「编辑文本」的 `aria-label` 即按钮文案本身;未 hover 时 `snapshot` 往往**看不到**这两个按钮,Agent 易误判「页面不支持编辑」。用户说「编辑生成的结果」时,默认走 **AP-14**(先 hover 再点「编辑文本」),细则见上文「AI 应用 · 详情页 · 复制/编辑输出 · Agent 硬门禁」。
|
|
386
409
|
|
|
387
410
|
**规约 D · 卡片以「新标签页」方式打开详情**
|
|
388
411
|
|
|
@@ -408,9 +431,9 @@ div.side-menu--item[to='/edu/courses']
|
|
|
408
431
|
|
|
409
432
|
应用的输入/输出区可能由多个独立内容块组成(多段提示、分章节回答、多张图、多段代码/表格/mindmap 等):
|
|
410
433
|
|
|
411
|
-
-
|
|
434
|
+
- **单块操作**(单段「**复制文本**」、「**编辑文本**」、「复制」、「重新生成」、「评分」):必须先 `hover` 目标块内部才会出现该块浮动按钮(规约 C),再使用 `aria-label`(规约 A)定位**该块作用域内**的按钮;勿直接命中全局同名按钮。
|
|
412
435
|
- **整块操作**(「全部复制」、「导出全部」、「全部重新生成」):通常位于输出区顶/底全局工具条,不需要悬停某块;用 `getByLabel('全部复制')` 或 `getByRole('button', { name: '全部复制' })` 直接命中。
|
|
413
|
-
-
|
|
436
|
+
- **分流原则**:根据用户原话——「复制这段/复制文本/编辑生成的结果/修改输出/这一块/第 N 段」→ **单块**(先 `hover`,复制用 `复制文本`、编辑用 `编辑文本`);「全部复制/复制全部/复制整份输出」→ **整块**。`全部复制` 与 `复制文本` 在 `aria-label` 上严格区分,勿混用;「编辑文本」仅出现在单块 hover 工具条,与顶栏「全部复制」无关。
|
|
414
437
|
|
|
415
438
|
**规约 G · mindmap 缩放与页面滚动(鼠标位置决定)**
|
|
416
439
|
|
|
@@ -444,10 +467,11 @@ div.side-menu--item[to='/edu/courses']
|
|
|
444
467
|
| AP-7 | **收藏(单击直成)** | 先 `hover` 卡片(规约 C)→ `click` → `getByLabel('收藏')` | 文案/`aria-label` 切换为「已收藏」;无二次确认 |
|
|
445
468
|
| AP-8 | **取消收藏(需二次确认)** | 见规约 E:`hover` → `click`「取消收藏」 → `click` 弹层「确认」 | 验收文案回到「收藏」,或卡片移出「我的收藏」;勿用 `dialog-accept` |
|
|
446
469
|
| AP-9 | **多块输入 · 单块操作** | 先 `hover` 目标输入块 → 在该块作用域内用 `getByLabel('<操作>')` → `click` | 同规约 F;勿误触全局/其它块按钮 |
|
|
447
|
-
| AP-10 | **多块输出 ·
|
|
448
|
-
| AP-11 | **多块输出 · 全部复制(整块)** | `click` → `getByLabel('全部复制')` 或 `getByRole('button', { name: '全部复制' })` |
|
|
470
|
+
| AP-10 | **多块输出 · 单块复制文本** | 先 `hover` 目标输出块(同块 `getByText('<块标题>')` 或正文区)→ **同一次** `run-code` 内 `click` → `getByLabel('复制文本')` | 出现复制成功 toast 或剪贴板更新;勿与 AP-11 混用 |
|
|
471
|
+
| AP-11 | **多块输出 · 全部复制(整块)** | `click` → `getByLabel('全部复制')` 或 `getByRole('button', { name: '全部复制' })` | 同上提示;**无需** hover;勿用「复制文本」代替 |
|
|
449
472
|
| AP-12 | **mindmap · 缩放** | 见规约 G:`mousemove` 到画布内 → `mousewheel` | 节点尺寸变化 |
|
|
450
473
|
| AP-13 | **mindmap 区域附近 · 滚动页面** | 见规约 G:`mousemove` 到 mindmap 外的安全空白区(仍在外层容器内) → `mousewheel` | 页面/外层容器滚动,mindmap 大小不变 |
|
|
474
|
+
| AP-14 | **多块输出 · 单块编辑文本** | 先 `hover` 目标输出块 → **同一次** `run-code` 内 `click` → `getByLabel('编辑文本')` → 在块内 `textbox` 修改 → `click` → `getByRole('button', { name: '保存' })` | 回到 markdown 预览;用户说「编辑生成的结果」等走本步;取消可点「保存」旁关闭图标 |
|
|
451
475
|
|
|
452
476
|
##### AI 应用 · 稳定定位器速查
|
|
453
477
|
|
|
@@ -461,8 +485,9 @@ div.side-menu--item[to='/edu/courses']
|
|
|
461
485
|
| 收藏 / 已收藏 | `getByLabel('收藏')` / `getByLabel('已收藏')`(兼用 `getByText('收藏', { exact: true })`) | 取消收藏须见规约 E |
|
|
462
486
|
| 取消收藏 | `getByLabel('取消收藏')` | 触发二次确认 |
|
|
463
487
|
| 取消收藏 · 确认 | 弹层 `getByRole('button', { name: '确认' })`(文案以实测为准) | 必接动作;禁用 `dialog-accept` |
|
|
464
|
-
|
|
|
465
|
-
|
|
|
488
|
+
| 单块复制文本 | 目标块作用域内 `getByLabel('复制文本')` | 先 `hover` 该块;与 AP-10 一致 |
|
|
489
|
+
| 单块编辑文本 | 目标块作用域内 `getByLabel('编辑文本')` | 先 `hover` 该块;编辑态内 `textbox` + 「保存」;与 AP-14 一致 |
|
|
490
|
+
| 整块复制 | `getByLabel('全部复制')` | 勿与「复制文本」混用;无需 hover |
|
|
466
491
|
| 重新生成(单块) | 目标块作用域内 `getByLabel('重新生成')` | 先 `hover` 该块 |
|
|
467
492
|
| 分类入口 | `getByLabel('分类')` 优先;否则 `getByRole('button', { name: '分类' })` | 级联见规约 H |
|
|
468
493
|
| 应用卡片 · 标题 | `getByText('<应用主标题>', { exact: true })` | 多卡时先缩到目标卡片 |
|
|
@@ -1101,7 +1126,7 @@ async page => {
|
|
|
1101
1126
|
|
|
1102
1127
|
#### S-12:AI 应用 · 标准操作
|
|
1103
1128
|
|
|
1104
|
-
> **细则**见上文「AI 应用 `/application/`」(规约 A~H + AP-1~AP-
|
|
1129
|
+
> **细则**见上文「AI 应用 `/application/`」(规约 A~H + AP-1~AP-14)。本节为最短串联步骤;每个关键交互后 `snapshot` 一次直至验收通过。
|
|
1105
1130
|
|
|
1106
1131
|
1. **进入模块**:AP-1。验收:`pathname` `/application`/`/application/`;`title` 以 `AI应用-` 开头。
|
|
1107
1132
|
2. **(可选)搜索**:AP-2。验收:列表刷新。
|
|
@@ -1110,10 +1135,13 @@ async page => {
|
|
|
1110
1135
|
5. **(可选)`aria-label` 高频图标**(历史记录/回到顶部 等):AP-5(规约 A)。
|
|
1111
1136
|
6. **(可选)收藏/取消收藏**:AP-7/AP-8(取消收藏必接二次确认弹层,见规约 E)。
|
|
1112
1137
|
7. **进入某一应用(新标签)**:AP-6(规约 D);`tab-list` 记录 → `click` 卡片 → `tab-select` 切到新标签。勿在详情标签上 `go-back`。
|
|
1113
|
-
8. **应用详情 · 多块输入输出**(规约 C/F
|
|
1114
|
-
-
|
|
1115
|
-
-
|
|
1116
|
-
-
|
|
1138
|
+
8. **应用详情 · 多块输入输出**(规约 C/F · 硬门禁见上文「复制/编辑输出」):
|
|
1139
|
+
- 单块复制(「复制文本 / 复制这段」)→ 先 `hover` 该块 → AP-10(`getByLabel('复制文本')`);
|
|
1140
|
+
- 单块编辑(「编辑生成的结果 / 编辑文本 / 修改输出」)→ 先 `hover` 该块 → AP-14(`getByLabel('编辑文本')` → 改 `textbox` → 「保存」);
|
|
1141
|
+
- 单块其它操作(重新生成等)→ 先 `hover` 该块 → AP-9;
|
|
1142
|
+
- 整块操作(全部复制等)→ AP-11(**无需** hover);
|
|
1143
|
+
- hover 与 click 须在同一次 `run-code` 内连续执行,勿分两条命令;
|
|
1144
|
+
- 勿把 `复制文本` 与 `全部复制` 互换。
|
|
1117
1145
|
9. **(可选)mindmap**:缩放 → AP-12(`hover` 画布内);滚动页面/外层 → AP-13(`hover` 画布外、容器内安全空白区)。
|
|
1118
1146
|
10. **收尾**:返回列表用 `tab-close`(详情标签)→ `tab-select` 回 `/application` 标签。
|
|
1119
1147
|
|