@tanzerfe/page-use 0.0.2 → 0.0.4

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/README.md CHANGED
@@ -91,6 +91,28 @@ const launcher = readLauncherSwitch(import.meta.env.DEV) && { scenarios: [/* ...
91
91
  | `menuPresetLimit` | 由菜单生成「打开 XX」的数量上限,默认 6 |
92
92
  | `sourceLabels` | 任务来源到展示名的映射,如 `{ assistant: 'AI 助手' }` |
93
93
 
94
+ 调试面板设置中不提供「显示 page-agent 自带面板」与「定制光晕与光标配色」:自带面板始终隐藏,蒙层始终使用定制光晕与光标配色,本地存储中的旧值会被忽略。`PageUseSettings` 仍保留 `showBuiltinPanel` / `customMaskEffect` 字段,但修改不生效。
95
+
96
+ ## 演示播报
97
+
98
+ 演示时可用浏览器语音合成(`speechSynthesis`)同步播报智能体的执行过程,无需宿主额外配置。
99
+
100
+ - **开关**:调试面板「设置 → 语音播报」,**默认关闭**,状态保存在本地存储(`voiceEnabled`)。开启后可调节语速(`voiceRate`,0.5–2,默认 1.1)并选择中文语音(`voiceName`,默认自动选第一个中文语音)。开关对所有来源的任务生效,包括其它智能体经模块 API、function calling 或全局对象下达的任务。
101
+ - **播报内容**:
102
+ - 执行步骤:模型对每一步的目标描述;滚动、等待、结束、提问、出错、重试步骤不播报;
103
+ - 提问:模型向用户提出的问题;
104
+ - 结论:任务结束时的 `summary`(成功、未达成、出错均播报;被终止的任务不播报)。
105
+ - **不阻塞执行**:智能体不等待语音结束。正在播报时到达的新步骤只保留最新一条待播,中间步骤被丢弃;提问与结论会打断当前播报;新任务开始、终止、销毁或关闭开关时停止播报。
106
+ - **播报时机**:page-agent 在模型调用内部执行点击等动作,目标描述在动作完成后才可获得,因此播报会略晚于页面变化;模型思考期间没有播报。
107
+ - **文本清洗**:播报前去除 Markdown 标记、表格分隔线、链接地址、代码块、emoji 与元素编号(如「索引为 23 的」「[23]」);清洗后超过 120 字时在句子边界截断,并追加「详细内容请查看面板」。清洗只影响播报,`result.summary`、面板展示与返回给调用方的数据保持原样。
108
+ - **提示词**:开启播报后的下一次任务起,系统提示追加一条约束,要求 `next_goal` 写成面向观众的一句中文、不含元素编号;关闭时系统提示不变。执行中切换开关只影响下一次任务的提示词。
109
+
110
+ 浏览器限制:
111
+
112
+ - 可用语音取决于操作系统与浏览器。Windows 上的 Edge / Chrome 有中文语音;Linux 上的 Chromium 通常没有,此时设置面板会提示并使用默认语音。
113
+ - 浏览器要求用户与页面交互过才允许发声。从调试面板下达任务、在对话框中输入指令均满足条件;页面加载后未经交互直接调用可能无声。
114
+ - `speechSynthesis` 是整个页面共用的队列。提问 / 结论打断时会调用 `speechSynthesis.cancel()`,宿主页面同时在播报的其它语音也会被停止;反之,宿主调用 `cancel()` 也会停止 Page Use 的播报。
115
+
94
116
  ## 对接方式
95
117
 
96
118
  ### 1. 模块 API
@@ -305,6 +305,8 @@ declare class PageUseLauncherElement extends LitElement {
305
305
  private panelDrag;
306
306
  connectedCallback(): void;
307
307
  disconnectedCallback(): void;
308
+ /** Chrome 的语音列表异步加载,首次读取可能为空:加载完成后刷新语音下拉框 */
309
+ private watchVoices;
308
310
  protected firstUpdated(): void;
309
311
  protected updated(_changed: PropertyValues): void;
310
312
  private onStateChange;
@@ -343,6 +345,8 @@ declare class PageUseLauncherElement extends LitElement {
343
345
  private renderPresetGroups;
344
346
  private renderCheckbox;
345
347
  private renderSettings;
348
+ /** 演示播报:开关 + 兼容提示;开启后显示语速与中文语音选择 */
349
+ private renderVoiceSettings;
346
350
  private renderLog;
347
351
  private renderTray;
348
352
  private renderComposer;
@@ -491,6 +495,12 @@ interface PageUseSettings {
491
495
  enableMask: boolean;
492
496
  /** 蒙层使用定制光晕与光标配色(false = page-agent 默认 ai-motion 效果) */
493
497
  customMaskEffect: boolean;
498
+ /** 演示播报:用浏览器语音合成播报执行步骤、提问与结论;默认关闭 */
499
+ voiceEnabled: boolean;
500
+ /** 播报语速(SpeechSynthesisUtterance.rate,1 为正常语速) */
501
+ voiceRate: number;
502
+ /** 播报语音名(SpeechSynthesisVoice.name);空串表示自动选择第一个中文语音 */
503
+ voiceName: string;
494
504
  /** 浮动入口位置(null = 默认右下角);面板展开时以入口为锚点定位,不单独存位置 */
495
505
  fabPos: PageUsePoint | null;
496
506
  }
@@ -498,6 +508,7 @@ declare const DEFAULT_PAGE_USE_SETTINGS: Readonly<PageUseSettings>;
498
508
  declare const pageUseSettings: {
499
509
  store: ReadonlyStore<PageUseSettings>;
500
510
  get(): PageUseSettings;
511
+ /** 固定项(LOCKED_SETTINGS)的修改被忽略 */
501
512
  update(patch: Partial<PageUseSettings>): void;
502
513
  /** 把浮动入口(及随之定位的面板)恢复到默认角落位置 */
503
514
  resetPositions(): void;
package/dist/index.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as PageUsePreset, A as runPageUseTool, B as DEFAULT_MODEL, C as PageUseGlobal, D as PageUseCommand, E as PAGE_USE_TOOL_NAME, F as PageUseLauncherConfig, G as PageUseOptions, H as DEFAULT_STORAGE_KEY_PREFIX, I as PageUseLauncherElement, J as readLauncherSwitch, K as PageUseRouterMode, L as PageUseHandle, M as definePageUseElements, N as mountPageUseUI, O as formatPageUseResultForModel, P as PAGE_USE_LAUNCHER_TAG, Q as PageUseMenuNode, R as createPageUse, S as PAGE_USE_GLOBAL_KEY, T as PAGE_USE_TOOL, U as NormalizedPageUseOptions, V as DEFAULT_SESSION_HEADER, W as PageUseLLMOptions, X as pageUseCapability, Y as PageUseCapability, Z as PageUseErrorCode, _ as getPageUseConfig, a as PAGE_USE_STATIC_PRESETS, at as PageUseTaskSource, b as pageUseStore, c as pageUseHistory, d as PageUseSettings, et as PageUseProgressEvent, f as pageUseSettings, g as getElapsedSeconds, h as clearPageUseLog, i as PageUseGlowElement, it as PageUseTaskResult, j as MountPageUseUIOptions, k as isPageUseCommand, l as DEFAULT_PAGE_USE_SETTINGS, m as PageUseState, n as SIMULATOR_MASK_ID, nt as PageUseSnapshot, o as buildMenuPresets, ot as PageUseTaskStatus, p as PageUseQuestion, q as normalizeOptions, r as PAGE_USE_GLOW_TAG, rt as PageUseStepLog, s as PageUseHistoryEntry, t as PAGE_USE_MASK_COLORS, tt as PageUseRunOptions, u as PageUsePoint, v as isPageUseConfigured, w as PAGE_USE_COMMAND_TYPE, x as ReadonlyStore, y as isRunning, z as DEFAULT_MAX_STEPS } from "./index-DtJ3mvL2.mjs";
1
+ import { $ as PageUsePreset, A as runPageUseTool, B as DEFAULT_MODEL, C as PageUseGlobal, D as PageUseCommand, E as PAGE_USE_TOOL_NAME, F as PageUseLauncherConfig, G as PageUseOptions, H as DEFAULT_STORAGE_KEY_PREFIX, I as PageUseLauncherElement, J as readLauncherSwitch, K as PageUseRouterMode, L as PageUseHandle, M as definePageUseElements, N as mountPageUseUI, O as formatPageUseResultForModel, P as PAGE_USE_LAUNCHER_TAG, Q as PageUseMenuNode, R as createPageUse, S as PAGE_USE_GLOBAL_KEY, T as PAGE_USE_TOOL, U as NormalizedPageUseOptions, V as DEFAULT_SESSION_HEADER, W as PageUseLLMOptions, X as pageUseCapability, Y as PageUseCapability, Z as PageUseErrorCode, _ as getPageUseConfig, a as PAGE_USE_STATIC_PRESETS, at as PageUseTaskSource, b as pageUseStore, c as pageUseHistory, d as PageUseSettings, et as PageUseProgressEvent, f as pageUseSettings, g as getElapsedSeconds, h as clearPageUseLog, i as PageUseGlowElement, it as PageUseTaskResult, j as MountPageUseUIOptions, k as isPageUseCommand, l as DEFAULT_PAGE_USE_SETTINGS, m as PageUseState, n as SIMULATOR_MASK_ID, nt as PageUseSnapshot, o as buildMenuPresets, ot as PageUseTaskStatus, p as PageUseQuestion, q as normalizeOptions, r as PAGE_USE_GLOW_TAG, rt as PageUseStepLog, s as PageUseHistoryEntry, t as PAGE_USE_MASK_COLORS, tt as PageUseRunOptions, u as PageUsePoint, v as isPageUseConfigured, w as PAGE_USE_COMMAND_TYPE, x as ReadonlyStore, y as isRunning, z as DEFAULT_MAX_STEPS } from "./index-CD2K3C_Q.mjs";
2
2
  export { DEFAULT_MAX_STEPS, DEFAULT_MODEL, DEFAULT_PAGE_USE_SETTINGS, DEFAULT_SESSION_HEADER, DEFAULT_STORAGE_KEY_PREFIX, type MountPageUseUIOptions, type NormalizedPageUseOptions, PAGE_USE_COMMAND_TYPE, PAGE_USE_GLOBAL_KEY, PAGE_USE_GLOW_TAG, PAGE_USE_LAUNCHER_TAG, PAGE_USE_MASK_COLORS, PAGE_USE_STATIC_PRESETS, PAGE_USE_TOOL, PAGE_USE_TOOL_NAME, type PageUseCapability, type PageUseCommand, type PageUseErrorCode, type PageUseGlobal, PageUseGlowElement, type PageUseHandle, type PageUseHistoryEntry, type PageUseLLMOptions, type PageUseLauncherConfig, PageUseLauncherElement, type PageUseMenuNode, type PageUseOptions, type PageUsePoint, type PageUsePreset, type PageUseProgressEvent, type PageUseQuestion, type PageUseRouterMode, type PageUseRunOptions, type PageUseSettings, type PageUseSnapshot, type PageUseState, type PageUseStepLog, type PageUseTaskResult, type PageUseTaskSource, type PageUseTaskStatus, type ReadonlyStore, SIMULATOR_MASK_ID, buildMenuPresets, clearPageUseLog, createPageUse, definePageUseElements, formatPageUseResultForModel, getElapsedSeconds, getPageUseConfig, isPageUseCommand, isPageUseConfigured, isRunning, mountPageUseUI, normalizeOptions, pageUseCapability, pageUseHistory, pageUseSettings, pageUseStore, readLauncherSwitch, runPageUseTool };
package/dist/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
- import { A as DEFAULT_MODEL, C as pageUseStore, D as SIMULATOR_MASK_ID, E as PAGE_USE_MASK_COLORS, M as DEFAULT_STORAGE_KEY_PREFIX, N as normalizeOptions, O as pageUseHistory, P as readLauncherSwitch, S as isRunning, T as pageUseSettings, _ as pageUseCapability, a as PAGE_USE_STATIC_PRESETS, b as getPageUseConfig, c as PageUseGlowElement, d as PAGE_USE_COMMAND_TYPE, f as PAGE_USE_TOOL, g as runPageUseTool, h as isPageUseCommand, i as PageUseLauncherElement, j as DEFAULT_SESSION_HEADER, k as DEFAULT_MAX_STEPS, l as createPageUse, m as formatPageUseResultForModel, n as mountPageUseUI, o as buildMenuPresets, p as PAGE_USE_TOOL_NAME, r as PAGE_USE_LAUNCHER_TAG, s as PAGE_USE_GLOW_TAG, t as definePageUseElements, u as PAGE_USE_GLOBAL_KEY, v as clearPageUseLog, w as DEFAULT_PAGE_USE_SETTINGS, x as isPageUseConfigured, y as getElapsedSeconds } from "./src-C8EWDZVz.mjs";
1
+ import { A as DEFAULT_STORAGE_KEY_PREFIX, C as pageUseStore, D as DEFAULT_MAX_STEPS, E as pageUseSettings, M as readLauncherSwitch, N as PAGE_USE_MASK_COLORS, O as DEFAULT_MODEL, P as SIMULATOR_MASK_ID, S as isRunning, T as DEFAULT_PAGE_USE_SETTINGS, _ as pageUseCapability, a as PAGE_USE_STATIC_PRESETS, b as getPageUseConfig, c as PageUseGlowElement, d as PAGE_USE_COMMAND_TYPE, f as PAGE_USE_TOOL, g as runPageUseTool, h as isPageUseCommand, i as PageUseLauncherElement, j as normalizeOptions, k as DEFAULT_SESSION_HEADER, l as createPageUse, m as formatPageUseResultForModel, n as mountPageUseUI, o as buildMenuPresets, p as PAGE_USE_TOOL_NAME, r as PAGE_USE_LAUNCHER_TAG, s as PAGE_USE_GLOW_TAG, t as definePageUseElements, u as PAGE_USE_GLOBAL_KEY, v as clearPageUseLog, w as pageUseHistory, x as isPageUseConfigured, y as getElapsedSeconds } from "./src-B9wNTD0L.mjs";
2
2
 
3
3
  export { DEFAULT_MAX_STEPS, DEFAULT_MODEL, DEFAULT_PAGE_USE_SETTINGS, DEFAULT_SESSION_HEADER, DEFAULT_STORAGE_KEY_PREFIX, PAGE_USE_COMMAND_TYPE, PAGE_USE_GLOBAL_KEY, PAGE_USE_GLOW_TAG, PAGE_USE_LAUNCHER_TAG, PAGE_USE_MASK_COLORS, PAGE_USE_STATIC_PRESETS, PAGE_USE_TOOL, PAGE_USE_TOOL_NAME, PageUseGlowElement, PageUseLauncherElement, SIMULATOR_MASK_ID, buildMenuPresets, clearPageUseLog, createPageUse, definePageUseElements, formatPageUseResultForModel, getElapsedSeconds, getPageUseConfig, isPageUseCommand, isPageUseConfigured, isRunning, mountPageUseUI, normalizeOptions, pageUseCapability, pageUseHistory, pageUseSettings, pageUseStore, readLauncherSwitch, runPageUseTool };