@mearl/client 2.1.0 → 2.2.0

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
@@ -96,7 +96,7 @@ mearl browser_release
96
96
 
97
97
  `browser_list` 统一列出普通浏览器和托管浏览器。`type` 区分 `regular` / `managed`,`status` 区分 `connected` / `running_disconnected` / `stopped`;只有 `connected` 的浏览器可作为操作目标。
98
98
 
99
- `browser_release` 释放当前目标浏览器的 debugger/CDP 控制和会话级临时状态,保留浏览器及全部标签页;后续浏览器操作可自动重新建立控制。
99
+ `browser_release` 仅在用户明确要求结束调试、退出接管或清理会话资源时使用,不作为普通任务收尾。它会释放当前目标浏览器的 debugger/CDP 控制和会话级临时状态(包括设备/时区模拟),保留浏览器及全部标签页;后续浏览器操作可自动重新建立控制。
100
100
 
101
101
  托管浏览器使用独立 Profile 和动态 CDP 端口。控制浏览器需先登录 TDBank;生成的 SSO 地址在本地内部传递,新实例可以使用 `headless: true`(默认)完成测试账号登录。`copyCookieDomains` 可把控制浏览器指定域的 Cookie 复制到新实例,Cookie 值不会出现在命令结果或日志中;`userAgentMode: "desktop"` 可让实例使用匹配本机 Chrome 版本的桌面 UA。完整设计见 [托管浏览器与 TDBank 多账号设计](../../docs/managed-browsers.md)。
102
102
 
@@ -1,19 +1,11 @@
1
+ import { PAGE_ACT_ACTIONS } from './generated-browser-action-protocol.js';
1
2
  function boundedNumber(value, fallback, minimum, maximum) {
2
3
  const numeric = Number(value);
3
4
  if (!Number.isFinite(numeric))
4
5
  return fallback;
5
6
  return Math.min(Math.max(numeric, minimum), maximum);
6
7
  }
7
- // 默认内置观察的页面交互动作。client 作为零依赖包本地维护,
8
- // 需与 browser-core/pageAct.ts 的 PAGE_ACT_ACTIONS 保持一致。
9
- const OBSERVED_PAGE_ACTIONS = new Set([
10
- 'page_click',
11
- 'page_type',
12
- 'page_hover',
13
- 'page_scroll',
14
- 'page_press',
15
- 'page_upload',
16
- ]);
8
+ const OBSERVED_PAGE_ACTIONS = new Set(PAGE_ACT_ACTIONS);
17
9
  export function resolveObservedActionTimeoutSec(data) {
18
10
  const observe = data.observe ?? {};
19
11
  const observationMs = boundedNumber(observe.timeoutMs, 3000, 500, 30000);
@@ -42,7 +34,11 @@ export function resolveActionTimeoutSec(action, data, fallback = 15) {
42
34
  if (action === 'browser_close' || action === 'tdbank_account')
43
35
  return Math.max(fallback, 20);
44
36
  // 页面交互动作默认内置观察,超时需覆盖观察与导航窗口;observe:false 时是裸动作,用默认超时
45
- if (OBSERVED_PAGE_ACTIONS.has(action) && data.observe !== false) {
37
+ const observedAction = OBSERVED_PAGE_ACTIONS.has(action);
38
+ const observationEnabled = action === 'page_eval'
39
+ ? data.observe !== null && typeof data.observe === 'object' && !Array.isArray(data.observe)
40
+ : data.observe !== false;
41
+ if (observedAction && observationEnabled) {
46
42
  return Math.max(fallback, resolveObservedActionTimeoutSec(data));
47
43
  }
48
44
  if (action === 'run_actions') {